-1:!1};F.a=L},function(N,F,k){"use strict";var U=function(L){return typeof L=="object"&&L!==null};F.a=U},function(N,F,k){"use strict";var U=k(8),L=k(2),_=Object.values?function(I){return Object.values(I)}:function(I){var T=[];return Object(U.a)(I,function(x,p){Object(L.a)(I)&&p==="prototype"||T.push(x)}),T};F.a=_},function(N,F,k){"use strict";F.a=L;function U(_,I){for(var T in I)I.hasOwnProperty(T)&&T!=="constructor"&&I[T]!==void 0&&(_[T]=I[T])}function L(_,I,T,x){return I&&U(_,I),T&&U(_,T),x&&U(_,x),_}},function(N,F,k){var U=k(35),L=["LR","RL","TB","BT","H","V"],_=["LR","RL","H"],I=function(p){return _.indexOf(p)>-1},T=L[0];N.exports=function(x,p,v){var g=p.direction||T;if(p.isHorizontal=I(g),g&&L.indexOf(g)===-1)throw new TypeError("Invalid direction: "+g);if(g===L[0])v(x,p);else if(g===L[1])v(x,p),x.right2left();else if(g===L[2])v(x,p);else if(g===L[3])v(x,p),x.bottom2top();else if(g===L[4]||g===L[5]){var d=U(x,p),c=d.left,s=d.right;v(c,p),v(s,p),p.isHorizontal?c.right2left():c.bottom2top(),s.translate(c.x-s.x,c.y-s.y),x.x=c.x,x.y=s.y;var m=x.getBoundingBox();p.isHorizontal?m.top<0&&x.translate(0,-m.top):m.left<0&&x.translate(-m.left,0)}var M=p.fixedRoot;return M===void 0&&(M=!0),M&&x.translate(-(x.x+x.width/2+x.hgap),-(x.y+x.height/2+x.vgap)),x}},function(N,F,k){var U=k(6),L=18,_=L*2,I=L,T={getId:function(g){return g.id||g.name},getPreH:function(g){return g.preH||0},getPreV:function(g){return g.preV||0},getHGap:function(g){return g.hgap||I},getVGap:function(g){return g.vgap||I},getChildren:function(g){return g.children},getHeight:function(g){return g.height||_},getWidth:function(g){var d=g.label||" ";return g.width||d.split("").length*L}};function x(v,g){var d=this;if(d.vgap=d.hgap=0,v instanceof x)return v;d.data=v;var c=g.getHGap(v),s=g.getVGap(v);return d.preH=g.getPreH(v),d.preV=g.getPreV(v),d.width=g.getWidth(v),d.height=g.getHeight(v),d.width+=d.preH,d.height+=d.preV,d.id=g.getId(v),d.x=d.y=0,d.depth=0,d.children||(d.children=[]),d.addGap(c,s),d}U.assign(x.prototype,{isRoot:function(){return this.depth===0},isLeaf:function(){return this.children.length===0},addGap:function(g,d){var c=this;c.hgap+=g,c.vgap+=d,c.width+=2*g,c.height+=2*d},eachNode:function(g){for(var d=this,c=[d],s;s=c.shift();)g(s),c=s.children.concat(c)},DFTraverse:function(g){this.eachNode(g)},BFTraverse:function(g){for(var d=this,c=[d],s;s=c.shift();)g(s),c=c.concat(s.children)},getBoundingBox:function(){var g={left:Number.MAX_VALUE,top:Number.MAX_VALUE,width:0,height:0};return this.eachNode(function(d){g.left=Math.min(g.left,d.x),g.top=Math.min(g.top,d.y),g.width=Math.max(g.width,d.x+d.width),g.height=Math.max(g.height,d.y+d.height)}),g},translate:function(g,d){g===void 0&&(g=0),d===void 0&&(d=0),this.eachNode(function(c){c.x+=g,c.y+=d,c.x+=c.preH,c.y+=c.preV})},right2left:function(){var g=this,d=g.getBoundingBox();g.eachNode(function(c){c.x=c.x-(c.x-d.left)*2-c.width}),g.translate(d.width,0)},bottom2top:function(){var g=this,d=g.getBoundingBox();g.eachNode(function(c){c.y=c.y-(c.y-d.top)*2-c.height}),g.translate(0,d.height)}});function p(v,g,d){g===void 0&&(g={}),g=U.assign({},T,g);var c=new x(v,g),s=[c],m;if(!d&&!v.collapsed){for(;m=s.shift();)if(!m.data.collapsed){var M=g.getChildren(m.data),P=M?M.length:0;if(m.children=new Array(P),M&&P)for(var R=0;R-1;)L.call(T,d,1);return T};F.a=I},function(N,F,k){"use strict";var U=k(1),L=k(24),_=function(I,T){var x=[];if(!Object(U.a)(I))return x;for(var p=-1,v=[],g=I.length;++pd[s])return 1;if(g[s]I?I:L};F.a=U},function(N,F,k){"use strict";var U=function(L,_){var I=_.toString(),T=I.indexOf(".");if(T===-1)return Math.round(L);var x=I.substr(T+1).length;return x>20&&(x=20),parseFloat(L.toFixed(x))};F.a=U},function(N,F,k){"use strict";var U=k(5),L=function(_){return Object(U.a)(_)&&_%1!==0};F.a=L},function(N,F,k){"use strict";var U=k(5),L=function(_){return Object(U.a)(_)&&_%2===0};F.a=L},function(N,F,k){"use strict";var U=k(5),L=Number.isInteger?Number.isInteger:function(_){return Object(U.a)(_)&&_%1===0};F.a=L},function(N,F,k){"use strict";var U=k(5),L=function(_){return Object(U.a)(_)&&_<0};F.a=L},function(N,F,k){"use strict";F.a=L;var U=1e-5;function L(_,I,T){return T===void 0&&(T=U),Math.abs(_-I)0};F.a=L},function(N,F,k){"use strict";var U=k(0),L=k(2);F.a=function(_,I){if(Object(U.a)(_)){for(var T,x=-1/0,p=0;p<_.length;p++){var v=_[p],g=Object(L.a)(I)?I(v):v[I];g>x&&(T=v,x=g)}return T}}},function(N,F,k){"use strict";var U=k(0),L=k(2);F.a=function(_,I){if(Object(U.a)(_)){for(var T,x=1/0,p=0;p<_.length;p++){var v=_[p],g=Object(L.a)(I)?I(v):v[I];gL?(I&&(clearTimeout(I),I=null),v=c,p=U.apply(T,x),I||(T=x=null)):!I&&_.trailing!==!1&&(I=setTimeout(g,s)),p};return d.cancel=function(){clearTimeout(I),v=0,I=T=x=null},d}},function(N,F,k){"use strict";var U=k(1);F.a=function(L){return Object(U.a)(L)?Array.prototype.slice.call(L):[]}},function(N,F,k){"use strict";var U={};F.a=function(L){return L=L||"g",U[L]?U[L]+=1:U[L]=1,L+U[L]}},function(N,F,k){"use strict";F.a=function(){}},function(N,F,k){"use strict";F.a=function(U){return U}},function(N,F,k){"use strict";F.a=_;var U=k(7),L=k(1);function _(I){return Object(U.a)(I)?0:Object(L.a)(I)?I.length:Object.keys(I).length}},function(N,F,k){"use strict";F.a=G;var U=function(we,Te){return U=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(ke,Ge){ke.__proto__=Ge}||function(ke,Ge){for(var tt in Ge)Object.prototype.hasOwnProperty.call(Ge,tt)&&(ke[tt]=Ge[tt])},U(we,Te)};function L(we,Te){if(typeof Te!="function"&&Te!==null)throw new TypeError("Class extends value "+String(Te)+" is not a constructor or null");U(we,Te);function ke(){this.constructor=we}we.prototype=Te===null?Object.create(Te):(ke.prototype=Te.prototype,new ke)}var _=function(){return _=Object.assign||function(Te){for(var ke,Ge=1,tt=arguments.length;Ge=0;Lt--)(ft=we[Lt])&&(He=(tt<3?ft(He):tt>3?ft(Te,ke,He):ft(Te,ke))||He);return tt>3&&He&&Object.defineProperty(Te,ke,He),He}function x(we,Te){return function(ke,Ge){Te(ke,Ge,we)}}function p(we,Te,ke,Ge,tt,He){function ft(Ir){if(Ir!==void 0&&typeof Ir!="function")throw new TypeError("Function expected");return Ir}for(var Lt=Ge.kind,Jt=Lt==="getter"?"get":Lt==="setter"?"set":"value",Qe=!Te&&we?Ge.static?we:we.prototype:null,ut=Te||(Qe?Object.getOwnPropertyDescriptor(Qe,Ge.name):{}),xt,dt=!1,pt=ke.length-1;pt>=0;pt--){var wt={};for(var mt in Ge)wt[mt]=mt==="access"?{}:Ge[mt];for(var mt in Ge.access)wt.access[mt]=Ge.access[mt];wt.addInitializer=function(Ir){if(dt)throw new TypeError("Cannot add initializers after decoration has completed");He.push(ft(Ir||null))};var ur=(0,ke[pt])(Lt==="accessor"?{get:ut.get,set:ut.set}:ut[Jt],wt);if(Lt==="accessor"){if(ur===void 0)continue;if(ur===null||typeof ur!="object")throw new TypeError("Object expected");(xt=ft(ur.get))&&(ut.get=xt),(xt=ft(ur.set))&&(ut.set=xt),(xt=ft(ur.init))&&tt.push(xt)}else(xt=ft(ur))&&(Lt==="field"?tt.push(xt):ut[Jt]=xt)}Qe&&Object.defineProperty(Qe,Ge.name,ut),dt=!0}function v(we,Te,ke){for(var Ge=arguments.length>2,tt=0;tt0&&He[He.length-1])&&(Qe[0]===6||Qe[0]===2)){ke=0;continue}if(Qe[0]===3&&(!He||Qe[1]>He[0]&&Qe[1]=we.length&&(we=void 0),{value:we&&we[Ge++],done:!we}}};throw new TypeError(Te?"Object is not iterable.":"Symbol.iterator is not defined.")}function j(we,Te){var ke=typeof Symbol=="function"&&we[Symbol.iterator];if(!ke)return we;var Ge=ke.call(we),tt,He=[],ft;try{for(;(Te===void 0||Te-- >0)&&!(tt=Ge.next()).done;)He.push(tt.value)}catch(Lt){ft={error:Lt}}finally{try{tt&&!tt.done&&(ke=Ge.return)&&ke.call(Ge)}finally{if(ft)throw ft.error}}return He}function Q(){for(var we=[],Te=0;Te1||Lt(dt,pt)})})}function Lt(dt,pt){try{Jt(Ge[dt](pt))}catch(wt){xt(He[0][3],wt)}}function Jt(dt){dt.value instanceof H?Promise.resolve(dt.value.v).then(Qe,ut):xt(He[0][2],dt)}function Qe(dt){Lt("next",dt)}function ut(dt){Lt("throw",dt)}function xt(dt,pt){dt(pt),He.shift(),He.length&&Lt(He[0][0],He[0][1])}}function J(we){var Te,ke;return Te={},Ge("next"),Ge("throw",function(tt){throw tt}),Ge("return"),Te[Symbol.iterator]=function(){return this},Te;function Ge(tt,He){Te[tt]=we[tt]?function(ft){return(ke=!ke)?{value:H(we[tt](ft)),done:!1}:He?He(ft):ft}:He}}function K(we){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var Te=we[Symbol.asyncIterator],ke;return Te?Te.call(we):(we=typeof R=="function"?R(we):we[Symbol.iterator](),ke={},Ge("next"),Ge("throw"),Ge("return"),ke[Symbol.asyncIterator]=function(){return this},ke);function Ge(He){ke[He]=we[He]&&function(ft){return new Promise(function(Lt,Jt){ft=we[He](ft),tt(Lt,Jt,ft.done,ft.value)})}}function tt(He,ft,Lt,Jt){Promise.resolve(Jt).then(function(Qe){He({value:Qe,done:Lt})},ft)}}function ne(we,Te){return Object.defineProperty?Object.defineProperty(we,"raw",{value:Te}):we.raw=Te,we}var se=Object.create?function(we,Te){Object.defineProperty(we,"default",{enumerable:!0,value:Te})}:function(we,Te){we.default=Te};function fe(we){if(we&&we.__esModule)return we;var Te={};if(we!=null)for(var ke in we)ke!=="default"&&Object.prototype.hasOwnProperty.call(we,ke)&&M(Te,we,ke);return se(Te,we),Te}function Ie(we){return we&&we.__esModule?we:{default:we}}function ye(we,Te,ke,Ge){if(ke==="a"&&!Ge)throw new TypeError("Private accessor was defined without a getter");if(typeof Te=="function"?we!==Te||!Ge:!Te.has(we))throw new TypeError("Cannot read private member from an object whose class did not declare it");return ke==="m"?Ge:ke==="a"?Ge.call(we):Ge?Ge.value:Te.get(we)}function Ae(we,Te,ke,Ge,tt){if(Ge==="m")throw new TypeError("Private method is not writable");if(Ge==="a"&&!tt)throw new TypeError("Private accessor was defined without a setter");if(typeof Te=="function"?we!==Te||!tt:!Te.has(we))throw new TypeError("Cannot write private member to an object whose class did not declare it");return Ge==="a"?tt.call(we,ke):tt?tt.value=ke:Te.set(we,ke),ke}function Se(we,Te){if(Te===null||typeof Te!="object"&&typeof Te!="function")throw new TypeError("Cannot use 'in' operator on non-object");return typeof we=="function"?Te===we:we.has(Te)}},function(N,F,k){"use strict";var U=k(4),L=k(9),_=k(34);F.a=function(I,T,x,p){p===void 0&&(p="...");var v=16,g=Object(_.a)(p,x),d=Object(U.a)(I)?I:Object(L.a)(I),c=T,s=[],m,M;if(Object(_.a)(I,x)<=T)return I;for(;m=d.substr(0,v),M=Object(_.a)(m,x),!(M+g>c&&M>c);)if(s.push(m),c-=M,d=d.substr(v),!d)return s.join("");for(;m=d.substr(0,1),M=Object(_.a)(m,x),!(M+g>c);)if(s.push(m),c-=M,d=d.substr(1),!d)return s.join("");return""+s.join("")+p}},function(N,F,k){"use strict";var U=function(){function L(){this.map={}}return L.prototype.has=function(_){return this.map[_]!==void 0},L.prototype.get=function(_,I){var T=this.map[_];return T===void 0?I:T},L.prototype.set=function(_,I){this.map[_]=I},L.prototype.clear=function(){this.map={}},L.prototype.delete=function(_){delete this.map[_]},L.prototype.size=function(){return Object.keys(this.map).length},L}();F.a=U},function(N,F){function k(x,p,v,g){g===void 0&&(g=[]);var d=this;d.w=x||0,d.h=p||0,d.y=v||0,d.x=0,d.c=g||[],d.cs=g.length,d.prelim=0,d.mod=0,d.shift=0,d.change=0,d.tl=null,d.tr=null,d.el=null,d.er=null,d.msel=0,d.mser=0}k.fromNode=function(x,p){if(!x)return null;var v=[];return x.children.forEach(function(g){v.push(k.fromNode(g,p))}),p?new k(x.height,x.width,x.x,v):new k(x.width,x.height,x.y,v)};function U(x,p,v){v?x.y+=p:x.x+=p,x.children.forEach(function(g){U(g,p,v)})}function L(x,p){var v=p?x.y:x.x;return x.children.forEach(function(g){v=Math.min(L(g,p),v)}),v}function _(x,p){var v=L(x,p);U(x,-v,p)}function I(x,p,v){v?p.y=x.x:p.x=x.x,x.c.forEach(function(g,d){I(g,p.children[d],v)})}function T(x,p,v){v===void 0&&(v=0),p?(x.x=v,v+=x.width):(x.y=v,v+=x.height),x.children.forEach(function(g){T(g,p,v)})}N.exports=function(x,p){p===void 0&&(p={});var v=p.isHorizontal;function g(K){if(K.cs===0){d(K);return}g(K.c[0]);for(var ne=Z(P(K.c[0].el),0,null),se=1;sese.low&&(se=se.nxt);var Se=Ie+fe.prelim+fe.w-(Ae+ye.prelim);Se>0&&(Ae+=Se,s(K,ne,se.index,Se));var we=P(fe),Te=P(ye);we<=Te&&(fe=M(fe),fe!==null&&(Ie+=fe.mod)),we>=Te&&(ye=m(ye),ye!==null&&(Ae+=ye.mod))}!fe&&ye?R(K,ne,ye,Ae):fe&&!ye&&j(K,ne,fe,Ie)}function s(K,ne,se,fe){K.c[ne].mod+=fe,K.c[ne].msel+=fe,K.c[ne].mser+=fe,W(K,ne,se,fe)}function m(K){return K.cs===0?K.tl:K.c[0]}function M(K){return K.cs===0?K.tr:K.c[K.cs-1]}function P(K){return K.y+K.h}function R(K,ne,se,fe){var Ie=K.c[0].el;Ie.tl=se;var ye=fe-se.mod-K.c[0].msel;Ie.mod+=ye,Ie.prelim-=ye,K.c[0].el=K.c[ne].el,K.c[0].msel=K.c[ne].msel}function j(K,ne,se,fe){var Ie=K.c[ne].er;Ie.tr=se;var ye=fe-se.mod-K.c[ne].mser;Ie.mod+=ye,Ie.prelim-=ye,K.c[ne].er=K.c[ne-1].er,K.c[ne].mser=K.c[ne-1].mser}function Q(K){K.prelim=(K.c[0].prelim+K.c[0].mod+K.c[K.cs-1].mod+K.c[K.cs-1].prelim+K.c[K.cs-1].w)/2-K.w/2}function G(K,ne){ne+=K.mod,K.x=K.prelim+ne,H(K);for(var se=0;se=se.low;)se=se.nxt;return{low:K,index:ne,nxt:se}}T(x,v);var J=k.fromNode(x,v);return g(J),G(J,0),I(J,x,v),_(x,v),x}},function(N,F,k){function U(d,c){d.prototype=Object.create(c.prototype),d.prototype.constructor=d,L(d,c)}function L(d,c){return L=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(m,M){return m.__proto__=M,m},L(d,c)}var _=k(11),I=k(121),T=k(17),x=k(6),p=function(d){U(c,d);function c(){return d.apply(this,arguments)||this}var s=c.prototype;return s.execute=function(){var M=this;return M.rootNode.width=0,T(M.rootNode,M.options,I)},c}(_),v={};function g(d,c){return c=x.assign({},v,c),new p(d,c).execute()}N.exports=g},function(N,F,k){var U=k(6);function L(T,x){T===void 0&&(T=0),x===void 0&&(x=[]);var p=this;p.x=p.y=0,p.leftChild=p.rightChild=null,p.height=0,p.children=x}var _={isHorizontal:!0,nodeSep:20,nodeSize:20,rankSep:200,subTreeSep:10};function I(T,x,p){p?(x.x=T.x,x.y=T.y):(x.x=T.y,x.y=T.x),T.children.forEach(function(v,g){I(v,x.children[g],p)})}N.exports=function(T,x){x===void 0&&(x={}),x=U.assign({},_,x);var p=0;function v(m){if(!m)return null;m.width=0,m.depth&&m.depth>p&&(p=m.depth);var M=m.children,P=M.length,R=new L(m.height,[]);return M.forEach(function(j,Q){var G=v(j);R.children.push(G),Q===0&&(R.leftChild=G),Q===P-1&&(R.rightChild=G)}),R.originNode=m,R.isLeaf=m.isLeaf(),R}function g(m){if(m.isLeaf||m.children.length===0)m.drawingDepth=p;else{var M=m.children.map(function(R){return g(R)}),P=Math.min.apply(null,M);m.drawingDepth=P-1}return m.drawingDepth}var d;function c(m){m.x=m.drawingDepth*x.rankSep,m.isLeaf?(m.y=0,d&&(m.y=d.y+d.height+x.nodeSep,m.originNode.parent!==d.originNode.parent&&(m.y+=x.subTreeSep)),d=m):(m.children.forEach(function(M){c(M)}),m.y=(m.leftChild.y+m.rightChild.y)/2)}var s=v(T);return g(s),c(s),I(s,T,x.isHorizontal),T}},function(N,F,k){function U(s,m){s.prototype=Object.create(m.prototype),s.prototype.constructor=s,L(s,m)}function L(s,m){return L=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(P,R){return P.__proto__=R,P},L(s,m)}var _=k(11),I=k(123),T=k(35),x=k(6),p=["LR","RL","H"],v=p[0],g=function(s){U(m,s);function m(){return s.apply(this,arguments)||this}var M=m.prototype;return M.execute=function(){var R=this,j=R.options,Q=R.rootNode;j.isHorizontal=!0;var G=j.indent,W=G===void 0?20:G,H=j.dropCap,Z=H===void 0?!0:H,J=j.direction,K=J===void 0?v:J,ne=j.align;if(K&&p.indexOf(K)===-1)throw new TypeError("Invalid direction: "+K);if(K===p[0])I(Q,W,Z,ne);else if(K===p[1])I(Q,W,Z,ne),Q.right2left();else if(K===p[2]){var se=T(Q,j),fe=se.left,Ie=se.right;I(fe,W,Z,ne),fe.right2left(),I(Ie,W,Z,ne);var ye=fe.getBoundingBox();Ie.translate(ye.width,0),Q.x=Ie.x-Q.width/2}return Q},m}(_),d={};function c(s,m){return m=x.assign({},d,m),new g(s,m).execute()}N.exports=c},function(N,F,k){var U=k(6);function L(_,I,T,x,p){var v=typeof T=="function"?T(_):T*_.depth;if(!x)try{if(_.id===_.parent.children[0].id){_.x+=v,_.y=I?I.y:0;return}}catch(c){}if(_.x+=v,I){if(_.y=I.y+U.getHeight(I,_,p),I.parent&&_.parent.id!==I.parent.id){var g=I.parent,d=g.y+U.getHeight(g,_,p);_.y=d>_.y?d:_.y}}else _.y=0}N.exports=function(_,I,T,x){var p=null;_.eachNode(function(v){L(v,p,I,T,x),p=v})}},function(N,F,k){function U(d,c){d.prototype=Object.create(c.prototype),d.prototype.constructor=d,L(d,c)}function L(d,c){return L=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(m,M){return m.__proto__=M,m},L(d,c)}var _=k(11),I=k(125),T=k(17),x=k(6),p=function(d){U(c,d);function c(){return d.apply(this,arguments)||this}var s=c.prototype;return s.execute=function(){var M=this;return T(M.rootNode,M.options,I)},c}(_),v={};function g(d,c){return c=x.assign({},v,c),new p(d,c).execute()}N.exports=g},function(N,F,k){var U=k(6);function L(T,x){var p=0;return T.children.length?T.children.forEach(function(v){p+=L(v,x)}):p=T.height,T._subTreeSep=x.getSubTreeSep(T.data),T.totalHeight=Math.max(T.height,p)+2*T._subTreeSep,T.totalHeight}function _(T){var x=T.children,p=x.length;if(p){x.forEach(function(m){_(m)});var v=x[0],g=x[p-1],d=g.y-v.y+g.height,c=0;if(x.forEach(function(m){c+=m.totalHeight}),d>T.height)T.y=v.y+d/2-T.height/2;else if(x.length!==1||T.height>c){var s=T.y+(T.height-d)/2-v.y;x.forEach(function(m){m.translate(0,s)})}else T.y=(v.y+v.height/2+g.y+g.height/2)/2-T.height/2}}var I={getSubTreeSep:function(){return 0}};N.exports=function(T,x){x===void 0&&(x={}),x=U.assign({},I,x),T.parent={x:0,width:0,height:0,y:0},T.BFTraverse(function(p){p.x=p.parent.x+p.parent.width}),T.parent=null,L(T,x),T.startY=0,T.y=T.totalHeight/2-T.height/2,T.eachNode(function(p){var v=p.children,g=v.length;if(g){var d=v[0];if(d.startY=p.startY+p._subTreeSep,g===1)d.y=p.y+p.height/2-d.height/2;else{d.y=d.startY+d.totalHeight/2-d.height/2;for(var c=1;cd?1:0}var x=function(p){k(v,p);function v(g){var d=p.call(this)||this;return d.radius=null,d.nodeSize=void 0,d.startRadius=null,d.endRadius=null,d.startAngle=0,d.endAngle=2*Math.PI,d.clockwise=!0,d.divisions=1,d.ordering=null,d.angleRatio=1,d.nodes=[],d.edges=[],d.nodeMap={},d.degrees=[],d.width=300,d.height=300,d.updateCfg(g),d}return v.prototype.getDefaultCfg=function(){return{radius:null,startRadius:null,endRadius:null,startAngle:0,endAngle:2*Math.PI,clockwise:!0,divisions:1,ordering:null,angleRatio:1}},v.prototype.execute=function(){var g,d=this,c=d.nodes,s=d.edges,m=c.length;if(m===0){d.onLayoutEnd&&d.onLayoutEnd();return}!d.width&&typeof window!="undefined"&&(d.width=window.innerWidth),!d.height&&typeof window!="undefined"&&(d.height=window.innerHeight),d.center||(d.center=[d.width/2,d.height/2]);var M=d.center;if(m===1){c[0].x=M[0],c[0].y=M[1],d.onLayoutEnd&&d.onLayoutEnd();return}var P=d.radius,R=d.startRadius,j=d.endRadius,Q=d.divisions,G=d.startAngle,W=d.endAngle,H=d.angleRatio,Z=d.ordering,J=d.clockwise,K=d.nodeSpacing,ne=d.nodeSize,se=(W-G)/m,fe={};c.forEach(function(Lt,Jt){fe[Lt.id]=Jt}),d.nodeMap=fe;var Ie=(0,L.getDegree)(c.length,fe,s);if(d.degrees=Ie,K){var ye=(0,L.getFuncByUnknownType)(10,K),Ae=(0,L.getFuncByUnknownType)(10,ne),Se=-1/0;c.forEach(function(Lt){var Jt=Ae(Lt);Sed.width?d.width/2:d.height/2:!R&&j?R=j:R&&!j&&(j=R);var Te=se*H,ke=[];Z==="topology"?ke=d.topologyOrdering():Z==="topology-directed"?ke=d.topologyOrdering(!0):Z==="degree"?ke=d.degreeOrdering():ke=c;for(var Ge=Math.ceil(m/Q),tt=0;tt=0;Ae--)ye(Ae);return{nodes:c,edges:s,combos:m,comboEdges:M}},v.prototype.getInnerGraphs=function(g){var d=this,c=d.comboTrees,s=d.nodeSize,m=d.edges,M=d.comboPadding,P=d.spacing,R={},j=this.innerLayout||new T.ConcentricLayout({type:"concentric",sortBy:"id"});return j.center=[0,0],j.preventOverlap=!0,j.nodeSpacing=P,(c||[]).forEach(function(Q){(0,I.traverseTreeUp)(Q,function(G){var W,H=(M==null?void 0:M(G))||10;if((0,I.isArray)(H)&&(H=Math.max.apply(Math,H)),!((W=G.children)===null||W===void 0)&&W.length){var J=G.children.map(function(Ge){if(Ge.itemType==="combo")return R[Ge.id];var tt=g[Ge.id]||{};return U(U({},tt),Ge)}),K=J.map(function(Ge){return Ge.id}),ne={nodes:J,edges:m.filter(function(Ge){return K.includes(Ge.source)&&K.includes(Ge.target)})},se=1/0;J.forEach(function(Ge){var tt;Ge.size||(Ge.size=((tt=R[Ge.id])===null||tt===void 0?void 0:tt.size)||(s==null?void 0:s(Ge))||[30,30]),(0,I.isNumber)(Ge.size)&&(Ge.size=[Ge.size,Ge.size]),se>Ge.size[0]&&(se=Ge.size[0]),se>Ge.size[1]&&(se=Ge.size[1])}),j.layout(ne);var fe=(0,I.getLayoutBBox)(J),Ie=fe.minX,ye=fe.minY,Ae=fe.maxX,Se=fe.maxY,we={x:(Ae+Ie)/2,y:(Se+ye)/2};ne.nodes.forEach(function(Ge){Ge.x-=we.x,Ge.y-=we.y});var Te=Math.max(Ae-Ie,se)+H*2,ke=Math.max(Se-ye,se)+H*2;R[G.id]={id:G.id,nodes:J,size:[Te,ke]}}else if(G.itemType==="combo"){var Z=H?[H*2,H*2]:[30,30];R[G.id]={id:G.id,nodes:[],size:Z}}return!0})}),R},v.prototype.initVals=function(){var g=this,d=g.nodeSize,c=g.spacing,s,m;if((0,I.isNumber)(c)?m=function(){return c}:(0,I.isFunction)(c)?m=c:m=function(){return 0},this.spacing=m,!d)s=function(G){var W=m(G);if(G.size){if((0,I.isArray)(G.size)){var H=G.size[0]>G.size[1]?G.size[0]:G.size[1];return(H+W)/2}if((0,I.isObject)(G.size)){var H=G.size.width>G.size.height?G.size.width:G.size.height;return(H+W)/2}return(G.size+W)/2}return 10+W/2};else if((0,I.isFunction)(d))s=function(G){var W=d(G),H=m(G);if((0,I.isArray)(G.size)){var Z=G.size[0]>G.size[1]?G.size[0]:G.size[1];return(Z+H)/2}return((W||10)+H)/2};else if((0,I.isArray)(d)){var M=d[0]>d[1]?d[0]:d[1],P=M/2;s=function(G){return P+m(G)/2}}else{var R=d/2;s=function(G){return R+m(G)/2}}this.nodeSize=s;var j=g.comboPadding,Q;(0,I.isNumber)(j)?Q=function(){return j}:(0,I.isArray)(j)?Q=function(){return Math.max.apply(null,j)}:(0,I.isFunction)(j)?Q=j:Q=function(){return 0},this.comboPadding=Q},v.prototype.getType=function(){return"comboCombined"},v}(_.Base);N.ComboCombinedLayout=x},80808:function(Mt,N,F){"use strict";var k=this&&this.__extends||function(){var I=function(T,x){return I=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(p,v){p.__proto__=v}||function(p,v){for(var g in v)Object.prototype.hasOwnProperty.call(v,g)&&(p[g]=v[g])},I(T,x)};return function(T,x){if(typeof x!="function"&&x!==null)throw new TypeError("Class extends value "+String(x)+" is not a constructor or null");I(T,x);function p(){this.constructor=T}T.prototype=x===null?Object.create(x):(p.prototype=x.prototype,new p)}}();Object.defineProperty(N,"__esModule",{value:!0}),N.ComboForceLayout=void 0;var U=F(46833),L=F(44941),_=function(I){k(T,I);function T(x){var p=I.call(this)||this;return p.center=[0,0],p.maxIteration=100,p.gravity=10,p.comboGravity=10,p.linkDistance=10,p.alpha=1,p.alphaMin=.001,p.alphaDecay=1-Math.pow(p.alphaMin,1/300),p.alphaTarget=0,p.velocityDecay=.6,p.edgeStrength=.6,p.nodeStrength=30,p.preventOverlap=!1,p.preventNodeOverlap=!1,p.preventComboOverlap=!1,p.collideStrength=void 0,p.nodeCollideStrength=.5,p.comboCollideStrength=.5,p.comboSpacing=20,p.comboPadding=10,p.optimizeRangeFactor=1,p.onTick=function(){},p.onLayoutEnd=function(){},p.depthAttractiveForceScale=1,p.depthRepulsiveForceScale=2,p.nodes=[],p.edges=[],p.combos=[],p.comboTrees=[],p.width=300,p.height=300,p.bias=[],p.nodeMap={},p.oriComboMap={},p.indexMap={},p.comboMap={},p.previousLayouted=!1,p.updateCfg(x),p}return T.prototype.getDefaultCfg=function(){return{maxIteration:100,center:[0,0],gravity:10,speed:1,comboGravity:30,preventOverlap:!1,preventComboOverlap:!0,preventNodeOverlap:!0,nodeSpacing:void 0,collideStrength:void 0,nodeCollideStrength:.5,comboCollideStrength:.5,comboSpacing:20,comboPadding:10,edgeStrength:.6,nodeStrength:30,linkDistance:10}},T.prototype.execute=function(){var x=this,p=x.nodes,v=x.center;if(x.comboTree={id:"comboTreeRoot",depth:-1,children:x.comboTrees},!p||p.length===0){x.onLayoutEnd&&x.onLayoutEnd();return}if(p.length===1){p[0].x=v[0],p[0].y=v[1],x.onLayoutEnd&&x.onLayoutEnd();return}x.initVals(),x.run(),x.onLayoutEnd&&x.onLayoutEnd()},T.prototype.run=function(){var x=this,p=x.nodes,v=x.previousLayouted?x.maxIteration/5:x.maxIteration;!x.width&&typeof window!="undefined"&&(x.width=window.innerWidth),!x.height&&typeof window!="undefined"&&(x.height=window.innerHeight);var g=x.center,d=x.velocityDecay,c=x.comboMap;x.previousLayouted||x.initPos(c);for(var s=function(R){var j=[];p.forEach(function(Q,G){j[G]={x:0,y:0}}),x.applyCalculate(j),x.applyComboCenterForce(j),p.forEach(function(Q,G){!(0,L.isNumber)(Q.x)||!(0,L.isNumber)(Q.y)||(Q.x+=j[G].x*d,Q.y+=j[G].y*d)}),x.alpha+=(x.alphaTarget-x.alpha)*x.alphaDecay,x.onTick()},m=0;mHe.size[1]?He.size[0]:He.size[1];return ft/2}if((0,L.isObject)(He.size)){var ft=He.size.width>He.size.height?He.size.width:He.size.height;return ft/2}return He.size/2}return 10};else if((0,L.isFunction)(W))Z=function(He){return W(He)};else if((0,L.isArray)(W)){var K=W[0]>W[1]?W[0]:W[1],ne=K/2;Z=function(He){return ne}}else{var se=W/2;Z=function(He){return se}}this.nodeSize=Z;var fe=x.comboSpacing,Ie;(0,L.isNumber)(fe)?Ie=function(){return fe}:(0,L.isFunction)(fe)?Ie=fe:Ie=function(){return 0},this.comboSpacing=Ie;var ye=x.comboPadding,Ae;(0,L.isNumber)(ye)?Ae=function(){return ye}:(0,L.isArray)(ye)?Ae=function(){return Math.max.apply(null,ye)}:(0,L.isFunction)(ye)?Ae=ye:Ae=function(){return 0},this.comboPadding=Ae;var Se=this.linkDistance,we;Se||(Se=10),(0,L.isNumber)(Se)?we=function(He){return Se}:we=Se,this.linkDistance=we;var Te=this.edgeStrength,ke;Te||(Te=1),(0,L.isNumber)(Te)?ke=function(He){return Te}:ke=Te,this.edgeStrength=ke;var Ge=this.nodeStrength,tt;Ge||(Ge=30),(0,L.isNumber)(Ge)?tt=function(He){return Ge}:tt=Ge,this.nodeStrength=tt},T.prototype.initPos=function(x){var p=this,v=p.nodes;v.forEach(function(g,d){var c=g.comboId,s=x[c];c&&s?(g.x=s.cx+100/(d+1),g.y=s.cy+100/(d+1)):(g.x=100/(d+1),g.y=100/(d+1))})},T.prototype.getComboMap=function(){var x=this,p=x.nodeMap,v=x.comboTrees,g=x.oriComboMap,d={};return(v||[]).forEach(function(c){var s=[];(0,L.traverseTreeUp)(c,function(m){if(m.itemType==="node"||!g[m.id])return!0;if(d[m.id]===void 0){var M={id:m.id,name:m.id,cx:0,cy:0,count:0,depth:x.oriComboMap[m.id].depth||0,children:[]};d[m.id]=M}var P=m.children;P&&P.forEach(function(Q){if(!d[Q.id]&&!p[Q.id])return!0;s.push(Q)});var R=d[m.id];if(R.cx=0,R.cy=0,s.length===0){R.empty=!0;var j=g[m.id];R.cx=j.x,R.cy=j.y}return s.forEach(function(Q){if(R.count++,Q.itemType!=="node"){var G=d[Q.id];(0,L.isNumber)(G.cx)&&(R.cx+=G.cx),(0,L.isNumber)(G.cy)&&(R.cy+=G.cy);return}var W=p[Q.id];W&&((0,L.isNumber)(W.x)&&(R.cx+=W.x),(0,L.isNumber)(W.y)&&(R.cy+=W.y))}),R.cx/=R.count||1,R.cy/=R.count||1,R.children=s,!0})}),d},T.prototype.applyComboCenterForce=function(x){var p=this,v=p.gravity,g=p.comboGravity||v,d=this.alpha,c=p.comboTrees,s=p.indexMap,m=p.nodeMap,M=p.comboMap;(c||[]).forEach(function(P){(0,L.traverseTreeUp)(P,function(R){if(R.itemType==="node")return!0;var j=M[R.id];if(!j)return!0;var Q=M[R.id],G=(Q.depth+1)/10*.5,W=Q.cx,H=Q.cy;return Q.cx=0,Q.cy=0,Q.children.forEach(function(Z){if(Z.itemType!=="node"){var J=M[Z.id];J&&(0,L.isNumber)(J.cx)&&(Q.cx+=J.cx),J&&(0,L.isNumber)(J.cy)&&(Q.cy+=J.cy);return}var K=m[Z.id],ne=K.x-W||.005,se=K.y-H||.005,fe=Math.sqrt(ne*ne+se*se),Ie=s[K.id],ye=g*d/fe*G;x[Ie].x-=ne*ye,x[Ie].y-=se*ye,(0,L.isNumber)(K.x)&&(Q.cx+=K.x),(0,L.isNumber)(K.y)&&(Q.cy+=K.y)}),Q.cx/=Q.count||1,Q.cy/=Q.count||1,!0})})},T.prototype.applyCalculate=function(x){var p=this,v=p.comboMap,g=p.nodes,d={};g.forEach(function(s,m){g.forEach(function(M,P){if(!(mJ&&(R.minX=J),R.minY>K&&(R.minY=K),R.maxX1&&M.forEach(function(P,R){if(P.itemType==="node")return!1;var j=p[P.id];j&&M.forEach(function(Q,G){if(R<=G||Q.itemType==="node")return!1;var W=p[Q.id];if(!W)return!1;var H=j.cx-W.cx||.005,Z=j.cy-W.cy||.005,J=H*H+Z*Z,K=j.r||1,ne=W.r||1,se=K+ne,fe=ne*ne,Ie=K*K;if(Jd)){var Ae=p["".concat(G.id,"-").concat(ne.id)],Se=Ae.vx,we=Ae.vy,Te=Math.log(Math.abs(ne.depth-G.depth)/10)+1||1;Te=Te<1?1:Te,ne.comboId!==G.comboId&&(Te+=1);var ke=Te?Math.pow(j,Te):1,Ge=c(ne)*s/Ie*ke;if(x[W].x+=Se*Ge,x[W].y+=we*Ge,W0){var ke=Math.abs(Z[0][v.sortBy]-Te[v.sortBy]);v.maxLevelDiff&&ke>=v.maxLevelDiff&&(Z=[],H.push(Z))}Z.push(Te)});var J=R+(j||v.minNodeSpacing);if(!v.preventOverlap){var K=H.length>0&&H[0].length>1,ne=Math.min(v.width,v.height)/2-J,se=ne/(H.length+(K?1:0));J=Math.min(J,se)}var fe=0;if(H.forEach(function(Te){var ke=v.sweep;ke===void 0&&(ke=2*Math.PI-2*Math.PI/Te.length);var Ge=Te.dTheta=ke/Math.max(1,Te.length-1);if(Te.length>1&&v.preventOverlap){var tt=Math.cos(Ge)-Math.cos(0),He=Math.sin(Ge)-Math.sin(0),ft=Math.sqrt(J*J/(tt*tt+He*He));fe=Math.max(ft,fe)}Te.r=fe,fe+=J}),v.equidistant){for(var Ie=0,ye=0,Ae=0;Aezt.x&&(Lt=zt.x),Jt>zt.y&&(Jt=zt.y)}),fe.edges().forEach(function(Rt){var zt,Vt=fe.edge(Rt);(zt=Vt.points)===null||zt===void 0||zt.forEach(function(hr){Lt>hr.x&&(Lt=hr.x),Jt>hr.y&&(Jt=hr.y)})}),ft[0]=W[0]-Lt,ft[1]=W[1]-Jt}var Qe=Q==="LR"||Q==="RL";if(H){var ut=this,xt=ut.focusNode,dt=ut.ranksep,pt=ut.getRadialPos,wt=(0,_.isString)(xt)?xt:xt==null?void 0:xt.id,mt=wt?(M=fe.node(wt))===null||M===void 0?void 0:M._rank:0,ur=[],Ir=Qe?"y":"x",Nr=Qe?"height":"width",Hr=1/0,It=-1/0;fe.nodes().forEach(function(Rt){var zt=fe.node(Rt);if(P.nodeMap[Rt]){var Vt=Te(P.nodeMap[Rt]);if(mt===0)ur[zt._rank]||(ur[zt._rank]={nodes:[],totalWidth:0,maxSize:-1/0}),ur[zt._rank].nodes.push(Rt),ur[zt._rank].totalWidth+=Vt*2+zt[Nr],ur[zt._rank].maxSizeIt&&(It=Fr)}});var qt=dt||50,ar={},Oe=(It-Hr)/.9,Pr=[(Hr+It-Oe)*.5,(Hr+It+Oe)*.5],Cr=function(Rt,zt,Vt,hr){Vt===void 0&&(Vt=-1/0),hr===void 0&&(hr=[0,1]);var Ar=Vt;return Rt.forEach(function(en){var Fr=fe.node(en);ar[en]=zt;var Cn=pt(Fr[Ir],Pr,Oe,zt,hr),Sn=Cn.x,oa=Cn.y;if(P.nodeMap[en]){P.nodeMap[en].x=Sn+ft[0],P.nodeMap[en].y=oa+ft[1],P.nodeMap[en]._order=Fr._order;var jr=we(P.nodeMap[en]);Ar=Ar})}:function(Rt,zt,Vt){var hr=Math.max(zt.x,Vt.x),Ar=Math.min(zt.x,Vt.x);return Rt.filter(function(en){return en.x<=hr&&en.x>=Ar})};fe.edges().forEach(function(Rt){var zt,Vt=fe.edge(Rt),hr=se.findIndex(function(Fr){var Cn=(0,_.getEdgeTerminal)(Fr,"source"),Sn=(0,_.getEdgeTerminal)(Fr,"target");return Cn===Rt.v&&Sn===Rt.w});if(!(hr<=-1)&&P.edgeLabelSpace&&P.controlPoints&&se[hr].type!=="loop"){(zt=Vt==null?void 0:Vt.points)===null||zt===void 0||zt.forEach(function(Fr){Fr.x+=ft[0],Fr.y+=ft[1]});var Ar=P.nodeMap[Rt.v],en=P.nodeMap[Rt.w];se[hr].controlPoints=p(Vt==null?void 0:Vt.points,Ar,en,Rn,Qe,yn,zr)}})}return P.onLayoutEnd&&P.onLayoutEnd(),{nodes:R,edges:se}}},g.prototype.getRadialPos=function(d,c,s,m,M){M===void 0&&(M=[0,1]);var P=(d-c[0])/s;P=P*(M[1]-M[0])+M[0];var R=P*2*Math.PI;return{x:Math.cos(R)*m,y:Math.sin(R)*m}},g.prototype.getType=function(){return"dagre"},g}(I.Base);N.DagreLayout=x;var p=function(v,g,d,c,s,m,M){var P=(v==null?void 0:v.slice(1,v.length-1))||[];if(g&&d){var R=g.x,j=g.y,Q=d.x,G=d.y;if(s&&(R=g.y,j=g.x,Q=d.y,G=d.x),G!==j&&R!==Q){var W=c.indexOf(j),H=c[W+1];if(H){var Z=P[0],J=s?{x:(j+H)/2,y:(Z==null?void 0:Z.y)||Q}:{x:(Z==null?void 0:Z.x)||Q,y:(j+H)/2};(!Z||m(Z,J))&&P.unshift(J)}var K=c.indexOf(G),ne=Math.abs(K-W);if(ne===1)P=M(P,g,d),P.length||P.push(s?{x:(j+G)/2,y:R}:{x:R,y:(j+G)/2});else if(ne>1){var se=c[K-1];if(se){var fe=P[P.length-1],Ie=s?{x:(G+se)/2,y:(fe==null?void 0:fe.y)||Q}:{x:(fe==null?void 0:fe.x)||R,y:(G+se)/2};(!fe||m(fe,Ie))&&P.push(Ie)}}}}return P}},19268:function(Mt,N,F){"use strict";var k=this&&this.__extends||function(){var p=function(v,g){return p=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(d,c){d.__proto__=c}||function(d,c){for(var s in c)Object.prototype.hasOwnProperty.call(c,s)&&(d[s]=c[s])},p(v,g)};return function(v,g){if(typeof g!="function"&&g!==null)throw new TypeError("Class extends value "+String(g)+" is not a constructor or null");p(v,g);function d(){this.constructor=v}v.prototype=g===null?Object.create(g):(d.prototype=g.prototype,new d)}}(),U=this&&this.__assign||function(){return U=Object.assign||function(p){for(var v,g=1,d=arguments.length;gR.x&&(M=R.x),P>R.y&&(P=R.y)}),d.forEach(function(R){R.points.forEach(function(j){M>j.x&&(M=j.x),P>j.y&&(P=j.y)})}),m[0]=s[0]-M,m[1]=s[1]-P}return m},v.prototype.updateNodePosition=function(g,d){var c=this,s=c.combos,m=c.nodes,M=c.edges,P=c.anchorPoint,R=c.graphSettings,j=this.getBegin(g,d);g.forEach(function(Q){var G,W=Q.x,H=Q.y,Z=Q.id,J=Q.type,K=Q.coreBox;if(J===I.HierarchyNodeType.META&&Z!==I.ROOT_NAME){var ne=s.findIndex(function(Ae){return Ae.id===Z}),se=(G=R==null?void 0:R.subScene)===null||G===void 0?void 0:G.meta;s[ne].offsetX=W+j[0],s[ne].offsetY=H+j[1],s[ne].fixSize=[K.width,K.height],s[ne].fixCollapseSize=[K.width,K.height],Q.expanded?s[ne].padding=[se==null?void 0:se.paddingTop,se==null?void 0:se.paddingRight,se==null?void 0:se.paddingBottom,se==null?void 0:se.paddingLeft]:s[ne].padding=[0,0,0,0]}else if(J===I.HierarchyNodeType.OP){var ne=m.findIndex(function(Se){return Se.id===Z});if(m[ne].x=W+j[0],m[ne].y=H+j[1],P){var fe=[],Ie=d.filter(function(Se){return Se.v===Z}),ye=d.filter(function(Se){return Se.w===Z});Ie.length>0&&Ie.forEach(function(Se){var we=Se.points[0],Te=(we.x-W)/Q.width+.5,ke=(we.y-H)/Q.height+.5;fe.push([Te,ke]),Se.baseEdgeList.forEach(function(Ge){var tt=M.find(function(He){return He.source===Ge.v&&He.target===Ge.w});tt&&(tt.sourceAnchor=fe.length-1)})}),ye.length>0&&ye.forEach(function(Se){var we=Se.points[Se.points.length-1],Te=(we.x-W)/Q.width+.5,ke=(we.y-H)/Q.height+.5;fe.push([Te,ke]),Se.baseEdgeList.forEach(function(Ge){var tt=M.find(function(He){return He.source===Ge.v&&He.target===Ge.w});tt&&(tt.targetAnchor=fe.length-1)})}),m[ne].anchorPoints=fe.length>0?fe:m[ne].anchorPoints||[]}}})},v.prototype.updateEdgePosition=function(g,d){var c=this,s=c.combos,m=c.edges,M=c.controlPoints,P=this.getBegin(g,d);M&&(s.forEach(function(R){R.inEdges=[],R.outEdges=[]}),m.forEach(function(R){var j,Q,G,W,H=g.find(function(Ae){return Ae.id===R.source}),Z=g.find(function(Ae){return Ae.id===R.target}),J=[],K=[];if(H&&Z)K=(0,I.getEdges)(H==null?void 0:H.id,Z==null?void 0:Z.id,g);else if(!H||!Z){var ne=c.getNodePath(R.source),se=c.getNodePath(R.target),fe=ne.reverse().slice(H?0:1).find(function(Ae){return g.find(function(Se){return Se.id===Ae})}),Ie=se.reverse().slice(Z?0:1).find(function(Ae){return g.find(function(Se){return Se.id===Ae})});H=g.find(function(Ae){return Ae.id===fe}),Z=g.find(function(Ae){return Ae.id===Ie}),K=(0,I.getEdges)(H==null?void 0:H.id,Z==null?void 0:Z.id,g,{v:R.source,w:R.target})}if(J=K.reduce(function(Ae,Se){return L(L([],Ae,!0),Se.points.map(function(we){return U(U({},we),{x:we.x+P[0],y:we.y+P[1]})}),!0)},[]),J=J.slice(1,-1),R.controlPoints=J,(Z==null?void 0:Z.type)===I.NodeType.META){var ye=s.findIndex(function(Ae){return Ae.id===(Z==null?void 0:Z.id)});if(!s[ye]||!((j=s[ye].inEdges)===null||j===void 0)&&j.some(function(Ae){return Ae.source===H.id&&Ae.target===Z.id}))return;(Q=s[ye].inEdges)===null||Q===void 0||Q.push({source:H.id,target:Z.id,controlPoints:J})}if((H==null?void 0:H.type)===I.NodeType.META){var ye=s.findIndex(function(Se){return Se.id===(H==null?void 0:H.id)});if(!s[ye]||!((G=s[ye].outEdges)===null||G===void 0)&&G.some(function(Se){return Se.source===H.id&&Se.target===Z.id}))return;(W=s[ye].outEdges)===null||W===void 0||W.push({source:H.id,target:Z.id,controlPoints:J})}}))},v.prototype.getType=function(){return"dagreCompound"},v.prototype.getDataByOrder=function(g){return g.every(function(d){return d.layoutOrder!==void 0})||g.forEach(function(d,c){d.layoutOrder=c}),g.sort(function(d,c){return d.layoutOrder-c.layoutOrder})},v}(_.Base);N.DagreCompoundLayout=x},61283:function(Mt,N,F){"use strict";var k=this&&this.__extends||function(){var _=function(I,T){return _=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(x,p){x.__proto__=p}||function(x,p){for(var v in p)Object.prototype.hasOwnProperty.call(p,v)&&(x[v]=p[v])},_(I,T)};return function(I,T){if(typeof T!="function"&&T!==null)throw new TypeError("Class extends value "+String(T)+" is not a constructor or null");_(I,T);function x(){this.constructor=I}I.prototype=T===null?Object.create(T):(x.prototype=T.prototype,new x)}}();Object.defineProperty(N,"__esModule",{value:!0}),N.Graph=void 0;var U=F(12130),L=function(_){k(I,_);function I(){return _!==null&&_.apply(this,arguments)||this}return I}(U.Graph);N.Graph=L},57007:function(Mt,N,F){"use strict";var k=this&&this.__importDefault||function(_){return _&&_.__esModule?_:{default:_}};Object.defineProperty(N,"__esModule",{value:!0});var U=k(F(21277)),L=F(96744);N.default={layout:U.default,util:{time:L.time,notime:L.notime}}},57157:function(Mt,N,F){"use strict";var k=this&&this.__importDefault||function(T){return T&&T.__esModule?T:{default:T}};Object.defineProperty(N,"__esModule",{value:!0});var U=k(F(3221)),L=function(T){var x=function(v){return function(g){var d;return((d=v.edge(g))===null||d===void 0?void 0:d.weight)||1}},p=T.graph().acyclicer==="greedy"?(0,U.default)(T,x(T)):_(T);p==null||p.forEach(function(v){var g=T.edge(v);T.removeEdgeObj(v),g.forwardName=v.name,g.reversed=!0,T.setEdge(v.w,v.v,g,"rev-".concat(Math.random()))})},_=function(T){var x=[],p={},v={},g=function(d){var c;v[d]||(v[d]=!0,p[d]=!0,(c=T.outEdges(d))===null||c===void 0||c.forEach(function(s){p[s.w]?x.push(s):g(s.w)}),delete p[d])};return T.nodes().forEach(g),x},I=function(T){T.edges().forEach(function(x){var p=T.edge(x);if(p.reversed){T.removeEdgeObj(x);var v=p.forwardName;delete p.reversed,delete p.forwardName,T.setEdge(x.w,x.v,p,v)}})};N.default={run:L,undo:I}},14600:function(Mt,N,F){"use strict";Object.defineProperty(N,"__esModule",{value:!0});var k=F(96744),U=function(_){var I,T=function(x){var p=_.children(x),v=_.node(x);if(p!=null&&p.length&&p.forEach(function(c){return T(c)}),v.hasOwnProperty("minRank")){v.borderLeft=[],v.borderRight=[];for(var g=v.minRank,d=v.maxRank+1;g0;--G)if(Q=m[G].dequeue(),Q){P=P.concat(g(s,m,M,Q,!0));break}}}return P},g=function(s,m,M,P,R){var j,Q,G=[];return(j=s.inEdges(P.v))===null||j===void 0||j.forEach(function(W){var H=s.edge(W),Z=s.node(W.v);R&&G.push({v:W.v,w:W.w,in:0,out:0}),Z.out===void 0&&(Z.out=0),Z.out-=H,c(m,M,Z)}),(Q=s.outEdges(P.v))===null||Q===void 0||Q.forEach(function(W){var H=s.edge(W),Z=W.w,J=s.node(Z);J.in===void 0&&(J.in=0),J.in-=H,c(m,M,J)}),s.removeNode(P.v),R?G:void 0},d=function(s,m){var M=new T,P=0,R=0;s.nodes().forEach(function(H){M.setNode(H,{v:H,in:0,out:0})}),s.edges().forEach(function(H){var Z=M.edge(H)||0,J=(m==null?void 0:m(H))||1,K=Z+J;M.setEdge(H.v,H.w,K),R=Math.max(R,M.node(H.v).out+=J),P=Math.max(P,M.node(H.w).in+=J)});for(var j=[],Q=R+P+3,G=0;G0;)M%2&&(P+=c[M+1]),M=M-1>>1,c[M]+=m.weight;s+=m.weight*P}}),s},L=function(_,I){for(var T=0,x=1;x<(I==null?void 0:I.length);x+=1)T+=U(_,I[x-1],I[x]);return T};N.default=L},93256:function(Mt,N,F){"use strict";var k=this&&this.__importDefault||function(m){return m&&m.__esModule?m:{default:m}};Object.defineProperty(N,"__esModule",{value:!0});var U=k(F(78583)),L=k(F(51576)),_=k(F(53512)),I=k(F(66431)),T=k(F(63776)),x=F(44941),p=F(61283),v=F(96744),g=function(m,M){for(var P=(0,v.maxRank)(m),R=[],j=[],Q=1;Q-1;Q--)j.push(Q);var G=d(m,R,"inEdges"),W=d(m,j,"outEdges"),H=(0,U.default)(m);s(m,H);for(var Z=Number.POSITIVE_INFINITY,J,Q=0,K=0;K<4;++Q,++K){c(Q%2?G:W,Q%4>=2,!1,M),H=(0,v.buildLayerMatrix)(m);var ne=(0,L.default)(m,H);ne=2,!0,M),H=(0,v.buildLayerMatrix)(m);var ne=(0,L.default)(m,H);ne=c.barycenter)&&U(c,s)}},p=function(c){return function(s){s.in.push(c),--s.indegree===0&&L.push(s)}},v=function(){var c=L.pop();T.push(c),(_=c.in.reverse())===null||_===void 0||_.forEach(function(s){return x(c)(s)}),(I=c.out)===null||I===void 0||I.forEach(function(s){return p(c)(s)})};L!=null&&L.length;)v();var g=T.filter(function(c){return!c.merged}),d=["vs","i","barycenter","weight"];return g.map(function(c){var s={};return d==null||d.forEach(function(m){c[m]!==void 0&&(s[m]=c[m])}),s})},U=function(L,_){var I,T=0,x=0;L.weight&&(T+=L.barycenter*L.weight,x+=L.weight),_.weight&&(T+=_.barycenter*_.weight,x+=_.weight),L.vs=(I=_.vs)===null||I===void 0?void 0:I.concat(L.vs),L.barycenter=T/x,L.weight=x,L.i=Math.min(_.i,L.i),_.merged=!0};N.default=F},63776:function(Mt,N,F){"use strict";var k=this&&this.__importDefault||function(p){return p&&p.__esModule?p:{default:p}};Object.defineProperty(N,"__esModule",{value:!0});var U=k(F(82580)),L=k(F(11059)),_=k(F(59832)),I=function(p,v,g,d,c,s){var m,M,P,R,j=p.children(v),Q=p.node(v),G=Q?Q.borderLeft:void 0,W=Q?Q.borderRight:void 0,H={};G&&(j=j==null?void 0:j.filter(function(fe){return fe!==G&&fe!==W}));var Z=(0,U.default)(p,j||[]);Z==null||Z.forEach(function(fe){var Ie;if(!((Ie=p.children(fe.v))===null||Ie===void 0)&&Ie.length){var ye=I(p,fe.v,g,d,s);H[fe.v]=ye,ye.hasOwnProperty("barycenter")&&x(fe,ye)}});var J=(0,L.default)(Z,g);T(J,H),(m=J.filter(function(fe){return fe.vs.length>0}))===null||m===void 0||m.forEach(function(fe){var Ie=p.node(fe.vs[0]);Ie&&(fe.fixorder=Ie.fixorder,fe.order=Ie.order)});var K=(0,_.default)(J,d,c,s);if(G&&(K.vs=[G,K.vs,W].flat(),!((M=p.predecessors(G))===null||M===void 0)&&M.length)){var ne=p.node(((P=p.predecessors(G))===null||P===void 0?void 0:P[0])||""),se=p.node(((R=p.predecessors(W))===null||R===void 0?void 0:R[0])||"");K.hasOwnProperty("barycenter")||(K.barycenter=0,K.weight=0),K.barycenter=(K.barycenter*K.weight+ne.order+se.order)/(K.weight+2),K.weight+=2}return K},T=function(p,v){p==null||p.forEach(function(g){var d,c=(d=g.vs)===null||d===void 0?void 0:d.map(function(s){return v[s]?v[s].vs:s});g.vs=c.flat()})},x=function(p,v){p.barycenter!==void 0?(p.barycenter=(p.barycenter*p.weight+v.barycenter*v.weight)/(p.weight+v.weight),p.weight+=v.weight):(p.barycenter=v.barycenter,p.weight=v.weight)};N.default=I},59832:function(Mt,N,F){"use strict";Object.defineProperty(N,"__esModule",{value:!0});var k=F(96744),U=function(I,T,x,p){var v=(0,k.partition)(I,function(R){var j=R.hasOwnProperty("fixorder")&&!isNaN(R.fixorder);return p?!j&&R.hasOwnProperty("barycenter"):j||R.hasOwnProperty("barycenter")}),g=v.lhs,d=v.rhs.sort(function(R,j){return-R.i- -j.i}),c=[],s=0,m=0,M=0;g==null||g.sort(_(!!T,!!x)),M=L(c,d,M),g==null||g.forEach(function(R){var j;M+=(j=R.vs)===null||j===void 0?void 0:j.length,c.push(R.vs),s+=R.barycenter*R.weight,m+=R.weight,M=L(c,d,M)});var P={vs:c.flat()};return m&&(P.barycenter=s/m,P.weight=m),P},L=function(I,T,x){for(var p=x,v;T.length&&(v=T[T.length-1]).i<=p;)T.pop(),I==null||I.push(v.vs),p++;return p},_=function(I,T){return function(x,p){if(x.fixorder!==void 0&&p.fixorder!==void 0)return x.fixorder-p.fixorder;if(x.barycenterp.barycenter)return 1;if(T&&x.order!==void 0&&p.order!==void 0){if(x.orderp.order)return 1}return I?p.i-x.i:x.i-p.i}};N.default=U},38481:function(Mt,N){"use strict";Object.defineProperty(N,"__esModule",{value:!0});var F=function(L){var _,I={},T=0,x=function(p){var v,g=T;(v=L.children(p))===null||v===void 0||v.forEach(x),I[p]={low:g,lim:T++}};return(_=L.children())===null||_===void 0||_.forEach(x),I},k=function(L,_,I,T){var x=[],p=[],v=Math.min(_[I].low,_[T].low),g=Math.max(_[I].lim,_[T].lim),d,c;d=I;do d=L.parent(d),x.push(d);while(d&&(_[d].low>v||g>_[d].lim));for(c=d,d=T;d&&d!==c;)p.push(d),d=L.parent(d);return{lca:c,path:x.concat(p.reverse())}},U=function(L){var _,I=F(L);(_=L.graph().dummyChains)===null||_===void 0||_.forEach(function(T){var x,p,v=T,g=L.node(v),d=g.edgeObj;if(d)for(var c=k(L,I,d.v,d.w),s=c.path,m=c.lca,M=0,P=s[M],R=!0;v!==d.w;){if(g=L.node(v),R){for(;P!==m&&((x=L.node(P))===null||x===void 0?void 0:x.maxRank)Ae)&&(0,N.addConflict)(H,Ge,Te)}))}function J(se){return JSON.stringify(se.slice(1))}function K(se,fe){var Ie=J(se);fe.get(Ie)||(Z.apply(void 0,se),fe.set(Ie,!0))}var ne=function(se,fe){var Ie=-1,ye,Ae=0,Se=new Map;return fe==null||fe.forEach(function(we,Te){var ke;if(((ke=G.node(we))===null||ke===void 0?void 0:ke.dummy)==="border"){var Ge=G.predecessors(we)||[];Ge.length&&(ye=G.node(Ge[0]).order,K([fe,Ae,Te,Ie,ye],Se),Ae=Te,Ie=ye)}K([fe,Ae,fe.length,ye,se.length],Se)}),fe};return W!=null&&W.length&&W.reduce(ne),H};N.findType2Conflicts=x;var p=function(G,W){var H,Z;if(!((H=G.node(W))===null||H===void 0)&&H.dummy)return(Z=G.predecessors(W))===null||Z===void 0?void 0:Z.find(function(J){return G.node(J).dummy})};N.findOtherInnerSegmentNode=p;var v=function(G,W,H){var Z=W,J=H;if(Z>J){var K=Z;Z=J,J=K}var ne=G[Z];ne||(G[Z]=ne={}),ne[J]=!0};N.addConflict=v;var g=function(G,W,H){var Z=W,J=H;if(Z>J){var K=W;Z=J,J=K}return!!G[Z]};N.hasConflict=g;var d=function(G,W,H,Z){var J={},K={},ne={};return W==null||W.forEach(function(se){se==null||se.forEach(function(fe,Ie){J[fe]=fe,K[fe]=fe,ne[fe]=Ie})}),W==null||W.forEach(function(se){var fe=-1;se==null||se.forEach(function(Ie){var ye=Z(Ie);if(ye.length){ye=ye.sort(function(ke,Ge){return ne[ke]-ne[Ge]});for(var Ae=(ye.length-1)/2,Se=Math.floor(Ae),we=Math.ceil(Ae);Se<=we;++Se){var Te=ye[Se];K[Ie]===Ie&&feK.lim&&(ne=K,se=!0);var fe=G.edges().filter(function(Ie){return se===j(Q,Q.node(Ie.v),ne)&&se!==j(Q,Q.node(Ie.w),ne)});return(0,L.minBy)(fe,function(Ie){return(0,U.slack)(G,Ie)})};N.enterEdge=m;var M=function(Q,G,W,H){var Z=W.v,J=W.w;Q.removeEdge(Z,J),Q.setEdge(H.v,H.w,{}),(0,N.initLowLimValues)(Q),(0,N.initCutValues)(Q,G),P(Q,G)};N.exchangeEdges=M;var P=function(Q,G){var W=Q.nodes().find(function(Z){var J;return!(!((J=G.node(Z))===null||J===void 0)&&J.parent)}),H=I(Q,W);H=H==null?void 0:H.slice(1),H==null||H.forEach(function(Z){var J=Q.node(Z).parent,K=G.edgeFromArgs(Z,J),ne=!1;K||(K=G.edgeFromArgs(J,Z),ne=!0),G.node(Z).rank=G.node(J).rank+(ne?K.minlen:-K.minlen)})},R=function(Q,G,W){return Q.hasEdge(G,W)},j=function(Q,G,W){return W.low<=G.lim&&G.lim<=W.lim};N.default=x},78433:function(Mt,N){"use strict";Object.defineProperty(N,"__esModule",{value:!0}),N.slack=N.longestPathWithLayer=N.longestPath=void 0;var F=function(L){var _,I={},T=function(x){var p,v=L.node(x);if(!v)return 0;if(I[x])return v.rank;I[x]=!0;var g;return(p=L.outEdges(x))===null||p===void 0||p.forEach(function(d){var c=T(d.w),s=L.edge(d).minlen,m=c-s;m&&(g===void 0||mMath.abs(J)*se?(K<0&&(se=-se),fe=se*J/K,Ie=se):(J<0&&(ne=-ne),fe=ne,Ie=ne*K/J),{x:H+fe,y:Z+Ie}};N.intersectRect=g;var d=function(G){for(var W=[],H=(0,N.maxRank)(G)+1,Z=0;ZW)&&(W=J)}),W||(W=0),W};N.maxRank=M;var P=function(G,W){var H={lhs:[],rhs:[]};return G==null||G.forEach(function(Z){W(Z)?H.lhs.push(Z):H.rhs.push(Z)}),H};N.partition=P;var R=function(G,W){var H=Date.now();try{return W()}finally{console.log("".concat(G," time: ").concat(Date.now()-H,"ms"))}};N.time=R;var j=function(G,W){return W()};N.notime=j;var Q=function(G,W){return G.reduce(function(H,Z){var J=W(H),K=W(Z);return J>K?Z:H})};N.minBy=Q},77620:function(Mt,N,F){"use strict";var k=this&&this.__assign||function(){return k=Object.assign||function(d){for(var c,s=1,m=arguments.length;s1){var se=k({},K);delete se.size,R.push(se)}});var j=[];m.forEach(function(K){var ne=R.find(function(fe){return fe.id===K.source}),se=R.find(function(fe){return fe.id===K.target});ne&&se&&j.push(K)});var Q=new v.DagreLayout({type:"dagre",ranksep:c.nodeMinGap,nodesep:c.nodeMinGap}),G=Q.layout({nodes:R,edges:j}).nodes;s.forEach(function(K){var ne=(G||[]).find(function(se){return se.id===K.id});K.x=(ne==null?void 0:ne.x)||M/2,K.y=(ne==null?void 0:ne.y)||P/2});var W=JSON.parse(JSON.stringify(s)),H=JSON.parse(JSON.stringify(m)),Z=T.forceSimulation().nodes(W).force("link",T.forceLink(H).id(function(K){return K.id}).distance(function(K){var ne=j.find(function(se){return se.source===K.source&&se.target===K.target});return ne?30:20})).force("charge",T.forceManyBody()).force("center",T.forceCenter(M/2,P/2)).force("x",T.forceX(M/2)).force("y",T.forceY(P/2)).alpha(.3).alphaDecay(.08).alphaMin(.001),J=new Promise(function(K){Z.on("end",function(){s.forEach(function(Se){var we=W.find(function(Te){return Te.id===Se.id});we&&(Se.x=we.x,Se.y=we.y)});var ne=Math.min.apply(Math,s.map(function(Se){return Se.x})),se=Math.max.apply(Math,s.map(function(Se){return Se.x})),fe=Math.min.apply(Math,s.map(function(Se){return Se.y})),Ie=Math.max.apply(Math,s.map(function(Se){return Se.y})),ye=M/(se-ne),Ae=P/(Ie-fe);s.forEach(function(Se){Se.x!==void 0&&ye<1&&(Se.x=(Se.x-ne)*ye),Se.y!==void 0&&Ae<1&&(Se.y=(Se.y-fe)*Ae)}),s.forEach(function(Se){Se.sizeTemp=Se.size,Se.size=[10,10]}),(0,p.default)(s,m),s.forEach(function(Se){Se.size=Se.sizeTemp||[],delete Se.sizeTemp}),(0,x.default)({nodes:s,edges:m},c),K()})});return J}N.default=g},78755:function(Mt,N,F){"use strict";var k=this&&this.__importDefault||function(_){return _&&_.__esModule?_:{default:_}};Object.defineProperty(N,"__esModule",{value:!0});var U=k(F(11761));function L(_,I){if(!_.nodes||_.nodes.length===0)return _;var T=I.width,x=I.height,p=I.nodeMinGap,v=1e4,g=1e4;_.nodes.forEach(function(H){var Z=H.size[0]||50,J=H.size[1]||50;v=Math.min(Z,v),g=Math.min(J,g)});var d=new U.default;d.init(T,x,{CELL_H:g,CELL_W:v}),_.nodes.forEach(function(H){var Z=d.occupyNearest(H);Z&&(Z.node={id:H.id,size:H.size},H.x=Z.x,H.y=Z.y,H.dx=Z.dx,H.dy=Z.dy)});for(var c=0;c<_.nodes.length;c++){var s=_.nodes[c],m=d.findGridByNodeId(s.id);if(!m)throw new Error("can not find node cell");var M=m.column,P=m.row;if(s.size[0]+p>v){for(var R=Math.ceil((s.size[0]+p)/v)-1,j=R,Q=0;Q-1;if(G&&!d.cells[M+Q+1][P].node)j--;else break}d.insertColumn(M,j)}if(s.size[1]+p>g){for(var R=Math.ceil((s.size[1]+p)/g)-1,j=R,Q=0;Q-1;if(G&&!d.cells[M][P+Q+1].node)j--;else break}d.insertRow(P,j)}}for(var c=0;cL;I--)for(var T=0;T=L&&(this.additionColumn[T]+=_);for(var I=0;I<_;I++)this.additionColumn.push(L+I+1);this.columnNum+=_}},U.prototype.insertRow=function(L,_){if(!(_<=0)){for(var I=0;I<_;I++)for(var T=0;TL;I--)this.cells[T][I+_]=F(F({},this.cells[T][I]),{dx:T,dy:I+_,x:T*this.CELL_W,y:(I+_)*this.CELL_H}),this.cells[T][I]={dx:T,dy:I,x:T*this.CELL_W,y:I*this.CELL_H,occupied:!1,node:null};for(var I=0;I=L&&(this.additionRow[I]+=_);for(var T=0;T<_;T++)this.additionRow.push(L+T+1);this.rowNum+=_}},U.prototype.getNodes=function(){for(var L=[],_=0;_I?(ft=K-Ae,He=fe-ne,Lt=parseFloat(ft?(ft/Math.cos(tt)).toFixed(2):He.toFixed(2)),Jt=parseFloat(He?(He/Math.sin(tt)).toFixed(2):ft.toFixed(2))):0He?Lt=Jt=parseFloat(ft?(ft/Math.cos(tt)).toFixed(2):He.toFixed(2)):Lt=Jt=parseFloat(He?(He/Math.sin(tt)).toFixed(2):ft.toFixed(2))):tt<-I?(ft=K-Ae,He=-(ye-J),ft>He?Lt=Jt=parseFloat(ft?(ft/Math.cos(tt)).toFixed(2):He.toFixed(2)):Lt=Jt=parseFloat(He?(He/Math.sin(tt)).toFixed(2):ft.toFixed(2))):(ft=Ie-se,Math.abs(Ge)>(ne-J)/2?He=J-ye:He=Ge,ft>He?Lt=Jt=parseFloat(ft?(ft/Math.cos(tt)).toFixed(2):He.toFixed(2)):Lt=Jt=parseFloat(He&&tt!==0?(He/Math.sin(tt)).toFixed(2):ft.toFixed(2)));var Qe=parseFloat(tt.toFixed(2)),ut=Z;return Z&&(ut=Tne?H:W,fe=K>ne?W:H,Ie=se.x-se.size[0]/2,ye=se.y-se.size[1]/2,Ae=se.x+se.size[0]/2,Se=se.y+se.size[1]/2,we=fe.x-fe.size[0]/2,Te=fe.y-fe.size[1]/2,ke=fe.x+fe.size[0]/2,Ge=fe.y+fe.size[1]/2,tt=se.x,He=se.y,ft=fe.x,Lt=fe.y,Jt=Ae>=we&&ke>=Ie&&Se>=Te&&Ge>=ye,Qe=0,ut=0;if(Jt){ut=Math.sqrt(Math.pow(ft-tt,2)+Math.pow(Lt-He,2));var xt=Ie>we?Ie:we,dt=ye>Te?ye:Te,pt=AeF||J.y>k)&&(H+=1e12);for(var K=Z+1;K150,Te=Se<30||Se>150,ke=Ae>70&&Ae<110,Ge=Se>70&&Se<110;if(we&&!Te||Ae*Se<0){fe=!1;break}else if(ke&&!Ge||Ae*Se<0){fe=!1;break}else if((ye.x-W.x)*(ye.x-H.x)<0){fe=!1;break}else if((ye.y-W.y)*(ye.y-H.y)<0){fe=!1;break}}return fe}function j(W,H){for(var Z=!1,J=1,K=v*J,ne=g*J,se=[K,-K,0,0],fe=[0,0,ne,-ne],Ie=0;Iec?(Ae=Te,Z=!0):(ye.x-=se[Se],ye.y-=fe[Se])}}return d>c&&(d*=s),Z?P(W):0}function Q(W,H){var Z=0;(W.x<0||W.y<0||W.x+W.size[0]+20>F||W.y+W.size[1]+20>k)&&(Z+=1e12);for(var J=0;J0&&(fe++,!(fe>=se));){var Ie=j(W,H);Ie!==0&&(ne=Ie),K=ne-Z,Z=ne,K===0?--J:J=20}return W.forEach(function(ye){ye.x=ye.x-ye.size[0]/2,ye.y=ye.y-ye.size[1]/2}),{nodes:W,edges:H}}N.default=G},45515:function(Mt,N,F){"use strict";Object.defineProperty(N,"__esModule",{value:!0}),N.forceNBody=void 0;var k=F(80789),U=.81,L=.1;function _(p,v,g,d,c){var s=g/d,m=p.map(function(P,R){var j=v[P.id],Q=j.data,G=j.x,W=j.y,H=j.size,Z=Q.layout.force.nodeStrength;return{x:G,y:W,size:H,index:R,vx:0,vy:0,weight:s*Z}}),M=(0,k.quadtree)(m,function(P){return P.x},function(P){return P.y}).visitAfter(I);return m.forEach(function(P){x(P,M)}),m.map(function(P,R){var j=v[p[R].id],Q=j.data.layout.force.mass,G=Q===void 0?1:Q;c[2*R]=P.vx/G,c[2*R+1]=P.vy/G}),c}N.forceNBody=_;function I(p){var v=0,g=0,d=0;if(p.length){for(var c=0;c<4;c++){var s=p[c];s&&s.weight&&(v+=s.weight,g+=s.x*s.weight,d+=s.y*s.weight)}p.x=g/v,p.y=d/v,p.weight=v}else{var s=p;p.x=s.data.x,p.y=s.data.y,p.weight=s.data.weight}}var T=function(p,v,g,d,c,s){var m=s.x-p.x||L,M=s.y-p.y||L,P=d-v,R=m*m+M*M,j=Math.sqrt(R)*R;if(P*P*U1&&(Se=(0,_.getAvgNodePosition)(Te))}else Se=void 0;return{x:Se==null?void 0:Se.x,y:Se==null?void 0:Se.y}}}}if(c){Q||(Q=this.getSameTypeLeafMap());var W=Array.from(new Set(m.map(function(se,fe){return se[s]}))).filter(function(se){return se!==void 0}),H={};W.forEach(function(se){var fe=m.filter(function(Ie){return Ie[s]===se}).map(function(Ie){return M[Ie.id]});H[se]=(0,_.getAvgNodePosition)(fe)}),j={single:function(se){return R(se)},leaf:function(se){return R(se)},others:function(se){return R(se)},center:function(se,fe,Ie){var ye=H[se[s]];return{x:ye==null?void 0:ye.x,y:ye==null?void 0:ye.y}}}}this.centripetalOptions=U(U({},this.centripetalOptions),j);var Z=this.centripetalOptions,J=Z.leaf,K=Z.single,ne=Z.others;J&&typeof J!="function"&&(this.centripetalOptions.leaf=function(){return J}),K&&typeof K!="function"&&(this.centripetalOptions.single=function(){return K}),ne&&typeof ne!="function"&&(this.centripetalOptions.others=function(){return ne})},v.prototype.updateCfg=function(g){g&&Object.assign(this,g)},v.prototype.getDefaultCfg=function(){return{maxIteration:500,gravity:10,enableTick:!0,animate:!0}},v.prototype.execute=function(){var g=this;g.stop();var d=g.nodes,c=g.edges,s=g.defSpringLen;if(g.judgingDistance=0,!d||d.length===0){g.onLayoutEnd([]);return}!g.width&&typeof window!="undefined"&&(g.width=window.innerWidth),!g.height&&typeof window!="undefined"&&(g.height=window.innerHeight),g.center||(g.center=[g.width/2,g.height/2]);var m=g.center;if(d.length===1){d[0].x=m[0],d[0].y=m[1],g.onLayoutEnd([U({},d[0])]);return}g.degreesMap=(0,_.getDegreeMap)(d,c),g.propsGetMass?g.getMass=g.propsGetMass:g.getMass=function(W){var H=1;(0,_.isNumber)(W.mass)&&(H=W.mass);var Z=g.degreesMap[W.id].all;return!Z||Z<5?H:Z*5*H};var M=g.nodeSize,P;if(g.preventOverlap){var R=g.nodeSpacing,j;(0,_.isNumber)(R)?j=function(){return R}:(0,_.isFunction)(R)?j=R:j=function(){return 0},M?(0,_.isArray)(M)?P=function(W){return Math.max(M[0],M[1])+j(W)}:P=function(W){return M+j(W)}:P=function(W){return W.size?(0,_.isArray)(W.size)?Math.max(W.size[0],W.size[1])+j(W):(0,_.isObject)(W.size)?Math.max(W.size.width,W.size.height)+j(W):W.size+j(W):10+j(W)}}g.nodeSize=P,g.linkDistance=T(g.linkDistance,1),g.nodeStrength=T(g.nodeStrength,1),g.edgeStrength=T(g.edgeStrength,1);var Q={},G={};d.forEach(function(W,H){(0,_.isNumber)(W.x)||(W.x=Math.random()*g.width),(0,_.isNumber)(W.y)||(W.y=Math.random()*g.height);var Z=g.degreesMap[W.id];Q[W.id]=U(U({},W),{data:U(U({},W.data),{size:g.nodeSize(W)||30,layout:{inDegree:Z.in,outDegree:Z.out,degree:Z.all,tDegree:Z.in,sDegree:Z.out,force:{mass:g.getMass(W),nodeStrength:g.nodeStrength(W,c)}}})}),G[W.id]=H}),g.nodeMap=Q,g.nodeIdxMap=G,g.edgeInfos=[],c==null||c.forEach(function(W){var H=Q[W.source],Z=Q[W.target];!H||!Z?elf.edgeInfos.push({}):g.edgeInfos.push({edgeStrength:g.edgeStrength(W),linkDistance:s?s(U(U({},W),{source:H,target:Z}),H,Z):g.linkDistance(W,H,Z)||1+(M(H)+M(H)||0)/2})}),this.getCentripetalOptions(),g.onLayoutEnd=g.onLayoutEnd||function(){},g.run()},v.prototype.run=function(){var g=this,d=g.maxIteration,c=g.nodes,s=g.edges,m=g.workerEnabled,M=g.minMovement,P=g.animate,R=g.nodeMap,j=g.height;if(g.currentMinY=0,g.currentMaxY=j,!!c){var Q=[];if(c.forEach(function(ne,se){Q[2*se]=0,Q[2*se+1]=0}),this.defSideCoe&&typeof this.defSideCoe=="function"){var G={};s.forEach(function(ne){var se=ne.source,fe=ne.target;G[se]=G[se]||[],G[se].push(ne),G[fe]=G[fe]||[],G[fe].push(ne)}),this.relatedEdges=G}var W=d,H=!P;if(m||H){for(var Z=0,J=0;(g.judgingDistance>M||J<1)&&J=W||g.judgingDistanceP){var H=P/W;Q=H*Q,G=H*G}d[2*j]=Q,d[2*j+1]=G})},v.prototype.updatePosition=function(g,d){var c=this,s=c.nodes,m=c.distanceThresholdMode,M=c.nodeMap;if(!(s!=null&&s.length)){this.judgingDistance=0;return}var P=0;m==="max"?c.judgingDistance=-1/0:m==="min"&&(c.judgingDistance=1/0);var R=1/0,j=-1/0;s.forEach(function(Q,G){var W=M[Q.id];if((0,_.isNumber)(Q.fx)&&(0,_.isNumber)(Q.fy)){Q.x=Q.fx,Q.y=Q.fy,W.x=Q.x,W.y=Q.y;return}var H=g[2*G]*d,Z=g[2*G+1]*d;Q.x+=H,Q.y+=Z,W.x=Q.x,W.y=Q.y,Q.yj&&(j=Q.y);var J=Math.sqrt(H*H+Z*Z);switch(m){case"max":c.judgingDistanceJ&&(c.judgingDistance=J);break;default:P=P+J;break}}),this.currentMinY=R,this.currentMaxY=j,(!m||m==="mean")&&(c.judgingDistance=P/s.length)},v.prototype.stop=function(){this.timeInterval&&typeof window!="undefined"&&window.clearInterval(this.timeInterval)},v.prototype.destroy=function(){var g=this;g.stop(),g.tick=null,g.nodes=null,g.edges=null,g.destroyed=!0},v.prototype.getType=function(){return"force2"},v.prototype.getSameTypeLeafMap=function(){var g=this,d=g.nodeClusterBy,c=g.nodes,s=g.edges,m=g.nodeMap,M=g.degreesMap;if(c!=null&&c.length){var P={};return c.forEach(function(R,j){var Q=M[R.id].all;Q===1&&(P[R.id]=(0,_.getCoreNodeAndRelativeLeafNodes)("leaf",R,s,d,M,m))}),P}},v}(L.Base);N.Force2Layout=x},69445:function(Mt,N){"use strict";Object.defineProperty(N,"__esModule",{value:!0});var F=function(){function k(U){this.id=U.id||0,this.rx=U.rx,this.ry=U.ry,this.fx=0,this.fy=0,this.mass=U.mass,this.degree=U.degree,this.g=U.g||0}return k.prototype.distanceTo=function(U){var L=this.rx-U.rx,_=this.ry-U.ry;return Math.hypot(L,_)},k.prototype.setPos=function(U,L){this.rx=U,this.ry=L},k.prototype.resetForce=function(){this.fx=0,this.fy=0},k.prototype.addForce=function(U){var L=U.rx-this.rx,_=U.ry-this.ry,I=Math.hypot(L,_);I=I<1e-4?1e-4:I;var T=this.g*(this.degree+1)*(U.degree+1)/I;this.fx+=T*L/I,this.fy+=T*_/I},k.prototype.in=function(U){return U.contains(this.rx,this.ry)},k.prototype.add=function(U){var L=this.mass+U.mass,_=(this.rx*this.mass+U.rx*U.mass)/L,I=(this.ry*this.mass+U.ry*U.mass)/L,T=this.degree+U.degree,x={rx:_,ry:I,mass:L,degree:T};return new k(x)},k}();N.default=F},54255:function(Mt,N,F){"use strict";var k=this&&this.__extends||function(){var v=function(g,d){return v=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(c,s){c.__proto__=s}||function(c,s){for(var m in s)Object.prototype.hasOwnProperty.call(s,m)&&(c[m]=s[m])},v(g,d)};return function(g,d){if(typeof d!="function"&&d!==null)throw new TypeError("Class extends value "+String(d)+" is not a constructor or null");v(g,d);function c(){this.constructor=g}g.prototype=d===null?Object.create(d):(c.prototype=d.prototype,new c)}}(),U=this&&this.__importDefault||function(v){return v&&v.__esModule?v:{default:v}};Object.defineProperty(N,"__esModule",{value:!0}),N.ForceAtlas2Layout=void 0;var L=F(46833),_=F(44941),I=U(F(69445)),T=U(F(16067)),x=U(F(80374)),p=function(v){k(g,v);function g(d){var c=v.call(this)||this;return c.center=[0,0],c.width=300,c.height=300,c.nodes=[],c.edges=[],c.kr=5,c.kg=1,c.mode="normal",c.preventOverlap=!1,c.dissuadeHubs=!1,c.barnesHut=void 0,c.maxIteration=0,c.ks=.1,c.ksmax=10,c.tao=.1,c.onLayoutEnd=function(){},c.prune=void 0,c.updateCfg(d),c}return g.prototype.getDefaultCfg=function(){return{}},g.prototype.execute=function(){var d=this,c=d.nodes,s=d.onLayoutEnd,m=d.prune,M=d.maxIteration;!d.width&&typeof window!="undefined"&&(d.width=window.innerWidth),!d.height&&typeof window!="undefined"&&(d.height=window.innerHeight);for(var P=[],R=c.length,j=0;j250&&(d.barnesHut=!0),d.prune===void 0&&R>100&&(d.prune=!0),this.maxIteration===0&&!d.prune?(M=250,R<=200&&R>100?M=1e3:R>200&&(M=1200),this.maxIteration=M):this.maxIteration===0&&m&&(M=100,R<=200&&R>100?M=500:R>200&&(M=950),this.maxIteration=M),d.kr||(d.kr=50,R>100&&R<=500?d.kr=20:R>500&&(d.kr=1)),d.kg||(d.kg=20,R>100&&R<=500?d.kg=10:R>500&&(d.kg=1)),this.nodes=d.updateNodesByForces(P),s()},g.prototype.updateNodesByForces=function(d){for(var c=this,s=c.edges,m=c.maxIteration,M=c.nodes,P=s.filter(function(Se){var we=(0,_.getEdgeTerminal)(Se,"source"),Te=(0,_.getEdgeTerminal)(Se,"target");return we!==Te}),R=M.length,j=P.length,Q=[],G={},W={},H=[],Z=0;Z0;){for(var ye=0;yene||!G)?se=this.getOptRepGraForces(se,Ie,M):se=this.getRepGraForces(K,ne,se,J,P,M);var Se=this.updatePos(se,fe,Z,M);j=Se.nodes,Z=Se.sg,K--,R.tick&&R.tick()}return j},g.prototype.getAttrForces=function(d,c,s,m,M,P,R,j){for(var Q=this,G=Q.nodes,W=Q.preventOverlap,H=Q.dissuadeHubs,Z=Q.mode,J=Q.prune,K=0;K0&&(Se=Ae,we=Ae),j[2*m[ne.id]]+=Se*ye[0],j[2*m[fe.id]]-=we*ye[0],j[2*m[ne.id]+1]+=Se*ye[1],j[2*m[fe.id]+1]-=we*ye[1]}}return j},g.prototype.getRepGraForces=function(d,c,s,m,M,P){for(var R=this,j=R.nodes,Q=R.preventOverlap,G=R.kr,W=R.kg,H=R.center,Z=R.prune,J=j.length,K=0;K0&&(Ie=G*(P[K]+1)*(P[ne]+1)/fe),s[2*K]-=Ie*se[0],s[2*ne]+=Ie*se[0],s[2*K+1]-=Ie*se[1],s[2*ne+1]+=Ie*se[1]}var ye=[j[K].x-H[0],j[K].y-H[1]],Ae=Math.hypot(ye[0],ye[1]);ye[0]=ye[0]/Ae,ye[1]=ye[1]/Ae;var Se=W*(P[K]+1);s[2*K]-=Se*ye[0],s[2*K+1]-=Se*ye[1]}return s},g.prototype.getOptRepGraForces=function(d,c,s){for(var m=this,M=m.nodes,P=m.kg,R=m.center,j=m.prune,Q=M.length,G=9e10,W=-9e10,H=9e10,Z=-9e10,J=0;J=W&&(W=M[J].x),M[J].x<=G&&(G=M[J].x),M[J].y>=Z&&(Z=M[J].y),M[J].y<=H&&(H=M[J].y));for(var K=Math.max(W-G,Z-H),ne={xmid:(W+G)/2,ymid:(Z+H)/2,length:K,massCenter:R,mass:Q},se=new T.default(ne),fe=new x.default(se),J=0;J1.5*Ae?1.5*Ae:s);for(var ne=0;neTe?Te:Se;var ke=Se*d[2*ne],Ge=Se*d[2*ne+1];P[ne].x+=ke,P[ne].y+=Ge}return{nodes:P,sg:s}},g}(L.Base);N.ForceAtlas2Layout=p},16067:function(Mt,N){"use strict";Object.defineProperty(N,"__esModule",{value:!0});var F=function(){function k(U){this.xmid=U.xmid,this.ymid=U.ymid,this.length=U.length,this.massCenter=U.massCenter||[0,0],this.mass=U.mass||1}return k.prototype.getLength=function(){return this.length},k.prototype.contains=function(U,L){var _=this.length/2;return U<=this.xmid+_&&U>=this.xmid-_&&L<=this.ymid+_&&L>=this.ymid-_},k.prototype.NW=function(){var U=this.xmid-this.length/4,L=this.ymid+this.length/4,_=this.length/2,I={xmid:U,ymid:L,length:_},T=new k(I);return T},k.prototype.NE=function(){var U=this.xmid+this.length/4,L=this.ymid+this.length/4,_=this.length/2,I={xmid:U,ymid:L,length:_},T=new k(I);return T},k.prototype.SW=function(){var U=this.xmid-this.length/4,L=this.ymid-this.length/4,_=this.length/2,I={xmid:U,ymid:L,length:_},T=new k(I);return T},k.prototype.SE=function(){var U=this.xmid+this.length/4,L=this.ymid-this.length/4,_=this.length/2,I={xmid:U,ymid:L,length:_},T=new k(I);return T},k}();N.default=F},80374:function(Mt,N){"use strict";Object.defineProperty(N,"__esModule",{value:!0});var F=function(){function k(U){this.body=null,this.quad=null,this.NW=null,this.NE=null,this.SW=null,this.SE=null,this.theta=.5,U!=null&&(this.quad=U)}return k.prototype.insert=function(U){if(this.body==null){this.body=U;return}this._isExternal()?(this.quad&&(this.NW=new k(this.quad.NW()),this.NE=new k(this.quad.NE()),this.SW=new k(this.quad.SW()),this.SE=new k(this.quad.SE())),this._putBody(this.body),this._putBody(U),this.body=this.body.add(U)):(this.body=this.body.add(U),this._putBody(U))},k.prototype._putBody=function(U){this.quad&&(U.in(this.quad.NW())&&this.NW?this.NW.insert(U):U.in(this.quad.NE())&&this.NE?this.NE.insert(U):U.in(this.quad.SW())&&this.SW?this.SW.insert(U):U.in(this.quad.SE())&&this.SE&&this.SE.insert(U))},k.prototype._isExternal=function(){return this.NW==null&&this.NE==null&&this.SW==null&&this.SE==null},k.prototype.updateForce=function(U){if(!(this.body==null||U===this.body))if(this._isExternal())U.addForce(this.body);else{var L=this.quad?this.quad.getLength():0,_=this.body.distanceTo(U);L/_-1||(G[H]=Q[H])}),G}),R.ticking=!1},M.prototype.execute=function(P){var R=this,j=R.nodes,Q=R.edges;if(!R.ticking){var G=R.forceSimulation,W=R.alphaMin,H=R.alphaDecay,Z=R.alpha;if(G){if(P){if(R.clustering&&R.clusterForce&&(R.clusterForce.nodes(j),R.clusterForce.links(Q)),G.nodes(j),Q&&R.edgeForce)R.edgeForce.links(Q);else if(Q&&!R.edgeForce){var ne=T.forceLink().id(function(ye){return ye.id}).links(Q);R.edgeStrength&&ne.strength(R.edgeStrength),R.linkDistance&&ne.distance(R.linkDistance),R.edgeForce=ne,G.force("link",ne)}}R.preventOverlap&&R.overlapProcess(G),G.alpha(Z).restart(),this.ticking=!0}else try{var J=T.forceManyBody();if(R.nodeStrength&&J.strength(R.nodeStrength),G=T.forceSimulation().nodes(j),R.clustering){var K=(0,x.default)();K.centerX(R.center[0]).centerY(R.center[1]).template("force").strength(R.clusterFociStrength),Q&&K.links(Q),j&&K.nodes(j),K.forceLinkDistance(R.clusterEdgeDistance).forceLinkStrength(R.clusterEdgeStrength).forceCharge(R.clusterNodeStrength).forceNodeSize(R.clusterNodeSize),R.clusterForce=K,G.force("group",K)}if(G.force("center",T.forceCenter(R.center[0],R.center[1])).force("charge",J).alpha(Z).alphaDecay(H).alphaMin(W),R.preventOverlap&&R.overlapProcess(G),Q){var ne=T.forceLink().id(function(Ie){return Ie.id}).links(Q);R.edgeStrength&&ne.strength(R.edgeStrength),R.linkDistance&&ne.distance(R.linkDistance),R.edgeForce=ne,G.force("link",ne)}if(R.workerEnabled&&!s()&&(R.workerEnabled=!1,console.warn("workerEnabled option is only supported when running in web worker.")),!R.workerEnabled)G.on("tick",function(){R.tick()}).on("end",function(){R.ticking=!1,R.onLayoutEnd&&R.onLayoutEnd()}),R.ticking=!0;else{G.stop();for(var se=c(G),fe=1;fe<=se;fe++)G.tick(),postMessage({nodes:j,currentTick:fe,totalTicks:se,type:g.LAYOUT_MESSAGE.TICK},void 0);R.ticking=!1}R.forceSimulation=G,R.ticking=!0}catch(Ie){R.ticking=!1,console.warn(Ie)}}},M.prototype.overlapProcess=function(P){var R=this,j=R.nodeSize,Q=R.nodeSpacing,G,W,H=R.collideStrength;if((0,p.isNumber)(Q)?W=function(){return Q}:(0,p.isFunction)(Q)?W=Q:W=function(){return 0},!j)G=function(ne){if(ne.size){if((0,p.isArray)(ne.size)){var se=ne.size[0]>ne.size[1]?ne.size[0]:ne.size[1];return se/2+W(ne)}if((0,p.isObject)(ne.size)){var se=ne.size.width>ne.size.height?ne.size.width:ne.size.height;return se/2+W(ne)}return ne.size/2+W(ne)}return 10+W(ne)};else if((0,p.isFunction)(j))G=function(ne){var se=j(ne);return se+W(ne)};else if((0,p.isArray)(j)){var Z=j[0]>j[1]?j[0]:j[1],J=Z/2;G=function(ne){return J+W(ne)}}else if((0,p.isNumber)(j)){var K=j/2;G=function(ne){return K+W(ne)}}else G=function(){return 10};P.force("collisionForce",T.forceCollide(G).strength(H))},M.prototype.updateCfg=function(P){var R=this;R.ticking&&(R.forceSimulation.stop(),R.ticking=!1),R.forceSimulation=null,Object.assign(R,P)},M.prototype.destroy=function(){var P=this;P.ticking&&(P.forceSimulation.stop(),P.ticking=!1),P.nodes=null,P.edges=null,P.destroyed=!0},M}(v.Base);N.ForceLayout=d;function c(m){var M=m.alphaMin(),P=m.alphaTarget(),R=m.alpha(),j=Math.log((M-P)/(R-P))/Math.log(1-m.alphaDecay()),Q=Math.ceil(j);return Q}function s(){return typeof WorkerGlobalScope!="undefined"&&self instanceof WorkerGlobalScope}},22457:function(Mt,N,F){"use strict";var k=this&&this.__createBinding||(Object.create?function(L,_,I,T){T===void 0&&(T=I);var x=Object.getOwnPropertyDescriptor(_,I);(!x||("get"in x?!_.__esModule:x.writable||x.configurable))&&(x={enumerable:!0,get:function(){return _[I]}}),Object.defineProperty(L,T,x)}:function(L,_,I,T){T===void 0&&(T=I),L[T]=_[I]}),U=this&&this.__exportStar||function(L,_){for(var I in L)I!=="default"&&!Object.prototype.hasOwnProperty.call(_,I)&&k(_,L,I)};Object.defineProperty(N,"__esModule",{value:!0}),U(F(84022),N)},92627:function(Mt,N,F){"use strict";var k=this&&this.__extends||function(){var T=function(x,p){return T=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(v,g){v.__proto__=g}||function(v,g){for(var d in g)Object.prototype.hasOwnProperty.call(g,d)&&(v[d]=g[d])},T(x,p)};return function(x,p){if(typeof p!="function"&&p!==null)throw new TypeError("Class extends value "+String(p)+" is not a constructor or null");T(x,p);function v(){this.constructor=x}x.prototype=p===null?Object.create(p):(v.prototype=p.prototype,new v)}}();Object.defineProperty(N,"__esModule",{value:!0}),N.FruchtermanLayout=void 0;var U=F(46833),L=F(44941),_=800,I=function(T){k(x,T);function x(p){var v=T.call(this)||this;return v.maxIteration=1e3,v.workerEnabled=!1,v.gravity=10,v.speed=5,v.clustering=!1,v.clusterGravity=10,v.nodes=[],v.edges=[],v.width=300,v.height=300,v.nodeMap={},v.nodeIdxMap={},v.onLayoutEnd=function(){},v.tick=function(){},v.animate=!0,v.updateCfg(p),v}return x.prototype.getDefaultCfg=function(){return{maxIteration:1e3,gravity:10,speed:1,clustering:!1,clusterGravity:10,animate:!0}},x.prototype.execute=function(){var p=this,v,g,d=this,c=d.nodes;if(d.timeInterval!==void 0&&typeof window!="undefined"&&window.clearInterval(d.timeInterval),!c||c.length===0){(v=d.onLayoutEnd)===null||v===void 0||v.call(d);return}!d.width&&typeof window!="undefined"&&(d.width=window.innerWidth),!d.height&&typeof window!="undefined"&&(d.height=window.innerHeight),d.center||(d.center=[d.width/2,d.height/2]);var s=d.center;if(c.length===1){c[0].x=s[0],c[0].y=s[1],(g=d.onLayoutEnd)===null||g===void 0||g.call(d);return}var m={},M={};return c.forEach(function(P,R){(0,L.isNumber)(P.x)||(P.x=Math.random()*p.width),(0,L.isNumber)(P.y)||(P.y=Math.random()*p.height),m[P.id]=P,M[P.id]=R}),d.nodeMap=m,d.nodeIdxMap=M,d.run()},x.prototype.run=function(){var p,v=this,g=v.nodes;if(g){var d=v.edges,c=v.maxIteration,s=v.workerEnabled,m=v.clustering,M=v.animate,P={};if(m&&g.forEach(function(Q){P[Q.cluster]===void 0&&(P[Q.cluster]={name:Q.cluster,cx:0,cy:0,count:0})}),s||!M){for(var R=0;R=c&&((Q=v.onLayoutEnd)===null||Q===void 0||Q.call(v),window.clearInterval(v.timeInterval))},0)}return{nodes:g,edges:d}}},x.prototype.runOneStep=function(p){var v,g=this,d=g.nodes;if(d){var c=g.edges,s=g.center,m=g.gravity,M=g.speed,P=g.clustering,R=g.height*g.width,j=Math.sqrt(R)/10,Q=R/(d.length+1),G=Math.sqrt(Q),W=[];if(d.forEach(function(J,K){W[K]={x:0,y:0}}),g.applyCalculate(d,c,W,G,Q),P){for(var H in p)p[H].cx=0,p[H].cy=0,p[H].count=0;d.forEach(function(J){var K=p[J.cluster];(0,L.isNumber)(J.x)&&(K.cx+=J.x),(0,L.isNumber)(J.y)&&(K.cy+=J.y),K.count++});for(var H in p)p[H].cx/=p[H].count,p[H].cy/=p[H].count;var Z=g.clusterGravity||m;d.forEach(function(J,K){if(!(!(0,L.isNumber)(J.x)||!(0,L.isNumber)(J.y))){var ne=p[J.cluster],se=Math.sqrt((J.x-ne.cx)*(J.x-ne.cx)+(J.y-ne.cy)*(J.y-ne.cy)),fe=G*Z;W[K].x-=fe*(J.x-ne.cx)/se,W[K].y-=fe*(J.y-ne.cy)/se}})}d.forEach(function(J,K){if(!(!(0,L.isNumber)(J.x)||!(0,L.isNumber)(J.y))){var ne=.01*G*m;W[K].x-=ne*(J.x-s[0]),W[K].y-=ne*(J.y-s[1])}}),d.forEach(function(J,K){if((0,L.isNumber)(J.fx)&&(0,L.isNumber)(J.fy)){J.x=J.fx,J.y=J.fy;return}if(!(!(0,L.isNumber)(J.x)||!(0,L.isNumber)(J.y))){var ne=Math.sqrt(W[K].x*W[K].x+W[K].y*W[K].y);if(ne>0){var se=Math.min(j*(M/_),ne);J.x+=W[K].x/ne*se,J.y+=W[K].y/ne*se}}}),(v=g.tick)===null||v===void 0||v.call(g)}},x.prototype.applyCalculate=function(p,v,g,d,c){var s=this;s.calRepulsive(p,g,c),v&&s.calAttractive(v,g,d)},x.prototype.calRepulsive=function(p,v,g){p.forEach(function(d,c){v[c]={x:0,y:0},p.forEach(function(s,m){if(c!==m&&!(!(0,L.isNumber)(d.x)||!(0,L.isNumber)(s.x)||!(0,L.isNumber)(d.y)||!(0,L.isNumber)(s.y))){var M=d.x-s.x,P=d.y-s.y,R=M*M+P*P;if(R===0){R=1;var j=c>m?1:-1;M=.01*j,P=.01*j}var Q=g/R;v[c].x+=M*Q,v[c].y+=P*Q}})})},x.prototype.calAttractive=function(p,v,g){var d=this;p.forEach(function(c){var s=(0,L.getEdgeTerminal)(c,"source"),m=(0,L.getEdgeTerminal)(c,"target");if(!(!s||!m)){var M=d.nodeIdxMap[s],P=d.nodeIdxMap[m];if(M!==P){var R=d.nodeMap[s],j=d.nodeMap[m];if(!(!(0,L.isNumber)(j.x)||!(0,L.isNumber)(R.x)||!(0,L.isNumber)(j.y)||!(0,L.isNumber)(R.y))){var Q=j.x-R.x,G=j.y-R.y,W=Math.sqrt(Q*Q+G*G),H=W*W/g;v[P].x-=Q/W*H,v[P].y-=G/W*H,v[M].x+=Q/W*H,v[M].y+=G/W*H}}}})},x.prototype.stop=function(){this.timeInterval&&typeof window!="undefined"&&window.clearInterval(this.timeInterval)},x.prototype.destroy=function(){var p=this;p.stop(),p.tick=null,p.nodes=null,p.edges=null,p.destroyed=!0},x.prototype.getType=function(){return"fruchterman"},x}(U.Base);N.FruchtermanLayout=I},83254:function(Mt,N,F){"use strict";var k=this&&this.__extends||function(){var T=function(x,p){return T=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(v,g){v.__proto__=g}||function(v,g){for(var d in g)Object.prototype.hasOwnProperty.call(g,d)&&(v[d]=g[d])},T(x,p)};return function(x,p){if(typeof p!="function"&&p!==null)throw new TypeError("Class extends value "+String(p)+" is not a constructor or null");T(x,p);function v(){this.constructor=x}x.prototype=p===null?Object.create(p):(v.prototype=p.prototype,new v)}}();Object.defineProperty(N,"__esModule",{value:!0}),N.GForceLayout=void 0;var U=F(46833),L=F(44941),_=function(T,x){var p;return T?(0,L.isNumber)(T)?p=function(v){return T}:p=T:p=function(v){return x||1},p},I=function(T){k(x,T);function x(p){var v=T.call(this)||this;return v.maxIteration=500,v.workerEnabled=!1,v.edgeStrength=200,v.nodeStrength=1e3,v.coulombDisScale=.005,v.damping=.9,v.maxSpeed=1e3,v.minMovement=.5,v.interval=.02,v.factor=1,v.linkDistance=1,v.gravity=10,v.preventOverlap=!0,v.collideStrength=1,v.tick=function(){},v.nodes=[],v.edges=[],v.width=300,v.height=300,v.nodeMap={},v.nodeIdxMap={},v.animate=!0,v.updateCfg(p),v}return x.prototype.getDefaultCfg=function(){return{maxIteration:500,gravity:10,enableTick:!0,animate:!0}},x.prototype.execute=function(){var p,v,g=this,d=g.nodes;if(g.timeInterval!==void 0&&typeof window!="undefined"&&window.clearInterval(g.timeInterval),!d||d.length===0){(p=g.onLayoutEnd)===null||p===void 0||p.call(g);return}!g.width&&typeof window!="undefined"&&(g.width=window.innerWidth),!g.height&&typeof window!="undefined"&&(g.height=window.innerHeight),g.center||(g.center=[g.width/2,g.height/2]);var c=g.center;if(d.length===1){d[0].x=c[0],d[0].y=c[1],(v=g.onLayoutEnd)===null||v===void 0||v.call(g);return}var s={},m={};d.forEach(function(G,W){(0,L.isNumber)(G.x)||(G.x=Math.random()*g.width),(0,L.isNumber)(G.y)||(G.y=Math.random()*g.height),s[G.id]=G,m[G.id]=W}),g.nodeMap=s,g.nodeIdxMap=m,g.linkDistance=_(g.linkDistance,1),g.nodeStrength=_(g.nodeStrength,1),g.edgeStrength=_(g.edgeStrength,1);var M=g.nodeSize,P;if(g.preventOverlap){var R=g.nodeSpacing,j;(0,L.isNumber)(R)?j=function(){return R}:(0,L.isFunction)(R)?j=R:j=function(){return 0},M?(0,L.isArray)(M)?P=function(G){return Math.max(M[0],M[1])+j(G)}:P=function(G){return M+j(G)}:P=function(G){return G.size?(0,L.isArray)(G.size)?Math.max(G.size[0],G.size[1])+j(G):(0,L.isObject)(G.size)?Math.max(G.size.width,G.size.height)+j(G):G.size+j(G):10+j(G)}}g.nodeSize=P;var Q=g.edges;g.degrees=(0,L.getDegree)(d.length,g.nodeIdxMap,Q),g.getMass||(g.getMass=function(G){var W=G.mass||g.degrees[g.nodeIdxMap[G.id]].all||1;return W}),g.run()},x.prototype.run=function(){var p,v=this,g=v.maxIteration,d=v.nodes,c=v.workerEnabled,s=v.minMovement,m=v.animate;if(d)if(c||!m){for(var M=0;M=g&&((Q=v.onLayoutEnd)===null||Q===void 0||Q.call(v),window.clearInterval(v.timeInterval))}},0)}},x.prototype.reachMoveThreshold=function(p,v,g){var d=0;return p.forEach(function(c,s){var m=c.x-v[s].x,M=c.y-v[s].y;d+=Math.sqrt(m*m+M*M)}),d/=p.length,d=Z)){var J=Q.x-H.x,K=Q.y-H.y;J===0&&K===0&&(J=Math.random()*.01,K=Math.random()*.01);var ne=J*J+K*K,se=Math.sqrt(ne),fe=(se+.1)*s,Ie=J/se,ye=K/se,Ae=(R(Q)+R(H))*.5*c/(fe*fe),Se=d?d(H):1;if(p[2*G]+=Ie*Ae,p[2*G+1]+=ye*Ae,p[2*Z]-=Ie*Ae,p[2*Z+1]-=ye*Ae,m&&(j(Q)+j(H))/2>se){var we=P*(R(Q)+R(H))*.5/ne;p[2*G]+=Ie*we/W,p[2*G+1]+=ye*we/W,p[2*Z]-=Ie*we/Se,p[2*Z+1]-=ye*we/Se}}})})},x.prototype.calAttractive=function(p,v){var g=this,d=g.nodeMap,c=g.nodeIdxMap,s=g.linkDistance,m=g.edgeStrength,M=g.nodeSize,P=g.getMass;v.forEach(function(R,j){var Q=(0,L.getEdgeTerminal)(R,"source"),G=(0,L.getEdgeTerminal)(R,"target"),W=d[Q],H=d[G],Z=H.x-W.x,J=H.y-W.y;Z===0&&J===0&&(Z=Math.random()*.01,J=Math.random()*.01);var K=Math.sqrt(Z*Z+J*J),ne=Z/K,se=J/K,fe=s(R,W,H)||1+(M(W)+M(H)||0)/2,Ie=fe-K,ye=Ie*m(R),Ae=c[Q],Se=c[G],we=P?P(W):1,Te=P?P(H):1;p[2*Ae]-=ne*ye/we,p[2*Ae+1]-=se*ye/we,p[2*Se]+=ne*ye/Te,p[2*Se+1]+=se*ye/Te})},x.prototype.calGravity=function(p,v){for(var g=this,d=g.center,c=g.gravity,s=g.degrees,m=v.length,M=0;Mc.maxSpeed){var Q=c.maxSpeed/j;P=Q*P,R=Q*R}v[2*M]=P,v[2*M+1]=R})},x.prototype.updatePosition=function(p,v,g){g.forEach(function(d,c){if((0,L.isNumber)(d.fx)&&(0,L.isNumber)(d.fy)){d.x=d.fx,d.y=d.fy;return}var s=p[2*c]*v,m=p[2*c+1]*v;d.x+=s,d.y+=m})},x.prototype.stop=function(){this.timeInterval&&typeof window!="undefined"&&window.clearInterval(this.timeInterval)},x.prototype.destroy=function(){var p=this;p.stop(),p.tick=null,p.nodes=null,p.edges=null,p.destroyed=!0},x.prototype.getType=function(){return"gForce"},x}(U.Base);N.GForceLayout=I},6851:function(Mt,N,F){"use strict";var k=this&&this.__extends||function(){var d=function(c,s){return d=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(m,M){m.__proto__=M}||function(m,M){for(var P in M)Object.prototype.hasOwnProperty.call(M,P)&&(m[P]=M[P])},d(c,s)};return function(c,s){if(typeof s!="function"&&s!==null)throw new TypeError("Class extends value "+String(s)+" is not a constructor or null");d(c,s);function m(){this.constructor=c}c.prototype=s===null?Object.create(s):(m.prototype=s.prototype,new m)}}(),U=this&&this.__awaiter||function(d,c,s,m){function M(P){return P instanceof s?P:new s(function(R){R(P)})}return new(s||(s=Promise))(function(P,R){function j(W){try{G(m.next(W))}catch(H){R(H)}}function Q(W){try{G(m.throw(W))}catch(H){R(H)}}function G(W){W.done?P(W.value):M(W.value).then(j,Q)}G((m=m.apply(d,c||[])).next())})},L=this&&this.__generator||function(d,c){var s={label:0,sent:function(){if(P[0]&1)throw P[1];return P[1]},trys:[],ops:[]},m,M,P,R;return R={next:j(0),throw:j(1),return:j(2)},typeof Symbol=="function"&&(R[Symbol.iterator]=function(){return this}),R;function j(G){return function(W){return Q([G,W])}}function Q(G){if(m)throw new TypeError("Generator is already executing.");for(;R&&(R=0,G[0]&&(s=0)),s;)try{if(m=1,M&&(P=G[0]&2?M.return:G[0]?M.throw||((P=M.return)&&P.call(M),0):M.next)&&!(P=P.call(M,G[1])).done)return P;switch(M=0,P&&(G=[G[0]&2,P.value]),G[0]){case 0:case 1:P=G;break;case 4:return s.label++,{value:G[1],done:!1};case 5:s.label++,M=G[1],G=[0];continue;case 7:G=s.ops.pop(),s.trys.pop();continue;default:if(P=s.trys,!(P=P.length>0&&P[P.length-1])&&(G[0]===6||G[0]===2)){s=0;continue}if(G[0]===3&&(!P||G[1]>P[0]&&G[1] 0.0) {
dx += param * xDist;
dy += param * yDist;
if (xDist == 0 && yDist == 0) {
const sign = i < j ? 1 : -1;
dx += param * sign;
dy += param * sign;
}
}
}
}
return [dx, dy];
}
calcGravity(currentNode: vec4, nodeAttributes: vec4): vec2 { //
let dx = 0, dy = 0;
const vx = currentNode[0] - this.u_Center[0];
const vy = currentNode[1] - this.u_Center[1];
const gf = 0.01 * this.u_K * this.u_Gravity;
dx = gf * vx;
dy = gf * vy;
if (this.u_Clustering == 1) {
const clusterIdx = int(nodeAttributes[0]);
const center = this.u_ClusterCenters[clusterIdx];
const cvx = currentNode[0] - center[0];
const cvy = currentNode[1] - center[1];
const dist = sqrt(cvx * cvx + cvy * cvy) + 0.01;
const parma = this.u_K * this.u_ClusterGravity / dist;
dx += parma * cvx;
dy += parma * cvy;
}
return [dx, dy];
}
calcAttractive(i: int, currentNode: vec4): vec2 {
let dx = 0, dy = 0;
const arr_offset = int(floor(currentNode[2] + 0.5));
const length = int(floor(currentNode[3] + 0.5));
const node_buffer: vec4;
for (let p = 0; p < MAX_EDGE_PER_VERTEX; p++) {
if (p >= length) break;
const arr_idx = arr_offset + p;
// when arr_idx % 4 == 0 update currentNodedx_buffer
const buf_offset = arr_idx - arr_idx / 4 * 4;
if (p == 0 || buf_offset == 0) {
node_buffer = this.u_Data[int(arr_idx / 4)];
}
const float_j = buf_offset == 0 ? node_buffer[0] :
buf_offset == 1 ? node_buffer[1] :
buf_offset == 2 ? node_buffer[2] :
node_buffer[3];
const nextNode = this.u_Data[int(float_j)];
const xDist = currentNode[0] - nextNode[0];
const yDist = currentNode[1] - nextNode[1];
const dist = sqrt(xDist * xDist + yDist * yDist) + 0.01;
let attractiveF = dist / this.u_K;
if (dist > 0.0) {
dx -= xDist * attractiveF;
dy -= yDist * attractiveF;
if (xDist == 0 && yDist == 0) {
const sign = i < int(float_j) ? 1 : -1;
dx -= sign * attractiveF;
dy -= sign * attractiveF;
}
}
}
return [dx, dy];
}
@main
compute() {
const i = globalInvocationID.x;
const currentNode = this.u_Data[i];
let dx = 0, dy = 0;
if (i >= VERTEX_COUNT) {
this.u_Data[i] = currentNode;
return;
}
// [gravity, fx, fy, 0]
const nodeAttributes = this.u_AttributeArray[i];
if (nodeAttributes[1] != 0 && nodeAttributes[2] != 0) {
// the node is fixed
this.u_Data[i] = [
nodeAttributes[1],
nodeAttributes[2],
currentNode[2],
currentNode[3]
];
return;
}
// repulsive
const repulsive = this.calcRepulsive(i, currentNode);
dx += repulsive[0];
dy += repulsive[1];
// attractive
const attractive = this.calcAttractive(i, currentNode);
dx += attractive[0];
dy += attractive[1];
// gravity
const gravity = this.calcGravity(currentNode, nodeAttributes);
dx -= gravity[0];
dy -= gravity[1];
// speed
dx *= this.u_Speed;
dy *= this.u_Speed;
// move
const distLength = sqrt(dx * dx + dy * dy);
if (distLength > 0.0) {
const limitedDist = min(this.u_MaxDisplace * this.u_Speed, distLength);
this.u_Data[i] = [
currentNode[0] + dx / distLength * limitedDist,
currentNode[1] + dy / distLength * limitedDist,
currentNode[2],
currentNode[3]
];
}
}
}
`,N.fruchtermanBundle='{"shaders":{"WGSL":"","GLSL450":"","GLSL100":"\\n\\nfloat epsilon = 0.00001;\\nvec2 addrTranslation_1Dto2D(float address1D, vec2 texSize) {\\n vec2 conv_const = vec2(1.0 / texSize.x, 1.0 / (texSize.x * texSize.y));\\n vec2 normAddr2D = float(address1D) * conv_const;\\n return vec2(fract(normAddr2D.x + epsilon), normAddr2D.y);\\n}\\n\\nvoid barrier() {}\\n \\n\\nuniform vec2 u_OutputTextureSize;\\nuniform int u_OutputTexelCount;\\nvarying vec2 v_TexCoord;\\n\\nbool gWebGPUDebug = false;\\nvec4 gWebGPUDebugOutput = vec4(0.0);\\n\\n#define MAX_EDGE_PER_VERTEX __DefineValuePlaceholder__MAX_EDGE_PER_VERTEX\\n#define VERTEX_COUNT __DefineValuePlaceholder__VERTEX_COUNT\\n\\nuniform sampler2D u_Data;\\nuniform vec2 u_DataSize;\\nvec4 getDatau_Data(vec2 address2D) {\\n return vec4(texture2D(u_Data, address2D).rgba);\\n}\\nvec4 getDatau_Data(float address1D) {\\n return getDatau_Data(addrTranslation_1Dto2D(address1D, u_DataSize));\\n}\\nvec4 getDatau_Data(int address1D) {\\n return getDatau_Data(float(address1D));\\n}\\nuniform float u_K;\\nuniform float u_K2;\\nuniform vec2 u_Center;\\nuniform float u_Gravity;\\nuniform float u_ClusterGravity;\\nuniform float u_Speed;\\nuniform float u_MaxDisplace;\\nuniform float u_Clustering;\\nuniform sampler2D u_AttributeArray;\\nuniform vec2 u_AttributeArraySize;\\nvec4 getDatau_AttributeArray(vec2 address2D) {\\n return vec4(texture2D(u_AttributeArray, address2D).rgba);\\n}\\nvec4 getDatau_AttributeArray(float address1D) {\\n return getDatau_AttributeArray(addrTranslation_1Dto2D(address1D, u_AttributeArraySize));\\n}\\nvec4 getDatau_AttributeArray(int address1D) {\\n return getDatau_AttributeArray(float(address1D));\\n}\\nuniform sampler2D u_ClusterCenters;\\nuniform vec2 u_ClusterCentersSize;\\nvec4 getDatau_ClusterCenters(vec2 address2D) {\\n return vec4(texture2D(u_ClusterCenters, address2D).rgba);\\n}\\nvec4 getDatau_ClusterCenters(float address1D) {\\n return getDatau_ClusterCenters(addrTranslation_1Dto2D(address1D, u_ClusterCentersSize));\\n}\\nvec4 getDatau_ClusterCenters(int address1D) {\\n return getDatau_ClusterCenters(float(address1D));\\n}\\nvec2 calcRepulsive(int i, vec4 currentNode) {\\nivec3 workGroupSize = ivec3(1, 1, 1);\\nivec3 numWorkGroups = ivec3(1, 1, 1); \\nint globalInvocationIndex = int(floor(v_TexCoord.x * u_OutputTextureSize.x))\\n + int(floor(v_TexCoord.y * u_OutputTextureSize.y)) * int(u_OutputTextureSize.x);\\nint workGroupIDLength = globalInvocationIndex / (workGroupSize.x * workGroupSize.y * workGroupSize.z);\\nivec3 workGroupID = ivec3(workGroupIDLength / numWorkGroups.y / numWorkGroups.z, workGroupIDLength / numWorkGroups.x / numWorkGroups.z, workGroupIDLength / numWorkGroups.x / numWorkGroups.y);\\nint localInvocationIDZ = globalInvocationIndex / (workGroupSize.x * workGroupSize.y);\\nint localInvocationIDY = (globalInvocationIndex - localInvocationIDZ * workGroupSize.x * workGroupSize.y) / workGroupSize.x;\\nint localInvocationIDX = globalInvocationIndex - localInvocationIDZ * workGroupSize.x * workGroupSize.y - localInvocationIDY * workGroupSize.x;\\nivec3 localInvocationID = ivec3(localInvocationIDX, localInvocationIDY, localInvocationIDZ);\\nivec3 globalInvocationID = workGroupID * workGroupSize + localInvocationID;\\nint localInvocationIndex = localInvocationID.z * workGroupSize.x * workGroupSize.y\\n + localInvocationID.y * workGroupSize.x + localInvocationID.x;\\nfloat dx = 0.0;\\nfloat dy = 0.0;\\nfor (int j = 0; j < VERTEX_COUNT; j++) {if (i != j) {vec4 nextNode = getDatau_Data(j);\\nfloat xDist = currentNode.x - nextNode.x;\\nfloat yDist = currentNode.y - nextNode.y;\\nfloat dist = ((xDist * xDist) + (yDist * yDist)) + 0.01;\\nfloat param = u_K2 / dist;\\nif (dist > 0.0) {dx += param * xDist;\\ndy += param * yDist;\\nif ((xDist == 0.0) && (yDist == 0.0)) {float sign = (i < j) ? (1.0) : (-1.0);\\ndx += param * sign;\\ndy += param * sign;}}}}\\nreturn vec2(dx, dy);}\\nvec2 calcGravity(vec4 currentNode, vec4 nodeAttributes) {\\nivec3 workGroupSize = ivec3(1, 1, 1);\\nivec3 numWorkGroups = ivec3(1, 1, 1); \\nint globalInvocationIndex = int(floor(v_TexCoord.x * u_OutputTextureSize.x))\\n + int(floor(v_TexCoord.y * u_OutputTextureSize.y)) * int(u_OutputTextureSize.x);\\nint workGroupIDLength = globalInvocationIndex / (workGroupSize.x * workGroupSize.y * workGroupSize.z);\\nivec3 workGroupID = ivec3(workGroupIDLength / numWorkGroups.y / numWorkGroups.z, workGroupIDLength / numWorkGroups.x / numWorkGroups.z, workGroupIDLength / numWorkGroups.x / numWorkGroups.y);\\nint localInvocationIDZ = globalInvocationIndex / (workGroupSize.x * workGroupSize.y);\\nint localInvocationIDY = (globalInvocationIndex - localInvocationIDZ * workGroupSize.x * workGroupSize.y) / workGroupSize.x;\\nint localInvocationIDX = globalInvocationIndex - localInvocationIDZ * workGroupSize.x * workGroupSize.y - localInvocationIDY * workGroupSize.x;\\nivec3 localInvocationID = ivec3(localInvocationIDX, localInvocationIDY, localInvocationIDZ);\\nivec3 globalInvocationID = workGroupID * workGroupSize + localInvocationID;\\nint localInvocationIndex = localInvocationID.z * workGroupSize.x * workGroupSize.y\\n + localInvocationID.y * workGroupSize.x + localInvocationID.x;\\nfloat dx = 0.0;\\nfloat dy = 0.0;\\nfloat vx = currentNode.x - u_Center.x;\\nfloat vy = currentNode.y - u_Center.y;\\nfloat gf = (0.01 * u_K) * u_Gravity;\\ndx = gf * vx;\\ndy = gf * vy;\\nif (u_Clustering == 1.0) {int clusterIdx = int(nodeAttributes.x);\\nvec4 center = getDatau_ClusterCenters(clusterIdx);\\nfloat cvx = currentNode.x - center.x;\\nfloat cvy = currentNode.y - center.y;\\nfloat dist = sqrt((cvx * cvx) + (cvy * cvy)) + 0.01;\\nfloat parma = (u_K * u_ClusterGravity) / dist;\\ndx += parma * cvx;\\ndy += parma * cvy;}\\nreturn vec2(dx, dy);}\\nvec2 calcAttractive(int i, vec4 currentNode) {\\nivec3 workGroupSize = ivec3(1, 1, 1);\\nivec3 numWorkGroups = ivec3(1, 1, 1); \\nint globalInvocationIndex = int(floor(v_TexCoord.x * u_OutputTextureSize.x))\\n + int(floor(v_TexCoord.y * u_OutputTextureSize.y)) * int(u_OutputTextureSize.x);\\nint workGroupIDLength = globalInvocationIndex / (workGroupSize.x * workGroupSize.y * workGroupSize.z);\\nivec3 workGroupID = ivec3(workGroupIDLength / numWorkGroups.y / numWorkGroups.z, workGroupIDLength / numWorkGroups.x / numWorkGroups.z, workGroupIDLength / numWorkGroups.x / numWorkGroups.y);\\nint localInvocationIDZ = globalInvocationIndex / (workGroupSize.x * workGroupSize.y);\\nint localInvocationIDY = (globalInvocationIndex - localInvocationIDZ * workGroupSize.x * workGroupSize.y) / workGroupSize.x;\\nint localInvocationIDX = globalInvocationIndex - localInvocationIDZ * workGroupSize.x * workGroupSize.y - localInvocationIDY * workGroupSize.x;\\nivec3 localInvocationID = ivec3(localInvocationIDX, localInvocationIDY, localInvocationIDZ);\\nivec3 globalInvocationID = workGroupID * workGroupSize + localInvocationID;\\nint localInvocationIndex = localInvocationID.z * workGroupSize.x * workGroupSize.y\\n + localInvocationID.y * workGroupSize.x + localInvocationID.x;\\nfloat dx = 0.0;\\nfloat dy = 0.0;\\nint arr_offset = int(floor(currentNode.z + 0.5));\\nint length = int(floor(currentNode.w + 0.5));\\nvec4 node_buffer;\\nfor (int p = 0; p < MAX_EDGE_PER_VERTEX; p++) {if (p >= length) {break;}\\nint arr_idx = arr_offset + int(p);\\nint buf_offset = arr_idx - ((arr_idx / 4) * 4);\\nif ((p == 0) || (buf_offset == 0)) {node_buffer = getDatau_Data(int(arr_idx / 4));}\\nfloat float_j = (buf_offset == 0) ? (node_buffer.x) : ((buf_offset == 1) ? (node_buffer.y) : ((buf_offset == 2) ? (node_buffer.z) : (node_buffer.w)));\\nvec4 nextNode = getDatau_Data(int(float_j));\\nfloat xDist = currentNode.x - nextNode.x;\\nfloat yDist = currentNode.y - nextNode.y;\\nfloat dist = sqrt((xDist * xDist) + (yDist * yDist)) + 0.01;\\nfloat attractiveF = dist / u_K;\\nif (dist > 0.0) {dx -= xDist * attractiveF;\\ndy -= yDist * attractiveF;\\nif ((xDist == 0.0) && (yDist == 0.0)) {float sign = (i < int(float_j)) ? (1.0) : (-1.0);\\ndx -= sign * attractiveF;\\ndy -= sign * attractiveF;}}}\\nreturn vec2(dx, dy);}\\nvoid main() {\\nivec3 workGroupSize = ivec3(1, 1, 1);\\nivec3 numWorkGroups = ivec3(1, 1, 1); \\nint globalInvocationIndex = int(floor(v_TexCoord.x * u_OutputTextureSize.x))\\n + int(floor(v_TexCoord.y * u_OutputTextureSize.y)) * int(u_OutputTextureSize.x);\\nint workGroupIDLength = globalInvocationIndex / (workGroupSize.x * workGroupSize.y * workGroupSize.z);\\nivec3 workGroupID = ivec3(workGroupIDLength / numWorkGroups.y / numWorkGroups.z, workGroupIDLength / numWorkGroups.x / numWorkGroups.z, workGroupIDLength / numWorkGroups.x / numWorkGroups.y);\\nint localInvocationIDZ = globalInvocationIndex / (workGroupSize.x * workGroupSize.y);\\nint localInvocationIDY = (globalInvocationIndex - localInvocationIDZ * workGroupSize.x * workGroupSize.y) / workGroupSize.x;\\nint localInvocationIDX = globalInvocationIndex - localInvocationIDZ * workGroupSize.x * workGroupSize.y - localInvocationIDY * workGroupSize.x;\\nivec3 localInvocationID = ivec3(localInvocationIDX, localInvocationIDY, localInvocationIDZ);\\nivec3 globalInvocationID = workGroupID * workGroupSize + localInvocationID;\\nint localInvocationIndex = localInvocationID.z * workGroupSize.x * workGroupSize.y\\n + localInvocationID.y * workGroupSize.x + localInvocationID.x;\\nint i = globalInvocationID.x;\\nvec4 currentNode = getDatau_Data(i);\\nfloat dx = 0.0;\\nfloat dy = 0.0;\\nif (i >= VERTEX_COUNT) {gl_FragColor = vec4(currentNode);\\nreturn ;}\\nvec4 nodeAttributes = getDatau_AttributeArray(i);\\nif ((nodeAttributes.y != 0.0) && (nodeAttributes.z != 0.0)) {gl_FragColor = vec4(vec4(nodeAttributes.y, nodeAttributes.z, currentNode.z, currentNode.w));\\nreturn ;}\\nvec2 repulsive = calcRepulsive(i, currentNode);\\ndx += repulsive.x;\\ndy += repulsive.y;\\nvec2 attractive = calcAttractive(i, currentNode);\\ndx += attractive.x;\\ndy += attractive.y;\\nvec2 gravity = calcGravity(currentNode, nodeAttributes);\\ndx -= gravity.x;\\ndy -= gravity.y;\\ndx *= u_Speed;\\ndy *= u_Speed;\\nfloat distLength = sqrt((dx * dx) + (dy * dy));\\nif (distLength > 0.0) {float limitedDist = min(u_MaxDisplace * u_Speed, distLength);\\ngl_FragColor = vec4(vec4(currentNode.x + ((dx / distLength) * limitedDist), currentNode.y + ((dy / distLength) * limitedDist), currentNode.z, currentNode.w));}if (gWebGPUDebug) {\\n gl_FragColor = gWebGPUDebugOutput;\\n}}\\n"},"context":{"name":"","dispatch":[1,1,1],"threadGroupSize":[1,1,1],"maxIteration":1,"defines":[{"name":"MAX_EDGE_PER_VERTEX","type":"Float","runtime":true},{"name":"VERTEX_COUNT","type":"Float","runtime":true}],"uniforms":[{"name":"u_Data","type":"vec4[]","storageClass":"StorageBuffer","readonly":false,"writeonly":false,"size":[1,1]},{"name":"u_K","type":"Float","storageClass":"Uniform","readonly":true,"writeonly":false,"size":[1,1]},{"name":"u_K2","type":"Float","storageClass":"Uniform","readonly":true,"writeonly":false,"size":[1,1]},{"name":"u_Center","type":"vec2","storageClass":"Uniform","readonly":true,"writeonly":false,"size":[1,1]},{"name":"u_Gravity","type":"Float","storageClass":"Uniform","readonly":true,"writeonly":false,"size":[1,1]},{"name":"u_ClusterGravity","type":"Float","storageClass":"Uniform","readonly":true,"writeonly":false,"size":[1,1]},{"name":"u_Speed","type":"Float","storageClass":"Uniform","readonly":true,"writeonly":false,"size":[1,1]},{"name":"u_MaxDisplace","type":"Float","storageClass":"Uniform","readonly":true,"writeonly":false,"size":[1,1]},{"name":"u_Clustering","type":"Float","storageClass":"Uniform","readonly":true,"writeonly":false,"size":[1,1]},{"name":"u_AttributeArray","type":"vec4[]","storageClass":"StorageBuffer","readonly":true,"writeonly":false,"size":[1,1]},{"name":"u_ClusterCenters","type":"vec4[]","storageClass":"StorageBuffer","readonly":true,"writeonly":false,"size":[1,1]}],"globalDeclarations":[],"output":{"name":"u_Data","size":[1,1],"length":1},"needPingpong":true}}',N.clusterCode=`
import { globalInvocationID } from 'g-webgpu';
const VERTEX_COUNT;
const CLUSTER_COUNT;
@numthreads(1, 1, 1)
class CalcCenter {
@in
u_Data: vec4[];
@in
u_NodeAttributes: vec4[]; // [[clusterIdx, 0, 0, 0], ...]
@in @out
u_ClusterCenters: vec4[]; // [[cx, cy, nodeCount, clusterIdx], ...]
@main
compute() {
const i = globalInvocationID.x;
const center = this.u_ClusterCenters[i];
let sumx = 0;
let sumy = 0;
let count = 0;
for (let j = 0; j < VERTEX_COUNT; j++) {
const attributes = this.u_NodeAttributes[j];
const clusterIdx = int(attributes[0]);
const vertex = this.u_Data[j];
if (clusterIdx == i) {
sumx += vertex.x;
sumy += vertex.y;
count += 1;
}
}
this.u_ClusterCenters[i] = [
sumx / count,
sumy / count,
count,
i
];
}
}
`,N.clusterBundle='{"shaders":{"WGSL":"","GLSL450":"","GLSL100":"\\n\\nfloat epsilon = 0.00001;\\nvec2 addrTranslation_1Dto2D(float address1D, vec2 texSize) {\\n vec2 conv_const = vec2(1.0 / texSize.x, 1.0 / (texSize.x * texSize.y));\\n vec2 normAddr2D = float(address1D) * conv_const;\\n return vec2(fract(normAddr2D.x + epsilon), normAddr2D.y);\\n}\\n\\nvoid barrier() {}\\n \\n\\nuniform vec2 u_OutputTextureSize;\\nuniform int u_OutputTexelCount;\\nvarying vec2 v_TexCoord;\\n\\nbool gWebGPUDebug = false;\\nvec4 gWebGPUDebugOutput = vec4(0.0);\\n\\n#define VERTEX_COUNT __DefineValuePlaceholder__VERTEX_COUNT\\n#define CLUSTER_COUNT __DefineValuePlaceholder__CLUSTER_COUNT\\n\\nuniform sampler2D u_Data;\\nuniform vec2 u_DataSize;\\nvec4 getDatau_Data(vec2 address2D) {\\n return vec4(texture2D(u_Data, address2D).rgba);\\n}\\nvec4 getDatau_Data(float address1D) {\\n return getDatau_Data(addrTranslation_1Dto2D(address1D, u_DataSize));\\n}\\nvec4 getDatau_Data(int address1D) {\\n return getDatau_Data(float(address1D));\\n}\\nuniform sampler2D u_NodeAttributes;\\nuniform vec2 u_NodeAttributesSize;\\nvec4 getDatau_NodeAttributes(vec2 address2D) {\\n return vec4(texture2D(u_NodeAttributes, address2D).rgba);\\n}\\nvec4 getDatau_NodeAttributes(float address1D) {\\n return getDatau_NodeAttributes(addrTranslation_1Dto2D(address1D, u_NodeAttributesSize));\\n}\\nvec4 getDatau_NodeAttributes(int address1D) {\\n return getDatau_NodeAttributes(float(address1D));\\n}\\nuniform sampler2D u_ClusterCenters;\\nuniform vec2 u_ClusterCentersSize;\\nvec4 getDatau_ClusterCenters(vec2 address2D) {\\n return vec4(texture2D(u_ClusterCenters, address2D).rgba);\\n}\\nvec4 getDatau_ClusterCenters(float address1D) {\\n return getDatau_ClusterCenters(addrTranslation_1Dto2D(address1D, u_ClusterCentersSize));\\n}\\nvec4 getDatau_ClusterCenters(int address1D) {\\n return getDatau_ClusterCenters(float(address1D));\\n}\\nvoid main() {\\nivec3 workGroupSize = ivec3(1, 1, 1);\\nivec3 numWorkGroups = ivec3(1, 1, 1); \\nint globalInvocationIndex = int(floor(v_TexCoord.x * u_OutputTextureSize.x))\\n + int(floor(v_TexCoord.y * u_OutputTextureSize.y)) * int(u_OutputTextureSize.x);\\nint workGroupIDLength = globalInvocationIndex / (workGroupSize.x * workGroupSize.y * workGroupSize.z);\\nivec3 workGroupID = ivec3(workGroupIDLength / numWorkGroups.y / numWorkGroups.z, workGroupIDLength / numWorkGroups.x / numWorkGroups.z, workGroupIDLength / numWorkGroups.x / numWorkGroups.y);\\nint localInvocationIDZ = globalInvocationIndex / (workGroupSize.x * workGroupSize.y);\\nint localInvocationIDY = (globalInvocationIndex - localInvocationIDZ * workGroupSize.x * workGroupSize.y) / workGroupSize.x;\\nint localInvocationIDX = globalInvocationIndex - localInvocationIDZ * workGroupSize.x * workGroupSize.y - localInvocationIDY * workGroupSize.x;\\nivec3 localInvocationID = ivec3(localInvocationIDX, localInvocationIDY, localInvocationIDZ);\\nivec3 globalInvocationID = workGroupID * workGroupSize + localInvocationID;\\nint localInvocationIndex = localInvocationID.z * workGroupSize.x * workGroupSize.y\\n + localInvocationID.y * workGroupSize.x + localInvocationID.x;\\nint i = globalInvocationID.x;\\nvec4 center = getDatau_ClusterCenters(i);\\nfloat sumx = 0.0;\\nfloat sumy = 0.0;\\nfloat count = 0.0;\\nfor (int j = 0; j < VERTEX_COUNT; j++) {vec4 attributes = getDatau_NodeAttributes(j);\\nint clusterIdx = int(attributes.x);\\nvec4 vertex = getDatau_Data(j);\\nif (clusterIdx == i) {sumx += vertex.x;\\nsumy += vertex.y;\\ncount += 1.0;}}\\ngl_FragColor = vec4(vec4(sumx / count, sumy / count, count, i));if (gWebGPUDebug) {\\n gl_FragColor = gWebGPUDebugOutput;\\n}}\\n"},"context":{"name":"","dispatch":[1,1,1],"threadGroupSize":[1,1,1],"maxIteration":1,"defines":[{"name":"VERTEX_COUNT","type":"Float","runtime":true},{"name":"CLUSTER_COUNT","type":"Float","runtime":true}],"uniforms":[{"name":"u_Data","type":"vec4[]","storageClass":"StorageBuffer","readonly":true,"writeonly":false,"size":[1,1]},{"name":"u_NodeAttributes","type":"vec4[]","storageClass":"StorageBuffer","readonly":true,"writeonly":false,"size":[1,1]},{"name":"u_ClusterCenters","type":"vec4[]","storageClass":"StorageBuffer","readonly":false,"writeonly":false,"size":[1,1]}],"globalDeclarations":[],"output":{"name":"u_ClusterCenters","size":[1,1],"length":1},"needPingpong":true}}'},77820:function(Mt,N,F){"use strict";var k=this&&this.__extends||function(){var c=function(s,m){return c=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(M,P){M.__proto__=P}||function(M,P){for(var R in P)Object.prototype.hasOwnProperty.call(P,R)&&(M[R]=P[R])},c(s,m)};return function(s,m){if(typeof m!="function"&&m!==null)throw new TypeError("Class extends value "+String(m)+" is not a constructor or null");c(s,m);function M(){this.constructor=s}s.prototype=m===null?Object.create(m):(M.prototype=m.prototype,new M)}}(),U=this&&this.__awaiter||function(c,s,m,M){function P(R){return R instanceof m?R:new m(function(j){j(R)})}return new(m||(m=Promise))(function(R,j){function Q(H){try{W(M.next(H))}catch(Z){j(Z)}}function G(H){try{W(M.throw(H))}catch(Z){j(Z)}}function W(H){H.done?R(H.value):P(H.value).then(Q,G)}W((M=M.apply(c,s||[])).next())})},L=this&&this.__generator||function(c,s){var m={label:0,sent:function(){if(R[0]&1)throw R[1];return R[1]},trys:[],ops:[]},M,P,R,j;return j={next:Q(0),throw:Q(1),return:Q(2)},typeof Symbol=="function"&&(j[Symbol.iterator]=function(){return this}),j;function Q(W){return function(H){return G([W,H])}}function G(W){if(M)throw new TypeError("Generator is already executing.");for(;j&&(j=0,W[0]&&(m=0)),m;)try{if(M=1,P&&(R=W[0]&2?P.return:W[0]?P.throw||((R=P.return)&&R.call(P),0):P.next)&&!(R=R.call(P,W[1])).done)return R;switch(P=0,R&&(W=[W[0]&2,R.value]),W[0]){case 0:case 1:R=W;break;case 4:return m.label++,{value:W[1],done:!1};case 5:m.label++,P=W[1],W=[0];continue;case 7:W=m.ops.pop(),m.trys.pop();continue;default:if(R=m.trys,!(R=R.length>0&&R[R.length-1])&&(W[0]===6||W[0]===2)){m=0;continue}if(W[0]===3&&(!R||W[1]>R[0]&&W[1]= length) break;
const arr_idx = arr_offset + 4 * p; // i \u8282\u70B9\u7684\u7B2C p \u6761\u8FB9\u5F00\u59CB\u7684\u5C0F\u683C\u5B50\u4F4D\u7F6E
const buf_offset = arr_idx - arr_idx / 4 * 4;
if (p == 0 || buf_offset == 0) {
node_buffer = this.u_Data[int(arr_idx / 4)]; // \u5927\u683C\u5B50\uFF0C\u5927\u683C\u5B50\u4F4D\u7F6E=\u5C0F\u4E2A\u5B50\u4F4D\u7F6E / 4\uFF0C
}
let float_j: float = node_buffer[0];
const nextNode = this.u_Data[int(float_j)];
const vx = nextNode[0] - currentNode[0];
const vy = nextNode[1] - currentNode[1];
const dist = sqrt(vx * vx + vy * vy) + 0.01;
const direx = vx / dist;
const direy = vy / dist;
const edgeLength = node_buffer[1];
const edgeStrength = node_buffer[2];
const diff: float = edgeLength - dist;//edgeLength
// const param = diff * this.u_stiffness / mass; //
const param = diff * edgeStrength / mass; //
ax -= direx * param;
ay -= direy * param;
}
return [ax, ay];
}
@main
compute() {
const i = globalInvocationID.x;
const currentNode = this.u_Data[i];
const movement = u_AveMovement[0];
let ax = 0, ay = 0;
if (i >= VERTEX_COUNT || movement.x < u_minMovement) {
this.u_Data[i] = currentNode;
return;
}
// \u6BCF\u4E2A\u8282\u70B9\u5C5E\u6027\u5360\u4E24\u4E2A\u6570\u7EC4\u4E2D\u5404\u4E00\u683C
// [mass, degree, nodeStrength, fx]
const nodeAttributes1 = this.u_NodeAttributeArray1[i];
// [centerX, centerY, centerGravity, fy]
const nodeAttributes2 = this.u_NodeAttributeArray2[i];
// repulsive
const repulsive = this.calcRepulsive(i, currentNode);
ax += repulsive[0];
ay += repulsive[1];
// attractive
const attractive = this.calcAttractive(i, currentNode, nodeAttributes1);
ax += attractive[0];
ay += attractive[1];
// gravity
const gravity = this.calcGravity(i, currentNode, nodeAttributes2);
ax -= gravity[0];
ay -= gravity[1];
// speed
const param = this.u_interval * this.u_damping;
let vx = ax * param;
let vy = ay * param;
const vlength = sqrt(vx * vx + vy * vy) + 0.0001;
if (vlength > this.u_maxSpeed) {
const param2 = this.u_maxSpeed / vlength;
vx = param2 * vx;
vy = param2 * vy;
}
// move
if (nodeAttributes1[3] != 0 && nodeAttributes2[3] != 0) {
this.u_Data[i] = [
nodeAttributes1[3],
nodeAttributes2[3],
currentNode[2],
0
];
} else {
const distx = vx * this.u_interval;
const disty = vy * this.u_interval;
const distLength = sqrt(distx * distx + disty * disty);
this.u_Data[i] = [
currentNode[0] + distx,
currentNode[1] + disty,
currentNode[2],
distLength
];
}
// the avarage move distance
// need to share memory
}
}
`,N.gForceBundle='{"shaders":{"WGSL":"","GLSL450":"","GLSL100":"\\n\\nfloat epsilon = 0.00001;\\nvec2 addrTranslation_1Dto2D(float address1D, vec2 texSize) {\\n vec2 conv_const = vec2(1.0 / texSize.x, 1.0 / (texSize.x * texSize.y));\\n vec2 normAddr2D = float(address1D) * conv_const;\\n return vec2(fract(normAddr2D.x + epsilon), normAddr2D.y);\\n}\\n\\nvoid barrier() {}\\n \\n\\nuniform vec2 u_OutputTextureSize;\\nuniform int u_OutputTexelCount;\\nvarying vec2 v_TexCoord;\\n\\nbool gWebGPUDebug = false;\\nvec4 gWebGPUDebugOutput = vec4(0.0);\\n\\n#define MAX_EDGE_PER_VERTEX __DefineValuePlaceholder__MAX_EDGE_PER_VERTEX\\n#define VERTEX_COUNT __DefineValuePlaceholder__VERTEX_COUNT\\n#define SHIFT_20 1048576.0\\n\\nuniform sampler2D u_Data;\\nuniform vec2 u_DataSize;\\nvec4 getDatau_Data(vec2 address2D) {\\n return vec4(texture2D(u_Data, address2D).rgba);\\n}\\nvec4 getDatau_Data(float address1D) {\\n return getDatau_Data(addrTranslation_1Dto2D(address1D, u_DataSize));\\n}\\nvec4 getDatau_Data(int address1D) {\\n return getDatau_Data(float(address1D));\\n}\\nuniform float u_damping;\\nuniform float u_maxSpeed;\\nuniform float u_minMovement;\\nuniform sampler2D u_AveMovement;\\nuniform vec2 u_AveMovementSize;\\nvec4 getDatau_AveMovement(vec2 address2D) {\\n return vec4(texture2D(u_AveMovement, address2D).rgba);\\n}\\nvec4 getDatau_AveMovement(float address1D) {\\n return getDatau_AveMovement(addrTranslation_1Dto2D(address1D, u_AveMovementSize));\\n}\\nvec4 getDatau_AveMovement(int address1D) {\\n return getDatau_AveMovement(float(address1D));\\n}\\nuniform float u_coulombDisScale;\\nuniform float u_factor;\\nuniform sampler2D u_NodeAttributeArray1;\\nuniform vec2 u_NodeAttributeArray1Size;\\nvec4 getDatau_NodeAttributeArray1(vec2 address2D) {\\n return vec4(texture2D(u_NodeAttributeArray1, address2D).rgba);\\n}\\nvec4 getDatau_NodeAttributeArray1(float address1D) {\\n return getDatau_NodeAttributeArray1(addrTranslation_1Dto2D(address1D, u_NodeAttributeArray1Size));\\n}\\nvec4 getDatau_NodeAttributeArray1(int address1D) {\\n return getDatau_NodeAttributeArray1(float(address1D));\\n}\\nuniform sampler2D u_NodeAttributeArray2;\\nuniform vec2 u_NodeAttributeArray2Size;\\nvec4 getDatau_NodeAttributeArray2(vec2 address2D) {\\n return vec4(texture2D(u_NodeAttributeArray2, address2D).rgba);\\n}\\nvec4 getDatau_NodeAttributeArray2(float address1D) {\\n return getDatau_NodeAttributeArray2(addrTranslation_1Dto2D(address1D, u_NodeAttributeArray2Size));\\n}\\nvec4 getDatau_NodeAttributeArray2(int address1D) {\\n return getDatau_NodeAttributeArray2(float(address1D));\\n}\\nuniform float u_interval;\\nivec2 unpack_float(float packedValue) {\\nivec3 workGroupSize = ivec3(1, 1, 1);\\nivec3 numWorkGroups = ivec3(1, 1, 1); \\nint globalInvocationIndex = int(floor(v_TexCoord.x * u_OutputTextureSize.x))\\n + int(floor(v_TexCoord.y * u_OutputTextureSize.y)) * int(u_OutputTextureSize.x);\\nint workGroupIDLength = globalInvocationIndex / (workGroupSize.x * workGroupSize.y * workGroupSize.z);\\nivec3 workGroupID = ivec3(workGroupIDLength / numWorkGroups.y / numWorkGroups.z, workGroupIDLength / numWorkGroups.x / numWorkGroups.z, workGroupIDLength / numWorkGroups.x / numWorkGroups.y);\\nint localInvocationIDZ = globalInvocationIndex / (workGroupSize.x * workGroupSize.y);\\nint localInvocationIDY = (globalInvocationIndex - localInvocationIDZ * workGroupSize.x * workGroupSize.y) / workGroupSize.x;\\nint localInvocationIDX = globalInvocationIndex - localInvocationIDZ * workGroupSize.x * workGroupSize.y - localInvocationIDY * workGroupSize.x;\\nivec3 localInvocationID = ivec3(localInvocationIDX, localInvocationIDY, localInvocationIDZ);\\nivec3 globalInvocationID = workGroupID * workGroupSize + localInvocationID;\\nint localInvocationIndex = localInvocationID.z * workGroupSize.x * workGroupSize.y\\n + localInvocationID.y * workGroupSize.x + localInvocationID.x;\\nint packedIntValue = int(packedValue);\\nint v0 = packedIntValue / int(SHIFT_20);\\nreturn ivec2(v0, packedIntValue - (v0 * int(SHIFT_20)));}\\nvec2 calcRepulsive(int i, vec4 currentNode) {\\nivec3 workGroupSize = ivec3(1, 1, 1);\\nivec3 numWorkGroups = ivec3(1, 1, 1); \\nint globalInvocationIndex = int(floor(v_TexCoord.x * u_OutputTextureSize.x))\\n + int(floor(v_TexCoord.y * u_OutputTextureSize.y)) * int(u_OutputTextureSize.x);\\nint workGroupIDLength = globalInvocationIndex / (workGroupSize.x * workGroupSize.y * workGroupSize.z);\\nivec3 workGroupID = ivec3(workGroupIDLength / numWorkGroups.y / numWorkGroups.z, workGroupIDLength / numWorkGroups.x / numWorkGroups.z, workGroupIDLength / numWorkGroups.x / numWorkGroups.y);\\nint localInvocationIDZ = globalInvocationIndex / (workGroupSize.x * workGroupSize.y);\\nint localInvocationIDY = (globalInvocationIndex - localInvocationIDZ * workGroupSize.x * workGroupSize.y) / workGroupSize.x;\\nint localInvocationIDX = globalInvocationIndex - localInvocationIDZ * workGroupSize.x * workGroupSize.y - localInvocationIDY * workGroupSize.x;\\nivec3 localInvocationID = ivec3(localInvocationIDX, localInvocationIDY, localInvocationIDZ);\\nivec3 globalInvocationID = workGroupID * workGroupSize + localInvocationID;\\nint localInvocationIndex = localInvocationID.z * workGroupSize.x * workGroupSize.y\\n + localInvocationID.y * workGroupSize.x + localInvocationID.x;\\nfloat ax = 0.0;\\nfloat ay = 0.0;\\nfor (int j = 0; j < VERTEX_COUNT; j++) {if (i != j) {vec4 nextNode = getDatau_Data(j);\\nfloat vx = currentNode.x - nextNode.x;\\nfloat vy = currentNode.y - nextNode.y;\\nfloat dist = sqrt((vx * vx) + (vy * vy)) + 0.01;\\nfloat n_dist = (dist + 0.1) * u_coulombDisScale;\\nfloat direx = vx / dist;\\nfloat direy = vy / dist;\\nvec4 attributesi = getDatau_NodeAttributeArray1(i);\\nvec4 attributesj = getDatau_NodeAttributeArray1(j);\\nfloat massi = attributesi.x;\\nfloat nodeStrengthi = attributesi.z;\\nfloat nodeStrengthj = attributesj.z;\\nfloat nodeStrength = (nodeStrengthi + nodeStrengthj) / 2.0;\\nfloat param = (nodeStrength * u_factor) / (n_dist * n_dist);\\nax += direx * param;\\nay += direy * param;}}\\nreturn vec2(ax, ay);}\\nvec2 calcGravity(int i, vec4 currentNode, vec4 attributes2) {\\nivec3 workGroupSize = ivec3(1, 1, 1);\\nivec3 numWorkGroups = ivec3(1, 1, 1); \\nint globalInvocationIndex = int(floor(v_TexCoord.x * u_OutputTextureSize.x))\\n + int(floor(v_TexCoord.y * u_OutputTextureSize.y)) * int(u_OutputTextureSize.x);\\nint workGroupIDLength = globalInvocationIndex / (workGroupSize.x * workGroupSize.y * workGroupSize.z);\\nivec3 workGroupID = ivec3(workGroupIDLength / numWorkGroups.y / numWorkGroups.z, workGroupIDLength / numWorkGroups.x / numWorkGroups.z, workGroupIDLength / numWorkGroups.x / numWorkGroups.y);\\nint localInvocationIDZ = globalInvocationIndex / (workGroupSize.x * workGroupSize.y);\\nint localInvocationIDY = (globalInvocationIndex - localInvocationIDZ * workGroupSize.x * workGroupSize.y) / workGroupSize.x;\\nint localInvocationIDX = globalInvocationIndex - localInvocationIDZ * workGroupSize.x * workGroupSize.y - localInvocationIDY * workGroupSize.x;\\nivec3 localInvocationID = ivec3(localInvocationIDX, localInvocationIDY, localInvocationIDZ);\\nivec3 globalInvocationID = workGroupID * workGroupSize + localInvocationID;\\nint localInvocationIndex = localInvocationID.z * workGroupSize.x * workGroupSize.y\\n + localInvocationID.y * workGroupSize.x + localInvocationID.x;\\nfloat vx = currentNode.x - attributes2.x;\\nfloat vy = currentNode.y - attributes2.y;\\nfloat ax = vx * attributes2.z;\\nfloat ay = vy * attributes2.z;\\nreturn vec2(ax, ay);}\\nvec2 calcAttractive(int i, vec4 currentNode, vec4 attributes1) {\\nivec3 workGroupSize = ivec3(1, 1, 1);\\nivec3 numWorkGroups = ivec3(1, 1, 1); \\nint globalInvocationIndex = int(floor(v_TexCoord.x * u_OutputTextureSize.x))\\n + int(floor(v_TexCoord.y * u_OutputTextureSize.y)) * int(u_OutputTextureSize.x);\\nint workGroupIDLength = globalInvocationIndex / (workGroupSize.x * workGroupSize.y * workGroupSize.z);\\nivec3 workGroupID = ivec3(workGroupIDLength / numWorkGroups.y / numWorkGroups.z, workGroupIDLength / numWorkGroups.x / numWorkGroups.z, workGroupIDLength / numWorkGroups.x / numWorkGroups.y);\\nint localInvocationIDZ = globalInvocationIndex / (workGroupSize.x * workGroupSize.y);\\nint localInvocationIDY = (globalInvocationIndex - localInvocationIDZ * workGroupSize.x * workGroupSize.y) / workGroupSize.x;\\nint localInvocationIDX = globalInvocationIndex - localInvocationIDZ * workGroupSize.x * workGroupSize.y - localInvocationIDY * workGroupSize.x;\\nivec3 localInvocationID = ivec3(localInvocationIDX, localInvocationIDY, localInvocationIDZ);\\nivec3 globalInvocationID = workGroupID * workGroupSize + localInvocationID;\\nint localInvocationIndex = localInvocationID.z * workGroupSize.x * workGroupSize.y\\n + localInvocationID.y * workGroupSize.x + localInvocationID.x;\\nfloat mass = attributes1.x;\\nfloat ax = 0.0;\\nfloat ay = 0.0;\\nivec2 compressed = unpack_float(currentNode.z);\\nint length = compressed.x;\\nint arr_offset = compressed.y;\\nvec4 node_buffer;\\nfor (int p = 0; p < MAX_EDGE_PER_VERTEX; p++) {if (p >= length) {break;}\\nint arr_idx = arr_offset + (4 * p);\\nint buf_offset = arr_idx - ((arr_idx / 4) * 4);\\nif ((p == 0) || (buf_offset == 0)) {node_buffer = getDatau_Data(int(arr_idx / 4));}\\nfloat float_j = node_buffer.x;\\nvec4 nextNode = getDatau_Data(int(float_j));\\nfloat vx = nextNode.x - currentNode.x;\\nfloat vy = nextNode.y - currentNode.y;\\nfloat dist = sqrt((vx * vx) + (vy * vy)) + 0.01;\\nfloat direx = vx / dist;\\nfloat direy = vy / dist;\\nfloat edgeLength = node_buffer.y;\\nfloat edgeStrength = node_buffer.z;\\nfloat diff = edgeLength - dist;\\nfloat param = (diff * edgeStrength) / mass;\\nax -= direx * param;\\nay -= direy * param;}\\nreturn vec2(ax, ay);}\\nvoid main() {\\nivec3 workGroupSize = ivec3(1, 1, 1);\\nivec3 numWorkGroups = ivec3(1, 1, 1); \\nint globalInvocationIndex = int(floor(v_TexCoord.x * u_OutputTextureSize.x))\\n + int(floor(v_TexCoord.y * u_OutputTextureSize.y)) * int(u_OutputTextureSize.x);\\nint workGroupIDLength = globalInvocationIndex / (workGroupSize.x * workGroupSize.y * workGroupSize.z);\\nivec3 workGroupID = ivec3(workGroupIDLength / numWorkGroups.y / numWorkGroups.z, workGroupIDLength / numWorkGroups.x / numWorkGroups.z, workGroupIDLength / numWorkGroups.x / numWorkGroups.y);\\nint localInvocationIDZ = globalInvocationIndex / (workGroupSize.x * workGroupSize.y);\\nint localInvocationIDY = (globalInvocationIndex - localInvocationIDZ * workGroupSize.x * workGroupSize.y) / workGroupSize.x;\\nint localInvocationIDX = globalInvocationIndex - localInvocationIDZ * workGroupSize.x * workGroupSize.y - localInvocationIDY * workGroupSize.x;\\nivec3 localInvocationID = ivec3(localInvocationIDX, localInvocationIDY, localInvocationIDZ);\\nivec3 globalInvocationID = workGroupID * workGroupSize + localInvocationID;\\nint localInvocationIndex = localInvocationID.z * workGroupSize.x * workGroupSize.y\\n + localInvocationID.y * workGroupSize.x + localInvocationID.x;\\nint i = globalInvocationID.x;\\nvec4 currentNode = getDatau_Data(i);\\nvec4 movement = getDatau_AveMovement(0.0);\\nfloat ax = 0.0;\\nfloat ay = 0.0;\\nif ((i >= VERTEX_COUNT) || (movement.x < u_minMovement)) {gl_FragColor = vec4(currentNode);\\nreturn ;}\\nvec4 nodeAttributes1 = getDatau_NodeAttributeArray1(i);\\nvec4 nodeAttributes2 = getDatau_NodeAttributeArray2(i);\\nvec2 repulsive = calcRepulsive(i, currentNode);\\nax += repulsive.x;\\nay += repulsive.y;\\nvec2 attractive = calcAttractive(i, currentNode, nodeAttributes1);\\nax += attractive.x;\\nay += attractive.y;\\nvec2 gravity = calcGravity(i, currentNode, nodeAttributes2);\\nax -= gravity.x;\\nay -= gravity.y;\\nfloat param = u_interval * u_damping;\\nfloat vx = ax * param;\\nfloat vy = ay * param;\\nfloat vlength = sqrt((vx * vx) + (vy * vy)) + 0.0001;\\nif (vlength > u_maxSpeed) {float param2 = u_maxSpeed / vlength;\\nvx = param2 * vx;\\nvy = param2 * vy;}\\nif ((nodeAttributes1.w != 0.0) && (nodeAttributes2.w != 0.0)) {gl_FragColor = vec4(vec4(nodeAttributes1.w, nodeAttributes2.w, currentNode.z, 0.0));}else {float distx = vx * u_interval;\\nfloat disty = vy * u_interval;\\nfloat distLength = sqrt((distx * distx) + (disty * disty));\\ngl_FragColor = vec4(vec4(currentNode.x + distx, currentNode.y + disty, currentNode.z, distLength));}if (gWebGPUDebug) {\\n gl_FragColor = gWebGPUDebugOutput;\\n}}\\n"},"context":{"name":"","dispatch":[1,1,1],"threadGroupSize":[1,1,1],"maxIteration":1,"defines":[{"name":"MAX_EDGE_PER_VERTEX","type":"Float","runtime":true},{"name":"VERTEX_COUNT","type":"Float","runtime":true},{"name":"SHIFT_20","type":"Float","value":1048576,"runtime":false}],"uniforms":[{"name":"u_Data","type":"vec4[]","storageClass":"StorageBuffer","readonly":false,"writeonly":false,"size":[1,1]},{"name":"u_damping","type":"Float","storageClass":"Uniform","readonly":true,"writeonly":false,"size":[1,1]},{"name":"u_maxSpeed","type":"Float","storageClass":"Uniform","readonly":true,"writeonly":false,"size":[1,1]},{"name":"u_minMovement","type":"Float","storageClass":"Uniform","readonly":true,"writeonly":false,"size":[1,1]},{"name":"u_AveMovement","type":"vec4[]","storageClass":"StorageBuffer","readonly":true,"writeonly":false,"size":[1,1]},{"name":"u_coulombDisScale","type":"Float","storageClass":"Uniform","readonly":true,"writeonly":false,"size":[1,1]},{"name":"u_factor","type":"Float","storageClass":"Uniform","readonly":true,"writeonly":false,"size":[1,1]},{"name":"u_NodeAttributeArray1","type":"vec4[]","storageClass":"StorageBuffer","readonly":true,"writeonly":false,"size":[1,1]},{"name":"u_NodeAttributeArray2","type":"vec4[]","storageClass":"StorageBuffer","readonly":true,"writeonly":false,"size":[1,1]},{"name":"u_interval","type":"Float","storageClass":"Uniform","readonly":true,"writeonly":false,"size":[1,1]}],"globalDeclarations":[],"output":{"name":"u_Data","size":[1,1],"length":1},"needPingpong":true}}',N.aveMovementCode=`
const VERTEX_COUNT;
@numthreads(1, 1, 1)
class CalcAveMovement {
@in
u_Data: vec4[];
@in
u_iter: float;
@in @out
u_AveMovement: vec4[];
@main
compute() {
let movement = 0;
for (let j: int = 0; j < VERTEX_COUNT; j++) {
const vertex = this.u_Data[j];
movement += vertex[3];
}
movement = movement / float(VERTEX_COUNT);
this.u_AveMovement[0] = [movement, 0, 0, 0];
}
}
`,N.aveMovementBundle='{"shaders":{"WGSL":"","GLSL450":"","GLSL100":"\\n\\nfloat epsilon = 0.00001;\\nvec2 addrTranslation_1Dto2D(float address1D, vec2 texSize) {\\n vec2 conv_const = vec2(1.0 / texSize.x, 1.0 / (texSize.x * texSize.y));\\n vec2 normAddr2D = float(address1D) * conv_const;\\n return vec2(fract(normAddr2D.x + epsilon), normAddr2D.y);\\n}\\n\\nvoid barrier() {}\\n \\n\\nuniform vec2 u_OutputTextureSize;\\nuniform int u_OutputTexelCount;\\nvarying vec2 v_TexCoord;\\n\\nbool gWebGPUDebug = false;\\nvec4 gWebGPUDebugOutput = vec4(0.0);\\n\\n#define VERTEX_COUNT __DefineValuePlaceholder__VERTEX_COUNT\\n\\nuniform sampler2D u_Data;\\nuniform vec2 u_DataSize;\\nvec4 getDatau_Data(vec2 address2D) {\\n return vec4(texture2D(u_Data, address2D).rgba);\\n}\\nvec4 getDatau_Data(float address1D) {\\n return getDatau_Data(addrTranslation_1Dto2D(address1D, u_DataSize));\\n}\\nvec4 getDatau_Data(int address1D) {\\n return getDatau_Data(float(address1D));\\n}\\nuniform float u_iter;\\nuniform sampler2D u_AveMovement;\\nuniform vec2 u_AveMovementSize;\\nvec4 getDatau_AveMovement(vec2 address2D) {\\n return vec4(texture2D(u_AveMovement, address2D).rgba);\\n}\\nvec4 getDatau_AveMovement(float address1D) {\\n return getDatau_AveMovement(addrTranslation_1Dto2D(address1D, u_AveMovementSize));\\n}\\nvec4 getDatau_AveMovement(int address1D) {\\n return getDatau_AveMovement(float(address1D));\\n}\\nvoid main() {\\nivec3 workGroupSize = ivec3(1, 1, 1);\\nivec3 numWorkGroups = ivec3(1, 1, 1); \\nint globalInvocationIndex = int(floor(v_TexCoord.x * u_OutputTextureSize.x))\\n + int(floor(v_TexCoord.y * u_OutputTextureSize.y)) * int(u_OutputTextureSize.x);\\nint workGroupIDLength = globalInvocationIndex / (workGroupSize.x * workGroupSize.y * workGroupSize.z);\\nivec3 workGroupID = ivec3(workGroupIDLength / numWorkGroups.y / numWorkGroups.z, workGroupIDLength / numWorkGroups.x / numWorkGroups.z, workGroupIDLength / numWorkGroups.x / numWorkGroups.y);\\nint localInvocationIDZ = globalInvocationIndex / (workGroupSize.x * workGroupSize.y);\\nint localInvocationIDY = (globalInvocationIndex - localInvocationIDZ * workGroupSize.x * workGroupSize.y) / workGroupSize.x;\\nint localInvocationIDX = globalInvocationIndex - localInvocationIDZ * workGroupSize.x * workGroupSize.y - localInvocationIDY * workGroupSize.x;\\nivec3 localInvocationID = ivec3(localInvocationIDX, localInvocationIDY, localInvocationIDZ);\\nivec3 globalInvocationID = workGroupID * workGroupSize + localInvocationID;\\nint localInvocationIndex = localInvocationID.z * workGroupSize.x * workGroupSize.y\\n + localInvocationID.y * workGroupSize.x + localInvocationID.x;\\nfloat movement = 0.0;\\nfor (int j = 0; j < VERTEX_COUNT; j++) {vec4 vertex = getDatau_Data(j);\\nmovement += vertex.w;}\\nmovement = movement / float(VERTEX_COUNT);\\ngl_FragColor = vec4(vec4(movement, 0.0, 0.0, 0.0));if (gWebGPUDebug) {\\n gl_FragColor = gWebGPUDebugOutput;\\n}}\\n"},"context":{"name":"","dispatch":[1,1,1],"threadGroupSize":[1,1,1],"maxIteration":1,"defines":[{"name":"VERTEX_COUNT","type":"Float","runtime":true}],"uniforms":[{"name":"u_Data","type":"vec4[]","storageClass":"StorageBuffer","readonly":true,"writeonly":false,"size":[1,1]},{"name":"u_iter","type":"Float","storageClass":"Uniform","readonly":true,"writeonly":false,"size":[1,1]},{"name":"u_AveMovement","type":"vec4[]","storageClass":"StorageBuffer","readonly":false,"writeonly":false,"size":[1,1]}],"globalDeclarations":[],"output":{"name":"u_AveMovement","size":[1,1],"length":1},"needPingpong":true}}'},59462:function(Mt,N,F){"use strict";var k=this&&this.__extends||function(){var I=function(T,x){return I=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(p,v){p.__proto__=v}||function(p,v){for(var g in v)Object.prototype.hasOwnProperty.call(v,g)&&(p[g]=v[g])},I(T,x)};return function(T,x){if(typeof x!="function"&&x!==null)throw new TypeError("Class extends value "+String(x)+" is not a constructor or null");I(T,x);function p(){this.constructor=T}T.prototype=x===null?Object.create(x):(p.prototype=x.prototype,new p)}}();Object.defineProperty(N,"__esModule",{value:!0}),N.GridLayout=void 0;var U=F(44941),L=F(46833),_=function(I){k(T,I);function T(x){var p=I.call(this)||this;return p.begin=[0,0],p.preventOverlap=!0,p.preventOverlapPadding=10,p.condense=!1,p.sortBy="degree",p.nodes=[],p.edges=[],p.width=300,p.height=300,p.row=0,p.col=0,p.cellWidth=0,p.cellHeight=0,p.cellUsed={},p.id2manPos={},p.onLayoutEnd=function(){},p.updateCfg(x),p}return T.prototype.getDefaultCfg=function(){return{begin:[0,0],preventOverlap:!0,preventOverlapPadding:10,condense:!1,rows:void 0,cols:void 0,position:void 0,sortBy:"degree",nodeSize:30}},T.prototype.execute=function(){var x=this,p=x.nodes,v=x.edges,g=x.begin,d=p.length;if(d===0)return x.onLayoutEnd&&x.onLayoutEnd(),{nodes:p,edges:v};if(d===1)return p[0].x=g[0],p[0].y=g[1],x.onLayoutEnd&&x.onLayoutEnd(),{nodes:p,edges:v};var c=x.sortBy,s=x.width,m=x.height,M=x.condense,P=x.preventOverlapPadding,R=x.preventOverlap,j=x.nodeSpacing,Q=x.nodeSize,G=[];p.forEach(function(we){G.push(we)});var W={};if(G.forEach(function(we,Te){W[we.id]=Te}),(c==="degree"||!(0,U.isString)(c)||G[0][c]===void 0)&&(c="degree",(0,U.isNaN)(p[0].degree))){var H=(0,U.getDegree)(G.length,W,v);G.forEach(function(we,Te){we.degree=H[Te].all})}G.sort(function(we,Te){return Te[c]-we[c]}),!s&&typeof window!="undefined"&&(s=window.innerWidth),!m&&typeof window!="undefined"&&(m=window.innerHeight);var Z=x.rows,J=x.cols!=null?x.cols:x.columns;if(x.cells=d,Z!=null&&J!=null?(x.rows=Z,x.cols=J):Z!=null&&J==null?(x.rows=Z,x.cols=Math.ceil(x.cells/x.rows)):Z==null&&J!=null?(x.cols=J,x.rows=Math.ceil(x.cells/x.cols)):(x.splits=Math.sqrt(x.cells*x.height/x.width),x.rows=Math.round(x.splits),x.cols=Math.round(x.width/x.height*x.splits)),x.rows=Math.max(x.rows,1),x.cols=Math.max(x.cols,1),x.cols*x.rows>x.cells){var K=x.small(),ne=x.large();(K-1)*ne>=x.cells?x.small(K-1):(ne-1)*K>=x.cells&&x.large(ne-1)}else for(;x.cols*x.rows=x.cells?x.large(ne+1):x.small(K+1)}if(x.cellWidth=s/x.cols,x.cellHeight=m/x.rows,M&&(x.cellWidth=0,x.cellHeight=0),R||j){var se=(0,U.getFuncByUnknownType)(10,j),fe=(0,U.getFuncByUnknownType)(30,Q,!1);G.forEach(function(we){(!we.x||!we.y)&&(we.x=0,we.y=0);var Te=fe(we)||30,ke,Ge;(0,U.isArray)(Te)?(ke=Te[0],Ge=Te[1]):(ke=Te,Ge=Te);var tt=se!==void 0?se(we):P,He=ke+tt,ft=Ge+tt;x.cellWidth=Math.max(x.cellWidth,He),x.cellHeight=Math.max(x.cellHeight,ft)})}x.cellUsed={},x.row=0,x.col=0,x.id2manPos={};for(var Ie=0;Ie=p&&(x.col=0,x.row++)},T.prototype.getPos=function(x){var p=this,v=p.begin,g=p.cellWidth,d=p.cellHeight,c,s,m=p.id2manPos[x.id];if(m)c=m.col*g+g/2+v[0],s=m.row*d+d/2+v[1];else{for(;p.used(p.row,p.col);)p.moveToNextCell();c=p.col*g+g/2+v[0],s=p.row*d+d/2+v[1],p.use(p.row,p.col),p.moveToNextCell()}x.x=c,x.y=s},T.prototype.getType=function(){return"grid"},T}(L.Base);N.GridLayout=_},68609:function(Mt,N,F){"use strict";var k=this&&this.__createBinding||(Object.create?function(H,Z,J,K){K===void 0&&(K=J);var ne=Object.getOwnPropertyDescriptor(Z,J);(!ne||("get"in ne?!Z.__esModule:ne.writable||ne.configurable))&&(ne={enumerable:!0,get:function(){return Z[J]}}),Object.defineProperty(H,K,ne)}:function(H,Z,J,K){K===void 0&&(K=J),H[K]=Z[J]}),U=this&&this.__exportStar||function(H,Z){for(var J in H)J!=="default"&&!Object.prototype.hasOwnProperty.call(Z,J)&&k(Z,H,J)};Object.defineProperty(N,"__esModule",{value:!0}),N.ERLayout=N.ForceAtlas2Layout=N.ComboCombinedLayout=N.ComboForceLayout=N.GForceGPULayout=N.FruchtermanGPULayout=N.FruchtermanLayout=N.MDSLayout=N.ConcentricLayout=N.RadialLayout=N.DagreCompoundLayout=N.DagreLayout=N.CircularLayout=N.ForceLayout=N.Force2Layout=N.GForceLayout=N.RandomLayout=N.GridLayout=N.Layouts=N.Layout=void 0;var L=F(59462);Object.defineProperty(N,"GridLayout",{enumerable:!0,get:function(){return L.GridLayout}});var _=F(12026);Object.defineProperty(N,"RandomLayout",{enumerable:!0,get:function(){return _.RandomLayout}});var I=F(83254);Object.defineProperty(N,"GForceLayout",{enumerable:!0,get:function(){return I.GForceLayout}});var T=F(41142);Object.defineProperty(N,"Force2Layout",{enumerable:!0,get:function(){return T.Force2Layout}});var x=F(22457);Object.defineProperty(N,"ForceLayout",{enumerable:!0,get:function(){return x.ForceLayout}});var p=F(30716);Object.defineProperty(N,"CircularLayout",{enumerable:!0,get:function(){return p.CircularLayout}});var v=F(95511);Object.defineProperty(N,"DagreLayout",{enumerable:!0,get:function(){return v.DagreLayout}});var g=F(19268);Object.defineProperty(N,"DagreCompoundLayout",{enumerable:!0,get:function(){return g.DagreCompoundLayout}});var d=F(50140);Object.defineProperty(N,"RadialLayout",{enumerable:!0,get:function(){return d.RadialLayout}});var c=F(370);Object.defineProperty(N,"ConcentricLayout",{enumerable:!0,get:function(){return c.ConcentricLayout}});var s=F(67842);Object.defineProperty(N,"MDSLayout",{enumerable:!0,get:function(){return s.MDSLayout}});var m=F(92627);Object.defineProperty(N,"FruchtermanLayout",{enumerable:!0,get:function(){return m.FruchtermanLayout}});var M=F(6851);Object.defineProperty(N,"FruchtermanGPULayout",{enumerable:!0,get:function(){return M.FruchtermanGPULayout}});var P=F(77820);Object.defineProperty(N,"GForceGPULayout",{enumerable:!0,get:function(){return P.GForceGPULayout}});var R=F(80808);Object.defineProperty(N,"ComboForceLayout",{enumerable:!0,get:function(){return R.ComboForceLayout}});var j=F(59506);Object.defineProperty(N,"ComboCombinedLayout",{enumerable:!0,get:function(){return j.ComboCombinedLayout}});var Q=F(54255);Object.defineProperty(N,"ForceAtlas2Layout",{enumerable:!0,get:function(){return Q.ForceAtlas2Layout}});var G=F(71443);Object.defineProperty(N,"ERLayout",{enumerable:!0,get:function(){return G.ERLayout}});var W=F(29382);Object.defineProperty(N,"Layout",{enumerable:!0,get:function(){return W.Layout}}),Object.defineProperty(N,"Layouts",{enumerable:!0,get:function(){return W.Layouts}}),U(F(74007),N)},29382:function(Mt,N,F){"use strict";Object.defineProperty(N,"__esModule",{value:!0}),N.Layouts=N.Layout=void 0;var k=F(56559),U=F(59462),L=F(12026),_=F(41142),I=F(83254),T=F(22457),x=F(30716),p=F(95511),v=F(50140),g=F(370),d=F(67842),c=F(92627),s=F(6851),m=F(77820),M=F(80808),P=F(59506),R=F(54255),j=F(71443),Q=F(19268),G=F(44941),W=function(){function H(Z){var J=(0,k.getLayoutByName)(Z.type);this.layoutInstance=new J(Z)}return H.prototype.layout=function(Z){return this.layoutInstance.layout(Z)},H.prototype.updateCfg=function(Z){this.layoutInstance.updateCfg(Z)},H.prototype.init=function(Z){this.correctLayers(Z.nodes),this.layoutInstance.init(Z)},H.prototype.correctLayers=function(Z){if(Z!=null&&Z.length){var J=1/0,K=[];if(Z.forEach(function(se){(0,G.isString)(se.layer)&&(se.layer=parseInt(se.layer,10)),!(se.layer===void 0||isNaN(se.layer))&&(K.push(se),se.layerP[0]?P[0]:ne-P[0],Ie=se-P[1]>P[1]?P[1]:se-P[1];fe===0&&(fe=ne/2),Ie===0&&(Ie=se/2);var ye=Ie>fe?fe:Ie,Ae=Math.max.apply(Math,K),Se=[];K.forEach(function(dt,pt){s.unitRadius||(s.unitRadius=ye/Ae),Se[pt]=dt*s.unitRadius}),s.radii=Se;var we=s.eIdealDisMatrix();s.eIdealDistances=we;var Te=x(we);if(s.weights=Te,s.initWithMDS){var ke=new I.default({linkDistance:R,distances:we}),Ge=ke.layout();Ge.forEach(function(dt){(0,L.isNaN)(dt[0])&&(dt[0]=Math.random()*R),(0,L.isNaN)(dt[1])&&(dt[1]=Math.random()*R)}),s.positions=Ge}else s.positions=m.map(function(dt,pt){return[(Math.random()-.5)*we[pt][W],(Math.random()-.5)*we[pt][W]]});s.positions.forEach(function(dt,pt){m[pt].x=dt[0]+P[0],m[pt].y=dt[1]+P[1]}),s.positions.forEach(function(dt){dt[0]-=s.positions[W][0],dt[1]-=s.positions[W][1]}),s.run();var tt=s.preventOverlap,He=s.nodeSize,ft,Lt=s.strictRadial;if(tt){var Jt=s.nodeSpacing,Qe;(0,L.isNumber)(Jt)?Qe=function(){return Jt}:(0,L.isFunction)(Jt)?Qe=Jt:Qe=function(){return 0},He?(0,L.isArray)(He)?ft=function(dt){var pt=He[0]>He[1]?He[0]:He[1];return pt+Qe(dt)}:ft=function(dt){return He+Qe(dt)}:ft=function(dt){if(dt.size){if((0,L.isArray)(dt.size)){var pt=dt.size[0]>dt.size[1]?dt.size[0]:dt.size[1];return pt+Qe(dt)}if((0,L.isObject)(dt.size)){var pt=dt.size.width>dt.size.height?dt.size.width:dt.size.height;return pt+Qe(dt)}return dt.size+Qe(dt)}return 10+Qe(dt)};var ut={nodes:m,nodeSizeFunc:ft,adjMatrix:H,positions:s.positions,radii:Se,height:se,width:ne,strictRadial:Lt,focusID:W,iterations:s.maxPreventOverlapIteration||200,k:s.positions.length/4.5},xt=new T.default(ut);s.positions=xt.layout()}return s.positions.forEach(function(dt,pt){m[pt].x=dt[0]+P[0],m[pt].y=dt[1]+P[1]}),s.onLayoutEnd&&s.onLayoutEnd(),{nodes:m,edges:M}},c.prototype.run=function(){for(var s=this,m=s.maxIteration,M=s.positions||[],P=s.weights||[],R=s.eIdealDistances||[],j=s.radii||[],Q=0;Q<=m;Q++){var G=Q/m;s.oneIteration(G,M,j,R,P)}},c.prototype.oneIteration=function(s,m,M,P,R){var j=this,Q=1-s,G=j.focusIndex;m.forEach(function(W,H){var Z=v(W,[0,0]),J=Z===0?0:1/Z;if(H!==G){var K=0,ne=0,se=0;m.forEach(function(Ie,ye){if(H!==ye){var Ae=v(W,Ie),Se=Ae===0?0:1/Ae,we=P[ye][H];se+=R[H][ye],K+=R[H][ye]*(Ie[0]+we*(W[0]-Ie[0])*Se),ne+=R[H][ye]*(Ie[1]+we*(W[1]-Ie[1])*Se)}});var fe=M[H]===0?0:1/M[H];se*=Q,se+=s*fe*fe,K*=Q,K+=s*fe*W[0]*J,W[0]=K/se,ne*=Q,ne+=s*fe*W[1]*J,W[1]=ne/se}})},c.prototype.eIdealDisMatrix=function(){var s=this,m=s.nodes;if(!m)return[];var M=s.distances,P=s.linkDistance,R=s.radii||[],j=s.unitRadius||50,Q=[];return M&&M.forEach(function(G,W){var H=[];G.forEach(function(Z,J){if(W===J)H.push(0);else if(R[W]===R[J])if(s.sortBy==="data")H.push(Z*(Math.abs(W-J)*s.sortStrength)/(R[W]/j));else if(s.sortBy){var K=m[W][s.sortBy]||0,ne=m[J][s.sortBy]||0;(0,L.isString)(K)&&(K=K.charCodeAt(0)),(0,L.isString)(ne)&&(ne=ne.charCodeAt(0)),H.push(Z*(Math.abs(K-ne)*s.sortStrength)/(R[W]/j))}else H.push(Z*P/(R[W]/j));else{var se=(P+j)/2;H.push(Z*se)}}),Q.push(H)}),Q},c.prototype.handleInfinity=function(s,m,M){for(var P=s.length,R=0;RM?s[m][P]:M);return M},c.prototype.getType=function(){return"radial"},c}(_.Base);N.RadialLayout=g},96716:function(Mt,N){"use strict";Object.defineProperty(N,"__esModule",{value:!0});var F=800,k=function(){function U(L){this.disp=[],this.positions=L.positions,this.adjMatrix=L.adjMatrix,this.focusID=L.focusID,this.radii=L.radii,this.iterations=L.iterations||10,this.height=L.height||10,this.width=L.width||10,this.speed=L.speed||100,this.gravity=L.gravity||10,this.nodeSizeFunc=L.nodeSizeFunc,this.k=L.k||5,this.strictRadial=L.strictRadial,this.nodes=L.nodes}return U.prototype.layout=function(){var L=this,_=L.positions,I=[],T=L.iterations,x=L.width/10;L.maxDisplace=x,L.disp=I;for(var p=0;pc?1:-1;s=.01*P,m=.01*P}if(MMath.PI/2&&(Q-=Math.PI/2,P*=-1,R*=-1);var G=Math.cos(Q)*j;d.x=P*G,d.y=R*G});var g=L.radii;_.forEach(function(d,c){if(c!==p){var s=Math.sqrt(I[c].x*I[c].x+I[c].y*I[c].y);if(s>0&&c!==p){var m=Math.min(v*(T/F),s);if(d[0]+=I[c].x/s*m,d[1]+=I[c].y/s*m,x){var M=d[0]-_[p][0],P=d[1]-_[p][1],R=Math.sqrt(M*M+P*P);M=M/R*g[c],P=P/R*g[c],d[0]=_[p][0]+M,d[1]=_[p][1]+P}}}})},U}();N.default=k},12026:function(Mt,N,F){"use strict";var k=this&&this.__extends||function(){var _=function(I,T){return _=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(x,p){x.__proto__=p}||function(x,p){for(var v in p)Object.prototype.hasOwnProperty.call(p,v)&&(x[v]=p[v])},_(I,T)};return function(I,T){if(typeof T!="function"&&T!==null)throw new TypeError("Class extends value "+String(T)+" is not a constructor or null");_(I,T);function x(){this.constructor=I}I.prototype=T===null?Object.create(T):(x.prototype=T.prototype,new x)}}();Object.defineProperty(N,"__esModule",{value:!0}),N.RandomLayout=void 0;var U=F(46833),L=function(_){k(I,_);function I(T){var x=_.call(this)||this;return x.center=[0,0],x.width=300,x.height=300,x.nodes=[],x.edges=[],x.onLayoutEnd=function(){},x.updateCfg(T),x}return I.prototype.getDefaultCfg=function(){return{center:[0,0],width:300,height:300}},I.prototype.execute=function(){var T=this,x=T.nodes,p=.9,v=T.center;return!T.width&&typeof window!="undefined"&&(T.width=window.innerWidth),!T.height&&typeof window!="undefined"&&(T.height=window.innerHeight),x&&x.forEach(function(g){g.x=(Math.random()-.5)*p*T.width+v[0],g.y=(Math.random()-.5)*p*T.height+v[1]}),T.onLayoutEnd&&T.onLayoutEnd(),{nodes:x,edges:this.edges}},I.prototype.getType=function(){return"random"},I}(U.Base);N.RandomLayout=L},74007:function(Mt,N){"use strict";Object.defineProperty(N,"__esModule",{value:!0})},56559:function(Mt,N,F){"use strict";var k=this&&this.__extends||function(){var p=function(v,g){return p=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(d,c){d.__proto__=c}||function(d,c){for(var s in c)Object.prototype.hasOwnProperty.call(c,s)&&(d[s]=c[s])},p(v,g)};return function(v,g){if(typeof g!="function"&&g!==null)throw new TypeError("Class extends value "+String(g)+" is not a constructor or null");p(v,g);function d(){this.constructor=v}v.prototype=g===null?Object.create(g):(d.prototype=g.prototype,new d)}}();Object.defineProperty(N,"__esModule",{value:!0}),N.getLayoutByName=N.unRegisterLayout=N.registerLayout=void 0;var U=F(46833),L=F(44941),_=new Map,I=function(p,v){if(_.get(p)&&console.warn("The layout with the name ".concat(p," exists already, it will be overridden")),(0,L.isObject)(v)){var g=function(d){k(c,d);function c(s){var m=this,M;m=d.call(this)||this;var P=m,R={},j=Object.assign({},P.getDefaultCfg(),((M=v.getDefaultCfg)===null||M===void 0?void 0:M.call(v))||{});return Object.assign(R,j,v,s),Object.keys(R).forEach(function(Q){var G=R[Q];P[Q]=G}),m}return c}(U.Base);_.set(p,g)}else _.set(p,v);return _.get(p)};N.registerLayout=I;var T=function(p){_.has(p)&&_.delete(p)};N.unRegisterLayout=T;var x=function(p){return _.has(p)?_.get(p):null};N.getLayoutByName=x},26422:function(Mt,N){"use strict";Object.defineProperty(N,"__esModule",{value:!0}),N.isArray=void 0,N.isArray=Array.isArray},62400:function(Mt,N,F){"use strict";Object.defineProperty(N,"__esModule",{value:!0}),N.getFuncByUnknownType=N.getFunc=N.isFunction=void 0;var k=F(44941),U=F(17679),L=function(T){return typeof T=="function"};N.isFunction=L;var _=function(T,x,p){var v;return p?v=p:(0,U.isNumber)(T)?v=function(){return T}:v=function(){return x},v};N.getFunc=_;var I=function(T,x,p){return p===void 0&&(p=!0),!x&&x!==0?function(v){return v.size?(0,k.isArray)(v.size)?v.size[0]>v.size[1]?v.size[0]:v.size[1]:(0,k.isObject)(v.size)?v.size.width>v.size.height?v.size.width:v.size.height:v.size:T}:(0,N.isFunction)(x)?x:(0,U.isNumber)(x)?function(){return x}:(0,k.isArray)(x)?function(){if(p){var v=Math.max.apply(Math,x);return isNaN(v)?T:v}return x}:(0,k.isObject)(x)?function(){if(p){var v=Math.max(x.width,x.height);return isNaN(v)?T:v}return[x.width,x.height]}:function(){return T}};N.getFuncByUnknownType=I},50793:function(Mt,N,F){"use strict";Object.defineProperty(N,"__esModule",{value:!0}),N.arrayToTextureData=N.attributesToTextureData=N.buildTextureDataWithTwoEdgeAttr=N.buildTextureData=N.proccessToFunc=void 0;var k=F(44941),U=F(13892),L=function(p,v){var g;return p?(0,k.isNumber)(p)?g=function(){return p}:g=p:g=function(){return v||1},g};N.proccessToFunc=L;var _=function(p,v){var g=[],d=[],c={},s=0;for(s=0;sQ[W][Z]+Q[Z][H]&&(Q[W][H]=Q[W][Z]+Q[Z][H]);return Q};N.floydWarshall=x;var p=function(j,Q){var G=j.nodes,W=j.edges,H=[],Z={};if(!G)throw new Error("invalid nodes data!");return G&&G.forEach(function(J,K){Z[J.id]=K;var ne=[];H.push(ne)}),W==null||W.forEach(function(J){var K=(0,N.getEdgeTerminal)(J,"source"),ne=(0,N.getEdgeTerminal)(J,"target"),se=Z[K],fe=Z[ne];se===void 0||fe===void 0||(H[se][fe]=1,Q||(H[fe][se]=1))}),H};N.getAdjMatrix=p;var v=function(j,Q){var G=[];return j.forEach(function(W){var H=[];W.forEach(function(Z){H.push(Z*Q)}),G.push(H)}),G};N.scaleMatrix=v;var g=function(j,Q){if(j&&j.children){for(var G=j.children.length-1;G>=0;G--)if(!g(j.children[G],Q))return}return!!Q(j)},d=function(j,Q){typeof Q=="function"&&g(j,Q)};N.traverseTreeUp=d;var c=function(j){var Q=1/0,G=1/0,W=-1/0,H=-1/0;return j.forEach(function(Z){var J=Z.size;(0,k.isArray)(J)?J.length===1&&(J=[J[0],J[0]]):(0,U.isNumber)(J)?J=[J,J]:(J===void 0||isNaN(J))&&(J=[30,30]);var K=[J[0]/2,J[1]/2],ne=Z.x-K[0],se=Z.x+K[0],fe=Z.y-K[1],Ie=Z.y+K[1];Q>ne&&(Q=ne),G>fe&&(G=fe),W=0;return s?M?Math.PI*2-m:m:M?m:Math.PI*2-m}k=v;function g(d,c,s){return s?(d[0]=c[1],d[1]=-1*c[0]):(d[0]=-1*c[1],d[1]=c[0]),d}k=g},50037:function(Mt,N,F){"use strict";F.r(N),F.d(N,{Cache:function(){return as},angleTo:function(){return fe},arcToCubic:function(){return Oe},assign:function(){return Bo},augment:function(){return vi},clamp:function(){return So.Z},clearAnimationFrame:function(){return yu},clone:function(){return Xs},clonePath:function(){return Sr},contains:function(){return Le},createDOM:function(){return Af},debounce:function(){return xf},deepMix:function(){return ac},difference:function(){return nr},direction:function(){return se},distanceSquareRoot:function(){return Rn},each:function(){return lr},endsWith:function(){return to},equalizeSegments:function(){return X},every:function(){return Ru},extend:function(){return Vi},filter:function(){return qe},find:function(){return In},findIndex:function(){return D},firstValue:function(){return xe},fixedBase:function(){return di},flatten:function(){return De},flattenDeep:function(){return Je},forIn:function(){return Jo},get:function(){return io},getDrawDirection:function(){return Wn},getPathArea:function(){return un},getPathBBox:function(){return Cn},getPathBBoxTotalLength:function(){return oa},getPointAtLength:function(){return Y},getRange:function(){return ir},getRotatedCurve:function(){return xn},getTotalLength:function(){return Sn},getType:function(){return qo},getWrapBehavior:function(){return ro},gradient:function(){return m},group:function(){return $i},groupBy:function(){return Ho},groupToMap:function(){return zi},has:function(){return vs},hasKey:function(){return Bu},hasValue:function(){return yo},head:function(){return Ki},identity:function(){return Ku},includes:function(){return Le},indexOf:function(){return wf},isArguments:function(){return du},isArray:function(){return Ur},isArrayLike:function(){return Me},isBoolean:function(){return Uu},isDate:function(){return ao},isDecimal:function(){return hi},isElement:function(){return gu},isEmpty:function(){return Hu},isEqual:function(){return ms},isEqualWith:function(){return Zu},isError:function(){return Xu},isEven:function(){return Vn},isFinite:function(){return vu},isFunction:function(){return I},isInteger:function(){return qa},isMatch:function(){return ea},isNegative:function(){return bi},isNil:function(){return Ft.Z},isNull:function(){return pf},isNumber:function(){return mi.Z},isNumberEqual:function(){return go},isObject:function(){return Ct},isObjectLike:function(){return Tn},isOdd:function(){return Mo},isPlainObject:function(){return Zn},isPointInPolygon:function(){return na},isPointInStroke:function(){return C},isPolygonsIntersect:function(){return If},isPositive:function(){return su},isPrototype:function(){return Gs},isRegExp:function(){return mf},isString:function(){return Kn},isType:function(){return er.Z},isUndefined:function(){return zs},keys:function(){return br},last:function(){return Si},lowerCase:function(){return cu},lowerFirst:function(){return ps},map:function(){return ii},mapValues:function(){return bs},max:function(){return lt},maxBy:function(){return gf},memoize:function(){return T},min:function(){return Tt},minBy:function(){return uu},mix:function(){return Bo},mod:function(){return dn},modifyCSS:function(){return oo},noop:function(){return mu},normalizePath:function(){return It},number2color:function(){return vo},omit:function(){return Co},parseRadius:function(){return Ca},path2Absolute:function(){return Nr},path2Curve:function(){return rn},path2String:function(){return Ae},pick:function(){return Mf},pull:function(){return jn},pullAt:function(){return ya},reduce:function(){return bo},remove:function(){return Fi},requestAnimationFrame:function(){return pu},reverseCurve:function(){return qr},rgb2arr:function(){return k},set:function(){return ns},size:function(){return $u},some:function(){return ri},sortBy:function(){return Ei},startsWith:function(){return On},substitute:function(){return Gu},throttle:function(){return ic},toArray:function(){return oc},toCSSGradient:function(){return Q},toDegree:function(){return Ps},toInteger:function(){return $o},toRGB:function(){return d},toRadian:function(){return Qo},toString:function(){return gs},transform:function(){return K},union:function(){return Yo},uniq:function(){return eo},uniqueId:function(){return Cf},upperCase:function(){return ko},upperFirst:function(){return zu},values:function(){return Fa},valuesOfKey:function(){return Po},vertical:function(){return Ie},wrapBehavior:function(){return Ui}});function k(q){return[parseInt(q.substr(1,2),16),parseInt(q.substr(3,2),16),parseInt(q.substr(5,2),16)]}function U(q){var de=Math.round(q).toString(16);return de.length===1?"0"+de:de}function L(q){return"#"+U(q[0])+U(q[1])+U(q[2])}function _(q){var de,Ee,Pe,je=q||1;function bt(jt,vr){++de>je&&(Pe=Ee,St(1),++de),Ee[jt]=vr}function St(jt){de=0,Ee=Object.create(null),jt||(Pe=Object.create(null))}return St(),{clear:St,has:function(jt){return Ee[jt]!==void 0||Pe[jt]!==void 0},get:function(jt){var vr=Ee[jt];if(vr!==void 0)return vr;if((vr=Pe[jt])!==void 0)return bt(jt,vr),vr},set:function(jt,vr){Ee[jt]!==void 0?Ee[jt]=vr:bt(jt,vr)}}}var I=function(q){return typeof q=="function"},T=function(q,de,Ee){if(Ee===void 0&&(Ee=128),!I(q))throw new TypeError("Expected a function");var Pe=function(){for(var je=[],bt=0;bt1?1:Number(de),Pe=q.length-1,je=Math.floor(Pe*Ee),bt=Pe*Ee-je,St=q[je],jt=je===Pe?St:q[je+1];return L([c(St,jt,bt,0),c(St,jt,bt,1),c(St,jt,bt,2)])}function m(q){var de=typeof q=="string"?q.split("-"):q,Ee=de.map(function(Pe){return k(Pe.indexOf("#")===-1?d(Pe):Pe)});return function(Pe){return s(Ee,Pe)}}var M=/^l\s*\(\s*([\d.]+)\s*\)\s*(.*)/i,P=/^r\s*\(\s*([\d.]+)\s*,\s*([\d.]+)\s*,\s*([\d.]+)\s*\)\s*(.*)/i,R=/[\d.]+:(#[^\s]+|[^)]+\))/gi;function j(q){return/^[r,R,L,l]{1}[\s]*\(/.test(q)}function Q(q){if(j(q)){var de,Ee=void 0;if(q[0]==="l"){var Pe=M.exec(q),je=+Pe[1]+90;Ee=Pe[2],de="linear-gradient("+je+"deg, "}else if(q[0]==="r"){de="radial-gradient(";var Pe=P.exec(q);Ee=Pe[4]}var bt=Ee.match(R);return bt.forEach(function(St,jt){var vr=St.split(":");de+=vr[1]+" "+Number(vr[0])*100+"%",jt!==bt.length-1&&(de+=", ")}),de+=")",de}return q}var G=F(73485);function W(q,de,Ee){var Pe=[0,0,0,0,0,0,0,0,0];return G.fromTranslation(Pe,Ee),G.multiply(q,Pe,de)}function H(q,de,Ee){var Pe=[0,0,0,0,0,0,0,0,0];return G.fromRotation(Pe,Ee),G.multiply(q,Pe,de)}function Z(q,de,Ee){var Pe=[0,0,0,0,0,0,0,0,0];return G.fromScaling(Pe,Ee),G.multiply(q,Pe,de)}function J(q,de,Ee){return G.multiply(q,Ee,de)}function K(q,de){for(var Ee=q?[].concat(q):[1,0,0,0,1,0,0,0,1],Pe=0,je=de.length;Pe=0;return Ee?je?Math.PI*2-Pe:Pe:je?Pe:Math.PI*2-Pe}function Ie(q,de,Ee){return Ee?(q[0]=de[1],q[1]=-1*de[0]):(q[0]=-1*de[1],q[1]=de[0]),q}function ye(q,de){if(de==="off")return[].concat(q);var Ee=typeof de=="number"&&de>=1?Math.pow(10,de):1;return q.map(function(Pe){var je=Pe.slice(1).map(Number).map(function(bt){return de?Math.round(bt*Ee)/Ee:Math.round(bt)});return[Pe[0]].concat(je)})}function Ae(q,de){return de===void 0&&(de="off"),ye(q,de).map(function(Ee){return Ee[0]+Ee.slice(1).join(" ")}).join("")}var Se=F(99938),we={x1:0,y1:0,x2:0,y2:0,x:0,y:0,qx:null,qy:null};function Te(q,de,Ee){if(q[Ee].length>7){q[Ee].shift();for(var Pe=q[Ee],je=Ee;Pe.length;)de[Ee]="A",q.splice(je+=1,0,["C"].concat(Pe.splice(0,6)));q.splice(Ee,1)}}var ke={a:7,c:6,h:1,l:2,m:2,r:4,q:4,s:4,t:2,v:1,z:0};function Ge(q){return Array.isArray(q)&&q.every(function(de){var Ee=de[0].toLowerCase();return ke[Ee]===de.length-1&&"achlmqstvz".includes(Ee)})}function tt(q){return Ge(q)&&q.every(function(de){var Ee=de[0];return Ee===Ee.toUpperCase()})}function He(q){return tt(q)&&q.every(function(de){var Ee=de[0];return"ACLMQZ".includes(Ee)})}function ft(q){for(var de=q.pathValue[q.segmentStart],Ee=de.toLowerCase(),Pe=q.data;Pe.length>=ke[Ee]&&(Ee==="m"&&Pe.length>2?(q.segments.push([de].concat(Pe.splice(0,2))),Ee="l",de=de==="m"?"l":"L"):q.segments.push([de].concat(Pe.splice(0,ke[Ee]))),!!ke[Ee]););}function Lt(q){var de=q.index,Ee=q.pathValue,Pe=Ee.charCodeAt(de);if(Pe===48){q.param=0,q.index+=1;return}if(Pe===49){q.param=1,q.index+=1;return}q.err='[path-util]: invalid Arc flag "'+Ee[de]+'", expecting 0 or 1 at index '+de}function Jt(q){return q>=48&&q<=57||q===43||q===45||q===46}function Qe(q){return q>=48&&q<=57}function ut(q){var de=q.max,Ee=q.pathValue,Pe=q.index,je=Pe,bt=!1,St=!1,jt=!1,vr=!1,xr;if(je>=de){q.err="[path-util]: Invalid path value at index "+je+', "pathValue" is missing param';return}if(xr=Ee.charCodeAt(je),(xr===43||xr===45)&&(je+=1,xr=Ee.charCodeAt(je)),!Qe(xr)&&xr!==46){q.err="[path-util]: Invalid path value at index "+je+', "'+Ee[je]+'" is not a number';return}if(xr!==46){if(bt=xr===48,je+=1,xr=Ee.charCodeAt(je),bt&&je=5760&&de.includes(q)}function dt(q){for(var de=q.pathValue,Ee=q.max;q.index0;St-=1){if(wt(je)&&(St===3||St===4)?Lt(q):ut(q),q.err.length)return;q.data.push(q.param),dt(q),q.index=q.max||!Jt(Ee.charCodeAt(q.index)))break}ft(q)}var ur=function(){function q(de){this.pathValue=de,this.segments=[],this.max=de.length,this.index=0,this.param=0,this.segmentStart=0,this.data=[],this.err=""}return q}();function Ir(q){if(Ge(q))return[].concat(q);var de=new ur(q);for(dt(de);de.index1&&(ha=Math.sqrt(ha),tn*=ha,Gn*=ha);var Pa=tn*tn,Qa=Gn*Gn,Ya=(bt===St?-1:1)*Math.sqrt(Math.abs((Pa*Qa-Pa*Ma*Ma-Qa*Da*Da)/(Pa*Ma*Ma+Qa*Da*Da)));Qn=Ya*tn*Ma/Gn+($r+$n)/2,ga=Ya*-Gn*Da/tn+(an+Dn)/2,Xn=Math.asin(((an-ga)/Gn*Math.pow(10,9)>>0)/Math.pow(10,9)),bn=Math.asin(((Dn-ga)/Gn*Math.pow(10,9)>>0)/Math.pow(10,9)),Xn=$rbn&&(Xn-=Math.PI*2),!St&&bn>Xn&&(bn-=Math.PI*2)}var zo=bn-Xn;if(Math.abs(zo)>Nn){var Qu=bn,To=$n,$s=Dn;bn=Xn+Nn*(St&&bn>Xn?1:-1),$n=Qn+tn*Math.cos(bn),Dn=ga+Gn*Math.sin(bn),pn=Oe($n,Dn,tn,Gn,je,0,St,To,$s,[bn,Qu,Qn,ga])}zo=bn-Xn;var Qi=Math.cos(Xn),Io=Math.sin(Xn),wu=Math.cos(bn),sc=Math.sin(bn),Qs=Math.tan(zo/4),ei=4/3*tn*Qs,Of=4/3*Gn*Qs,ws=[$r,an],Ss=[$r+ei*Io,an-Of*Qi],Ju=[$n+ei*sc,Dn-Of*wu],so=[$n,Dn];if(Ss[0]=2*ws[0]-Ss[0],Ss[1]=2*ws[1]-Ss[1],xr)return Ss.concat(Ju,so,pn);pn=Ss.concat(Ju,so,pn);for(var qu=[],Uo=0,_s=pn.length;Uo<_s;Uo+=1)qu[Uo]=Uo%2?ar(pn[Uo-1],pn[Uo],zn).y:ar(pn[Uo],pn[Uo+1],zn).x;return qu}function Pr(q,de,Ee,Pe,je,bt){var St=.3333333333333333,jt=2/3;return[St*q+jt*Ee,St*de+jt*Pe,St*je+jt*Ee,St*bt+jt*Pe,je,bt]}function Cr(q,de,Ee){var Pe=q[0],je=q[1],bt=de[0],St=de[1];return[Pe+(bt-Pe)*Ee,je+(St-je)*Ee]}var Gr=function(q,de,Ee,Pe){var je=.5,bt=Cr([q,de],[Ee,Pe],je);return(0,Se.__spreadArray)((0,Se.__spreadArray)([],bt,!0),[Ee,Pe,Ee,Pe],!1)};function mr(q,de){var Ee=q[0],Pe=q.slice(1).map(Number),je=Pe[0],bt=Pe[1],St,jt=de.x1,vr=de.y1,xr=de.x,$r=de.y;switch("TQ".includes(Ee)||(de.qx=null,de.qy=null),Ee){case"M":return de.x=je,de.y=bt,q;case"A":return St=[jt,vr].concat(Pe),["C"].concat(Oe(St[0],St[1],St[2],St[3],St[4],St[5],St[6],St[7],St[8],St[9]));case"Q":return de.qx=je,de.qy=bt,St=[jt,vr].concat(Pe),["C"].concat(Pr(St[0],St[1],St[2],St[3],St[4],St[5]));case"L":return["C"].concat(Gr(jt,vr,je,bt));case"Z":return jt===xr&&vr===$r?["C",jt,vr,xr,$r,xr,$r]:["C"].concat(Gr(jt,vr,xr,$r));default:}return q}function rn(q,de){if(de===void 0&&(de=!1),qt(q)){var Ee=[].concat(q);return de?[Ee,[]]:Ee}for(var Pe=It(q),je=(0,Se.__assign)({},we),bt=[],St="",jt=Pe.length,vr,xr,$r=[],an=0;an=bt)St={x:Ee,y:Pe};else{var jt=Cr([q,de],[Ee,Pe],je/bt),vr=jt[0],xr=jt[1];St={x:vr,y:xr}}return{length:bt,point:St,min:{x:Math.min(q,Ee),y:Math.min(de,Pe)},max:{x:Math.max(q,Ee),y:Math.max(de,Pe)}}}function zr(q,de){var Ee=q.x,Pe=q.y,je=de.x,bt=de.y,St=Ee*je+Pe*bt,jt=Math.sqrt((Math.pow(Ee,2)+Math.pow(Pe,2))*(Math.pow(je,2)+Math.pow(bt,2))),vr=Ee*bt-Pe*je<0?-1:1,xr=vr*Math.acos(St/jt);return xr}function Rt(q,de,Ee,Pe,je,bt,St,jt,vr,xr){var $r=Math.abs,an=Math.sin,tn=Math.cos,Gn=Math.sqrt,$n=Math.PI,Dn=$r(Ee),Nn=$r(Pe),zn=(je%360+360)%360,pn=zn*($n/180);if(q===jt&&de===vr)return{x:q,y:de};if(Dn===0||Nn===0)return yn(q,de,jt,vr,xr).point;var Yn=(q-jt)/2,Xn=(de-vr)/2,bn={x:tn(pn)*Yn+an(pn)*Xn,y:-an(pn)*Yn+tn(pn)*Xn},Qn=Math.pow(bn.x,2)/Math.pow(Dn,2)+Math.pow(bn.y,2)/Math.pow(Nn,2);Qn>1&&(Dn*=Gn(Qn),Nn*=Gn(Qn));var ga=Math.pow(Dn,2)*Math.pow(Nn,2)-Math.pow(Dn,2)*Math.pow(bn.y,2)-Math.pow(Nn,2)*Math.pow(bn.x,2),Da=Math.pow(Dn,2)*Math.pow(bn.y,2)+Math.pow(Nn,2)*Math.pow(bn.x,2),Ma=ga/Da;Ma=Ma<0?0:Ma;var ha=(bt!==St?1:-1)*Gn(Ma),Pa={x:ha*(Dn*bn.y/Nn),y:ha*(-(Nn*bn.x)/Dn)},Qa={x:tn(pn)*Pa.x-an(pn)*Pa.y+(q+jt)/2,y:an(pn)*Pa.x+tn(pn)*Pa.y+(de+vr)/2},Ya={x:(bn.x-Pa.x)/Dn,y:(bn.y-Pa.y)/Nn},zo=zr({x:1,y:0},Ya),Qu={x:(-bn.x-Pa.x)/Dn,y:(-bn.y-Pa.y)/Nn},To=zr(Ya,Qu);!St&&To>0?To-=2*$n:St&&To<0&&(To+=2*$n),To%=2*$n;var $s=zo+To*xr,Qi=Dn*tn($s),Io=Nn*an($s),wu={x:tn(pn)*Qi-an(pn)*Io+Qa.x,y:an(pn)*Qi+tn(pn)*Io+Qa.y};return wu}function zt(q,de,Ee,Pe,je,bt,St,jt,vr,xr,$r){var an,tn=$r.bbox,Gn=tn===void 0?!0:tn,$n=$r.length,Dn=$n===void 0?!0:$n,Nn=$r.sampleSize,zn=Nn===void 0?30:Nn,pn=typeof xr=="number",Yn=q,Xn=de,bn=0,Qn=[Yn,Xn,bn],ga=[Yn,Xn],Da=0,Ma={x:0,y:0},ha=[{x:Yn,y:Xn}];pn&&xr<=0&&(Ma={x:Yn,y:Xn});for(var Pa=0;Pa<=zn;Pa+=1){if(Da=Pa/zn,an=Rt(q,de,Ee,Pe,je,bt,St,jt,vr,Da),Yn=an.x,Xn=an.y,Gn&&ha.push({x:Yn,y:Xn}),Dn&&(bn+=Rn(ga,[Yn,Xn])),ga=[Yn,Xn],pn&&bn>=xr&&xr>Qn[2]){var Qa=(bn-xr)/(bn-Qn[2]);Ma={x:ga[0]*(1-Qa)+Qn[0]*Qa,y:ga[1]*(1-Qa)+Qn[1]*Qa}}Qn=[Yn,Xn,bn]}return pn&&xr>=bn&&(Ma={x:jt,y:vr}),{length:bn,point:Ma,min:{x:Math.min.apply(null,ha.map(function(Ya){return Ya.x})),y:Math.min.apply(null,ha.map(function(Ya){return Ya.y}))},max:{x:Math.max.apply(null,ha.map(function(Ya){return Ya.x})),y:Math.max.apply(null,ha.map(function(Ya){return Ya.y}))}}}function Vt(q,de,Ee,Pe,je,bt,St,jt,vr){var xr=1-vr;return{x:Math.pow(xr,3)*q+3*Math.pow(xr,2)*vr*Ee+3*xr*Math.pow(vr,2)*je+Math.pow(vr,3)*St,y:Math.pow(xr,3)*de+3*Math.pow(xr,2)*vr*Pe+3*xr*Math.pow(vr,2)*bt+Math.pow(vr,3)*jt}}function hr(q,de,Ee,Pe,je,bt,St,jt,vr,xr){var $r,an=xr.bbox,tn=an===void 0?!0:an,Gn=xr.length,$n=Gn===void 0?!0:Gn,Dn=xr.sampleSize,Nn=Dn===void 0?10:Dn,zn=typeof vr=="number",pn=q,Yn=de,Xn=0,bn=[pn,Yn,Xn],Qn=[pn,Yn],ga=0,Da={x:0,y:0},Ma=[{x:pn,y:Yn}];zn&&vr<=0&&(Da={x:pn,y:Yn});for(var ha=0;ha<=Nn;ha+=1){if(ga=ha/Nn,$r=Vt(q,de,Ee,Pe,je,bt,St,jt,ga),pn=$r.x,Yn=$r.y,tn&&Ma.push({x:pn,y:Yn}),$n&&(Xn+=Rn(Qn,[pn,Yn])),Qn=[pn,Yn],zn&&Xn>=vr&&vr>bn[2]){var Pa=(Xn-vr)/(Xn-bn[2]);Da={x:Qn[0]*(1-Pa)+bn[0]*Pa,y:Qn[1]*(1-Pa)+bn[1]*Pa}}bn=[pn,Yn,Xn]}return zn&&vr>=Xn&&(Da={x:St,y:jt}),{length:Xn,point:Da,min:{x:Math.min.apply(null,Ma.map(function(Qa){return Qa.x})),y:Math.min.apply(null,Ma.map(function(Qa){return Qa.y}))},max:{x:Math.max.apply(null,Ma.map(function(Qa){return Qa.x})),y:Math.max.apply(null,Ma.map(function(Qa){return Qa.y}))}}}function Ar(q,de,Ee,Pe,je,bt,St){var jt=1-St;return{x:Math.pow(jt,2)*q+2*jt*St*Ee+Math.pow(St,2)*je,y:Math.pow(jt,2)*de+2*jt*St*Pe+Math.pow(St,2)*bt}}function en(q,de,Ee,Pe,je,bt,St,jt){var vr,xr=jt.bbox,$r=xr===void 0?!0:xr,an=jt.length,tn=an===void 0?!0:an,Gn=jt.sampleSize,$n=Gn===void 0?10:Gn,Dn=typeof St=="number",Nn=q,zn=de,pn=0,Yn=[Nn,zn,pn],Xn=[Nn,zn],bn=0,Qn={x:0,y:0},ga=[{x:Nn,y:zn}];Dn&&St<=0&&(Qn={x:Nn,y:zn});for(var Da=0;Da<=$n;Da+=1){if(bn=Da/$n,vr=Ar(q,de,Ee,Pe,je,bt,bn),Nn=vr.x,zn=vr.y,$r&&ga.push({x:Nn,y:zn}),tn&&(pn+=Rn(Xn,[Nn,zn])),Xn=[Nn,zn],Dn&&pn>=St&&St>Yn[2]){var Ma=(pn-St)/(pn-Yn[2]);Qn={x:Xn[0]*(1-Ma)+Yn[0]*Ma,y:Xn[1]*(1-Ma)+Yn[1]*Ma}}Yn=[Nn,zn,pn]}return Dn&&St>=pn&&(Qn={x:je,y:bt}),{length:pn,point:Qn,min:{x:Math.min.apply(null,ga.map(function(ha){return ha.x})),y:Math.min.apply(null,ga.map(function(ha){return ha.y}))},max:{x:Math.max.apply(null,ga.map(function(ha){return ha.x})),y:Math.max.apply(null,ga.map(function(ha){return ha.y}))}}}function Fr(q,de,Ee){for(var Pe,je,bt,St,jt,vr,xr=It(q),$r=typeof de=="number",an,tn=[],Gn,$n=0,Dn=0,Nn=0,zn=0,pn,Yn=[],Xn=[],bn=0,Qn={x:0,y:0},ga=Qn,Da=Qn,Ma=Qn,ha=0,Pa=0,Qa=xr.length;Pa=de&&(Ma=Da),Xn.push(ga),Yn.push(Qn),ha+=bn,vr=Gn!=="Z"?pn.slice(-2):[Nn,zn],$n=vr[0],Dn=vr[1];return $r&&de>=ha&&(Ma={x:$n,y:Dn}),{length:ha,point:Ma,min:{x:Math.min.apply(null,Yn.map(function(Ya){return Ya.x})),y:Math.min.apply(null,Yn.map(function(Ya){return Ya.y}))},max:{x:Math.max.apply(null,Xn.map(function(Ya){return Ya.x})),y:Math.max.apply(null,Xn.map(function(Ya){return Ya.y}))}}}function Cn(q,de){if(!q)return{x:0,y:0,width:0,height:0,x2:0,y2:0,cx:0,cy:0,cz:0};var Ee=Fr(q,void 0,(0,Se.__assign)((0,Se.__assign)({},de),{length:!1})),Pe=Ee.min,je=Pe.x,bt=Pe.y,St=Ee.max,jt=St.x,vr=St.y,xr=jt-je,$r=vr-bt;return{width:xr,height:$r,x:je,y:bt,x2:jt,y2:vr,cx:je+xr/2,cy:bt+$r/2,cz:Math.max(xr,$r)+Math.min(xr,$r)/2}}function Sn(q,de){return Fr(q,void 0,(0,Se.__assign)((0,Se.__assign)({},de),{bbox:!1,length:!0})).length}function oa(q,de){if(!q)return{length:0,x:0,y:0,width:0,height:0,x2:0,y2:0,cx:0,cy:0,cz:0};var Ee=Fr(q,void 0,(0,Se.__assign)((0,Se.__assign)({},de),{bbox:!0,length:!0})),Pe=Ee.length,je=Ee.min,bt=je.x,St=je.y,jt=Ee.max,vr=jt.x,xr=jt.y,$r=vr-bt,an=xr-St;return{length:Pe,width:$r,height:an,x:bt,y:St,x2:vr,y2:xr,cx:bt+$r/2,cy:St+an/2,cz:Math.max($r,an)+Math.min($r,an)/2}}function jr(q){var de=q.length,Ee=de-1;return q.map(function(Pe,je){return q.map(function(bt,St){var jt=je+St,vr;return St===0||q[jt]&&q[jt][0]==="M"?(vr=q[jt],["M"].concat(vr.slice(-2))):(jt>=de&&(jt-=Ee),q[jt])})})}function xn(q,de){var Ee=q.length-1,Pe=[],je=0,bt=0,St=jr(q);return St.forEach(function(jt,vr){q.slice(1).forEach(function(xr,$r){bt+=Rn(q[(vr+$r)%Ee].slice(-2),de[$r%Ee].slice(-2))}),Pe[vr]=bt,bt=0}),je=Pe.indexOf(Math.min.apply(null,Pe)),St[je]}function vn(q,de,Ee,Pe,je,bt,St,jt){return 3*((jt-de)*(Ee+je)-(St-q)*(Pe+bt)+Pe*(q-je)-Ee*(de-bt)+jt*(je+q/3)-St*(bt+de/3))/20}function un(q){var de=0,Ee=0,Pe=0;return rn(q).map(function(je){var bt;switch(je[0]){case"M":return de=je[1],Ee=je[2],0;default:var St=je.slice(1),jt=St[0],vr=St[1],xr=St[2],$r=St[3],an=St[4],tn=St[5];return Pe=vn(de,Ee,jt,vr,xr,$r,an,tn),bt=je.slice(-2),de=bt[0],Ee=bt[1],Pe}}).reduce(function(je,bt){return je+bt},0)}function Wn(q){return un(q)>=0}function Y(q,de,Ee){return Fr(q,de,(0,Se.__assign)((0,Se.__assign)({},Ee),{bbox:!1,length:!0})).point}function ie(q,de){var Ee=Ir(q);if(typeof Ee=="string")throw TypeError(Ee);var Pe=Ee.slice(),je=Sn(Pe),bt=Pe.length-1,St=0,jt=0,vr=Ee[0],xr=vr.slice(-2),$r=xr[0],an=xr[1],tn={x:$r,y:an};if(bt<=0||!de||!Number.isFinite(de))return{segment:vr,index:0,length:jt,point:tn,lengthAtSegment:St};if(de>=je)return Pe=Ee.slice(0,-1),St=Sn(Pe),jt=je-St,{segment:Ee[bt],index:bt,length:jt,lengthAtSegment:St};for(var Gn=[];bt>0;)vr=Pe[bt],Pe=Pe.slice(0,-1),St=Sn(Pe),jt=je-St,je=St,Gn.push({segment:vr,index:bt,length:jt,lengthAtSegment:St}),bt-=1;return Gn.find(function($n){var Dn=$n.lengthAtSegment;return Dn<=de})}function ee(q,de){for(var Ee=Ir(q),Pe=It(Ee),je=Sn(Ee),bt=function(bn){var Qn=bn.x-de.x,ga=bn.y-de.y;return Qn*Qn+ga*ga},St=8,jt,vr=0,xr,$r=0,an=1/0,tn=0;tn<=je;tn+=St)jt=Y(Pe,tn),vr=bt(jt),vr.5;)Dn=$r-St,Gn=Y(Pe,Dn),zn=bt(Gn),Nn=$r+St,$n=Y(Pe,Nn),pn=bt($n),Dn>=0&&zn=tn[zn],Gn[zn]-=$n?1:0,$n?pn.ss:[pn.s]}).flat()});return Dn[0].length===Dn[1].length?Dn:X(Dn[0],Dn[1],an)}var pe=function(q){return q!==null&&typeof q!="function"&&isFinite(q.length)},Me=pe,me=function(q,de){return Me(q)?q.indexOf(de)>-1:!1},Le=me,st=function(q,de){if(!Me(q))return q;for(var Ee=[],Pe=0;Pe-1;)nn.call(q,bt,1);return q},jn=Jr,_a=Array.prototype.splice,Fn=function(de,Ee){if(!Me(de))return[];for(var Pe=de?Ee.length:0,je=Pe-1;Pe--;){var bt=void 0,St=Ee[Pe];(Pe===je||St!==bt)&&(bt=St,_a.call(de,St,1))}return de},ya=Fn,Ai=function(q,de,Ee){if(!Ur(q)&&!Zn(q))return q;var Pe=Ee;return lr(q,function(je,bt){Pe=de(Pe,je,bt)}),Pe},bo=Ai,Zi=function(q,de){var Ee=[];if(!Me(q))return Ee;for(var Pe=-1,je=[],bt=q.length;++Pebt[jt])return 1;if(je[jt]20&&(je=20),parseFloat(q.toFixed(je))},di=ou,mi=F(39696),_o=function(q){return(0,mi.Z)(q)&&q%1!==0},hi=_o,xi=function(q){return(0,mi.Z)(q)&&q%2===0},Vn=xi,ni=Number.isInteger?Number.isInteger:function(q){return(0,mi.Z)(q)&&q%1===0},qa=ni,wi=function(q){return(0,mi.Z)(q)&&q<0},bi=wi,Mi=1e-5;function go(q,de,Ee){return Ee===void 0&&(Ee=Mi),Math.abs(q-de)0},su=po,gf=function(q,de){if(Ur(q)){for(var Ee,Pe=-1/0,je=0;jePe&&(Ee=bt,Pe=St)}return Ee}},uu=function(q,de){if(Ur(q)){for(var Ee,Pe=1/0,je=0;jede?(Pe&&(clearTimeout(Pe),Pe=null),jt=$r,St=q.apply(je,bt),Pe||(je=bt=null)):!Pe&&Ee.trailing!==!1&&(Pe=setTimeout(vr,an)),St};return xr.cancel=function(){clearTimeout(Pe),jt=0,Pe=je=bt=null},xr},oc=function(q){return Me(q)?Array.prototype.slice.call(q):[]},Es={},Cf=function(q){return q=q||"g",Es[q]?Es[q]+=1:Es[q]=1,q+Es[q]},mu=function(){},Ku=function(q){return q};function $u(q){return(0,Ft.Z)(q)?0:Me(q)?q.length:Object.keys(q).length}var bu=function(){function q(){this.map={}}return q.prototype.has=function(de){return this.map[de]!==void 0},q.prototype.get=function(de,Ee){var Pe=this.map[de];return Pe===void 0?Ee:Pe},q.prototype.set=function(de,Ee){this.map[de]=Ee},q.prototype.clear=function(){this.map={}},q.prototype.delete=function(de){delete this.map[de]},q.prototype.size=function(){return Object.keys(this.map).length},q}(),as=bu,Eu=1e-6;function Qr(q){return Math.abs(q)0!=Qr(jt[1]-Ee)>0&&Qr(de-(Ee-St[1])*(St[0]-jt[0])/(St[1]-jt[1])-St[0])<0&&(Pe=!Pe)}return Pe}var Zs=function(q,de,Ee){return q>=de&&q<=Ee};function Ks(q,de,Ee,Pe){var je=.001,bt={x:Ee.x-q.x,y:Ee.y-q.y},St={x:de.x-q.x,y:de.y-q.y},jt={x:Pe.x-Ee.x,y:Pe.y-Ee.y},vr=St.x*jt.y-St.y*jt.x,xr=vr*vr,$r=St.x*St.x+St.y*St.y,an=jt.x*jt.x+jt.y*jt.y,tn=null;if(xr>je*$r*an){var Gn=(bt.x*jt.y-bt.y*jt.x)/vr,$n=(bt.x*St.y-bt.y*St.x)/vr;Zs(Gn,0,1)&&Zs($n,0,1)&&(tn={x:q.x+Gn*St.x,y:q.y+Gn*St.y})}return tn}function Go(q){for(var de=[],Ee=q.length,Pe=0;Pe1){var St=q[0],jt=q[Ee-1];de.push({from:{x:jt[0],y:jt[1]},to:{x:St[0],y:St[1]}})}return de}function Tf(q,de){var Ee=!1;return q.forEach(function(Pe){if(Ks(Pe.from,Pe.to,de.from,de.to))return Ee=!0,!1}),Ee}function xs(q){var de=q.map(function(Pe){return Pe[0]}),Ee=q.map(function(Pe){return Pe[1]});return{minX:Math.min.apply(null,de),maxX:Math.max.apply(null,de),minY:Math.min.apply(null,Ee),maxY:Math.max.apply(null,Ee)}}function xu(q,de){return!(de.minX>q.maxX||de.maxXq.maxY||de.maxYyn.index){var un=zr-jr.x-jr.vx,Wn=Rt-jr.y-jr.vy,Y=un*un+Wn*Wn;Yzr+vn||SnRt+vn||oaSr.r&&(Sr.r=Sr[qr].r)}function rn(){if(qt){var Sr,qr=qt.length,Rn;for(ar=new Array(qr),Sr=0;Sr=0&&(Oe=ar.slice(Pr+1),ar=ar.slice(0,Pr)),ar&&!qt.hasOwnProperty(ar))throw new Error("unknown type: "+ar);return{type:ar,name:Oe}})}M.prototype=m.prototype={constructor:M,on:function(qt,ar){var Oe=this._,Pr=P(qt+"",Oe),Cr,Gr=-1,mr=Pr.length;if(arguments.length<2){for(;++Gr0)for(var Oe=new Array(Cr),Pr=0,Cr,Gr;Pr=0&&It._call.call(null,qt),It=It._next;--G}function Ge(){se=(ne=Ie.now())+fe,G=W=0;try{ke()}finally{G=0,He(),se=0}}function tt(){var It=Ie.now(),qt=It-ne;qt>Z&&(fe-=qt,ne=It)}function He(){for(var It,qt=J,ar,Oe=1/0;qt;)qt._call?(Oe>qt._time&&(Oe=qt._time),It=qt,qt=qt._next):(ar=qt._next,qt._next=null,qt=It?It._next=ar:J=ar);K=It,ft(Oe)}function ft(It){if(!G){W&&(W=clearTimeout(W));var qt=It-se;qt>24?(It<1/0&&(W=setTimeout(Ge,It-Ie.now()-fe)),H&&(H=clearInterval(H))):(H||(ne=Ie.now(),H=setInterval(tt,Z)),G=1,ye(Ge))}}var Lt=1664525,Jt=1013904223,Qe=4294967296;function ut(){var It=1;return function(){return(It=(Lt*It+Jt)%Qe)/Qe}}function xt(It){return It.x}function dt(It){return It.y}var pt=10,wt=Math.PI*(3-Math.sqrt(5));function mt(It){var qt,ar=1,Oe=.001,Pr=1-Math.pow(Oe,1/300),Cr=0,Gr=.6,mr=new Map,rn=Te(Rn),Sr=Q("tick","end"),qr=ut();It==null&&(It=[]);function Rn(){yn(),Sr.call("tick",qt),ar1?(hr==null?mr.delete(Vt):mr.set(Vt,Rt(hr)),qt):mr.get(Vt)},find:function(Vt,hr,Ar){var en=0,Fr=It.length,Cn,Sn,oa,jr,xn;for(Ar==null?Ar=1/0:Ar*=Ar,en=0;en1?(Sr.on(Vt,hr),qt):Sr.on(Vt)}}}function ur(){var It,qt,ar,Oe,Pr=L(-30),Cr,Gr=1,mr=1/0,rn=.81;function Sr(zr){var Rt,zt=It.length,Vt=(0,U.Z)(It,xt,dt).visitAfter(Rn);for(Oe=zr,Rt=0;Rt=mr)return;(zr.data!==qt||zr.next)&&(hr===0&&(hr=_(ar),Fr+=hr*hr),Ar===0&&(Ar=_(ar),Fr+=Ar*Ar),Fr1&&arguments[1]!==void 0?arguments[1]:{},C=ee.maxRows,b=C===void 0?15:C,S=ee.maxColumns,X=S===void 0?10:S,pe=ee.maxNumSize,Me=pe===void 0?8:pe,me=ee.padMinus,Le=me===void 0?"auto":me;return"".concat(ie.constructor.name,` {
`).concat(v,`[
`).concat(g).concat(s(ie,b,X,Me,Le),`
`).concat(v,`]
`).concat(v,"rows: ").concat(ie.rows,`
`).concat(v,"columns: ").concat(ie.columns,`
}`)}function s(ie,ee,C,b,S){var X=ie.rows,pe=ie.columns,Me=Math.min(X,ee),me=Math.min(pe,C),Le=[];if(S==="auto"){S=!1;e:for(var st=0;st=0&&C?" ".concat(M(ie,ee-1)):M(ie,ee)).padEnd(ee)}function M(ie,ee){var C=ie.toString();if(C.length<=ee)return C;var b=ie.toFixed(ee);if(b.length>ee&&(b=ie.toFixed(Math.max(0,ee-(b.length-ee)))),b.length<=ee&&!b.startsWith("0.000")&&!b.startsWith("-0.000"))return b;var S=ie.toExponential(ee);return S.length>ee&&(S=ie.toExponential(Math.max(0,ee-(S.length-ee)))),S.slice(0)}function P(ie,ee){ie.prototype.add=function(b){return typeof b=="number"?this.addS(b):this.addM(b)},ie.prototype.addS=function(b){for(var S=0;S>b);return this},ie.prototype.signPropagatingRightShiftM=function(b){if(b=ee.checkMatrix(b),this.rows!==b.rows||this.columns!==b.columns)throw new RangeError("Matrices dimensions must be equal");for(var S=0;S>b.get(S,X));return this},ie.signPropagatingRightShift=function(b,S){var X=new ee(b);return X.signPropagatingRightShift(S)},ie.prototype.rightShift=function(b){return typeof b=="number"?this.rightShiftS(b):this.rightShiftM(b)},ie.prototype.rightShiftS=function(b){for(var S=0;S>>b);return this},ie.prototype.rightShiftM=function(b){if(b=ee.checkMatrix(b),this.rows!==b.rows||this.columns!==b.columns)throw new RangeError("Matrices dimensions must be equal");for(var S=0;S>>b.get(S,X));return this},ie.rightShift=function(b,S){var X=new ee(b);return X.rightShift(S)},ie.prototype.zeroFillRightShift=ie.prototype.rightShift,ie.prototype.zeroFillRightShiftS=ie.prototype.rightShiftS,ie.prototype.zeroFillRightShiftM=ie.prototype.rightShiftM,ie.zeroFillRightShift=ie.rightShift,ie.prototype.not=function(){for(var b=0;bb)throw new RangeError("Row index out of range")}function j(ie,ee,C){var b=C?ie.columns:ie.columns-1;if(ee<0||ee>b)throw new RangeError("Column index out of range")}function Q(ie,ee){if(ee.to1DArray&&(ee=ee.to1DArray()),ee.length!==ie.columns)throw new RangeError("vector size must be the same as the number of columns");return ee}function G(ie,ee){if(ee.to1DArray&&(ee=ee.to1DArray()),ee.length!==ie.rows)throw new RangeError("vector size must be the same as the number of rows");return ee}function W(ie,ee){if(!x.isAnyArray(ee))throw new TypeError("row indices must be an array");for(var C=0;C=ie.rows)throw new RangeError("row indices are out of range")}function H(ie,ee){if(!x.isAnyArray(ee))throw new TypeError("column indices must be an array");for(var C=0;C=ie.columns)throw new RangeError("column indices are out of range")}function Z(ie,ee,C,b,S){if(arguments.length!==5)throw new RangeError("expected 4 arguments");if(K("startRow",ee),K("endRow",C),K("startColumn",b),K("endColumn",S),ee>C||b>S||ee<0||ee>=ie.rows||C<0||C>=ie.rows||b<0||b>=ie.columns||S<0||S>=ie.columns)throw new RangeError("Submatrix indices are out of range")}function J(ie){for(var ee=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,C=[],b=0;bS?(pe=!0,S=b):(X=!1,pe=!0);C++}return X}},{key:"isReducedEchelonForm",value:function(){for(var C=0,b=0,S=-1,X=!0,pe=!1;CS?(pe=!0,S=b):(X=!1,pe=!0);for(var Me=b+1;MeC.get(X,S)&&(X=pe);if(C.get(X,S)===0)S++;else{C.swapRows(b,X);for(var Me=C.get(b,S),me=S;me=0;)if(C.maxRow(X)===0)X--;else{for(var pe=0,Me=!1;pe0&&arguments[0]!==void 0?arguments[0]:{};if(_(C)!=="object")throw new TypeError("options must be an object");var b=C.rows,S=b===void 0?1:b,X=C.columns,pe=X===void 0?1:X;if(!Number.isInteger(S)||S<=0)throw new TypeError("rows must be a positive integer");if(!Number.isInteger(pe)||pe<=0)throw new TypeError("columns must be a positive integer");for(var Me=new mt(this.rows*S,this.columns*pe),me=0;meb[S]&&(b[S]=this.get(S,X));return b}case"column":{for(var pe=new Array(this.columns).fill(Number.NEGATIVE_INFINITY),Me=0;Mepe[me]&&(pe[me]=this.get(Me,me));return pe}case void 0:{for(var Le=this.get(0,0),st=0;stLe&&(Le=this.get(st,qe));return Le}default:throw new Error("invalid option: ".concat(C))}}},{key:"maxIndex",value:function(){ne(this);for(var C=this.get(0,0),b=[0,0],S=0;SC&&(C=this.get(S,X),b[0]=S,b[1]=X);return b}},{key:"min",value:function(C){if(this.isEmpty())return NaN;switch(C){case"row":{for(var b=new Array(this.rows).fill(Number.POSITIVE_INFINITY),S=0;Sb&&(b=this.get(C,S));return b}},{key:"maxRowIndex",value:function(C){R(this,C),ne(this);for(var b=this.get(C,0),S=[C,0],X=1;Xb&&(b=this.get(C,X),S[1]=X);return S}},{key:"minRow",value:function(C){if(R(this,C),this.isEmpty())return NaN;for(var b=this.get(C,0),S=1;Sb&&(b=this.get(S,C));return b}},{key:"maxColumnIndex",value:function(C){j(this,C),ne(this);for(var b=this.get(0,C),S=[0,C],X=1;Xb&&(b=this.get(X,C),S[0]=X);return S}},{key:"minColumn",value:function(C){if(j(this,C),this.isEmpty())return NaN;for(var b=this.get(0,C),S=1;S0&&arguments[0]!==void 0?arguments[0]:"frobenius";switch(C){case"max":return this.max();case"frobenius":return Math.sqrt(this.dot(this));default:throw new RangeError("unknown norm type: ".concat(C))}}},{key:"cumulativeSum",value:function(){for(var C=0,b=0;b0&&arguments[0]!==void 0?arguments[0]:{};if(_(C)!=="object")throw new TypeError("options must be an object");var b=C.min,S=b===void 0?0:b,X=C.max,pe=X===void 0?1:X;if(!Number.isFinite(S))throw new TypeError("min must be a number");if(!Number.isFinite(pe))throw new TypeError("max must be a number");if(S>=pe)throw new RangeError("min must be smaller than max");for(var Me=new mt(this.rows,this.columns),me=0;me0&&p(Le,{min:S,max:pe,output:Le}),Me.setRow(me,Le)}return Me}},{key:"scaleColumns",value:function(){var C=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};if(_(C)!=="object")throw new TypeError("options must be an object");var b=C.min,S=b===void 0?0:b,X=C.max,pe=X===void 0?1:X;if(!Number.isFinite(S))throw new TypeError("min must be a number");if(!Number.isFinite(pe))throw new TypeError("max must be a number");if(S>=pe)throw new RangeError("min must be smaller than max");for(var Me=new mt(this.rows,this.columns),me=0;me0&&arguments[0]!==void 0?arguments[0]:pt,b=0;b0&&arguments[0]!==void 0?arguments[0]:pt,b=0;bS||b<0||b>=this.columns||S<0||S>=this.columns)throw new RangeError("Argument out of range");for(var X=new mt(C.length,S-b+1),pe=0;pe=this.rows)throw new RangeError("Row index out of range: ".concat(C[pe]));X.set(pe,Me-b,this.get(C[pe],Me))}return X}},{key:"subMatrixColumn",value:function(C,b,S){if(b===void 0&&(b=0),S===void 0&&(S=this.rows-1),b>S||b<0||b>=this.rows||S<0||S>=this.rows)throw new RangeError("Argument out of range");for(var X=new mt(S-b+1,C.length),pe=0;pe=this.columns)throw new RangeError("Column index out of range: ".concat(C[pe]));X.set(Me-b,pe,this.get(Me,C[pe]))}return X}},{key:"setSubMatrix",value:function(C,b,S){if(C=mt.checkMatrix(C),C.isEmpty())return this;var X=b+C.rows-1,pe=S+C.columns-1;Z(this,b,X,S,pe);for(var Me=0;Me1&&arguments[1]!==void 0?arguments[1]:{};if(_(C)==="object"&&(b=C,C=void 0),_(b)!=="object")throw new TypeError("options must be an object");var S=b,X=S.unbiased,pe=X===void 0?!0:X,Me=S.mean,me=Me===void 0?this.mean(C):Me;if(typeof pe!="boolean")throw new TypeError("unbiased must be a boolean");switch(C){case"row":{if(!x.isAnyArray(me))throw new TypeError("mean must be an array");return we(this,pe,me)}case"column":{if(!x.isAnyArray(me))throw new TypeError("mean must be an array");return Te(this,pe,me)}case void 0:{if(typeof me!="number")throw new TypeError("mean must be a number");return ke(this,pe,me)}default:throw new Error("invalid option: ".concat(C))}}},{key:"standardDeviation",value:function(C,b){_(C)==="object"&&(b=C,C=void 0);var S=this.variance(C,b);if(C===void 0)return Math.sqrt(S);for(var X=0;X1&&arguments[1]!==void 0?arguments[1]:{};if(_(C)==="object"&&(b=C,C=void 0),_(b)!=="object")throw new TypeError("options must be an object");var S=b,X=S.center,pe=X===void 0?this.mean(C):X;switch(C){case"row":{if(!x.isAnyArray(pe))throw new TypeError("center must be an array");return Ge(this,pe),this}case"column":{if(!x.isAnyArray(pe))throw new TypeError("center must be an array");return tt(this,pe),this}case void 0:{if(typeof pe!="number")throw new TypeError("center must be a number");return He(this,pe),this}default:throw new Error("invalid option: ".concat(C))}}},{key:"scale",value:function(C){var b=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(_(C)==="object"&&(b=C,C=void 0),_(b)!=="object")throw new TypeError("options must be an object");var S=b.scale;switch(C){case"row":{if(S===void 0)S=ft(this);else if(!x.isAnyArray(S))throw new TypeError("scale must be an array");return Lt(this,S),this}case"column":{if(S===void 0)S=Jt(this);else if(!x.isAnyArray(S))throw new TypeError("scale must be an array");return Qe(this,S),this}case void 0:{if(S===void 0)S=ut(this);else if(typeof S!="number")throw new TypeError("scale must be a number");return xt(this,S),this}default:throw new Error("invalid option: ".concat(C))}}},{key:"toString",value:function(C){return c(this,C)}}],[{key:"from1DArray",value:function(C,b,S){var X=C*b;if(X!==S.length)throw new RangeError("data length does not match given dimensions");for(var pe=new mt(C,b),Me=0;Me2&&arguments[2]!==void 0?arguments[2]:{};if(_(S)!=="object")throw new TypeError("options must be an object");for(var X=S.random,pe=X===void 0?Math.random:X,Me=new mt(C,b),me=0;me2&&arguments[2]!==void 0?arguments[2]:{};if(_(S)!=="object")throw new TypeError("options must be an object");var X=S.min,pe=X===void 0?0:X,Me=S.max,me=Me===void 0?1e3:Me,Le=S.random,st=Le===void 0?Math.random:Le;if(!Number.isInteger(pe))throw new TypeError("min must be an integer");if(!Number.isInteger(me))throw new TypeError("max must be an integer");if(pe>=me)throw new RangeError("min must be smaller than max");for(var qe=me-pe,Nt=new mt(C,b),nr=0;nr=0)if(X.data=[],Number.isInteger(S)&&S>=0)for(var pe=0;pe1&&arguments[1]!==void 0?arguments[1]:{};I(this,C);var pe=X.rows,Me=pe===void 0?1:pe;if(b.length%Me!==0)throw new Error("the data length is not divisible by the number of rows");return S=ee.call(this),S.rows=Me,S.columns=b.length/Me,S.data=b,S}return T(C,[{key:"set",value:function(S,X,pe){var Me=this._calculateIndex(S,X);return this.data[Me]=pe,this}},{key:"get",value:function(S,X){var pe=this._calculateIndex(S,X);return this.data[pe]}},{key:"_calculateIndex",value:function(S,X){return S*this.columns+X}}]),C}(dt),mr=function(ie){U(C,ie);var ee=L(C);function C(b){var S;return I(this,C),S=ee.call(this),S.data=b,S.rows=b.length,S.columns=b[0].length,S}return T(C,[{key:"set",value:function(S,X,pe){return this.data[S][X]=pe,this}},{key:"get",value:function(S,X){return this.data[S][X]}}]),C}(dt);function rn(ie,ee){if(x.isAnyArray(ie))return ie[0]&&x.isAnyArray(ie[0])?new mr(ie):new Gr(ie,ee);throw new Error("the argument is not an array")}var Sr=function(){function ie(ee){I(this,ie),ee=mr.checkMatrix(ee);var C=ee.clone(),b=C.rows,S=C.columns,X=new Float64Array(b),pe=1,Me,me,Le,st,qe,Nt,nr,Ft,er;for(Me=0;MeMath.abs(Ft[st])&&(st=Me);if(st!==me){for(Le=0;Le=0;st--){for(Le=0;LeMe?X.set(pe,Me,C.get(pe,Me)):pe===Me?X.set(pe,Me,1):X.set(pe,Me,0);return X}},{key:"upperTriangularMatrix",get:function(){for(var C=this.LU,b=C.rows,S=C.columns,X=new mt(b,S),pe=0;peMath.abs(ee)?(C=ee/ie,Math.abs(ie)*Math.sqrt(1+C*C)):ee!==0?(C=ie/ee,Math.abs(ee)*Math.sqrt(1+C*C)):0}var Rn=function(){function ie(ee){I(this,ie),ee=mr.checkMatrix(ee);var C=ee.clone(),b=ee.rows,S=ee.columns,X=new Float64Array(S),pe,Me,me,Le;for(me=0;me=0;st--){for(Le=0;Le=0;me--){for(pe=0;pe1&&arguments[1]!==void 0?arguments[1]:{};if(I(this,ie),ee=mr.checkMatrix(ee),ee.isEmpty())throw new Error("Matrix must be non-empty");var b=ee.rows,S=ee.columns,X=C.computeLeftSingularVectors,pe=X===void 0?!0:X,Me=C.computeRightSingularVectors,me=Me===void 0?!0:Me,Le=C.autoTranspose,st=Le===void 0?!1:Le,qe=!!pe,Nt=!!me,nr=!1,Ft;if(b=0;Fn--)if(Kt[Fn]!==0){for(var ya=Fn+1;ya=0;Ei--){if(Ei0;){var On=void 0,Gi=void 0;for(On=Jr-2;On>=-1&&On!==-1;On--){var to=Number.MIN_VALUE+Ns*Math.abs(Kt[On]+Math.abs(Kt[On+1]));if(Math.abs(br[On])<=to||Number.isNaN(br[On])){br[On]=0;break}}if(On===Jr-2)Gi=4;else{var _i=void 0;for(_i=Jr-1;_i>=On&&_i!==On;_i--){var Ru=(_i!==Jr?Math.abs(br[_i]):0)+(_i!==On+1?Math.abs(br[_i-1]):0);if(Math.abs(Kt[_i])<=Ns*Ru){Kt[_i]=0;break}}_i===On?Gi=3:_i===Jr-1?Gi=1:(Gi=2,On=_i)}switch(On++,Gi){case 1:{var xo=br[Jr-2];br[Jr-2]=0;for(var ri=Jr-2;ri>=On;ri--){var wo=qr(Kt[ri],xo),ds=Kt[ri]/wo,Ho=xo/wo;if(Kt[ri]=wo,ri!==On&&(xo=-Ho*br[ri-1],br[ri-1]=ds*br[ri-1]),Nt)for(var zi=0;zi=Kt[On+1]);){var no=Kt[On];if(Kt[On]=Kt[On+1],Kt[On+1]=no,Nt&&Onb&&pe.set(Me,me,C.get(Me,me)/this.s[me]);for(var Le=this.U,st=Le.rows,qe=Le.columns,Nt=new mt(S,st),nr=0;nrC&&b++;return b}},{key:"diagonal",get:function(){return Array.from(this.s)}},{key:"threshold",get:function(){return Number.EPSILON/2*Math.max(this.m,this.n)*this.s[0]}},{key:"leftSingularVectors",get:function(){return this.U}},{key:"rightSingularVectors",get:function(){return this.V}},{key:"diagonalMatrix",get:function(){return mt.diag(this.s)}}]),ie}();function zr(ie){var ee=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;return ie=mr.checkMatrix(ie),ee?new yn(ie).inverse():Rt(ie,mt.eye(ie.rows))}function Rt(ie,ee){var C=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1;return ie=mr.checkMatrix(ie),ee=mr.checkMatrix(ee),C?new yn(ie).solve(ee):ie.isSquare()?new Sr(ie).solve(ee):new Rn(ie).solve(ee)}function zt(ie){if(ie=mt.checkMatrix(ie),ie.isSquare()){if(ie.columns===0)return 1;var ee,C,b,S;if(ie.columns===2)return ee=ie.get(0,0),C=ie.get(0,1),b=ie.get(1,0),S=ie.get(1,1),ee*S-C*b;if(ie.columns===3){var X,pe,Me;return X=new Oe(ie,[1,2],[1,2]),pe=new Oe(ie,[1,2],[0,2]),Me=new Oe(ie,[1,2],[0,1]),ee=ie.get(0,0),C=ie.get(0,1),b=ie.get(0,2),ee*zt(X)-C*zt(pe)+b*zt(Me)}else return new Sr(ie).determinant}else throw Error("determinant can only be calculated for a square matrix")}function Vt(ie,ee){for(var C=[],b=0;b3&&arguments[3]!==void 0?arguments[3]:1e-9,S=arguments.length>4&&arguments[4]!==void 0?arguments[4]:1e-9;if(ie>S)return new Array(ee.rows+1).fill(0);for(var X=ee.addRow(C,[0]),pe=0;pe1&&arguments[1]!==void 0?arguments[1]:{},C=ee.thresholdValue,b=C===void 0?1e-9:C,S=ee.thresholdError,X=S===void 0?1e-9:S;ie=mt.checkMatrix(ie);for(var pe=ie.rows,Me=new mt(pe,pe),me=0;me1&&arguments[1]!==void 0?arguments[1]:Number.EPSILON;if(ie=mt.checkMatrix(ie),ie.isEmpty())return ie.transpose();for(var C=new yn(ie,{autoTranspose:!0}),b=C.leftSingularVectors,S=C.rightSingularVectors,X=C.diagonal,pe=0;peee?X[pe]=1/X[pe]:X[pe]=0;return S.mmul(mt.diag(X).mmul(b.transpose()))}function Fr(ie){var ee=arguments.length>1&&arguments[1]!==void 0?arguments[1]:ie,C=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};ie=new mt(ie);var b=!1;if(_(ee)==="object"&&!mt.isMatrix(ee)&&!x.isAnyArray(ee)?(C=ee,ee=ie,b=!0):ee=new mt(ee),ie.rows!==ee.rows)throw new TypeError("Both matrices must have the same number of rows");var S=C,X=S.center,pe=X===void 0?!0:X;pe&&(ie=ie.center("column"),b||(ee=ee.center("column")));for(var Me=ie.transpose().mmul(ee),me=0;me1&&arguments[1]!==void 0?arguments[1]:ie,C=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};ie=new mt(ie);var b=!1;if(_(ee)==="object"&&!mt.isMatrix(ee)&&!x.isAnyArray(ee)?(C=ee,ee=ie,b=!0):ee=new mt(ee),ie.rows!==ee.rows)throw new TypeError("Both matrices must have the same number of rows");var S=C,X=S.center,pe=X===void 0?!0:X,Me=S.scale,me=Me===void 0?!0:Me;pe&&(ie.center("column"),b||ee.center("column")),me&&(ie.scale("column"),b||ee.scale("column"));for(var Le=ie.standardDeviation("column",{unbiased:!0}),st=b?Le:ee.standardDeviation("column",{unbiased:!0}),qe=ie.transpose().mmul(ee),Nt=0;Nt1&&arguments[1]!==void 0?arguments[1]:{};I(this,ie);var b=C.assumeSymmetric,S=b===void 0?!1:b;if(ee=mr.checkMatrix(ee),!ee.isSquare())throw new Error("Matrix is not a square matrix");if(ee.isEmpty())throw new Error("Matrix must be non-empty");var X=ee.columns,pe=new mt(X,X),Me=new Float64Array(X),me=new Float64Array(X),Le=ee,st,qe,Nt=!1;if(S?Nt=!0:Nt=ee.isSymmetric(),Nt){for(st=0;st0?X.set(pe,pe+1,b[pe]):b[pe]<0&&X.set(pe,pe-1,b[pe])}return X}}]),ie}();function oa(ie,ee,C,b){var S,X,pe,Me,me,Le,st,qe;for(me=0;me0;Me--){for(qe=0,pe=0,Le=0;Le0&&(X=-X),ee[Me]=qe*X,pe=pe-S*X,C[Me-1]=S-X,me=0;meLe)do{for(S=C[Le],qe=(C[Le+1]-S)/(2*ee[Le]),Nt=qr(qe,1),qe<0&&(Nt=-Nt),C[Le]=ee[Le]/(qe+Nt),C[Le+1]=ee[Le]*(qe+Nt),nr=C[Le+1],X=S-C[Le],pe=Le+2;pe=Le;pe--)for(Ur=er,er=Ft,lr=Kt,S=Ft*ee[pe],X=Ft*qe,Nt=qr(qe,ee[pe]),ee[pe+1]=Kt*Nt,Kt=ee[pe]/Nt,Ft=qe/Nt,qe=Ft*C[pe]-Kt*S,C[pe+1]=X+Kt*(Ft*S+Kt*C[pe]),me=0;mesa*br);C[Le]=C[Le]+Dr,ee[Le]=0}for(pe=0;pe=qe;Le--)C[Le]=ee.get(Le,qe-1)/Nt,me+=C[Le]*C[Le];for(Me=Math.sqrt(me),C[qe]>0&&(Me=-Me),me=me-C[qe]*Me,C[qe]=C[qe]-Me,st=qe;st=qe;Le--)pe+=C[Le]*ee.get(Le,st);for(pe=pe/me,Le=qe;Le<=X;Le++)ee.set(Le,st,ee.get(Le,st)-pe*C[Le])}for(Le=0;Le<=X;Le++){for(pe=0,st=X;st>=qe;st--)pe+=C[st]*ee.get(Le,st);for(pe=pe/me,st=qe;st<=X;st++)ee.set(Le,st,ee.get(Le,st)-pe*C[st])}C[qe]=Nt*C[qe],ee.set(qe,qe-1,Nt*Me)}}for(Le=0;Le=S+1;qe--)if(ee.get(qe,qe-1)!==0){for(Le=qe+1;Le<=X;Le++)C[Le]=ee.get(Le,qe-1);for(st=qe;st<=X;st++){for(Me=0,Le=qe;Le<=X;Le++)Me+=C[Le]*b.get(Le,st);for(Me=Me/C[qe]/ee.get(qe,qe-1),Le=qe;Le<=X;Le++)b.set(Le,st,b.get(Le,st)+Me*C[Le])}}}function vn(ie,ee,C,b,S){var X=ie-1,pe=0,Me=ie-1,me=Number.EPSILON,Le=0,st=0,qe=0,Nt=0,nr=0,Ft=0,er=0,Ur=0,Ct,Kt,lr,Dr,br,sa,ea,gn,Tn,ra,Zn,Vr,In,at,D;for(Ct=0;CtMe)&&(C[Ct]=S.get(Ct,Ct),ee[Ct]=0),Kt=Math.max(Ct-1,0);Kt=pe;){for(Dr=X;Dr>pe&&(Ft=Math.abs(S.get(Dr-1,Dr-1))+Math.abs(S.get(Dr,Dr)),Ft===0&&(Ft=st),!(Math.abs(S.get(Dr,Dr-1))=0){for(er=qe>=0?qe+er:qe-er,C[X-1]=gn+er,C[X]=C[X-1],er!==0&&(C[X]=gn-ea/er),ee[X-1]=0,ee[X]=0,gn=S.get(X,X-1),Ft=Math.abs(gn)+Math.abs(er),qe=gn/Ft,Nt=er/Ft,nr=Math.sqrt(qe*qe+Nt*Nt),qe=qe/nr,Nt=Nt/nr,Kt=X-1;Kt0)){for(Ft=Math.sqrt(Ft),Tn=Dr&&(er=S.get(br,br),nr=gn-er,Ft=Tn-er,qe=(nr*Ft-ea)/S.get(br+1,br)+S.get(br,br+1),Nt=S.get(br+1,br+1)-er-nr-Ft,nr=S.get(br+2,br+1),Ft=Math.abs(qe)+Math.abs(Nt)+Math.abs(nr),qe=qe/Ft,Nt=Nt/Ft,nr=nr/Ft,!(br===Dr||Math.abs(S.get(br,br-1))*(Math.abs(Nt)+Math.abs(nr))br+2&&S.set(Ct,Ct-3,0);for(lr=br;lr<=X-1&&(at=lr!==X-1,lr!==br&&(qe=S.get(lr,lr-1),Nt=S.get(lr+1,lr-1),nr=at?S.get(lr+2,lr-1):0,gn=Math.abs(qe)+Math.abs(Nt)+Math.abs(nr),gn!==0&&(qe=qe/gn,Nt=Nt/gn,nr=nr/gn)),gn!==0);lr++)if(Ft=Math.sqrt(qe*qe+Nt*Nt+nr*nr),qe<0&&(Ft=-Ft),Ft!==0){for(lr!==br?S.set(lr,lr-1,-Ft*gn):Dr!==br&&S.set(lr,lr-1,-S.get(lr,lr-1)),qe=qe+Ft,gn=qe/Ft,Tn=Nt/Ft,er=nr/Ft,Nt=Nt/qe,nr=nr/qe,Kt=lr;Kt=0;X--)if(qe=C[X],Nt=ee[X],Nt===0)for(Dr=X,S.set(X,X,1),Ct=X-1;Ct>=0;Ct--){for(ea=S.get(Ct,Ct)-qe,nr=0,Kt=Dr;Kt<=X;Kt++)nr=nr+S.get(Ct,Kt)*S.get(Kt,X);if(ee[Ct]<0)er=ea,Ft=nr;else if(Dr=Ct,ee[Ct]===0?S.set(Ct,X,ea!==0?-nr/ea:-nr/(me*st)):(gn=S.get(Ct,Ct+1),Tn=S.get(Ct+1,Ct),Nt=(C[Ct]-qe)*(C[Ct]-qe)+ee[Ct]*ee[Ct],sa=(gn*Ft-er*nr)/Nt,S.set(Ct,X,sa),S.set(Ct+1,X,Math.abs(gn)>Math.abs(er)?(-nr-ea*sa)/gn:(-Ft-Tn*sa)/er)),sa=Math.abs(S.get(Ct,X)),me*sa*sa>1)for(Kt=Ct;Kt<=X;Kt++)S.set(Kt,X,S.get(Kt,X)/sa)}else if(Nt<0)for(Dr=X-1,Math.abs(S.get(X,X-1))>Math.abs(S.get(X-1,X))?(S.set(X-1,X-1,Nt/S.get(X,X-1)),S.set(X-1,X,-(S.get(X,X)-qe)/S.get(X,X-1))):(D=un(0,-S.get(X-1,X),S.get(X-1,X-1)-qe,Nt),S.set(X-1,X-1,D[0]),S.set(X-1,X,D[1])),S.set(X,X-1,0),S.set(X,X,1),Ct=X-2;Ct>=0;Ct--){for(ra=0,Zn=0,Kt=Dr;Kt<=X;Kt++)ra=ra+S.get(Ct,Kt)*S.get(Kt,X-1),Zn=Zn+S.get(Ct,Kt)*S.get(Kt,X);if(ea=S.get(Ct,Ct)-qe,ee[Ct]<0)er=ea,nr=ra,Ft=Zn;else if(Dr=Ct,ee[Ct]===0?(D=un(-ra,-Zn,ea,Nt),S.set(Ct,X-1,D[0]),S.set(Ct,X,D[1])):(gn=S.get(Ct,Ct+1),Tn=S.get(Ct+1,Ct),Vr=(C[Ct]-qe)*(C[Ct]-qe)+ee[Ct]*ee[Ct]-Nt*Nt,In=(C[Ct]-qe)*2*Nt,Vr===0&&In===0&&(Vr=me*st*(Math.abs(ea)+Math.abs(Nt)+Math.abs(gn)+Math.abs(Tn)+Math.abs(er))),D=un(gn*nr-er*ra+Nt*Zn,gn*Ft-er*Zn-Nt*ra,Vr,In),S.set(Ct,X-1,D[0]),S.set(Ct,X,D[1]),Math.abs(gn)>Math.abs(er)+Math.abs(Nt)?(S.set(Ct+1,X-1,(-ra-ea*S.get(Ct,X-1)+Nt*S.get(Ct,X))/gn),S.set(Ct+1,X,(-Zn-ea*S.get(Ct,X)-Nt*S.get(Ct,X-1))/gn)):(D=un(-nr-Tn*S.get(Ct,X-1),-Ft-Tn*S.get(Ct,X),er,Nt),S.set(Ct+1,X-1,D[0]),S.set(Ct+1,X,D[1]))),sa=Math.max(Math.abs(S.get(Ct,X-1)),Math.abs(S.get(Ct,X))),me*sa*sa>1)for(Kt=Ct;Kt<=X;Kt++)S.set(Kt,X-1,S.get(Kt,X-1)/sa),S.set(Kt,X,S.get(Kt,X)/sa)}for(Ct=0;CtMe)for(Kt=Ct;Kt=pe;Kt--)for(Ct=pe;Ct<=Me;Ct++){for(er=0,lr=pe;lr<=Math.min(Kt,Me);lr++)er=er+b.get(Ct,lr)*S.get(lr,Kt);b.set(Ct,Kt,er)}}}function un(ie,ee,C,b){var S,X;return Math.abs(C)>Math.abs(b)?(S=b/C,X=C+S*b,[(ie+S*ee)/X,(ee-S*ie)/X]):(S=C/b,X=b+S*C,[(S*ie+ee)/X,(S*ee-ie)/X])}var Wn=function(){function ie(ee){if(I(this,ie),ee=mr.checkMatrix(ee),!ee.isSymmetric())throw new Error("Matrix is not symmetric");var C=ee,b=C.rows,S=new mt(b,b),X=!0,pe,Me,me;for(Me=0;Me0,S.set(Me,Me,Math.sqrt(Math.max(Le,0))),me=Me+1;me=0;Le--)for(me=0;me1&&arguments[1]!==void 0?arguments[1]:{};I(this,ie),ee=mr.checkMatrix(ee);var b=C.Y,S=C.scaleScores,X=S===void 0?!1:S,pe=C.maxIterations,Me=pe===void 0?1e3:pe,me=C.terminationCriteria,Le=me===void 0?1e-10:me,st;if(b){if(x.isAnyArray(b)&&typeof b[0]=="number"?b=mt.columnVector(b):b=mr.checkMatrix(b),b.rows!==ee.rows)throw new Error("Y should have the same number of rows as X");st=b.getColumnVector(0)}else st=ee.getColumnVector(0);for(var qe=1,Nt,nr,Ft,er,Ur=0;UrLe;Ur++)Ft=ee.transpose().mmul(st).div(st.transpose().mmul(st).get(0,0)),Ft=Ft.div(Ft.norm()),Nt=ee.mmul(Ft).div(Ft.transpose().mmul(Ft).get(0,0)),Ur>0&&(qe=Nt.clone().sub(er).pow(2).sum()),er=Nt.clone(),b?(nr=b.transpose().mmul(Nt).div(Nt.transpose().mmul(Nt).get(0,0)),nr=nr.div(nr.norm()),st=b.mmul(nr).div(nr.transpose().mmul(nr).get(0,0))):st=Nt;if(b){var Ct=ee.transpose().mmul(Nt).div(Nt.transpose().mmul(Nt).get(0,0));Ct=Ct.div(Ct.norm());var Kt=ee.clone().sub(Nt.clone().mmul(Ct.transpose())),lr=st.transpose().mmul(Nt).div(Nt.transpose().mmul(Nt).get(0,0)),Dr=b.clone().sub(Nt.clone().mulS(lr.get(0,0)).mmul(nr.transpose()));this.t=Nt,this.p=Ct.transpose(),this.w=Ft.transpose(),this.q=nr,this.u=st,this.s=Nt.transpose().mmul(Nt),this.xResidual=Kt,this.yResidual=Dr,this.betas=lr}else this.w=Ft.transpose(),this.s=Nt.transpose().mmul(Nt).sqrt(),X?this.t=Nt.clone().div(this.s.get(0,0)):this.t=Nt,this.xResidual=ee.sub(Nt.mmul(Ft.transpose()))});N.AbstractMatrix=dt,N.CHO=Wn,N.CholeskyDecomposition=Wn,N.EVD=Sn,N.EigenvalueDecomposition=Sn,N.LU=Sr,N.LuDecomposition=Sr,N.Matrix=mt,N.MatrixColumnSelectionView=Nr,N.MatrixColumnView=Ir,N.MatrixFlipColumnView=Hr,N.MatrixFlipRowView=It,N.MatrixRowSelectionView=ar,N.MatrixRowView=qt,N.MatrixSelectionView=Oe,N.MatrixSubView=Pr,N.MatrixTransposeView=Cr,N.NIPALS=Y,N.Nipals=Y,N.QR=Rn,N.QrDecomposition=Rn,N.SVD=yn,N.SingularValueDecomposition=yn,N.WrapperMatrix1D=Gr,N.WrapperMatrix2D=mr,N.correlation=Cn,N.covariance=Fr,N.default=mt,N.determinant=zt,N.inverse=zr,N.linearDependencies=Ar,N.pseudoInverse=en,N.solve=Rt,N.wrap=rn},44589:function(Mt,N,F){var k=F(13337),U={};for(var L in k)k.hasOwnProperty(L)&&(U[k[L]]=L);var _=Mt.exports={rgb:{channels:3,labels:"rgb"},hsl:{channels:3,labels:"hsl"},hsv:{channels:3,labels:"hsv"},hwb:{channels:3,labels:"hwb"},cmyk:{channels:4,labels:"cmyk"},xyz:{channels:3,labels:"xyz"},lab:{channels:3,labels:"lab"},lch:{channels:3,labels:"lch"},hex:{channels:1,labels:["hex"]},keyword:{channels:1,labels:["keyword"]},ansi16:{channels:1,labels:["ansi16"]},ansi256:{channels:1,labels:["ansi256"]},hcg:{channels:3,labels:["h","c","g"]},apple:{channels:3,labels:["r16","g16","b16"]},gray:{channels:1,labels:["gray"]}};for(var I in _)if(_.hasOwnProperty(I)){if(!("channels"in _[I]))throw new Error("missing channels property: "+I);if(!("labels"in _[I]))throw new Error("missing channel labels property: "+I);if(_[I].labels.length!==_[I].channels)throw new Error("channel and label counts mismatch: "+I);var T=_[I].channels,x=_[I].labels;delete _[I].channels,delete _[I].labels,Object.defineProperty(_[I],"channels",{value:T}),Object.defineProperty(_[I],"labels",{value:x})}_.rgb.hsl=function(v){var g=v[0]/255,d=v[1]/255,c=v[2]/255,s=Math.min(g,d,c),m=Math.max(g,d,c),M=m-s,P,R,j;return m===s?P=0:g===m?P=(d-c)/M:d===m?P=2+(c-g)/M:c===m&&(P=4+(g-d)/M),P=Math.min(P*60,360),P<0&&(P+=360),j=(s+m)/2,m===s?R=0:j<=.5?R=M/(m+s):R=M/(2-m-s),[P,R*100,j*100]},_.rgb.hsv=function(v){var g,d,c,s,m,M=v[0]/255,P=v[1]/255,R=v[2]/255,j=Math.max(M,P,R),Q=j-Math.min(M,P,R),G=function(W){return(j-W)/6/Q+1/2};return Q===0?s=m=0:(m=Q/j,g=G(M),d=G(P),c=G(R),M===j?s=c-d:P===j?s=1/3+g-c:R===j&&(s=2/3+d-g),s<0?s+=1:s>1&&(s-=1)),[s*360,m*100,j*100]},_.rgb.hwb=function(v){var g=v[0],d=v[1],c=v[2],s=_.rgb.hsl(v)[0],m=1/255*Math.min(g,Math.min(d,c));return c=1-1/255*Math.max(g,Math.max(d,c)),[s,m*100,c*100]},_.rgb.cmyk=function(v){var g=v[0]/255,d=v[1]/255,c=v[2]/255,s,m,M,P;return P=Math.min(1-g,1-d,1-c),s=(1-g-P)/(1-P)||0,m=(1-d-P)/(1-P)||0,M=(1-c-P)/(1-P)||0,[s*100,m*100,M*100,P*100]};function p(v,g){return Math.pow(v[0]-g[0],2)+Math.pow(v[1]-g[1],2)+Math.pow(v[2]-g[2],2)}_.rgb.keyword=function(v){var g=U[v];if(g)return g;var d=1/0,c;for(var s in k)if(k.hasOwnProperty(s)){var m=k[s],M=p(v,m);M.04045?Math.pow((g+.055)/1.055,2.4):g/12.92,d=d>.04045?Math.pow((d+.055)/1.055,2.4):d/12.92,c=c>.04045?Math.pow((c+.055)/1.055,2.4):c/12.92;var s=g*.4124+d*.3576+c*.1805,m=g*.2126+d*.7152+c*.0722,M=g*.0193+d*.1192+c*.9505;return[s*100,m*100,M*100]},_.rgb.lab=function(v){var g=_.rgb.xyz(v),d=g[0],c=g[1],s=g[2],m,M,P;return d/=95.047,c/=100,s/=108.883,d=d>.008856?Math.pow(d,1/3):7.787*d+16/116,c=c>.008856?Math.pow(c,1/3):7.787*c+16/116,s=s>.008856?Math.pow(s,1/3):7.787*s+16/116,m=116*c-16,M=500*(d-c),P=200*(c-s),[m,M,P]},_.hsl.rgb=function(v){var g=v[0]/360,d=v[1]/100,c=v[2]/100,s,m,M,P,R;if(d===0)return R=c*255,[R,R,R];c<.5?m=c*(1+d):m=c+d-c*d,s=2*c-m,P=[0,0,0];for(var j=0;j<3;j++)M=g+1/3*-(j-1),M<0&&M++,M>1&&M--,6*M<1?R=s+(m-s)*6*M:2*M<1?R=m:3*M<2?R=s+(m-s)*(2/3-M)*6:R=s,P[j]=R*255;return P},_.hsl.hsv=function(v){var g=v[0],d=v[1]/100,c=v[2]/100,s=d,m=Math.max(c,.01),M,P;return c*=2,d*=c<=1?c:2-c,s*=m<=1?m:2-m,P=(c+d)/2,M=c===0?2*s/(m+s):2*d/(c+d),[g,M*100,P*100]},_.hsv.rgb=function(v){var g=v[0]/60,d=v[1]/100,c=v[2]/100,s=Math.floor(g)%6,m=g-Math.floor(g),M=255*c*(1-d),P=255*c*(1-d*m),R=255*c*(1-d*(1-m));switch(c*=255,s){case 0:return[c,R,M];case 1:return[P,c,M];case 2:return[M,c,R];case 3:return[M,P,c];case 4:return[R,M,c];case 5:return[c,M,P]}},_.hsv.hsl=function(v){var g=v[0],d=v[1]/100,c=v[2]/100,s=Math.max(c,.01),m,M,P;return P=(2-d)*c,m=(2-d)*s,M=d*s,M/=m<=1?m:2-m,M=M||0,P/=2,[g,M*100,P*100]},_.hwb.rgb=function(v){var g=v[0]/360,d=v[1]/100,c=v[2]/100,s=d+c,m,M,P,R;s>1&&(d/=s,c/=s),m=Math.floor(6*g),M=1-c,P=6*g-m,m&1&&(P=1-P),R=d+P*(M-d);var j,Q,G;switch(m){default:case 6:case 0:j=M,Q=R,G=d;break;case 1:j=R,Q=M,G=d;break;case 2:j=d,Q=M,G=R;break;case 3:j=d,Q=R,G=M;break;case 4:j=R,Q=d,G=M;break;case 5:j=M,Q=d,G=R;break}return[j*255,Q*255,G*255]},_.cmyk.rgb=function(v){var g=v[0]/100,d=v[1]/100,c=v[2]/100,s=v[3]/100,m,M,P;return m=1-Math.min(1,g*(1-s)+s),M=1-Math.min(1,d*(1-s)+s),P=1-Math.min(1,c*(1-s)+s),[m*255,M*255,P*255]},_.xyz.rgb=function(v){var g=v[0]/100,d=v[1]/100,c=v[2]/100,s,m,M;return s=g*3.2406+d*-1.5372+c*-.4986,m=g*-.9689+d*1.8758+c*.0415,M=g*.0557+d*-.204+c*1.057,s=s>.0031308?1.055*Math.pow(s,1/2.4)-.055:s*12.92,m=m>.0031308?1.055*Math.pow(m,1/2.4)-.055:m*12.92,M=M>.0031308?1.055*Math.pow(M,1/2.4)-.055:M*12.92,s=Math.min(Math.max(0,s),1),m=Math.min(Math.max(0,m),1),M=Math.min(Math.max(0,M),1),[s*255,m*255,M*255]},_.xyz.lab=function(v){var g=v[0],d=v[1],c=v[2],s,m,M;return g/=95.047,d/=100,c/=108.883,g=g>.008856?Math.pow(g,1/3):7.787*g+16/116,d=d>.008856?Math.pow(d,1/3):7.787*d+16/116,c=c>.008856?Math.pow(c,1/3):7.787*c+16/116,s=116*d-16,m=500*(g-d),M=200*(d-c),[s,m,M]},_.lab.xyz=function(v){var g=v[0],d=v[1],c=v[2],s,m,M;m=(g+16)/116,s=d/500+m,M=m-c/200;var P=Math.pow(m,3),R=Math.pow(s,3),j=Math.pow(M,3);return m=P>.008856?P:(m-16/116)/7.787,s=R>.008856?R:(s-16/116)/7.787,M=j>.008856?j:(M-16/116)/7.787,s*=95.047,m*=100,M*=108.883,[s,m,M]},_.lab.lch=function(v){var g=v[0],d=v[1],c=v[2],s,m,M;return s=Math.atan2(c,d),m=s*360/2/Math.PI,m<0&&(m+=360),M=Math.sqrt(d*d+c*c),[g,M,m]},_.lch.lab=function(v){var g=v[0],d=v[1],c=v[2],s,m,M;return M=c/360*2*Math.PI,s=d*Math.cos(M),m=d*Math.sin(M),[g,s,m]},_.rgb.ansi16=function(v){var g=v[0],d=v[1],c=v[2],s=1 in arguments?arguments[1]:_.rgb.hsv(v)[2];if(s=Math.round(s/50),s===0)return 30;var m=30+(Math.round(c/255)<<2|Math.round(d/255)<<1|Math.round(g/255));return s===2&&(m+=60),m},_.hsv.ansi16=function(v){return _.rgb.ansi16(_.hsv.rgb(v),v[2])},_.rgb.ansi256=function(v){var g=v[0],d=v[1],c=v[2];if(g===d&&d===c)return g<8?16:g>248?231:Math.round((g-8)/247*24)+232;var s=16+36*Math.round(g/255*5)+6*Math.round(d/255*5)+Math.round(c/255*5);return s},_.ansi16.rgb=function(v){var g=v%10;if(g===0||g===7)return v>50&&(g+=3.5),g=g/10.5*255,[g,g,g];var d=(~~(v>50)+1)*.5,c=(g&1)*d*255,s=(g>>1&1)*d*255,m=(g>>2&1)*d*255;return[c,s,m]},_.ansi256.rgb=function(v){if(v>=232){var g=(v-232)*10+8;return[g,g,g]}v-=16;var d,c=Math.floor(v/36)/5*255,s=Math.floor((d=v%36)/6)/5*255,m=d%6/5*255;return[c,s,m]},_.rgb.hex=function(v){var g=((Math.round(v[0])&255)<<16)+((Math.round(v[1])&255)<<8)+(Math.round(v[2])&255),d=g.toString(16).toUpperCase();return"000000".substring(d.length)+d},_.hex.rgb=function(v){var g=v.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);if(!g)return[0,0,0];var d=g[0];g[0].length===3&&(d=d.split("").map(function(P){return P+P}).join(""));var c=parseInt(d,16),s=c>>16&255,m=c>>8&255,M=c&255;return[s,m,M]},_.rgb.hcg=function(v){var g=v[0]/255,d=v[1]/255,c=v[2]/255,s=Math.max(Math.max(g,d),c),m=Math.min(Math.min(g,d),c),M=s-m,P,R;return M<1?P=m/(1-M):P=0,M<=0?R=0:s===g?R=(d-c)/M%6:s===d?R=2+(c-g)/M:R=4+(g-d)/M+4,R/=6,R%=1,[R*360,M*100,P*100]},_.hsl.hcg=function(v){var g=v[1]/100,d=v[2]/100,c=1,s=0;return d<.5?c=2*g*d:c=2*g*(1-d),c<1&&(s=(d-.5*c)/(1-c)),[v[0],c*100,s*100]},_.hsv.hcg=function(v){var g=v[1]/100,d=v[2]/100,c=g*d,s=0;return c<1&&(s=(d-c)/(1-c)),[v[0],c*100,s*100]},_.hcg.rgb=function(v){var g=v[0]/360,d=v[1]/100,c=v[2]/100;if(d===0)return[c*255,c*255,c*255];var s=[0,0,0],m=g%1*6,M=m%1,P=1-M,R=0;switch(Math.floor(m)){case 0:s[0]=1,s[1]=M,s[2]=0;break;case 1:s[0]=P,s[1]=1,s[2]=0;break;case 2:s[0]=0,s[1]=1,s[2]=M;break;case 3:s[0]=0,s[1]=P,s[2]=1;break;case 4:s[0]=M,s[1]=0,s[2]=1;break;default:s[0]=1,s[1]=0,s[2]=P}return R=(1-d)*c,[(d*s[0]+R)*255,(d*s[1]+R)*255,(d*s[2]+R)*255]},_.hcg.hsv=function(v){var g=v[1]/100,d=v[2]/100,c=g+d*(1-g),s=0;return c>0&&(s=g/c),[v[0],s*100,c*100]},_.hcg.hsl=function(v){var g=v[1]/100,d=v[2]/100,c=d*(1-g)+.5*g,s=0;return c>0&&c<.5?s=g/(2*c):c>=.5&&c<1&&(s=g/(2*(1-c))),[v[0],s*100,c*100]},_.hcg.hwb=function(v){var g=v[1]/100,d=v[2]/100,c=g+d*(1-g);return[v[0],(c-g)*100,(1-c)*100]},_.hwb.hcg=function(v){var g=v[1]/100,d=v[2]/100,c=1-d,s=c-g,m=0;return s<1&&(m=(c-s)/(1-s)),[v[0],s*100,m*100]},_.apple.rgb=function(v){return[v[0]/65535*255,v[1]/65535*255,v[2]/65535*255]},_.rgb.apple=function(v){return[v[0]/255*65535,v[1]/255*65535,v[2]/255*65535]},_.gray.rgb=function(v){return[v[0]/100*255,v[0]/100*255,v[0]/100*255]},_.gray.hsl=_.gray.hsv=function(v){return[0,0,v[0]]},_.gray.hwb=function(v){return[0,100,v[0]]},_.gray.cmyk=function(v){return[0,0,0,v[0]]},_.gray.lab=function(v){return[v[0],0,0]},_.gray.hex=function(v){var g=Math.round(v[0]/100*255)&255,d=(g<<16)+(g<<8)+g,c=d.toString(16).toUpperCase();return"000000".substring(c.length)+c},_.rgb.gray=function(v){var g=(v[0]+v[1]+v[2])/3;return[g/255*100]}},18358:function(Mt,N,F){var k=F(44589),U=F(3314),L={},_=Object.keys(k);function I(x){var p=function(v){return v==null?v:(arguments.length>1&&(v=Array.prototype.slice.call(arguments)),x(v))};return"conversion"in x&&(p.conversion=x.conversion),p}function T(x){var p=function(v){if(v==null)return v;arguments.length>1&&(v=Array.prototype.slice.call(arguments));var g=x(v);if(typeof g=="object")for(var d=g.length,c=0;c>16&255,m>>8&255,m&255],this.valpha=1;else{this.valpha=1;var G=Object.keys(m);"alpha"in m&&(G.splice(G.indexOf("alpha"),1),this.valpha=typeof m.alpha=="number"?m.alpha:0);var W=G.sort().join("");if(!(W in I))throw new Error("Unable to parse color from object: "+JSON.stringify(m));this.model=I[W];var H=U[this.model].labels,Z=[];for(P=0;PP?(M+.05)/(P+.05):(P+.05)/(M+.05)},level:function(m){var M=this.contrast(m);return M>=7.1?"AAA":M>=4.5?"AA":""},isDark:function(){var m=this.rgb().color,M=(m[0]*299+m[1]*587+m[2]*114)/1e3;return M<128},isLight:function(){return!this.isDark()},negate:function(){for(var m=this.rgb(),M=0;M<3;M++)m.color[M]=255-m.color[M];return m},lighten:function(m){var M=this.hsl();return M.color[2]+=M.color[2]*m,M},darken:function(m){var M=this.hsl();return M.color[2]-=M.color[2]*m,M},saturate:function(m){var M=this.hsl();return M.color[1]+=M.color[1]*m,M},desaturate:function(m){var M=this.hsl();return M.color[1]-=M.color[1]*m,M},whiten:function(m){var M=this.hwb();return M.color[1]+=M.color[1]*m,M},blacken:function(m){var M=this.hwb();return M.color[2]+=M.color[2]*m,M},grayscale:function(){var m=this.rgb().color,M=m[0]*.3+m[1]*.59+m[2]*.11;return x.rgb(M,M,M)},fade:function(m){return this.alpha(this.valpha-this.valpha*m)},opaquer:function(m){return this.alpha(this.valpha+this.valpha*m)},rotate:function(m){var M=this.hsl(),P=M.color[0];return P=(P+m)%360,P=P<0?360+P:P,M.color[0]=P,M},mix:function(m,M){if(!m||!m.rgb)throw new Error('Argument to "mix" was not a Color instance, but rather an instance of '+typeof m);var P=m.rgb(),R=this.rgb(),j=M===void 0?.5:M,Q=2*j-1,G=P.alpha()-R.alpha(),W=((Q*G===-1?Q:(Q+G)/(1+Q*G))+1)/2,H=1-W;return x.rgb(W*P.red()+H*R.red(),W*P.green()+H*R.green(),W*P.blue()+H*R.blue(),P.alpha()*j+R.alpha()*(1-j))}},Object.keys(U).forEach(function(m){if(_.indexOf(m)===-1){var M=U[m].channels;x.prototype[m]=function(){if(this.model===m)return new x(this);if(arguments.length)return new x(arguments,m);var P=typeof arguments[M]=="number"?M:this.valpha;return new x(c(U[this.model][m].raw(this.color)).concat(P),m)},x[m]=function(P){return typeof P=="number"&&(P=s(L.call(arguments),M)),new x(P,m)}}});function p(m,M){return Number(m.toFixed(M))}function v(m){return function(M){return p(M,m)}}function g(m,M,P){return m=Array.isArray(m)?m:[m],m.forEach(function(R){(T[R]||(T[R]=[]))[M]=P}),m=m[0],function(R){var j;return arguments.length?(P&&(R=P(R)),j=this[m](),j.color[M]=R,j):(j=this[m]().color[M],P&&(j=P(j)),j)}}function d(m){return function(M){return Math.max(0,Math.min(m,M))}}function c(m){return Array.isArray(m)?m:[m]}function s(m,M){for(var P=0;P=(Te=(ye+Se)/2))?ye=Te:Se=Te,(ft=K>=(ke=(Ae+we)/2))?Ae=ke:we=ke,se=fe,!(fe=fe[Lt=ft<<1|He]))return se[Lt]=Ie,Z;if(Ge=+Z._x.call(null,fe.data),tt=+Z._y.call(null,fe.data),J===Ge&&K===tt)return Ie.next=fe,se?se[Lt]=Ie:Z._root=Ie,Z;do se=se?se[Lt]=new Array(4):Z._root=new Array(4),(He=J>=(Te=(ye+Se)/2))?ye=Te:Se=Te,(ft=K>=(ke=(Ae+we)/2))?Ae=ke:we=ke;while((Lt=ft<<1|He)===(Jt=(tt>=ke)<<1|Ge>=Te));return se[Jt]=fe,se[Lt]=Ie,Z}function L(Z){var J,K,ne=Z.length,se,fe,Ie=new Array(ne),ye=new Array(ne),Ae=1/0,Se=1/0,we=-1/0,Te=-1/0;for(K=0;Kwe&&(we=se),feTe&&(Te=fe));if(Ae>we||Se>Te)return this;for(this.cover(Ae,Se).cover(we,Te),K=0;KZ||Z>=se||ne>J||J>=fe;)switch(Se=(Jwe||(ye=tt.y0)>Te||(Ae=tt.x1)=Lt)<<1|Z>=ft)&&(tt=ke[ke.length-1],ke[ke.length-1]=ke[ke.length-1-He],ke[ke.length-1-He]=tt)}else{var Jt=Z-+this._x.call(null,Ge.data),Qe=J-+this._y.call(null,Ge.data),ut=Jt*Jt+Qe*Qe;if(ut=(ke=(Ie+Ae)/2))?Ie=ke:Ae=ke,(He=Te>=(Ge=(ye+Se)/2))?ye=Ge:Se=Ge,J=K,!(K=K[ft=He<<1|tt]))return this;if(!K.length)break;(J[ft+1&3]||J[ft+2&3]||J[ft+3&3])&&(ne=J,Lt=ft)}for(;K.data!==Z;)if(se=K,!(K=K.next))return this;return(fe=K.next)&&delete K.next,se?(fe?se.next=fe:delete se.next,this):J?(fe?J[ft]=fe:delete J[ft],(K=J[0]||J[1]||J[2]||J[3])&&K===(J[3]||J[2]||J[1]||J[0])&&!K.length&&(ne?ne[Lt]=K:this._root=K),this):(this._root=fe,this)}function g(Z){for(var J=0,K=Z.length;J-1},Q=function(f,w){var B=this.__data__,V=m(B,f);return V<0?(++this.size,B.push([f,w])):B[V][1]=w,this};function G(f){var w=-1,B=f==null?0:f.length;for(this.clear();++w-1&&f%1==0&&f-1&&f%1==0&&f<=9007199254740991},er={};er["[object Float32Array]"]=er["[object Float64Array]"]=er["[object Int8Array]"]=er["[object Int16Array]"]=er["[object Int32Array]"]=er["[object Uint8Array]"]=er["[object Uint8ClampedArray]"]=er["[object Uint16Array]"]=er["[object Uint32Array]"]=!0,er["[object Arguments]"]=er["[object Array]"]=er["[object ArrayBuffer]"]=er["[object Boolean]"]=er["[object DataView]"]=er["[object Date]"]=er["[object Error]"]=er["[object Function]"]=er["[object Map]"]=er["[object Number]"]=er["[object Object]"]=er["[object RegExp]"]=er["[object Set]"]=er["[object String]"]=er["[object WeakMap]"]=!1;var Ur=function(f){return b(f)&&Ft(f.length)&&!!er[He(f)]},Ct=function(f){return function(w){return f(w)}},Kt=d(function(f,w){var B=w&&!w.nodeType&&w,V=B&&f&&!f.nodeType&&f,re=V&&V.exports===B&&ne.process,oe=function(){try{var le=V&&V.require&&V.require("util").types;return le||re&&re.binding&&re.binding("util")}catch(ge){}}();f.exports=oe}),lr=Kt&&Kt.isTypedArray,Dr=lr?Ct(lr):Ur,br=Object.prototype.hasOwnProperty,sa=function(f,w){var B=Le(f),V=!B&&me(f),re=!B&&!V&&qe(f),oe=!B&&!V&&!re&&Dr(f),le=B||V||re||oe,ge=le?C(f.length,String):[],_e=ge.length;for(var Ne in f)!w&&!br.call(f,Ne)||le&&(Ne=="length"||re&&(Ne=="offset"||Ne=="parent")||oe&&(Ne=="buffer"||Ne=="byteLength"||Ne=="byteOffset")||nr(Ne,_e))||ge.push(Ne);return ge},ea=Object.prototype,gn=function(f){var w=f&&f.constructor;return f===(typeof w=="function"&&w.prototype||ea)},Tn=function(f,w){return function(B){return f(w(B))}},ra=Tn(Object.keys,Object),Zn=Object.prototype.hasOwnProperty,Vr=function(f){if(!gn(f))return ra(f);var w=[];for(var B in Object(f))Zn.call(f,B)&&B!="constructor"&&w.push(B);return w},In=function(f){return f!=null&&Ft(f.length)&&!Jt(f)},at=function(f){return In(f)?sa(f):Vr(f)},D=function(f,w){return f&&ee(w,at(w),f)},te=function(f){var w=[];if(f!=null)for(var B in Object(f))w.push(B);return w},xe=Object.prototype.hasOwnProperty,be=function(f){if(!ft(f))return te(f);var w=gn(f),B=[];for(var V in f)(V!="constructor"||!w&&xe.call(f,V))&&B.push(V);return B},De=function(f){return In(f)?sa(f,!0):be(f)},Xe=function(f,w){return f&&ee(w,De(w),f)},Je=d(function(f,w){var B=w&&!w.nodeType&&w,V=B&&f&&!f.nodeType&&f,re=V&&V.exports===B?fe.Buffer:void 0,oe=re?re.allocUnsafe:void 0;f.exports=function(le,ge){if(ge)return le.slice();var _e=le.length,Ne=oe?oe(_e):new le.constructor(_e);return le.copy(Ne),Ne}}),lt=function(f,w){var B=-1,V=f.length;for(w||(w=Array(V));++Bge))return!1;var Ne=oe.get(f),ze=oe.get(w);if(Ne&&ze)return Ne==w&&ze==f;var Be=-1,nt=!0,_t=2&B?new no:void 0;for(oe.set(f,w),oe.set(w,f);++Be0&&V(_e)?B>1?f(_e,B-1,V,re,oe):Jr(oe,_e):re||(oe[oe.length]=_e)}return oe},ms=function(f,w,B){switch(B.length){case 0:return f.call(w);case 1:return f.call(w,B[0]);case 2:return f.call(w,B[0],B[1]);case 3:return f.call(w,B[0],B[1],B[2])}return f.apply(w,B)},Zu=Math.max,rs=function(f,w,B){return w=Zu(w===void 0?f.length-1:w,0),function(){for(var V=arguments,re=-1,oe=Zu(V.length-w,0),le=Array(oe);++re0){if(++w>=800)return arguments[0]}else w=0;return f.apply(void 0,arguments)}}(ii),io=function(f,w){return bs(rs(f,w,xi),f+"")},ns=function(f,w,B,V){for(var re=f.length,oe=B+(V?1:-1);V?oe--:++oe-1},oc=function(f,w,B){for(var V=-1,re=f==null?0:f.length;++V=200){var Ne=w?null:Cf(f);if(Ne)return uu(Ne);le=!1,re=po,_e=new no}else _e=w?[]:ge;e:for(;++Voe){var le=re;re=oe,oe=le}return re+""+oe+""+(Qr.isUndefined(V)?"\0":V)}function Tf(f,w,B,V){var re=""+w,oe=""+B;if(!f&&re>oe){var le=re;re=oe,oe=le}var ge={v:re,w:oe};return V&&(ge.name=V),ge}function xs(f,w){return Go(f,w.v,w.w,w.name)}na.prototype._nodeCount=0,na.prototype._edgeCount=0,na.prototype.isDirected=function(){return this._isDirected},na.prototype.isMultigraph=function(){return this._isMultigraph},na.prototype.isCompound=function(){return this._isCompound},na.prototype.setGraph=function(f){return this._label=f,this},na.prototype.graph=function(){return this._label},na.prototype.setDefaultNodeLabel=function(f){return Qr.isFunction(f)||(f=Qr.constant(f)),this._defaultNodeLabelFn=f,this},na.prototype.nodeCount=function(){return this._nodeCount},na.prototype.nodes=function(){return Qr.keys(this._nodes)},na.prototype.sources=function(){var f=this;return Qr.filter(this.nodes(),function(w){return Qr.isEmpty(f._in[w])})},na.prototype.sinks=function(){var f=this;return Qr.filter(this.nodes(),function(w){return Qr.isEmpty(f._out[w])})},na.prototype.setNodes=function(f,w){var B=arguments,V=this;return Qr.each(f,function(re){B.length>1?V.setNode(re,w):V.setNode(re)}),this},na.prototype.setNode=function(f,w){return Qr.has(this._nodes,f)?(arguments.length>1&&(this._nodes[f]=w),this):(this._nodes[f]=arguments.length>1?w:this._defaultNodeLabelFn(f),this._isCompound&&(this._parent[f]="\0",this._children[f]={},this._children["\0"][f]=!0),this._in[f]={},this._preds[f]={},this._out[f]={},this._sucs[f]={},++this._nodeCount,this)},na.prototype.node=function(f){return this._nodes[f]},na.prototype.hasNode=function(f){return Qr.has(this._nodes,f)},na.prototype.removeNode=function(f){var w=this;if(Qr.has(this._nodes,f)){var B=function(V){w.removeEdge(w._edgeObjs[V])};delete this._nodes[f],this._isCompound&&(this._removeFromParentsChildList(f),delete this._parent[f],Qr.each(this.children(f),function(V){w.setParent(V)}),delete this._children[f]),Qr.each(Qr.keys(this._in[f]),B),delete this._in[f],delete this._preds[f],Qr.each(Qr.keys(this._out[f]),B),delete this._out[f],delete this._sucs[f],--this._nodeCount}return this},na.prototype.setParent=function(f,w){if(!this._isCompound)throw new Error("Cannot set parent in a non-compound graph");if(Qr.isUndefined(w))w="\0";else{for(var B=w+="";!Qr.isUndefined(B);B=this.parent(B))if(B===f)throw new Error("Setting "+w+" as parent of "+f+" would create a cycle");this.setNode(w)}return this.setNode(f),this._removeFromParentsChildList(f),this._parent[f]=w,this._children[w][f]=!0,this},na.prototype._removeFromParentsChildList=function(f){delete this._children[this._parent[f]][f]},na.prototype.parent=function(f){if(this._isCompound){var w=this._parent[f];if(w!=="\0")return w}},na.prototype.children=function(f){if(Qr.isUndefined(f)&&(f="\0"),this._isCompound){var w=this._children[f];if(w)return Qr.keys(w)}else{if(f==="\0")return this.nodes();if(this.hasNode(f))return[]}},na.prototype.predecessors=function(f){var w=this._preds[f];if(w)return Qr.keys(w)},na.prototype.successors=function(f){var w=this._sucs[f];if(w)return Qr.keys(w)},na.prototype.neighbors=function(f){var w=this.predecessors(f);if(w)return Qr.union(w,this.successors(f))},na.prototype.isLeaf=function(f){return(this.isDirected()?this.successors(f):this.neighbors(f)).length===0},na.prototype.filterNodes=function(f){var w=new this.constructor({directed:this._isDirected,multigraph:this._isMultigraph,compound:this._isCompound});w.setGraph(this.graph());var B=this;Qr.each(this._nodes,function(oe,le){f(le)&&w.setNode(le,oe)}),Qr.each(this._edgeObjs,function(oe){w.hasNode(oe.v)&&w.hasNode(oe.w)&&w.setEdge(oe,B.edge(oe))});var V={};function re(oe){var le=B.parent(oe);return le===void 0||w.hasNode(le)?(V[oe]=le,le):le in V?V[le]:re(le)}return this._isCompound&&Qr.each(w.nodes(),function(oe){w.setParent(oe,re(oe))}),w},na.prototype.setDefaultEdgeLabel=function(f){return Qr.isFunction(f)||(f=Qr.constant(f)),this._defaultEdgeLabelFn=f,this},na.prototype.edgeCount=function(){return this._edgeCount},na.prototype.edges=function(){return Qr.values(this._edgeObjs)},na.prototype.setPath=function(f,w){var B=this,V=arguments;return Qr.reduce(f,function(re,oe){return V.length>1?B.setEdge(re,oe,w):B.setEdge(re,oe),oe}),this},na.prototype.setEdge=function(){var f,w,B,V,re=!1,oe=arguments[0];typeof oe=="object"&&oe!==null&&"v"in oe?(f=oe.v,w=oe.w,B=oe.name,arguments.length===2&&(V=arguments[1],re=!0)):(f=oe,w=arguments[1],B=arguments[3],arguments.length>2&&(V=arguments[2],re=!0)),f=""+f,w=""+w,Qr.isUndefined(B)||(B=""+B);var le=Go(this._isDirected,f,w,B);if(Qr.has(this._edgeLabels,le))return re&&(this._edgeLabels[le]=V),this;if(!Qr.isUndefined(B)&&!this._isMultigraph)throw new Error("Cannot set a named edge when isMultigraph = false");this.setNode(f),this.setNode(w),this._edgeLabels[le]=re?V:this._defaultEdgeLabelFn(f,w,B);var ge=Tf(this._isDirected,f,w,B);return f=ge.v,w=ge.w,Object.freeze(ge),this._edgeObjs[le]=ge,Zs(this._preds[w],f),Zs(this._sucs[f],w),this._in[w][le]=ge,this._out[f][le]=ge,this._edgeCount++,this},na.prototype.edge=function(f,w,B){var V=arguments.length===1?xs(this._isDirected,arguments[0]):Go(this._isDirected,f,w,B);return this._edgeLabels[V]},na.prototype.hasEdge=function(f,w,B){var V=arguments.length===1?xs(this._isDirected,arguments[0]):Go(this._isDirected,f,w,B);return Qr.has(this._edgeLabels,V)},na.prototype.removeEdge=function(f,w,B){var V=arguments.length===1?xs(this._isDirected,arguments[0]):Go(this._isDirected,f,w,B),re=this._edgeObjs[V];return re&&(f=re.v,w=re.w,delete this._edgeLabels[V],delete this._edgeObjs[V],Ks(this._preds[w],f),Ks(this._sucs[f],w),delete this._in[w][V],delete this._out[f][V],this._edgeCount--),this},na.prototype.inEdges=function(f,w){var B=this._in[f];if(B){var V=Qr.values(B);return w?Qr.filter(V,function(re){return re.v===w}):V}},na.prototype.outEdges=function(f,w){var B=this._out[f];if(B){var V=Qr.values(B);return w?Qr.filter(V,function(re){return re.w===w}):V}},na.prototype.nodeEdges=function(f,w){var B=this.inEdges(f,w);if(B)return B.concat(this.outEdges(f,w))};var xu={Graph:is,version:"2.1.8"},If={write:function(f){var w={options:{directed:f.isDirected(),multigraph:f.isMultigraph(),compound:f.isCompound()},nodes:Af(f),edges:oo(f)};return Qr.isUndefined(f.graph())||(w.value=Qr.clone(f.graph())),w},read:function(f){var w=new is(f.options).setGraph(f.value);return Qr.each(f.nodes,function(B){w.setNode(B.v,B.value),B.parent&&w.setParent(B.v,B.parent)}),Qr.each(f.edges,function(B){w.setEdge({v:B.v,w:B.w,name:B.name},B.value)}),w}};function Af(f){return Qr.map(f.nodes(),function(w){var B=f.node(w),V=f.parent(w),re={v:w};return Qr.isUndefined(B)||(re.value=B),Qr.isUndefined(V)||(re.parent=V),re})}function oo(f){return Qr.map(f.edges(),function(w){var B=f.edge(w),V={v:w.v,w:w.w};return Qr.isUndefined(w.name)||(V.name=w.name),Qr.isUndefined(B)||(V.value=B),V})}var q=function(f){var w,B={},V=[];function re(oe){Qr.has(B,oe)||(B[oe]=!0,w.push(oe),Qr.each(f.successors(oe),re),Qr.each(f.predecessors(oe),re))}return Qr.each(f.nodes(),function(oe){w=[],re(oe),w.length&&V.push(w)}),V},de=Ee;function Ee(){this._arr=[],this._keyIndices={}}Ee.prototype.size=function(){return this._arr.length},Ee.prototype.keys=function(){return this._arr.map(function(f){return f.key})},Ee.prototype.has=function(f){return Qr.has(this._keyIndices,f)},Ee.prototype.priority=function(f){var w=this._keyIndices[f];if(w!==void 0)return this._arr[w].priority},Ee.prototype.min=function(){if(this.size()===0)throw new Error("Queue underflow");return this._arr[0].key},Ee.prototype.add=function(f,w){var B=this._keyIndices;if(f=String(f),!Qr.has(B,f)){var V=this._arr,re=V.length;return B[f]=re,V.push({key:f,priority:w}),this._decrease(re),!0}return!1},Ee.prototype.removeMin=function(){this._swap(0,this._arr.length-1);var f=this._arr.pop();return delete this._keyIndices[f.key],this._heapify(0),f.key},Ee.prototype.decrease=function(f,w){var B=this._keyIndices[f];if(w>this._arr[B].priority)throw new Error("New priority is greater than current priority. Key: "+f+" Old: "+this._arr[B].priority+" New: "+w);this._arr[B].priority=w,this._decrease(B)},Ee.prototype._heapify=function(f){var w=this._arr,B=2*f,V=B+1,re=f;B>1].priority0&&(_e=Be.removeMin(),(Ne=ze[_e]).distance!==Number.POSITIVE_INFINITY);)ge(_e).forEach(nt);return ze}(f,String(w),B||je,V||function(re){return f.outEdges(re)})},je=Qr.constant(1),bt=function(f,w,B){return Qr.transform(f.nodes(),function(V,re){V[re]=Pe(f,re,w,B)},{})},St=function(f){var w=0,B=[],V={},re=[];function oe(le){var ge=V[le]={onStack:!0,lowlink:w,index:w++};if(B.push(le),f.successors(le).forEach(function(ze){Qr.has(V,ze)?V[ze].onStack&&(ge.lowlink=Math.min(ge.lowlink,V[ze].index)):(oe(ze),ge.lowlink=Math.min(ge.lowlink,V[ze].lowlink))}),ge.lowlink===ge.index){var _e,Ne=[];do _e=B.pop(),V[_e].onStack=!1,Ne.push(_e);while(le!==_e);re.push(Ne)}}return f.nodes().forEach(function(le){Qr.has(V,le)||oe(le)}),re},jt=function(f){return Qr.filter(St(f),function(w){return w.length>1||w.length===1&&f.hasEdge(w[0],w[0])})},vr=function(f,w,B){return function(V,re,oe){var le={},ge=V.nodes();return ge.forEach(function(_e){le[_e]={},le[_e][_e]={distance:0},ge.forEach(function(Ne){_e!==Ne&&(le[_e][Ne]={distance:Number.POSITIVE_INFINITY})}),oe(_e).forEach(function(Ne){var ze=Ne.v===_e?Ne.w:Ne.v,Be=re(Ne);le[_e][ze]={distance:Be,predecessor:_e}})}),ge.forEach(function(_e){var Ne=le[_e];ge.forEach(function(ze){var Be=le[ze];ge.forEach(function(nt){var _t=Be[_e],tr=Ne[nt],Pt=Be[nt],kt=_t.distance+tr.distance;kt0;){if(B=oe.removeMin(),Qr.has(re,B))V.setEdge(B,re[B]);else{if(ge)throw new Error("Input graph is not connected: "+f);ge=!0}f.nodeEdges(B).forEach(le)}return V},tarjan:St,topsort:$r},version:xu.version};try{Dn=Nn}catch(f){}Dn||(Dn=window.graphlib);var zn=Dn,pn=function(f){return So(f,5)},Yn=function(f,w,B){if(!ft(B))return!1;var V=typeof w;return!!(V=="number"?In(B)&&nr(w,B.length):V=="string"&&w in B)&&s(B[w],f)},Xn=Object.prototype,bn=Xn.hasOwnProperty,Qn=io(function(f,w){f=Object(f);var B=-1,V=w.length,re=V>2?w[2]:void 0;for(re&&Yn(w[0],w[1],re)&&(V=1);++B-1?re[oe?w[le]:le]:void 0}},Da=/^\s+|\s+$/g,Ma=/^[-+]0x[0-9a-f]+$/i,ha=/^0b[01]+$/i,Pa=/^0o[0-7]+$/i,Qa=parseInt,Ya=function(f){if(typeof f=="number")return f;if(Fa(f))return NaN;if(ft(f)){var w=typeof f.valueOf=="function"?f.valueOf():f;f=ft(w)?w+"":w}if(typeof f!="string")return f===0?f:+f;f=f.replace(Da,"");var B=ha.test(f);return B||Pa.test(f)?Qa(f.slice(2),B?2:8):Ma.test(f)?NaN:+f},zo=function(f){return f?(f=Ya(f))===1/0||f===-1/0?17976931348623157e292*(f<0?-1:1):f==f?f:0:f===0?f:0},Qu=function(f){var w=zo(f),B=w%1;return w==w?B?w-B:w:0},To=Math.max,$s=ga(function(f,w,B){var V=f==null?0:f.length;if(!V)return-1;var re=B==null?0:Qu(B);return re<0&&(re=To(V+re,0)),ns(f,Xi(w),re)}),Qi=function(f){return f!=null&&f.length?ts(f,1):[]},Io=function(f,w){return f==null?f:mi(f,Vn(w),De)},wu=function(f){var w=f==null?0:f.length;return w?f[w-1]:void 0},sc=function(f,w){var B={};return w=Xi(w),_o(f,function(V,re,oe){Wn(B,re,w(V,re,oe))}),B},Qs=function(f,w,B){for(var V=-1,re=f.length;++Vw},Of=function(f){return f&&f.length?Qs(f,xi,ei):void 0},ws=function(f,w,B){(B!==void 0&&!s(f[w],B)||B===void 0&&!(w in f))&&Wn(f,w,B)},Ss=Function.prototype,Ju=Object.prototype,so=Ss.toString,qu=Ju.hasOwnProperty,Uo=so.call(Object),_s=function(f){if(!b(f)||He(f)!="[object Object]")return!1;var w=jn(f);if(w===null)return!0;var B=qu.call(w,"constructor")&&w.constructor;return typeof B=="function"&&B instanceof B&&so.call(B)==Uo},Zr=function(f,w){if((w!=="constructor"||typeof f[w]!="function")&&w!="__proto__")return f[w]},uc=function(f){return ee(f,De(f))},al=function(f,w,B,V,re,oe,le){var ge=Zr(f,B),_e=Zr(w,B),Ne=le.get(_e);if(Ne)ws(f,B,Ne);else{var ze=oe?oe(ge,_e,B+"",f,w,le):void 0,Be=ze===void 0;if(Be){var nt=Le(_e),_t=!nt&&qe(_e),tr=!nt&&!_t&&Dr(_e);ze=_e,nt||_t||tr?Le(ge)?ze=ge:Ku(ge)?ze=lt(ge):_t?(Be=!1,ze=Je(_e,!0)):tr?(Be=!1,ze=Ho(_e,!0)):ze=[]:_s(_e)||me(_e)?(ze=ge,me(ge)?ze=uc(ge):ft(ge)&&!Jt(ge)||(ze=ro(_e))):Be=!1}Be&&(le.set(_e,ze),re(ze,_e,V,oe,le),le.delete(_e)),ws(f,B,ze)}},Ji=function f(w,B,V,re,oe){w!==B&&mi(B,function(le,ge){if(oe||(oe=new xn),ft(le))al(w,B,ge,V,f,re,oe);else{var _e=re?re(Zr(w,ge),le,ge+"",w,B,oe):void 0;_e===void 0&&(_e=le),ws(w,ge,_e)}},De)},Wo=function(f){return io(function(w,B){var V=-1,re=B.length,oe=re>1?B[re-1]:void 0,le=re>2?B[2]:void 0;for(oe=f.length>3&&typeof oe=="function"?(re--,oe):void 0,le&&Yn(B[0],B[1],le)&&(oe=re<3?void 0:oe,re=1),w=Object(w);++Vw||oe&&le&&_e&&!ge&&!Ne||V&&le&&_e||!B&&_e||!re)return 1;if(!V&&!oe&&!Ne&&f=ge?_e:_e*(B[V]=="desc"?-1:1)}return f.index-w.index},Cu=function(f,w,B){w=w.length?Oi(w,function(oe){return Le(oe)?function(le){return Fs(le,oe.length===1?oe[0]:oe)}:oe}):[xi];var V=-1;w=Oi(w,Ct(Xi));var re=zs(f,function(oe,le,ge){return{criteria:Oi(w,function(_e){return _e(oe)}),index:++V,value:oe}});return hc(re,function(oe,le){return gc(oe,le,B)})},tf=io(function(f,w){if(f==null)return[];var B=w.length;return B>1&&Yn(f,w[0],w[1])?w=[]:B>2&&Yn(w[0],w[1],w[2])&&(w=[w[0]]),Cu(f,ts(w,1),[])}),Ci=0,Df=function(f){var w=++Ci;return lu(f)+w},il=function(f,w,B){for(var V=-1,re=f.length,oe=w.length,le={};++V0;--Be)if(ge=oe[Be].dequeue()){_e=_e.concat(Pf(re,oe,le,ge,!0));break}}}return _e}(B.graph,B.buckets,B.zeroIdx);return ht.flatten(ht.map(V,function(re){return f.outEdges(re.v,re.w)}),!0)},fl=ht.constant(1);function Pf(f,w,B,V,re){var oe=re?[]:void 0;return ht.forEach(f.inEdges(V.v),function(le){var ge=f.edge(le),_e=f.node(le.v);re&&oe.push({v:le.v,w:le.w}),_e.out-=ge,yc(w,B,_e)}),ht.forEach(f.outEdges(V.v),function(le){var ge=f.edge(le),_e=le.w,Ne=f.node(_e);Ne.in-=ge,yc(w,B,Ne)}),f.removeNode(V.v),oe}function yc(f,w,B){B.out?B.in?f[B.out-B.in+w].enqueue(B):f[f.length-1].enqueue(B):f[0].enqueue(B)}var oi={run:function(f){var w=f.graph().acyclicer==="greedy"?ul(f,function(B){return function(V){return B.edge(V).weight}}(f)):function(B){var V=[],re={},oe={};function le(ge){ht.has(oe,ge)||(oe[ge]=!0,re[ge]=!0,ht.forEach(B.outEdges(ge),function(_e){ht.has(re,_e.w)?V.push(_e):le(_e.w)}),delete re[ge])}return ht.forEach(B.nodes(),le),V}(f);ht.forEach(w,function(B){var V=f.edge(B);f.removeEdge(B),V.forwardName=B.name,V.reversed=!0,f.setEdge(B.w,B.v,V,ht.uniqueId("rev"))})},undo:function(f){ht.forEach(f.edges(),function(w){var B=f.edge(w);if(B.reversed){f.removeEdge(w);var V=B.forwardName;delete B.reversed,delete B.forwardName,f.setEdge(w.w,w.v,B,V)}})}},kf=zn.Graph,gi={addDummyNode:Ms,simplify:function(f){var w=new kf().setGraph(f.graph());return ht.forEach(f.nodes(),function(B){w.setNode(B,f.node(B))}),ht.forEach(f.edges(),function(B){var V=w.edge(B.v,B.w)||{weight:0,minlen:1},re=f.edge(B);w.setEdge(B.v,B.w,{weight:V.weight+re.weight,minlen:Math.max(V.minlen,re.minlen)})}),w},asNonCompoundGraph:function(f){var w=new kf({multigraph:f.isMultigraph()}).setGraph(f.graph());return ht.forEach(f.nodes(),function(B){f.children(B).length||w.setNode(B,f.node(B))}),ht.forEach(f.edges(),function(B){w.setEdge(B,f.edge(B))}),w},successorWeights:function(f){var w=ht.map(f.nodes(),function(B){var V={};return ht.forEach(f.outEdges(B),function(re){V[re.w]=(V[re.w]||0)+f.edge(re).weight}),V});return ht.zipObject(f.nodes(),w)},predecessorWeights:function(f){var w=ht.map(f.nodes(),function(B){var V={};return ht.forEach(f.inEdges(B),function(re){V[re.v]=(V[re.v]||0)+f.edge(re).weight}),V});return ht.zipObject(f.nodes(),w)},intersectRect:function(f,w){var B,V,re=f.x,oe=f.y,le=w.x-re,ge=w.y-oe,_e=f.width/2,Ne=f.height/2;if(!le&&!ge)throw new Error("Not possible to find intersection inside of the rectangle");return Math.abs(ge)*_e>Math.abs(le)*Ne?(ge<0&&(Ne=-Ne),B=Ne*le/ge,V=Ne):(le<0&&(_e=-_e),B=_e,V=_e*ge/le),{x:re+B,y:oe+V}},buildLayerMatrix:function(f){var w=ht.map(ht.range(mc(f)+1),function(){return[]});return ht.forEach(f.nodes(),function(B){var V=f.node(B),re=V.rank;ht.isUndefined(re)||(w[re][V.order]=B)}),w},normalizeRanks:function(f){var w=ht.min(ht.map(f.nodes(),function(B){return f.node(B).rank}));ht.forEach(f.nodes(),function(B){var V=f.node(B);ht.has(V,"rank")&&(V.rank-=w)})},removeEmptyRanks:function(f){var w=ht.min(ht.map(f.nodes(),function(oe){return f.node(oe).rank})),B=[];ht.forEach(f.nodes(),function(oe){var le=f.node(oe).rank-w;B[le]||(B[le]=[]),B[le].push(oe)});var V=0,re=f.graph().nodeRankFactor;ht.forEach(B,function(oe,le){ht.isUndefined(oe)&&le%re!=0?--V:V&&ht.forEach(oe,function(ge){f.node(ge).rank+=V})})},addBorderNode:function(f,w,B,V){var re={width:0,height:0};return arguments.length>=4&&(re.rank=B,re.order=V),Ms(f,"border",re,w)},maxRank:mc,partition:function(f,w){var B={lhs:[],rhs:[]};return ht.forEach(f,function(V){w(V)?B.lhs.push(V):B.rhs.push(V)}),B},time:function(f,w){var B=ht.now();try{return w()}finally{console.log(f+" time: "+(ht.now()-B)+"ms")}},notime:function(f,w){return w()}};function Ms(f,w,B,V){var re;do re=ht.uniqueId(V);while(f.hasNode(re));return B.dummy=w,f.setNode(re,B),re}function mc(f){return ht.max(ht.map(f.nodes(),function(w){var B=f.node(w).rank;if(!ht.isUndefined(B))return B}))}var nf={run:function(f){f.graph().dummyChains=[],ht.forEach(f.edges(),function(w){(function(B,V){var re,oe,le,ge=V.v,_e=B.node(ge).rank,Ne=V.w,ze=B.node(Ne).rank,Be=V.name,nt=B.edge(V),_t=nt.labelRank;if(ze!==_e+1){for(B.removeEdge(V),le=0,++_e;_ele.lim&&(ge=le,_e=!0);var Ne=ht.filter(w.edges(),function(ze){return _e===Sc(f,f.node(ze.v),ge)&&_e!==Sc(f,f.node(ze.w),ge)});return ht.minBy(Ne,function(ze){return Rf(w,ze)})}function tu(f,w,B,V){var re=B.v,oe=B.w;f.removeEdge(re,oe),f.setEdge(V.v,V.w,{}),Ff(f),Ec(f,w),function(le,ge){var _e=ht.find(le.nodes(),function(ze){return!ge.node(ze).parent}),Ne=af(le,_e);Ne=Ne.slice(1),ht.forEach(Ne,function(ze){var Be=le.node(ze).parent,nt=ge.edge(ze,Be),_t=!1;nt||(nt=ge.edge(Be,ze),_t=!0),ge.node(ze).rank=ge.node(Be).rank+(_t?nt.minlen:-nt.minlen)})}(f,w)}function Sc(f,w,B){return B.low<=w.lim&&w.lim<=B.lim}uo.initLowLimValues=Ff,uo.initCutValues=Ec,uo.calcCutValue=Fc,uo.leaveEdge=wc,uo.enterEdge=Gc,uo.exchangeEdges=tu;var _c=Xo,cl=function(f){switch(f.graph().ranker){case"network-simplex":zc(f);break;case"tight-tree":(function(w){_c(w),Tu(w)})(f);break;case"longest-path":Vo(f);break;default:zc(f)}},Vo=_c;function zc(f){ss(f)}var ll=function(f){var w=function(B){var V={},re=0;function oe(le){var ge=re;ht.forEach(B.children(le),oe),V[le]={low:ge,lim:re++}}return ht.forEach(B.children(),oe),V}(f);ht.forEach(f.graph().dummyChains,function(B){for(var V=f.node(B),re=V.edgeObj,oe=function(Be,nt,_t,tr){var Pt,kt,Dt=[],pr=[],Xr=Math.min(nt[_t].low,nt[tr].low),Or=Math.max(nt[_t].lim,nt[tr].lim);Pt=_t;do Pt=Be.parent(Pt),Dt.push(Pt);while(Pt&&(nt[Pt].low>Xr||Or>nt[Pt].lim));for(kt=Pt,Pt=tr;(Pt=Be.parent(Pt))!==kt;)pr.push(Pt);return{path:Dt.concat(pr.reverse()),lca:kt}}(f,w,re.v,re.w),le=oe.path,ge=oe.lca,_e=0,Ne=le[_e],ze=!0;B!==re.w;){if(V=f.node(B),ze){for(;(Ne=le[_e])!==ge&&f.node(Ne).maxRank0;)ze%2&&(Be+=ge[ze+1]),ge[ze=ze-1>>1]+=Ne.weight;_e+=Ne.weight*Be})),_e}var Mc=function(f,w){return ht.map(w,function(B){var V=f.inEdges(B);if(V.length){var re=ht.reduce(V,function(oe,le){var ge=f.edge(le),_e=f.node(le.v);return{sum:oe.sum+ge.weight*_e.order,weight:oe.weight+ge.weight}},{sum:0,weight:0});return{v:B,barycenter:re.sum/re.weight,weight:re.weight}}return{v:B}})},Xf=function(f,w){var B={};return ht.forEach(f,function(V,re){var oe=B[V.v]={indegree:0,in:[],out:[],vs:[V.v],i:re};ht.isUndefined(V.barycenter)||(oe.barycenter=V.barycenter,oe.weight=V.weight)}),ht.forEach(w.edges(),function(V){var re=B[V.v],oe=B[V.w];ht.isUndefined(re)||ht.isUndefined(oe)||(oe.indegree++,re.out.push(B[V.w]))}),function(V){var re=[];function oe(_e){return function(Ne){Ne.merged||(ht.isUndefined(Ne.barycenter)||ht.isUndefined(_e.barycenter)||Ne.barycenter>=_e.barycenter)&&function(ze,Be){var nt=0,_t=0;ze.weight&&(nt+=ze.barycenter*ze.weight,_t+=ze.weight),Be.weight&&(nt+=Be.barycenter*Be.weight,_t+=Be.weight),ze.vs=Be.vs.concat(ze.vs),ze.barycenter=nt/_t,ze.weight=_t,ze.i=Math.min(Be.i,ze.i),Be.merged=!0}(_e,Ne)}}function le(_e){return function(Ne){Ne.in.push(_e),--Ne.indegree==0&&V.push(Ne)}}for(;V.length;){var ge=V.pop();re.push(ge),ht.forEach(ge.in.reverse(),oe(ge)),ht.forEach(ge.out,le(ge))}return ht.map(ht.filter(re,function(_e){return!_e.merged}),function(_e){return ht.pick(_e,["vs","i","barycenter","weight"])})}(ht.filter(B,function(V){return!V.indegree}))},Au=function(f,w){var B=gi.partition(f,function(Be){return ht.has(Be,"barycenter")}),V=B.lhs,re=ht.sortBy(B.rhs,function(Be){return-Be.i}),oe=[],le=0,ge=0,_e=0;V.sort((Ne=!!w,function(Be,nt){return Be.barycenternt.barycenter?1:Ne?nt.i-Be.i:Be.i-nt.i})),_e=of(oe,re,_e),ht.forEach(V,function(Be){_e+=Be.vs.length,oe.push(Be.vs),le+=Be.barycenter*Be.weight,ge+=Be.weight,_e=of(oe,re,_e)});var Ne,ze={vs:ht.flatten(oe,!0)};return ge&&(ze.barycenter=le/ge,ze.weight=ge),ze};function of(f,w,B){for(var V;w.length&&(V=ht.last(w)).i<=B;)w.pop(),f.push(V.vs),B++;return B}var Cc=function f(w,B,V,re){var oe=w.children(B),le=w.node(B),ge=le?le.borderLeft:void 0,_e=le?le.borderRight:void 0,Ne={};ge&&(oe=ht.filter(oe,function(Pt){return Pt!==ge&&Pt!==_e}));var ze=Mc(w,oe);ht.forEach(ze,function(Pt){if(w.children(Pt.v).length){var kt=f(w,Pt.v,V,re);Ne[Pt.v]=kt,ht.has(kt,"barycenter")&&(Dt=Pt,pr=kt,ht.isUndefined(Dt.barycenter)?(Dt.barycenter=pr.barycenter,Dt.weight=pr.weight):(Dt.barycenter=(Dt.barycenter*Dt.weight+pr.barycenter*pr.weight)/(Dt.weight+pr.weight),Dt.weight+=pr.weight))}var Dt,pr});var Be=Xf(ze,V);(function(Pt,kt){ht.forEach(Pt,function(Dt){Dt.vs=ht.flatten(Dt.vs.map(function(pr){return kt[pr]?kt[pr].vs:pr}),!0)})})(Be,Ne);var nt=Au(Be,re);if(ge&&(nt.vs=ht.flatten([ge,nt.vs,_e],!0),w.predecessors(ge).length)){var _t=w.node(w.predecessors(ge)[0]),tr=w.node(w.predecessors(_e)[0]);ht.has(nt,"barycenter")||(nt.barycenter=0,nt.weight=0),nt.barycenter=(nt.barycenter*nt.weight+_t.order+tr.order)/(nt.weight+2),nt.weight+=2}return nt},jf=zn.Graph,sf=function(f,w,B){var V=function(oe){for(var le;oe.hasNode(le=ht.uniqueId("_root")););return le}(f),re=new jf({compound:!0}).setGraph({root:V}).setDefaultNodeLabel(function(oe){return f.node(oe)});return ht.forEach(f.nodes(),function(oe){var le=f.node(oe),ge=f.parent(oe);(le.rank===w||le.minRank<=w&&w<=le.maxRank)&&(re.setNode(oe),re.setParent(oe,ge||V),ht.forEach(f[B](oe),function(_e){var Ne=_e.v===oe?_e.w:_e.v,ze=re.edge(Ne,oe),Be=ht.isUndefined(ze)?0:ze.weight;re.setEdge(Ne,oe,{weight:f.edge(_e).weight+Be})}),ht.has(le,"minRank")&&re.setNode(oe,{borderLeft:le.borderLeft[w],borderRight:le.borderRight[w]}))}),re},uf=function(f,w,B){var V,re={};ht.forEach(B,function(oe){for(var le,ge,_e=f.parent(oe);_e;){if((le=f.parent(_e))?(ge=re[le],re[le]=_e):(ge=V,V=_e),ge&&ge!==_e)return void w.setEdge(ge,_e);_e=le}})},Ou=zn.Graph,ff=function(f){var w=gi.maxRank(f),B=Lu(f,ht.range(1,w+1),"inEdges"),V=Lu(f,ht.range(w-1,-1,-1),"outEdges"),re=nu(f);Cs(f,re);for(var oe,le=Number.POSITIVE_INFINITY,ge=0,_e=0;_e<4;++ge,++_e){Du(ge%2?B:V,ge%4>=2),re=gi.buildLayerMatrix(f);var Ne=Uf(f,re);Ne