@moxa/graph 2.7.1 → 2.7.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (38) hide show
  1. package/assets/icon-sprite.svg +1 -1
  2. package/assets/worker-D2tlLpGE.js +13 -0
  3. package/index.cjs +96 -104
  4. package/index.js +16949 -16556
  5. package/lib/behavior/brush-select.d.ts.map +1 -1
  6. package/lib/behavior/create-edge.d.ts +23 -35
  7. package/lib/behavior/create-edge.d.ts.map +1 -1
  8. package/lib/behavior/drag-element.d.ts.map +1 -1
  9. package/lib/edge/helper/edge-g6.mapper.d.ts +3 -0
  10. package/lib/edge/helper/edge-g6.mapper.d.ts.map +1 -1
  11. package/lib/edge/helper/edge.mapper.d.ts +3 -0
  12. package/lib/edge/helper/edge.mapper.d.ts.map +1 -1
  13. package/lib/graph/graph.d.ts +56 -13
  14. package/lib/graph/graph.d.ts.map +1 -1
  15. package/lib/graph/graph.mapper.d.ts.map +1 -1
  16. package/lib/group/custom/device-group.d.ts.map +1 -1
  17. package/lib/group/helper/group-g6.mapper.d.ts +10 -1
  18. package/lib/group/helper/group-g6.mapper.d.ts.map +1 -1
  19. package/lib/group/helper/group.mapper.d.ts +14 -1
  20. package/lib/group/helper/group.mapper.d.ts.map +1 -1
  21. package/lib/layout/grid.d.ts.map +1 -1
  22. package/lib/model/graph.model.d.ts +2 -0
  23. package/lib/model/graph.model.d.ts.map +1 -1
  24. package/lib/node/custom/device-node.d.ts.map +1 -1
  25. package/lib/node/helper/node-g6.mapper.d.ts +3 -0
  26. package/lib/node/helper/node-g6.mapper.d.ts.map +1 -1
  27. package/lib/node/helper/node.mapper.d.ts +3 -0
  28. package/lib/node/helper/node.mapper.d.ts.map +1 -1
  29. package/lib/plugin/element-toolbar.d.ts +24 -16
  30. package/lib/plugin/element-toolbar.d.ts.map +1 -1
  31. package/lib/plugin/fixed-toolbar.d.ts +6 -4
  32. package/lib/plugin/fixed-toolbar.d.ts.map +1 -1
  33. package/lib/plugin/graph-background.d.ts +8 -4
  34. package/lib/plugin/graph-background.d.ts.map +1 -1
  35. package/lib/plugin/tooltip.d.ts +2 -2
  36. package/lib/plugin/tooltip.d.ts.map +1 -1
  37. package/package.json +1 -1
  38. package/assets/worker-B2aNklqP.js +0 -13
@@ -0,0 +1,13 @@
1
+ var eR=Object.defineProperty;var tR=(ne,L,se)=>L in ne?eR(ne,L,{enumerable:!0,configurable:!0,writable:!0,value:se}):ne[L]=se;var te=(ne,L,se)=>(tR(ne,typeof L!="symbol"?L+"":L,se),se),oc=(ne,L,se)=>{if(!L.has(ne))throw TypeError("Cannot "+se)};var Oe=(ne,L,se)=>(oc(ne,L,"read from private field"),se?se.call(ne):L.get(ne)),ac=(ne,L,se)=>{if(L.has(ne))throw TypeError("Cannot add the same private member more than once");L instanceof WeakSet?L.add(ne):L.set(ne,se)},Hr=(ne,L,se,Ht)=>(oc(ne,L,"write to private field"),Ht?Ht.call(ne,se):L.set(ne,se),se);var uc=(ne,L,se)=>(oc(ne,L,"access private method"),se);(function(){"use strict";var Qt,cc,qt,fe;function ne(n,t){var e={};for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&t.indexOf(r)<0&&(e[r]=n[r]);if(n!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,r=Object.getOwnPropertySymbols(n);i<r.length;i++)t.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(n,r[i])&&(e[r[i]]=n[r[i]]);return e}function L(n,t,e,r){function i(s){return s instanceof e?s:new e(function(o){o(s)})}return new(e||(e=Promise))(function(s,o){function a(f){try{c(r.next(f))}catch(l){o(l)}}function u(f){try{c(r.throw(f))}catch(l){o(l)}}function c(f){f.done?s(f.value):i(f.value).then(a,u)}c((r=r.apply(n,t||[])).next())})}typeof SuppressedError=="function"&&SuppressedError;var se="*",Ht=function(){function n(){this._events={}}return n.prototype.on=function(t,e,r){return this._events[t]||(this._events[t]=[]),this._events[t].push({callback:e,once:!!r}),this},n.prototype.once=function(t,e){return this.on(t,e,!0)},n.prototype.emit=function(t){for(var e=this,r=[],i=1;i<arguments.length;i++)r[i-1]=arguments[i];var s=this._events[t]||[],o=this._events[se]||[],a=function(u){for(var c=u.length,f=0;f<c;f++)if(u[f]){var l=u[f],h=l.callback,g=l.once;g&&(u.splice(f,1),u.length===0&&delete e._events[t],c--,f--),h.apply(e,r)}};a(s),a(o)},n.prototype.off=function(t,e){if(!t)this._events={};else if(!e)delete this._events[t];else{for(var r=this._events[t]||[],i=r.length,s=0;s<i;s++)r[s].callback===e&&(r.splice(s,1),i--,s--);r.length===0&&delete this._events[t]}return this},n.prototype.getEvents=function(){return this._events},n}();function en(n,t,e,r){for(;n.length;){const i=n.shift();if(e(i))return!0;t.add(i.id),r(i.id).forEach(o=>{t.has(o.id)||(t.add(o.id),n.push(o))})}return!1}function er(n,t,e,r){if(e(n))return!0;t.add(n.id);for(const s of r(n.id))if(!t.has(s.id)&&er(s,t,e,r))return!0;return!1}const fc=()=>!0;class b0{constructor(t){te(this,"graph");te(this,"nodeFilter");te(this,"edgeFilter");te(this,"cacheEnabled");te(this,"inEdgesMap",new Map);te(this,"outEdgesMap",new Map);te(this,"bothEdgesMap",new Map);te(this,"allNodesMap",new Map);te(this,"allEdgesMap",new Map);te(this,"clearCache",()=>{this.inEdgesMap.clear(),this.outEdgesMap.clear(),this.bothEdgesMap.clear(),this.allNodesMap.clear(),this.allEdgesMap.clear()});te(this,"refreshCache",()=>{this.clearCache(),this.updateCache(this.graph.getAllNodes().map(t=>t.id))});te(this,"updateCache",t=>{const e=new Set;t.forEach(r=>{const i=this.bothEdgesMap.get(r);if(i&&i.forEach(s=>e.add(s.id)),!this.hasNode(r))this.inEdgesMap.delete(r),this.outEdgesMap.delete(r),this.bothEdgesMap.delete(r),this.allNodesMap.delete(r);else{const s=this.graph.getRelatedEdges(r,"in").filter(this.edgeFilter),o=this.graph.getRelatedEdges(r,"out").filter(this.edgeFilter),a=Array.from(new Set([...s,...o]));a.forEach(u=>e.add(u.id)),this.inEdgesMap.set(r,s),this.outEdgesMap.set(r,o),this.bothEdgesMap.set(r,a),this.allNodesMap.set(r,this.graph.getNode(r))}}),e.forEach(r=>{this.hasEdge(r)?this.allEdgesMap.set(r,this.graph.getEdge(r)):this.allEdgesMap.delete(r)})});te(this,"handleGraphChanged",t=>{const e=new Set;t.changes.forEach(r=>{switch(r.type){case"NodeAdded":e.add(r.value.id);break;case"NodeDataUpdated":e.add(r.id);break;case"EdgeAdded":e.add(r.value.source),e.add(r.value.target);break;case"EdgeUpdated":(r.propertyName==="source"||r.propertyName==="target")&&(e.add(r.oldValue),e.add(r.newValue));break;case"EdgeDataUpdated":if(t.graph.hasEdge(r.id)){const i=t.graph.getEdge(r.id);e.add(i.source),e.add(i.target)}break;case"EdgeRemoved":e.add(r.value.source),e.add(r.value.target);break;case"NodeRemoved":e.add(r.value.id);break}}),this.updateCache(e)});this.graph=t.graph;const e=t.nodeFilter||fc,r=t.edgeFilter||fc;this.nodeFilter=e,this.edgeFilter=i=>{const{source:s,target:o}=this.graph.getEdgeDetail(i.id);return!e(s)||!e(o)?!1:r(i,s,o)},t.cache==="auto"?(this.cacheEnabled=!0,this.startAutoCache()):t.cache==="manual"?this.cacheEnabled=!0:this.cacheEnabled=!1}startAutoCache(){this.refreshCache(),this.graph.on("changed",this.handleGraphChanged)}stopAutoCache(){this.graph.off("changed",this.handleGraphChanged)}checkNodeExistence(t){this.getNode(t)}hasNode(t){if(!this.graph.hasNode(t))return!1;const e=this.graph.getNode(t);return this.nodeFilter(e)}areNeighbors(t,e){return this.checkNodeExistence(t),this.getNeighbors(e).some(r=>r.id===t)}getNode(t){const e=this.graph.getNode(t);if(!this.nodeFilter(e))throw new Error("Node not found for id: "+t);return e}getRelatedEdges(t,e){return this.checkNodeExistence(t),this.cacheEnabled?e==="in"?this.inEdgesMap.get(t):e==="out"?this.outEdgesMap.get(t):this.bothEdgesMap.get(t):this.graph.getRelatedEdges(t,e).filter(this.edgeFilter)}getDegree(t,e){return this.getRelatedEdges(t,e).length}getSuccessors(t){const r=this.getRelatedEdges(t,"out").map(i=>this.getNode(i.target));return Array.from(new Set(r))}getPredecessors(t){const r=this.getRelatedEdges(t,"in").map(i=>this.getNode(i.source));return Array.from(new Set(r))}getNeighbors(t){const e=this.getPredecessors(t),r=this.getSuccessors(t);return Array.from(new Set([...e,...r]))}hasEdge(t){if(!this.graph.hasEdge(t))return!1;const e=this.graph.getEdge(t);return this.edgeFilter(e)}getEdge(t){const e=this.graph.getEdge(t);if(!this.edgeFilter(e))throw new Error("Edge not found for id: "+t);return e}getEdgeDetail(t){const e=this.getEdge(t);return{edge:e,source:this.getNode(e.source),target:this.getNode(e.target)}}hasTreeStructure(t){return this.graph.hasTreeStructure(t)}getRoots(t){return this.graph.getRoots(t).filter(this.nodeFilter)}getChildren(t,e){return this.checkNodeExistence(t),this.graph.getChildren(t,e).filter(this.nodeFilter)}getParent(t,e){this.checkNodeExistence(t);const r=this.graph.getParent(t,e);return!r||!this.nodeFilter(r)?null:r}getAllNodes(){return this.cacheEnabled?Array.from(this.allNodesMap.values()):this.graph.getAllNodes().filter(this.nodeFilter)}getAllEdges(){return this.cacheEnabled?Array.from(this.allEdgesMap.values()):this.graph.getAllEdges().filter(this.edgeFilter)}bfs(t,e,r="out"){const i={in:this.getPredecessors.bind(this),out:this.getSuccessors.bind(this),both:this.getNeighbors.bind(this)}[r];en([this.getNode(t)],new Set,e,i)}dfs(t,e,r="out"){const i={in:this.getPredecessors.bind(this),out:this.getSuccessors.bind(this),both:this.getNeighbors.bind(this)}[r];er(this.getNode(t),new Set,e,i)}}let ue=class w0 extends Ht{constructor(e){super();te(this,"nodeMap",new Map);te(this,"edgeMap",new Map);te(this,"inEdgesMap",new Map);te(this,"outEdgesMap",new Map);te(this,"bothEdgesMap",new Map);te(this,"treeIndices",new Map);te(this,"changes",[]);te(this,"batchCount",0);te(this,"onChanged",()=>{});te(this,"batch",e=>{this.batchCount+=1,e(),this.batchCount-=1,this.batchCount||this.commit()});e&&(e.nodes&&this.addNodes(e.nodes),e.edges&&this.addEdges(e.edges),e.tree&&this.addTree(e.tree),e.onChanged&&(this.onChanged=e.onChanged))}commit(){const e=this.changes;this.changes=[];const r={graph:this,changes:e};this.emit("changed",r),this.onChanged(r)}reduceChanges(e){let r=[];return e.forEach(i=>{switch(i.type){case"NodeRemoved":{let s=!1;r=r.filter(o=>{if(o.type==="NodeAdded"){const a=o.value.id===i.value.id;return a&&(s=!0),!a}else{if(o.type==="NodeDataUpdated")return o.id!==i.value.id;if(o.type==="TreeStructureChanged")return o.nodeId!==i.value.id}return!0}),s||r.push(i);break}case"EdgeRemoved":{let s=!1;r=r.filter(o=>{if(o.type==="EdgeAdded"){const a=o.value.id===i.value.id;return a&&(s=!0),!a}else if(o.type==="EdgeDataUpdated"||o.type==="EdgeUpdated")return o.id!==i.value.id;return!0}),s||r.push(i);break}case"NodeDataUpdated":case"EdgeDataUpdated":case"EdgeUpdated":{const s=r.findIndex(a=>a.type===i.type&&a.id===i.id&&(i.propertyName===void 0||a.propertyName===i.propertyName)),o=r[s];o?i.propertyName!==void 0?o.newValue=i.newValue:(r.splice(s,1),r.push(i)):r.push(i);break}case"TreeStructureDetached":{r=r.filter(s=>s.type==="TreeStructureAttached"||s.type==="TreeStructureChanged"?s.treeKey!==i.treeKey:!0),r.push(i);break}case"TreeStructureChanged":{const s=r.find(o=>o.type==="TreeStructureChanged"&&o.treeKey===i.treeKey&&o.nodeId===i.nodeId);s?s.newParentId=i.newParentId:r.push(i);break}default:r.push(i);break}}),r}checkNodeExistence(e){this.getNode(e)}hasNode(e){return this.nodeMap.has(e)}areNeighbors(e,r){return this.getNeighbors(r).some(i=>i.id===e)}getNode(e){const r=this.nodeMap.get(e);if(!r)throw new Error("Node not found for id: "+e);return r}getRelatedEdges(e,r){if(this.checkNodeExistence(e),r==="in"){const i=this.inEdgesMap.get(e);return Array.from(i)}else if(r==="out"){const i=this.outEdgesMap.get(e);return Array.from(i)}else{const i=this.bothEdgesMap.get(e);return Array.from(i)}}getDegree(e,r){return this.getRelatedEdges(e,r).length}getSuccessors(e){const i=this.getRelatedEdges(e,"out").map(s=>this.getNode(s.target));return Array.from(new Set(i))}getPredecessors(e){const i=this.getRelatedEdges(e,"in").map(s=>this.getNode(s.source));return Array.from(new Set(i))}getNeighbors(e){const r=this.getPredecessors(e),i=this.getSuccessors(e);return Array.from(new Set([...r,...i]))}doAddNode(e){if(this.hasNode(e.id))throw new Error("Node already exists: "+e.id);this.nodeMap.set(e.id,e),this.inEdgesMap.set(e.id,new Set),this.outEdgesMap.set(e.id,new Set),this.bothEdgesMap.set(e.id,new Set),this.treeIndices.forEach(r=>{r.childrenMap.set(e.id,new Set)}),this.changes.push({type:"NodeAdded",value:e})}addNodes(e){this.batch(()=>{for(const r of e)this.doAddNode(r)})}addNode(e){this.addNodes([e])}doRemoveNode(e){const r=this.getNode(e),i=this.bothEdgesMap.get(e);i==null||i.forEach(s=>this.doRemoveEdge(s.id)),this.nodeMap.delete(e),this.treeIndices.forEach(s=>{var a,u;(a=s.childrenMap.get(e))==null||a.forEach(c=>{s.parentMap.delete(c.id)});const o=s.parentMap.get(e);o&&((u=s.childrenMap.get(o.id))==null||u.delete(r)),s.parentMap.delete(e),s.childrenMap.delete(e)}),this.bothEdgesMap.delete(e),this.inEdgesMap.delete(e),this.outEdgesMap.delete(e),this.changes.push({type:"NodeRemoved",value:r})}removeNodes(e){this.batch(()=>{e.forEach(r=>this.doRemoveNode(r))})}removeNode(e){this.removeNodes([e])}updateNodeDataProperty(e,r,i){const s=this.getNode(e);this.batch(()=>{const o=s.data[r],a=i;s.data[r]=a,this.changes.push({type:"NodeDataUpdated",id:e,propertyName:r,oldValue:o,newValue:a})})}mergeNodeData(e,r){this.batch(()=>{Object.entries(r).forEach(([i,s])=>{this.updateNodeDataProperty(e,i,s)})})}updateNodeData(...e){const r=e[0],i=this.getNode(r);if(typeof e[1]=="string"){this.updateNodeDataProperty(r,e[1],e[2]);return}let s;if(typeof e[1]=="function"){const o=e[1];s=o(i.data)}else typeof e[1]=="object"&&(s=e[1]);this.batch(()=>{const o=i.data,a=s;i.data=s,this.changes.push({type:"NodeDataUpdated",id:r,oldValue:o,newValue:a})})}checkEdgeExistence(e){if(!this.hasEdge(e))throw new Error("Edge not found for id: "+e)}hasEdge(e){return this.edgeMap.has(e)}getEdge(e){return this.checkEdgeExistence(e),this.edgeMap.get(e)}getEdgeDetail(e){const r=this.getEdge(e);return{edge:r,source:this.getNode(r.source),target:this.getNode(r.target)}}doAddEdge(e){if(this.hasEdge(e.id))throw new Error("Edge already exists: "+e.id);this.checkNodeExistence(e.source),this.checkNodeExistence(e.target),this.edgeMap.set(e.id,e);const r=this.inEdgesMap.get(e.target),i=this.outEdgesMap.get(e.source),s=this.bothEdgesMap.get(e.source),o=this.bothEdgesMap.get(e.target);r.add(e),i.add(e),s.add(e),o.add(e),this.changes.push({type:"EdgeAdded",value:e})}addEdges(e){this.batch(()=>{for(const r of e)this.doAddEdge(r)})}addEdge(e){this.addEdges([e])}doRemoveEdge(e){const r=this.getEdge(e),i=this.outEdgesMap.get(r.source),s=this.inEdgesMap.get(r.target),o=this.bothEdgesMap.get(r.source),a=this.bothEdgesMap.get(r.target);i.delete(r),s.delete(r),o.delete(r),a.delete(r),this.edgeMap.delete(e),this.changes.push({type:"EdgeRemoved",value:r})}removeEdges(e){this.batch(()=>{e.forEach(r=>this.doRemoveEdge(r))})}removeEdge(e){this.removeEdges([e])}updateEdgeSource(e,r){const i=this.getEdge(e);this.checkNodeExistence(r);const s=i.source,o=r;this.outEdgesMap.get(s).delete(i),this.bothEdgesMap.get(s).delete(i),this.outEdgesMap.get(o).add(i),this.bothEdgesMap.get(o).add(i),i.source=r,this.batch(()=>{this.changes.push({type:"EdgeUpdated",id:e,propertyName:"source",oldValue:s,newValue:o})})}updateEdgeTarget(e,r){const i=this.getEdge(e);this.checkNodeExistence(r);const s=i.target,o=r;this.inEdgesMap.get(s).delete(i),this.bothEdgesMap.get(s).delete(i),this.inEdgesMap.get(o).add(i),this.bothEdgesMap.get(o).add(i),i.target=r,this.batch(()=>{this.changes.push({type:"EdgeUpdated",id:e,propertyName:"target",oldValue:s,newValue:o})})}updateEdgeDataProperty(e,r,i){const s=this.getEdge(e);this.batch(()=>{const o=s.data[r],a=i;s.data[r]=a,this.changes.push({type:"EdgeDataUpdated",id:e,propertyName:r,oldValue:o,newValue:a})})}updateEdgeData(...e){const r=e[0],i=this.getEdge(r);if(typeof e[1]=="string"){this.updateEdgeDataProperty(r,e[1],e[2]);return}let s;if(typeof e[1]=="function"){const o=e[1];s=o(i.data)}else typeof e[1]=="object"&&(s=e[1]);this.batch(()=>{const o=i.data,a=s;i.data=s,this.changes.push({type:"EdgeDataUpdated",id:r,oldValue:o,newValue:a})})}mergeEdgeData(e,r){this.batch(()=>{Object.entries(r).forEach(([i,s])=>{this.updateEdgeDataProperty(e,i,s)})})}checkTreeExistence(e){if(!this.hasTreeStructure(e))throw new Error("Tree structure not found for treeKey: "+e)}hasTreeStructure(e){return this.treeIndices.has(e)}attachTreeStructure(e){this.treeIndices.has(e)||(this.treeIndices.set(e,{parentMap:new Map,childrenMap:new Map}),this.batch(()=>{this.changes.push({type:"TreeStructureAttached",treeKey:e})}))}detachTreeStructure(e){this.checkTreeExistence(e),this.treeIndices.delete(e),this.batch(()=>{this.changes.push({type:"TreeStructureDetached",treeKey:e})})}addTree(e,r){this.batch(()=>{this.attachTreeStructure(r);const i=[],s=Array.isArray(e)?e:[e];for(;s.length;){const o=s.shift();i.push(o),o.children&&s.push(...o.children)}this.addNodes(i),i.forEach(o=>{var a;(a=o.children)==null||a.forEach(u=>{this.setParent(u.id,o.id,r)})})})}getRoots(e){return this.checkTreeExistence(e),this.getAllNodes().filter(r=>!this.getParent(r.id,e))}getChildren(e,r){this.checkNodeExistence(e),this.checkTreeExistence(r);const s=this.treeIndices.get(r).childrenMap.get(e);return Array.from(s||[])}getParent(e,r){return this.checkNodeExistence(e),this.checkTreeExistence(r),this.treeIndices.get(r).parentMap.get(e)||null}getAncestors(e,r){const i=[];let s=this.getNode(e),o;for(;o=this.getParent(s.id,r);)i.push(o),s=o;return i}setParent(e,r,i){var f,l;this.checkTreeExistence(i);const s=this.treeIndices.get(i),o=this.getNode(e),a=s.parentMap.get(e);if((a==null?void 0:a.id)===r)return;if(r===void 0){a&&((f=s.childrenMap.get(a.id))==null||f.delete(o)),s.parentMap.delete(e);return}const u=this.getNode(r);s.parentMap.set(e,u),a&&((l=s.childrenMap.get(a.id))==null||l.delete(o));let c=s.childrenMap.get(u.id);c||(c=new Set,s.childrenMap.set(u.id,c)),c.add(o),this.batch(()=>{this.changes.push({type:"TreeStructureChanged",treeKey:i,nodeId:e,oldParentId:a==null?void 0:a.id,newParentId:u.id})})}dfsTree(e,r,i){const s=o=>this.getChildren(o,i);return er(this.getNode(e),new Set,r,s)}bfsTree(e,r,i){const s=o=>this.getChildren(o,i);return en([this.getNode(e)],new Set,r,s)}getAllNodes(){return Array.from(this.nodeMap.values())}getAllEdges(){return Array.from(this.edgeMap.values())}bfs(e,r,i="out"){const s={in:this.getPredecessors.bind(this),out:this.getSuccessors.bind(this),both:this.getNeighbors.bind(this)}[i];return en([this.getNode(e)],new Set,r,s)}dfs(e,r,i="out"){const s={in:this.getPredecessors.bind(this),out:this.getSuccessors.bind(this),both:this.getNeighbors.bind(this)}[i];return er(this.getNode(e),new Set,r,s)}clone(){const e=this.getAllNodes().map(s=>({...s,data:{...s.data}})),r=this.getAllEdges().map(s=>({...s,data:{...s.data}})),i=new w0({nodes:e,edges:r});return this.treeIndices.forEach(({parentMap:s,childrenMap:o},a)=>{const u=new Map;s.forEach((f,l)=>{u.set(l,i.getNode(f.id))});const c=new Map;o.forEach((f,l)=>{c.set(l,new Set(Array.from(f).map(h=>i.getNode(h.id))))}),i.treeIndices.set(a,{parentMap:u,childrenMap:c})}),i}toJSON(){return JSON.stringify({nodes:this.getAllNodes(),edges:this.getAllEdges()})}createView(e){return new b0({graph:this,...e})}};/**
2
+ * @license
3
+ * Copyright 2019 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */const lc=Symbol("Comlink.proxy"),_0=Symbol("Comlink.endpoint"),E0=Symbol("Comlink.releaseProxy"),tn=Symbol("Comlink.finalizer"),tr=Symbol("Comlink.thrown"),hc=n=>typeof n=="object"&&n!==null||typeof n=="function",x0={canHandle:n=>hc(n)&&n[lc],serialize(n){const{port1:t,port2:e}=new MessageChannel;return rn(n,t),[e,[e]]},deserialize(n){return n.start(),R0(n)}},N0={canHandle:n=>hc(n)&&tr in n,serialize({value:n}){let t;return n instanceof Error?t={isError:!0,value:{message:n.message,name:n.name,stack:n.stack}}:t={isError:!1,value:n},[t,[]]},deserialize(n){throw n.isError?Object.assign(new Error(n.value.message),n.value):n.value}},dc=new Map([["proxy",x0],["throw",N0]]);function M0(n,t){for(const e of n)if(t===e||e==="*"||e instanceof RegExp&&e.test(t))return!0;return!1}function rn(n,t=globalThis,e=["*"]){t.addEventListener("message",function r(i){if(!i||!i.data)return;if(!M0(e,i.origin)){console.warn(`Invalid origin '${i.origin}' for comlink proxy`);return}const{id:s,type:o,path:a}=Object.assign({path:[]},i.data),u=(i.data.argumentList||[]).map(et);let c;try{const f=a.slice(0,-1).reduce((h,g)=>h[g],n),l=a.reduce((h,g)=>h[g],n);switch(o){case"GET":c=l;break;case"SET":f[a.slice(-1)[0]]=et(i.data.value),c=!0;break;case"APPLY":c=l.apply(f,u);break;case"CONSTRUCT":{const h=new l(...u);c=T0(h)}break;case"ENDPOINT":{const{port1:h,port2:g}=new MessageChannel;rn(n,g),c=I0(h,[h])}break;case"RELEASE":c=void 0;break;default:return}}catch(f){c={value:f,[tr]:0}}Promise.resolve(c).catch(f=>({value:f,[tr]:0})).then(f=>{const[l,h]=sr(f);t.postMessage(Object.assign(Object.assign({},l),{id:s}),h),o==="RELEASE"&&(t.removeEventListener("message",r),gc(t),tn in n&&typeof n[tn]=="function"&&n[tn]())}).catch(f=>{const[l,h]=sr({value:new TypeError("Unserializable return value"),[tr]:0});t.postMessage(Object.assign(Object.assign({},l),{id:s}),h)})}),t.start&&t.start()}function S0(n){return n.constructor.name==="MessagePort"}function gc(n){S0(n)&&n.close()}function R0(n,t){const e=new Map;return n.addEventListener("message",function(i){const{data:s}=i;if(!s||!s.id)return;const o=e.get(s.id);if(o)try{o(s)}finally{e.delete(s.id)}}),nn(n,e,[],t)}function rr(n){if(n)throw new Error("Proxy has been released and is not useable")}function pc(n){return ht(n,new Map,{type:"RELEASE"}).then(()=>{gc(n)})}const nr=new WeakMap,ir="FinalizationRegistry"in globalThis&&new FinalizationRegistry(n=>{const t=(nr.get(n)||0)-1;nr.set(n,t),t===0&&pc(n)});function q0(n,t){const e=(nr.get(t)||0)+1;nr.set(t,e),ir&&ir.register(n,t,n)}function O0(n){ir&&ir.unregister(n)}function nn(n,t,e=[],r=function(){}){let i=!1;const s=new Proxy(r,{get(o,a){if(rr(i),a===E0)return()=>{O0(s),pc(n),t.clear(),i=!0};if(a==="then"){if(e.length===0)return{then:()=>s};const u=ht(n,t,{type:"GET",path:e.map(c=>c.toString())}).then(et);return u.then.bind(u)}return nn(n,t,[...e,a])},set(o,a,u){rr(i);const[c,f]=sr(u);return ht(n,t,{type:"SET",path:[...e,a].map(l=>l.toString()),value:c},f).then(et)},apply(o,a,u){rr(i);const c=e[e.length-1];if(c===_0)return ht(n,t,{type:"ENDPOINT"}).then(et);if(c==="bind")return nn(n,t,e.slice(0,-1));const[f,l]=vc(u);return ht(n,t,{type:"APPLY",path:e.map(h=>h.toString()),argumentList:f},l).then(et)},construct(o,a){rr(i);const[u,c]=vc(a);return ht(n,t,{type:"CONSTRUCT",path:e.map(f=>f.toString()),argumentList:u},c).then(et)}});return q0(s,n),s}function A0(n){return Array.prototype.concat.apply([],n)}function vc(n){const t=n.map(sr);return[t.map(e=>e[0]),A0(t.map(e=>e[1]))]}const mc=new WeakMap;function I0(n,t){return mc.set(n,t),n}function T0(n){return Object.assign(n,{[lc]:!0})}function sr(n){for(const[t,e]of dc)if(e.canHandle(n)){const[r,i]=e.serialize(n);return[{type:"HANDLER",name:t,value:r},i]}return[{type:"RAW",value:n},mc.get(n)||[]]}function et(n){switch(n.type){case"HANDLER":return dc.get(n.name).deserialize(n.value);case"RAW":return n.value}}function ht(n,t,e,r){return new Promise(i=>{const s=k0();t.set(s,i),n.start&&n.start(),n.postMessage(Object.assign({id:s},e),r)})}function k0(){return new Array(4).fill(0).map(()=>Math.floor(Math.random()*Number.MAX_SAFE_INTEGER).toString(16)).join("-")}function Te(n){return typeof n=="function"}function j0(n){return n==null}function sn(n){return Array.isArray(n)}var dt=function(n){var t=typeof n;return n!==null&&t==="object"||t==="function"};function C0(n,t){if(n){var e;if(sn(n))for(var r=0,i=n.length;r<i&&(e=t(n[r],r),e!==!1);r++);else if(dt(n)){for(var s in n)if(n.hasOwnProperty(s)&&(e=t(n[s],s),e===!1))break}}}var P0=function(n){return typeof n=="object"&&n!==null},L0={}.toString,D0=function(n,t){return L0.call(n)==="[object "+t+"]"},on=function(n){if(!P0(n)||!D0(n,"Object"))return!1;if(Object.getPrototypeOf(n)===null)return!0;for(var t=n;Object.getPrototypeOf(t)!==null;)t=Object.getPrototypeOf(t);return Object.getPrototypeOf(n)===t};function kt(n){return typeof n=="string"}function V(n){return typeof n=="number"}var or=function(n){if(typeof n!="object"||n===null)return n;var t;if(sn(n)){t=[];for(var e=0,r=n.length;e<r;e++)typeof n[e]=="object"&&n[e]!=null?t[e]=or(n[e]):t[e]=n[e]}else{t={};for(var i in n)typeof n[i]=="object"&&n[i]!=null?t[i]=or(n[i]):t[i]=n[i]}return t},z0=5;function $0(n,t){if(Object.hasOwn)return Object.hasOwn(n,t);if(n==null)throw new TypeError("Cannot convert undefined or null to object");return Object.prototype.hasOwnProperty.call(Object(n),t)}function yc(n,t,e,r){e=e||0,r=r||z0;for(var i in t)if($0(t,i)){var s=t[i];s!==null&&on(s)?(on(n[i])||(n[i]={}),e<r?yc(n[i],s,e+1,r):n[i]=t[i]):sn(s)?(n[i]=[],n[i]=n[i].concat(s)):s!==void 0&&(n[i]=s)}}var wc=function(n){for(var t=[],e=1;e<arguments.length;e++)t[e-1]=arguments[e];for(var r=0;r<t.length;r+=1)yc(n,t[r]);return n},F0=Object.prototype.hasOwnProperty,bc=function(n,t){if(n===null||!on(n))return{};var e={};return C0(t,function(r){F0.call(n,r)&&(e[r]=n[r])}),e};const B0=(n,t)=>{if(n!=="next"&&n!=="prev")return t},_c=n=>{n.prev.next=n.next,n.next.prev=n.prev,delete n.next,delete n.prev};let U0=class{constructor(){const t={};t.prev=t,t.next=t.prev,this.shortcut=t}dequeue(){const t=this.shortcut,e=t.prev;if(e&&e!==t)return _c(e),e}enqueue(t){const e=this.shortcut;t.prev&&t.next&&_c(t),t.next=e.next,e.next.prev=t,e.next=t,t.prev=e}toString(){const t=[],e=this.shortcut;let r=e.prev;for(;r!==e;)t.push(JSON.stringify(r,B0)),r=r==null?void 0:r.prev;return`[${t.join(", ")}]`}},G0=class extends U0{};const V0=()=>1,W0=(n,t)=>{var e;if(n.getAllNodes().length<=1)return[];const r=K0(n,t||V0);return(e=Y0(r.graph,r.buckets,r.zeroIdx).map(s=>n.getRelatedEdges(s.v,"out").filter(({target:o})=>o===s.w)))===null||e===void 0?void 0:e.flat()},Y0=(n,t,e)=>{let r=[];const i=t[t.length-1],s=t[0];let o;for(;n.getAllNodes().length;){for(;o=s.dequeue();)an(n,t,e,o);for(;o=i.dequeue();)an(n,t,e,o);if(n.getAllNodes().length){for(let a=t.length-2;a>0;--a)if(o=t[a].dequeue(),o){r=r.concat(an(n,t,e,o,!0));break}}}return r},an=(n,t,e,r,i)=>{var s,o;const a=[];return n.hasNode(r.v)&&((s=n.getRelatedEdges(r.v,"in"))===null||s===void 0||s.forEach(u=>{const c=u.data.weight,f=n.getNode(u.source);i&&a.push({v:u.source,w:u.target,in:0,out:0}),f.data.out===void 0&&(f.data.out=0),f.data.out-=c,un(t,e,Object.assign({v:f.id},f.data))}),(o=n.getRelatedEdges(r.v,"out"))===null||o===void 0||o.forEach(u=>{const c=u.data.weight,f=u.target,l=n.getNode(f);l.data.in===void 0&&(l.data.in=0),l.data.in-=c,un(t,e,Object.assign({v:l.id},l.data))}),n.removeNode(r.v)),i?a:void 0},K0=(n,t)=>{const e=new ue;let r=0,i=0;n.getAllNodes().forEach(u=>{e.addNode({id:u.id,data:{v:u.id,in:0,out:0}})}),n.getAllEdges().forEach(u=>{const c=e.getRelatedEdges(u.source,"out").find(l=>l.target===u.target),f=(t==null?void 0:t(u))||1;c?e.updateEdgeData(c==null?void 0:c.id,Object.assign(Object.assign({},c.data),{weight:c.data.weight+f})):e.addEdge({id:u.id,source:u.source,target:u.target,data:{weight:f}}),i=Math.max(i,e.getNode(u.source).data.out+=f),r=Math.max(r,e.getNode(u.target).data.in+=f)});const s=[],o=i+r+3;for(let u=0;u<o;u++)s.push(new G0);const a=r+1;return e.getAllNodes().forEach(u=>{un(s,a,Object.assign({v:u.id},e.getNode(u.id).data))}),{buckets:s,zeroIdx:a,graph:e}},un=(n,t,e)=>{e.out?e.in?n[e.out-e.in+t].enqueue(e):n[n.length-1].enqueue(e):n[0].enqueue(e)},X0=(n,t)=>{const r=t==="greedy"?W0(n,(i=>s=>s.data.weight||1)()):Z0(n);r==null||r.forEach(i=>{const s=i.data;n.removeEdge(i.id),s.forwardName=i.data.name,s.reversed=!0,n.addEdge({id:i.id,source:i.target,target:i.source,data:Object.assign({},s)})})},Z0=n=>{const t=[],e={},r={},i=s=>{r[s]||(r[s]=!0,e[s]=!0,n.getRelatedEdges(s,"out").forEach(o=>{e[o.target]?t.push(o):i(o.target)}),delete e[s])};return n.getAllNodes().forEach(s=>i(s.id)),t},J0=n=>{n.getAllEdges().forEach(t=>{const e=t.data;if(e.reversed){n.removeEdge(t.id);const r=e.forwardName;delete e.reversed,delete e.forwardName,n.addEdge({id:t.id,source:t.target,target:t.source,data:Object.assign(Object.assign({},e),{forwardName:r})})}})},Q0=(n,t)=>Number(n)-Number(t),gt=(n,t,e,r)=>{let i;do i=`${r}${Math.random()}`;while(n.hasNode(i));return e.dummy=t,n.addNode({id:i,data:e}),i},H0=n=>{const t=new ue;return n.getAllNodes().forEach(e=>{t.addNode(Object.assign({},e))}),n.getAllEdges().forEach(e=>{const r=t.getRelatedEdges(e.source,"out").find(i=>i.target===e.target);r?t.updateEdgeData(r==null?void 0:r.id,Object.assign(Object.assign({},r.data),{weight:r.data.weight+e.data.weight||0,minlen:Math.max(r.data.minlen,e.data.minlen||1)})):t.addEdge({id:e.id,source:e.source,target:e.target,data:{weight:e.data.weight||0,minlen:e.data.minlen||1}})}),t},Ec=n=>{const t=new ue;return n.getAllNodes().forEach(e=>{n.getChildren(e.id).length||t.addNode(Object.assign({},e))}),n.getAllEdges().forEach(e=>{t.addEdge(e)}),t},em=(n,t)=>n==null?void 0:n.reduce((e,r,i)=>(e[r]=t[i],e),{}),xc=(n,t)=>{const e=Number(n.x),r=Number(n.y),i=Number(t.x)-e,s=Number(t.y)-r;let o=Number(n.width)/2,a=Number(n.height)/2;if(!i&&!s)return{x:0,y:0};let u,c;return Math.abs(s)*o>Math.abs(i)*a?(s<0&&(a=-a),u=a*i/s,c=a):(i<0&&(o=-o),u=o,c=o*s/i),{x:e+u,y:r+c}},jt=n=>{const t=[],e=Mc(n)+1;for(let r=0;r<e;r++)t.push([]);n.getAllNodes().forEach(r=>{const i=r.data.rank;i!==void 0&&t[i]&&t[i].push(r.id)});for(let r=0;r<e;r++)t[r]=t[r].sort((i,s)=>Q0(n.getNode(i).data.order,n.getNode(s).data.order));return t},tm=n=>{const t=n.getAllNodes().filter(r=>r.data.rank!==void 0).map(r=>r.data.rank),e=Math.min(...t);n.getAllNodes().forEach(r=>{r.data.hasOwnProperty("rank")&&e!==1/0&&(r.data.rank-=e)})},rm=(n,t=0)=>{const e=n.getAllNodes(),r=e.filter(a=>a.data.rank!==void 0).map(a=>a.data.rank),i=Math.min(...r),s=[];e.forEach(a=>{const u=(a.data.rank||0)-i;s[u]||(s[u]=[]),s[u].push(a.id)});let o=0;for(let a=0;a<s.length;a++){const u=s[a];u===void 0?a%t!==0&&(o-=1):o&&(u==null||u.forEach(c=>{const f=n.getNode(c);f&&(f.data.rank=f.data.rank||0,f.data.rank+=o)}))}},Nc=(n,t,e,r)=>{const i={width:0,height:0};return V(e)&&V(r)&&(i.rank=e,i.order=r),gt(n,"border",i,t)},Mc=n=>{let t;return n.getAllNodes().forEach(e=>{const r=e.data.rank;r!==void 0&&(t===void 0||r>t)&&(t=r)}),t||(t=0),t},nm=(n,t)=>{const e={lhs:[],rhs:[]};return n==null||n.forEach(r=>{t(r)?e.lhs.push(r):e.rhs.push(r)}),e},cn=(n,t)=>n.reduce((e,r)=>{const i=t(e),s=t(r);return i>s?r:e}),Sc=(n,t,e,r,i,s)=>{r.includes(t.id)||(r.push(t.id),e||s.push(t.id),i(t.id).forEach(o=>Sc(n,o,e,r,i,s)),e&&s.push(t.id))},Rc=(n,t,e,r)=>{const i=Array.isArray(t)?t:[t],s=u=>n.getNeighbors(u),o=[],a=[];return i.forEach(u=>{if(n.hasNode(u.id))Sc(n,u,e==="post",a,s,o);else throw new Error(`Graph does not have node: ${u}`)}),o},im=n=>{const t=e=>{const r=n.getChildren(e),i=n.getNode(e);if(r!=null&&r.length&&r.forEach(s=>t(s.id)),i.data.hasOwnProperty("minRank")){i.data.borderLeft=[],i.data.borderRight=[];for(let s=i.data.minRank,o=i.data.maxRank+1;s<o;s+=1)qc(n,"borderLeft","_bl",e,i,s),qc(n,"borderRight","_br",e,i,s)}};n.getRoots().forEach(e=>t(e.id))},qc=(n,t,e,r,i,s)=>{const o={rank:s,borderType:t,width:0,height:0},a=i.data[t][s-1],u=gt(n,"border",o,e);i.data[t][s]=u,n.setParent(u,r),a&&n.addEdge({id:`e${Math.random()}`,source:a,target:u,data:{weight:1}})},sm=(n,t)=>{const e=t.toLowerCase();(e==="lr"||e==="rl")&&Oc(n)},om=(n,t)=>{const e=t.toLowerCase();(e==="bt"||e==="rl")&&am(n),(e==="lr"||e==="rl")&&(um(n),Oc(n))},Oc=n=>{n.getAllNodes().forEach(t=>{Ac(t)}),n.getAllEdges().forEach(t=>{Ac(t)})},Ac=n=>{const t=n.data.width;n.data.width=n.data.height,n.data.height=t},am=n=>{n.getAllNodes().forEach(t=>{fn(t.data)}),n.getAllEdges().forEach(t=>{var e;(e=t.data.points)===null||e===void 0||e.forEach(r=>fn(r)),t.data.hasOwnProperty("y")&&fn(t.data)})},fn=n=>{n!=null&&n.y&&(n.y=-n.y)},um=n=>{n.getAllNodes().forEach(t=>{ln(t.data)}),n.getAllEdges().forEach(t=>{var e;(e=t.data.points)===null||e===void 0||e.forEach(r=>ln(r)),t.data.hasOwnProperty("x")&&ln(t.data)})},ln=n=>{const t=n.x;n.x=n.y,n.y=t},cm=n=>{const t=gt(n,"root",{},"_root"),e=fm(n);let r=Math.max(...Object.values(e));Math.abs(r)===1/0&&(r=1);const i=r-1,s=2*i+1;n.getAllEdges().forEach(a=>{a.data.minlen*=s});const o=lm(n)+1;return n.getRoots().forEach(a=>{Ic(n,t,s,o,i,e,a.id)}),{nestingRoot:t,nodeRankFactor:s}},Ic=(n,t,e,r,i,s,o)=>{const a=n.getChildren(o);if(!(a!=null&&a.length)){o!==t&&n.addEdge({id:`e${Math.random()}`,source:t,target:o,data:{weight:0,minlen:e}});return}const u=Nc(n,"_bt"),c=Nc(n,"_bb"),f=n.getNode(o);n.setParent(u,o),f.data.borderTop=u,n.setParent(c,o),f.data.borderBottom=c,a==null||a.forEach(l=>{Ic(n,t,e,r,i,s,l.id);const h=l.data.borderTop?l.data.borderTop:l.id,g=l.data.borderBottom?l.data.borderBottom:l.id,p=l.data.borderTop?r:2*r,v=h!==g?1:i-s[o]+1;n.addEdge({id:`e${Math.random()}`,source:u,target:h,data:{minlen:v,weight:p,nestingEdge:!0}}),n.addEdge({id:`e${Math.random()}`,source:g,target:c,data:{minlen:v,weight:p,nestingEdge:!0}})}),n.getParent(o)||n.addEdge({id:`e${Math.random()}`,source:t,target:u,data:{weight:0,minlen:i+s[o]}})},fm=n=>{const t={},e=(r,i)=>{const s=n.getChildren(r);s==null||s.forEach(o=>e(o.id,i+1)),t[r]=i};return n.getRoots().forEach(r=>e(r.id,1)),t},lm=n=>{let t=0;return n.getAllEdges().forEach(e=>{t+=e.data.weight}),t},hm=(n,t)=>{t&&n.removeNode(t),n.getAllEdges().forEach(e=>{e.data.nestingEdge&&n.removeEdge(e.id)})},dm="edge",Tc="edge-label",gm=(n,t)=>{n.getAllEdges().forEach(e=>pm(n,e,t))},pm=(n,t,e)=>{let r=t.source,i=n.getNode(r).data.rank;const s=t.target,o=n.getNode(s).data.rank,a=t.data.labelRank;if(o===i+1)return;n.removeEdge(t.id);let u,c,f;for(f=0,++i;i<o;++f,++i)t.data.points=[],c={originalEdge:t,width:0,height:0,rank:i},u=gt(n,dm,c,"_d"),i===a&&(c.width=t.data.width,c.height=t.data.height,c.dummy=Tc,c.labelpos=t.data.labelpos),n.addEdge({id:`e${Math.random()}`,source:r,target:u,data:{weight:t.data.weight}}),f===0&&e.push(u),r=u;n.addEdge({id:`e${Math.random()}`,source:r,target:s,data:{weight:t.data.weight}})},vm=(n,t)=>{t.forEach(e=>{let r=n.getNode(e);const{data:i}=r,s=i.originalEdge;let o;s&&n.addEdge(s);let a=e;for(;r.data.dummy;)o=n.getSuccessors(a)[0],n.removeNode(a),s.data.points.push({x:r.data.x,y:r.data.y}),r.data.dummy===Tc&&(s.data.x=r.data.x,s.data.y=r.data.y,s.data.width=r.data.width,s.data.height=r.data.height),a=o.id,r=n.getNode(a)})},mm=(n,t,e)=>{const r={};let i;e==null||e.forEach(s=>{let o=n.getParent(s),a,u;for(;o;){if(a=n.getParent(o.id),a?(u=r[a.id],r[a.id]=o.id):(u=i,i=o.id),u&&u!==o.id){t.hasNode(u)||t.addNode({id:u,data:{}}),t.hasNode(o.id)||t.addNode({id:o.id,data:{}}),t.hasEdge(`e${u}-${o.id}`)||t.addEdge({id:`e${u}-${o.id}`,source:u,target:o.id,data:{}});return}o=a}})},ym=(n,t,e)=>{const r=wm(n),i=new ue({tree:[{id:r,children:[],data:{}}]});return n.getAllNodes().forEach(s=>{const o=n.getParent(s.id);(s.data.rank===t||s.data.minRank<=t&&t<=s.data.maxRank)&&(i.hasNode(s.id)||i.addNode(Object.assign({},s)),o!=null&&o.id&&!i.hasNode(o==null?void 0:o.id)&&i.addNode(Object.assign({},o)),i.setParent(s.id,(o==null?void 0:o.id)||r),n.getRelatedEdges(s.id,e).forEach(a=>{const u=a.source===s.id?a.target:a.source;i.hasNode(u)||i.addNode(Object.assign({},n.getNode(u)));const c=i.getRelatedEdges(u,"out").find(({target:l})=>l===s.id),f=c!==void 0?c.data.weight:0;c?i.updateEdgeData(c.id,Object.assign(Object.assign({},c.data),{weight:a.data.weight+f})):i.addEdge({id:a.id,source:u,target:s.id,data:{weight:a.data.weight+f}})}),s.data.hasOwnProperty("minRank")&&i.updateNodeData(s.id,Object.assign(Object.assign({},s.data),{borderLeft:s.data.borderLeft[t],borderRight:s.data.borderRight[t]})))}),i},wm=n=>{let t;for(;n.hasNode(t=`_root${Math.random()}`););return t},bm=(n,t,e)=>{const r=em(e,e.map((f,l)=>l)),s=t.map(f=>{const l=n.getRelatedEdges(f,"out").map(h=>({pos:r[h.target]||0,weight:h.data.weight}));return l==null?void 0:l.sort((h,g)=>h.pos-g.pos)}).flat().filter(f=>f!==void 0);let o=1;for(;o<e.length;)o<<=1;const a=2*o-1;o-=1;const u=Array(a).fill(0,0,a);let c=0;return s==null||s.forEach(f=>{if(f){let l=f.pos+o;u[l]+=f.weight;let h=0;for(;l>0;)l%2&&(h+=u[l+1]),l=l-1>>1,u[l]+=f.weight;c+=f.weight*h}}),c},kc=(n,t)=>{let e=0;for(let r=1;r<(t==null?void 0:t.length);r+=1)e+=bm(n,t[r-1],t[r]);return e},jc=n=>{const t={},e=n.getAllNodes(),r=e.map(c=>{var f;return(f=c.data.rank)!==null&&f!==void 0?f:-1/0}),i=Math.max(...r),s=[];for(let c=0;c<i+1;c++)s.push([]);const o=e.sort((c,f)=>n.getNode(c.id).data.rank-n.getNode(f.id).data.rank),u=o.filter(c=>n.getNode(c.id).data.fixorder!==void 0).sort((c,f)=>n.getNode(c.id).data.fixorder-n.getNode(f.id).data.fixorder);return u==null||u.forEach(c=>{isNaN(n.getNode(c.id).data.rank)||s[n.getNode(c.id).data.rank].push(c.id),t[c.id]=!0}),o==null||o.forEach(c=>n.dfsTree(c.id,f=>{if(t.hasOwnProperty(f.id))return!0;t[f.id]=!0,isNaN(f.data.rank)||s[f.data.rank].push(f.id)})),s},_m=(n,t)=>t.map(e=>{const r=n.getRelatedEdges(e,"in");if(!(r!=null&&r.length))return{v:e};const i={sum:0,weight:0};return r==null||r.forEach(s=>{const o=n.getNode(s.source);i.sum+=s.data.weight*o.data.order,i.weight+=s.data.weight}),{v:e,barycenter:i.sum/i.weight,weight:i.weight}}),Em=(n,t)=>{var e,r,i;const s={};n==null||n.forEach((a,u)=>{s[a.v]={i:u,indegree:0,in:[],out:[],vs:[a.v]};const c=s[a.v];a.barycenter!==void 0&&(c.barycenter=a.barycenter,c.weight=a.weight)}),(e=t.getAllEdges())===null||e===void 0||e.forEach(a=>{const u=s[a.source],c=s[a.target];u!==void 0&&c!==void 0&&(c.indegree++,u.out.push(s[a.target]))});const o=(i=(r=Object.values(s)).filter)===null||i===void 0?void 0:i.call(r,a=>!a.indegree);return xm(o)},xm=n=>{var t,e;const r=[],i=u=>c=>{c.merged||(c.barycenter===void 0||u.barycenter===void 0||c.barycenter>=u.barycenter)&&Nm(u,c)},s=u=>c=>{c.in.push(u),--c.indegree===0&&n.push(c)};for(;n!=null&&n.length;){const u=n.pop();r.push(u),(t=u.in.reverse())===null||t===void 0||t.forEach(c=>i(u)(c)),(e=u.out)===null||e===void 0||e.forEach(c=>s(u)(c))}const o=r.filter(u=>!u.merged),a=["vs","i","barycenter","weight"];return o.map(u=>{const c={};return a==null||a.forEach(f=>{u[f]!==void 0&&(c[f]=u[f])}),c})},Nm=(n,t)=>{var e;let r=0,i=0;n.weight&&(r+=n.barycenter*n.weight,i+=n.weight),t.weight&&(r+=t.barycenter*t.weight,i+=t.weight),n.vs=(e=t.vs)===null||e===void 0?void 0:e.concat(n.vs),n.barycenter=r/i,n.weight=i,n.i=Math.min(t.i,n.i),t.merged=!0},Mm=(n,t,e,r)=>{const i=nm(n,h=>{const g=h.hasOwnProperty("fixorder")&&!isNaN(h.fixorder);return r?!g&&h.hasOwnProperty("barycenter"):g||h.hasOwnProperty("barycenter")}),s=i.lhs,o=i.rhs.sort((h,g)=>-h.i- -g.i),a=[];let u=0,c=0,f=0;s==null||s.sort(Sm(!!t,!!e)),f=Cc(a,o,f),s==null||s.forEach(h=>{var g;f+=(g=h.vs)===null||g===void 0?void 0:g.length,a.push(h.vs),u+=h.barycenter*h.weight,c+=h.weight,f=Cc(a,o,f)});const l={vs:a.flat()};return c&&(l.barycenter=u/c,l.weight=c),l},Cc=(n,t,e)=>{let r=e,i;for(;t.length&&(i=t[t.length-1]).i<=r;)t.pop(),n==null||n.push(i.vs),r++;return r},Sm=(n,t)=>(e,r)=>{if(e.fixorder!==void 0&&r.fixorder!==void 0)return e.fixorder-r.fixorder;if(e.barycenter<r.barycenter)return-1;if(e.barycenter>r.barycenter)return 1;if(t&&e.order!==void 0&&r.order!==void 0){if(e.order<r.order)return-1;if(e.order>r.order)return 1}return n?r.i-e.i:e.i-r.i},Pc=(n,t,e,r,i,s)=>{var o,a,u,c;let f=n.getChildren(t).map(y=>y.id);const l=n.getNode(t),h=l?l.data.borderLeft:void 0,g=l?l.data.borderRight:void 0,p={};h&&(f=f==null?void 0:f.filter(y=>y!==h&&y!==g));const v=_m(n,f||[]);v==null||v.forEach(y=>{var w;if(!((w=n.getChildren(y.v))===null||w===void 0)&&w.length){const b=Pc(n,y.v,e,r,s);p[y.v]=b,b.hasOwnProperty("barycenter")&&qm(y,b)}});const m=Em(v,e);Rm(m,p),(o=m.filter(y=>y.vs.length>0))===null||o===void 0||o.forEach(y=>{const w=n.getNode(y.vs[0]);w&&(y.fixorder=w.data.fixorder,y.order=w.data.order)});const d=Mm(m,r,i,s);if(h&&(d.vs=[h,d.vs,g].flat(),!((a=n.getPredecessors(h))===null||a===void 0)&&a.length)){const y=n.getNode(((u=n.getPredecessors(h))===null||u===void 0?void 0:u[0].id)||""),w=n.getNode(((c=n.getPredecessors(g))===null||c===void 0?void 0:c[0].id)||"");d.hasOwnProperty("barycenter")||(d.barycenter=0,d.weight=0),d.barycenter=(d.barycenter*d.weight+y.data.order+w.data.order)/(d.weight+2),d.weight+=2}return d},Rm=(n,t)=>{n==null||n.forEach(e=>{var r;const i=(r=e.vs)===null||r===void 0?void 0:r.map(s=>t[s]?t[s].vs:s);e.vs=i.flat()})},qm=(n,t)=>{n.barycenter!==void 0?(n.barycenter=(n.barycenter*n.weight+t.barycenter*t.weight)/(n.weight+t.weight),n.weight+=t.weight):(n.barycenter=t.barycenter,n.weight=t.weight)},Om=(n,t)=>{const e=Mc(n),r=[],i=[];for(let f=1;f<e+1;f++)r.push(f);for(let f=e-1;f>-1;f--)i.push(f);const s=Lc(n,r,"in"),o=Lc(n,i,"out");let a=jc(n);hn(n,a);let u=Number.POSITIVE_INFINITY,c;for(let f=0,l=0;l<4;++f,++l){Dc(f%2?s:o,f%4>=2,!1,t),a=jt(n);const h=kc(n,a);h<u&&(l=0,c=or(a),u=h)}a=jc(n),hn(n,a);for(let f=0,l=0;l<4;++f,++l){Dc(f%2?s:o,f%4>=2,!0,t),a=jt(n);const h=kc(n,a);h<u&&(l=0,c=or(a),u=h)}hn(n,c)},Lc=(n,t,e)=>t.map(r=>ym(n,r,e)),Dc=(n,t,e,r)=>{const i=new ue;n==null||n.forEach(s=>{var o;const a=s.getRoots()[0].id,u=Pc(s,a,i,t,e,r);for(let c=0;c<((o=u.vs)===null||o===void 0?void 0:o.length);c++){const f=s.getNode(u.vs[c]);f&&(f.data.order=c)}mm(s,i,u.vs)})},hn=(n,t)=>{t==null||t.forEach(e=>{e==null||e.forEach((r,i)=>{n.getNode(r).data.order=i})})},Am=(n,t)=>{const r=n.getAllNodes().filter(o=>{var a;return!(!((a=n.getChildren(o.id))===null||a===void 0)&&a.length)}).map(o=>o.data.rank),i=Math.max(...r),s=[];for(let o=0;o<i+1;o++)s[o]=[];t==null||t.forEach(o=>{const a=n.getNode(o);!a||a.data.dummy||isNaN(a.data.rank)||(a.data.fixorder=s[a.data.rank].length,s[a.data.rank].push(o))})},Im=n=>{const t={};let e=0;const r=i=>{const s=e;n.getChildren(i).forEach(o=>r(o.id)),t[i]={low:s,lim:e++}};return n.getRoots().forEach(i=>r(i.id)),t},Tm=(n,t,e,r)=>{var i,s;const o=[],a=[],u=Math.min(t[e].low,t[r].low),c=Math.max(t[e].lim,t[r].lim);let f,l;f=e;do f=(i=n.getParent(f))===null||i===void 0?void 0:i.id,o.push(f);while(f&&(t[f].low>u||c>t[f].lim));for(l=f,f=r;f&&f!==l;)a.push(f),f=(s=n.getParent(f))===null||s===void 0?void 0:s.id;return{lca:l,path:o.concat(a.reverse())}},km=(n,t)=>{const e=Im(n);t.forEach(r=>{var i,s;let o=r,a=n.getNode(o);const u=a.data.originalEdge;if(!u)return;const c=Tm(n,e,u.source,u.target),f=c.path,l=c.lca;let h=0,g=f[h],p=!0;for(;o!==u.target;){if(a=n.getNode(o),p){for(;g!==l&&((i=n.getNode(g))===null||i===void 0?void 0:i.data.maxRank)<a.data.rank;)h++,g=f[h];g===l&&(p=!1)}if(!p){for(;h<f.length-1&&((s=n.getNode(f[h+1]))===null||s===void 0?void 0:s.data.minRank)<=a.data.rank;)h++;g=f[h]}n.hasNode(g)&&n.setParent(o,g),o=n.getSuccessors(o)[0].id}})},jm=(n,t)=>{const e={},r=(i,s)=>{let o=0,a=0;const u=i.length,c=s==null?void 0:s[(s==null?void 0:s.length)-1];return s==null||s.forEach((f,l)=>{var h;const g=Pm(n,f),p=g?n.getNode(g.id).data.order:u;(g||f===c)&&((h=s.slice(a,l+1))===null||h===void 0||h.forEach(v=>{var m;(m=n.getPredecessors(v))===null||m===void 0||m.forEach(d=>{var y;const w=n.getNode(d.id),b=w.data.order;(b<o||p<b)&&!(w.data.dummy&&(!((y=n.getNode(v))===null||y===void 0)&&y.data.dummy))&&zc(e,d.id,v)})}),a=l+1,o=p)}),s};return t!=null&&t.length&&t.reduce(r),e},Cm=(n,t)=>{const e={};function r(a,u,c,f,l){var h,g;let p;for(let v=u;v<c;v++)p=a[v],!((h=n.getNode(p))===null||h===void 0)&&h.data.dummy&&((g=n.getPredecessors(p))===null||g===void 0||g.forEach(m=>{const d=n.getNode(m.id);d.data.dummy&&(d.data.order<f||d.data.order>l)&&zc(e,m.id,p)}))}function i(a){return JSON.stringify(a.slice(1))}function s(a,u){const c=i(a);u.get(c)||(r(...a),u.set(c,!0))}const o=(a,u)=>{let c=-1,f,l=0;const h=new Map;return u==null||u.forEach((g,p)=>{var v;if(((v=n.getNode(g))===null||v===void 0?void 0:v.data.dummy)==="border"){const m=n.getPredecessors(g)||[];m.length&&(f=n.getNode(m[0].id).data.order,s([u,l,p,c,f],h),l=p,c=f)}s([u,l,u.length,f,a.length],h)}),u};return t!=null&&t.length&&t.reduce(o),e},Pm=(n,t)=>{var e,r;if(!((e=n.getNode(t))===null||e===void 0)&&e.data.dummy)return(r=n.getPredecessors(t))===null||r===void 0?void 0:r.find(i=>n.getNode(i.id).data.dummy)},zc=(n,t,e)=>{let r=t,i=e;if(r>i){const o=r;r=i,i=o}let s=n[r];s||(n[r]=s={}),s[i]=!0},Lm=(n,t,e)=>{let r=t,i=e;if(r>i){const s=t;r=i,i=s}return!!n[r]},Dm=(n,t,e,r)=>{const i={},s={},o={};return t==null||t.forEach(a=>{a==null||a.forEach((u,c)=>{i[u]=u,s[u]=u,o[u]=c})}),t==null||t.forEach(a=>{let u=-1;a==null||a.forEach(c=>{let f=r(c).map(l=>l.id);if(f.length){f=f.sort((h,g)=>o[h]-o[g]);const l=(f.length-1)/2;for(let h=Math.floor(l),g=Math.ceil(l);h<=g;++h){const p=f[h];s[c]===c&&u<o[p]&&!Lm(e,c,p)&&(s[p]=c,s[c]=i[c]=i[p],u=o[p])}}})}),{root:i,align:s}},zm=(n,t,e,r,i,s,o)=>{var a;const u={},c=$m(n,t,e,i,s,o),f=o?"borderLeft":"borderRight",l=(p,v)=>{let m=c.getAllNodes(),d=m.pop();const y={};for(;d;)y[d.id]?p(d.id):(y[d.id]=!0,m.push(d),m=m.concat(v(d.id))),d=m.pop()},h=p=>{u[p]=(c.getRelatedEdges(p,"in")||[]).reduce((v,m)=>Math.max(v,(u[m.source]||0)+m.data.weight),0)},g=p=>{const v=(c.getRelatedEdges(p,"out")||[]).reduce((d,y)=>Math.min(d,(u[y.target]||0)-y.data.weight),Number.POSITIVE_INFINITY),m=n.getNode(p);v!==Number.POSITIVE_INFINITY&&m.data.borderType!==f&&(u[p]=Math.max(u[p],v))};return l(h,c.getPredecessors.bind(c)),l(g,c.getSuccessors.bind(c)),(a=Object.values(r))===null||a===void 0||a.forEach(p=>{u[p]=u[e[p]]}),u},$m=(n,t,e,r,i,s)=>{const o=new ue,a=Gm(r,i,s);return t==null||t.forEach(u=>{let c;u==null||u.forEach(f=>{const l=e[f];if(o.hasNode(l)||o.addNode({id:l,data:{}}),c){const h=e[c],g=o.getRelatedEdges(h,"out").find(p=>p.target===l);g?o.updateEdgeData(g.id,Object.assign(Object.assign({},g.data),{weight:Math.max(a(n,f,c),g.data.weight||0)})):o.addEdge({id:`e${Math.random()}`,source:h,target:l,data:{weight:Math.max(a(n,f,c),0)}})}c=f})}),o},Fm=(n,t)=>cn(Object.values(t),e=>{var r;let i=Number.NEGATIVE_INFINITY,s=Number.POSITIVE_INFINITY;return(r=Object.keys(e))===null||r===void 0||r.forEach(o=>{const a=e[o],u=Vm(n,o)/2;i=Math.max(a+u,i),s=Math.min(a-u,s)}),i-s});function Bm(n,t){const e=Object.values(t),r=Math.min(...e),i=Math.max(...e);["u","d"].forEach(s=>{["l","r"].forEach(o=>{const a=s+o,u=n[a];let c;if(u===t)return;const f=Object.values(u);c=o==="l"?r-Math.min(...f):i-Math.max(...f),c&&(n[a]={},Object.keys(u).forEach(l=>{n[a][l]=u[l]+c}))})})}const Um=(n,t)=>{const e={};return Object.keys(n.ul).forEach(r=>{if(t)e[r]=n[t.toLowerCase()][r];else{const i=Object.values(n).map(s=>s[r]);e[r]=(i[0]+i[1])/2}}),e},Gm=(n,t,e)=>(r,i,s)=>{const o=r.getNode(i),a=r.getNode(s);let u=0,c=0;if(u+=o.data.width/2,o.data.hasOwnProperty("labelpos"))switch((o.data.labelpos||"").toLowerCase()){case"l":c=-o.data.width/2;break;case"r":c=o.data.width/2;break}if(c&&(u+=e?c:-c),c=0,u+=(o.data.dummy?t:n)/2,u+=(a.data.dummy?t:n)/2,u+=a.data.width/2,a.data.labelpos)switch((a.data.labelpos||"").toLowerCase()){case"l":c=a.data.width/2;break;case"r":c=-a.data.width/2;break}return c&&(u+=e?c:-c),c=0,u},Vm=(n,t)=>n.getNode(t).data.width||0,Wm=(n,t)=>{const{ranksep:e=0}=t||{},r=jt(n);let i=0;r==null||r.forEach(s=>{const o=s.map(u=>n.getNode(u).data.height),a=Math.max(...o,0);s==null||s.forEach(u=>{n.getNode(u).data.y=i+a/2}),i+=a+e})},Ym=(n,t)=>{const{align:e,nodesep:r=0,edgesep:i=0}=t||{},s=jt(n),o=Object.assign(jm(n,s),Cm(n,s)),a={};let u=[];["u","d"].forEach(f=>{u=f==="u"?s:Object.values(s).reverse(),["l","r"].forEach(l=>{l==="r"&&(u=u.map(v=>Object.values(v).reverse()));const h=(f==="u"?n.getPredecessors:n.getSuccessors).bind(n),g=Dm(n,u,o,h),p=zm(n,u,g.root,g.align,r,i,l==="r");l==="r"&&Object.keys(p).forEach(v=>p[v]=-p[v]),a[f+l]=p})});const c=Fm(n,a);return c&&Bm(a,c),Um(a,e)},Km=(n,t)=>{var e;const r=Ec(n);Wm(r,t);const i=Ym(r,t);(e=Object.keys(i))===null||e===void 0||e.forEach(s=>{r.getNode(s).data.x=i[s]})},$c=n=>{const t={},e=r=>{var i;const s=n.getNode(r);if(!s)return 0;if(t[r])return s.data.rank;t[r]=!0;let o;return(i=n.getRelatedEdges(r,"out"))===null||i===void 0||i.forEach(a=>{const u=e(a.target),c=a.data.minlen,f=u-c;f&&(o===void 0||f<o)&&(o=f)}),o||(o=0),s.data.rank=o,o};n.getAllNodes().filter(r=>n.getRelatedEdges(r.id,"in").length===0).forEach(r=>e(r.id))},Xm=n=>{const t={};let e;const r=o=>{var a;const u=n.getNode(o);if(!u)return 0;if(t[o])return u.data.rank;t[o]=!0;let c;return(a=n.getRelatedEdges(o,"out"))===null||a===void 0||a.forEach(f=>{const l=r(f.target),h=f.data.minlen,g=l-h;g&&(c===void 0||g<c)&&(c=g)}),c||(c=0),(e===void 0||c<e)&&(e=c),u.data.rank=c,c};n.getAllNodes().filter(o=>n.getRelatedEdges(o.id,"in").length===0).forEach(o=>{o&&r(o.id)}),e===void 0&&(e=0);const i={},s=(o,a)=>{var u;const c=n.getNode(o),f=isNaN(c.data.layer)?a:c.data.layer;(c.data.rank===void 0||c.data.rank<f)&&(c.data.rank=f),!i[o]&&(i[o]=!0,(u=n.getRelatedEdges(o,"out"))===null||u===void 0||u.forEach(l=>{s(l.target,f+l.data.minlen)}))};n.getAllNodes().forEach(o=>{const a=o.data;a&&(isNaN(a.layer)?a.rank-=e:s(o.id,a.layer))})},Ge=(n,t)=>n.getNode(t.target).data.rank-n.getNode(t.source).data.rank-t.data.minlen,Zm=n=>{const t=new ue({tree:[]}),e=n.getAllNodes()[0],r=n.getAllNodes().length;t.addNode(e);let i,s;for(;Jm(t,n)<r;)i=Fc(t,n),s=t.hasNode(i.source)?Ge(n,i):-Ge(n,i),Bc(t,n,s);return t},Jm=(n,t)=>{const e=r=>{t.getRelatedEdges(r,"both").forEach(i=>{const s=i.source,o=r===s?i.target:s;!n.hasNode(o)&&!Ge(t,i)&&(n.addNode({id:o,data:{}}),n.addEdge({id:i.id,source:r,target:o,data:{}}),e(o))})};return n.getAllNodes().forEach(r=>e(r.id)),n.getAllNodes().length},Qm=n=>{const t=new ue({tree:[]}),e=n.getAllNodes()[0],r=n.getAllNodes().length;t.addNode(e);let i,s;for(;Hm(t,n)<r;)i=Fc(t,n),s=t.hasNode(i.source)?Ge(n,i):-Ge(n,i),Bc(t,n,s);return t},Hm=(n,t)=>{const e=r=>{var i;(i=t.getRelatedEdges(r,"both"))===null||i===void 0||i.forEach(s=>{const o=s.source,a=r===o?s.target:o;!n.hasNode(a)&&(t.getNode(a).data.layer!==void 0||!Ge(t,s))&&(n.addNode({id:a,data:{}}),n.addEdge({id:s.id,source:r,target:a,data:{}}),e(a))})};return n.getAllNodes().forEach(r=>e(r.id)),n.getAllNodes().length},Fc=(n,t)=>cn(t.getAllEdges(),e=>n.hasNode(e.source)!==n.hasNode(e.target)?Ge(t,e):1/0),Bc=(n,t,e)=>{n.getAllNodes().forEach(r=>{const i=t.getNode(r.id);i.data.rank||(i.data.rank=0),i.data.rank+=e})},ey=n=>{const t=H0(n);$c(t);const e=Zm(t);Gc(e),Uc(e,t);let r,i;for(;r=ny(e);)i=iy(e,t,r),sy(e,t,r,i)},Uc=(n,t)=>{let e=Rc(n,n.getAllNodes(),"post");e=e.slice(0,(e==null?void 0:e.length)-1),e.forEach(r=>{ty(n,t,r)})},ty=(n,t,e)=>{const i=n.getNode(e).data.parent,s=n.getRelatedEdges(e,"both").find(o=>o.target===i||o.source===i);s.data.cutvalue=ry(n,t,e)},ry=(n,t,e)=>{const i=n.getNode(e).data.parent;let s=!0,o=t.getRelatedEdges(e,"out").find(u=>u.target===i),a=0;return o||(s=!1,o=t.getRelatedEdges(i,"out").find(u=>u.target===e)),a=o.data.weight,t.getRelatedEdges(e,"both").forEach(u=>{const c=u.source===e,f=c?u.target:u.source;if(f!==i){const l=c===s,h=u.data.weight;if(a+=l?h:-h,ay(n,e,f)){const g=n.getRelatedEdges(e,"both").find(p=>p.source===f||p.target===f).data.cutvalue;a+=l?-g:g}}}),a},Gc=(n,t=n.getAllNodes()[0].id)=>{Vc(n,{},1,t)},Vc=(n,t,e,r,i)=>{var s;const o=e;let a=e;const u=n.getNode(r);return t[r]=!0,(s=n.getNeighbors(r))===null||s===void 0||s.forEach(c=>{t[c.id]||(a=Vc(n,t,a,c.id,r))}),u.data.low=o,u.data.lim=a++,i?u.data.parent=i:delete u.data.parent,a},ny=n=>n.getAllEdges().find(t=>t.data.cutvalue<0),iy=(n,t,e)=>{let r=e.source,i=e.target;t.getRelatedEdges(r,"out").find(f=>f.target===i)||(r=e.target,i=e.source);const s=n.getNode(r),o=n.getNode(i);let a=s,u=!1;s.data.lim>o.data.lim&&(a=o,u=!0);const c=t.getAllEdges().filter(f=>u===Wc(n.getNode(f.source),a)&&u!==Wc(n.getNode(f.target),a));return cn(c,f=>Ge(t,f))},sy=(n,t,e,r)=>{const i=n.getRelatedEdges(e.source,"both").find(s=>s.source===e.target||s.target===e.target);i&&n.removeEdge(i.id),n.addEdge({id:`e${Math.random()}`,source:r.source,target:r.target,data:{}}),Gc(n),Uc(n,t),oy(n,t)},oy=(n,t)=>{const e=n.getAllNodes().find(i=>!i.data.parent);let r=Rc(n,e,"pre");r=r.slice(1),r.forEach(i=>{const s=n.getNode(i).data.parent;let o=t.getRelatedEdges(i,"out").find(u=>u.target===s),a=!1;!o&&t.hasNode(s)&&(o=t.getRelatedEdges(s,"out").find(u=>u.target===i),a=!0),t.getNode(i).data.rank=(t.hasNode(s)&&t.getNode(s).data.rank||0)+(a?o==null?void 0:o.data.minlen:-(o==null?void 0:o.data.minlen))})},ay=(n,t,e)=>n.getRelatedEdges(t,"both").find(r=>r.source===e||r.target===e),Wc=(n,t)=>t.data.low<=n.data.lim&&n.data.lim<=t.data.lim,uy=(n,t)=>{switch(t){case"network-simplex":fy(n);break;case"tight-tree":Yc(n);break;case"longest-path":cy(n);break;default:Yc(n)}},cy=$c,Yc=n=>{Xm(n),Qm(n)},fy=n=>{ey(n)},ly=(n,t)=>{const{edgeLabelSpace:e,keepNodeOrder:r,prevGraph:i,rankdir:s,ranksep:o}=t;!r&&i&&dy(n,i);const a=wy(n);e&&(t.ranksep=by(a,{rankdir:s,ranksep:o}));let u;try{u=hy(a,t)}catch(c){if(c.message==="Not possible to find intersection inside of the rectangle"){console.error(`The following error may be caused by improper layer setting, please make sure your manual layer setting does not violate the graph's structure:
6
+ `,c);return}throw c}return gy(n,a),u},hy=(n,t)=>{const{acyclicer:e,ranker:r,rankdir:i="tb",nodeOrder:s,keepNodeOrder:o,align:a,nodesep:u=50,edgesep:c=20,ranksep:f=50}=t;Oy(n),X0(n,e);const{nestingRoot:l,nodeRankFactor:h}=cm(n);uy(Ec(n),r),_y(n),rm(n,h),hm(n,l),tm(n),Ey(n),xy(n);const g=[];gm(n,g),km(n,g),im(n),o&&Am(n,s),Om(n,o),Ay(n),sm(n,i),Km(n,{align:a,nodesep:u,edgesep:c,ranksep:f}),Iy(n),qy(n),vm(n,g),Sy(n),om(n,i);const{width:p,height:v}=Ny(n);return My(n),Ry(n),J0(n),{width:p,height:v}},dy=(n,t)=>{n.getAllNodes().forEach(e=>{const r=n.getNode(e.id);if(t.hasNode(e.id)){const i=t.getNode(e.id);r.data.fixorder=i.data._order,delete i.data._order}else delete r.data.fixorder})},gy=(n,t)=>{n.getAllNodes().forEach(e=>{var r;const i=n.getNode(e.id);if(i){const s=t.getNode(e.id);i.data.x=s.data.x,i.data.y=s.data.y,i.data._order=s.data.order,i.data._rank=s.data.rank,!((r=t.getChildren(e.id))===null||r===void 0)&&r.length&&(i.data.width=s.data.width,i.data.height=s.data.height)}}),n.getAllEdges().forEach(e=>{const r=n.getEdge(e.id),i=t.getEdge(e.id);r.data.points=i?i.data.points:[],i&&i.data.hasOwnProperty("x")&&(r.data.x=i.data.x,r.data.y=i.data.y)})},py=["width","height","layer","fixorder"],vy={width:0,height:0},my=["minlen","weight","width","height","labeloffset"],yy={minlen:1,weight:1,width:0,height:0,labeloffset:10,labelpos:"r"},dn=["labelpos"],wy=n=>{const t=new ue({tree:[]});return n.getAllNodes().forEach(e=>{const r=Xc(n.getNode(e.id).data),i=Object.assign(Object.assign({},vy),r),s=Kc(i,py);t.hasNode(e.id)||t.addNode({id:e.id,data:Object.assign({},s)});const o=n.hasTreeStructure("combo")?n.getParent(e.id,"combo"):n.getParent(e.id);j0(o)||(t.hasNode(o.id)||t.addNode(Object.assign({},o)),t.setParent(e.id,o.id))}),n.getAllEdges().forEach(e=>{const r=Xc(n.getEdge(e.id).data),i={};dn==null||dn.forEach(s=>{r[s]!==void 0&&(i[s]=r[s])}),t.addEdge({id:e.id,source:e.source,target:e.target,data:Object.assign({},yy,Kc(r,my),i)})}),t},by=(n,t)=>{const{ranksep:e=0,rankdir:r}=t;return n.getAllNodes().forEach(i=>{isNaN(i.data.layer)||i.data.layer||(i.data.layer=0)}),n.getAllEdges().forEach(i=>{var s;i.data.minlen*=2,((s=i.data.labelpos)===null||s===void 0?void 0:s.toLowerCase())!=="c"&&(r==="TB"||r==="BT"?i.data.width+=i.data.labeloffset:i.data.height+=i.data.labeloffset)}),e/2},_y=n=>{n.getAllEdges().forEach(t=>{if(t.data.width&&t.data.height){const e=n.getNode(t.source),r=n.getNode(t.target),i={e:t,rank:(r.data.rank-e.data.rank)/2+e.data.rank};gt(n,"edge-proxy",i,"_ep")}})},Ey=n=>{let t=0;return n.getAllNodes().forEach(e=>{var r,i;e.data.borderTop&&(e.data.minRank=(r=n.getNode(e.data.borderTop))===null||r===void 0?void 0:r.data.rank,e.data.maxRank=(i=n.getNode(e.data.borderBottom))===null||i===void 0?void 0:i.data.rank,t=Math.max(t,e.data.maxRank||-1/0))}),t},xy=n=>{n.getAllNodes().forEach(t=>{t.data.dummy==="edge-proxy"&&(n.getEdge(t.data.e.id).data.labelRank=t.data.rank,n.removeNode(t.id))})},Ny=(n,t)=>{let e,r=0,i,s=0;const{marginx:o=0,marginy:a=0}={},u=c=>{if(!c.data)return;const f=c.data.x,l=c.data.y,h=c.data.width,g=c.data.height;!isNaN(f)&&!isNaN(h)&&(e===void 0&&(e=f-h/2),e=Math.min(e,f-h/2),r=Math.max(r,f+h/2)),!isNaN(l)&&!isNaN(g)&&(i===void 0&&(i=l-g/2),i=Math.min(i,l-g/2),s=Math.max(s,l+g/2))};return n.getAllNodes().forEach(c=>{u(c)}),n.getAllEdges().forEach(c=>{c!=null&&c.data.hasOwnProperty("x")&&u(c)}),e-=o,i-=a,n.getAllNodes().forEach(c=>{c.data.x-=e,c.data.y-=i}),n.getAllEdges().forEach(c=>{var f;(f=c.data.points)===null||f===void 0||f.forEach(l=>{l.x-=e,l.y-=i}),c.data.hasOwnProperty("x")&&(c.data.x-=e),c.data.hasOwnProperty("y")&&(c.data.y-=i)}),{width:r-e+o,height:s-i+a}},My=n=>{n.getAllEdges().forEach(t=>{const e=n.getNode(t.source),r=n.getNode(t.target);let i,s;t.data.points?(i=t.data.points[0],s=t.data.points[t.data.points.length-1]):(t.data.points=[],i={x:r.data.x,y:r.data.y},s={x:e.data.x,y:e.data.y}),t.data.points.unshift(xc(e.data,i)),t.data.points.push(xc(r.data,s))})},Sy=n=>{n.getAllEdges().forEach(t=>{if(t.data.hasOwnProperty("x"))switch((t.data.labelpos==="l"||t.data.labelpos==="r")&&(t.data.width-=t.data.labeloffset),t.data.labelpos){case"l":t.data.x-=t.data.width/2+t.data.labeloffset;break;case"r":t.data.x+=t.data.width/2+t.data.labeloffset;break}})},Ry=n=>{n.getAllEdges().forEach(t=>{var e;t.data.reversed&&((e=t.data.points)===null||e===void 0||e.reverse())})},qy=n=>{n.getAllNodes().forEach(t=>{var e,r,i;if(!((e=n.getChildren(t.id))===null||e===void 0)&&e.length){const s=n.getNode(t.id),o=n.getNode(s.data.borderTop),a=n.getNode(s.data.borderBottom),u=n.getNode(s.data.borderLeft[((r=s.data.borderLeft)===null||r===void 0?void 0:r.length)-1]),c=n.getNode(s.data.borderRight[((i=s.data.borderRight)===null||i===void 0?void 0:i.length)-1]);s.data.width=Math.abs((c==null?void 0:c.data.x)-(u==null?void 0:u.data.x))||10,s.data.height=Math.abs((a==null?void 0:a.data.y)-(o==null?void 0:o.data.y))||10,s.data.x=((u==null?void 0:u.data.x)||0)+s.data.width/2,s.data.y=((o==null?void 0:o.data.y)||0)+s.data.height/2}}),n.getAllNodes().forEach(t=>{t.data.dummy==="border"&&n.removeNode(t.id)})},Oy=n=>{n.getAllEdges().forEach(t=>{if(t.source===t.target){const e=n.getNode(t.source);e.data.selfEdges||(e.data.selfEdges=[]),e.data.selfEdges.push(t),n.removeEdge(t.id)}})},Ay=n=>{const t=jt(n);t==null||t.forEach(e=>{let r=0;e==null||e.forEach((i,s)=>{var o;const a=n.getNode(i);a.data.order=s+r,(o=a.data.selfEdges)===null||o===void 0||o.forEach(u=>{gt(n,"selfedge",{width:u.data.width,height:u.data.height,rank:a.data.rank,order:s+ ++r,e:u},"_se")}),delete a.data.selfEdges})})},Iy=n=>{n.getAllNodes().forEach(t=>{const e=n.getNode(t.id);if(e.data.dummy==="selfedge"){const r=n.getNode(e.data.e.source),i=r.data.x+r.data.width/2,s=r.data.y,o=e.data.x-i,a=r.data.height/2;n.hasEdge(e.data.e.id)?n.updateEdgeData(e.data.e.id,e.data.e.data):n.addEdge({id:e.data.e.id,source:e.data.e.source,target:e.data.e.target,data:e.data.e.data}),n.removeNode(t.id),e.data.e.data.points=[{x:i+2*o/3,y:s-a},{x:i+5*o/6,y:s-a},{y:s,x:i+o},{x:i+5*o/6,y:s+a},{x:i+2*o/3,y:s+a}],e.data.e.data.x=e.data.x,e.data.e.data.y=e.data.y}})},Kc=(n,t)=>{const e={};return t==null||t.forEach(r=>{n[r]!==void 0&&(e[r]=+n[r])}),e},Xc=(n={})=>{const t={};return Object.keys(n).forEach(e=>{t[e.toLowerCase()]=n[e]}),t},ke=Array.isArray,Zc=n=>{const t=[],e=n.length;for(let r=0;r<e;r+=1){t[r]=[];for(let i=0;i<e;i+=1)r===i?t[r][i]=0:n[r][i]===0||!n[r][i]?t[r][i]=1/0:t[r][i]=n[r][i]}for(let r=0;r<e;r+=1)for(let i=0;i<e;i+=1)for(let s=0;s<e;s+=1)t[i][s]>t[i][r]+t[r][s]&&(t[i][s]=t[i][r]+t[r][s]);return t},Jc=(n,t)=>{const{nodes:e,edges:r}=n,i=[],s={};if(!e)throw new Error("invalid nodes data!");return e&&e.forEach((o,a)=>{s[o.id]=a;const u=[];i.push(u)}),r==null||r.forEach(o=>{const{source:a,target:u}=o,c=s[a],f=s[u];c===void 0||f===void 0||(i[c][f]=1,i[f][c]=1)}),i},Ty=(n,t)=>{const e=[];return n.forEach(r=>{const i=[];r.forEach(s=>{i.push(s*t)}),e.push(i)}),e},ky=n=>{let t=1/0,e=1/0,r=-1/0,i=-1/0;return n.forEach(s=>{let o=s.data.size;ke(o)?o.length===1&&(o=[o[0],o[0]]):V(o)?o=[o,o]:(o===void 0||isNaN(o))&&(o=[30,30]);const a=[o[0]/2,o[1]/2],u=s.data.x-a[0],c=s.data.x+a[0],f=s.data.y-a[1],l=s.data.y+a[1];t>u&&(t=u),e>f&&(e=f),r<c&&(r=c),i<l&&(i=l)}),{minX:t,minY:e,maxX:r,maxY:i}},Qc=(n,t)=>Math.sqrt((n.x-t.x)*(n.x-t.x)+(n.y-t.y)*(n.y-t.y)),gn=(n,t,e,r="TB",i,s={})=>{if(!(t!=null&&t.length))return;const{stopBranchFn:o,stopAllFn:a}=s;for(let u=0;u<t.length;u++){const c=t[u];if(n.hasNode(c.id)&&!(o!=null&&o(c))){if(a!=null&&a(c))return;r==="TB"&&e(c),gn(n,n.getChildren(c.id,i),e,r,i,s),r!=="TB"&&e(c)}}},pn=n=>{if(n===null)return n;if(n instanceof Date)return new Date(n.getTime());if(n instanceof Array){const t=[];return n.forEach(e=>{t.push(e)}),t.map(e=>pn(e))}if(typeof n=="object"){const t={};return Object.keys(n).forEach(e=>{t[e]=pn(n[e])}),t}return n},ye=(n,t)=>{const e=pn(n);return e.data=e.data||{},t&&(V(e.data.x)||(e.data.x=Math.random()*t[0]),V(e.data.y)||(e.data.y=Math.random()*t[1])),e};function Ct(n){if(!n)return[0,0,0];if(V(n))return[n,n,n];if(n.length===0)return[0,0,0];const[t,e=t,r=t]=n;return[t,e,r]}function tt(n,t){let e;return Te(t)?e=t:V(t)?e=()=>t:e=()=>n,e}function vn(n,t,e=!0){return!t&&t!==0?r=>{const{size:i}=r.data||{};return i?Array.isArray(i)?e?Math.max(...i)||n:i:dt(i)&&i.width&&i.height?e?Math.max(i.width,i.height)||n:[i.width,i.height]:i:n}:Te(t)?t:V(t)?()=>t:Array.isArray(t)?()=>e?Math.max(...t)||n:t:dt(t)&&t.width&&t.height?()=>e?Math.max(t.width,t.height)||n:[t.width,t.height]:()=>n}const mn=(n,t,e=10)=>{let r;const i=typeof t=="function"?t:()=>t||0;return n?Array.isArray(n)?r=o=>n:Te(n)?r=n:r=o=>n:r=o=>{var a,u,c;if(!((a=o.data)===null||a===void 0)&&a.bboxSize)return(u=o.data)===null||u===void 0?void 0:u.bboxSize;if(!((c=o.data)===null||c===void 0)&&c.size){const f=o.data.size;return Array.isArray(f)?f:dt(f)?[f.width,f.height]:f}return e},o=>{const a=r(o),u=i(o);return Math.max(...Ct(a))+u}},jy={rankdir:"TB",nodesep:50,ranksep:50,edgeLabelSpace:!0,ranker:"tight-tree",controlPoints:!1,radial:!1,focusNode:null};class Cy{constructor(t={}){this.options=t,this.id="antv-dagre",this.options=Object.assign(Object.assign({},jy),t)}execute(t,e){return L(this,void 0,void 0,function*(){return this.genericDagreLayout(!1,t,e)})}assign(t,e){return L(this,void 0,void 0,function*(){yield this.genericDagreLayout(!0,t,e)})}genericDagreLayout(t,e,r){return L(this,void 0,void 0,function*(){const i=Object.assign(Object.assign({},this.options),r),{nodeSize:s,align:o,rankdir:a="TB",ranksep:u,nodesep:c,ranksepFunc:f,nodesepFunc:l,edgeLabelSpace:h,ranker:g,nodeOrder:p,begin:v,controlPoints:m,radial:d,sortByCombo:y,preset:w}=i,b=new ue({tree:[]}),x=tt(u||50,f),M=tt(c||50,l);let N=M,E=x;(a==="LR"||a==="RL")&&(N=x,E=M);const O=vn(10,s,!1),_=e.getAllNodes(),S=e.getAllEdges();_.forEach(A=>{const C=Ct(O(A)),D=E(A),z=N(A),U=C[0]+2*z,P=C[1]+2*D,$=A.data.layer;V($)?b.addNode({id:A.id,data:{width:U,height:P,layer:$}}):b.addNode({id:A.id,data:{width:U,height:P}})}),y&&(b.attachTreeStructure("combo"),_.forEach(A=>{const{parentId:C}=A.data;C!==void 0&&b.hasNode(C)&&b.setParent(A.id,C,"combo")})),S.forEach(A=>{b.addEdge({id:A.id,source:A.source,target:A.target,data:{weight:A.data.weight||1}})});let q;w!=null&&w.length&&(q=new ue({nodes:w})),ly(b,{prevGraph:q,edgeLabelSpace:h,keepNodeOrder:!!p,nodeOrder:p||[],acyclicer:"greedy",ranker:g,rankdir:a,nodesep:c,align:o});const R=[0,0];if(v){let A=1/0,C=1/0;b.getAllNodes().forEach(D=>{A>D.data.x&&(A=D.data.x),C>D.data.y&&(C=D.data.y)}),b.getAllEdges().forEach(D=>{var z;(z=D.data.points)===null||z===void 0||z.forEach(U=>{A>U.x&&(A=U.x),C>U.y&&(C=U.y)})}),R[0]=v[0]-A,R[1]=v[1]-C}const T=a==="LR"||a==="RL";if(!d){const A=new Set,D=a==="BT"||a==="RL"?($,B)=>B-$:($,B)=>$-B;b.getAllNodes().forEach($=>{$.data.x=$.data.x+R[0],$.data.y=$.data.y+R[1],A.add(T?$.data.x:$.data.y)});const z=Array.from(A).sort(D),U=T?($,B)=>$.x!==B.x:($,B)=>$.y!==B.y,P=T?($,B,Z)=>{const G=Math.max(B.y,Z.y),le=Math.min(B.y,Z.y);return $.filter(_e=>_e.y<=G&&_e.y>=le)}:($,B,Z)=>{const G=Math.max(B.x,Z.x),le=Math.min(B.x,Z.x);return $.filter(_e=>_e.x<=G&&_e.x>=le)};b.getAllEdges().forEach(($,B)=>{var Z;h&&m&&$.data.type!=="loop"&&($.data.controlPoints=Py((Z=$.data.points)===null||Z===void 0?void 0:Z.map(({x:G,y:le})=>({x:G+R[0],y:le+R[1]})),b.getNode($.source),b.getNode($.target),z,T,U,P))})}let I=[];I=b.getAllNodes().map(A=>ye(A));const k=b.getAllEdges();return t&&(I.forEach(A=>{e.mergeNodeData(A.id,{x:A.data.x,y:A.data.y})}),k.forEach(A=>{e.mergeEdgeData(A.id,{controlPoints:A.data.controlPoints})})),{nodes:I,edges:k}})}}const Py=(n,t,e,r,i,s,o)=>{let a=(n==null?void 0:n.slice(1,n.length-1))||[];if(t&&e){let{x:u,y:c}=t.data,{x:f,y:l}=e.data;if(i&&(u=t.data.y,c=t.data.x,f=e.data.y,l=e.data.x),l!==c&&u!==f){const h=r.indexOf(c),g=r[h+1];if(g){const m=a[0],d=i?{x:(c+g)/2,y:(m==null?void 0:m.y)||f}:{x:(m==null?void 0:m.x)||f,y:(c+g)/2};(!m||s(m,d))&&a.unshift(d)}const p=r.indexOf(l),v=Math.abs(p-h);if(v===1)a=o(a,t.data,e.data),a.length||a.push(i?{x:(c+l)/2,y:u}:{x:u,y:(c+l)/2});else if(v>1){const m=r[p-1];if(m){const d=a[a.length-1],y=i?{x:(l+m)/2,y:(d==null?void 0:d.y)||f}:{x:(d==null?void 0:d.x)||u,y:(l+m)/2};(!d||s(d,y))&&a.push(y)}}}}return a},rt=(n,t,e)=>{const r=n.getAllNodes(),i=n.getAllEdges();if(!(r!=null&&r.length))return{nodes:[],edges:i};if(r.length===1)return t&&n.mergeNodeData(r[0].id,{x:e[0],y:e[1]}),{nodes:[Object.assign(Object.assign({},r[0]),{data:Object.assign(Object.assign({},r[0].data),{x:e[0],y:e[1]})})],edges:i}},Ly={radius:null,startRadius:null,endRadius:null,startAngle:0,endAngle:2*Math.PI,clockwise:!0,divisions:1,ordering:null,angleRatio:1};class Dy{constructor(t={}){this.options=t,this.id="circular",this.options=Object.assign(Object.assign({},Ly),t)}execute(t,e){return L(this,void 0,void 0,function*(){return this.genericCircularLayout(!1,t,e)})}assign(t,e){return L(this,void 0,void 0,function*(){yield this.genericCircularLayout(!0,t,e)})}genericCircularLayout(t,e,r){return L(this,void 0,void 0,function*(){const i=Object.assign(Object.assign({},this.options),r),{width:s,height:o,center:a,divisions:u,startAngle:c=0,endAngle:f=2*Math.PI,angleRatio:l,ordering:h,clockwise:g,nodeSpacing:p,nodeSize:v}=i,m=e.getAllNodes(),d=e.getAllEdges(),[y,w,b]=$y(s,o,a),x=m==null?void 0:m.length;if(!x||x===1)return rt(e,t,b);const M=(f-c)/x;let{radius:N,startRadius:E,endRadius:O}=i;if(p){const T=tt(10,p),I=vn(10,v);let k=-1/0;m.forEach(A=>{const C=I(A);k<C&&(k=C)});let F=0;m.forEach((A,C)=>{C===0?F+=k||10:F+=(T(A)||0)+(k||10)}),N=F/(2*Math.PI)}else!N&&!E&&!O?N=Math.min(w,y)/2:!E&&O?E=O:E&&!O&&(O=E);const _=M*l;let S=[];h==="topology"?S=Hc(e,m):h==="topology-directed"?S=Hc(e,m,!0):h==="degree"?S=zy(e,m):S=m.map(T=>ye(T));const q=Math.ceil(x/u);for(let T=0;T<x;++T){let I=N;!I&&E!==null&&O!==null&&(I=E+T*(O-E)/(x-1)),I||(I=10+T*100/(x-1));let k=c+T%q*_+2*Math.PI/u*Math.floor(T/q);g||(k=f-T%q*_-2*Math.PI/u*Math.floor(T/q)),S[T].data.x=b[0]+Math.cos(k)*I,S[T].data.y=b[1]+Math.sin(k)*I}return t&&S.forEach(T=>{e.mergeNodeData(T.id,{x:T.data.x,y:T.data.y})}),{nodes:S,edges:d}})}}const Hc=(n,t,e=!1)=>{const r=[ye(t[0])],i={},s=t.length;i[t[0].id]=!0;let o=0;return t.forEach((a,u)=>{if(u!==0)if((u===s-1||n.getDegree(a.id,"both")!==n.getDegree(t[u+1].id,"both")||n.areNeighbors(r[o].id,a.id))&&!i[a.id])r.push(ye(a)),i[a.id]=!0,o++;else{const c=e?n.getSuccessors(r[o].id):n.getNeighbors(r[o].id);let f=!1;for(let h=0;h<c.length;h++){const g=c[h];if(n.getDegree(g.id)===n.getDegree(a.id)&&!i[g.id]){r.push(ye(g)),i[g.id]=!0,f=!0;break}}let l=0;for(;!f&&(i[t[l].id]||(r.push(ye(t[l])),i[t[l].id]=!0,f=!0),l++,l!==s););}}),r};function zy(n,t){const e=[];return t.forEach((r,i)=>{e.push(ye(r))}),e.sort((r,i)=>n.getDegree(r.id,"both")-n.getDegree(i.id,"both")),e}const $y=(n,t,e)=>{let r=n,i=t,s=e;return!r&&typeof window<"u"&&(r=window.innerWidth),!i&&typeof window<"u"&&(i=window.innerHeight),s||(s=[r/2,i/2]),[r,i,s]},Fy={nodeSize:30,nodeSpacing:10,preventOverlap:!1,sweep:void 0,equidistant:!1,startAngle:3/2*Math.PI,clockwise:!0,maxLevelDiff:void 0,sortBy:"degree"};class yn{constructor(t={}){this.options=t,this.id="concentric",this.options=Object.assign(Object.assign({},Fy),t)}execute(t,e){return L(this,void 0,void 0,function*(){return this.genericConcentricLayout(!1,t,e)})}assign(t,e){return L(this,void 0,void 0,function*(){yield this.genericConcentricLayout(!0,t,e)})}genericConcentricLayout(t,e,r){return L(this,void 0,void 0,function*(){const i=Object.assign(Object.assign({},this.options),r),{center:s,width:o,height:a,sortBy:u,maxLevelDiff:c,sweep:f,clockwise:l,equidistant:h,preventOverlap:g,startAngle:p=3/2*Math.PI,nodeSize:v,nodeSpacing:m}=i,d=e.getAllNodes(),y=e.getAllEdges(),w=!o&&typeof window<"u"?window.innerWidth:o,b=!a&&typeof window<"u"?window.innerHeight:a,x=s||[w/2,b/2];if(!(d!=null&&d.length)||d.length===1)return rt(e,t,x);const M=[];let N,E=0;ke(v)?N=Math.max(v[0],v[1]):Te(v)?(N=-1/0,d.forEach(A=>{const C=Math.max(...Ct(v(A)));C>N&&(N=C)})):N=v,ke(m)?E=Math.max(m[0],m[1]):V(m)&&(E=m),d.forEach(A=>{const C=ye(A);M.push(C);let D=N;const{data:z}=C;ke(z.size)?D=Math.max(z.size[0],z.size[1]):V(z.size)?D=z.size:dt(z.size)&&(D=Math.max(z.size.width,z.size.height)),N=Math.max(N,D),Te(m)&&(E=Math.max(m(A),E))});const O={};M.forEach((A,C)=>{O[A.id]=C});let _=u;(!kt(_)||M[0].data[_]===void 0)&&(_="degree"),_==="degree"?M.sort((A,C)=>e.getDegree(C.id,"both")-e.getDegree(A.id,"both")):M.sort((A,C)=>C.data[_]-A.data[_]);const S=M[0],q=(c||(_==="degree"?e.getDegree(S.id,"both"):S.data[_]))/4,R=[{nodes:[]}];let T=R[0];M.forEach(A=>{if(T.nodes.length>0){const C=Math.abs(_==="degree"?e.getDegree(T.nodes[0].id,"both")-e.getDegree(A.id,"both"):T.nodes[0].data[_]-A.data[_]);q&&C>=q&&(T={nodes:[]},R.push(T))}T.nodes.push(A)});let I=N+E;if(!g){const A=R.length>0&&R[0].nodes.length>1,D=(Math.min(w,b)/2-I)/(R.length+(A?1:0));I=Math.min(I,D)}let k=0;if(R.forEach(A=>{const C=f===void 0?2*Math.PI-2*Math.PI/A.nodes.length:f;if(A.dTheta=C/Math.max(1,A.nodes.length-1),A.nodes.length>1&&g){const D=Math.cos(A.dTheta)-Math.cos(0),z=Math.sin(A.dTheta)-Math.sin(0),U=Math.sqrt(I*I/(D*D+z*z));k=Math.max(U,k)}A.r=k,k+=I}),h){let A=0,C=0;for(let D=0;D<R.length;D++){const U=(R[D].r||0)-C;A=Math.max(A,U)}C=0,R.forEach((D,z)=>{z===0&&(C=D.r||0),D.r=C,C+=A})}return R.forEach(A=>{const C=A.dTheta||0,D=A.r||0;A.nodes.forEach((z,U)=>{const P=p+(l?1:-1)*C*U;z.data.x=x[0]+D*Math.cos(P),z.data.y=x[1]+D*Math.sin(P)})}),t&&M.forEach(A=>e.mergeNodeData(A.id,{x:A.data.x,y:A.data.y})),{nodes:M,edges:y}})}}function By(n){const t=+this._x.call(null,n),e=+this._y.call(null,n);return ef(this.cover(t,e),t,e,n)}function ef(n,t,e,r){if(isNaN(t)||isNaN(e))return n;var i,s=n._root,o={data:r},a=n._x0,u=n._y0,c=n._x1,f=n._y1,l,h,g,p,v,m,d,y;if(!s)return n._root=o,n;for(;s.length;)if((v=t>=(l=(a+c)/2))?a=l:c=l,(m=e>=(h=(u+f)/2))?u=h:f=h,i=s,!(s=s[d=m<<1|v]))return i[d]=o,n;if(g=+n._x.call(null,s.data),p=+n._y.call(null,s.data),t===g&&e===p)return o.next=s,i?i[d]=o:n._root=o,n;do i=i?i[d]=new Array(4):n._root=new Array(4),(v=t>=(l=(a+c)/2))?a=l:c=l,(m=e>=(h=(u+f)/2))?u=h:f=h;while((d=m<<1|v)===(y=(p>=h)<<1|g>=l));return i[y]=s,i[d]=o,n}function Uy(n){var t,e,r=n.length,i,s,o=new Array(r),a=new Array(r),u=1/0,c=1/0,f=-1/0,l=-1/0;for(e=0;e<r;++e)isNaN(i=+this._x.call(null,t=n[e]))||isNaN(s=+this._y.call(null,t))||(o[e]=i,a[e]=s,i<u&&(u=i),i>f&&(f=i),s<c&&(c=s),s>l&&(l=s));if(u>f||c>l)return this;for(this.cover(u,c).cover(f,l),e=0;e<r;++e)ef(this,o[e],a[e],n[e]);return this}function Gy(n,t){if(isNaN(n=+n)||isNaN(t=+t))return this;var e=this._x0,r=this._y0,i=this._x1,s=this._y1;if(isNaN(e))i=(e=Math.floor(n))+1,s=(r=Math.floor(t))+1;else{for(var o=i-e||1,a=this._root,u,c;e>n||n>=i||r>t||t>=s;)switch(c=(t<r)<<1|n<e,u=new Array(4),u[c]=a,a=u,o*=2,c){case 0:i=e+o,s=r+o;break;case 1:e=i-o,s=r+o;break;case 2:i=e+o,r=s-o;break;case 3:e=i-o,r=s-o;break}this._root&&this._root.length&&(this._root=a)}return this._x0=e,this._y0=r,this._x1=i,this._y1=s,this}function Vy(){var n=[];return this.visit(function(t){if(!t.length)do n.push(t.data);while(t=t.next)}),n}function Wy(n){return arguments.length?this.cover(+n[0][0],+n[0][1]).cover(+n[1][0],+n[1][1]):isNaN(this._x0)?void 0:[[this._x0,this._y0],[this._x1,this._y1]]}function he(n,t,e,r,i){this.node=n,this.x0=t,this.y0=e,this.x1=r,this.y1=i}function Yy(n,t,e){var r,i=this._x0,s=this._y0,o,a,u,c,f=this._x1,l=this._y1,h=[],g=this._root,p,v;for(g&&h.push(new he(g,i,s,f,l)),e==null?e=1/0:(i=n-e,s=t-e,f=n+e,l=t+e,e*=e);p=h.pop();)if(!(!(g=p.node)||(o=p.x0)>f||(a=p.y0)>l||(u=p.x1)<i||(c=p.y1)<s))if(g.length){var m=(o+u)/2,d=(a+c)/2;h.push(new he(g[3],m,d,u,c),new he(g[2],o,d,m,c),new he(g[1],m,a,u,d),new he(g[0],o,a,m,d)),(v=(t>=d)<<1|n>=m)&&(p=h[h.length-1],h[h.length-1]=h[h.length-1-v],h[h.length-1-v]=p)}else{var y=n-+this._x.call(null,g.data),w=t-+this._y.call(null,g.data),b=y*y+w*w;if(b<e){var x=Math.sqrt(e=b);i=n-x,s=t-x,f=n+x,l=t+x,r=g.data}}return r}function Ky(n){if(isNaN(f=+this._x.call(null,n))||isNaN(l=+this._y.call(null,n)))return this;var t,e=this._root,r,i,s,o=this._x0,a=this._y0,u=this._x1,c=this._y1,f,l,h,g,p,v,m,d;if(!e)return this;if(e.length)for(;;){if((p=f>=(h=(o+u)/2))?o=h:u=h,(v=l>=(g=(a+c)/2))?a=g:c=g,t=e,!(e=e[m=v<<1|p]))return this;if(!e.length)break;(t[m+1&3]||t[m+2&3]||t[m+3&3])&&(r=t,d=m)}for(;e.data!==n;)if(i=e,!(e=e.next))return this;return(s=e.next)&&delete e.next,i?(s?i.next=s:delete i.next,this):t?(s?t[m]=s:delete t[m],(e=t[0]||t[1]||t[2]||t[3])&&e===(t[3]||t[2]||t[1]||t[0])&&!e.length&&(r?r[d]=e:this._root=e),this):(this._root=s,this)}function Xy(n){for(var t=0,e=n.length;t<e;++t)this.remove(n[t]);return this}function Zy(){return this._root}function Jy(){var n=0;return this.visit(function(t){if(!t.length)do++n;while(t=t.next)}),n}function Qy(n){var t=[],e,r=this._root,i,s,o,a,u;for(r&&t.push(new he(r,this._x0,this._y0,this._x1,this._y1));e=t.pop();)if(!n(r=e.node,s=e.x0,o=e.y0,a=e.x1,u=e.y1)&&r.length){var c=(s+a)/2,f=(o+u)/2;(i=r[3])&&t.push(new he(i,c,f,a,u)),(i=r[2])&&t.push(new he(i,s,f,c,u)),(i=r[1])&&t.push(new he(i,c,o,a,f)),(i=r[0])&&t.push(new he(i,s,o,c,f))}return this}function Hy(n){var t=[],e=[],r;for(this._root&&t.push(new he(this._root,this._x0,this._y0,this._x1,this._y1));r=t.pop();){var i=r.node;if(i.length){var s,o=r.x0,a=r.y0,u=r.x1,c=r.y1,f=(o+u)/2,l=(a+c)/2;(s=i[0])&&t.push(new he(s,o,a,f,l)),(s=i[1])&&t.push(new he(s,f,a,u,l)),(s=i[2])&&t.push(new he(s,o,l,f,c)),(s=i[3])&&t.push(new he(s,f,l,u,c))}e.push(r)}for(;r=e.pop();)n(r.node,r.x0,r.y0,r.x1,r.y1);return this}function ew(n){return n[0]}function tw(n){return arguments.length?(this._x=n,this):this._x}function rw(n){return n[1]}function nw(n){return arguments.length?(this._y=n,this):this._y}function pt(n,t,e){var r=new wn(t??ew,e??rw,NaN,NaN,NaN,NaN);return n==null?r:r.addAll(n)}function wn(n,t,e,r,i,s){this._x=n,this._y=t,this._x0=e,this._y0=r,this._x1=i,this._y1=s,this._root=void 0}function tf(n){for(var t={data:n.data},e=t;n=n.next;)e=e.next={data:n.data};return t}var de=pt.prototype=wn.prototype;de.copy=function(){var n=new wn(this._x,this._y,this._x0,this._y0,this._x1,this._y1),t=this._root,e,r;if(!t)return n;if(!t.length)return n._root=tf(t),n;for(e=[{source:t,target:n._root=new Array(4)}];t=e.pop();)for(var i=0;i<4;++i)(r=t.source[i])&&(r.length?e.push({source:r,target:t.target[i]=new Array(4)}):t.target[i]=tf(r));return n},de.add=By,de.addAll=Uy,de.cover=Gy,de.data=Vy,de.extent=Wy,de.find=Yy,de.remove=Ky,de.removeAll=Xy,de.root=Zy,de.size=Jy,de.visit=Qy,de.visitAfter=Hy,de.x=tw,de.y=nw;function iw(n){const t=+this._x.call(null,n),e=+this._y.call(null,n),r=+this._z.call(null,n);return rf(this.cover(t,e,r),t,e,r,n)}function rf(n,t,e,r,i){if(isNaN(t)||isNaN(e)||isNaN(r))return n;var s,o=n._root,a={data:i},u=n._x0,c=n._y0,f=n._z0,l=n._x1,h=n._y1,g=n._z1,p,v,m,d,y,w,b,x,M,N,E;if(!o)return n._root=a,n;for(;o.length;)if((b=t>=(p=(u+l)/2))?u=p:l=p,(x=e>=(v=(c+h)/2))?c=v:h=v,(M=r>=(m=(f+g)/2))?f=m:g=m,s=o,!(o=o[N=M<<2|x<<1|b]))return s[N]=a,n;if(d=+n._x.call(null,o.data),y=+n._y.call(null,o.data),w=+n._z.call(null,o.data),t===d&&e===y&&r===w)return a.next=o,s?s[N]=a:n._root=a,n;do s=s?s[N]=new Array(8):n._root=new Array(8),(b=t>=(p=(u+l)/2))?u=p:l=p,(x=e>=(v=(c+h)/2))?c=v:h=v,(M=r>=(m=(f+g)/2))?f=m:g=m;while((N=M<<2|x<<1|b)===(E=(w>=m)<<2|(y>=v)<<1|d>=p));return s[E]=o,s[N]=a,n}function sw(n){Array.isArray(n)||(n=Array.from(n));const t=n.length,e=new Float64Array(t),r=new Float64Array(t),i=new Float64Array(t);let s=1/0,o=1/0,a=1/0,u=-1/0,c=-1/0,f=-1/0;for(let l=0,h,g,p,v;l<t;++l)isNaN(g=+this._x.call(null,h=n[l]))||isNaN(p=+this._y.call(null,h))||isNaN(v=+this._z.call(null,h))||(e[l]=g,r[l]=p,i[l]=v,g<s&&(s=g),g>u&&(u=g),p<o&&(o=p),p>c&&(c=p),v<a&&(a=v),v>f&&(f=v));if(s>u||o>c||a>f)return this;this.cover(s,o,a).cover(u,c,f);for(let l=0;l<t;++l)rf(this,e[l],r[l],i[l],n[l]);return this}function ow(n,t,e){if(isNaN(n=+n)||isNaN(t=+t)||isNaN(e=+e))return this;var r=this._x0,i=this._y0,s=this._z0,o=this._x1,a=this._y1,u=this._z1;if(isNaN(r))o=(r=Math.floor(n))+1,a=(i=Math.floor(t))+1,u=(s=Math.floor(e))+1;else{for(var c=o-r||1,f=this._root,l,h;r>n||n>=o||i>t||t>=a||s>e||e>=u;)switch(h=(e<s)<<2|(t<i)<<1|n<r,l=new Array(8),l[h]=f,f=l,c*=2,h){case 0:o=r+c,a=i+c,u=s+c;break;case 1:r=o-c,a=i+c,u=s+c;break;case 2:o=r+c,i=a-c,u=s+c;break;case 3:r=o-c,i=a-c,u=s+c;break;case 4:o=r+c,a=i+c,s=u-c;break;case 5:r=o-c,a=i+c,s=u-c;break;case 6:o=r+c,i=a-c,s=u-c;break;case 7:r=o-c,i=a-c,s=u-c;break}this._root&&this._root.length&&(this._root=f)}return this._x0=r,this._y0=i,this._z0=s,this._x1=o,this._y1=a,this._z1=u,this}function aw(){var n=[];return this.visit(function(t){if(!t.length)do n.push(t.data);while(t=t.next)}),n}function uw(n){return arguments.length?this.cover(+n[0][0],+n[0][1],+n[0][2]).cover(+n[1][0],+n[1][1],+n[1][2]):isNaN(this._x0)?void 0:[[this._x0,this._y0,this._z0],[this._x1,this._y1,this._z1]]}function ee(n,t,e,r,i,s,o){this.node=n,this.x0=t,this.y0=e,this.z0=r,this.x1=i,this.y1=s,this.z1=o}function cw(n,t,e,r){var i,s=this._x0,o=this._y0,a=this._z0,u,c,f,l,h,g,p=this._x1,v=this._y1,m=this._z1,d=[],y=this._root,w,b;for(y&&d.push(new ee(y,s,o,a,p,v,m)),r==null?r=1/0:(s=n-r,o=t-r,a=e-r,p=n+r,v=t+r,m=e+r,r*=r);w=d.pop();)if(!(!(y=w.node)||(u=w.x0)>p||(c=w.y0)>v||(f=w.z0)>m||(l=w.x1)<s||(h=w.y1)<o||(g=w.z1)<a))if(y.length){var x=(u+l)/2,M=(c+h)/2,N=(f+g)/2;d.push(new ee(y[7],x,M,N,l,h,g),new ee(y[6],u,M,N,x,h,g),new ee(y[5],x,c,N,l,M,g),new ee(y[4],u,c,N,x,M,g),new ee(y[3],x,M,f,l,h,N),new ee(y[2],u,M,f,x,h,N),new ee(y[1],x,c,f,l,M,N),new ee(y[0],u,c,f,x,M,N)),(b=(e>=N)<<2|(t>=M)<<1|n>=x)&&(w=d[d.length-1],d[d.length-1]=d[d.length-1-b],d[d.length-1-b]=w)}else{var E=n-+this._x.call(null,y.data),O=t-+this._y.call(null,y.data),_=e-+this._z.call(null,y.data),S=E*E+O*O+_*_;if(S<r){var q=Math.sqrt(r=S);s=n-q,o=t-q,a=e-q,p=n+q,v=t+q,m=e+q,i=y.data}}return i}function fw(n){if(isNaN(h=+this._x.call(null,n))||isNaN(g=+this._y.call(null,n))||isNaN(p=+this._z.call(null,n)))return this;var t,e=this._root,r,i,s,o=this._x0,a=this._y0,u=this._z0,c=this._x1,f=this._y1,l=this._z1,h,g,p,v,m,d,y,w,b,x,M;if(!e)return this;if(e.length)for(;;){if((y=h>=(v=(o+c)/2))?o=v:c=v,(w=g>=(m=(a+f)/2))?a=m:f=m,(b=p>=(d=(u+l)/2))?u=d:l=d,t=e,!(e=e[x=b<<2|w<<1|y]))return this;if(!e.length)break;(t[x+1&7]||t[x+2&7]||t[x+3&7]||t[x+4&7]||t[x+5&7]||t[x+6&7]||t[x+7&7])&&(r=t,M=x)}for(;e.data!==n;)if(i=e,!(e=e.next))return this;return(s=e.next)&&delete e.next,i?(s?i.next=s:delete i.next,this):t?(s?t[x]=s:delete t[x],(e=t[0]||t[1]||t[2]||t[3]||t[4]||t[5]||t[6]||t[7])&&e===(t[7]||t[6]||t[5]||t[4]||t[3]||t[2]||t[1]||t[0])&&!e.length&&(r?r[M]=e:this._root=e),this):(this._root=s,this)}function lw(n){for(var t=0,e=n.length;t<e;++t)this.remove(n[t]);return this}function hw(){return this._root}function dw(){var n=0;return this.visit(function(t){if(!t.length)do++n;while(t=t.next)}),n}function gw(n){var t=[],e,r=this._root,i,s,o,a,u,c,f;for(r&&t.push(new ee(r,this._x0,this._y0,this._z0,this._x1,this._y1,this._z1));e=t.pop();)if(!n(r=e.node,s=e.x0,o=e.y0,a=e.z0,u=e.x1,c=e.y1,f=e.z1)&&r.length){var l=(s+u)/2,h=(o+c)/2,g=(a+f)/2;(i=r[7])&&t.push(new ee(i,l,h,g,u,c,f)),(i=r[6])&&t.push(new ee(i,s,h,g,l,c,f)),(i=r[5])&&t.push(new ee(i,l,o,g,u,h,f)),(i=r[4])&&t.push(new ee(i,s,o,g,l,h,f)),(i=r[3])&&t.push(new ee(i,l,h,a,u,c,g)),(i=r[2])&&t.push(new ee(i,s,h,a,l,c,g)),(i=r[1])&&t.push(new ee(i,l,o,a,u,h,g)),(i=r[0])&&t.push(new ee(i,s,o,a,l,h,g))}return this}function pw(n){var t=[],e=[],r;for(this._root&&t.push(new ee(this._root,this._x0,this._y0,this._z0,this._x1,this._y1,this._z1));r=t.pop();){var i=r.node;if(i.length){var s,o=r.x0,a=r.y0,u=r.z0,c=r.x1,f=r.y1,l=r.z1,h=(o+c)/2,g=(a+f)/2,p=(u+l)/2;(s=i[0])&&t.push(new ee(s,o,a,u,h,g,p)),(s=i[1])&&t.push(new ee(s,h,a,u,c,g,p)),(s=i[2])&&t.push(new ee(s,o,g,u,h,f,p)),(s=i[3])&&t.push(new ee(s,h,g,u,c,f,p)),(s=i[4])&&t.push(new ee(s,o,a,p,h,g,l)),(s=i[5])&&t.push(new ee(s,h,a,p,c,g,l)),(s=i[6])&&t.push(new ee(s,o,g,p,h,f,l)),(s=i[7])&&t.push(new ee(s,h,g,p,c,f,l))}e.push(r)}for(;r=e.pop();)n(r.node,r.x0,r.y0,r.z0,r.x1,r.y1,r.z1);return this}function vw(n){return n[0]}function mw(n){return arguments.length?(this._x=n,this):this._x}function yw(n){return n[1]}function ww(n){return arguments.length?(this._y=n,this):this._y}function bw(n){return n[2]}function _w(n){return arguments.length?(this._z=n,this):this._z}function ar(n,t,e,r){var i=new bn(t??vw,e??yw,r??bw,NaN,NaN,NaN,NaN,NaN,NaN);return n==null?i:i.addAll(n)}function bn(n,t,e,r,i,s,o,a,u){this._x=n,this._y=t,this._z=e,this._x0=r,this._y0=i,this._z0=s,this._x1=o,this._y1=a,this._z1=u,this._root=void 0}function nf(n){for(var t={data:n.data},e=t;n=n.next;)e=e.next={data:n.data};return t}var ce=ar.prototype=bn.prototype;ce.copy=function(){var n=new bn(this._x,this._y,this._z,this._x0,this._y0,this._z0,this._x1,this._y1,this._z1),t=this._root,e,r;if(!t)return n;if(!t.length)return n._root=nf(t),n;for(e=[{source:t,target:n._root=new Array(8)}];t=e.pop();)for(var i=0;i<8;++i)(r=t.source[i])&&(r.length?e.push({source:r,target:t.target[i]=new Array(8)}):t.target[i]=nf(r));return n},ce.add=iw,ce.addAll=sw,ce.cover=ow,ce.data=aw,ce.extent=uw,ce.find=cw,ce.remove=fw,ce.removeAll=lw,ce.root=hw,ce.size=dw,ce.visit=gw,ce.visitAfter=pw,ce.x=mw,ce.y=ww,ce.z=_w;const Ew=.81,_n=.1;function xw(n,t,e,r,i=2){const s=t/e,o=n.getAllNodes(),a=o.map((f,l)=>{const{nodeStrength:h,x:g,y:p,z:v,size:m}=f.data;return{x:g,y:p,z:v,size:m,index:l,id:f.id,vx:0,vy:0,vz:0,weight:s*h}}),u=(i===2?pt(a,f=>f.x,f=>f.y):ar(a,f=>f.x,f=>f.y,f=>f.z)).visitAfter(Nw),c=new Map;return a.forEach(f=>{c.set(f.id,f),Sw(f,u,i)}),a.map((f,l)=>{const{id:h,data:g}=o[l],{mass:p=1}=g;r[h]={x:f.vx/p,y:f.vy/p,z:f.vz/p}}),r}function Nw(n){let t=0,e=0,r=0,i=0,s=0;const o=n.length;if(o){for(let a=0;a<o;a++){const u=n[a];u&&u.weight&&(t+=u.weight,e+=u.x*u.weight,r+=u.y*u.weight,i+=u.z*u.weight,s+=u.size*u.weight)}n.x=e/t,n.y=r/t,n.z=i/t,n.size=s/t,n.weight=t}else{const a=n;n.x=a.data.x,n.y=a.data.y,n.z=a.data.z,n.size=a.data.size,n.weight=a.data.weight}}const Mw=(n,t,e,r,i,s,o)=>{var a;if(((a=n.data)===null||a===void 0?void 0:a.id)===s.id)return;const u=[e,r,i][o-1],c=s.x-n.x||_n,f=s.y-n.y||_n,l=s.z-n.z||_n,h=[c,f,l],g=u-t;let p=0;for(let d=0;d<o;d++)p+=h[d]*h[d];const m=Math.sqrt(p)*p;if(g*g*Ew<p){const d=n.weight/m;return s.vx+=c*d,s.vy+=f*d,s.vz+=l*d,!0}if(n.length)return!1;if(n.data!==s){const d=n.data.weight/m;s.vx+=c*d,s.vy+=f*d,s.vz+=l*d}};function Sw(n,t,e){t.visit((r,i,s,o,a)=>Mw(r,i,s,o,a,n,e))}const Rw={dimensions:2,maxIteration:500,gravity:10,factor:1,edgeStrength:50,nodeStrength:1e3,coulombDisScale:.005,damping:.9,maxSpeed:200,minMovement:.4,interval:.02,linkDistance:200,clusterNodeStrength:20,preventOverlap:!0,distanceThresholdMode:"mean"};class sf{constructor(t={}){this.options=t,this.id="force",this.timeInterval=0,this.judgingDistance=0,this.running=!1,this.options=Object.assign(Object.assign({},Rw),t)}execute(t,e){return L(this,void 0,void 0,function*(){return this.genericForceLayout(!1,t,e)})}assign(t,e){return L(this,void 0,void 0,function*(){yield this.genericForceLayout(!0,t,e)})}stop(){this.timeInterval&&typeof window<"u"&&window.clearInterval(this.timeInterval),this.running=!1}tick(t=this.options.maxIteration||1){if(this.lastResult)return this.lastResult;for(let r=0;(this.judgingDistance>this.lastOptions.minMovement||r<1)&&r<t;r++)this.runOneStep(this.lastCalcGraph,this.lastGraph,r,this.lastVelMap,this.lastOptions),this.updatePosition(this.lastGraph,this.lastCalcGraph,this.lastVelMap,this.lastOptions);const e={nodes:this.lastLayoutNodes,edges:this.lastLayoutEdges};return this.lastAssign&&e.nodes.forEach(r=>this.lastGraph.mergeNodeData(r.id,{x:r.data.x,y:r.data.y,z:this.options.dimensions===3?r.data.z:void 0})),e}genericForceLayout(t,e,r){return L(this,void 0,void 0,function*(){const i=Object.assign(Object.assign({},this.options),r),s=e.getAllNodes(),o=e.getAllEdges(),a=this.formatOptions(i,e),{dimensions:u,width:c,height:f,nodeSize:l,getMass:h,nodeStrength:g,edgeStrength:p,linkDistance:v}=a,m=s.map((E,O)=>Object.assign(Object.assign({},E),{data:Object.assign(Object.assign({},E.data),{x:V(E.data.x)?E.data.x:Math.random()*c,y:V(E.data.y)?E.data.y:Math.random()*f,z:V(E.data.z)?E.data.z:Math.random()*Math.sqrt(c*f),size:l(E)||30,mass:h(E),nodeStrength:g(E)})})),d=o.map(E=>Object.assign(Object.assign({},E),{data:Object.assign(Object.assign({},E.data),{edgeStrength:p(E),linkDistance:v(E,e.getNode(E.source),e.getNode(E.target))})}));if(!(s!=null&&s.length))return this.lastResult={nodes:[],edges:o},{nodes:[],edges:o};const y={};s.forEach((E,O)=>{y[E.id]={x:0,y:0,z:0}});const w=new ue({nodes:m,edges:d});this.formatCentripetal(a,w);const{maxIteration:b,minMovement:x,onTick:M}=a;if(this.lastLayoutNodes=m,this.lastLayoutEdges=d,this.lastAssign=t,this.lastGraph=e,this.lastCalcGraph=w,this.lastOptions=a,this.lastVelMap=y,typeof window>"u")return;let N=0;return new Promise(E=>{this.timeInterval=window.setInterval(()=>{(!s||!this.running)&&E({nodes:En(e,m),edges:o}),this.runOneStep(w,e,N,y,a),this.updatePosition(e,w,y,a),t&&m.forEach(O=>e.mergeNodeData(O.id,{x:O.data.x,y:O.data.y,z:u===3?O.data.z:void 0})),M==null||M({nodes:En(e,m),edges:o}),N++,(N>=b||this.judgingDistance<x)&&(window.clearInterval(this.timeInterval),E({nodes:En(e,m),edges:o}))},0),this.running=!0})})}formatOptions(t,e){const r=Object.assign({},t),{width:i,height:s,getMass:o}=t;r.width=!i&&typeof window<"u"?window.innerWidth:i,r.height=!s&&typeof window<"u"?window.innerHeight:s,t.center||(r.center=[r.width/2,r.height/2]),o||(r.getMass=u=>{let c=1;V(u==null?void 0:u.data.mass)&&(c=u==null?void 0:u.data.mass);const f=e.getDegree(u.id,"both");return!f||f<5?c:f*5*c}),r.nodeSize=mn(t.nodeSize,t.nodeSpacing);const a=t.linkDistance?tt(1,t.linkDistance):u=>1+r.nodeSize(e.getNode(u.source))+r.nodeSize(e.getNode(u.target));return r.linkDistance=a,r.nodeStrength=tt(1,t.nodeStrength),r.edgeStrength=tt(1,t.edgeStrength),r}formatCentripetal(t,e){const{dimensions:r,centripetalOptions:i,center:s,clusterNodeStrength:o,leafCluster:a,clustering:u,nodeClusterBy:c}=t,f=e.getAllNodes(),l=i||{leaf:2,single:2,others:1,center:d=>({x:s[0],y:s[1],z:r===3?s[2]:void 0})};typeof o!="function"&&(t.clusterNodeStrength=d=>o);let h,g;if(a&&c&&(h=of(e,c),g=Array.from(new Set(f==null?void 0:f.map(d=>d.data[c])))||[],t.centripetalOptions=Object.assign(l,{single:100,leaf:d=>{const{siblingLeaves:y,sameTypeLeaves:w}=h[d.id]||{};return(w==null?void 0:w.length)===(y==null?void 0:y.length)||(g==null?void 0:g.length)===1?1:t.clusterNodeStrength(d)},others:1,center:d=>{const y=e.getDegree(d.id,"both");if(!y)return{x:100,y:100,z:0};let w;if(y===1){const{sameTypeLeaves:b=[]}=h[d.id]||{};b.length===1?w=void 0:b.length>1&&(w=af(b))}else w=void 0;return{x:w==null?void 0:w.x,y:w==null?void 0:w.y,z:w==null?void 0:w.z}}})),u&&c){h||(h=of(e,c)),g||(g=Array.from(new Set(f.map(y=>y.data[c])))),g=g.filter(y=>y!==void 0);const d={};g.forEach(y=>{const w=f.filter(b=>b.data[c]===y).map(b=>e.getNode(b.id));d[y]=af(w)}),t.centripetalOptions=Object.assign(l,{single:y=>t.clusterNodeStrength(y),leaf:y=>t.clusterNodeStrength(y),others:y=>t.clusterNodeStrength(y),center:y=>{const w=d[y.data[c]];return{x:w==null?void 0:w.x,y:w==null?void 0:w.y,z:w==null?void 0:w.z}}})}const{leaf:p,single:v,others:m}=t.centripetalOptions||{};p&&typeof p!="function"&&(t.centripetalOptions.leaf=()=>p),v&&typeof v!="function"&&(t.centripetalOptions.single=()=>v),m&&typeof m!="function"&&(t.centripetalOptions.others=()=>m)}runOneStep(t,e,r,i,s){const o={},a=t.getAllNodes(),u=t.getAllEdges();if(!(a!=null&&a.length))return;const{monitor:c}=s;if(this.calRepulsive(t,o,s),u&&this.calAttractive(t,o,s),this.calGravity(t,e,o,s),this.updateVelocity(t,o,i,s),c){const f=this.calTotalEnergy(o,a);c({energy:f,nodes:e.getAllNodes(),edges:e.getAllEdges(),iterations:r})}}calTotalEnergy(t,e){if(!(e!=null&&e.length))return 0;let r=0;return e.forEach((i,s)=>{const o=t[i.id].x,a=t[i.id].y,u=this.options.dimensions===3?t[i.id].z:0,c=o*o+a*a+u*u,{mass:f=1}=i.data;r+=f*c*.5}),r}calRepulsive(t,e,r){const{dimensions:i,factor:s,coulombDisScale:o}=r;xw(t,s,o*o,e,i)}calAttractive(t,e,r){const{dimensions:i,nodeSize:s}=r;t.getAllEdges().forEach((o,a)=>{const{source:u,target:c}=o,f=t.getNode(u),l=t.getNode(c);if(!f||!l)return;let h=l.data.x-f.data.x,g=l.data.y-f.data.y,p=i===3?l.data.z-f.data.z:0;!h&&!g&&(h=Math.random()*.01,g=Math.random()*.01,i===3&&!p&&(p=Math.random()*.01));const v=Math.sqrt(h*h+g*g+p*p);if(v<s(f)+s(l))return;const m=h/v,d=g/v,y=p/v,{linkDistance:w=200,edgeStrength:b=200}=o.data||{},M=(w-v)*b,N=f.data.mass||1,E=l.data.mass||1,O=1/N,_=1/E,S=m*M,q=d*M,R=y*M;e[u].x-=S*O,e[u].y-=q*O,e[u].z-=R*O,e[c].x+=S*_,e[c].y+=q*_,e[c].z+=R*_})}calGravity(t,e,r,i){const{getCenter:s}=i,o=t.getAllNodes(),a=e.getAllNodes(),u=e.getAllEdges(),{width:c,height:f,center:l,gravity:h,centripetalOptions:g}=i;o&&o.forEach(p=>{const{id:v,data:m}=p,{mass:d,x:y,y:w,z:b}=m,x=e.getNode(v);let M=0,N=0,E=0,O=h;const _=t.getDegree(v,"in"),S=t.getDegree(v,"out"),q=t.getDegree(v,"both"),R=s==null?void 0:s(x,q);if(R){const[T,I,k]=R;M=y-T,N=w-I,O=k}else M=y-l[0],N=w-l[1],E=b-l[2];if(O&&(r[v].x-=O*M/d,r[v].y-=O*N/d,r[v].z-=O*E/d),g){const{leaf:T,single:I,others:k,center:F}=g,{x:A,y:C,z:D,centerStrength:z}=(F==null?void 0:F(x,a,u,c,f))||{x:0,y:0,z:0,centerStrength:0};if(!V(A)||!V(C))return;const U=(y-A)/d,P=(w-C)/d,$=(b-D)/d;if(z&&(r[v].x-=z*U,r[v].y-=z*P,r[v].z-=z*$),q===0){const Z=I(x);if(!Z)return;r[v].x-=Z*U,r[v].y-=Z*P,r[v].z-=Z*$;return}if(_===0||S===0){const Z=T(x,a,u);if(!Z)return;r[v].x-=Z*U,r[v].y-=Z*P,r[v].z-=Z*$;return}const B=k(x);if(!B)return;r[v].x-=B*U,r[v].y-=B*P,r[v].z-=B*$}})}updateVelocity(t,e,r,i){const{damping:s,maxSpeed:o,interval:a,dimensions:u}=i,c=t.getAllNodes();c!=null&&c.length&&c.forEach(f=>{const{id:l}=f;let h=(r[l].x+e[l].x*a)*s||.01,g=(r[l].y+e[l].y*a)*s||.01,p=u===3?(r[l].z+e[l].z*a)*s||.01:0;const v=Math.sqrt(h*h+g*g+p*p);if(v>o){const m=o/v;h=m*h,g=m*g,p=m*p}r[l]={x:h,y:g,z:p}})}updatePosition(t,e,r,i){const{distanceThresholdMode:s,interval:o,dimensions:a}=i,u=e.getAllNodes();if(!(u!=null&&u.length)){this.judgingDistance=0;return}let c=0;s==="max"?this.judgingDistance=-1/0:s==="min"&&(this.judgingDistance=1/0),u.forEach(f=>{const{id:l}=f,h=t.getNode(l);if(V(h.data.fx)&&V(h.data.fy)){e.mergeNodeData(l,{x:h.data.fx,y:h.data.fy,z:a===3?h.data.fz:void 0});return}const g=r[l].x*o,p=r[l].y*o,v=a===3?r[l].z*o:0;e.mergeNodeData(l,{x:f.data.x+g,y:f.data.y+p,z:f.data.z+v});const m=Math.sqrt(g*g+p*p+v*v);switch(s){case"max":this.judgingDistance<m&&(this.judgingDistance=m);break;case"min":this.judgingDistance>m&&(this.judgingDistance=m);break;default:c=c+m;break}}),(!s||s==="mean")&&(this.judgingDistance=c/u.length)}}const of=(n,t)=>{const e=n.getAllNodes();if(!(e!=null&&e.length))return{};const r={};return e.forEach((i,s)=>{n.getDegree(i.id,"both")===1&&(r[i.id]=qw(n,"leaf",i,t))}),r},qw=(n,t,e,r)=>{const i=n.getDegree(e.id,"in"),s=n.getDegree(e.id,"out");let o=e,a=[];i===0?(o=n.getSuccessors(e.id)[0],a=n.getNeighbors(o.id)):s===0&&(o=n.getPredecessors(e.id)[0],a=n.getNeighbors(o.id)),a=a.filter(c=>n.getDegree(c.id,"in")===0||n.getDegree(c.id,"out")===0);const u=Ow(n,t,r,e,a);return{coreNode:o,siblingLeaves:a,sameTypeLeaves:u}},Ow=(n,t,e,r,i)=>{const s=r.data[e]||"";let o=(i==null?void 0:i.filter(a=>a.data[e]===s))||[];return o=o.filter(a=>n.getDegree(a.id,"in")===0||n.getDegree(a.id,"out")===0),o},af=n=>{const t={x:0,y:0};n.forEach(r=>{const{x:i,y:s}=r.data;t.x+=i||0,t.y+=s||0});const e=n.length||1;return{x:t.x/e,y:t.y/e}},En=(n,t)=>t.map(e=>{const{id:r,data:i}=e,s=n.getNode(r);return Object.assign(Object.assign({},s),{data:Object.assign(Object.assign({},s.data),{x:i.x,y:i.y,z:i.z})})});var ur=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function Aw(n){return n&&n.__esModule&&Object.prototype.hasOwnProperty.call(n,"default")?n.default:n}function uf(n){if(n.__esModule)return n;var t=n.default;if(typeof t=="function"){var e=function r(){return this instanceof r?Reflect.construct(t,arguments,this.constructor):t.apply(this,arguments)};e.prototype=t.prototype}else e={};return Object.defineProperty(e,"__esModule",{value:!0}),Object.keys(n).forEach(function(r){var i=Object.getOwnPropertyDescriptor(n,r);Object.defineProperty(e,r,i.get?i:{enumerable:!0,get:function(){return n[r]}})}),e}var X={};const Iw=Object.prototype.toString;function Pt(n){const t=Iw.call(n);return t.endsWith("Array]")&&!t.includes("Big")}var Tw=Object.freeze({__proto__:null,isAnyArray:Pt}),kw=uf(Tw);function jw(n){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(!Pt(n))throw new TypeError("input must be an array");if(n.length===0)throw new TypeError("input must not be empty");var e=t.fromIndex,r=e===void 0?0:e,i=t.toIndex,s=i===void 0?n.length:i;if(r<0||r>=n.length||!Number.isInteger(r))throw new Error("fromIndex must be a positive integer smaller than length");if(s<=r||s>n.length||!Number.isInteger(s))throw new Error("toIndex must be an integer greater than fromIndex and at most equal to length");for(var o=n[r],a=r+1;a<s;a++)n[a]>o&&(o=n[a]);return o}function Cw(n){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(!Pt(n))throw new TypeError("input must be an array");if(n.length===0)throw new TypeError("input must not be empty");var e=t.fromIndex,r=e===void 0?0:e,i=t.toIndex,s=i===void 0?n.length:i;if(r<0||r>=n.length||!Number.isInteger(r))throw new Error("fromIndex must be a positive integer smaller than length");if(s<=r||s>n.length||!Number.isInteger(s))throw new Error("toIndex must be an integer greater than fromIndex and at most equal to length");for(var o=n[r],a=r+1;a<s;a++)n[a]<o&&(o=n[a]);return o}function Pw(n){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(Pt(n)){if(n.length===0)throw new TypeError("input must not be empty")}else throw new TypeError("input must be an array");var e;if(t.output!==void 0){if(!Pt(t.output))throw new TypeError("output option must be an array if specified");e=t.output}else e=new Array(n.length);var r=Cw(n),i=jw(n);if(r===i)throw new RangeError("minimum and maximum input values are equal. Cannot rescale a constant array");var s=t.min,o=s===void 0?t.autoMinMax?r:0:s,a=t.max,u=a===void 0?t.autoMinMax?i:1:a;if(o>=u)throw new RangeError("min option must be smaller than max option");for(var c=(u-o)/(i-r),f=0;f<n.length;f++)e[f]=(n[f]-r)*c+o;return e}var Lw=Object.freeze({__proto__:null,default:Pw}),Dw=uf(Lw);Object.defineProperty(X,"__esModule",{value:!0});var ge=kw,cf=Dw;const cr=" ".repeat(2),ff=" ".repeat(4);function zw(){return lf(this)}function lf(n,t={}){const{maxRows:e=15,maxColumns:r=10,maxNumSize:i=8,padMinus:s="auto"}=t;return`${n.constructor.name} {
7
+ ${cr}[
8
+ ${ff}${$w(n,e,r,i,s)}
9
+ ${cr}]
10
+ ${cr}rows: ${n.rows}
11
+ ${cr}columns: ${n.columns}
12
+ }`}function $w(n,t,e,r,i){const{rows:s,columns:o}=n,a=Math.min(s,t),u=Math.min(o,e),c=[];if(i==="auto"){i=!1;e:for(let f=0;f<a;f++)for(let l=0;l<u;l++)if(n.get(f,l)<0){i=!0;break e}}for(let f=0;f<a;f++){let l=[];for(let h=0;h<u;h++)l.push(Fw(n.get(f,h),r,i));c.push(`${l.join(" ")}`)}return u!==o&&(c[c.length-1]+=` ... ${o-e} more columns`),a!==s&&c.push(`... ${s-t} more rows`),c.join(`
13
+ ${ff}`)}function Fw(n,t,e){return(n>=0&&e?` ${hf(n,t-1)}`:hf(n,t)).padEnd(t)}function hf(n,t){let e=n.toString();if(e.length<=t)return e;let r=n.toFixed(t);if(r.length>t&&(r=n.toFixed(Math.max(0,t-(r.length-t)))),r.length<=t&&!r.startsWith("0.000")&&!r.startsWith("-0.000"))return r;let i=n.toExponential(t);return i.length>t&&(i=n.toExponential(Math.max(0,t-(i.length-t)))),i.slice(0)}function Bw(n,t){n.prototype.add=function(r){return typeof r=="number"?this.addS(r):this.addM(r)},n.prototype.addS=function(r){for(let i=0;i<this.rows;i++)for(let s=0;s<this.columns;s++)this.set(i,s,this.get(i,s)+r);return this},n.prototype.addM=function(r){if(r=t.checkMatrix(r),this.rows!==r.rows||this.columns!==r.columns)throw new RangeError("Matrices dimensions must be equal");for(let i=0;i<this.rows;i++)for(let s=0;s<this.columns;s++)this.set(i,s,this.get(i,s)+r.get(i,s));return this},n.add=function(r,i){return new t(r).add(i)},n.prototype.sub=function(r){return typeof r=="number"?this.subS(r):this.subM(r)},n.prototype.subS=function(r){for(let i=0;i<this.rows;i++)for(let s=0;s<this.columns;s++)this.set(i,s,this.get(i,s)-r);return this},n.prototype.subM=function(r){if(r=t.checkMatrix(r),this.rows!==r.rows||this.columns!==r.columns)throw new RangeError("Matrices dimensions must be equal");for(let i=0;i<this.rows;i++)for(let s=0;s<this.columns;s++)this.set(i,s,this.get(i,s)-r.get(i,s));return this},n.sub=function(r,i){return new t(r).sub(i)},n.prototype.subtract=n.prototype.sub,n.prototype.subtractS=n.prototype.subS,n.prototype.subtractM=n.prototype.subM,n.subtract=n.sub,n.prototype.mul=function(r){return typeof r=="number"?this.mulS(r):this.mulM(r)},n.prototype.mulS=function(r){for(let i=0;i<this.rows;i++)for(let s=0;s<this.columns;s++)this.set(i,s,this.get(i,s)*r);return this},n.prototype.mulM=function(r){if(r=t.checkMatrix(r),this.rows!==r.rows||this.columns!==r.columns)throw new RangeError("Matrices dimensions must be equal");for(let i=0;i<this.rows;i++)for(let s=0;s<this.columns;s++)this.set(i,s,this.get(i,s)*r.get(i,s));return this},n.mul=function(r,i){return new t(r).mul(i)},n.prototype.multiply=n.prototype.mul,n.prototype.multiplyS=n.prototype.mulS,n.prototype.multiplyM=n.prototype.mulM,n.multiply=n.mul,n.prototype.div=function(r){return typeof r=="number"?this.divS(r):this.divM(r)},n.prototype.divS=function(r){for(let i=0;i<this.rows;i++)for(let s=0;s<this.columns;s++)this.set(i,s,this.get(i,s)/r);return this},n.prototype.divM=function(r){if(r=t.checkMatrix(r),this.rows!==r.rows||this.columns!==r.columns)throw new RangeError("Matrices dimensions must be equal");for(let i=0;i<this.rows;i++)for(let s=0;s<this.columns;s++)this.set(i,s,this.get(i,s)/r.get(i,s));return this},n.div=function(r,i){return new t(r).div(i)},n.prototype.divide=n.prototype.div,n.prototype.divideS=n.prototype.divS,n.prototype.divideM=n.prototype.divM,n.divide=n.div,n.prototype.mod=function(r){return typeof r=="number"?this.modS(r):this.modM(r)},n.prototype.modS=function(r){for(let i=0;i<this.rows;i++)for(let s=0;s<this.columns;s++)this.set(i,s,this.get(i,s)%r);return this},n.prototype.modM=function(r){if(r=t.checkMatrix(r),this.rows!==r.rows||this.columns!==r.columns)throw new RangeError("Matrices dimensions must be equal");for(let i=0;i<this.rows;i++)for(let s=0;s<this.columns;s++)this.set(i,s,this.get(i,s)%r.get(i,s));return this},n.mod=function(r,i){return new t(r).mod(i)},n.prototype.modulus=n.prototype.mod,n.prototype.modulusS=n.prototype.modS,n.prototype.modulusM=n.prototype.modM,n.modulus=n.mod,n.prototype.and=function(r){return typeof r=="number"?this.andS(r):this.andM(r)},n.prototype.andS=function(r){for(let i=0;i<this.rows;i++)for(let s=0;s<this.columns;s++)this.set(i,s,this.get(i,s)&r);return this},n.prototype.andM=function(r){if(r=t.checkMatrix(r),this.rows!==r.rows||this.columns!==r.columns)throw new RangeError("Matrices dimensions must be equal");for(let i=0;i<this.rows;i++)for(let s=0;s<this.columns;s++)this.set(i,s,this.get(i,s)&r.get(i,s));return this},n.and=function(r,i){return new t(r).and(i)},n.prototype.or=function(r){return typeof r=="number"?this.orS(r):this.orM(r)},n.prototype.orS=function(r){for(let i=0;i<this.rows;i++)for(let s=0;s<this.columns;s++)this.set(i,s,this.get(i,s)|r);return this},n.prototype.orM=function(r){if(r=t.checkMatrix(r),this.rows!==r.rows||this.columns!==r.columns)throw new RangeError("Matrices dimensions must be equal");for(let i=0;i<this.rows;i++)for(let s=0;s<this.columns;s++)this.set(i,s,this.get(i,s)|r.get(i,s));return this},n.or=function(r,i){return new t(r).or(i)},n.prototype.xor=function(r){return typeof r=="number"?this.xorS(r):this.xorM(r)},n.prototype.xorS=function(r){for(let i=0;i<this.rows;i++)for(let s=0;s<this.columns;s++)this.set(i,s,this.get(i,s)^r);return this},n.prototype.xorM=function(r){if(r=t.checkMatrix(r),this.rows!==r.rows||this.columns!==r.columns)throw new RangeError("Matrices dimensions must be equal");for(let i=0;i<this.rows;i++)for(let s=0;s<this.columns;s++)this.set(i,s,this.get(i,s)^r.get(i,s));return this},n.xor=function(r,i){return new t(r).xor(i)},n.prototype.leftShift=function(r){return typeof r=="number"?this.leftShiftS(r):this.leftShiftM(r)},n.prototype.leftShiftS=function(r){for(let i=0;i<this.rows;i++)for(let s=0;s<this.columns;s++)this.set(i,s,this.get(i,s)<<r);return this},n.prototype.leftShiftM=function(r){if(r=t.checkMatrix(r),this.rows!==r.rows||this.columns!==r.columns)throw new RangeError("Matrices dimensions must be equal");for(let i=0;i<this.rows;i++)for(let s=0;s<this.columns;s++)this.set(i,s,this.get(i,s)<<r.get(i,s));return this},n.leftShift=function(r,i){return new t(r).leftShift(i)},n.prototype.signPropagatingRightShift=function(r){return typeof r=="number"?this.signPropagatingRightShiftS(r):this.signPropagatingRightShiftM(r)},n.prototype.signPropagatingRightShiftS=function(r){for(let i=0;i<this.rows;i++)for(let s=0;s<this.columns;s++)this.set(i,s,this.get(i,s)>>r);return this},n.prototype.signPropagatingRightShiftM=function(r){if(r=t.checkMatrix(r),this.rows!==r.rows||this.columns!==r.columns)throw new RangeError("Matrices dimensions must be equal");for(let i=0;i<this.rows;i++)for(let s=0;s<this.columns;s++)this.set(i,s,this.get(i,s)>>r.get(i,s));return this},n.signPropagatingRightShift=function(r,i){return new t(r).signPropagatingRightShift(i)},n.prototype.rightShift=function(r){return typeof r=="number"?this.rightShiftS(r):this.rightShiftM(r)},n.prototype.rightShiftS=function(r){for(let i=0;i<this.rows;i++)for(let s=0;s<this.columns;s++)this.set(i,s,this.get(i,s)>>>r);return this},n.prototype.rightShiftM=function(r){if(r=t.checkMatrix(r),this.rows!==r.rows||this.columns!==r.columns)throw new RangeError("Matrices dimensions must be equal");for(let i=0;i<this.rows;i++)for(let s=0;s<this.columns;s++)this.set(i,s,this.get(i,s)>>>r.get(i,s));return this},n.rightShift=function(r,i){return new t(r).rightShift(i)},n.prototype.zeroFillRightShift=n.prototype.rightShift,n.prototype.zeroFillRightShiftS=n.prototype.rightShiftS,n.prototype.zeroFillRightShiftM=n.prototype.rightShiftM,n.zeroFillRightShift=n.rightShift,n.prototype.not=function(){for(let r=0;r<this.rows;r++)for(let i=0;i<this.columns;i++)this.set(r,i,~this.get(r,i));return this},n.not=function(r){return new t(r).not()},n.prototype.abs=function(){for(let r=0;r<this.rows;r++)for(let i=0;i<this.columns;i++)this.set(r,i,Math.abs(this.get(r,i)));return this},n.abs=function(r){return new t(r).abs()},n.prototype.acos=function(){for(let r=0;r<this.rows;r++)for(let i=0;i<this.columns;i++)this.set(r,i,Math.acos(this.get(r,i)));return this},n.acos=function(r){return new t(r).acos()},n.prototype.acosh=function(){for(let r=0;r<this.rows;r++)for(let i=0;i<this.columns;i++)this.set(r,i,Math.acosh(this.get(r,i)));return this},n.acosh=function(r){return new t(r).acosh()},n.prototype.asin=function(){for(let r=0;r<this.rows;r++)for(let i=0;i<this.columns;i++)this.set(r,i,Math.asin(this.get(r,i)));return this},n.asin=function(r){return new t(r).asin()},n.prototype.asinh=function(){for(let r=0;r<this.rows;r++)for(let i=0;i<this.columns;i++)this.set(r,i,Math.asinh(this.get(r,i)));return this},n.asinh=function(r){return new t(r).asinh()},n.prototype.atan=function(){for(let r=0;r<this.rows;r++)for(let i=0;i<this.columns;i++)this.set(r,i,Math.atan(this.get(r,i)));return this},n.atan=function(r){return new t(r).atan()},n.prototype.atanh=function(){for(let r=0;r<this.rows;r++)for(let i=0;i<this.columns;i++)this.set(r,i,Math.atanh(this.get(r,i)));return this},n.atanh=function(r){return new t(r).atanh()},n.prototype.cbrt=function(){for(let r=0;r<this.rows;r++)for(let i=0;i<this.columns;i++)this.set(r,i,Math.cbrt(this.get(r,i)));return this},n.cbrt=function(r){return new t(r).cbrt()},n.prototype.ceil=function(){for(let r=0;r<this.rows;r++)for(let i=0;i<this.columns;i++)this.set(r,i,Math.ceil(this.get(r,i)));return this},n.ceil=function(r){return new t(r).ceil()},n.prototype.clz32=function(){for(let r=0;r<this.rows;r++)for(let i=0;i<this.columns;i++)this.set(r,i,Math.clz32(this.get(r,i)));return this},n.clz32=function(r){return new t(r).clz32()},n.prototype.cos=function(){for(let r=0;r<this.rows;r++)for(let i=0;i<this.columns;i++)this.set(r,i,Math.cos(this.get(r,i)));return this},n.cos=function(r){return new t(r).cos()},n.prototype.cosh=function(){for(let r=0;r<this.rows;r++)for(let i=0;i<this.columns;i++)this.set(r,i,Math.cosh(this.get(r,i)));return this},n.cosh=function(r){return new t(r).cosh()},n.prototype.exp=function(){for(let r=0;r<this.rows;r++)for(let i=0;i<this.columns;i++)this.set(r,i,Math.exp(this.get(r,i)));return this},n.exp=function(r){return new t(r).exp()},n.prototype.expm1=function(){for(let r=0;r<this.rows;r++)for(let i=0;i<this.columns;i++)this.set(r,i,Math.expm1(this.get(r,i)));return this},n.expm1=function(r){return new t(r).expm1()},n.prototype.floor=function(){for(let r=0;r<this.rows;r++)for(let i=0;i<this.columns;i++)this.set(r,i,Math.floor(this.get(r,i)));return this},n.floor=function(r){return new t(r).floor()},n.prototype.fround=function(){for(let r=0;r<this.rows;r++)for(let i=0;i<this.columns;i++)this.set(r,i,Math.fround(this.get(r,i)));return this},n.fround=function(r){return new t(r).fround()},n.prototype.log=function(){for(let r=0;r<this.rows;r++)for(let i=0;i<this.columns;i++)this.set(r,i,Math.log(this.get(r,i)));return this},n.log=function(r){return new t(r).log()},n.prototype.log1p=function(){for(let r=0;r<this.rows;r++)for(let i=0;i<this.columns;i++)this.set(r,i,Math.log1p(this.get(r,i)));return this},n.log1p=function(r){return new t(r).log1p()},n.prototype.log10=function(){for(let r=0;r<this.rows;r++)for(let i=0;i<this.columns;i++)this.set(r,i,Math.log10(this.get(r,i)));return this},n.log10=function(r){return new t(r).log10()},n.prototype.log2=function(){for(let r=0;r<this.rows;r++)for(let i=0;i<this.columns;i++)this.set(r,i,Math.log2(this.get(r,i)));return this},n.log2=function(r){return new t(r).log2()},n.prototype.round=function(){for(let r=0;r<this.rows;r++)for(let i=0;i<this.columns;i++)this.set(r,i,Math.round(this.get(r,i)));return this},n.round=function(r){return new t(r).round()},n.prototype.sign=function(){for(let r=0;r<this.rows;r++)for(let i=0;i<this.columns;i++)this.set(r,i,Math.sign(this.get(r,i)));return this},n.sign=function(r){return new t(r).sign()},n.prototype.sin=function(){for(let r=0;r<this.rows;r++)for(let i=0;i<this.columns;i++)this.set(r,i,Math.sin(this.get(r,i)));return this},n.sin=function(r){return new t(r).sin()},n.prototype.sinh=function(){for(let r=0;r<this.rows;r++)for(let i=0;i<this.columns;i++)this.set(r,i,Math.sinh(this.get(r,i)));return this},n.sinh=function(r){return new t(r).sinh()},n.prototype.sqrt=function(){for(let r=0;r<this.rows;r++)for(let i=0;i<this.columns;i++)this.set(r,i,Math.sqrt(this.get(r,i)));return this},n.sqrt=function(r){return new t(r).sqrt()},n.prototype.tan=function(){for(let r=0;r<this.rows;r++)for(let i=0;i<this.columns;i++)this.set(r,i,Math.tan(this.get(r,i)));return this},n.tan=function(r){return new t(r).tan()},n.prototype.tanh=function(){for(let r=0;r<this.rows;r++)for(let i=0;i<this.columns;i++)this.set(r,i,Math.tanh(this.get(r,i)));return this},n.tanh=function(r){return new t(r).tanh()},n.prototype.trunc=function(){for(let r=0;r<this.rows;r++)for(let i=0;i<this.columns;i++)this.set(r,i,Math.trunc(this.get(r,i)));return this},n.trunc=function(r){return new t(r).trunc()},n.pow=function(r,i){return new t(r).pow(i)},n.prototype.pow=function(r){return typeof r=="number"?this.powS(r):this.powM(r)},n.prototype.powS=function(r){for(let i=0;i<this.rows;i++)for(let s=0;s<this.columns;s++)this.set(i,s,this.get(i,s)**r);return this},n.prototype.powM=function(r){if(r=t.checkMatrix(r),this.rows!==r.rows||this.columns!==r.columns)throw new RangeError("Matrices dimensions must be equal");for(let i=0;i<this.rows;i++)for(let s=0;s<this.columns;s++)this.set(i,s,this.get(i,s)**r.get(i,s));return this}}function Ee(n,t,e){let r=e?n.rows:n.rows-1;if(t<0||t>r)throw new RangeError("Row index out of range")}function xe(n,t,e){let r=e?n.columns:n.columns-1;if(t<0||t>r)throw new RangeError("Column index out of range")}function vt(n,t){if(t.to1DArray&&(t=t.to1DArray()),t.length!==n.columns)throw new RangeError("vector size must be the same as the number of columns");return t}function mt(n,t){if(t.to1DArray&&(t=t.to1DArray()),t.length!==n.rows)throw new RangeError("vector size must be the same as the number of rows");return t}function xn(n,t){if(!ge.isAnyArray(t))throw new TypeError("row indices must be an array");for(let e=0;e<t.length;e++)if(t[e]<0||t[e]>=n.rows)throw new RangeError("row indices are out of range")}function Nn(n,t){if(!ge.isAnyArray(t))throw new TypeError("column indices must be an array");for(let e=0;e<t.length;e++)if(t[e]<0||t[e]>=n.columns)throw new RangeError("column indices are out of range")}function Mn(n,t,e,r,i){if(arguments.length!==5)throw new RangeError("expected 4 arguments");if(lr("startRow",t),lr("endRow",e),lr("startColumn",r),lr("endColumn",i),t>e||r>i||t<0||t>=n.rows||e<0||e>=n.rows||r<0||r>=n.columns||i<0||i>=n.columns)throw new RangeError("Submatrix indices are out of range")}function fr(n,t=0){let e=[];for(let r=0;r<n;r++)e.push(t);return e}function lr(n,t){if(typeof t!="number")throw new TypeError(`${n} must be a number`)}function yt(n){if(n.isEmpty())throw new Error("Empty matrix has no elements to index")}function Uw(n){let t=fr(n.rows);for(let e=0;e<n.rows;++e)for(let r=0;r<n.columns;++r)t[e]+=n.get(e,r);return t}function Gw(n){let t=fr(n.columns);for(let e=0;e<n.rows;++e)for(let r=0;r<n.columns;++r)t[r]+=n.get(e,r);return t}function Vw(n){let t=0;for(let e=0;e<n.rows;e++)for(let r=0;r<n.columns;r++)t+=n.get(e,r);return t}function Ww(n){let t=fr(n.rows,1);for(let e=0;e<n.rows;++e)for(let r=0;r<n.columns;++r)t[e]*=n.get(e,r);return t}function Yw(n){let t=fr(n.columns,1);for(let e=0;e<n.rows;++e)for(let r=0;r<n.columns;++r)t[r]*=n.get(e,r);return t}function Kw(n){let t=1;for(let e=0;e<n.rows;e++)for(let r=0;r<n.columns;r++)t*=n.get(e,r);return t}function Xw(n,t,e){const r=n.rows,i=n.columns,s=[];for(let o=0;o<r;o++){let a=0,u=0,c=0;for(let f=0;f<i;f++)c=n.get(o,f)-e[o],a+=c,u+=c*c;t?s.push((u-a*a/i)/(i-1)):s.push((u-a*a/i)/i)}return s}function Zw(n,t,e){const r=n.rows,i=n.columns,s=[];for(let o=0;o<i;o++){let a=0,u=0,c=0;for(let f=0;f<r;f++)c=n.get(f,o)-e[o],a+=c,u+=c*c;t?s.push((u-a*a/r)/(r-1)):s.push((u-a*a/r)/r)}return s}function Jw(n,t,e){const r=n.rows,i=n.columns,s=r*i;let o=0,a=0,u=0;for(let c=0;c<r;c++)for(let f=0;f<i;f++)u=n.get(c,f)-e,o+=u,a+=u*u;return t?(a-o*o/s)/(s-1):(a-o*o/s)/s}function Qw(n,t){for(let e=0;e<n.rows;e++)for(let r=0;r<n.columns;r++)n.set(e,r,n.get(e,r)-t[e])}function Hw(n,t){for(let e=0;e<n.rows;e++)for(let r=0;r<n.columns;r++)n.set(e,r,n.get(e,r)-t[r])}function e1(n,t){for(let e=0;e<n.rows;e++)for(let r=0;r<n.columns;r++)n.set(e,r,n.get(e,r)-t)}function t1(n){const t=[];for(let e=0;e<n.rows;e++){let r=0;for(let i=0;i<n.columns;i++)r+=n.get(e,i)**2/(n.columns-1);t.push(Math.sqrt(r))}return t}function r1(n,t){for(let e=0;e<n.rows;e++)for(let r=0;r<n.columns;r++)n.set(e,r,n.get(e,r)/t[e])}function n1(n){const t=[];for(let e=0;e<n.columns;e++){let r=0;for(let i=0;i<n.rows;i++)r+=n.get(i,e)**2/(n.rows-1);t.push(Math.sqrt(r))}return t}function i1(n,t){for(let e=0;e<n.rows;e++)for(let r=0;r<n.columns;r++)n.set(e,r,n.get(e,r)/t[r])}function s1(n){const t=n.size-1;let e=0;for(let r=0;r<n.columns;r++)for(let i=0;i<n.rows;i++)e+=n.get(i,r)**2/t;return Math.sqrt(e)}function o1(n,t){for(let e=0;e<n.rows;e++)for(let r=0;r<n.columns;r++)n.set(e,r,n.get(e,r)/t)}class Y{static from1DArray(t,e,r){if(t*e!==r.length)throw new RangeError("data length does not match given dimensions");let s=new j(t,e);for(let o=0;o<t;o++)for(let a=0;a<e;a++)s.set(o,a,r[o*e+a]);return s}static rowVector(t){let e=new j(1,t.length);for(let r=0;r<t.length;r++)e.set(0,r,t[r]);return e}static columnVector(t){let e=new j(t.length,1);for(let r=0;r<t.length;r++)e.set(r,0,t[r]);return e}static zeros(t,e){return new j(t,e)}static ones(t,e){return new j(t,e).fill(1)}static rand(t,e,r={}){if(typeof r!="object")throw new TypeError("options must be an object");const{random:i=Math.random}=r;let s=new j(t,e);for(let o=0;o<t;o++)for(let a=0;a<e;a++)s.set(o,a,i());return s}static randInt(t,e,r={}){if(typeof r!="object")throw new TypeError("options must be an object");const{min:i=0,max:s=1e3,random:o=Math.random}=r;if(!Number.isInteger(i))throw new TypeError("min must be an integer");if(!Number.isInteger(s))throw new TypeError("max must be an integer");if(i>=s)throw new RangeError("min must be smaller than max");let a=s-i,u=new j(t,e);for(let c=0;c<t;c++)for(let f=0;f<e;f++){let l=i+Math.round(o()*a);u.set(c,f,l)}return u}static eye(t,e,r){e===void 0&&(e=t),r===void 0&&(r=1);let i=Math.min(t,e),s=this.zeros(t,e);for(let o=0;o<i;o++)s.set(o,o,r);return s}static diag(t,e,r){let i=t.length;e===void 0&&(e=i),r===void 0&&(r=e);let s=Math.min(i,e,r),o=this.zeros(e,r);for(let a=0;a<s;a++)o.set(a,a,t[a]);return o}static min(t,e){t=this.checkMatrix(t),e=this.checkMatrix(e);let r=t.rows,i=t.columns,s=new j(r,i);for(let o=0;o<r;o++)for(let a=0;a<i;a++)s.set(o,a,Math.min(t.get(o,a),e.get(o,a)));return s}static max(t,e){t=this.checkMatrix(t),e=this.checkMatrix(e);let r=t.rows,i=t.columns,s=new this(r,i);for(let o=0;o<r;o++)for(let a=0;a<i;a++)s.set(o,a,Math.max(t.get(o,a),e.get(o,a)));return s}static checkMatrix(t){return Y.isMatrix(t)?t:new j(t)}static isMatrix(t){return t!=null&&t.klass==="Matrix"}get size(){return this.rows*this.columns}apply(t){if(typeof t!="function")throw new TypeError("callback must be a function");for(let e=0;e<this.rows;e++)for(let r=0;r<this.columns;r++)t.call(this,e,r);return this}to1DArray(){let t=[];for(let e=0;e<this.rows;e++)for(let r=0;r<this.columns;r++)t.push(this.get(e,r));return t}to2DArray(){let t=[];for(let e=0;e<this.rows;e++){t.push([]);for(let r=0;r<this.columns;r++)t[e].push(this.get(e,r))}return t}toJSON(){return this.to2DArray()}isRowVector(){return this.rows===1}isColumnVector(){return this.columns===1}isVector(){return this.rows===1||this.columns===1}isSquare(){return this.rows===this.columns}isEmpty(){return this.rows===0||this.columns===0}isSymmetric(){if(this.isSquare()){for(let t=0;t<this.rows;t++)for(let e=0;e<=t;e++)if(this.get(t,e)!==this.get(e,t))return!1;return!0}return!1}isDistance(){if(!this.isSymmetric())return!1;for(let t=0;t<this.rows;t++)if(this.get(t,t)!==0)return!1;return!0}isEchelonForm(){let t=0,e=0,r=-1,i=!0,s=!1;for(;t<this.rows&&i;){for(e=0,s=!1;e<this.columns&&s===!1;)this.get(t,e)===0?e++:this.get(t,e)===1&&e>r?(s=!0,r=e):(i=!1,s=!0);t++}return i}isReducedEchelonForm(){let t=0,e=0,r=-1,i=!0,s=!1;for(;t<this.rows&&i;){for(e=0,s=!1;e<this.columns&&s===!1;)this.get(t,e)===0?e++:this.get(t,e)===1&&e>r?(s=!0,r=e):(i=!1,s=!0);for(let o=e+1;o<this.rows;o++)this.get(t,o)!==0&&(i=!1);t++}return i}echelonForm(){let t=this.clone(),e=0,r=0;for(;e<t.rows&&r<t.columns;){let i=e;for(let s=e;s<t.rows;s++)t.get(s,r)>t.get(i,r)&&(i=s);if(t.get(i,r)===0)r++;else{t.swapRows(e,i);let s=t.get(e,r);for(let o=r;o<t.columns;o++)t.set(e,o,t.get(e,o)/s);for(let o=e+1;o<t.rows;o++){let a=t.get(o,r)/t.get(e,r);t.set(o,r,0);for(let u=r+1;u<t.columns;u++)t.set(o,u,t.get(o,u)-t.get(e,u)*a)}e++,r++}}return t}reducedEchelonForm(){let t=this.echelonForm(),e=t.columns,r=t.rows,i=r-1;for(;i>=0;)if(t.maxRow(i)===0)i--;else{let s=0,o=!1;for(;s<r&&o===!1;)t.get(i,s)===1?o=!0:s++;for(let a=0;a<i;a++){let u=t.get(a,s);for(let c=s;c<e;c++){let f=t.get(a,c)-u*t.get(i,c);t.set(a,c,f)}}i--}return t}set(){throw new Error("set method is unimplemented")}get(){throw new Error("get method is unimplemented")}repeat(t={}){if(typeof t!="object")throw new TypeError("options must be an object");const{rows:e=1,columns:r=1}=t;if(!Number.isInteger(e)||e<=0)throw new TypeError("rows must be a positive integer");if(!Number.isInteger(r)||r<=0)throw new TypeError("columns must be a positive integer");let i=new j(this.rows*e,this.columns*r);for(let s=0;s<e;s++)for(let o=0;o<r;o++)i.setSubMatrix(this,this.rows*s,this.columns*o);return i}fill(t){for(let e=0;e<this.rows;e++)for(let r=0;r<this.columns;r++)this.set(e,r,t);return this}neg(){return this.mulS(-1)}getRow(t){Ee(this,t);let e=[];for(let r=0;r<this.columns;r++)e.push(this.get(t,r));return e}getRowVector(t){return j.rowVector(this.getRow(t))}setRow(t,e){Ee(this,t),e=vt(this,e);for(let r=0;r<this.columns;r++)this.set(t,r,e[r]);return this}swapRows(t,e){Ee(this,t),Ee(this,e);for(let r=0;r<this.columns;r++){let i=this.get(t,r);this.set(t,r,this.get(e,r)),this.set(e,r,i)}return this}getColumn(t){xe(this,t);let e=[];for(let r=0;r<this.rows;r++)e.push(this.get(r,t));return e}getColumnVector(t){return j.columnVector(this.getColumn(t))}setColumn(t,e){xe(this,t),e=mt(this,e);for(let r=0;r<this.rows;r++)this.set(r,t,e[r]);return this}swapColumns(t,e){xe(this,t),xe(this,e);for(let r=0;r<this.rows;r++){let i=this.get(r,t);this.set(r,t,this.get(r,e)),this.set(r,e,i)}return this}addRowVector(t){t=vt(this,t);for(let e=0;e<this.rows;e++)for(let r=0;r<this.columns;r++)this.set(e,r,this.get(e,r)+t[r]);return this}subRowVector(t){t=vt(this,t);for(let e=0;e<this.rows;e++)for(let r=0;r<this.columns;r++)this.set(e,r,this.get(e,r)-t[r]);return this}mulRowVector(t){t=vt(this,t);for(let e=0;e<this.rows;e++)for(let r=0;r<this.columns;r++)this.set(e,r,this.get(e,r)*t[r]);return this}divRowVector(t){t=vt(this,t);for(let e=0;e<this.rows;e++)for(let r=0;r<this.columns;r++)this.set(e,r,this.get(e,r)/t[r]);return this}addColumnVector(t){t=mt(this,t);for(let e=0;e<this.rows;e++)for(let r=0;r<this.columns;r++)this.set(e,r,this.get(e,r)+t[e]);return this}subColumnVector(t){t=mt(this,t);for(let e=0;e<this.rows;e++)for(let r=0;r<this.columns;r++)this.set(e,r,this.get(e,r)-t[e]);return this}mulColumnVector(t){t=mt(this,t);for(let e=0;e<this.rows;e++)for(let r=0;r<this.columns;r++)this.set(e,r,this.get(e,r)*t[e]);return this}divColumnVector(t){t=mt(this,t);for(let e=0;e<this.rows;e++)for(let r=0;r<this.columns;r++)this.set(e,r,this.get(e,r)/t[e]);return this}mulRow(t,e){Ee(this,t);for(let r=0;r<this.columns;r++)this.set(t,r,this.get(t,r)*e);return this}mulColumn(t,e){xe(this,t);for(let r=0;r<this.rows;r++)this.set(r,t,this.get(r,t)*e);return this}max(t){if(this.isEmpty())return NaN;switch(t){case"row":{const e=new Array(this.rows).fill(Number.NEGATIVE_INFINITY);for(let r=0;r<this.rows;r++)for(let i=0;i<this.columns;i++)this.get(r,i)>e[r]&&(e[r]=this.get(r,i));return e}case"column":{const e=new Array(this.columns).fill(Number.NEGATIVE_INFINITY);for(let r=0;r<this.rows;r++)for(let i=0;i<this.columns;i++)this.get(r,i)>e[i]&&(e[i]=this.get(r,i));return e}case void 0:{let e=this.get(0,0);for(let r=0;r<this.rows;r++)for(let i=0;i<this.columns;i++)this.get(r,i)>e&&(e=this.get(r,i));return e}default:throw new Error(`invalid option: ${t}`)}}maxIndex(){yt(this);let t=this.get(0,0),e=[0,0];for(let r=0;r<this.rows;r++)for(let i=0;i<this.columns;i++)this.get(r,i)>t&&(t=this.get(r,i),e[0]=r,e[1]=i);return e}min(t){if(this.isEmpty())return NaN;switch(t){case"row":{const e=new Array(this.rows).fill(Number.POSITIVE_INFINITY);for(let r=0;r<this.rows;r++)for(let i=0;i<this.columns;i++)this.get(r,i)<e[r]&&(e[r]=this.get(r,i));return e}case"column":{const e=new Array(this.columns).fill(Number.POSITIVE_INFINITY);for(let r=0;r<this.rows;r++)for(let i=0;i<this.columns;i++)this.get(r,i)<e[i]&&(e[i]=this.get(r,i));return e}case void 0:{let e=this.get(0,0);for(let r=0;r<this.rows;r++)for(let i=0;i<this.columns;i++)this.get(r,i)<e&&(e=this.get(r,i));return e}default:throw new Error(`invalid option: ${t}`)}}minIndex(){yt(this);let t=this.get(0,0),e=[0,0];for(let r=0;r<this.rows;r++)for(let i=0;i<this.columns;i++)this.get(r,i)<t&&(t=this.get(r,i),e[0]=r,e[1]=i);return e}maxRow(t){if(Ee(this,t),this.isEmpty())return NaN;let e=this.get(t,0);for(let r=1;r<this.columns;r++)this.get(t,r)>e&&(e=this.get(t,r));return e}maxRowIndex(t){Ee(this,t),yt(this);let e=this.get(t,0),r=[t,0];for(let i=1;i<this.columns;i++)this.get(t,i)>e&&(e=this.get(t,i),r[1]=i);return r}minRow(t){if(Ee(this,t),this.isEmpty())return NaN;let e=this.get(t,0);for(let r=1;r<this.columns;r++)this.get(t,r)<e&&(e=this.get(t,r));return e}minRowIndex(t){Ee(this,t),yt(this);let e=this.get(t,0),r=[t,0];for(let i=1;i<this.columns;i++)this.get(t,i)<e&&(e=this.get(t,i),r[1]=i);return r}maxColumn(t){if(xe(this,t),this.isEmpty())return NaN;let e=this.get(0,t);for(let r=1;r<this.rows;r++)this.get(r,t)>e&&(e=this.get(r,t));return e}maxColumnIndex(t){xe(this,t),yt(this);let e=this.get(0,t),r=[0,t];for(let i=1;i<this.rows;i++)this.get(i,t)>e&&(e=this.get(i,t),r[0]=i);return r}minColumn(t){if(xe(this,t),this.isEmpty())return NaN;let e=this.get(0,t);for(let r=1;r<this.rows;r++)this.get(r,t)<e&&(e=this.get(r,t));return e}minColumnIndex(t){xe(this,t),yt(this);let e=this.get(0,t),r=[0,t];for(let i=1;i<this.rows;i++)this.get(i,t)<e&&(e=this.get(i,t),r[0]=i);return r}diag(){let t=Math.min(this.rows,this.columns),e=[];for(let r=0;r<t;r++)e.push(this.get(r,r));return e}norm(t="frobenius"){switch(t){case"max":return this.max();case"frobenius":return Math.sqrt(this.dot(this));default:throw new RangeError(`unknown norm type: ${t}`)}}cumulativeSum(){let t=0;for(let e=0;e<this.rows;e++)for(let r=0;r<this.columns;r++)t+=this.get(e,r),this.set(e,r,t);return this}dot(t){Y.isMatrix(t)&&(t=t.to1DArray());let e=this.to1DArray();if(e.length!==t.length)throw new RangeError("vectors do not have the same size");let r=0;for(let i=0;i<e.length;i++)r+=e[i]*t[i];return r}mmul(t){t=j.checkMatrix(t);let e=this.rows,r=this.columns,i=t.columns,s=new j(e,i),o=new Float64Array(r);for(let a=0;a<i;a++){for(let u=0;u<r;u++)o[u]=t.get(u,a);for(let u=0;u<e;u++){let c=0;for(let f=0;f<r;f++)c+=this.get(u,f)*o[f];s.set(u,a,c)}}return s}mpow(t){if(!this.isSquare())throw new RangeError("Matrix must be square");if(!Number.isInteger(t)||t<0)throw new RangeError("Exponent must be a non-negative integer");let e=j.eye(this.rows),r=this;for(let i=t;i>1;i/=2)i&1&&(e=e.mmul(r)),r=r.mmul(r);return e}strassen2x2(t){t=j.checkMatrix(t);let e=new j(2,2);const r=this.get(0,0),i=t.get(0,0),s=this.get(0,1),o=t.get(0,1),a=this.get(1,0),u=t.get(1,0),c=this.get(1,1),f=t.get(1,1),l=(r+c)*(i+f),h=(a+c)*i,g=r*(o-f),p=c*(u-i),v=(r+s)*f,m=(a-r)*(i+o),d=(s-c)*(u+f),y=l+p-v+d,w=g+v,b=h+p,x=l-h+g+m;return e.set(0,0,y),e.set(0,1,w),e.set(1,0,b),e.set(1,1,x),e}strassen3x3(t){t=j.checkMatrix(t);let e=new j(3,3);const r=this.get(0,0),i=this.get(0,1),s=this.get(0,2),o=this.get(1,0),a=this.get(1,1),u=this.get(1,2),c=this.get(2,0),f=this.get(2,1),l=this.get(2,2),h=t.get(0,0),g=t.get(0,1),p=t.get(0,2),v=t.get(1,0),m=t.get(1,1),d=t.get(1,2),y=t.get(2,0),w=t.get(2,1),b=t.get(2,2),x=(r+i+s-o-a-f-l)*m,M=(r-o)*(-g+m),N=a*(-h+g+v-m-d-y+b),E=(-r+o+a)*(h-g+m),O=(o+a)*(-h+g),_=r*h,S=(-r+c+f)*(h-p+d),q=(-r+c)*(p-d),R=(c+f)*(-h+p),T=(r+i+s-a-u-c-f)*d,I=f*(-h+p+v-m-d-y+w),k=(-s+f+l)*(m+y-w),F=(s-l)*(m-w),A=s*y,C=(f+l)*(-y+w),D=(-s+a+u)*(d+y-b),z=(s-u)*(d-b),U=(a+u)*(-y+b),P=i*v,$=u*w,B=o*p,Z=c*g,G=l*b,le=_+A+P,_e=x+E+O+_+k+A+C,tc=_+S+R+T+A+D+U,rc=M+N+E+_+A+D+z,nc=M+E+O+_+$,ic=A+D+z+U+B,sc=_+S+q+I+k+F+A,H=k+F+A+C+Z,Ot=_+S+q+R+G;return e.set(0,0,le),e.set(0,1,_e),e.set(0,2,tc),e.set(1,0,rc),e.set(1,1,nc),e.set(1,2,ic),e.set(2,0,sc),e.set(2,1,H),e.set(2,2,Ot),e}mmulStrassen(t){t=j.checkMatrix(t);let e=this.clone(),r=e.rows,i=e.columns,s=t.rows,o=t.columns;i!==s&&console.warn(`Multiplying ${r} x ${i} and ${s} x ${o} matrix: dimensions do not match.`);function a(l,h,g){let p=l.rows,v=l.columns;if(p===h&&v===g)return l;{let m=Y.zeros(h,g);return m=m.setSubMatrix(l,0,0),m}}let u=Math.max(r,s),c=Math.max(i,o);e=a(e,u,c),t=a(t,u,c);function f(l,h,g,p){if(g<=512||p<=512)return l.mmul(h);g%2===1&&p%2===1?(l=a(l,g+1,p+1),h=a(h,g+1,p+1)):g%2===1?(l=a(l,g+1,p),h=a(h,g+1,p)):p%2===1&&(l=a(l,g,p+1),h=a(h,g,p+1));let v=parseInt(l.rows/2,10),m=parseInt(l.columns/2,10),d=l.subMatrix(0,v-1,0,m-1),y=h.subMatrix(0,v-1,0,m-1),w=l.subMatrix(0,v-1,m,l.columns-1),b=h.subMatrix(0,v-1,m,h.columns-1),x=l.subMatrix(v,l.rows-1,0,m-1),M=h.subMatrix(v,h.rows-1,0,m-1),N=l.subMatrix(v,l.rows-1,m,l.columns-1),E=h.subMatrix(v,h.rows-1,m,h.columns-1),O=f(Y.add(d,N),Y.add(y,E),v,m),_=f(Y.add(x,N),y,v,m),S=f(d,Y.sub(b,E),v,m),q=f(N,Y.sub(M,y),v,m),R=f(Y.add(d,w),E,v,m),T=f(Y.sub(x,d),Y.add(y,b),v,m),I=f(Y.sub(w,N),Y.add(M,E),v,m),k=Y.add(O,q);k.sub(R),k.add(I);let F=Y.add(S,R),A=Y.add(_,q),C=Y.sub(O,_);C.add(S),C.add(T);let D=Y.zeros(2*k.rows,2*k.columns);return D=D.setSubMatrix(k,0,0),D=D.setSubMatrix(F,k.rows,0),D=D.setSubMatrix(A,0,k.columns),D=D.setSubMatrix(C,k.rows,k.columns),D.subMatrix(0,g-1,0,p-1)}return f(e,t,u,c)}scaleRows(t={}){if(typeof t!="object")throw new TypeError("options must be an object");const{min:e=0,max:r=1}=t;if(!Number.isFinite(e))throw new TypeError("min must be a number");if(!Number.isFinite(r))throw new TypeError("max must be a number");if(e>=r)throw new RangeError("min must be smaller than max");let i=new j(this.rows,this.columns);for(let s=0;s<this.rows;s++){const o=this.getRow(s);o.length>0&&cf(o,{min:e,max:r,output:o}),i.setRow(s,o)}return i}scaleColumns(t={}){if(typeof t!="object")throw new TypeError("options must be an object");const{min:e=0,max:r=1}=t;if(!Number.isFinite(e))throw new TypeError("min must be a number");if(!Number.isFinite(r))throw new TypeError("max must be a number");if(e>=r)throw new RangeError("min must be smaller than max");let i=new j(this.rows,this.columns);for(let s=0;s<this.columns;s++){const o=this.getColumn(s);o.length&&cf(o,{min:e,max:r,output:o}),i.setColumn(s,o)}return i}flipRows(){const t=Math.ceil(this.columns/2);for(let e=0;e<this.rows;e++)for(let r=0;r<t;r++){let i=this.get(e,r),s=this.get(e,this.columns-1-r);this.set(e,r,s),this.set(e,this.columns-1-r,i)}return this}flipColumns(){const t=Math.ceil(this.rows/2);for(let e=0;e<this.columns;e++)for(let r=0;r<t;r++){let i=this.get(r,e),s=this.get(this.rows-1-r,e);this.set(r,e,s),this.set(this.rows-1-r,e,i)}return this}kroneckerProduct(t){t=j.checkMatrix(t);let e=this.rows,r=this.columns,i=t.rows,s=t.columns,o=new j(e*i,r*s);for(let a=0;a<e;a++)for(let u=0;u<r;u++)for(let c=0;c<i;c++)for(let f=0;f<s;f++)o.set(i*a+c,s*u+f,this.get(a,u)*t.get(c,f));return o}kroneckerSum(t){if(t=j.checkMatrix(t),!this.isSquare()||!t.isSquare())throw new Error("Kronecker Sum needs two Square Matrices");let e=this.rows,r=t.rows,i=this.kroneckerProduct(j.eye(r,r)),s=j.eye(e,e).kroneckerProduct(t);return i.add(s)}transpose(){let t=new j(this.columns,this.rows);for(let e=0;e<this.rows;e++)for(let r=0;r<this.columns;r++)t.set(r,e,this.get(e,r));return t}sortRows(t=df){for(let e=0;e<this.rows;e++)this.setRow(e,this.getRow(e).sort(t));return this}sortColumns(t=df){for(let e=0;e<this.columns;e++)this.setColumn(e,this.getColumn(e).sort(t));return this}subMatrix(t,e,r,i){Mn(this,t,e,r,i);let s=new j(e-t+1,i-r+1);for(let o=t;o<=e;o++)for(let a=r;a<=i;a++)s.set(o-t,a-r,this.get(o,a));return s}subMatrixRow(t,e,r){if(e===void 0&&(e=0),r===void 0&&(r=this.columns-1),e>r||e<0||e>=this.columns||r<0||r>=this.columns)throw new RangeError("Argument out of range");let i=new j(t.length,r-e+1);for(let s=0;s<t.length;s++)for(let o=e;o<=r;o++){if(t[s]<0||t[s]>=this.rows)throw new RangeError(`Row index out of range: ${t[s]}`);i.set(s,o-e,this.get(t[s],o))}return i}subMatrixColumn(t,e,r){if(e===void 0&&(e=0),r===void 0&&(r=this.rows-1),e>r||e<0||e>=this.rows||r<0||r>=this.rows)throw new RangeError("Argument out of range");let i=new j(r-e+1,t.length);for(let s=0;s<t.length;s++)for(let o=e;o<=r;o++){if(t[s]<0||t[s]>=this.columns)throw new RangeError(`Column index out of range: ${t[s]}`);i.set(o-e,s,this.get(o,t[s]))}return i}setSubMatrix(t,e,r){if(t=j.checkMatrix(t),t.isEmpty())return this;let i=e+t.rows-1,s=r+t.columns-1;Mn(this,e,i,r,s);for(let o=0;o<t.rows;o++)for(let a=0;a<t.columns;a++)this.set(e+o,r+a,t.get(o,a));return this}selection(t,e){xn(this,t),Nn(this,e);let r=new j(t.length,e.length);for(let i=0;i<t.length;i++){let s=t[i];for(let o=0;o<e.length;o++){let a=e[o];r.set(i,o,this.get(s,a))}}return r}trace(){let t=Math.min(this.rows,this.columns),e=0;for(let r=0;r<t;r++)e+=this.get(r,r);return e}clone(){return this.constructor.copy(this,new j(this.rows,this.columns))}static copy(t,e){for(const[r,i,s]of t.entries())e.set(r,i,s);return e}sum(t){switch(t){case"row":return Uw(this);case"column":return Gw(this);case void 0:return Vw(this);default:throw new Error(`invalid option: ${t}`)}}product(t){switch(t){case"row":return Ww(this);case"column":return Yw(this);case void 0:return Kw(this);default:throw new Error(`invalid option: ${t}`)}}mean(t){const e=this.sum(t);switch(t){case"row":{for(let r=0;r<this.rows;r++)e[r]/=this.columns;return e}case"column":{for(let r=0;r<this.columns;r++)e[r]/=this.rows;return e}case void 0:return e/this.size;default:throw new Error(`invalid option: ${t}`)}}variance(t,e={}){if(typeof t=="object"&&(e=t,t=void 0),typeof e!="object")throw new TypeError("options must be an object");const{unbiased:r=!0,mean:i=this.mean(t)}=e;if(typeof r!="boolean")throw new TypeError("unbiased must be a boolean");switch(t){case"row":{if(!ge.isAnyArray(i))throw new TypeError("mean must be an array");return Xw(this,r,i)}case"column":{if(!ge.isAnyArray(i))throw new TypeError("mean must be an array");return Zw(this,r,i)}case void 0:{if(typeof i!="number")throw new TypeError("mean must be a number");return Jw(this,r,i)}default:throw new Error(`invalid option: ${t}`)}}standardDeviation(t,e){typeof t=="object"&&(e=t,t=void 0);const r=this.variance(t,e);if(t===void 0)return Math.sqrt(r);for(let i=0;i<r.length;i++)r[i]=Math.sqrt(r[i]);return r}center(t,e={}){if(typeof t=="object"&&(e=t,t=void 0),typeof e!="object")throw new TypeError("options must be an object");const{center:r=this.mean(t)}=e;switch(t){case"row":{if(!ge.isAnyArray(r))throw new TypeError("center must be an array");return Qw(this,r),this}case"column":{if(!ge.isAnyArray(r))throw new TypeError("center must be an array");return Hw(this,r),this}case void 0:{if(typeof r!="number")throw new TypeError("center must be a number");return e1(this,r),this}default:throw new Error(`invalid option: ${t}`)}}scale(t,e={}){if(typeof t=="object"&&(e=t,t=void 0),typeof e!="object")throw new TypeError("options must be an object");let r=e.scale;switch(t){case"row":{if(r===void 0)r=t1(this);else if(!ge.isAnyArray(r))throw new TypeError("scale must be an array");return r1(this,r),this}case"column":{if(r===void 0)r=n1(this);else if(!ge.isAnyArray(r))throw new TypeError("scale must be an array");return i1(this,r),this}case void 0:{if(r===void 0)r=s1(this);else if(typeof r!="number")throw new TypeError("scale must be a number");return o1(this,r),this}default:throw new Error(`invalid option: ${t}`)}}toString(t){return lf(this,t)}[Symbol.iterator](){return this.entries()}*entries(){for(let t=0;t<this.rows;t++)for(let e=0;e<this.columns;e++)yield[t,e,this.get(t,e)]}*values(){for(let t=0;t<this.rows;t++)for(let e=0;e<this.columns;e++)yield this.get(t,e)}}Y.prototype.klass="Matrix",typeof Symbol<"u"&&(Y.prototype[Symbol.for("nodejs.util.inspect.custom")]=zw);function df(n,t){return n-t}function a1(n){return n.every(t=>typeof t=="number")}Y.random=Y.rand,Y.randomInt=Y.randInt,Y.diagonal=Y.diag,Y.prototype.diagonal=Y.prototype.diag,Y.identity=Y.eye,Y.prototype.negate=Y.prototype.neg,Y.prototype.tensorProduct=Y.prototype.kroneckerProduct;let j=(qt=class extends Y{constructor(e,r){super();ac(this,Qt);te(this,"data");if(qt.isMatrix(e))uc(this,Qt,cc).call(this,e.rows,e.columns),qt.copy(e,this);else if(Number.isInteger(e)&&e>=0)uc(this,Qt,cc).call(this,e,r);else if(ge.isAnyArray(e)){const i=e;if(e=i.length,r=e?i[0].length:0,typeof r!="number")throw new TypeError("Data must be a 2D array with at least one element");this.data=[];for(let s=0;s<e;s++){if(i[s].length!==r)throw new RangeError("Inconsistent array dimensions");if(!a1(i[s]))throw new TypeError("Input data contains non-numeric values");this.data.push(Float64Array.from(i[s]))}this.rows=e,this.columns=r}else throw new TypeError("First argument must be a positive number or an array")}set(e,r,i){return this.data[e][r]=i,this}get(e,r){return this.data[e][r]}removeRow(e){return Ee(this,e),this.data.splice(e,1),this.rows-=1,this}addRow(e,r){return r===void 0&&(r=e,e=this.rows),Ee(this,e,!0),r=Float64Array.from(vt(this,r)),this.data.splice(e,0,r),this.rows+=1,this}removeColumn(e){xe(this,e);for(let r=0;r<this.rows;r++){const i=new Float64Array(this.columns-1);for(let s=0;s<e;s++)i[s]=this.data[r][s];for(let s=e+1;s<this.columns;s++)i[s-1]=this.data[r][s];this.data[r]=i}return this.columns-=1,this}addColumn(e,r){typeof r>"u"&&(r=e,e=this.columns),xe(this,e,!0),r=mt(this,r);for(let i=0;i<this.rows;i++){const s=new Float64Array(this.columns+1);let o=0;for(;o<e;o++)s[o]=this.data[i][o];for(s[o++]=r[i];o<this.columns+1;o++)s[o]=this.data[i][o-1];this.data[i]=s}return this.columns+=1,this}},Qt=new WeakSet,cc=function(e,r){if(this.data=[],Number.isInteger(r)&&r>=0)for(let i=0;i<e;i++)this.data.push(new Float64Array(r));else throw new TypeError("nColumns must be a positive integer");this.rows=e,this.columns=r},qt);Bw(Y,j);const Xr=class Xr extends Y{constructor(e){super();ac(this,fe,void 0);if(j.isMatrix(e)){if(!e.isSymmetric())throw new TypeError("not symmetric data");Hr(this,fe,j.copy(e,new j(e.rows,e.rows)))}else if(Number.isInteger(e)&&e>=0)Hr(this,fe,new j(e,e));else if(Hr(this,fe,new j(e)),!this.isSymmetric())throw new TypeError("not symmetric data")}get size(){return Oe(this,fe).size}get rows(){return Oe(this,fe).rows}get columns(){return Oe(this,fe).columns}get diagonalSize(){return this.rows}static isSymmetricMatrix(e){return j.isMatrix(e)&&e.klassType==="SymmetricMatrix"}static zeros(e){return new this(e)}static ones(e){return new this(e).fill(1)}clone(){const e=new Xr(this.diagonalSize);for(const[r,i,s]of this.upperRightEntries())e.set(r,i,s);return e}toMatrix(){return new j(this)}get(e,r){return Oe(this,fe).get(e,r)}set(e,r,i){return Oe(this,fe).set(e,r,i),Oe(this,fe).set(r,e,i),this}removeCross(e){return Oe(this,fe).removeRow(e),Oe(this,fe).removeColumn(e),this}addCross(e,r){r===void 0&&(r=e,e=this.diagonalSize);const i=r.slice();return i.splice(e,1),Oe(this,fe).addRow(e,i),Oe(this,fe).addColumn(e,r),this}applyMask(e){if(e.length!==this.diagonalSize)throw new RangeError("Mask size do not match with matrix size");const r=[];for(const[i,s]of e.entries())s||r.push(i);r.reverse();for(const i of r)this.removeCross(i);return this}toCompact(){const{diagonalSize:e}=this,r=new Array(e*(e+1)/2);for(let i=0,s=0,o=0;o<r.length;o++)r[o]=this.get(s,i),++i>=e&&(i=++s);return r}static fromCompact(e){const r=e.length,i=(Math.sqrt(8*r+1)-1)/2;if(!Number.isInteger(i))throw new TypeError(`This array is not a compact representation of a Symmetric Matrix, ${JSON.stringify(e)}`);const s=new Xr(i);for(let o=0,a=0,u=0;u<r;u++)s.set(o,a,e[u]),++o>=i&&(o=++a);return s}*upperRightEntries(){for(let e=0,r=0;e<this.diagonalSize;void 0){const i=this.get(e,r);yield[e,r,i],++r>=this.diagonalSize&&(r=++e)}}*upperRightValues(){for(let e=0,r=0;e<this.diagonalSize;void 0)yield this.get(e,r),++r>=this.diagonalSize&&(r=++e)}};fe=new WeakMap;let nt=Xr;nt.prototype.klassType="SymmetricMatrix";class hr extends nt{static isDistanceMatrix(t){return nt.isSymmetricMatrix(t)&&t.klassSubType==="DistanceMatrix"}constructor(t){if(super(t),!this.isDistance())throw new TypeError("Provided arguments do no produce a distance matrix")}set(t,e,r){return t===e&&(r=0),super.set(t,e,r)}addCross(t,e){return e===void 0&&(e=t,t=this.diagonalSize),e=e.slice(),e[t]=0,super.addCross(t,e)}toSymmetricMatrix(){return new nt(this)}clone(){const t=new hr(this.diagonalSize);for(const[e,r,i]of this.upperRightEntries())e!==r&&t.set(e,r,i);return t}toCompact(){const{diagonalSize:t}=this,e=(t-1)*t/2,r=new Array(e);for(let i=1,s=0,o=0;o<r.length;o++)r[o]=this.get(s,i),++i>=t&&(i=++s+1);return r}static fromCompact(t){const e=t.length;if(e===0)return new this(0);const r=(Math.sqrt(8*e+1)+1)/2;if(!Number.isInteger(r))throw new TypeError(`This array is not a compact representation of a DistanceMatrix, ${JSON.stringify(t)}`);const i=new this(r);for(let s=1,o=0,a=0;a<e;a++)i.set(s,o,t[a]),++s>=r&&(s=++o+1);return i}}hr.prototype.klassSubType="DistanceMatrix";class je extends Y{constructor(t,e,r){super(),this.matrix=t,this.rows=e,this.columns=r}}class u1 extends je{constructor(t,e){xe(t,e),super(t,t.rows,1),this.column=e}set(t,e,r){return this.matrix.set(t,this.column,r),this}get(t){return this.matrix.get(t,this.column)}}class c1 extends je{constructor(t,e){Nn(t,e),super(t,t.rows,e.length),this.columnIndices=e}set(t,e,r){return this.matrix.set(t,this.columnIndices[e],r),this}get(t,e){return this.matrix.get(t,this.columnIndices[e])}}class f1 extends je{constructor(t){super(t,t.rows,t.columns)}set(t,e,r){return this.matrix.set(t,this.columns-e-1,r),this}get(t,e){return this.matrix.get(t,this.columns-e-1)}}class l1 extends je{constructor(t){super(t,t.rows,t.columns)}set(t,e,r){return this.matrix.set(this.rows-t-1,e,r),this}get(t,e){return this.matrix.get(this.rows-t-1,e)}}class h1 extends je{constructor(t,e){Ee(t,e),super(t,1,t.columns),this.row=e}set(t,e,r){return this.matrix.set(this.row,e,r),this}get(t,e){return this.matrix.get(this.row,e)}}class d1 extends je{constructor(t,e){xn(t,e),super(t,e.length,t.columns),this.rowIndices=e}set(t,e,r){return this.matrix.set(this.rowIndices[t],e,r),this}get(t,e){return this.matrix.get(this.rowIndices[t],e)}}class dr extends je{constructor(t,e,r){xn(t,e),Nn(t,r),super(t,e.length,r.length),this.rowIndices=e,this.columnIndices=r}set(t,e,r){return this.matrix.set(this.rowIndices[t],this.columnIndices[e],r),this}get(t,e){return this.matrix.get(this.rowIndices[t],this.columnIndices[e])}}class g1 extends je{constructor(t,e,r,i,s){Mn(t,e,r,i,s),super(t,r-e+1,s-i+1),this.startRow=e,this.startColumn=i}set(t,e,r){return this.matrix.set(this.startRow+t,this.startColumn+e,r),this}get(t,e){return this.matrix.get(this.startRow+t,this.startColumn+e)}}class p1 extends je{constructor(t){super(t,t.columns,t.rows)}set(t,e,r){return this.matrix.set(e,t,r),this}get(t,e){return this.matrix.get(e,t)}}class gf extends Y{constructor(t,e={}){const{rows:r=1}=e;if(t.length%r!==0)throw new Error("the data length is not divisible by the number of rows");super(),this.rows=r,this.columns=t.length/r,this.data=t}set(t,e,r){let i=this._calculateIndex(t,e);return this.data[i]=r,this}get(t,e){let r=this._calculateIndex(t,e);return this.data[r]}_calculateIndex(t,e){return t*this.columns+e}}class we extends Y{constructor(t){super(),this.data=t,this.rows=t.length,this.columns=t[0].length}set(t,e,r){return this.data[t][e]=r,this}get(t,e){return this.data[t][e]}}function v1(n,t){if(ge.isAnyArray(n))return n[0]&&ge.isAnyArray(n[0])?new we(n):new gf(n,t);throw new Error("the argument is not an array")}class gr{constructor(t){t=we.checkMatrix(t);let e=t.clone(),r=e.rows,i=e.columns,s=new Float64Array(r),o=1,a,u,c,f,l,h,g,p,v;for(a=0;a<r;a++)s[a]=a;for(p=new Float64Array(r),u=0;u<i;u++){for(a=0;a<r;a++)p[a]=e.get(a,u);for(a=0;a<r;a++){for(v=Math.min(a,u),l=0,c=0;c<v;c++)l+=e.get(a,c)*p[c];p[a]-=l,e.set(a,u,p[a])}for(f=u,a=u+1;a<r;a++)Math.abs(p[a])>Math.abs(p[f])&&(f=a);if(f!==u){for(c=0;c<i;c++)h=e.get(f,c),e.set(f,c,e.get(u,c)),e.set(u,c,h);g=s[f],s[f]=s[u],s[u]=g,o=-o}if(u<r&&e.get(u,u)!==0)for(a=u+1;a<r;a++)e.set(a,u,e.get(a,u)/e.get(u,u))}this.LU=e,this.pivotVector=s,this.pivotSign=o}isSingular(){let t=this.LU,e=t.columns;for(let r=0;r<e;r++)if(t.get(r,r)===0)return!0;return!1}solve(t){t=j.checkMatrix(t);let e=this.LU;if(e.rows!==t.rows)throw new Error("Invalid matrix dimensions");if(this.isSingular())throw new Error("LU matrix is singular");let i=t.columns,s=t.subMatrixRow(this.pivotVector,0,i-1),o=e.columns,a,u,c;for(c=0;c<o;c++)for(a=c+1;a<o;a++)for(u=0;u<i;u++)s.set(a,u,s.get(a,u)-s.get(c,u)*e.get(a,c));for(c=o-1;c>=0;c--){for(u=0;u<i;u++)s.set(c,u,s.get(c,u)/e.get(c,c));for(a=0;a<c;a++)for(u=0;u<i;u++)s.set(a,u,s.get(a,u)-s.get(c,u)*e.get(a,c))}return s}get determinant(){let t=this.LU;if(!t.isSquare())throw new Error("Matrix must be square");let e=this.pivotSign,r=t.columns;for(let i=0;i<r;i++)e*=t.get(i,i);return e}get lowerTriangularMatrix(){let t=this.LU,e=t.rows,r=t.columns,i=new j(e,r);for(let s=0;s<e;s++)for(let o=0;o<r;o++)s>o?i.set(s,o,t.get(s,o)):s===o?i.set(s,o,1):i.set(s,o,0);return i}get upperTriangularMatrix(){let t=this.LU,e=t.rows,r=t.columns,i=new j(e,r);for(let s=0;s<e;s++)for(let o=0;o<r;o++)s<=o?i.set(s,o,t.get(s,o)):i.set(s,o,0);return i}get pivotPermutationVector(){return Array.from(this.pivotVector)}}function Ce(n,t){let e=0;return Math.abs(n)>Math.abs(t)?(e=t/n,Math.abs(n)*Math.sqrt(1+e*e)):t!==0?(e=n/t,Math.abs(t)*Math.sqrt(1+e*e)):0}class Sn{constructor(t){t=we.checkMatrix(t);let e=t.clone(),r=t.rows,i=t.columns,s=new Float64Array(i),o,a,u,c;for(u=0;u<i;u++){let f=0;for(o=u;o<r;o++)f=Ce(f,e.get(o,u));if(f!==0){for(e.get(u,u)<0&&(f=-f),o=u;o<r;o++)e.set(o,u,e.get(o,u)/f);for(e.set(u,u,e.get(u,u)+1),a=u+1;a<i;a++){for(c=0,o=u;o<r;o++)c+=e.get(o,u)*e.get(o,a);for(c=-c/e.get(u,u),o=u;o<r;o++)e.set(o,a,e.get(o,a)+c*e.get(o,u))}}s[u]=-f}this.QR=e,this.Rdiag=s}solve(t){t=j.checkMatrix(t);let e=this.QR,r=e.rows;if(t.rows!==r)throw new Error("Matrix row dimensions must agree");if(!this.isFullRank())throw new Error("Matrix is rank deficient");let i=t.columns,s=t.clone(),o=e.columns,a,u,c,f;for(c=0;c<o;c++)for(u=0;u<i;u++){for(f=0,a=c;a<r;a++)f+=e.get(a,c)*s.get(a,u);for(f=-f/e.get(c,c),a=c;a<r;a++)s.set(a,u,s.get(a,u)+f*e.get(a,c))}for(c=o-1;c>=0;c--){for(u=0;u<i;u++)s.set(c,u,s.get(c,u)/this.Rdiag[c]);for(a=0;a<c;a++)for(u=0;u<i;u++)s.set(a,u,s.get(a,u)-s.get(c,u)*e.get(a,c))}return s.subMatrix(0,o-1,0,i-1)}isFullRank(){let t=this.QR.columns;for(let e=0;e<t;e++)if(this.Rdiag[e]===0)return!1;return!0}get upperTriangularMatrix(){let t=this.QR,e=t.columns,r=new j(e,e),i,s;for(i=0;i<e;i++)for(s=0;s<e;s++)i<s?r.set(i,s,t.get(i,s)):i===s?r.set(i,s,this.Rdiag[i]):r.set(i,s,0);return r}get orthogonalMatrix(){let t=this.QR,e=t.rows,r=t.columns,i=new j(e,r),s,o,a,u;for(a=r-1;a>=0;a--){for(s=0;s<e;s++)i.set(s,a,0);for(i.set(a,a,1),o=a;o<r;o++)if(t.get(a,a)!==0){for(u=0,s=a;s<e;s++)u+=t.get(s,a)*i.get(s,o);for(u=-u/t.get(a,a),s=a;s<e;s++)i.set(s,o,i.get(s,o)+u*t.get(s,a))}}return i}}let wt=class{constructor(t,e={}){if(t=we.checkMatrix(t),t.isEmpty())throw new Error("Matrix must be non-empty");let r=t.rows,i=t.columns;const{computeLeftSingularVectors:s=!0,computeRightSingularVectors:o=!0,autoTranspose:a=!1}=e;let u=!!s,c=!!o,f=!1,l;if(r<i)if(!a)l=t.clone(),console.warn("Computing SVD on a matrix with more columns than rows. Consider enabling autoTranspose");else{l=t.transpose(),r=l.rows,i=l.columns,f=!0;let _=u;u=c,c=_}else l=t.clone();let h=Math.min(r,i),g=Math.min(r+1,i),p=new Float64Array(g),v=new j(r,h),m=new j(i,i),d=new Float64Array(i),y=new Float64Array(r),w=new Float64Array(g);for(let _=0;_<g;_++)w[_]=_;let b=Math.min(r-1,i),x=Math.max(0,Math.min(i-2,r)),M=Math.max(b,x);for(let _=0;_<M;_++){if(_<b){p[_]=0;for(let S=_;S<r;S++)p[_]=Ce(p[_],l.get(S,_));if(p[_]!==0){l.get(_,_)<0&&(p[_]=-p[_]);for(let S=_;S<r;S++)l.set(S,_,l.get(S,_)/p[_]);l.set(_,_,l.get(_,_)+1)}p[_]=-p[_]}for(let S=_+1;S<i;S++){if(_<b&&p[_]!==0){let q=0;for(let R=_;R<r;R++)q+=l.get(R,_)*l.get(R,S);q=-q/l.get(_,_);for(let R=_;R<r;R++)l.set(R,S,l.get(R,S)+q*l.get(R,_))}d[S]=l.get(_,S)}if(u&&_<b)for(let S=_;S<r;S++)v.set(S,_,l.get(S,_));if(_<x){d[_]=0;for(let S=_+1;S<i;S++)d[_]=Ce(d[_],d[S]);if(d[_]!==0){d[_+1]<0&&(d[_]=0-d[_]);for(let S=_+1;S<i;S++)d[S]/=d[_];d[_+1]+=1}if(d[_]=-d[_],_+1<r&&d[_]!==0){for(let S=_+1;S<r;S++)y[S]=0;for(let S=_+1;S<r;S++)for(let q=_+1;q<i;q++)y[S]+=d[q]*l.get(S,q);for(let S=_+1;S<i;S++){let q=-d[S]/d[_+1];for(let R=_+1;R<r;R++)l.set(R,S,l.get(R,S)+q*y[R])}}if(c)for(let S=_+1;S<i;S++)m.set(S,_,d[S])}}let N=Math.min(i,r+1);if(b<i&&(p[b]=l.get(b,b)),r<N&&(p[N-1]=0),x+1<N&&(d[x]=l.get(x,N-1)),d[N-1]=0,u){for(let _=b;_<h;_++){for(let S=0;S<r;S++)v.set(S,_,0);v.set(_,_,1)}for(let _=b-1;_>=0;_--)if(p[_]!==0){for(let S=_+1;S<h;S++){let q=0;for(let R=_;R<r;R++)q+=v.get(R,_)*v.get(R,S);q=-q/v.get(_,_);for(let R=_;R<r;R++)v.set(R,S,v.get(R,S)+q*v.get(R,_))}for(let S=_;S<r;S++)v.set(S,_,-v.get(S,_));v.set(_,_,1+v.get(_,_));for(let S=0;S<_-1;S++)v.set(S,_,0)}else{for(let S=0;S<r;S++)v.set(S,_,0);v.set(_,_,1)}}if(c)for(let _=i-1;_>=0;_--){if(_<x&&d[_]!==0)for(let S=_+1;S<i;S++){let q=0;for(let R=_+1;R<i;R++)q+=m.get(R,_)*m.get(R,S);q=-q/m.get(_+1,_);for(let R=_+1;R<i;R++)m.set(R,S,m.get(R,S)+q*m.get(R,_))}for(let S=0;S<i;S++)m.set(S,_,0);m.set(_,_,1)}let E=N-1,O=Number.EPSILON;for(;N>0;){let _,S;for(_=N-2;_>=-1&&_!==-1;_--){const q=Number.MIN_VALUE+O*Math.abs(p[_]+Math.abs(p[_+1]));if(Math.abs(d[_])<=q||Number.isNaN(d[_])){d[_]=0;break}}if(_===N-2)S=4;else{let q;for(q=N-1;q>=_&&q!==_;q--){let R=(q!==N?Math.abs(d[q]):0)+(q!==_+1?Math.abs(d[q-1]):0);if(Math.abs(p[q])<=O*R){p[q]=0;break}}q===_?S=3:q===N-1?S=1:(S=2,_=q)}switch(_++,S){case 1:{let q=d[N-2];d[N-2]=0;for(let R=N-2;R>=_;R--){let T=Ce(p[R],q),I=p[R]/T,k=q/T;if(p[R]=T,R!==_&&(q=-k*d[R-1],d[R-1]=I*d[R-1]),c)for(let F=0;F<i;F++)T=I*m.get(F,R)+k*m.get(F,N-1),m.set(F,N-1,-k*m.get(F,R)+I*m.get(F,N-1)),m.set(F,R,T)}break}case 2:{let q=d[_-1];d[_-1]=0;for(let R=_;R<N;R++){let T=Ce(p[R],q),I=p[R]/T,k=q/T;if(p[R]=T,q=-k*d[R],d[R]=I*d[R],u)for(let F=0;F<r;F++)T=I*v.get(F,R)+k*v.get(F,_-1),v.set(F,_-1,-k*v.get(F,R)+I*v.get(F,_-1)),v.set(F,R,T)}break}case 3:{const q=Math.max(Math.abs(p[N-1]),Math.abs(p[N-2]),Math.abs(d[N-2]),Math.abs(p[_]),Math.abs(d[_])),R=p[N-1]/q,T=p[N-2]/q,I=d[N-2]/q,k=p[_]/q,F=d[_]/q,A=((T+R)*(T-R)+I*I)/2,C=R*I*(R*I);let D=0;(A!==0||C!==0)&&(A<0?D=0-Math.sqrt(A*A+C):D=Math.sqrt(A*A+C),D=C/(A+D));let z=(k+R)*(k-R)+D,U=k*F;for(let P=_;P<N-1;P++){let $=Ce(z,U);$===0&&($=Number.MIN_VALUE);let B=z/$,Z=U/$;if(P!==_&&(d[P-1]=$),z=B*p[P]+Z*d[P],d[P]=B*d[P]-Z*p[P],U=Z*p[P+1],p[P+1]=B*p[P+1],c)for(let G=0;G<i;G++)$=B*m.get(G,P)+Z*m.get(G,P+1),m.set(G,P+1,-Z*m.get(G,P)+B*m.get(G,P+1)),m.set(G,P,$);if($=Ce(z,U),$===0&&($=Number.MIN_VALUE),B=z/$,Z=U/$,p[P]=$,z=B*d[P]+Z*p[P+1],p[P+1]=-Z*d[P]+B*p[P+1],U=Z*d[P+1],d[P+1]=B*d[P+1],u&&P<r-1)for(let G=0;G<r;G++)$=B*v.get(G,P)+Z*v.get(G,P+1),v.set(G,P+1,-Z*v.get(G,P)+B*v.get(G,P+1)),v.set(G,P,$)}d[N-2]=z;break}case 4:{if(p[_]<=0&&(p[_]=p[_]<0?-p[_]:0,c))for(let q=0;q<=E;q++)m.set(q,_,-m.get(q,_));for(;_<E&&!(p[_]>=p[_+1]);){let q=p[_];if(p[_]=p[_+1],p[_+1]=q,c&&_<i-1)for(let R=0;R<i;R++)q=m.get(R,_+1),m.set(R,_+1,m.get(R,_)),m.set(R,_,q);if(u&&_<r-1)for(let R=0;R<r;R++)q=v.get(R,_+1),v.set(R,_+1,v.get(R,_)),v.set(R,_,q);_++}N--;break}}}if(f){let _=m;m=v,v=_}this.m=r,this.n=i,this.s=p,this.U=v,this.V=m}solve(t){let e=t,r=this.threshold,i=this.s.length,s=j.zeros(i,i);for(let h=0;h<i;h++)Math.abs(this.s[h])<=r?s.set(h,h,0):s.set(h,h,1/this.s[h]);let o=this.U,a=this.rightSingularVectors,u=a.mmul(s),c=a.rows,f=o.rows,l=j.zeros(c,f);for(let h=0;h<c;h++)for(let g=0;g<f;g++){let p=0;for(let v=0;v<i;v++)p+=u.get(h,v)*o.get(g,v);l.set(h,g,p)}return l.mmul(e)}solveForDiagonal(t){return this.solve(j.diag(t))}inverse(){let t=this.V,e=this.threshold,r=t.rows,i=t.columns,s=new j(r,this.s.length);for(let f=0;f<r;f++)for(let l=0;l<i;l++)Math.abs(this.s[l])>e&&s.set(f,l,t.get(f,l)/this.s[l]);let o=this.U,a=o.rows,u=o.columns,c=new j(r,a);for(let f=0;f<r;f++)for(let l=0;l<a;l++){let h=0;for(let g=0;g<u;g++)h+=s.get(f,g)*o.get(l,g);c.set(f,l,h)}return c}get condition(){return this.s[0]/this.s[Math.min(this.m,this.n)-1]}get norm2(){return this.s[0]}get rank(){let t=Math.max(this.m,this.n)*this.s[0]*Number.EPSILON,e=0,r=this.s;for(let i=0,s=r.length;i<s;i++)r[i]>t&&e++;return e}get diagonal(){return Array.from(this.s)}get threshold(){return Number.EPSILON/2*Math.max(this.m,this.n)*this.s[0]}get leftSingularVectors(){return this.U}get rightSingularVectors(){return this.V}get diagonalMatrix(){return j.diag(this.s)}};function m1(n,t=!1){return n=we.checkMatrix(n),t?new wt(n).inverse():pf(n,j.eye(n.rows))}function pf(n,t,e=!1){return n=we.checkMatrix(n),t=we.checkMatrix(t),e?new wt(n).solve(t):n.isSquare()?new gr(n).solve(t):new Sn(n).solve(t)}function pr(n){if(n=j.checkMatrix(n),n.isSquare()){if(n.columns===0)return 1;let t,e,r,i;if(n.columns===2)return t=n.get(0,0),e=n.get(0,1),r=n.get(1,0),i=n.get(1,1),t*i-e*r;if(n.columns===3){let s,o,a;return s=new dr(n,[1,2],[1,2]),o=new dr(n,[1,2],[0,2]),a=new dr(n,[1,2],[0,1]),t=n.get(0,0),e=n.get(0,1),r=n.get(0,2),t*pr(s)-e*pr(o)+r*pr(a)}else return new gr(n).determinant}else throw Error("determinant can only be calculated for a square matrix")}function y1(n,t){let e=[];for(let r=0;r<n;r++)r!==t&&e.push(r);return e}function w1(n,t,e,r=1e-9,i=1e-9){if(n>i)return new Array(t.rows+1).fill(0);{let s=t.addRow(e,[0]);for(let o=0;o<s.rows;o++)Math.abs(s.get(o,0))<r&&s.set(o,0,0);return s.to1DArray()}}function b1(n,t={}){const{thresholdValue:e=1e-9,thresholdError:r=1e-9}=t;n=j.checkMatrix(n);let i=n.rows,s=new j(i,i);for(let o=0;o<i;o++){let a=j.columnVector(n.getRow(o)),u=n.subMatrixRow(y1(i,o)).transpose(),f=new wt(u).solve(a),l=j.sub(a,u.mmul(f)).abs().max();s.setRow(o,w1(l,f,o,e,r))}return s}function _1(n,t=Number.EPSILON){if(n=j.checkMatrix(n),n.isEmpty())return n.transpose();let e=new wt(n,{autoTranspose:!0}),r=e.leftSingularVectors,i=e.rightSingularVectors,s=e.diagonal;for(let o=0;o<s.length;o++)Math.abs(s[o])>t?s[o]=1/s[o]:s[o]=0;return i.mmul(j.diag(s).mmul(r.transpose()))}function E1(n,t=n,e={}){n=new j(n);let r=!1;if(typeof t=="object"&&!j.isMatrix(t)&&!ge.isAnyArray(t)?(e=t,t=n,r=!0):t=new j(t),n.rows!==t.rows)throw new TypeError("Both matrices must have the same number of rows");const{center:i=!0}=e;i&&(n=n.center("column"),r||(t=t.center("column")));const s=n.transpose().mmul(t);for(let o=0;o<s.rows;o++)for(let a=0;a<s.columns;a++)s.set(o,a,s.get(o,a)*(1/(n.rows-1)));return s}function x1(n,t=n,e={}){n=new j(n);let r=!1;if(typeof t=="object"&&!j.isMatrix(t)&&!ge.isAnyArray(t)?(e=t,t=n,r=!0):t=new j(t),n.rows!==t.rows)throw new TypeError("Both matrices must have the same number of rows");const{center:i=!0,scale:s=!0}=e;i&&(n.center("column"),r||t.center("column")),s&&(n.scale("column"),r||t.scale("column"));const o=n.standardDeviation("column",{unbiased:!0}),a=r?o:t.standardDeviation("column",{unbiased:!0}),u=n.transpose().mmul(t);for(let c=0;c<u.rows;c++)for(let f=0;f<u.columns;f++)u.set(c,f,u.get(c,f)*(1/(o[c]*a[f]))*(1/(n.rows-1)));return u}class vf{constructor(t,e={}){const{assumeSymmetric:r=!1}=e;if(t=we.checkMatrix(t),!t.isSquare())throw new Error("Matrix is not a square matrix");if(t.isEmpty())throw new Error("Matrix must be non-empty");let i=t.columns,s=new j(i,i),o=new Float64Array(i),a=new Float64Array(i),u=t,c,f,l=!1;if(r?l=!0:l=t.isSymmetric(),l){for(c=0;c<i;c++)for(f=0;f<i;f++)s.set(c,f,u.get(c,f));N1(i,a,o,s),M1(i,a,o,s)}else{let h=new j(i,i),g=new Float64Array(i);for(f=0;f<i;f++)for(c=0;c<i;c++)h.set(c,f,u.get(c,f));S1(i,h,g,s),R1(i,a,o,s,h)}this.n=i,this.e=a,this.d=o,this.V=s}get realEigenvalues(){return Array.from(this.d)}get imaginaryEigenvalues(){return Array.from(this.e)}get eigenvectorMatrix(){return this.V}get diagonalMatrix(){let t=this.n,e=this.e,r=this.d,i=new j(t,t),s,o;for(s=0;s<t;s++){for(o=0;o<t;o++)i.set(s,o,0);i.set(s,s,r[s]),e[s]>0?i.set(s,s+1,e[s]):e[s]<0&&i.set(s,s-1,e[s])}return i}}function N1(n,t,e,r){let i,s,o,a,u,c,f,l;for(u=0;u<n;u++)e[u]=r.get(n-1,u);for(a=n-1;a>0;a--){for(l=0,o=0,c=0;c<a;c++)l=l+Math.abs(e[c]);if(l===0)for(t[a]=e[a-1],u=0;u<a;u++)e[u]=r.get(a-1,u),r.set(a,u,0),r.set(u,a,0);else{for(c=0;c<a;c++)e[c]/=l,o+=e[c]*e[c];for(i=e[a-1],s=Math.sqrt(o),i>0&&(s=-s),t[a]=l*s,o=o-i*s,e[a-1]=i-s,u=0;u<a;u++)t[u]=0;for(u=0;u<a;u++){for(i=e[u],r.set(u,a,i),s=t[u]+r.get(u,u)*i,c=u+1;c<=a-1;c++)s+=r.get(c,u)*e[c],t[c]+=r.get(c,u)*i;t[u]=s}for(i=0,u=0;u<a;u++)t[u]/=o,i+=t[u]*e[u];for(f=i/(o+o),u=0;u<a;u++)t[u]-=f*e[u];for(u=0;u<a;u++){for(i=e[u],s=t[u],c=u;c<=a-1;c++)r.set(c,u,r.get(c,u)-(i*t[c]+s*e[c]));e[u]=r.get(a-1,u),r.set(a,u,0)}}e[a]=o}for(a=0;a<n-1;a++){if(r.set(n-1,a,r.get(a,a)),r.set(a,a,1),o=e[a+1],o!==0){for(c=0;c<=a;c++)e[c]=r.get(c,a+1)/o;for(u=0;u<=a;u++){for(s=0,c=0;c<=a;c++)s+=r.get(c,a+1)*r.get(c,u);for(c=0;c<=a;c++)r.set(c,u,r.get(c,u)-s*e[c])}}for(c=0;c<=a;c++)r.set(c,a+1,0)}for(u=0;u<n;u++)e[u]=r.get(n-1,u),r.set(n-1,u,0);r.set(n-1,n-1,1),t[0]=0}function M1(n,t,e,r){let i,s,o,a,u,c,f,l,h,g,p,v,m,d,y,w;for(o=1;o<n;o++)t[o-1]=t[o];t[n-1]=0;let b=0,x=0,M=Number.EPSILON;for(c=0;c<n;c++){for(x=Math.max(x,Math.abs(e[c])+Math.abs(t[c])),f=c;f<n&&!(Math.abs(t[f])<=M*x);)f++;if(f>c)do{for(i=e[c],l=(e[c+1]-i)/(2*t[c]),h=Ce(l,1),l<0&&(h=-h),e[c]=t[c]/(l+h),e[c+1]=t[c]*(l+h),g=e[c+1],s=i-e[c],o=c+2;o<n;o++)e[o]-=s;for(b=b+s,l=e[f],p=1,v=p,m=p,d=t[c+1],y=0,w=0,o=f-1;o>=c;o--)for(m=v,v=p,w=y,i=p*t[o],s=p*l,h=Ce(l,t[o]),t[o+1]=y*h,y=t[o]/h,p=l/h,l=p*e[o]-y*i,e[o+1]=s+y*(p*i+y*e[o]),u=0;u<n;u++)s=r.get(u,o+1),r.set(u,o+1,y*r.get(u,o)+p*s),r.set(u,o,p*r.get(u,o)-y*s);l=-y*w*m*d*t[c]/g,t[c]=y*l,e[c]=p*l}while(Math.abs(t[c])>M*x);e[c]=e[c]+b,t[c]=0}for(o=0;o<n-1;o++){for(u=o,l=e[o],a=o+1;a<n;a++)e[a]<l&&(u=a,l=e[a]);if(u!==o)for(e[u]=e[o],e[o]=l,a=0;a<n;a++)l=r.get(a,o),r.set(a,o,r.get(a,u)),r.set(a,u,l)}}function S1(n,t,e,r){let i=0,s=n-1,o,a,u,c,f,l,h;for(l=i+1;l<=s-1;l++){for(h=0,c=l;c<=s;c++)h=h+Math.abs(t.get(c,l-1));if(h!==0){for(u=0,c=s;c>=l;c--)e[c]=t.get(c,l-1)/h,u+=e[c]*e[c];for(a=Math.sqrt(u),e[l]>0&&(a=-a),u=u-e[l]*a,e[l]=e[l]-a,f=l;f<n;f++){for(o=0,c=s;c>=l;c--)o+=e[c]*t.get(c,f);for(o=o/u,c=l;c<=s;c++)t.set(c,f,t.get(c,f)-o*e[c])}for(c=0;c<=s;c++){for(o=0,f=s;f>=l;f--)o+=e[f]*t.get(c,f);for(o=o/u,f=l;f<=s;f++)t.set(c,f,t.get(c,f)-o*e[f])}e[l]=h*e[l],t.set(l,l-1,h*a)}}for(c=0;c<n;c++)for(f=0;f<n;f++)r.set(c,f,c===f?1:0);for(l=s-1;l>=i+1;l--)if(t.get(l,l-1)!==0){for(c=l+1;c<=s;c++)e[c]=t.get(c,l-1);for(f=l;f<=s;f++){for(a=0,c=l;c<=s;c++)a+=e[c]*r.get(c,f);for(a=a/e[l]/t.get(l,l-1),c=l;c<=s;c++)r.set(c,f,r.get(c,f)+a*e[c])}}}function R1(n,t,e,r,i){let s=n-1,o=0,a=n-1,u=Number.EPSILON,c=0,f=0,l=0,h=0,g=0,p=0,v=0,m=0,d,y,w,b,x,M,N,E,O,_,S,q,R,T,I;for(d=0;d<n;d++)for((d<o||d>a)&&(e[d]=i.get(d,d),t[d]=0),y=Math.max(d-1,0);y<n;y++)f=f+Math.abs(i.get(d,y));for(;s>=o;){for(b=s;b>o&&(p=Math.abs(i.get(b-1,b-1))+Math.abs(i.get(b,b)),p===0&&(p=f),!(Math.abs(i.get(b,b-1))<u*p));)b--;if(b===s)i.set(s,s,i.get(s,s)+c),e[s]=i.get(s,s),t[s]=0,s--,m=0;else if(b===s-1){if(N=i.get(s,s-1)*i.get(s-1,s),l=(i.get(s-1,s-1)-i.get(s,s))/2,h=l*l+N,v=Math.sqrt(Math.abs(h)),i.set(s,s,i.get(s,s)+c),i.set(s-1,s-1,i.get(s-1,s-1)+c),E=i.get(s,s),h>=0){for(v=l>=0?l+v:l-v,e[s-1]=E+v,e[s]=e[s-1],v!==0&&(e[s]=E-N/v),t[s-1]=0,t[s]=0,E=i.get(s,s-1),p=Math.abs(E)+Math.abs(v),l=E/p,h=v/p,g=Math.sqrt(l*l+h*h),l=l/g,h=h/g,y=s-1;y<n;y++)v=i.get(s-1,y),i.set(s-1,y,h*v+l*i.get(s,y)),i.set(s,y,h*i.get(s,y)-l*v);for(d=0;d<=s;d++)v=i.get(d,s-1),i.set(d,s-1,h*v+l*i.get(d,s)),i.set(d,s,h*i.get(d,s)-l*v);for(d=o;d<=a;d++)v=r.get(d,s-1),r.set(d,s-1,h*v+l*r.get(d,s)),r.set(d,s,h*r.get(d,s)-l*v)}else e[s-1]=E+l,e[s]=E+l,t[s-1]=v,t[s]=-v;s=s-2,m=0}else{if(E=i.get(s,s),O=0,N=0,b<s&&(O=i.get(s-1,s-1),N=i.get(s,s-1)*i.get(s-1,s)),m===10){for(c+=E,d=o;d<=s;d++)i.set(d,d,i.get(d,d)-E);p=Math.abs(i.get(s,s-1))+Math.abs(i.get(s-1,s-2)),E=O=.75*p,N=-.4375*p*p}if(m===30&&(p=(O-E)/2,p=p*p+N,p>0)){for(p=Math.sqrt(p),O<E&&(p=-p),p=E-N/((O-E)/2+p),d=o;d<=s;d++)i.set(d,d,i.get(d,d)-p);c+=p,E=O=N=.964}for(m=m+1,x=s-2;x>=b&&(v=i.get(x,x),g=E-v,p=O-v,l=(g*p-N)/i.get(x+1,x)+i.get(x,x+1),h=i.get(x+1,x+1)-v-g-p,g=i.get(x+2,x+1),p=Math.abs(l)+Math.abs(h)+Math.abs(g),l=l/p,h=h/p,g=g/p,!(x===b||Math.abs(i.get(x,x-1))*(Math.abs(h)+Math.abs(g))<u*(Math.abs(l)*(Math.abs(i.get(x-1,x-1))+Math.abs(v)+Math.abs(i.get(x+1,x+1))))));)x--;for(d=x+2;d<=s;d++)i.set(d,d-2,0),d>x+2&&i.set(d,d-3,0);for(w=x;w<=s-1&&(T=w!==s-1,w!==x&&(l=i.get(w,w-1),h=i.get(w+1,w-1),g=T?i.get(w+2,w-1):0,E=Math.abs(l)+Math.abs(h)+Math.abs(g),E!==0&&(l=l/E,h=h/E,g=g/E)),E!==0);w++)if(p=Math.sqrt(l*l+h*h+g*g),l<0&&(p=-p),p!==0){for(w!==x?i.set(w,w-1,-p*E):b!==x&&i.set(w,w-1,-i.get(w,w-1)),l=l+p,E=l/p,O=h/p,v=g/p,h=h/l,g=g/l,y=w;y<n;y++)l=i.get(w,y)+h*i.get(w+1,y),T&&(l=l+g*i.get(w+2,y),i.set(w+2,y,i.get(w+2,y)-l*v)),i.set(w,y,i.get(w,y)-l*E),i.set(w+1,y,i.get(w+1,y)-l*O);for(d=0;d<=Math.min(s,w+3);d++)l=E*i.get(d,w)+O*i.get(d,w+1),T&&(l=l+v*i.get(d,w+2),i.set(d,w+2,i.get(d,w+2)-l*g)),i.set(d,w,i.get(d,w)-l),i.set(d,w+1,i.get(d,w+1)-l*h);for(d=o;d<=a;d++)l=E*r.get(d,w)+O*r.get(d,w+1),T&&(l=l+v*r.get(d,w+2),r.set(d,w+2,r.get(d,w+2)-l*g)),r.set(d,w,r.get(d,w)-l),r.set(d,w+1,r.get(d,w+1)-l*h)}}}if(f!==0){for(s=n-1;s>=0;s--)if(l=e[s],h=t[s],h===0)for(b=s,i.set(s,s,1),d=s-1;d>=0;d--){for(N=i.get(d,d)-l,g=0,y=b;y<=s;y++)g=g+i.get(d,y)*i.get(y,s);if(t[d]<0)v=N,p=g;else if(b=d,t[d]===0?i.set(d,s,N!==0?-g/N:-g/(u*f)):(E=i.get(d,d+1),O=i.get(d+1,d),h=(e[d]-l)*(e[d]-l)+t[d]*t[d],M=(E*p-v*g)/h,i.set(d,s,M),i.set(d+1,s,Math.abs(E)>Math.abs(v)?(-g-N*M)/E:(-p-O*M)/v)),M=Math.abs(i.get(d,s)),u*M*M>1)for(y=d;y<=s;y++)i.set(y,s,i.get(y,s)/M)}else if(h<0)for(b=s-1,Math.abs(i.get(s,s-1))>Math.abs(i.get(s-1,s))?(i.set(s-1,s-1,h/i.get(s,s-1)),i.set(s-1,s,-(i.get(s,s)-l)/i.get(s,s-1))):(I=vr(0,-i.get(s-1,s),i.get(s-1,s-1)-l,h),i.set(s-1,s-1,I[0]),i.set(s-1,s,I[1])),i.set(s,s-1,0),i.set(s,s,1),d=s-2;d>=0;d--){for(_=0,S=0,y=b;y<=s;y++)_=_+i.get(d,y)*i.get(y,s-1),S=S+i.get(d,y)*i.get(y,s);if(N=i.get(d,d)-l,t[d]<0)v=N,g=_,p=S;else if(b=d,t[d]===0?(I=vr(-_,-S,N,h),i.set(d,s-1,I[0]),i.set(d,s,I[1])):(E=i.get(d,d+1),O=i.get(d+1,d),q=(e[d]-l)*(e[d]-l)+t[d]*t[d]-h*h,R=(e[d]-l)*2*h,q===0&&R===0&&(q=u*f*(Math.abs(N)+Math.abs(h)+Math.abs(E)+Math.abs(O)+Math.abs(v))),I=vr(E*g-v*_+h*S,E*p-v*S-h*_,q,R),i.set(d,s-1,I[0]),i.set(d,s,I[1]),Math.abs(E)>Math.abs(v)+Math.abs(h)?(i.set(d+1,s-1,(-_-N*i.get(d,s-1)+h*i.get(d,s))/E),i.set(d+1,s,(-S-N*i.get(d,s)-h*i.get(d,s-1))/E)):(I=vr(-g-O*i.get(d,s-1),-p-O*i.get(d,s),v,h),i.set(d+1,s-1,I[0]),i.set(d+1,s,I[1]))),M=Math.max(Math.abs(i.get(d,s-1)),Math.abs(i.get(d,s))),u*M*M>1)for(y=d;y<=s;y++)i.set(y,s-1,i.get(y,s-1)/M),i.set(y,s,i.get(y,s)/M)}for(d=0;d<n;d++)if(d<o||d>a)for(y=d;y<n;y++)r.set(d,y,i.get(d,y));for(y=n-1;y>=o;y--)for(d=o;d<=a;d++){for(v=0,w=o;w<=Math.min(y,a);w++)v=v+r.get(d,w)*i.get(w,y);r.set(d,y,v)}}}function vr(n,t,e,r){let i,s;return Math.abs(e)>Math.abs(r)?(i=r/e,s=e+i*r,[(n+i*t)/s,(t-i*n)/s]):(i=e/r,s=r+i*e,[(i*n+t)/s,(i*t-n)/s])}class mf{constructor(t){if(t=we.checkMatrix(t),!t.isSymmetric())throw new Error("Matrix is not symmetric");let e=t,r=e.rows,i=new j(r,r),s=!0,o,a,u;for(a=0;a<r;a++){let c=0;for(u=0;u<a;u++){let f=0;for(o=0;o<u;o++)f+=i.get(u,o)*i.get(a,o);f=(e.get(a,u)-f)/i.get(u,u),i.set(a,u,f),c=c+f*f}for(c=e.get(a,a)-c,s&&(s=c>0),i.set(a,a,Math.sqrt(Math.max(c,0))),u=a+1;u<r;u++)i.set(a,u,0)}this.L=i,this.positiveDefinite=s}isPositiveDefinite(){return this.positiveDefinite}solve(t){t=we.checkMatrix(t);let e=this.L,r=e.rows;if(t.rows!==r)throw new Error("Matrix dimensions do not match");if(this.isPositiveDefinite()===!1)throw new Error("Matrix is not positive definite");let i=t.columns,s=t.clone(),o,a,u;for(u=0;u<r;u++)for(a=0;a<i;a++){for(o=0;o<u;o++)s.set(u,a,s.get(u,a)-s.get(o,a)*e.get(u,o));s.set(u,a,s.get(u,a)/e.get(u,u))}for(u=r-1;u>=0;u--)for(a=0;a<i;a++){for(o=u+1;o<r;o++)s.set(u,a,s.get(u,a)-s.get(o,a)*e.get(o,u));s.set(u,a,s.get(u,a)/e.get(u,u))}return s}get lowerTriangularMatrix(){return this.L}}class yf{constructor(t,e={}){t=we.checkMatrix(t);let{Y:r}=e;const{scaleScores:i=!1,maxIterations:s=1e3,terminationCriteria:o=1e-10}=e;let a;if(r){if(ge.isAnyArray(r)&&typeof r[0]=="number"?r=j.columnVector(r):r=we.checkMatrix(r),r.rows!==t.rows)throw new Error("Y should have the same number of rows as X");a=r.getColumnVector(0)}else a=t.getColumnVector(0);let u=1,c,f,l,h;for(let g=0;g<s&&u>o;g++)l=t.transpose().mmul(a).div(a.transpose().mmul(a).get(0,0)),l=l.div(l.norm()),c=t.mmul(l).div(l.transpose().mmul(l).get(0,0)),g>0&&(u=c.clone().sub(h).pow(2).sum()),h=c.clone(),r?(f=r.transpose().mmul(c).div(c.transpose().mmul(c).get(0,0)),f=f.div(f.norm()),a=r.mmul(f).div(f.transpose().mmul(f).get(0,0))):a=c;if(r){let g=t.transpose().mmul(c).div(c.transpose().mmul(c).get(0,0));g=g.div(g.norm());let p=t.clone().sub(c.clone().mmul(g.transpose())),v=a.transpose().mmul(c).div(c.transpose().mmul(c).get(0,0)),m=r.clone().sub(c.clone().mulS(v.get(0,0)).mmul(f.transpose()));this.t=c,this.p=g.transpose(),this.w=l.transpose(),this.q=f,this.u=a,this.s=c.transpose().mmul(c),this.xResidual=p,this.yResidual=m,this.betas=v}else this.w=l.transpose(),this.s=c.transpose().mmul(c).sqrt(),i?this.t=c.clone().div(this.s.get(0,0)):this.t=c,this.xResidual=t.sub(c.mmul(l.transpose()))}}X.AbstractMatrix=Y,X.CHO=mf,X.CholeskyDecomposition=mf,X.DistanceMatrix=hr,X.EVD=vf,X.EigenvalueDecomposition=vf,X.LU=gr,X.LuDecomposition=gr;var wf=X.Matrix=j;X.MatrixColumnSelectionView=c1,X.MatrixColumnView=u1,X.MatrixFlipColumnView=f1,X.MatrixFlipRowView=l1,X.MatrixRowSelectionView=d1,X.MatrixRowView=h1,X.MatrixSelectionView=dr,X.MatrixSubView=g1,X.MatrixTransposeView=p1,X.NIPALS=yf,X.Nipals=yf,X.QR=Sn,X.QrDecomposition=Sn,X.SVD=wt;var q1=X.SingularValueDecomposition=wt;X.SymmetricMatrix=nt,X.WrapperMatrix1D=gf,X.WrapperMatrix2D=we,X.correlation=x1,X.covariance=E1;var bf=X.default=j;X.determinant=pr,X.inverse=m1,X.linearDependencies=b1,X.pseudoInverse=_1,X.solve=pf,X.wrap=v1;const Ve=wf,_f=q1;bf.Matrix&&bf.Matrix;const O1={center:[0,0],linkDistance:50};class Ef{constructor(t={}){this.options=t,this.id="mds",this.options=Object.assign(Object.assign({},O1),t)}execute(t,e){return L(this,void 0,void 0,function*(){return this.genericMDSLayout(!1,t,e)})}assign(t,e){return L(this,void 0,void 0,function*(){yield this.genericMDSLayout(!0,t,e)})}genericMDSLayout(t,e,r){return L(this,void 0,void 0,function*(){const i=Object.assign(Object.assign({},this.options),r),{center:s=[0,0],linkDistance:o=50}=i,a=e.getAllNodes(),u=e.getAllEdges();if(!(a!=null&&a.length)||a.length===1)return rt(e,t,s);const c=Jc({nodes:a,edges:u}),f=Zc(c);A1(f);const l=Ty(f,o),h=I1(l),g=[];return h.forEach((v,m)=>{const d=ye(a[m]);d.data.x=v[0]+s[0],d.data.y=v[1]+s[1],g.push(d)}),t&&g.forEach(v=>e.mergeNodeData(v.id,{x:v.data.x,y:v.data.y})),{nodes:g,edges:u}})}}const A1=n=>{let t=-999999;n.forEach(e=>{e.forEach(r=>{r!==1/0&&t<r&&(t=r)})}),n.forEach((e,r)=>{e.forEach((i,s)=>{i===1/0&&(n[r][s]=t)})})},I1=n=>{const e=Ve.mul(Ve.pow(n,2),-.5),r=e.mean("row"),i=e.mean("column"),s=e.mean();e.add(s).subRowVector(r).subColumnVector(i);const o=new _f(e),a=Ve.sqrt(o.diagonalMatrix).diagonal();return o.leftSingularVectors.toJSON().map(u=>Ve.mul([u],[a]).toJSON()[0].splice(0,2))};function xf(n){return!!n.tick&&!!n.stop}const T1={gForce:!0,force2:!0,d3force:!0,fruchterman:!0,forceAtlas2:!0,force:!0,"graphin-force":!0},k1={center:[0,0],comboPadding:10,treeKey:"combo"};class j1{constructor(t={}){this.options=t,this.id="comboCombined",this.options=Object.assign(Object.assign({},k1),t)}execute(t,e){return L(this,void 0,void 0,function*(){return this.genericComboCombinedLayout(!1,t,e)})}assign(t,e){return L(this,void 0,void 0,function*(){yield this.genericComboCombinedLayout(!0,t,e)})}genericComboCombinedLayout(t,e,r){return L(this,void 0,void 0,function*(){const i=this.initVals(Object.assign(Object.assign({},this.options),r)),{center:s,treeKey:o,outerLayout:a}=i,u=e.getAllNodes().filter(E=>!E.data._isCombo),c=e.getAllNodes().filter(E=>E.data._isCombo),f=e.getAllEdges(),l=u==null?void 0:u.length;if(!l||l===1)return rt(e,t,s);const h=[],g=new Map;u.forEach(E=>{g.set(E.id,E)});const p=new Map;c.forEach(E=>{p.set(E.id,E)});const v=new Map,m=this.getInnerGraphs(e,o,g,p,f,i,v);yield Promise.all(m);const d=new Map,y=[],w=new Map;let b=!0;e.getRoots(o).forEach(E=>{const O=v.get(E.id),_=p.get(E.id)||g.get(E.id),S={id:E.id,data:Object.assign(Object.assign({},E.data),{x:O.data.x||_.data.x,y:O.data.y||_.data.y,fx:O.data.fx||_.data.fx,fy:O.data.fy||_.data.fy,mass:O.data.mass||_.data.mass,size:O.data.size})};y.push(S),d.set(E.id,!0),!isNaN(S.data.x)&&S.data.x!==0&&!isNaN(S.data.y)&&S.data.y!==0?b=!1:(S.data.x=Math.random()*100,S.data.y=Math.random()*100),gn(e,[E],q=>{q.id!==E.id&&w.set(q.id,E.id)},"TB",o)});const x=[];f.forEach(E=>{const O=w.get(E.source)||E.source,_=w.get(E.target)||E.target;O!==_&&d.has(O)&&d.has(_)&&x.push({id:E.id,source:O,target:_,data:{}})});let M;if(y!=null&&y.length){if(y.length===1)y[0].data.x=s[0],y[0].data.y=s[1];else{const E=new ue({nodes:y,edges:x}),O=a||new sf;b&&T1[O.id]&&(yield(y.length<100?new Ef:new yn).assign(E));const _=Object.assign({center:s,kg:5,preventOverlap:!0,animate:!1},O.id==="force"?{gravity:1,factor:4,linkDistance:(S,q,R)=>{const T=Math.max(...q.data.size)||32,I=Math.max(...R.data.size)||32;return T/2+I/2+200}}:{});M=yield Nf(O,E,_)}v.forEach(E=>{var O;const _=M.nodes.find(R=>R.id===E.id);if(_){const{x:R,y:T}=_.data;E.data.visited=!0,E.data.x=R,E.data.y=T,h.push({id:E.id,data:{x:R,y:T}})}const{x:S,y:q}=E.data;(O=E.data.nodes)===null||O===void 0||O.forEach(R=>{h.push({id:R.id,data:{x:R.data.x+S,y:R.data.y+q}})})}),v.forEach(({data:E})=>{const{x:O,y:_,visited:S,nodes:q}=E;q==null||q.forEach(R=>{if(!S){const T=h.find(I=>I.id===R.id);T.data.x+=O||0,T.data.y+=_||0}})})}return t&&h.forEach(E=>{e.mergeNodeData(E.id,{x:E.data.x,y:E.data.y})}),{nodes:h,edges:f}})}initVals(t){const e=Object.assign({},t),{nodeSize:r,spacing:i,comboPadding:s}=t;let o,a;if(V(i)?a=()=>i:Te(i)?a=i:a=()=>0,e.spacing=a,!r)o=c=>{const f=a(c);return c.size?ke(c.size)?((c.size[0]>c.size[1]?c.size[0]:c.size[1])+f)/2:dt(c.size)?((c.size.width>c.size.height?c.size.width:c.size.height)+f)/2:(c.size+f)/2:32+f/2};else if(Te(r))o=c=>{const f=r(c),l=a(c);return ke(c.size)?((c.size[0]>c.size[1]?c.size[0]:c.size[1])+l)/2:((f||32)+l)/2};else if(ke(r)){const f=(r[0]>r[1]?r[0]:r[1])/2;o=l=>f+a(l)/2}else{const c=r/2;o=f=>c+a(f)/2}e.nodeSize=o;let u;return V(s)?u=()=>s:ke(s)?u=()=>Math.max.apply(null,s):Te(s)?u=s:u=()=>0,e.comboPadding=u,e}getInnerGraphs(t,e,r,i,s,o,a){const{nodeSize:u,comboPadding:c,spacing:f,innerLayout:l}=o,h=l||new yn({}),g={center:[0,0],preventOverlap:!0,nodeSpacing:f},p=[],v=m=>{let d=(c==null?void 0:c(m))||10;return ke(d)&&(d=Math.max(...d)),{size:d?[d*2,d*2]:[30,30],padding:d}};return t.getRoots(e).forEach(m=>{a.set(m.id,{id:m.id,data:{nodes:[],size:v(m).size}});let d=Promise.resolve();gn(t,[m],y=>{var w;if(!y.data._isCombo)return;const{size:b,padding:x}=v(y);if(!(!((w=t.getChildren(y.id,e))===null||w===void 0)&&w.length))a.set(y.id,{id:y.id,data:Object.assign(Object.assign({},y.data),{size:b})});else{const M=a.get(y.id);a.set(y.id,{id:y.id,data:Object.assign({nodes:[]},M==null?void 0:M.data)});const N=new Map,E=t.getChildren(y.id,e).map(S=>{if(S.data._isCombo)return a.has(S.id)||a.set(S.id,{id:S.id,data:Object.assign({},S.data)}),N.set(S.id,!0),a.get(S.id);const q=r.get(S.id)||i.get(S.id);return N.set(S.id,!0),{id:S.id,data:Object.assign(Object.assign({},q.data),S.data)}}),O={nodes:E,edges:s.filter(S=>N.has(S.source)&&N.has(S.target))};let _=1/0;E.forEach(S=>{var q;let{size:R}=S.data;R||(R=((q=a.get(S.id))===null||q===void 0?void 0:q.data.size)||(u==null?void 0:u(S))||[30,30]),V(R)&&(R=[R,R]);const[T,I]=R;_>T&&(_=T),_>I&&(_=I),S.data.size=R}),d=d.then(()=>L(this,void 0,void 0,function*(){const S=new ue(O);yield Nf(h,S,g,!0);const{minX:q,minY:R,maxX:T,maxY:I}=ky(E),k={x:(T+q)/2,y:(I+R)/2};O.nodes.forEach(A=>{A.data.x-=k.x,A.data.y-=k.y});const F=[Math.max(T-q,_)+x*2,Math.max(I-R,_)+x*2];a.get(y.id).data.size=F,a.get(y.id).data.nodes=E}))}return!0},"BT",e),p.push(d)}),p}}function Nf(n,t,e,r){var i;return L(this,void 0,void 0,function*(){return xf(n)?(n.execute(t,e),n.stop(),n.tick((i=e.iterations)!==null&&i!==void 0?i:300)):r?yield n.assign(t,e):yield n.execute(t,e)})}function C1(n,t){var e,r=1;n==null&&(n=0),t==null&&(t=0);function i(){var s,o=e.length,a,u=0,c=0;for(s=0;s<o;++s)a=e[s],u+=a.x,c+=a.y;for(u=(u/o-n)*r,c=(c/o-t)*r,s=0;s<o;++s)a=e[s],a.x-=u,a.y-=c}return i.initialize=function(s){e=s},i.x=function(s){return arguments.length?(n=+s,i):n},i.y=function(s){return arguments.length?(t=+s,i):t},i.strength=function(s){return arguments.length?(r=+s,i):r},i}function ae(n){return function(){return n}}function We(n){return(n()-.5)*1e-6}function P1(n){return n.x+n.vx}function L1(n){return n.y+n.vy}function D1(n){var t,e,r,i=1,s=1;typeof n!="function"&&(n=ae(n==null?1:+n));function o(){for(var c,f=t.length,l,h,g,p,v,m,d=0;d<s;++d)for(l=pt(t,P1,L1).visitAfter(a),c=0;c<f;++c)h=t[c],v=e[h.index],m=v*v,g=h.x+h.vx,p=h.y+h.vy,l.visit(y);function y(w,b,x,M,N){var E=w.data,O=w.r,_=v+O;if(E){if(E.index>h.index){var S=g-E.x-E.vx,q=p-E.y-E.vy,R=S*S+q*q;R<_*_&&(S===0&&(S=We(r),R+=S*S),q===0&&(q=We(r),R+=q*q),R=(_-(R=Math.sqrt(R)))/R*i,h.vx+=(S*=R)*(_=(O*=O)/(m+O)),h.vy+=(q*=R)*_,E.vx-=S*(_=1-_),E.vy-=q*_)}return}return b>g+_||M<g-_||x>p+_||N<p-_}}function a(c){if(c.data)return c.r=e[c.data.index];for(var f=c.r=0;f<4;++f)c[f]&&c[f].r>c.r&&(c.r=c[f].r)}function u(){if(t){var c,f=t.length,l;for(e=new Array(f),c=0;c<f;++c)l=t[c],e[l.index]=+n(l,c,t)}}return o.initialize=function(c,f){t=c,r=f,u()},o.iterations=function(c){return arguments.length?(s=+c,o):s},o.strength=function(c){return arguments.length?(i=+c,o):i},o.radius=function(c){return arguments.length?(n=typeof c=="function"?c:ae(+c),u(),o):n},o}function z1(n){return n.index}function Mf(n,t){var e=n.get(t);if(!e)throw new Error("node not found: "+t);return e}function $1(n){var t=z1,e=l,r,i=ae(30),s,o,a,u,c,f=1;n==null&&(n=[]);function l(m){return 1/Math.min(a[m.source.index],a[m.target.index])}function h(m){for(var d=0,y=n.length;d<f;++d)for(var w=0,b,x,M,N,E,O,_;w<y;++w)b=n[w],x=b.source,M=b.target,N=M.x+M.vx-x.x-x.vx||We(c),E=M.y+M.vy-x.y-x.vy||We(c),O=Math.sqrt(N*N+E*E),O=(O-s[w])/O*m*r[w],N*=O,E*=O,M.vx-=N*(_=u[w]),M.vy-=E*_,x.vx+=N*(_=1-_),x.vy+=E*_}function g(){if(o){var m,d=o.length,y=n.length,w=new Map(o.map((x,M)=>[t(x,M,o),x])),b;for(m=0,a=new Array(d);m<y;++m)b=n[m],b.index=m,typeof b.source!="object"&&(b.source=Mf(w,b.source)),typeof b.target!="object"&&(b.target=Mf(w,b.target)),a[b.source.index]=(a[b.source.index]||0)+1,a[b.target.index]=(a[b.target.index]||0)+1;for(m=0,u=new Array(y);m<y;++m)b=n[m],u[m]=a[b.source.index]/(a[b.source.index]+a[b.target.index]);r=new Array(y),p(),s=new Array(y),v()}}function p(){if(o)for(var m=0,d=n.length;m<d;++m)r[m]=+e(n[m],m,n)}function v(){if(o)for(var m=0,d=n.length;m<d;++m)s[m]=+i(n[m],m,n)}return h.initialize=function(m,d){o=m,c=d,g()},h.links=function(m){return arguments.length?(n=m,g(),h):n},h.id=function(m){return arguments.length?(t=m,h):t},h.iterations=function(m){return arguments.length?(f=+m,h):f},h.strength=function(m){return arguments.length?(e=typeof m=="function"?m:ae(+m),p(),h):e},h.distance=function(m){return arguments.length?(i=typeof m=="function"?m:ae(+m),v(),h):i},h}var F1={value:()=>{}};function Rn(){for(var n=0,t=arguments.length,e={},r;n<t;++n){if(!(r=arguments[n]+"")||r in e||/[\s.]/.test(r))throw new Error("illegal type: "+r);e[r]=[]}return new mr(e)}function mr(n){this._=n}function B1(n,t){return n.trim().split(/^|\s+/).map(function(e){var r="",i=e.indexOf(".");if(i>=0&&(r=e.slice(i+1),e=e.slice(0,i)),e&&!t.hasOwnProperty(e))throw new Error("unknown type: "+e);return{type:e,name:r}})}mr.prototype=Rn.prototype={constructor:mr,on:function(n,t){var e=this._,r=B1(n+"",e),i,s=-1,o=r.length;if(arguments.length<2){for(;++s<o;)if((i=(n=r[s]).type)&&(i=U1(e[i],n.name)))return i;return}if(t!=null&&typeof t!="function")throw new Error("invalid callback: "+t);for(;++s<o;)if(i=(n=r[s]).type)e[i]=Sf(e[i],n.name,t);else if(t==null)for(i in e)e[i]=Sf(e[i],n.name,null);return this},copy:function(){var n={},t=this._;for(var e in t)n[e]=t[e].slice();return new mr(n)},call:function(n,t){if((i=arguments.length-2)>0)for(var e=new Array(i),r=0,i,s;r<i;++r)e[r]=arguments[r+2];if(!this._.hasOwnProperty(n))throw new Error("unknown type: "+n);for(s=this._[n],r=0,i=s.length;r<i;++r)s[r].value.apply(t,e)},apply:function(n,t,e){if(!this._.hasOwnProperty(n))throw new Error("unknown type: "+n);for(var r=this._[n],i=0,s=r.length;i<s;++i)r[i].value.apply(t,e)}};function U1(n,t){for(var e=0,r=n.length,i;e<r;++e)if((i=n[e]).name===t)return i.value}function Sf(n,t,e){for(var r=0,i=n.length;r<i;++r)if(n[r].name===t){n[r]=F1,n=n.slice(0,r).concat(n.slice(r+1));break}return e!=null&&n.push({name:t,value:e}),n}var bt=0,Lt=0,Dt=0,Rf=1e3,yr,zt,wr=0,it=0,br=0,$t=typeof performance=="object"&&performance.now?performance:Date,qf=typeof window=="object"&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(n){setTimeout(n,17)};function Of(){return it||(qf(G1),it=$t.now()+br)}function G1(){it=0}function qn(){this._call=this._time=this._next=null}qn.prototype=On.prototype={constructor:qn,restart:function(n,t,e){if(typeof n!="function")throw new TypeError("callback is not a function");e=(e==null?Of():+e)+(t==null?0:+t),!this._next&&zt!==this&&(zt?zt._next=this:yr=this,zt=this),this._call=n,this._time=e,An()},stop:function(){this._call&&(this._call=null,this._time=1/0,An())}};function On(n,t,e){var r=new qn;return r.restart(n,t,e),r}function V1(){Of(),++bt;for(var n=yr,t;n;)(t=it-n._time)>=0&&n._call.call(void 0,t),n=n._next;--bt}function Af(){it=(wr=$t.now())+br,bt=Lt=0;try{V1()}finally{bt=0,Y1(),it=0}}function W1(){var n=$t.now(),t=n-wr;t>Rf&&(br-=t,wr=n)}function Y1(){for(var n,t=yr,e,r=1/0;t;)t._call?(r>t._time&&(r=t._time),n=t,t=t._next):(e=t._next,t._next=null,t=n?n._next=e:yr=e);zt=n,An(r)}function An(n){if(!bt){Lt&&(Lt=clearTimeout(Lt));var t=n-it;t>24?(n<1/0&&(Lt=setTimeout(Af,n-$t.now()-br)),Dt&&(Dt=clearInterval(Dt))):(Dt||(wr=$t.now(),Dt=setInterval(W1,Rf)),bt=1,qf(Af))}}const K1=1664525,X1=1013904223,If=4294967296;function Z1(){let n=1;return()=>(n=(K1*n+X1)%If)/If}function J1(n){return n.x}function Q1(n){return n.y}var H1=10,eb=Math.PI*(3-Math.sqrt(5));function tb(n){var t,e=1,r=.001,i=1-Math.pow(r,1/300),s=0,o=.6,a=new Map,u=On(l),c=Rn("tick","end"),f=Z1();n==null&&(n=[]);function l(){h(),c.call("tick",t),e<r&&(u.stop(),c.call("end",t))}function h(v){var m,d=n.length,y;v===void 0&&(v=1);for(var w=0;w<v;++w)for(e+=(s-e)*i,a.forEach(function(b){b(e)}),m=0;m<d;++m)y=n[m],y.fx==null?y.x+=y.vx*=o:(y.x=y.fx,y.vx=0),y.fy==null?y.y+=y.vy*=o:(y.y=y.fy,y.vy=0);return t}function g(){for(var v=0,m=n.length,d;v<m;++v){if(d=n[v],d.index=v,d.fx!=null&&(d.x=d.fx),d.fy!=null&&(d.y=d.fy),isNaN(d.x)||isNaN(d.y)){var y=H1*Math.sqrt(.5+v),w=v*eb;d.x=y*Math.cos(w),d.y=y*Math.sin(w)}(isNaN(d.vx)||isNaN(d.vy))&&(d.vx=d.vy=0)}}function p(v){return v.initialize&&v.initialize(n,f),v}return g(),t={tick:h,restart:function(){return u.restart(l),t},stop:function(){return u.stop(),t},nodes:function(v){return arguments.length?(n=v,g(),a.forEach(p),t):n},alpha:function(v){return arguments.length?(e=+v,t):e},alphaMin:function(v){return arguments.length?(r=+v,t):r},alphaDecay:function(v){return arguments.length?(i=+v,t):+i},alphaTarget:function(v){return arguments.length?(s=+v,t):s},velocityDecay:function(v){return arguments.length?(o=1-v,t):1-o},randomSource:function(v){return arguments.length?(f=v,a.forEach(p),t):f},force:function(v,m){return arguments.length>1?(m==null?a.delete(v):a.set(v,p(m)),t):a.get(v)},find:function(v,m,d){var y=0,w=n.length,b,x,M,N,E;for(d==null?d=1/0:d*=d,y=0;y<w;++y)N=n[y],b=v-N.x,x=m-N.y,M=b*b+x*x,M<d&&(E=N,d=M);return E},on:function(v,m){return arguments.length>1?(c.on(v,m),t):c.on(v)}}}function rb(){var n,t,e,r,i=ae(-30),s,o=1,a=1/0,u=.81;function c(g){var p,v=n.length,m=pt(n,J1,Q1).visitAfter(l);for(r=g,p=0;p<v;++p)t=n[p],m.visit(h)}function f(){if(n){var g,p=n.length,v;for(s=new Array(p),g=0;g<p;++g)v=n[g],s[v.index]=+i(v,g,n)}}function l(g){var p=0,v,m,d=0,y,w,b;if(g.length){for(y=w=b=0;b<4;++b)(v=g[b])&&(m=Math.abs(v.value))&&(p+=v.value,d+=m,y+=m*v.x,w+=m*v.y);g.x=y/d,g.y=w/d}else{v=g,v.x=v.data.x,v.y=v.data.y;do p+=s[v.data.index];while(v=v.next)}g.value=p}function h(g,p,v,m){if(!g.value)return!0;var d=g.x-t.x,y=g.y-t.y,w=m-p,b=d*d+y*y;if(w*w/u<b)return b<a&&(d===0&&(d=We(e),b+=d*d),y===0&&(y=We(e),b+=y*y),b<o&&(b=Math.sqrt(o*b)),t.vx+=d*g.value*r/b,t.vy+=y*g.value*r/b),!0;if(g.length||b>=a)return;(g.data!==t||g.next)&&(d===0&&(d=We(e),b+=d*d),y===0&&(y=We(e),b+=y*y),b<o&&(b=Math.sqrt(o*b)));do g.data!==t&&(w=s[g.data.index]*r/b,t.vx+=d*w,t.vy+=y*w);while(g=g.next)}return c.initialize=function(g,p){n=g,e=p,f()},c.strength=function(g){return arguments.length?(i=typeof g=="function"?g:ae(+g),f(),c):i},c.distanceMin=function(g){return arguments.length?(o=g*g,c):Math.sqrt(o)},c.distanceMax=function(g){return arguments.length?(a=g*g,c):Math.sqrt(a)},c.theta=function(g){return arguments.length?(u=g*g,c):Math.sqrt(u)},c}function nb(n,t,e){var r,i=ae(.1),s,o;typeof n!="function"&&(n=ae(+n)),t==null&&(t=0),e==null&&(e=0);function a(c){for(var f=0,l=r.length;f<l;++f){var h=r[f],g=h.x-t||1e-6,p=h.y-e||1e-6,v=Math.sqrt(g*g+p*p),m=(o[f]-v)*s[f]*c/v;h.vx+=g*m,h.vy+=p*m}}function u(){if(r){var c,f=r.length;for(s=new Array(f),o=new Array(f),c=0;c<f;++c)o[c]=+n(r[c],c,r),s[c]=isNaN(o[c])?0:+i(r[c],c,r)}}return a.initialize=function(c){r=c,u()},a.strength=function(c){return arguments.length?(i=typeof c=="function"?c:ae(+c),u(),a):i},a.radius=function(c){return arguments.length?(n=typeof c=="function"?c:ae(+c),u(),a):n},a.x=function(c){return arguments.length?(t=+c,a):t},a.y=function(c){return arguments.length?(e=+c,a):e},a}function ib(n){var t=ae(.1),e,r,i;typeof n!="function"&&(n=ae(n==null?0:+n));function s(a){for(var u=0,c=e.length,f;u<c;++u)f=e[u],f.vx+=(i[u]-f.x)*r[u]*a}function o(){if(e){var a,u=e.length;for(r=new Array(u),i=new Array(u),a=0;a<u;++a)r[a]=isNaN(i[a]=+n(e[a],a,e))?0:+t(e[a],a,e)}}return s.initialize=function(a){e=a,o()},s.strength=function(a){return arguments.length?(t=typeof a=="function"?a:ae(+a),o(),s):t},s.x=function(a){return arguments.length?(n=typeof a=="function"?a:ae(+a),o(),s):n},s}function sb(n){var t=ae(.1),e,r,i;typeof n!="function"&&(n=ae(n==null?0:+n));function s(a){for(var u=0,c=e.length,f;u<c;++u)f=e[u],f.vy+=(i[u]-f.y)*r[u]*a}function o(){if(e){var a,u=e.length;for(r=new Array(u),i=new Array(u),a=0;a<u;++a)r[a]=isNaN(i[a]=+n(e[a],a,e))?0:+t(e[a],a,e)}}return s.initialize=function(a){e=a,o()},s.strength=function(a){return arguments.length?(t=typeof a=="function"?a:ae(+a),o(),s):t},s.y=function(a){return arguments.length?(n=typeof a=="function"?a:ae(+a),o(),s):n},s}class Tf{constructor(t){this.id="d3-force",this.config={inputNodeAttrs:["x","y","vx","vy","fx","fy"],outputNodeAttrs:["x","y","vx","vy"],simulationAttrs:["alpha","alphaMin","alphaDecay","alphaTarget","velocityDecay","randomSource"]},this.forceMap={link:$1,manyBody:rb,center:C1,collide:D1,radial:nb,x:ib,y:sb},this.options={link:{id:e=>e.id},manyBody:{},center:{x:0,y:0}},this.context={options:{},assign:!1,nodes:[],edges:[]},wc(this.options,t),this.options.forceSimulation&&(this.simulation=this.options.forceSimulation)}execute(t,e){return L(this,void 0,void 0,function*(){return this.genericLayout(!1,t,e)})}assign(t,e){return L(this,void 0,void 0,function*(){yield this.genericLayout(!0,t,e)})}stop(){this.simulation.stop()}tick(t){return this.simulation.tick(t),this.getResult()}restart(){this.simulation.restart()}setFixedPosition(t,e){const r=this.context.nodes.find(i=>i.id===t);r&&e.forEach((i,s)=>{if(typeof i=="number"||i===null){const o=["fx","fy","fz"][s];r[o]=i}})}getOptions(t){var e,r;const i=wc({},this.options,t);return i.collide&&((e=i.collide)===null||e===void 0?void 0:e.radius)===void 0&&(i.collide=i.collide||{},i.collide.radius=(r=i.nodeSize)!==null&&r!==void 0?r:10),i.iterations===void 0&&(i.link&&i.link.iterations===void 0&&(i.iterations=i.link.iterations),i.collide&&i.collide.iterations===void 0&&(i.iterations=i.collide.iterations)),this.context.options=i,i}genericLayout(t,e,r){var i;return L(this,void 0,void 0,function*(){const s=this.getOptions(r),o=e.getAllNodes().map(({id:f,data:l})=>Object.assign(Object.assign({id:f},l),bc(l.data,this.config.inputNodeAttrs))),a=e.getAllEdges().map(f=>Object.assign({},f));Object.assign(this.context,{assign:t,nodes:o,edges:a,graph:e});const u=new Promise(f=>{this.resolver=f}),c=this.setSimulation(s);return c.nodes(o),(i=c.force("link"))===null||i===void 0||i.links(a),u})}getResult(){const{assign:t,nodes:e,edges:r,graph:i}=this.context,s=e.map(a=>({id:a.id,data:Object.assign(Object.assign({},a.data),bc(a,this.config.outputNodeAttrs))})),o=r.map(({id:a,source:u,target:c,data:f})=>({id:a,source:typeof u=="object"?u.id:u,target:typeof c=="object"?c.id:c,data:f}));return t&&s.forEach(a=>i.mergeNodeData(a.id,a.data)),{nodes:s,edges:o}}initSimulation(){return tb()}setSimulation(t){const e=this.simulation||this.options.forceSimulation||this.initSimulation();return this.simulation||(this.simulation=e.on("tick",()=>{var r;return(r=t.onTick)===null||r===void 0?void 0:r.call(t,this.getResult())}).on("end",()=>{var r;return(r=this.resolver)===null||r===void 0?void 0:r.call(this,this.getResult())})),kf(e,this.config.simulationAttrs.map(r=>[r,t[r]])),Object.entries(this.forceMap).forEach(([r,i])=>{const s=r;if(t[r]){let o=e.force(s);o||(o=i(),e.force(s,o)),kf(o,Object.entries(t[s]))}else e.force(s,null)}),e}}const kf=(n,t)=>t.reduce((e,[r,i])=>!e[r]||i===void 0?e:e[r].call(n,i),n);function ob(n,t,e){var r,i=1;n==null&&(n=0),t==null&&(t=0),e==null&&(e=0);function s(){var o,a=r.length,u,c=0,f=0,l=0;for(o=0;o<a;++o)u=r[o],c+=u.x||0,f+=u.y||0,l+=u.z||0;for(c=(c/a-n)*i,f=(f/a-t)*i,l=(l/a-e)*i,o=0;o<a;++o)u=r[o],c&&(u.x-=c),f&&(u.y-=f),l&&(u.z-=l)}return s.initialize=function(o){r=o},s.x=function(o){return arguments.length?(n=+o,s):n},s.y=function(o){return arguments.length?(t=+o,s):t},s.z=function(o){return arguments.length?(e=+o,s):e},s.strength=function(o){return arguments.length?(i=+o,s):i},s}function ab(n){const t=+this._x.call(null,n);return jf(this.cover(t),t,n)}function jf(n,t,e){if(isNaN(t))return n;var r,i=n._root,s={data:e},o=n._x0,a=n._x1,u,c,f,l,h;if(!i)return n._root=s,n;for(;i.length;)if((f=t>=(u=(o+a)/2))?o=u:a=u,r=i,!(i=i[l=+f]))return r[l]=s,n;if(c=+n._x.call(null,i.data),t===c)return s.next=i,r?r[l]=s:n._root=s,n;do r=r?r[l]=new Array(2):n._root=new Array(2),(f=t>=(u=(o+a)/2))?o=u:a=u;while((l=+f)==(h=+(c>=u)));return r[h]=i,r[l]=s,n}function ub(n){Array.isArray(n)||(n=Array.from(n));const t=n.length,e=new Float64Array(t);let r=1/0,i=-1/0;for(let s=0,o;s<t;++s)isNaN(o=+this._x.call(null,n[s]))||(e[s]=o,o<r&&(r=o),o>i&&(i=o));if(r>i)return this;this.cover(r).cover(i);for(let s=0;s<t;++s)jf(this,e[s],n[s]);return this}function cb(n){if(isNaN(n=+n))return this;var t=this._x0,e=this._x1;if(isNaN(t))e=(t=Math.floor(n))+1;else{for(var r=e-t||1,i=this._root,s,o;t>n||n>=e;)switch(o=+(n<t),s=new Array(2),s[o]=i,i=s,r*=2,o){case 0:e=t+r;break;case 1:t=e-r;break}this._root&&this._root.length&&(this._root=i)}return this._x0=t,this._x1=e,this}function fb(){var n=[];return this.visit(function(t){if(!t.length)do n.push(t.data);while(t=t.next)}),n}function lb(n){return arguments.length?this.cover(+n[0][0]).cover(+n[1][0]):isNaN(this._x0)?void 0:[[this._x0],[this._x1]]}function Pe(n,t,e){this.node=n,this.x0=t,this.x1=e}function hb(n,t){var e,r=this._x0,i,s,o=this._x1,a=[],u=this._root,c,f;for(u&&a.push(new Pe(u,r,o)),t==null?t=1/0:(r=n-t,o=n+t);c=a.pop();)if(!(!(u=c.node)||(i=c.x0)>o||(s=c.x1)<r))if(u.length){var l=(i+s)/2;a.push(new Pe(u[1],l,s),new Pe(u[0],i,l)),(f=+(n>=l))&&(c=a[a.length-1],a[a.length-1]=a[a.length-1-f],a[a.length-1-f]=c)}else{var h=Math.abs(n-+this._x.call(null,u.data));h<t&&(t=h,r=n-h,o=n+h,e=u.data)}return e}function db(n){if(isNaN(u=+this._x.call(null,n)))return this;var t,e=this._root,r,i,s,o=this._x0,a=this._x1,u,c,f,l,h;if(!e)return this;if(e.length)for(;;){if((f=u>=(c=(o+a)/2))?o=c:a=c,t=e,!(e=e[l=+f]))return this;if(!e.length)break;t[l+1&1]&&(r=t,h=l)}for(;e.data!==n;)if(i=e,!(e=e.next))return this;return(s=e.next)&&delete e.next,i?(s?i.next=s:delete i.next,this):t?(s?t[l]=s:delete t[l],(e=t[0]||t[1])&&e===(t[1]||t[0])&&!e.length&&(r?r[h]=e:this._root=e),this):(this._root=s,this)}function gb(n){for(var t=0,e=n.length;t<e;++t)this.remove(n[t]);return this}function pb(){return this._root}function vb(){var n=0;return this.visit(function(t){if(!t.length)do++n;while(t=t.next)}),n}function mb(n){var t=[],e,r=this._root,i,s,o;for(r&&t.push(new Pe(r,this._x0,this._x1));e=t.pop();)if(!n(r=e.node,s=e.x0,o=e.x1)&&r.length){var a=(s+o)/2;(i=r[1])&&t.push(new Pe(i,a,o)),(i=r[0])&&t.push(new Pe(i,s,a))}return this}function yb(n){var t=[],e=[],r;for(this._root&&t.push(new Pe(this._root,this._x0,this._x1));r=t.pop();){var i=r.node;if(i.length){var s,o=r.x0,a=r.x1,u=(o+a)/2;(s=i[0])&&t.push(new Pe(s,o,u)),(s=i[1])&&t.push(new Pe(s,u,a))}e.push(r)}for(;r=e.pop();)n(r.node,r.x0,r.x1);return this}function wb(n){return n[0]}function bb(n){return arguments.length?(this._x=n,this):this._x}function In(n,t){var e=new Tn(t??wb,NaN,NaN);return n==null?e:e.addAll(n)}function Tn(n,t,e){this._x=n,this._x0=t,this._x1=e,this._root=void 0}function Cf(n){for(var t={data:n.data},e=t;n=n.next;)e=e.next={data:n.data};return t}var pe=In.prototype=Tn.prototype;pe.copy=function(){var n=new Tn(this._x,this._x0,this._x1),t=this._root,e,r;if(!t)return n;if(!t.length)return n._root=Cf(t),n;for(e=[{source:t,target:n._root=new Array(2)}];t=e.pop();)for(var i=0;i<2;++i)(r=t.source[i])&&(r.length?e.push({source:r,target:t.target[i]=new Array(2)}):t.target[i]=Cf(r));return n},pe.add=ab,pe.addAll=ub,pe.cover=cb,pe.data=fb,pe.extent=lb,pe.find=hb,pe.remove=db,pe.removeAll=gb,pe.root=pb,pe.size=vb,pe.visit=mb,pe.visitAfter=yb,pe.x=bb;function ie(n){return function(){return n}}function Ne(n){return(n()-.5)*1e-6}function kn(n){return n.x+n.vx}function Pf(n){return n.y+n.vy}function _b(n){return n.z+n.vz}function Eb(n){var t,e,r,i,s=1,o=1;typeof n!="function"&&(n=ie(n==null?1:+n));function a(){for(var f,l=t.length,h,g,p,v,m,d,y,w=0;w<o;++w)for(h=(e===1?In(t,kn):e===2?pt(t,kn,Pf):e===3?ar(t,kn,Pf,_b):null).visitAfter(u),f=0;f<l;++f)g=t[f],d=r[g.index],y=d*d,p=g.x+g.vx,e>1&&(v=g.y+g.vy),e>2&&(m=g.z+g.vz),h.visit(b);function b(x,M,N,E,O,_,S){var q=[M,N,E,O,_,S],R=q[0],T=q[1],I=q[2],k=q[e],F=q[e+1],A=q[e+2],C=x.data,D=x.r,z=d+D;if(C){if(C.index>g.index){var U=p-C.x-C.vx,P=e>1?v-C.y-C.vy:0,$=e>2?m-C.z-C.vz:0,B=U*U+P*P+$*$;B<z*z&&(U===0&&(U=Ne(i),B+=U*U),e>1&&P===0&&(P=Ne(i),B+=P*P),e>2&&$===0&&($=Ne(i),B+=$*$),B=(z-(B=Math.sqrt(B)))/B*s,g.vx+=(U*=B)*(z=(D*=D)/(y+D)),e>1&&(g.vy+=(P*=B)*z),e>2&&(g.vz+=($*=B)*z),C.vx-=U*(z=1-z),e>1&&(C.vy-=P*z),e>2&&(C.vz-=$*z))}return}return R>p+z||k<p-z||e>1&&(T>v+z||F<v-z)||e>2&&(I>m+z||A<m-z)}}function u(f){if(f.data)return f.r=r[f.data.index];for(var l=f.r=0;l<Math.pow(2,e);++l)f[l]&&f[l].r>f.r&&(f.r=f[l].r)}function c(){if(t){var f,l=t.length,h;for(r=new Array(l),f=0;f<l;++f)h=t[f],r[h.index]=+n(h,f,t)}}return a.initialize=function(f,...l){t=f,i=l.find(h=>typeof h=="function")||Math.random,e=l.find(h=>[1,2,3].includes(h))||2,c()},a.iterations=function(f){return arguments.length?(o=+f,a):o},a.strength=function(f){return arguments.length?(s=+f,a):s},a.radius=function(f){return arguments.length?(n=typeof f=="function"?f:ie(+f),c(),a):n},a}function xb(n){return n.index}function Lf(n,t){var e=n.get(t);if(!e)throw new Error("node not found: "+t);return e}function Nb(n){var t=xb,e=h,r,i=ie(30),s,o,a,u,c,f,l=1;n==null&&(n=[]);function h(d){return 1/Math.min(u[d.source.index],u[d.target.index])}function g(d){for(var y=0,w=n.length;y<l;++y)for(var b=0,x,M,N,E=0,O=0,_=0,S,q;b<w;++b)x=n[b],M=x.source,N=x.target,E=N.x+N.vx-M.x-M.vx||Ne(f),a>1&&(O=N.y+N.vy-M.y-M.vy||Ne(f)),a>2&&(_=N.z+N.vz-M.z-M.vz||Ne(f)),S=Math.sqrt(E*E+O*O+_*_),S=(S-s[b])/S*d*r[b],E*=S,O*=S,_*=S,N.vx-=E*(q=c[b]),a>1&&(N.vy-=O*q),a>2&&(N.vz-=_*q),M.vx+=E*(q=1-q),a>1&&(M.vy+=O*q),a>2&&(M.vz+=_*q)}function p(){if(o){var d,y=o.length,w=n.length,b=new Map(o.map((M,N)=>[t(M,N,o),M])),x;for(d=0,u=new Array(y);d<w;++d)x=n[d],x.index=d,typeof x.source!="object"&&(x.source=Lf(b,x.source)),typeof x.target!="object"&&(x.target=Lf(b,x.target)),u[x.source.index]=(u[x.source.index]||0)+1,u[x.target.index]=(u[x.target.index]||0)+1;for(d=0,c=new Array(w);d<w;++d)x=n[d],c[d]=u[x.source.index]/(u[x.source.index]+u[x.target.index]);r=new Array(w),v(),s=new Array(w),m()}}function v(){if(o)for(var d=0,y=n.length;d<y;++d)r[d]=+e(n[d],d,n)}function m(){if(o)for(var d=0,y=n.length;d<y;++d)s[d]=+i(n[d],d,n)}return g.initialize=function(d,...y){o=d,f=y.find(w=>typeof w=="function")||Math.random,a=y.find(w=>[1,2,3].includes(w))||2,p()},g.links=function(d){return arguments.length?(n=d,p(),g):n},g.id=function(d){return arguments.length?(t=d,g):t},g.iterations=function(d){return arguments.length?(l=+d,g):l},g.strength=function(d){return arguments.length?(e=typeof d=="function"?d:ie(+d),v(),g):e},g.distance=function(d){return arguments.length?(i=typeof d=="function"?d:ie(+d),m(),g):i},g}const Mb=1664525,Sb=1013904223,Df=4294967296;function Rb(){let n=1;return()=>(n=(Mb*n+Sb)%Df)/Df}var zf=3;function jn(n){return n.x}function $f(n){return n.y}function qb(n){return n.z}var Ob=10,Ab=Math.PI*(3-Math.sqrt(5)),Ib=Math.PI*20/(9+Math.sqrt(221));function Tb(n,t){t=t||2;var e=Math.min(zf,Math.max(1,Math.round(t))),r,i=1,s=.001,o=1-Math.pow(s,1/300),a=0,u=.6,c=new Map,f=On(g),l=Rn("tick","end"),h=Rb();n==null&&(n=[]);function g(){p(),l.call("tick",r),i<s&&(f.stop(),l.call("end",r))}function p(d){var y,w=n.length,b;d===void 0&&(d=1);for(var x=0;x<d;++x)for(i+=(a-i)*o,c.forEach(function(M){M(i)}),y=0;y<w;++y)b=n[y],b.fx==null?b.x+=b.vx*=u:(b.x=b.fx,b.vx=0),e>1&&(b.fy==null?b.y+=b.vy*=u:(b.y=b.fy,b.vy=0)),e>2&&(b.fz==null?b.z+=b.vz*=u:(b.z=b.fz,b.vz=0));return r}function v(){for(var d=0,y=n.length,w;d<y;++d){if(w=n[d],w.index=d,w.fx!=null&&(w.x=w.fx),w.fy!=null&&(w.y=w.fy),w.fz!=null&&(w.z=w.fz),isNaN(w.x)||e>1&&isNaN(w.y)||e>2&&isNaN(w.z)){var b=Ob*(e>2?Math.cbrt(.5+d):e>1?Math.sqrt(.5+d):d),x=d*Ab,M=d*Ib;e===1?w.x=b:e===2?(w.x=b*Math.cos(x),w.y=b*Math.sin(x)):(w.x=b*Math.sin(x)*Math.cos(M),w.y=b*Math.cos(x),w.z=b*Math.sin(x)*Math.sin(M))}(isNaN(w.vx)||e>1&&isNaN(w.vy)||e>2&&isNaN(w.vz))&&(w.vx=0,e>1&&(w.vy=0),e>2&&(w.vz=0))}}function m(d){return d.initialize&&d.initialize(n,h,e),d}return v(),r={tick:p,restart:function(){return f.restart(g),r},stop:function(){return f.stop(),r},numDimensions:function(d){return arguments.length?(e=Math.min(zf,Math.max(1,Math.round(d))),c.forEach(m),r):e},nodes:function(d){return arguments.length?(n=d,v(),c.forEach(m),r):n},alpha:function(d){return arguments.length?(i=+d,r):i},alphaMin:function(d){return arguments.length?(s=+d,r):s},alphaDecay:function(d){return arguments.length?(o=+d,r):+o},alphaTarget:function(d){return arguments.length?(a=+d,r):a},velocityDecay:function(d){return arguments.length?(u=1-d,r):1-u},randomSource:function(d){return arguments.length?(h=d,c.forEach(m),r):h},force:function(d,y){return arguments.length>1?(y==null?c.delete(d):c.set(d,m(y)),r):c.get(d)},find:function(){var d=Array.prototype.slice.call(arguments),y=d.shift()||0,w=(e>1?d.shift():null)||0,b=(e>2?d.shift():null)||0,x=d.shift()||1/0,M=0,N=n.length,E,O,_,S,q,R;for(x*=x,M=0;M<N;++M)q=n[M],E=y-q.x,O=w-(q.y||0),_=b-(q.z||0),S=E*E+O*O+_*_,S<x&&(R=q,x=S);return R},on:function(d,y){return arguments.length>1?(l.on(d,y),r):l.on(d)}}}function kb(){var n,t,e,r,i,s=ie(-30),o,a=1,u=1/0,c=.81;function f(p){var v,m=n.length,d=(t===1?In(n,jn):t===2?pt(n,jn,$f):t===3?ar(n,jn,$f,qb):null).visitAfter(h);for(i=p,v=0;v<m;++v)e=n[v],d.visit(g)}function l(){if(n){var p,v=n.length,m;for(o=new Array(v),p=0;p<v;++p)m=n[p],o[m.index]=+s(m,p,n)}}function h(p){var v=0,m,d,y=0,w,b,x,M,N=p.length;if(N){for(w=b=x=M=0;M<N;++M)(m=p[M])&&(d=Math.abs(m.value))&&(v+=m.value,y+=d,w+=d*(m.x||0),b+=d*(m.y||0),x+=d*(m.z||0));v*=Math.sqrt(4/N),p.x=w/y,t>1&&(p.y=b/y),t>2&&(p.z=x/y)}else{m=p,m.x=m.data.x,t>1&&(m.y=m.data.y),t>2&&(m.z=m.data.z);do v+=o[m.data.index];while(m=m.next)}p.value=v}function g(p,v,m,d,y){if(!p.value)return!0;var w=[m,d,y][t-1],b=p.x-e.x,x=t>1?p.y-e.y:0,M=t>2?p.z-e.z:0,N=w-v,E=b*b+x*x+M*M;if(N*N/c<E)return E<u&&(b===0&&(b=Ne(r),E+=b*b),t>1&&x===0&&(x=Ne(r),E+=x*x),t>2&&M===0&&(M=Ne(r),E+=M*M),E<a&&(E=Math.sqrt(a*E)),e.vx+=b*p.value*i/E,t>1&&(e.vy+=x*p.value*i/E),t>2&&(e.vz+=M*p.value*i/E)),!0;if(p.length||E>=u)return;(p.data!==e||p.next)&&(b===0&&(b=Ne(r),E+=b*b),t>1&&x===0&&(x=Ne(r),E+=x*x),t>2&&M===0&&(M=Ne(r),E+=M*M),E<a&&(E=Math.sqrt(a*E)));do p.data!==e&&(N=o[p.data.index]*i/E,e.vx+=b*N,t>1&&(e.vy+=x*N),t>2&&(e.vz+=M*N));while(p=p.next)}return f.initialize=function(p,...v){n=p,r=v.find(m=>typeof m=="function")||Math.random,t=v.find(m=>[1,2,3].includes(m))||2,l()},f.strength=function(p){return arguments.length?(s=typeof p=="function"?p:ie(+p),l(),f):s},f.distanceMin=function(p){return arguments.length?(a=p*p,f):Math.sqrt(a)},f.distanceMax=function(p){return arguments.length?(u=p*p,f):Math.sqrt(u)},f.theta=function(p){return arguments.length?(c=p*p,f):Math.sqrt(c)},f}function jb(n,t,e,r){var i,s,o=ie(.1),a,u;typeof n!="function"&&(n=ie(+n)),t==null&&(t=0),e==null&&(e=0),r==null&&(r=0);function c(l){for(var h=0,g=i.length;h<g;++h){var p=i[h],v=p.x-t||1e-6,m=(p.y||0)-e||1e-6,d=(p.z||0)-r||1e-6,y=Math.sqrt(v*v+m*m+d*d),w=(u[h]-y)*a[h]*l/y;p.vx+=v*w,s>1&&(p.vy+=m*w),s>2&&(p.vz+=d*w)}}function f(){if(i){var l,h=i.length;for(a=new Array(h),u=new Array(h),l=0;l<h;++l)u[l]=+n(i[l],l,i),a[l]=isNaN(u[l])?0:+o(i[l],l,i)}}return c.initialize=function(l,...h){i=l,s=h.find(g=>[1,2,3].includes(g))||2,f()},c.strength=function(l){return arguments.length?(o=typeof l=="function"?l:ie(+l),f(),c):o},c.radius=function(l){return arguments.length?(n=typeof l=="function"?l:ie(+l),f(),c):n},c.x=function(l){return arguments.length?(t=+l,c):t},c.y=function(l){return arguments.length?(e=+l,c):e},c.z=function(l){return arguments.length?(r=+l,c):r},c}function Cb(n){var t=ie(.1),e,r,i;typeof n!="function"&&(n=ie(n==null?0:+n));function s(a){for(var u=0,c=e.length,f;u<c;++u)f=e[u],f.vx+=(i[u]-f.x)*r[u]*a}function o(){if(e){var a,u=e.length;for(r=new Array(u),i=new Array(u),a=0;a<u;++a)r[a]=isNaN(i[a]=+n(e[a],a,e))?0:+t(e[a],a,e)}}return s.initialize=function(a){e=a,o()},s.strength=function(a){return arguments.length?(t=typeof a=="function"?a:ie(+a),o(),s):t},s.x=function(a){return arguments.length?(n=typeof a=="function"?a:ie(+a),o(),s):n},s}function Pb(n){var t=ie(.1),e,r,i;typeof n!="function"&&(n=ie(n==null?0:+n));function s(a){for(var u=0,c=e.length,f;u<c;++u)f=e[u],f.vy+=(i[u]-f.y)*r[u]*a}function o(){if(e){var a,u=e.length;for(r=new Array(u),i=new Array(u),a=0;a<u;++a)r[a]=isNaN(i[a]=+n(e[a],a,e))?0:+t(e[a],a,e)}}return s.initialize=function(a){e=a,o()},s.strength=function(a){return arguments.length?(t=typeof a=="function"?a:ie(+a),o(),s):t},s.y=function(a){return arguments.length?(n=typeof a=="function"?a:ie(+a),o(),s):n},s}function Lb(n){var t=ie(.1),e,r,i;typeof n!="function"&&(n=ie(n==null?0:+n));function s(a){for(var u=0,c=e.length,f;u<c;++u)f=e[u],f.vz+=(i[u]-f.z)*r[u]*a}function o(){if(e){var a,u=e.length;for(r=new Array(u),i=new Array(u),a=0;a<u;++a)r[a]=isNaN(i[a]=+n(e[a],a,e))?0:+t(e[a],a,e)}}return s.initialize=function(a){e=a,o()},s.strength=function(a){return arguments.length?(t=typeof a=="function"?a:ie(+a),o(),s):t},s.z=function(a){return arguments.length?(n=typeof a=="function"?a:ie(+a),o(),s):n},s}class Db extends Tf{constructor(){super(...arguments),this.id="d3-force-3d",this.config={inputNodeAttrs:["x","y","z","vx","vy","vz","fx","fy","fz"],outputNodeAttrs:["x","y","z","vx","vy","vz"],simulationAttrs:["alpha","alphaMin","alphaDecay","alphaTarget","velocityDecay","randomSource","numDimensions"]},this.forceMap={link:Nb,manyBody:kb,center:ob,collide:Eb,radial:jb,x:Cb,y:Pb,z:Lb},this.options={numDimensions:3,link:{id:t=>t.id},manyBody:{},center:{x:0,y:0,z:0}}}initSimulation(){return Tb()}}function Cn(n){throw new Error('Could not dynamically require "'+n+'". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.')}var Pn,Ff;function zb(){if(Ff)return Pn;Ff=1;function n(){this.__data__=[],this.size=0}return Pn=n,Pn}var Ln,Bf;function _t(){if(Bf)return Ln;Bf=1;function n(t,e){return t===e||t!==t&&e!==e}return Ln=n,Ln}var Dn,Uf;function _r(){if(Uf)return Dn;Uf=1;var n=_t();function t(e,r){for(var i=e.length;i--;)if(n(e[i][0],r))return i;return-1}return Dn=t,Dn}var zn,Gf;function $b(){if(Gf)return zn;Gf=1;var n=_r(),t=Array.prototype,e=t.splice;function r(i){var s=this.__data__,o=n(s,i);if(o<0)return!1;var a=s.length-1;return o==a?s.pop():e.call(s,o,1),--this.size,!0}return zn=r,zn}var $n,Vf;function Fb(){if(Vf)return $n;Vf=1;var n=_r();function t(e){var r=this.__data__,i=n(r,e);return i<0?void 0:r[i][1]}return $n=t,$n}var Fn,Wf;function Bb(){if(Wf)return Fn;Wf=1;var n=_r();function t(e){return n(this.__data__,e)>-1}return Fn=t,Fn}var Bn,Yf;function Ub(){if(Yf)return Bn;Yf=1;var n=_r();function t(e,r){var i=this.__data__,s=n(i,e);return s<0?(++this.size,i.push([e,r])):i[s][1]=r,this}return Bn=t,Bn}var Un,Kf;function Er(){if(Kf)return Un;Kf=1;var n=zb(),t=$b(),e=Fb(),r=Bb(),i=Ub();function s(o){var a=-1,u=o==null?0:o.length;for(this.clear();++a<u;){var c=o[a];this.set(c[0],c[1])}}return s.prototype.clear=n,s.prototype.delete=t,s.prototype.get=e,s.prototype.has=r,s.prototype.set=i,Un=s,Un}var Gn,Xf;function Gb(){if(Xf)return Gn;Xf=1;var n=Er();function t(){this.__data__=new n,this.size=0}return Gn=t,Gn}var Vn,Zf;function Vb(){if(Zf)return Vn;Zf=1;function n(t){var e=this.__data__,r=e.delete(t);return this.size=e.size,r}return Vn=n,Vn}var Wn,Jf;function Wb(){if(Jf)return Wn;Jf=1;function n(t){return this.__data__.get(t)}return Wn=n,Wn}var Yn,Qf;function Yb(){if(Qf)return Yn;Qf=1;function n(t){return this.__data__.has(t)}return Yn=n,Yn}var Kn,Hf;function el(){if(Hf)return Kn;Hf=1;var n=typeof ur=="object"&&ur&&ur.Object===Object&&ur;return Kn=n,Kn}var Xn,tl;function Re(){if(tl)return Xn;tl=1;var n=el(),t=typeof self=="object"&&self&&self.Object===Object&&self,e=n||t||Function("return this")();return Xn=e,Xn}var Zn,rl;function Et(){if(rl)return Zn;rl=1;var n=Re(),t=n.Symbol;return Zn=t,Zn}var Jn,nl;function Kb(){if(nl)return Jn;nl=1;var n=Et(),t=Object.prototype,e=t.hasOwnProperty,r=t.toString,i=n?n.toStringTag:void 0;function s(o){var a=e.call(o,i),u=o[i];try{o[i]=void 0;var c=!0}catch{}var f=r.call(o);return c&&(a?o[i]=u:delete o[i]),f}return Jn=s,Jn}var Qn,il;function Xb(){if(il)return Qn;il=1;var n=Object.prototype,t=n.toString;function e(r){return t.call(r)}return Qn=e,Qn}var Hn,sl;function st(){if(sl)return Hn;sl=1;var n=Et(),t=Kb(),e=Xb(),r="[object Null]",i="[object Undefined]",s=n?n.toStringTag:void 0;function o(a){return a==null?a===void 0?i:r:s&&s in Object(a)?t(a):e(a)}return Hn=o,Hn}var ei,ol;function Me(){if(ol)return ei;ol=1;function n(t){var e=typeof t;return t!=null&&(e=="object"||e=="function")}return ei=n,ei}var ti,al;function Ft(){if(al)return ti;al=1;var n=st(),t=Me(),e="[object AsyncFunction]",r="[object Function]",i="[object GeneratorFunction]",s="[object Proxy]";function o(a){if(!t(a))return!1;var u=n(a);return u==r||u==i||u==e||u==s}return ti=o,ti}var ri,ul;function Zb(){if(ul)return ri;ul=1;var n=Re(),t=n["__core-js_shared__"];return ri=t,ri}var ni,cl;function Jb(){if(cl)return ni;cl=1;var n=Zb(),t=function(){var r=/[^.]+$/.exec(n&&n.keys&&n.keys.IE_PROTO||"");return r?"Symbol(src)_1."+r:""}();function e(r){return!!t&&t in r}return ni=e,ni}var ii,fl;function ll(){if(fl)return ii;fl=1;var n=Function.prototype,t=n.toString;function e(r){if(r!=null){try{return t.call(r)}catch{}try{return r+""}catch{}}return""}return ii=e,ii}var si,hl;function Qb(){if(hl)return si;hl=1;var n=Ft(),t=Jb(),e=Me(),r=ll(),i=/[\\^$.*+?()[\]{}|]/g,s=/^\[object .+?Constructor\]$/,o=Function.prototype,a=Object.prototype,u=o.toString,c=a.hasOwnProperty,f=RegExp("^"+u.call(c).replace(i,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function l(h){if(!e(h)||t(h))return!1;var g=n(h)?f:s;return g.test(r(h))}return si=l,si}var oi,dl;function Hb(){if(dl)return oi;dl=1;function n(t,e){return t==null?void 0:t[e]}return oi=n,oi}var ai,gl;function ot(){if(gl)return ai;gl=1;var n=Qb(),t=Hb();function e(r,i){var s=t(r,i);return n(s)?s:void 0}return ai=e,ai}var ui,pl;function ci(){if(pl)return ui;pl=1;var n=ot(),t=Re(),e=n(t,"Map");return ui=e,ui}var fi,vl;function xr(){if(vl)return fi;vl=1;var n=ot(),t=n(Object,"create");return fi=t,fi}var li,ml;function e_(){if(ml)return li;ml=1;var n=xr();function t(){this.__data__=n?n(null):{},this.size=0}return li=t,li}var hi,yl;function t_(){if(yl)return hi;yl=1;function n(t){var e=this.has(t)&&delete this.__data__[t];return this.size-=e?1:0,e}return hi=n,hi}var di,wl;function r_(){if(wl)return di;wl=1;var n=xr(),t="__lodash_hash_undefined__",e=Object.prototype,r=e.hasOwnProperty;function i(s){var o=this.__data__;if(n){var a=o[s];return a===t?void 0:a}return r.call(o,s)?o[s]:void 0}return di=i,di}var gi,bl;function n_(){if(bl)return gi;bl=1;var n=xr(),t=Object.prototype,e=t.hasOwnProperty;function r(i){var s=this.__data__;return n?s[i]!==void 0:e.call(s,i)}return gi=r,gi}var pi,_l;function i_(){if(_l)return pi;_l=1;var n=xr(),t="__lodash_hash_undefined__";function e(r,i){var s=this.__data__;return this.size+=this.has(r)?0:1,s[r]=n&&i===void 0?t:i,this}return pi=e,pi}var vi,El;function s_(){if(El)return vi;El=1;var n=e_(),t=t_(),e=r_(),r=n_(),i=i_();function s(o){var a=-1,u=o==null?0:o.length;for(this.clear();++a<u;){var c=o[a];this.set(c[0],c[1])}}return s.prototype.clear=n,s.prototype.delete=t,s.prototype.get=e,s.prototype.has=r,s.prototype.set=i,vi=s,vi}var mi,xl;function o_(){if(xl)return mi;xl=1;var n=s_(),t=Er(),e=ci();function r(){this.size=0,this.__data__={hash:new n,map:new(e||t),string:new n}}return mi=r,mi}var yi,Nl;function a_(){if(Nl)return yi;Nl=1;function n(t){var e=typeof t;return e=="string"||e=="number"||e=="symbol"||e=="boolean"?t!=="__proto__":t===null}return yi=n,yi}var wi,Ml;function Nr(){if(Ml)return wi;Ml=1;var n=a_();function t(e,r){var i=e.__data__;return n(r)?i[typeof r=="string"?"string":"hash"]:i.map}return wi=t,wi}var bi,Sl;function u_(){if(Sl)return bi;Sl=1;var n=Nr();function t(e){var r=n(this,e).delete(e);return this.size-=r?1:0,r}return bi=t,bi}var _i,Rl;function c_(){if(Rl)return _i;Rl=1;var n=Nr();function t(e){return n(this,e).get(e)}return _i=t,_i}var Ei,ql;function f_(){if(ql)return Ei;ql=1;var n=Nr();function t(e){return n(this,e).has(e)}return Ei=t,Ei}var xi,Ol;function l_(){if(Ol)return xi;Ol=1;var n=Nr();function t(e,r){var i=n(this,e),s=i.size;return i.set(e,r),this.size+=i.size==s?0:1,this}return xi=t,xi}var Ni,Al;function Mi(){if(Al)return Ni;Al=1;var n=o_(),t=u_(),e=c_(),r=f_(),i=l_();function s(o){var a=-1,u=o==null?0:o.length;for(this.clear();++a<u;){var c=o[a];this.set(c[0],c[1])}}return s.prototype.clear=n,s.prototype.delete=t,s.prototype.get=e,s.prototype.has=r,s.prototype.set=i,Ni=s,Ni}var Si,Il;function h_(){if(Il)return Si;Il=1;var n=Er(),t=ci(),e=Mi(),r=200;function i(s,o){var a=this.__data__;if(a instanceof n){var u=a.__data__;if(!t||u.length<r-1)return u.push([s,o]),this.size=++a.size,this;a=this.__data__=new e(u)}return a.set(s,o),this.size=a.size,this}return Si=i,Si}var Ri,Tl;function Mr(){if(Tl)return Ri;Tl=1;var n=Er(),t=Gb(),e=Vb(),r=Wb(),i=Yb(),s=h_();function o(a){var u=this.__data__=new n(a);this.size=u.size}return o.prototype.clear=t,o.prototype.delete=e,o.prototype.get=r,o.prototype.has=i,o.prototype.set=s,Ri=o,Ri}var qi,kl;function Oi(){if(kl)return qi;kl=1;function n(t,e){for(var r=-1,i=t==null?0:t.length;++r<i&&e(t[r],r,t)!==!1;);return t}return qi=n,qi}var Ai,jl;function Cl(){if(jl)return Ai;jl=1;var n=ot(),t=function(){try{var e=n(Object,"defineProperty");return e({},"",{}),e}catch{}}();return Ai=t,Ai}var Ii,Pl;function Sr(){if(Pl)return Ii;Pl=1;var n=Cl();function t(e,r,i){r=="__proto__"&&n?n(e,r,{configurable:!0,enumerable:!0,value:i,writable:!0}):e[r]=i}return Ii=t,Ii}var Ti,Ll;function Rr(){if(Ll)return Ti;Ll=1;var n=Sr(),t=_t(),e=Object.prototype,r=e.hasOwnProperty;function i(s,o,a){var u=s[o];(!(r.call(s,o)&&t(u,a))||a===void 0&&!(o in s))&&n(s,o,a)}return Ti=i,Ti}var ki,Dl;function Bt(){if(Dl)return ki;Dl=1;var n=Rr(),t=Sr();function e(r,i,s,o){var a=!s;s||(s={});for(var u=-1,c=i.length;++u<c;){var f=i[u],l=o?o(s[f],r[f],f,s,r):void 0;l===void 0&&(l=r[f]),a?t(s,f,l):n(s,f,l)}return s}return ki=e,ki}var ji,zl;function d_(){if(zl)return ji;zl=1;function n(t,e){for(var r=-1,i=Array(t);++r<t;)i[r]=e(r);return i}return ji=n,ji}var Ci,$l;function Ae(){if($l)return Ci;$l=1;function n(t){return t!=null&&typeof t=="object"}return Ci=n,Ci}var Pi,Fl;function g_(){if(Fl)return Pi;Fl=1;var n=st(),t=Ae(),e="[object Arguments]";function r(i){return t(i)&&n(i)==e}return Pi=r,Pi}var Li,Bl;function Ut(){if(Bl)return Li;Bl=1;var n=g_(),t=Ae(),e=Object.prototype,r=e.hasOwnProperty,i=e.propertyIsEnumerable,s=n(function(){return arguments}())?n:function(o){return t(o)&&r.call(o,"callee")&&!i.call(o,"callee")};return Li=s,Li}var Di,Ul;function oe(){if(Ul)return Di;Ul=1;var n=Array.isArray;return Di=n,Di}var Gt={exports:{}},zi,Gl;function p_(){if(Gl)return zi;Gl=1;function n(){return!1}return zi=n,zi}Gt.exports;var Vl;function xt(){return Vl||(Vl=1,function(n,t){var e=Re(),r=p_(),i=t&&!t.nodeType&&t,s=i&&!0&&n&&!n.nodeType&&n,o=s&&s.exports===i,a=o?e.Buffer:void 0,u=a?a.isBuffer:void 0,c=u||r;n.exports=c}(Gt,Gt.exports)),Gt.exports}var $i,Wl;function qr(){if(Wl)return $i;Wl=1;var n=9007199254740991,t=/^(?:0|[1-9]\d*)$/;function e(r,i){var s=typeof r;return i=i??n,!!i&&(s=="number"||s!="symbol"&&t.test(r))&&r>-1&&r%1==0&&r<i}return $i=e,$i}var Fi,Yl;function Bi(){if(Yl)return Fi;Yl=1;var n=9007199254740991;function t(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=n}return Fi=t,Fi}var Ui,Kl;function v_(){if(Kl)return Ui;Kl=1;var n=st(),t=Bi(),e=Ae(),r="[object Arguments]",i="[object Array]",s="[object Boolean]",o="[object Date]",a="[object Error]",u="[object Function]",c="[object Map]",f="[object Number]",l="[object Object]",h="[object RegExp]",g="[object Set]",p="[object String]",v="[object WeakMap]",m="[object ArrayBuffer]",d="[object DataView]",y="[object Float32Array]",w="[object Float64Array]",b="[object Int8Array]",x="[object Int16Array]",M="[object Int32Array]",N="[object Uint8Array]",E="[object Uint8ClampedArray]",O="[object Uint16Array]",_="[object Uint32Array]",S={};S[y]=S[w]=S[b]=S[x]=S[M]=S[N]=S[E]=S[O]=S[_]=!0,S[r]=S[i]=S[m]=S[s]=S[d]=S[o]=S[a]=S[u]=S[c]=S[f]=S[l]=S[h]=S[g]=S[p]=S[v]=!1;function q(R){return e(R)&&t(R.length)&&!!S[n(R)]}return Ui=q,Ui}var Gi,Xl;function Or(){if(Xl)return Gi;Xl=1;function n(t){return function(e){return t(e)}}return Gi=n,Gi}var Vt={exports:{}};Vt.exports;var Zl;function Vi(){return Zl||(Zl=1,function(n,t){var e=el(),r=t&&!t.nodeType&&t,i=r&&!0&&n&&!n.nodeType&&n,s=i&&i.exports===r,o=s&&e.process,a=function(){try{var u=i&&i.require&&i.require("util").types;return u||o&&o.binding&&o.binding("util")}catch{}}();n.exports=a}(Vt,Vt.exports)),Vt.exports}var Wi,Jl;function Wt(){if(Jl)return Wi;Jl=1;var n=v_(),t=Or(),e=Vi(),r=e&&e.isTypedArray,i=r?t(r):n;return Wi=i,Wi}var Yi,Ql;function Hl(){if(Ql)return Yi;Ql=1;var n=d_(),t=Ut(),e=oe(),r=xt(),i=qr(),s=Wt(),o=Object.prototype,a=o.hasOwnProperty;function u(c,f){var l=e(c),h=!l&&t(c),g=!l&&!h&&r(c),p=!l&&!h&&!g&&s(c),v=l||h||g||p,m=v?n(c.length,String):[],d=m.length;for(var y in c)(f||a.call(c,y))&&!(v&&(y=="length"||g&&(y=="offset"||y=="parent")||p&&(y=="buffer"||y=="byteLength"||y=="byteOffset")||i(y,d)))&&m.push(y);return m}return Yi=u,Yi}var Ki,eh;function Ar(){if(eh)return Ki;eh=1;var n=Object.prototype;function t(e){var r=e&&e.constructor,i=typeof r=="function"&&r.prototype||n;return e===i}return Ki=t,Ki}var Xi,th;function rh(){if(th)return Xi;th=1;function n(t,e){return function(r){return t(e(r))}}return Xi=n,Xi}var Zi,nh;function m_(){if(nh)return Zi;nh=1;var n=rh(),t=n(Object.keys,Object);return Zi=t,Zi}var Ji,ih;function Qi(){if(ih)return Ji;ih=1;var n=Ar(),t=m_(),e=Object.prototype,r=e.hasOwnProperty;function i(s){if(!n(s))return t(s);var o=[];for(var a in Object(s))r.call(s,a)&&a!="constructor"&&o.push(a);return o}return Ji=i,Ji}var Hi,sh;function Le(){if(sh)return Hi;sh=1;var n=Ft(),t=Bi();function e(r){return r!=null&&t(r.length)&&!n(r)}return Hi=e,Hi}var es,oh;function Ye(){if(oh)return es;oh=1;var n=Hl(),t=Qi(),e=Le();function r(i){return e(i)?n(i):t(i)}return es=r,es}var ts,ah;function y_(){if(ah)return ts;ah=1;var n=Bt(),t=Ye();function e(r,i){return r&&n(i,t(i),r)}return ts=e,ts}var rs,uh;function w_(){if(uh)return rs;uh=1;function n(t){var e=[];if(t!=null)for(var r in Object(t))e.push(r);return e}return rs=n,rs}var ns,ch;function b_(){if(ch)return ns;ch=1;var n=Me(),t=Ar(),e=w_(),r=Object.prototype,i=r.hasOwnProperty;function s(o){if(!n(o))return e(o);var a=t(o),u=[];for(var c in o)c=="constructor"&&(a||!i.call(o,c))||u.push(c);return u}return ns=s,ns}var is,fh;function at(){if(fh)return is;fh=1;var n=Hl(),t=b_(),e=Le();function r(i){return e(i)?n(i,!0):t(i)}return is=r,is}var ss,lh;function __(){if(lh)return ss;lh=1;var n=Bt(),t=at();function e(r,i){return r&&n(i,t(i),r)}return ss=e,ss}var Yt={exports:{}};Yt.exports;var hh;function dh(){return hh||(hh=1,function(n,t){var e=Re(),r=t&&!t.nodeType&&t,i=r&&!0&&n&&!n.nodeType&&n,s=i&&i.exports===r,o=s?e.Buffer:void 0,a=o?o.allocUnsafe:void 0;function u(c,f){if(f)return c.slice();var l=c.length,h=a?a(l):new c.constructor(l);return c.copy(h),h}n.exports=u}(Yt,Yt.exports)),Yt.exports}var os,gh;function ph(){if(gh)return os;gh=1;function n(t,e){var r=-1,i=t.length;for(e||(e=Array(i));++r<i;)e[r]=t[r];return e}return os=n,os}var as,vh;function mh(){if(vh)return as;vh=1;function n(t,e){for(var r=-1,i=t==null?0:t.length,s=0,o=[];++r<i;){var a=t[r];e(a,r,t)&&(o[s++]=a)}return o}return as=n,as}var us,yh;function wh(){if(yh)return us;yh=1;function n(){return[]}return us=n,us}var cs,bh;function fs(){if(bh)return cs;bh=1;var n=mh(),t=wh(),e=Object.prototype,r=e.propertyIsEnumerable,i=Object.getOwnPropertySymbols,s=i?function(o){return o==null?[]:(o=Object(o),n(i(o),function(a){return r.call(o,a)}))}:t;return cs=s,cs}var ls,_h;function E_(){if(_h)return ls;_h=1;var n=Bt(),t=fs();function e(r,i){return n(r,t(r),i)}return ls=e,ls}var hs,Eh;function ds(){if(Eh)return hs;Eh=1;function n(t,e){for(var r=-1,i=e.length,s=t.length;++r<i;)t[s+r]=e[r];return t}return hs=n,hs}var gs,xh;function Ir(){if(xh)return gs;xh=1;var n=rh(),t=n(Object.getPrototypeOf,Object);return gs=t,gs}var ps,Nh;function Mh(){if(Nh)return ps;Nh=1;var n=ds(),t=Ir(),e=fs(),r=wh(),i=Object.getOwnPropertySymbols,s=i?function(o){for(var a=[];o;)n(a,e(o)),o=t(o);return a}:r;return ps=s,ps}var vs,Sh;function x_(){if(Sh)return vs;Sh=1;var n=Bt(),t=Mh();function e(r,i){return n(r,t(r),i)}return vs=e,vs}var ms,Rh;function qh(){if(Rh)return ms;Rh=1;var n=ds(),t=oe();function e(r,i,s){var o=i(r);return t(r)?o:n(o,s(r))}return ms=e,ms}var ys,Oh;function Ah(){if(Oh)return ys;Oh=1;var n=qh(),t=fs(),e=Ye();function r(i){return n(i,e,t)}return ys=r,ys}var ws,Ih;function N_(){if(Ih)return ws;Ih=1;var n=qh(),t=Mh(),e=at();function r(i){return n(i,e,t)}return ws=r,ws}var bs,Th;function M_(){if(Th)return bs;Th=1;var n=ot(),t=Re(),e=n(t,"DataView");return bs=e,bs}var _s,kh;function S_(){if(kh)return _s;kh=1;var n=ot(),t=Re(),e=n(t,"Promise");return _s=e,_s}var Es,jh;function Ch(){if(jh)return Es;jh=1;var n=ot(),t=Re(),e=n(t,"Set");return Es=e,Es}var xs,Ph;function R_(){if(Ph)return xs;Ph=1;var n=ot(),t=Re(),e=n(t,"WeakMap");return xs=e,xs}var Ns,Lh;function Nt(){if(Lh)return Ns;Lh=1;var n=M_(),t=ci(),e=S_(),r=Ch(),i=R_(),s=st(),o=ll(),a="[object Map]",u="[object Object]",c="[object Promise]",f="[object Set]",l="[object WeakMap]",h="[object DataView]",g=o(n),p=o(t),v=o(e),m=o(r),d=o(i),y=s;return(n&&y(new n(new ArrayBuffer(1)))!=h||t&&y(new t)!=a||e&&y(e.resolve())!=c||r&&y(new r)!=f||i&&y(new i)!=l)&&(y=function(w){var b=s(w),x=b==u?w.constructor:void 0,M=x?o(x):"";if(M)switch(M){case g:return h;case p:return a;case v:return c;case m:return f;case d:return l}return b}),Ns=y,Ns}var Ms,Dh;function q_(){if(Dh)return Ms;Dh=1;var n=Object.prototype,t=n.hasOwnProperty;function e(r){var i=r.length,s=new r.constructor(i);return i&&typeof r[0]=="string"&&t.call(r,"index")&&(s.index=r.index,s.input=r.input),s}return Ms=e,Ms}var Ss,zh;function $h(){if(zh)return Ss;zh=1;var n=Re(),t=n.Uint8Array;return Ss=t,Ss}var Rs,Fh;function qs(){if(Fh)return Rs;Fh=1;var n=$h();function t(e){var r=new e.constructor(e.byteLength);return new n(r).set(new n(e)),r}return Rs=t,Rs}var Os,Bh;function O_(){if(Bh)return Os;Bh=1;var n=qs();function t(e,r){var i=r?n(e.buffer):e.buffer;return new e.constructor(i,e.byteOffset,e.byteLength)}return Os=t,Os}var As,Uh;function A_(){if(Uh)return As;Uh=1;var n=/\w*$/;function t(e){var r=new e.constructor(e.source,n.exec(e));return r.lastIndex=e.lastIndex,r}return As=t,As}var Is,Gh;function I_(){if(Gh)return Is;Gh=1;var n=Et(),t=n?n.prototype:void 0,e=t?t.valueOf:void 0;function r(i){return e?Object(e.call(i)):{}}return Is=r,Is}var Ts,Vh;function Wh(){if(Vh)return Ts;Vh=1;var n=qs();function t(e,r){var i=r?n(e.buffer):e.buffer;return new e.constructor(i,e.byteOffset,e.length)}return Ts=t,Ts}var ks,Yh;function T_(){if(Yh)return ks;Yh=1;var n=qs(),t=O_(),e=A_(),r=I_(),i=Wh(),s="[object Boolean]",o="[object Date]",a="[object Map]",u="[object Number]",c="[object RegExp]",f="[object Set]",l="[object String]",h="[object Symbol]",g="[object ArrayBuffer]",p="[object DataView]",v="[object Float32Array]",m="[object Float64Array]",d="[object Int8Array]",y="[object Int16Array]",w="[object Int32Array]",b="[object Uint8Array]",x="[object Uint8ClampedArray]",M="[object Uint16Array]",N="[object Uint32Array]";function E(O,_,S){var q=O.constructor;switch(_){case g:return n(O);case s:case o:return new q(+O);case p:return t(O,S);case v:case m:case d:case y:case w:case b:case x:case M:case N:return i(O,S);case a:return new q;case u:case l:return new q(O);case c:return e(O);case f:return new q;case h:return r(O)}}return ks=E,ks}var js,Kh;function Xh(){if(Kh)return js;Kh=1;var n=Me(),t=Object.create,e=function(){function r(){}return function(i){if(!n(i))return{};if(t)return t(i);r.prototype=i;var s=new r;return r.prototype=void 0,s}}();return js=e,js}var Cs,Zh;function Jh(){if(Zh)return Cs;Zh=1;var n=Xh(),t=Ir(),e=Ar();function r(i){return typeof i.constructor=="function"&&!e(i)?n(t(i)):{}}return Cs=r,Cs}var Ps,Qh;function k_(){if(Qh)return Ps;Qh=1;var n=Nt(),t=Ae(),e="[object Map]";function r(i){return t(i)&&n(i)==e}return Ps=r,Ps}var Ls,Hh;function j_(){if(Hh)return Ls;Hh=1;var n=k_(),t=Or(),e=Vi(),r=e&&e.isMap,i=r?t(r):n;return Ls=i,Ls}var Ds,ed;function C_(){if(ed)return Ds;ed=1;var n=Nt(),t=Ae(),e="[object Set]";function r(i){return t(i)&&n(i)==e}return Ds=r,Ds}var zs,td;function P_(){if(td)return zs;td=1;var n=C_(),t=Or(),e=Vi(),r=e&&e.isSet,i=r?t(r):n;return zs=i,zs}var $s,rd;function nd(){if(rd)return $s;rd=1;var n=Mr(),t=Oi(),e=Rr(),r=y_(),i=__(),s=dh(),o=ph(),a=E_(),u=x_(),c=Ah(),f=N_(),l=Nt(),h=q_(),g=T_(),p=Jh(),v=oe(),m=xt(),d=j_(),y=Me(),w=P_(),b=Ye(),x=at(),M=1,N=2,E=4,O="[object Arguments]",_="[object Array]",S="[object Boolean]",q="[object Date]",R="[object Error]",T="[object Function]",I="[object GeneratorFunction]",k="[object Map]",F="[object Number]",A="[object Object]",C="[object RegExp]",D="[object Set]",z="[object String]",U="[object Symbol]",P="[object WeakMap]",$="[object ArrayBuffer]",B="[object DataView]",Z="[object Float32Array]",G="[object Float64Array]",le="[object Int8Array]",_e="[object Int16Array]",tc="[object Int32Array]",rc="[object Uint8Array]",nc="[object Uint8ClampedArray]",ic="[object Uint16Array]",sc="[object Uint32Array]",H={};H[O]=H[_]=H[$]=H[B]=H[S]=H[q]=H[Z]=H[G]=H[le]=H[_e]=H[tc]=H[k]=H[F]=H[A]=H[C]=H[D]=H[z]=H[U]=H[rc]=H[nc]=H[ic]=H[sc]=!0,H[R]=H[T]=H[P]=!1;function Ot(Q,At,It,JS,Zr,Qe){var me,Jr=At&M,Qr=At&N,QS=At&E;if(It&&(me=Zr?It(Q,JS,Zr,Qe):It(Q)),me!==void 0)return me;if(!y(Q))return Q;var p0=v(Q);if(p0){if(me=h(Q),!Jr)return o(Q,me)}else{var Tt=l(Q),v0=Tt==T||Tt==I;if(m(Q))return s(Q,Jr);if(Tt==A||Tt==O||v0&&!Zr){if(me=Qr||v0?{}:p(Q),!Jr)return Qr?u(Q,i(me,Q)):a(Q,r(me,Q))}else{if(!H[Tt])return Zr?Q:{};me=g(Q,Tt,Jr)}}Qe||(Qe=new n);var m0=Qe.get(Q);if(m0)return m0;Qe.set(Q,me),w(Q)?Q.forEach(function(He){me.add(Ot(He,At,It,He,Q,Qe))}):d(Q)&&Q.forEach(function(He,lt){me.set(lt,Ot(He,At,It,lt,Q,Qe))});var HS=QS?Qr?f:c:Qr?x:b,y0=p0?void 0:HS(Q);return t(y0||Q,function(He,lt){y0&&(lt=He,He=Q[lt]),e(me,lt,Ot(He,At,It,lt,Q,Qe))}),me}return $s=Ot,$s}var Fs,id;function L_(){if(id)return Fs;id=1;var n=nd(),t=4;function e(r){return n(r,t)}return Fs=e,Fs}var Bs,sd;function Us(){if(sd)return Bs;sd=1;function n(t){return function(){return t}}return Bs=n,Bs}var Gs,od;function D_(){if(od)return Gs;od=1;function n(t){return function(e,r,i){for(var s=-1,o=Object(e),a=i(e),u=a.length;u--;){var c=a[t?u:++s];if(r(o[c],c,o)===!1)break}return e}}return Gs=n,Gs}var Vs,ad;function Ws(){if(ad)return Vs;ad=1;var n=D_(),t=n();return Vs=t,Vs}var Ys,ud;function Ks(){if(ud)return Ys;ud=1;var n=Ws(),t=Ye();function e(r,i){return r&&n(r,i,t)}return Ys=e,Ys}var Xs,cd;function z_(){if(cd)return Xs;cd=1;var n=Le();function t(e,r){return function(i,s){if(i==null)return i;if(!n(i))return e(i,s);for(var o=i.length,a=r?o:-1,u=Object(i);(r?a--:++a<o)&&s(u[a],a,u)!==!1;);return i}}return Xs=t,Xs}var Zs,fd;function Tr(){if(fd)return Zs;fd=1;var n=Ks(),t=z_(),e=t(n);return Zs=e,Zs}var Js,ld;function ut(){if(ld)return Js;ld=1;function n(t){return t}return Js=n,Js}var Qs,hd;function dd(){if(hd)return Qs;hd=1;var n=ut();function t(e){return typeof e=="function"?e:n}return Qs=t,Qs}var Hs,gd;function pd(){if(gd)return Hs;gd=1;var n=Oi(),t=Tr(),e=dd(),r=oe();function i(s,o){var a=r(s)?n:t;return a(s,e(o))}return Hs=i,Hs}var eo,vd;function md(){return vd||(vd=1,eo=pd()),eo}var to,yd;function $_(){if(yd)return to;yd=1;var n=Tr();function t(e,r){var i=[];return n(e,function(s,o,a){r(s,o,a)&&i.push(s)}),i}return to=t,to}var ro,wd;function F_(){if(wd)return ro;wd=1;var n="__lodash_hash_undefined__";function t(e){return this.__data__.set(e,n),this}return ro=t,ro}var no,bd;function B_(){if(bd)return no;bd=1;function n(t){return this.__data__.has(t)}return no=n,no}var io,_d;function Ed(){if(_d)return io;_d=1;var n=Mi(),t=F_(),e=B_();function r(i){var s=-1,o=i==null?0:i.length;for(this.__data__=new n;++s<o;)this.add(i[s])}return r.prototype.add=r.prototype.push=t,r.prototype.has=e,io=r,io}var so,xd;function U_(){if(xd)return so;xd=1;function n(t,e){for(var r=-1,i=t==null?0:t.length;++r<i;)if(e(t[r],r,t))return!0;return!1}return so=n,so}var oo,Nd;function Md(){if(Nd)return oo;Nd=1;function n(t,e){return t.has(e)}return oo=n,oo}var ao,Sd;function Rd(){if(Sd)return ao;Sd=1;var n=Ed(),t=U_(),e=Md(),r=1,i=2;function s(o,a,u,c,f,l){var h=u&r,g=o.length,p=a.length;if(g!=p&&!(h&&p>g))return!1;var v=l.get(o),m=l.get(a);if(v&&m)return v==a&&m==o;var d=-1,y=!0,w=u&i?new n:void 0;for(l.set(o,a),l.set(a,o);++d<g;){var b=o[d],x=a[d];if(c)var M=h?c(x,b,d,a,o,l):c(b,x,d,o,a,l);if(M!==void 0){if(M)continue;y=!1;break}if(w){if(!t(a,function(N,E){if(!e(w,E)&&(b===N||f(b,N,u,c,l)))return w.push(E)})){y=!1;break}}else if(!(b===x||f(b,x,u,c,l))){y=!1;break}}return l.delete(o),l.delete(a),y}return ao=s,ao}var uo,qd;function G_(){if(qd)return uo;qd=1;function n(t){var e=-1,r=Array(t.size);return t.forEach(function(i,s){r[++e]=[s,i]}),r}return uo=n,uo}var co,Od;function fo(){if(Od)return co;Od=1;function n(t){var e=-1,r=Array(t.size);return t.forEach(function(i){r[++e]=i}),r}return co=n,co}var lo,Ad;function V_(){if(Ad)return lo;Ad=1;var n=Et(),t=$h(),e=_t(),r=Rd(),i=G_(),s=fo(),o=1,a=2,u="[object Boolean]",c="[object Date]",f="[object Error]",l="[object Map]",h="[object Number]",g="[object RegExp]",p="[object Set]",v="[object String]",m="[object Symbol]",d="[object ArrayBuffer]",y="[object DataView]",w=n?n.prototype:void 0,b=w?w.valueOf:void 0;function x(M,N,E,O,_,S,q){switch(E){case y:if(M.byteLength!=N.byteLength||M.byteOffset!=N.byteOffset)return!1;M=M.buffer,N=N.buffer;case d:return!(M.byteLength!=N.byteLength||!S(new t(M),new t(N)));case u:case c:case h:return e(+M,+N);case f:return M.name==N.name&&M.message==N.message;case g:case v:return M==N+"";case l:var R=i;case p:var T=O&o;if(R||(R=s),M.size!=N.size&&!T)return!1;var I=q.get(M);if(I)return I==N;O|=a,q.set(M,N);var k=r(R(M),R(N),O,_,S,q);return q.delete(M),k;case m:if(b)return b.call(M)==b.call(N)}return!1}return lo=x,lo}var ho,Id;function W_(){if(Id)return ho;Id=1;var n=Ah(),t=1,e=Object.prototype,r=e.hasOwnProperty;function i(s,o,a,u,c,f){var l=a&t,h=n(s),g=h.length,p=n(o),v=p.length;if(g!=v&&!l)return!1;for(var m=g;m--;){var d=h[m];if(!(l?d in o:r.call(o,d)))return!1}var y=f.get(s),w=f.get(o);if(y&&w)return y==o&&w==s;var b=!0;f.set(s,o),f.set(o,s);for(var x=l;++m<g;){d=h[m];var M=s[d],N=o[d];if(u)var E=l?u(N,M,d,o,s,f):u(M,N,d,s,o,f);if(!(E===void 0?M===N||c(M,N,a,u,f):E)){b=!1;break}x||(x=d=="constructor")}if(b&&!x){var O=s.constructor,_=o.constructor;O!=_&&"constructor"in s&&"constructor"in o&&!(typeof O=="function"&&O instanceof O&&typeof _=="function"&&_ instanceof _)&&(b=!1)}return f.delete(s),f.delete(o),b}return ho=i,ho}var go,Td;function Y_(){if(Td)return go;Td=1;var n=Mr(),t=Rd(),e=V_(),r=W_(),i=Nt(),s=oe(),o=xt(),a=Wt(),u=1,c="[object Arguments]",f="[object Array]",l="[object Object]",h=Object.prototype,g=h.hasOwnProperty;function p(v,m,d,y,w,b){var x=s(v),M=s(m),N=x?f:i(v),E=M?f:i(m);N=N==c?l:N,E=E==c?l:E;var O=N==l,_=E==l,S=N==E;if(S&&o(v)){if(!o(m))return!1;x=!0,O=!1}if(S&&!O)return b||(b=new n),x||a(v)?t(v,m,d,y,w,b):e(v,m,N,d,y,w,b);if(!(d&u)){var q=O&&g.call(v,"__wrapped__"),R=_&&g.call(m,"__wrapped__");if(q||R){var T=q?v.value():v,I=R?m.value():m;return b||(b=new n),w(T,I,d,y,b)}}return S?(b||(b=new n),r(v,m,d,y,w,b)):!1}return go=p,go}var po,kd;function jd(){if(kd)return po;kd=1;var n=Y_(),t=Ae();function e(r,i,s,o,a){return r===i?!0:r==null||i==null||!t(r)&&!t(i)?r!==r&&i!==i:n(r,i,s,o,e,a)}return po=e,po}var vo,Cd;function K_(){if(Cd)return vo;Cd=1;var n=Mr(),t=jd(),e=1,r=2;function i(s,o,a,u){var c=a.length,f=c,l=!u;if(s==null)return!f;for(s=Object(s);c--;){var h=a[c];if(l&&h[2]?h[1]!==s[h[0]]:!(h[0]in s))return!1}for(;++c<f;){h=a[c];var g=h[0],p=s[g],v=h[1];if(l&&h[2]){if(p===void 0&&!(g in s))return!1}else{var m=new n;if(u)var d=u(p,v,g,s,o,m);if(!(d===void 0?t(v,p,e|r,u,m):d))return!1}}return!0}return vo=i,vo}var mo,Pd;function Ld(){if(Pd)return mo;Pd=1;var n=Me();function t(e){return e===e&&!n(e)}return mo=t,mo}var yo,Dd;function X_(){if(Dd)return yo;Dd=1;var n=Ld(),t=Ye();function e(r){for(var i=t(r),s=i.length;s--;){var o=i[s],a=r[o];i[s]=[o,a,n(a)]}return i}return yo=e,yo}var wo,zd;function $d(){if(zd)return wo;zd=1;function n(t,e){return function(r){return r==null?!1:r[t]===e&&(e!==void 0||t in Object(r))}}return wo=n,wo}var bo,Fd;function Z_(){if(Fd)return bo;Fd=1;var n=K_(),t=X_(),e=$d();function r(i){var s=t(i);return s.length==1&&s[0][2]?e(s[0][0],s[0][1]):function(o){return o===i||n(o,i,s)}}return bo=r,bo}var _o,Bd;function Mt(){if(Bd)return _o;Bd=1;var n=st(),t=Ae(),e="[object Symbol]";function r(i){return typeof i=="symbol"||t(i)&&n(i)==e}return _o=r,_o}var Eo,Ud;function xo(){if(Ud)return Eo;Ud=1;var n=oe(),t=Mt(),e=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,r=/^\w*$/;function i(s,o){if(n(s))return!1;var a=typeof s;return a=="number"||a=="symbol"||a=="boolean"||s==null||t(s)?!0:r.test(s)||!e.test(s)||o!=null&&s in Object(o)}return Eo=i,Eo}var No,Gd;function J_(){if(Gd)return No;Gd=1;var n=Mi(),t="Expected a function";function e(r,i){if(typeof r!="function"||i!=null&&typeof i!="function")throw new TypeError(t);var s=function(){var o=arguments,a=i?i.apply(this,o):o[0],u=s.cache;if(u.has(a))return u.get(a);var c=r.apply(this,o);return s.cache=u.set(a,c)||u,c};return s.cache=new(e.Cache||n),s}return e.Cache=n,No=e,No}var Mo,Vd;function Q_(){if(Vd)return Mo;Vd=1;var n=J_(),t=500;function e(r){var i=n(r,function(o){return s.size===t&&s.clear(),o}),s=i.cache;return i}return Mo=e,Mo}var So,Wd;function H_(){if(Wd)return So;Wd=1;var n=Q_(),t=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,e=/\\(\\)?/g,r=n(function(i){var s=[];return i.charCodeAt(0)===46&&s.push(""),i.replace(t,function(o,a,u,c){s.push(u?c.replace(e,"$1"):a||o)}),s});return So=r,So}var Ro,Yd;function kr(){if(Yd)return Ro;Yd=1;function n(t,e){for(var r=-1,i=t==null?0:t.length,s=Array(i);++r<i;)s[r]=e(t[r],r,t);return s}return Ro=n,Ro}var qo,Kd;function eE(){if(Kd)return qo;Kd=1;var n=Et(),t=kr(),e=oe(),r=Mt(),i=1/0,s=n?n.prototype:void 0,o=s?s.toString:void 0;function a(u){if(typeof u=="string")return u;if(e(u))return t(u,a)+"";if(r(u))return o?o.call(u):"";var c=u+"";return c=="0"&&1/u==-i?"-0":c}return qo=a,qo}var Oo,Xd;function Zd(){if(Xd)return Oo;Xd=1;var n=eE();function t(e){return e==null?"":n(e)}return Oo=t,Oo}var Ao,Jd;function jr(){if(Jd)return Ao;Jd=1;var n=oe(),t=xo(),e=H_(),r=Zd();function i(s,o){return n(s)?s:t(s,o)?[s]:e(r(s))}return Ao=i,Ao}var Io,Qd;function Kt(){if(Qd)return Io;Qd=1;var n=Mt(),t=1/0;function e(r){if(typeof r=="string"||n(r))return r;var i=r+"";return i=="0"&&1/r==-t?"-0":i}return Io=e,Io}var To,Hd;function Cr(){if(Hd)return To;Hd=1;var n=jr(),t=Kt();function e(r,i){i=n(i,r);for(var s=0,o=i.length;r!=null&&s<o;)r=r[t(i[s++])];return s&&s==o?r:void 0}return To=e,To}var ko,eg;function tE(){if(eg)return ko;eg=1;var n=Cr();function t(e,r,i){var s=e==null?void 0:n(e,r);return s===void 0?i:s}return ko=t,ko}var jo,tg;function rE(){if(tg)return jo;tg=1;function n(t,e){return t!=null&&e in Object(t)}return jo=n,jo}var Co,rg;function ng(){if(rg)return Co;rg=1;var n=jr(),t=Ut(),e=oe(),r=qr(),i=Bi(),s=Kt();function o(a,u,c){u=n(u,a);for(var f=-1,l=u.length,h=!1;++f<l;){var g=s(u[f]);if(!(h=a!=null&&c(a,g)))break;a=a[g]}return h||++f!=l?h:(l=a==null?0:a.length,!!l&&i(l)&&r(g,l)&&(e(a)||t(a)))}return Co=o,Co}var Po,ig;function sg(){if(ig)return Po;ig=1;var n=rE(),t=ng();function e(r,i){return r!=null&&t(r,i,n)}return Po=e,Po}var Lo,og;function nE(){if(og)return Lo;og=1;var n=jd(),t=tE(),e=sg(),r=xo(),i=Ld(),s=$d(),o=Kt(),a=1,u=2;function c(f,l){return r(f)&&i(l)?s(o(f),l):function(h){var g=t(h,f);return g===void 0&&g===l?e(h,f):n(l,g,a|u)}}return Lo=c,Lo}var Do,ag;function ug(){if(ag)return Do;ag=1;function n(t){return function(e){return e==null?void 0:e[t]}}return Do=n,Do}var zo,cg;function iE(){if(cg)return zo;cg=1;var n=Cr();function t(e){return function(r){return n(r,e)}}return zo=t,zo}var $o,fg;function sE(){if(fg)return $o;fg=1;var n=ug(),t=iE(),e=xo(),r=Kt();function i(s){return e(s)?n(r(s)):t(s)}return $o=i,$o}var Fo,lg;function De(){if(lg)return Fo;lg=1;var n=Z_(),t=nE(),e=ut(),r=oe(),i=sE();function s(o){return typeof o=="function"?o:o==null?e:typeof o=="object"?r(o)?t(o[0],o[1]):n(o):i(o)}return Fo=s,Fo}var Bo,hg;function dg(){if(hg)return Bo;hg=1;var n=mh(),t=$_(),e=De(),r=oe();function i(s,o){var a=r(s)?n:t;return a(s,e(o,3))}return Bo=i,Bo}var Uo,gg;function oE(){if(gg)return Uo;gg=1;var n=Object.prototype,t=n.hasOwnProperty;function e(r,i){return r!=null&&t.call(r,i)}return Uo=e,Uo}var Go,pg;function vg(){if(pg)return Go;pg=1;var n=oE(),t=ng();function e(r,i){return r!=null&&t(r,i,n)}return Go=e,Go}var Vo,mg;function aE(){if(mg)return Vo;mg=1;var n=Qi(),t=Nt(),e=Ut(),r=oe(),i=Le(),s=xt(),o=Ar(),a=Wt(),u="[object Map]",c="[object Set]",f=Object.prototype,l=f.hasOwnProperty;function h(g){if(g==null)return!0;if(i(g)&&(r(g)||typeof g=="string"||typeof g.splice=="function"||s(g)||a(g)||e(g)))return!g.length;var p=t(g);if(p==u||p==c)return!g.size;if(o(g))return!n(g).length;for(var v in g)if(l.call(g,v))return!1;return!0}return Vo=h,Vo}var Wo,yg;function wg(){if(yg)return Wo;yg=1;function n(t){return t===void 0}return Wo=n,Wo}var Yo,bg;function _g(){if(bg)return Yo;bg=1;var n=Tr(),t=Le();function e(r,i){var s=-1,o=t(r)?Array(r.length):[];return n(r,function(a,u,c){o[++s]=i(a,u,c)}),o}return Yo=e,Yo}var Ko,Eg;function xg(){if(Eg)return Ko;Eg=1;var n=kr(),t=De(),e=_g(),r=oe();function i(s,o){var a=r(s)?n:e;return a(s,t(o,3))}return Ko=i,Ko}var Xo,Ng;function uE(){if(Ng)return Xo;Ng=1;function n(t,e,r,i){var s=-1,o=t==null?0:t.length;for(i&&o&&(r=t[++s]);++s<o;)r=e(r,t[s],s,t);return r}return Xo=n,Xo}var Zo,Mg;function cE(){if(Mg)return Zo;Mg=1;function n(t,e,r,i,s){return s(t,function(o,a,u){r=i?(i=!1,o):e(r,o,a,u)}),r}return Zo=n,Zo}var Jo,Sg;function Rg(){if(Sg)return Jo;Sg=1;var n=uE(),t=Tr(),e=De(),r=cE(),i=oe();function s(o,a,u){var c=i(o)?n:r,f=arguments.length<3;return c(o,e(a,4),u,f,t)}return Jo=s,Jo}var Qo,qg;function fE(){if(qg)return Qo;qg=1;var n=st(),t=oe(),e=Ae(),r="[object String]";function i(s){return typeof s=="string"||!t(s)&&e(s)&&n(s)==r}return Qo=i,Qo}var Ho,Og;function lE(){if(Og)return Ho;Og=1;var n=ug(),t=n("length");return Ho=t,Ho}var ea,Ag;function hE(){if(Ag)return ea;Ag=1;var n="\\ud800-\\udfff",t="\\u0300-\\u036f",e="\\ufe20-\\ufe2f",r="\\u20d0-\\u20ff",i=t+e+r,s="\\ufe0e\\ufe0f",o="\\u200d",a=RegExp("["+o+n+i+s+"]");function u(c){return a.test(c)}return ea=u,ea}var ta,Ig;function dE(){if(Ig)return ta;Ig=1;var n="\\ud800-\\udfff",t="\\u0300-\\u036f",e="\\ufe20-\\ufe2f",r="\\u20d0-\\u20ff",i=t+e+r,s="\\ufe0e\\ufe0f",o="["+n+"]",a="["+i+"]",u="\\ud83c[\\udffb-\\udfff]",c="(?:"+a+"|"+u+")",f="[^"+n+"]",l="(?:\\ud83c[\\udde6-\\uddff]){2}",h="[\\ud800-\\udbff][\\udc00-\\udfff]",g="\\u200d",p=c+"?",v="["+s+"]?",m="(?:"+g+"(?:"+[f,l,h].join("|")+")"+v+p+")*",d=v+p+m,y="(?:"+[f+a+"?",a,l,h,o].join("|")+")",w=RegExp(u+"(?="+u+")|"+y+d,"g");function b(x){for(var M=w.lastIndex=0;w.test(x);)++M;return M}return ta=b,ta}var ra,Tg;function gE(){if(Tg)return ra;Tg=1;var n=lE(),t=hE(),e=dE();function r(i){return t(i)?e(i):n(i)}return ra=r,ra}var na,kg;function pE(){if(kg)return na;kg=1;var n=Qi(),t=Nt(),e=Le(),r=fE(),i=gE(),s="[object Map]",o="[object Set]";function a(u){if(u==null)return 0;if(e(u))return r(u)?i(u):u.length;var c=t(u);return c==s||c==o?u.size:n(u).length}return na=a,na}var ia,jg;function vE(){if(jg)return ia;jg=1;var n=Oi(),t=Xh(),e=Ks(),r=De(),i=Ir(),s=oe(),o=xt(),a=Ft(),u=Me(),c=Wt();function f(l,h,g){var p=s(l),v=p||o(l)||c(l);if(h=r(h,4),g==null){var m=l&&l.constructor;v?g=p?new m:[]:u(l)?g=a(m)?t(i(l)):{}:g={}}return(v?n:e)(l,function(d,y,w){return h(g,d,y,w)}),g}return ia=f,ia}var sa,Cg;function mE(){if(Cg)return sa;Cg=1;var n=Et(),t=Ut(),e=oe(),r=n?n.isConcatSpreadable:void 0;function i(s){return e(s)||t(s)||!!(r&&s&&s[r])}return sa=i,sa}var oa,Pg;function aa(){if(Pg)return oa;Pg=1;var n=ds(),t=mE();function e(r,i,s,o,a){var u=-1,c=r.length;for(s||(s=t),a||(a=[]);++u<c;){var f=r[u];i>0&&s(f)?i>1?e(f,i-1,s,o,a):n(a,f):o||(a[a.length]=f)}return a}return oa=e,oa}var ua,Lg;function yE(){if(Lg)return ua;Lg=1;function n(t,e,r){switch(r.length){case 0:return t.call(e);case 1:return t.call(e,r[0]);case 2:return t.call(e,r[0],r[1]);case 3:return t.call(e,r[0],r[1],r[2])}return t.apply(e,r)}return ua=n,ua}var ca,Dg;function zg(){if(Dg)return ca;Dg=1;var n=yE(),t=Math.max;function e(r,i,s){return i=t(i===void 0?r.length-1:i,0),function(){for(var o=arguments,a=-1,u=t(o.length-i,0),c=Array(u);++a<u;)c[a]=o[i+a];a=-1;for(var f=Array(i+1);++a<i;)f[a]=o[a];return f[i]=s(c),n(r,this,f)}}return ca=e,ca}var fa,$g;function wE(){if($g)return fa;$g=1;var n=Us(),t=Cl(),e=ut(),r=t?function(i,s){return t(i,"toString",{configurable:!0,enumerable:!1,value:n(s),writable:!0})}:e;return fa=r,fa}var la,Fg;function bE(){if(Fg)return la;Fg=1;var n=800,t=16,e=Date.now;function r(i){var s=0,o=0;return function(){var a=e(),u=t-(a-o);if(o=a,u>0){if(++s>=n)return arguments[0]}else s=0;return i.apply(void 0,arguments)}}return la=r,la}var ha,Bg;function Ug(){if(Bg)return ha;Bg=1;var n=wE(),t=bE(),e=t(n);return ha=e,ha}var da,Gg;function Pr(){if(Gg)return da;Gg=1;var n=ut(),t=zg(),e=Ug();function r(i,s){return e(t(i,s,n),i+"")}return da=r,da}var ga,Vg;function Wg(){if(Vg)return ga;Vg=1;function n(t,e,r,i){for(var s=t.length,o=r+(i?1:-1);i?o--:++o<s;)if(e(t[o],o,t))return o;return-1}return ga=n,ga}var pa,Yg;function _E(){if(Yg)return pa;Yg=1;function n(t){return t!==t}return pa=n,pa}var va,Kg;function EE(){if(Kg)return va;Kg=1;function n(t,e,r){for(var i=r-1,s=t.length;++i<s;)if(t[i]===e)return i;return-1}return va=n,va}var ma,Xg;function xE(){if(Xg)return ma;Xg=1;var n=Wg(),t=_E(),e=EE();function r(i,s,o){return s===s?e(i,s,o):n(i,t,o)}return ma=r,ma}var ya,Zg;function NE(){if(Zg)return ya;Zg=1;var n=xE();function t(e,r){var i=e==null?0:e.length;return!!i&&n(e,r,0)>-1}return ya=t,ya}var wa,Jg;function ME(){if(Jg)return wa;Jg=1;function n(t,e,r){for(var i=-1,s=t==null?0:t.length;++i<s;)if(r(e,t[i]))return!0;return!1}return wa=n,wa}var ba,Qg;function SE(){if(Qg)return ba;Qg=1;function n(){}return ba=n,ba}var _a,Hg;function RE(){if(Hg)return _a;Hg=1;var n=Ch(),t=SE(),e=fo(),r=1/0,i=n&&1/e(new n([,-0]))[1]==r?function(s){return new n(s)}:t;return _a=i,_a}var Ea,ep;function qE(){if(ep)return Ea;ep=1;var n=Ed(),t=NE(),e=ME(),r=Md(),i=RE(),s=fo(),o=200;function a(u,c,f){var l=-1,h=t,g=u.length,p=!0,v=[],m=v;if(f)p=!1,h=e;else if(g>=o){var d=c?null:i(u);if(d)return s(d);p=!1,h=r,m=new n}else m=c?[]:v;e:for(;++l<g;){var y=u[l],w=c?c(y):y;if(y=f||y!==0?y:0,p&&w===w){for(var b=m.length;b--;)if(m[b]===w)continue e;c&&m.push(w),v.push(y)}else h(m,w,f)||(m!==v&&m.push(w),v.push(y))}return v}return Ea=a,Ea}var xa,tp;function rp(){if(tp)return xa;tp=1;var n=Le(),t=Ae();function e(r){return t(r)&&n(r)}return xa=e,xa}var Na,np;function OE(){if(np)return Na;np=1;var n=aa(),t=Pr(),e=qE(),r=rp(),i=t(function(s){return e(n(s,1,r,!0))});return Na=i,Na}var Ma,ip;function AE(){if(ip)return Ma;ip=1;var n=kr();function t(e,r){return n(r,function(i){return e[i]})}return Ma=t,Ma}var Sa,sp;function op(){if(sp)return Sa;sp=1;var n=AE(),t=Ye();function e(r){return r==null?[]:n(r,t(r))}return Sa=e,Sa}var Ra,ap;function Se(){if(ap)return Ra;ap=1;var n;if(typeof Cn=="function")try{n={clone:L_(),constant:Us(),each:md(),filter:dg(),has:vg(),isArray:oe(),isEmpty:aE(),isFunction:Ft(),isUndefined:wg(),keys:Ye(),map:xg(),reduce:Rg(),size:pE(),transform:vE(),union:OE(),values:op()}}catch{}return n||(n=window._),Ra=n,Ra}var qa,up;function Oa(){if(up)return qa;up=1;var n=Se();qa=i;var t="\0",e="\0",r="";function i(f){this._isDirected=n.has(f,"directed")?f.directed:!0,this._isMultigraph=n.has(f,"multigraph")?f.multigraph:!1,this._isCompound=n.has(f,"compound")?f.compound:!1,this._label=void 0,this._defaultNodeLabelFn=n.constant(void 0),this._defaultEdgeLabelFn=n.constant(void 0),this._nodes={},this._isCompound&&(this._parent={},this._children={},this._children[e]={}),this._in={},this._preds={},this._out={},this._sucs={},this._edgeObjs={},this._edgeLabels={}}i.prototype._nodeCount=0,i.prototype._edgeCount=0,i.prototype.isDirected=function(){return this._isDirected},i.prototype.isMultigraph=function(){return this._isMultigraph},i.prototype.isCompound=function(){return this._isCompound},i.prototype.setGraph=function(f){return this._label=f,this},i.prototype.graph=function(){return this._label},i.prototype.setDefaultNodeLabel=function(f){return n.isFunction(f)||(f=n.constant(f)),this._defaultNodeLabelFn=f,this},i.prototype.nodeCount=function(){return this._nodeCount},i.prototype.nodes=function(){return n.keys(this._nodes)},i.prototype.sources=function(){var f=this;return n.filter(this.nodes(),function(l){return n.isEmpty(f._in[l])})},i.prototype.sinks=function(){var f=this;return n.filter(this.nodes(),function(l){return n.isEmpty(f._out[l])})},i.prototype.setNodes=function(f,l){var h=arguments,g=this;return n.each(f,function(p){h.length>1?g.setNode(p,l):g.setNode(p)}),this},i.prototype.setNode=function(f,l){return n.has(this._nodes,f)?(arguments.length>1&&(this._nodes[f]=l),this):(this._nodes[f]=arguments.length>1?l:this._defaultNodeLabelFn(f),this._isCompound&&(this._parent[f]=e,this._children[f]={},this._children[e][f]=!0),this._in[f]={},this._preds[f]={},this._out[f]={},this._sucs[f]={},++this._nodeCount,this)},i.prototype.node=function(f){return this._nodes[f]},i.prototype.hasNode=function(f){return n.has(this._nodes,f)},i.prototype.removeNode=function(f){var l=this;if(n.has(this._nodes,f)){var h=function(g){l.removeEdge(l._edgeObjs[g])};delete this._nodes[f],this._isCompound&&(this._removeFromParentsChildList(f),delete this._parent[f],n.each(this.children(f),function(g){l.setParent(g)}),delete this._children[f]),n.each(n.keys(this._in[f]),h),delete this._in[f],delete this._preds[f],n.each(n.keys(this._out[f]),h),delete this._out[f],delete this._sucs[f],--this._nodeCount}return this},i.prototype.setParent=function(f,l){if(!this._isCompound)throw new Error("Cannot set parent in a non-compound graph");if(n.isUndefined(l))l=e;else{l+="";for(var h=l;!n.isUndefined(h);h=this.parent(h))if(h===f)throw new Error("Setting "+l+" as parent of "+f+" would create a cycle");this.setNode(l)}return this.setNode(f),this._removeFromParentsChildList(f),this._parent[f]=l,this._children[l][f]=!0,this},i.prototype._removeFromParentsChildList=function(f){delete this._children[this._parent[f]][f]},i.prototype.parent=function(f){if(this._isCompound){var l=this._parent[f];if(l!==e)return l}},i.prototype.children=function(f){if(n.isUndefined(f)&&(f=e),this._isCompound){var l=this._children[f];if(l)return n.keys(l)}else{if(f===e)return this.nodes();if(this.hasNode(f))return[]}},i.prototype.predecessors=function(f){var l=this._preds[f];if(l)return n.keys(l)},i.prototype.successors=function(f){var l=this._sucs[f];if(l)return n.keys(l)},i.prototype.neighbors=function(f){var l=this.predecessors(f);if(l)return n.union(l,this.successors(f))},i.prototype.isLeaf=function(f){var l;return this.isDirected()?l=this.successors(f):l=this.neighbors(f),l.length===0},i.prototype.filterNodes=function(f){var l=new this.constructor({directed:this._isDirected,multigraph:this._isMultigraph,compound:this._isCompound});l.setGraph(this.graph());var h=this;n.each(this._nodes,function(v,m){f(m)&&l.setNode(m,v)}),n.each(this._edgeObjs,function(v){l.hasNode(v.v)&&l.hasNode(v.w)&&l.setEdge(v,h.edge(v))});var g={};function p(v){var m=h.parent(v);return m===void 0||l.hasNode(m)?(g[v]=m,m):m in g?g[m]:p(m)}return this._isCompound&&n.each(l.nodes(),function(v){l.setParent(v,p(v))}),l},i.prototype.setDefaultEdgeLabel=function(f){return n.isFunction(f)||(f=n.constant(f)),this._defaultEdgeLabelFn=f,this},i.prototype.edgeCount=function(){return this._edgeCount},i.prototype.edges=function(){return n.values(this._edgeObjs)},i.prototype.setPath=function(f,l){var h=this,g=arguments;return n.reduce(f,function(p,v){return g.length>1?h.setEdge(p,v,l):h.setEdge(p,v),v}),this},i.prototype.setEdge=function(){var f,l,h,g,p=!1,v=arguments[0];typeof v=="object"&&v!==null&&"v"in v?(f=v.v,l=v.w,h=v.name,arguments.length===2&&(g=arguments[1],p=!0)):(f=v,l=arguments[1],h=arguments[3],arguments.length>2&&(g=arguments[2],p=!0)),f=""+f,l=""+l,n.isUndefined(h)||(h=""+h);var m=a(this._isDirected,f,l,h);if(n.has(this._edgeLabels,m))return p&&(this._edgeLabels[m]=g),this;if(!n.isUndefined(h)&&!this._isMultigraph)throw new Error("Cannot set a named edge when isMultigraph = false");this.setNode(f),this.setNode(l),this._edgeLabels[m]=p?g:this._defaultEdgeLabelFn(f,l,h);var d=u(this._isDirected,f,l,h);return f=d.v,l=d.w,Object.freeze(d),this._edgeObjs[m]=d,s(this._preds[l],f),s(this._sucs[f],l),this._in[l][m]=d,this._out[f][m]=d,this._edgeCount++,this},i.prototype.edge=function(f,l,h){var g=arguments.length===1?c(this._isDirected,arguments[0]):a(this._isDirected,f,l,h);return this._edgeLabels[g]},i.prototype.hasEdge=function(f,l,h){var g=arguments.length===1?c(this._isDirected,arguments[0]):a(this._isDirected,f,l,h);return n.has(this._edgeLabels,g)},i.prototype.removeEdge=function(f,l,h){var g=arguments.length===1?c(this._isDirected,arguments[0]):a(this._isDirected,f,l,h),p=this._edgeObjs[g];return p&&(f=p.v,l=p.w,delete this._edgeLabels[g],delete this._edgeObjs[g],o(this._preds[l],f),o(this._sucs[f],l),delete this._in[l][g],delete this._out[f][g],this._edgeCount--),this},i.prototype.inEdges=function(f,l){var h=this._in[f];if(h){var g=n.values(h);return l?n.filter(g,function(p){return p.v===l}):g}},i.prototype.outEdges=function(f,l){var h=this._out[f];if(h){var g=n.values(h);return l?n.filter(g,function(p){return p.w===l}):g}},i.prototype.nodeEdges=function(f,l){var h=this.inEdges(f,l);if(h)return h.concat(this.outEdges(f,l))};function s(f,l){f[l]?f[l]++:f[l]=1}function o(f,l){--f[l]||delete f[l]}function a(f,l,h,g){var p=""+l,v=""+h;if(!f&&p>v){var m=p;p=v,v=m}return p+r+v+r+(n.isUndefined(g)?t:g)}function u(f,l,h,g){var p=""+l,v=""+h;if(!f&&p>v){var m=p;p=v,v=m}var d={v:p,w:v};return g&&(d.name=g),d}function c(f,l){return a(f,l.v,l.w,l.name)}return qa}var Aa,cp;function IE(){return cp||(cp=1,Aa="2.1.8"),Aa}var Ia,fp;function TE(){return fp||(fp=1,Ia={Graph:Oa(),version:IE()}),Ia}var Ta,lp;function kE(){if(lp)return Ta;lp=1;var n=Se(),t=Oa();Ta={write:e,read:s};function e(o){var a={options:{directed:o.isDirected(),multigraph:o.isMultigraph(),compound:o.isCompound()},nodes:r(o),edges:i(o)};return n.isUndefined(o.graph())||(a.value=n.clone(o.graph())),a}function r(o){return n.map(o.nodes(),function(a){var u=o.node(a),c=o.parent(a),f={v:a};return n.isUndefined(u)||(f.value=u),n.isUndefined(c)||(f.parent=c),f})}function i(o){return n.map(o.edges(),function(a){var u=o.edge(a),c={v:a.v,w:a.w};return n.isUndefined(a.name)||(c.name=a.name),n.isUndefined(u)||(c.value=u),c})}function s(o){var a=new t(o.options).setGraph(o.value);return n.each(o.nodes,function(u){a.setNode(u.v,u.value),u.parent&&a.setParent(u.v,u.parent)}),n.each(o.edges,function(u){a.setEdge({v:u.v,w:u.w,name:u.name},u.value)}),a}return Ta}var ka,hp;function jE(){if(hp)return ka;hp=1;var n=Se();ka=t;function t(e){var r={},i=[],s;function o(a){n.has(r,a)||(r[a]=!0,s.push(a),n.each(e.successors(a),o),n.each(e.predecessors(a),o))}return n.each(e.nodes(),function(a){s=[],o(a),s.length&&i.push(s)}),i}return ka}var ja,dp;function gp(){if(dp)return ja;dp=1;var n=Se();ja=t;function t(){this._arr=[],this._keyIndices={}}return t.prototype.size=function(){return this._arr.length},t.prototype.keys=function(){return this._arr.map(function(e){return e.key})},t.prototype.has=function(e){return n.has(this._keyIndices,e)},t.prototype.priority=function(e){var r=this._keyIndices[e];if(r!==void 0)return this._arr[r].priority},t.prototype.min=function(){if(this.size()===0)throw new Error("Queue underflow");return this._arr[0].key},t.prototype.add=function(e,r){var i=this._keyIndices;if(e=String(e),!n.has(i,e)){var s=this._arr,o=s.length;return i[e]=o,s.push({key:e,priority:r}),this._decrease(o),!0}return!1},t.prototype.removeMin=function(){this._swap(0,this._arr.length-1);var e=this._arr.pop();return delete this._keyIndices[e.key],this._heapify(0),e.key},t.prototype.decrease=function(e,r){var i=this._keyIndices[e];if(r>this._arr[i].priority)throw new Error("New priority is greater than current priority. Key: "+e+" Old: "+this._arr[i].priority+" New: "+r);this._arr[i].priority=r,this._decrease(i)},t.prototype._heapify=function(e){var r=this._arr,i=2*e,s=i+1,o=e;i<r.length&&(o=r[i].priority<r[o].priority?i:o,s<r.length&&(o=r[s].priority<r[o].priority?s:o),o!==e&&(this._swap(e,o),this._heapify(o)))},t.prototype._decrease=function(e){for(var r=this._arr,i=r[e].priority,s;e!==0&&(s=e>>1,!(r[s].priority<i));)this._swap(e,s),e=s},t.prototype._swap=function(e,r){var i=this._arr,s=this._keyIndices,o=i[e],a=i[r];i[e]=a,i[r]=o,s[a.key]=e,s[o.key]=r},ja}var Ca,pp;function vp(){if(pp)return Ca;pp=1;var n=Se(),t=gp();Ca=r;var e=n.constant(1);function r(s,o,a,u){return i(s,String(o),a||e,u||function(c){return s.outEdges(c)})}function i(s,o,a,u){var c={},f=new t,l,h,g=function(p){var v=p.v!==l?p.v:p.w,m=c[v],d=a(p),y=h.distance+d;if(d<0)throw new Error("dijkstra does not allow negative edge weights. Bad edge: "+p+" Weight: "+d);y<m.distance&&(m.distance=y,m.predecessor=l,f.decrease(v,y))};for(s.nodes().forEach(function(p){var v=p===o?0:Number.POSITIVE_INFINITY;c[p]={distance:v},f.add(p,v)});f.size()>0&&(l=f.removeMin(),h=c[l],h.distance!==Number.POSITIVE_INFINITY);)u(l).forEach(g);return c}return Ca}var Pa,mp;function CE(){if(mp)return Pa;mp=1;var n=vp(),t=Se();Pa=e;function e(r,i,s){return t.transform(r.nodes(),function(o,a){o[a]=n(r,a,i,s)},{})}return Pa}var La,yp;function wp(){if(yp)return La;yp=1;var n=Se();La=t;function t(e){var r=0,i=[],s={},o=[];function a(u){var c=s[u]={onStack:!0,lowlink:r,index:r++};if(i.push(u),e.successors(u).forEach(function(h){n.has(s,h)?s[h].onStack&&(c.lowlink=Math.min(c.lowlink,s[h].index)):(a(h),c.lowlink=Math.min(c.lowlink,s[h].lowlink))}),c.lowlink===c.index){var f=[],l;do l=i.pop(),s[l].onStack=!1,f.push(l);while(u!==l);o.push(f)}}return e.nodes().forEach(function(u){n.has(s,u)||a(u)}),o}return La}var Da,bp;function PE(){if(bp)return Da;bp=1;var n=Se(),t=wp();Da=e;function e(r){return n.filter(t(r),function(i){return i.length>1||i.length===1&&r.hasEdge(i[0],i[0])})}return Da}var za,_p;function LE(){if(_p)return za;_p=1;var n=Se();za=e;var t=n.constant(1);function e(i,s,o){return r(i,s||t,o||function(a){return i.outEdges(a)})}function r(i,s,o){var a={},u=i.nodes();return u.forEach(function(c){a[c]={},a[c][c]={distance:0},u.forEach(function(f){c!==f&&(a[c][f]={distance:Number.POSITIVE_INFINITY})}),o(c).forEach(function(f){var l=f.v===c?f.w:f.v,h=s(f);a[c][l]={distance:h,predecessor:c}})}),u.forEach(function(c){var f=a[c];u.forEach(function(l){var h=a[l];u.forEach(function(g){var p=h[c],v=f[g],m=h[g],d=p.distance+v.distance;d<m.distance&&(m.distance=d,m.predecessor=v.predecessor)})})}),a}return za}var $a,Ep;function xp(){if(Ep)return $a;Ep=1;var n=Se();$a=t,t.CycleException=e;function t(r){var i={},s={},o=[];function a(u){if(n.has(s,u))throw new e;n.has(i,u)||(s[u]=!0,i[u]=!0,n.each(r.predecessors(u),a),delete s[u],o.push(u))}if(n.each(r.sinks(),a),n.size(i)!==r.nodeCount())throw new e;return o}function e(){}return e.prototype=new Error,$a}var Fa,Np;function DE(){if(Np)return Fa;Np=1;var n=xp();Fa=t;function t(e){try{n(e)}catch(r){if(r instanceof n.CycleException)return!1;throw r}return!0}return Fa}var Ba,Mp;function Sp(){if(Mp)return Ba;Mp=1;var n=Se();Ba=t;function t(r,i,s){n.isArray(i)||(i=[i]);var o=(r.isDirected()?r.successors:r.neighbors).bind(r),a=[],u={};return n.each(i,function(c){if(!r.hasNode(c))throw new Error("Graph does not have node: "+c);e(r,c,s==="post",u,o,a)}),a}function e(r,i,s,o,a,u){n.has(o,i)||(o[i]=!0,s||u.push(i),n.each(a(i),function(c){e(r,c,s,o,a,u)}),s&&u.push(i))}return Ba}var Ua,Rp;function zE(){if(Rp)return Ua;Rp=1;var n=Sp();Ua=t;function t(e,r){return n(e,r,"post")}return Ua}var Ga,qp;function $E(){if(qp)return Ga;qp=1;var n=Sp();Ga=t;function t(e,r){return n(e,r,"pre")}return Ga}var Va,Op;function FE(){if(Op)return Va;Op=1;var n=Se(),t=Oa(),e=gp();Va=r;function r(i,s){var o=new t,a={},u=new e,c;function f(h){var g=h.v===c?h.w:h.v,p=u.priority(g);if(p!==void 0){var v=s(h);v<p&&(a[g]=c,u.decrease(g,v))}}if(i.nodeCount()===0)return o;n.each(i.nodes(),function(h){u.add(h,Number.POSITIVE_INFINITY),o.setNode(h)}),u.decrease(i.nodes()[0],0);for(var l=!1;u.size()>0;){if(c=u.removeMin(),n.has(a,c))o.setEdge(c,a[c]);else{if(l)throw new Error("Input graph is not connected: "+i);l=!0}i.nodeEdges(c).forEach(f)}return o}return Va}var Wa,Ap;function BE(){return Ap||(Ap=1,Wa={components:jE(),dijkstra:vp(),dijkstraAll:CE(),findCycles:PE(),floydWarshall:LE(),isAcyclic:DE(),postorder:zE(),preorder:$E(),prim:FE(),tarjan:wp(),topsort:xp()}),Wa}var Ya,Ip;function UE(){if(Ip)return Ya;Ip=1;var n=TE();return Ya={Graph:n.Graph,json:kE(),alg:BE(),version:n.version},Ya}var Lr;if(typeof Cn=="function")try{Lr=UE()}catch{}Lr||(Lr=window.graphlib);var qe=Lr,Ka,Tp;function GE(){if(Tp)return Ka;Tp=1;var n=nd(),t=1,e=4;function r(i){return n(i,t|e)}return Ka=r,Ka}var Xa,kp;function Dr(){if(kp)return Xa;kp=1;var n=_t(),t=Le(),e=qr(),r=Me();function i(s,o,a){if(!r(a))return!1;var u=typeof o;return(u=="number"?t(a)&&e(o,a.length):u=="string"&&o in a)?n(a[o],s):!1}return Xa=i,Xa}var Za,jp;function VE(){if(jp)return Za;jp=1;var n=Pr(),t=_t(),e=Dr(),r=at(),i=Object.prototype,s=i.hasOwnProperty,o=n(function(a,u){a=Object(a);var c=-1,f=u.length,l=f>2?u[2]:void 0;for(l&&e(u[0],u[1],l)&&(f=1);++c<f;)for(var h=u[c],g=r(h),p=-1,v=g.length;++p<v;){var m=g[p],d=a[m];(d===void 0||t(d,i[m])&&!s.call(a,m))&&(a[m]=h[m])}return a});return Za=o,Za}var Ja,Cp;function WE(){if(Cp)return Ja;Cp=1;var n=De(),t=Le(),e=Ye();function r(i){return function(s,o,a){var u=Object(s);if(!t(s)){var c=n(o,3);s=e(s),o=function(l){return c(u[l],l,u)}}var f=i(s,o,a);return f>-1?u[c?s[f]:f]:void 0}}return Ja=r,Ja}var Qa,Pp;function YE(){if(Pp)return Qa;Pp=1;var n=/\s/;function t(e){for(var r=e.length;r--&&n.test(e.charAt(r)););return r}return Qa=t,Qa}var Ha,Lp;function KE(){if(Lp)return Ha;Lp=1;var n=YE(),t=/^\s+/;function e(r){return r&&r.slice(0,n(r)+1).replace(t,"")}return Ha=e,Ha}var eu,Dp;function XE(){if(Dp)return eu;Dp=1;var n=KE(),t=Me(),e=Mt(),r=NaN,i=/^[-+]0x[0-9a-f]+$/i,s=/^0b[01]+$/i,o=/^0o[0-7]+$/i,a=parseInt;function u(c){if(typeof c=="number")return c;if(e(c))return r;if(t(c)){var f=typeof c.valueOf=="function"?c.valueOf():c;c=t(f)?f+"":f}if(typeof c!="string")return c===0?c:+c;c=n(c);var l=s.test(c);return l||o.test(c)?a(c.slice(2),l?2:8):i.test(c)?r:+c}return eu=u,eu}var tu,zp;function $p(){if(zp)return tu;zp=1;var n=XE(),t=1/0,e=17976931348623157e292;function r(i){if(!i)return i===0?i:0;if(i=n(i),i===t||i===-t){var s=i<0?-1:1;return s*e}return i===i?i:0}return tu=r,tu}var ru,Fp;function ZE(){if(Fp)return ru;Fp=1;var n=$p();function t(e){var r=n(e),i=r%1;return r===r?i?r-i:r:0}return ru=t,ru}var nu,Bp;function JE(){if(Bp)return nu;Bp=1;var n=Wg(),t=De(),e=ZE(),r=Math.max;function i(s,o,a){var u=s==null?0:s.length;if(!u)return-1;var c=a==null?0:e(a);return c<0&&(c=r(u+c,0)),n(s,t(o,3),c)}return nu=i,nu}var iu,Up;function QE(){if(Up)return iu;Up=1;var n=WE(),t=JE(),e=n(t);return iu=e,iu}var su,Gp;function Vp(){if(Gp)return su;Gp=1;var n=aa();function t(e){var r=e==null?0:e.length;return r?n(e,1):[]}return su=t,su}var ou,Wp;function HE(){if(Wp)return ou;Wp=1;var n=Ws(),t=dd(),e=at();function r(i,s){return i==null?i:n(i,t(s),e)}return ou=r,ou}var au,Yp;function ex(){if(Yp)return au;Yp=1;function n(t){var e=t==null?0:t.length;return e?t[e-1]:void 0}return au=n,au}var uu,Kp;function tx(){if(Kp)return uu;Kp=1;var n=Sr(),t=Ks(),e=De();function r(i,s){var o={};return s=e(s,3),t(i,function(a,u,c){n(o,u,s(a,u,c))}),o}return uu=r,uu}var cu,Xp;function fu(){if(Xp)return cu;Xp=1;var n=Mt();function t(e,r,i){for(var s=-1,o=e.length;++s<o;){var a=e[s],u=r(a);if(u!=null&&(c===void 0?u===u&&!n(u):i(u,c)))var c=u,f=a}return f}return cu=t,cu}var lu,Zp;function rx(){if(Zp)return lu;Zp=1;function n(t,e){return t>e}return lu=n,lu}var hu,Jp;function nx(){if(Jp)return hu;Jp=1;var n=fu(),t=rx(),e=ut();function r(i){return i&&i.length?n(i,e,t):void 0}return hu=r,hu}var du,Qp;function Hp(){if(Qp)return du;Qp=1;var n=Sr(),t=_t();function e(r,i,s){(s!==void 0&&!t(r[i],s)||s===void 0&&!(i in r))&&n(r,i,s)}return du=e,du}var gu,ev;function ix(){if(ev)return gu;ev=1;var n=st(),t=Ir(),e=Ae(),r="[object Object]",i=Function.prototype,s=Object.prototype,o=i.toString,a=s.hasOwnProperty,u=o.call(Object);function c(f){if(!e(f)||n(f)!=r)return!1;var l=t(f);if(l===null)return!0;var h=a.call(l,"constructor")&&l.constructor;return typeof h=="function"&&h instanceof h&&o.call(h)==u}return gu=c,gu}var pu,tv;function rv(){if(tv)return pu;tv=1;function n(t,e){if(!(e==="constructor"&&typeof t[e]=="function")&&e!="__proto__")return t[e]}return pu=n,pu}var vu,nv;function sx(){if(nv)return vu;nv=1;var n=Bt(),t=at();function e(r){return n(r,t(r))}return vu=e,vu}var mu,iv;function ox(){if(iv)return mu;iv=1;var n=Hp(),t=dh(),e=Wh(),r=ph(),i=Jh(),s=Ut(),o=oe(),a=rp(),u=xt(),c=Ft(),f=Me(),l=ix(),h=Wt(),g=rv(),p=sx();function v(m,d,y,w,b,x,M){var N=g(m,y),E=g(d,y),O=M.get(E);if(O){n(m,y,O);return}var _=x?x(N,E,y+"",m,d,M):void 0,S=_===void 0;if(S){var q=o(E),R=!q&&u(E),T=!q&&!R&&h(E);_=E,q||R||T?o(N)?_=N:a(N)?_=r(N):R?(S=!1,_=t(E,!0)):T?(S=!1,_=e(E,!0)):_=[]:l(E)||s(E)?(_=N,s(N)?_=p(N):(!f(N)||c(N))&&(_=i(E))):S=!1}S&&(M.set(E,_),b(_,E,w,x,M),M.delete(E)),n(m,y,_)}return mu=v,mu}var yu,sv;function ax(){if(sv)return yu;sv=1;var n=Mr(),t=Hp(),e=Ws(),r=ox(),i=Me(),s=at(),o=rv();function a(u,c,f,l,h){u!==c&&e(c,function(g,p){if(h||(h=new n),i(g))r(u,c,p,f,a,l,h);else{var v=l?l(o(u,p),g,p+"",u,c,h):void 0;v===void 0&&(v=g),t(u,p,v)}},s)}return yu=a,yu}var wu,ov;function ux(){if(ov)return wu;ov=1;var n=Pr(),t=Dr();function e(r){return n(function(i,s){var o=-1,a=s.length,u=a>1?s[a-1]:void 0,c=a>2?s[2]:void 0;for(u=r.length>3&&typeof u=="function"?(a--,u):void 0,c&&t(s[0],s[1],c)&&(u=a<3?void 0:u,a=1),i=Object(i);++o<a;){var f=s[o];f&&r(i,f,o,u)}return i})}return wu=e,wu}var bu,av;function cx(){if(av)return bu;av=1;var n=ax(),t=ux(),e=t(function(r,i,s){n(r,i,s)});return bu=e,bu}var _u,uv;function cv(){if(uv)return _u;uv=1;function n(t,e){return t<e}return _u=n,_u}var Eu,fv;function fx(){if(fv)return Eu;fv=1;var n=fu(),t=cv(),e=ut();function r(i){return i&&i.length?n(i,e,t):void 0}return Eu=r,Eu}var xu,lv;function lx(){if(lv)return xu;lv=1;var n=fu(),t=De(),e=cv();function r(i,s){return i&&i.length?n(i,t(s,2),e):void 0}return xu=r,xu}var Nu,hv;function hx(){if(hv)return Nu;hv=1;var n=Re(),t=function(){return n.Date.now()};return Nu=t,Nu}var Mu,dv;function dx(){if(dv)return Mu;dv=1;var n=Rr(),t=jr(),e=qr(),r=Me(),i=Kt();function s(o,a,u,c){if(!r(o))return o;a=t(a,o);for(var f=-1,l=a.length,h=l-1,g=o;g!=null&&++f<l;){var p=i(a[f]),v=u;if(p==="__proto__"||p==="constructor"||p==="prototype")return o;if(f!=h){var m=g[p];v=c?c(m,p,g):void 0,v===void 0&&(v=r(m)?m:e(a[f+1])?[]:{})}n(g,p,v),g=g[p]}return o}return Mu=s,Mu}var Su,gv;function gx(){if(gv)return Su;gv=1;var n=Cr(),t=dx(),e=jr();function r(i,s,o){for(var a=-1,u=s.length,c={};++a<u;){var f=s[a],l=n(i,f);o(l,f)&&t(c,e(f,i),l)}return c}return Su=r,Su}var Ru,pv;function px(){if(pv)return Ru;pv=1;var n=gx(),t=sg();function e(r,i){return n(r,i,function(s,o){return t(r,o)})}return Ru=e,Ru}var qu,vv;function vx(){if(vv)return qu;vv=1;var n=Vp(),t=zg(),e=Ug();function r(i){return e(t(i,void 0,n),i+"")}return qu=r,qu}var Ou,mv;function mx(){if(mv)return Ou;mv=1;var n=px(),t=vx(),e=t(function(r,i){return r==null?{}:n(r,i)});return Ou=e,Ou}var Au,yv;function yx(){if(yv)return Au;yv=1;var n=Math.ceil,t=Math.max;function e(r,i,s,o){for(var a=-1,u=t(n((i-r)/(s||1)),0),c=Array(u);u--;)c[o?u:++a]=r,r+=s;return c}return Au=e,Au}var Iu,wv;function wx(){if(wv)return Iu;wv=1;var n=yx(),t=Dr(),e=$p();function r(i){return function(s,o,a){return a&&typeof a!="number"&&t(s,o,a)&&(o=a=void 0),s=e(s),o===void 0?(o=s,s=0):o=e(o),a=a===void 0?s<o?1:-1:e(a),n(s,o,a,i)}}return Iu=r,Iu}var Tu,bv;function bx(){if(bv)return Tu;bv=1;var n=wx(),t=n();return Tu=t,Tu}var ku,_v;function _x(){if(_v)return ku;_v=1;function n(t,e){var r=t.length;for(t.sort(e);r--;)t[r]=t[r].value;return t}return ku=n,ku}var ju,Ev;function Ex(){if(Ev)return ju;Ev=1;var n=Mt();function t(e,r){if(e!==r){var i=e!==void 0,s=e===null,o=e===e,a=n(e),u=r!==void 0,c=r===null,f=r===r,l=n(r);if(!c&&!l&&!a&&e>r||a&&u&&f&&!c&&!l||s&&u&&f||!i&&f||!o)return 1;if(!s&&!a&&!l&&e<r||l&&i&&o&&!s&&!a||c&&i&&o||!u&&o||!f)return-1}return 0}return ju=t,ju}var Cu,xv;function xx(){if(xv)return Cu;xv=1;var n=Ex();function t(e,r,i){for(var s=-1,o=e.criteria,a=r.criteria,u=o.length,c=i.length;++s<u;){var f=n(o[s],a[s]);if(f){if(s>=c)return f;var l=i[s];return f*(l=="desc"?-1:1)}}return e.index-r.index}return Cu=t,Cu}var Pu,Nv;function Nx(){if(Nv)return Pu;Nv=1;var n=kr(),t=Cr(),e=De(),r=_g(),i=_x(),s=Or(),o=xx(),a=ut(),u=oe();function c(f,l,h){l.length?l=n(l,function(v){return u(v)?function(m){return t(m,v.length===1?v[0]:v)}:v}):l=[a];var g=-1;l=n(l,s(e));var p=r(f,function(v,m,d){var y=n(l,function(w){return w(v)});return{criteria:y,index:++g,value:v}});return i(p,function(v,m){return o(v,m,h)})}return Pu=c,Pu}var Lu,Mv;function Mx(){if(Mv)return Lu;Mv=1;var n=aa(),t=Nx(),e=Pr(),r=Dr(),i=e(function(s,o){if(s==null)return[];var a=o.length;return a>1&&r(s,o[0],o[1])?o=[]:a>2&&r(o[0],o[1],o[2])&&(o=[o[0]]),t(s,n(o,1),[])});return Lu=i,Lu}var Du,Sv;function Sx(){if(Sv)return Du;Sv=1;var n=Zd(),t=0;function e(r){var i=++t;return n(r)+i}return Du=e,Du}var zu,Rv;function Rx(){if(Rv)return zu;Rv=1;function n(t,e,r){for(var i=-1,s=t.length,o=e.length,a={};++i<s;){var u=i<o?e[i]:void 0;r(a,t[i],u)}return a}return zu=n,zu}var $u,qv;function qx(){if(qv)return $u;qv=1;var n=Rr(),t=Rx();function e(r,i){return t(r||[],i||[],n)}return $u=e,$u}var zr;if(typeof Cn=="function")try{zr={cloneDeep:GE(),constant:Us(),defaults:VE(),each:md(),filter:dg(),find:QE(),flatten:Vp(),forEach:pd(),forIn:HE(),has:vg(),isUndefined:wg(),last:ex(),map:xg(),mapValues:tx(),max:nx(),merge:cx(),min:fx(),minBy:lx(),now:hx(),pick:mx(),range:bx(),reduce:Rg(),sortBy:Mx(),uniqueId:Sx(),values:op(),zipObject:qx()}}catch{}zr||(zr=window._);var re=zr,Ox=$r;function $r(){var n={};n._next=n._prev=n,this._sentinel=n}$r.prototype.dequeue=function(){var n=this._sentinel,t=n._prev;if(t!==n)return Ov(t),t},$r.prototype.enqueue=function(n){var t=this._sentinel;n._prev&&n._next&&Ov(n),n._next=t._next,t._next._prev=n,t._next=n,n._prev=t},$r.prototype.toString=function(){for(var n=[],t=this._sentinel,e=t._prev;e!==t;)n.push(JSON.stringify(e,Ax)),e=e._prev;return"["+n.join(", ")+"]"};function Ov(n){n._prev._next=n._next,n._next._prev=n._prev,delete n._next,delete n._prev}function Ax(n,t){if(n!=="_next"&&n!=="_prev")return t}var ze=re,Ix=qe.Graph,Tx=Ox,kx=Cx,jx=ze.constant(1);function Cx(n,t){if(n.nodeCount()<=1)return[];var e=Lx(n,t||jx),r=Px(e.graph,e.buckets,e.zeroIdx);return ze.flatten(ze.map(r,function(i){return n.outEdges(i.v,i.w)}),!0)}function Px(n,t,e){for(var r=[],i=t[t.length-1],s=t[0],o;n.nodeCount();){for(;o=s.dequeue();)Fu(n,t,e,o);for(;o=i.dequeue();)Fu(n,t,e,o);if(n.nodeCount()){for(var a=t.length-2;a>0;--a)if(o=t[a].dequeue(),o){r=r.concat(Fu(n,t,e,o,!0));break}}}return r}function Fu(n,t,e,r,i){var s=i?[]:void 0;return ze.forEach(n.inEdges(r.v),function(o){var a=n.edge(o),u=n.node(o.v);i&&s.push({v:o.v,w:o.w}),u.out-=a,Bu(t,e,u)}),ze.forEach(n.outEdges(r.v),function(o){var a=n.edge(o),u=o.w,c=n.node(u);c.in-=a,Bu(t,e,c)}),n.removeNode(r.v),s}function Lx(n,t){var e=new Ix,r=0,i=0;ze.forEach(n.nodes(),function(a){e.setNode(a,{v:a,in:0,out:0})}),ze.forEach(n.edges(),function(a){var u=e.edge(a.v,a.w)||0,c=t(a),f=u+c;e.setEdge(a.v,a.w,f),i=Math.max(i,e.node(a.v).out+=c),r=Math.max(r,e.node(a.w).in+=c)});var s=ze.range(i+r+3).map(function(){return new Tx}),o=r+1;return ze.forEach(e.nodes(),function(a){Bu(s,o,e.node(a))}),{graph:e,buckets:s,zeroIdx:o}}function Bu(n,t,e){e.out?e.in?n[e.out-e.in+t].enqueue(e):n[n.length-1].enqueue(e):n[0].enqueue(e)}var ct=re,Dx=kx,zx={run:$x,undo:Bx};function $x(n){var t=n.graph().acyclicer==="greedy"?Dx(n,e(n)):Fx(n);ct.forEach(t,function(r){var i=n.edge(r);n.removeEdge(r),i.forwardName=r.name,i.reversed=!0,n.setEdge(r.w,r.v,i,ct.uniqueId("rev"))});function e(r){return function(i){return r.edge(i).weight}}}function Fx(n){var t=[],e={},r={};function i(s){ct.has(r,s)||(r[s]=!0,e[s]=!0,ct.forEach(n.outEdges(s),function(o){ct.has(e,o.w)?t.push(o):i(o.w)}),delete e[s])}return ct.forEach(n.nodes(),i),t}function Bx(n){ct.forEach(n.edges(),function(t){var e=n.edge(t);if(e.reversed){n.removeEdge(t);var r=e.forwardName;delete e.reversed,delete e.forwardName,n.setEdge(t.w,t.v,e,r)}})}var J=re,Av=qe.Graph,ve={addDummyNode:Iv,simplify:Ux,asNonCompoundGraph:Gx,successorWeights:Vx,predecessorWeights:Wx,intersectRect:Yx,buildLayerMatrix:Kx,normalizeRanks:Xx,removeEmptyRanks:Zx,addBorderNode:Jx,maxRank:Tv,partition:Qx,time:Hx,notime:eN};function Iv(n,t,e,r){var i;do i=J.uniqueId(r);while(n.hasNode(i));return e.dummy=t,n.setNode(i,e),i}function Ux(n){var t=new Av().setGraph(n.graph());return J.forEach(n.nodes(),function(e){t.setNode(e,n.node(e))}),J.forEach(n.edges(),function(e){var r=t.edge(e.v,e.w)||{weight:0,minlen:1},i=n.edge(e);t.setEdge(e.v,e.w,{weight:r.weight+i.weight,minlen:Math.max(r.minlen,i.minlen)})}),t}function Gx(n){var t=new Av({multigraph:n.isMultigraph()}).setGraph(n.graph());return J.forEach(n.nodes(),function(e){n.children(e).length||t.setNode(e,n.node(e))}),J.forEach(n.edges(),function(e){t.setEdge(e,n.edge(e))}),t}function Vx(n){var t=J.map(n.nodes(),function(e){var r={};return J.forEach(n.outEdges(e),function(i){r[i.w]=(r[i.w]||0)+n.edge(i).weight}),r});return J.zipObject(n.nodes(),t)}function Wx(n){var t=J.map(n.nodes(),function(e){var r={};return J.forEach(n.inEdges(e),function(i){r[i.v]=(r[i.v]||0)+n.edge(i).weight}),r});return J.zipObject(n.nodes(),t)}function Yx(n,t){var e=n.x,r=n.y,i=t.x-e,s=t.y-r,o=n.width/2,a=n.height/2;if(!i&&!s)throw new Error("Not possible to find intersection inside of the rectangle");var u,c;return Math.abs(s)*o>Math.abs(i)*a?(s<0&&(a=-a),u=a*i/s,c=a):(i<0&&(o=-o),u=o,c=o*s/i),{x:e+u,y:r+c}}function Kx(n){var t=J.map(J.range(Tv(n)+1),function(){return[]});return J.forEach(n.nodes(),function(e){var r=n.node(e),i=r.rank;J.isUndefined(i)||(t[i][r.order]=e)}),t}function Xx(n){var t=J.min(J.map(n.nodes(),function(e){return n.node(e).rank}));J.forEach(n.nodes(),function(e){var r=n.node(e);J.has(r,"rank")&&(r.rank-=t)})}function Zx(n){var t=J.min(J.map(n.nodes(),function(s){return n.node(s).rank})),e=[];J.forEach(n.nodes(),function(s){var o=n.node(s).rank-t;e[o]||(e[o]=[]),e[o].push(s)});var r=0,i=n.graph().nodeRankFactor;J.forEach(e,function(s,o){J.isUndefined(s)&&o%i!==0?--r:r&&J.forEach(s,function(a){n.node(a).rank+=r})})}function Jx(n,t,e,r){var i={width:0,height:0};return arguments.length>=4&&(i.rank=e,i.order=r),Iv(n,"border",i,t)}function Tv(n){return J.max(J.map(n.nodes(),function(t){var e=n.node(t).rank;if(!J.isUndefined(e))return e}))}function Qx(n,t){var e={lhs:[],rhs:[]};return J.forEach(n,function(r){t(r)?e.lhs.push(r):e.rhs.push(r)}),e}function Hx(n,t){var e=J.now();try{return t()}finally{console.log(n+" time: "+(J.now()-e)+"ms")}}function eN(n,t){return t()}var kv=re,tN=ve,rN={run:nN,undo:sN};function nN(n){n.graph().dummyChains=[],kv.forEach(n.edges(),function(t){iN(n,t)})}function iN(n,t){var e=t.v,r=n.node(e).rank,i=t.w,s=n.node(i).rank,o=t.name,a=n.edge(t),u=a.labelRank;if(s!==r+1){n.removeEdge(t);var c,f,l;for(l=0,++r;r<s;++l,++r)a.points=[],f={width:0,height:0,edgeLabel:a,edgeObj:t,rank:r},c=tN.addDummyNode(n,"edge",f,"_d"),r===u&&(f.width=a.width,f.height=a.height,f.dummy="edge-label",f.labelpos=a.labelpos),n.setEdge(e,c,{weight:a.weight},o),l===0&&n.graph().dummyChains.push(c),e=c;n.setEdge(e,i,{weight:a.weight},o)}}function sN(n){kv.forEach(n.graph().dummyChains,function(t){var e=n.node(t),r=e.edgeLabel,i;for(n.setEdge(e.edgeObj,r);e.dummy;)i=n.successors(t)[0],n.removeNode(t),r.points.push({x:e.x,y:e.y}),e.dummy==="edge-label"&&(r.x=e.x,r.y=e.y,r.width=e.width,r.height=e.height),t=i,e=n.node(t)})}var Fr=re,Br={longestPath:oN,slack:aN};function oN(n){var t={};function e(r){var i=n.node(r);if(Fr.has(t,r))return i.rank;t[r]=!0;var s=Fr.min(Fr.map(n.outEdges(r),function(o){return e(o.w)-n.edge(o).minlen}));return(s===Number.POSITIVE_INFINITY||s===void 0||s===null)&&(s=0),i.rank=s}Fr.forEach(n.sources(),e)}function aN(n,t){return n.node(t.w).rank-n.node(t.v).rank-n.edge(t).minlen}var Ur=re,uN=qe.Graph,Gr=Br.slack,jv=cN;function cN(n){var t=new uN({directed:!1}),e=n.nodes()[0],r=n.nodeCount();t.setNode(e,{});for(var i,s;fN(t,n)<r;)i=lN(t,n),s=t.hasNode(i.v)?Gr(n,i):-Gr(n,i),hN(t,n,s);return t}function fN(n,t){function e(r){Ur.forEach(t.nodeEdges(r),function(i){var s=i.v,o=r===s?i.w:s;!n.hasNode(o)&&!Gr(t,i)&&(n.setNode(o,{}),n.setEdge(r,o,{}),e(o))})}return Ur.forEach(n.nodes(),e),n.nodeCount()}function lN(n,t){return Ur.minBy(t.edges(),function(e){if(n.hasNode(e.v)!==n.hasNode(e.w))return Gr(t,e)})}function hN(n,t,e){Ur.forEach(n.nodes(),function(r){t.node(r).rank+=e})}var $e=re,dN=jv,gN=Br.slack,pN=Br.longestPath,vN=qe.alg.preorder,mN=qe.alg.postorder,yN=ve.simplify,wN=ft;ft.initLowLimValues=Gu,ft.initCutValues=Uu,ft.calcCutValue=Cv,ft.leaveEdge=Lv,ft.enterEdge=Dv,ft.exchangeEdges=zv;function ft(n){n=yN(n),pN(n);var t=dN(n);Gu(t),Uu(t,n);for(var e,r;e=Lv(t);)r=Dv(t,n,e),zv(t,n,e,r)}function Uu(n,t){var e=mN(n,n.nodes());e=e.slice(0,e.length-1),$e.forEach(e,function(r){bN(n,t,r)})}function bN(n,t,e){var r=n.node(e),i=r.parent;n.edge(e,i).cutvalue=Cv(n,t,e)}function Cv(n,t,e){var r=n.node(e),i=r.parent,s=!0,o=t.edge(e,i),a=0;return o||(s=!1,o=t.edge(i,e)),a=o.weight,$e.forEach(t.nodeEdges(e),function(u){var c=u.v===e,f=c?u.w:u.v;if(f!==i){var l=c===s,h=t.edge(u).weight;if(a+=l?h:-h,EN(n,e,f)){var g=n.edge(e,f).cutvalue;a+=l?-g:g}}}),a}function Gu(n,t){arguments.length<2&&(t=n.nodes()[0]),Pv(n,{},1,t)}function Pv(n,t,e,r,i){var s=e,o=n.node(r);return t[r]=!0,$e.forEach(n.neighbors(r),function(a){$e.has(t,a)||(e=Pv(n,t,e,a,r))}),o.low=s,o.lim=e++,i?o.parent=i:delete o.parent,e}function Lv(n){return $e.find(n.edges(),function(t){return n.edge(t).cutvalue<0})}function Dv(n,t,e){var r=e.v,i=e.w;t.hasEdge(r,i)||(r=e.w,i=e.v);var s=n.node(r),o=n.node(i),a=s,u=!1;s.lim>o.lim&&(a=o,u=!0);var c=$e.filter(t.edges(),function(f){return u===$v(n,n.node(f.v),a)&&u!==$v(n,n.node(f.w),a)});return $e.minBy(c,function(f){return gN(t,f)})}function zv(n,t,e,r){var i=e.v,s=e.w;n.removeEdge(i,s),n.setEdge(r.v,r.w,{}),Gu(n),Uu(n,t),_N(n,t)}function _N(n,t){var e=$e.find(n.nodes(),function(i){return!t.node(i).parent}),r=vN(n,e);r=r.slice(1),$e.forEach(r,function(i){var s=n.node(i).parent,o=t.edge(i,s),a=!1;o||(o=t.edge(s,i),a=!0),t.node(i).rank=t.node(s).rank+(a?o.minlen:-o.minlen)})}function EN(n,t,e){return n.hasEdge(t,e)}function $v(n,t,e){return e.low<=t.lim&&t.lim<=e.lim}var xN=Br,Fv=xN.longestPath,NN=jv,MN=wN,SN=RN;function RN(n){switch(n.graph().ranker){case"network-simplex":Bv(n);break;case"tight-tree":ON(n);break;case"longest-path":qN(n);break;default:Bv(n)}}var qN=Fv;function ON(n){Fv(n),NN(n)}function Bv(n){MN(n)}var Vu=re,AN=IN;function IN(n){var t=kN(n);Vu.forEach(n.graph().dummyChains,function(e){for(var r=n.node(e),i=r.edgeObj,s=TN(n,t,i.v,i.w),o=s.path,a=s.lca,u=0,c=o[u],f=!0;e!==i.w;){if(r=n.node(e),f){for(;(c=o[u])!==a&&n.node(c).maxRank<r.rank;)u++;c===a&&(f=!1)}if(!f){for(;u<o.length-1&&n.node(c=o[u+1]).minRank<=r.rank;)u++;c=o[u]}n.setParent(e,c),e=n.successors(e)[0]}})}function TN(n,t,e,r){var i=[],s=[],o=Math.min(t[e].low,t[r].low),a=Math.max(t[e].lim,t[r].lim),u,c;u=e;do u=n.parent(u),i.push(u);while(u&&(t[u].low>o||a>t[u].lim));for(c=u,u=r;(u=n.parent(u))!==c;)s.push(u);return{path:i.concat(s.reverse()),lca:c}}function kN(n){var t={},e=0;function r(i){var s=e;Vu.forEach(n.children(i),r),t[i]={low:s,lim:e++}}return Vu.forEach(n.children(),r),t}var Fe=re,Wu=ve,jN={run:CN,cleanup:DN};function CN(n){var t=Wu.addDummyNode(n,"root",{},"_root"),e=PN(n),r=Fe.max(Fe.values(e))-1,i=2*r+1;n.graph().nestingRoot=t,Fe.forEach(n.edges(),function(o){n.edge(o).minlen*=i});var s=LN(n)+1;Fe.forEach(n.children(),function(o){Uv(n,t,i,s,r,e,o)}),n.graph().nodeRankFactor=i}function Uv(n,t,e,r,i,s,o){var a=n.children(o);if(!a.length){o!==t&&n.setEdge(t,o,{weight:0,minlen:e});return}var u=Wu.addBorderNode(n,"_bt"),c=Wu.addBorderNode(n,"_bb"),f=n.node(o);n.setParent(u,o),f.borderTop=u,n.setParent(c,o),f.borderBottom=c,Fe.forEach(a,function(l){Uv(n,t,e,r,i,s,l);var h=n.node(l),g=h.borderTop?h.borderTop:l,p=h.borderBottom?h.borderBottom:l,v=h.borderTop?r:2*r,m=g!==p?1:i-s[o]+1;n.setEdge(u,g,{weight:v,minlen:m,nestingEdge:!0}),n.setEdge(p,c,{weight:v,minlen:m,nestingEdge:!0})}),n.parent(o)||n.setEdge(t,u,{weight:0,minlen:i+s[o]})}function PN(n){var t={};function e(r,i){var s=n.children(r);s&&s.length&&Fe.forEach(s,function(o){e(o,i+1)}),t[r]=i}return Fe.forEach(n.children(),function(r){e(r,1)}),t}function LN(n){return Fe.reduce(n.edges(),function(t,e){return t+n.edge(e).weight},0)}function DN(n){var t=n.graph();n.removeNode(t.nestingRoot),delete t.nestingRoot,Fe.forEach(n.edges(),function(e){var r=n.edge(e);r.nestingEdge&&n.removeEdge(e)})}var Yu=re,zN=ve,$N=FN;function FN(n){function t(e){var r=n.children(e),i=n.node(e);if(r.length&&Yu.forEach(r,t),Yu.has(i,"minRank")){i.borderLeft=[],i.borderRight=[];for(var s=i.minRank,o=i.maxRank+1;s<o;++s)Gv(n,"borderLeft","_bl",e,i,s),Gv(n,"borderRight","_br",e,i,s)}}Yu.forEach(n.children(),t)}function Gv(n,t,e,r,i,s){var o={width:0,height:0,rank:s,borderType:t},a=i[t][s-1],u=zN.addDummyNode(n,"border",o,e);i[t][s]=u,n.setParent(u,r),a&&n.setEdge(a,u,{weight:1})}var Ie=re,BN={adjust:UN,undo:GN};function UN(n){var t=n.graph().rankdir.toLowerCase();(t==="lr"||t==="rl")&&Vv(n)}function GN(n){var t=n.graph().rankdir.toLowerCase();(t==="bt"||t==="rl")&&VN(n),(t==="lr"||t==="rl")&&(WN(n),Vv(n))}function Vv(n){Ie.forEach(n.nodes(),function(t){Wv(n.node(t))}),Ie.forEach(n.edges(),function(t){Wv(n.edge(t))})}function Wv(n){var t=n.width;n.width=n.height,n.height=t}function VN(n){Ie.forEach(n.nodes(),function(t){Ku(n.node(t))}),Ie.forEach(n.edges(),function(t){var e=n.edge(t);Ie.forEach(e.points,Ku),Ie.has(e,"y")&&Ku(e)})}function Ku(n){n.y=-n.y}function WN(n){Ie.forEach(n.nodes(),function(t){Xu(n.node(t))}),Ie.forEach(n.edges(),function(t){var e=n.edge(t);Ie.forEach(e.points,Xu),Ie.has(e,"x")&&Xu(e)})}function Xu(n){var t=n.x;n.x=n.y,n.y=t}var Be=re,YN=KN;function KN(n){var t={},e=Be.filter(n.nodes(),function(a){return!n.children(a).length}),r=Be.max(Be.map(e,function(a){return n.node(a).rank})),i=Be.map(Be.range(r+1),function(){return[]});function s(a){if(!Be.has(t,a)){t[a]=!0;var u=n.node(a);i[u.rank].push(a),Be.forEach(n.successors(a),s)}}var o=Be.sortBy(e,function(a){return n.node(a).rank});return Be.forEach(o,s),i}var Ke=re,XN=ZN;function ZN(n,t){for(var e=0,r=1;r<t.length;++r)e+=JN(n,t[r-1],t[r]);return e}function JN(n,t,e){for(var r=Ke.zipObject(e,Ke.map(e,function(c,f){return f})),i=Ke.flatten(Ke.map(t,function(c){return Ke.sortBy(Ke.map(n.outEdges(c),function(f){return{pos:r[f.w],weight:n.edge(f).weight}}),"pos")}),!0),s=1;s<e.length;)s<<=1;var o=2*s-1;s-=1;var a=Ke.map(new Array(o),function(){return 0}),u=0;return Ke.forEach(i.forEach(function(c){var f=c.pos+s;a[f]+=c.weight;for(var l=0;f>0;)f%2&&(l+=a[f+1]),f=f-1>>1,a[f]+=c.weight;u+=c.weight*l})),u}var Yv=re,QN=HN;function HN(n,t){return Yv.map(t,function(e){var r=n.inEdges(e);if(r.length){var i=Yv.reduce(r,function(s,o){var a=n.edge(o),u=n.node(o.v);return{sum:s.sum+a.weight*u.order,weight:s.weight+a.weight}},{sum:0,weight:0});return{v:e,barycenter:i.sum/i.weight,weight:i.weight}}else return{v:e}})}var be=re,eM=tM;function tM(n,t){var e={};be.forEach(n,function(i,s){var o=e[i.v]={indegree:0,in:[],out:[],vs:[i.v],i:s};be.isUndefined(i.barycenter)||(o.barycenter=i.barycenter,o.weight=i.weight)}),be.forEach(t.edges(),function(i){var s=e[i.v],o=e[i.w];!be.isUndefined(s)&&!be.isUndefined(o)&&(o.indegree++,s.out.push(e[i.w]))});var r=be.filter(e,function(i){return!i.indegree});return rM(r)}function rM(n){var t=[];function e(s){return function(o){o.merged||(be.isUndefined(o.barycenter)||be.isUndefined(s.barycenter)||o.barycenter>=s.barycenter)&&nM(s,o)}}function r(s){return function(o){o.in.push(s),--o.indegree===0&&n.push(o)}}for(;n.length;){var i=n.pop();t.push(i),be.forEach(i.in.reverse(),e(i)),be.forEach(i.out,r(i))}return be.map(be.filter(t,function(s){return!s.merged}),function(s){return be.pick(s,["vs","i","barycenter","weight"])})}function nM(n,t){var e=0,r=0;n.weight&&(e+=n.barycenter*n.weight,r+=n.weight),t.weight&&(e+=t.barycenter*t.weight,r+=t.weight),n.vs=t.vs.concat(n.vs),n.barycenter=e/r,n.weight=r,n.i=Math.min(t.i,n.i),t.merged=!0}var Xt=re,iM=ve,sM=oM;function oM(n,t){var e=iM.partition(n,function(f){return Xt.has(f,"barycenter")}),r=e.lhs,i=Xt.sortBy(e.rhs,function(f){return-f.i}),s=[],o=0,a=0,u=0;r.sort(aM(!!t)),u=Kv(s,i,u),Xt.forEach(r,function(f){u+=f.vs.length,s.push(f.vs),o+=f.barycenter*f.weight,a+=f.weight,u=Kv(s,i,u)});var c={vs:Xt.flatten(s,!0)};return a&&(c.barycenter=o/a,c.weight=a),c}function Kv(n,t,e){for(var r;t.length&&(r=Xt.last(t)).i<=e;)t.pop(),n.push(r.vs),e++;return e}function aM(n){return function(t,e){return t.barycenter<e.barycenter?-1:t.barycenter>e.barycenter?1:n?e.i-t.i:t.i-e.i}}var Xe=re,uM=QN,cM=eM,fM=sM,lM=Xv;function Xv(n,t,e,r){var i=n.children(t),s=n.node(t),o=s?s.borderLeft:void 0,a=s?s.borderRight:void 0,u={};o&&(i=Xe.filter(i,function(p){return p!==o&&p!==a}));var c=uM(n,i);Xe.forEach(c,function(p){if(n.children(p.v).length){var v=Xv(n,p.v,e,r);u[p.v]=v,Xe.has(v,"barycenter")&&dM(p,v)}});var f=cM(c,e);hM(f,u);var l=fM(f,r);if(o&&(l.vs=Xe.flatten([o,l.vs,a],!0),n.predecessors(o).length)){var h=n.node(n.predecessors(o)[0]),g=n.node(n.predecessors(a)[0]);Xe.has(l,"barycenter")||(l.barycenter=0,l.weight=0),l.barycenter=(l.barycenter*l.weight+h.order+g.order)/(l.weight+2),l.weight+=2}return l}function hM(n,t){Xe.forEach(n,function(e){e.vs=Xe.flatten(e.vs.map(function(r){return t[r]?t[r].vs:r}),!0)})}function dM(n,t){Xe.isUndefined(n.barycenter)?(n.barycenter=t.barycenter,n.weight=t.weight):(n.barycenter=(n.barycenter*n.weight+t.barycenter*t.weight)/(n.weight+t.weight),n.weight+=t.weight)}var Zt=re,gM=qe.Graph,pM=vM;function vM(n,t,e){var r=mM(n),i=new gM({compound:!0}).setGraph({root:r}).setDefaultNodeLabel(function(s){return n.node(s)});return Zt.forEach(n.nodes(),function(s){var o=n.node(s),a=n.parent(s);(o.rank===t||o.minRank<=t&&t<=o.maxRank)&&(i.setNode(s),i.setParent(s,a||r),Zt.forEach(n[e](s),function(u){var c=u.v===s?u.w:u.v,f=i.edge(c,s),l=Zt.isUndefined(f)?0:f.weight;i.setEdge(c,s,{weight:n.edge(u).weight+l})}),Zt.has(o,"minRank")&&i.setNode(s,{borderLeft:o.borderLeft[t],borderRight:o.borderRight[t]}))}),i}function mM(n){for(var t;n.hasNode(t=Zt.uniqueId("_root")););return t}var yM=re,wM=bM;function bM(n,t,e){var r={},i;yM.forEach(e,function(s){for(var o=n.parent(s),a,u;o;){if(a=n.parent(o),a?(u=r[a],r[a]=o):(u=i,i=o),u&&u!==o){t.setEdge(u,o);return}o=a}})}var Ze=re,_M=YN,EM=XN,xM=lM,NM=pM,MM=wM,SM=qe.Graph,Zv=ve,RM=qM;function qM(n){var t=Zv.maxRank(n),e=Jv(n,Ze.range(1,t+1),"inEdges"),r=Jv(n,Ze.range(t-1,-1,-1),"outEdges"),i=_M(n);Qv(n,i);for(var s=Number.POSITIVE_INFINITY,o,a=0,u=0;u<4;++a,++u){OM(a%2?e:r,a%4>=2),i=Zv.buildLayerMatrix(n);var c=EM(n,i);c<s&&(u=0,o=Ze.cloneDeep(i),s=c)}Qv(n,o)}function Jv(n,t,e){return Ze.map(t,function(r){return NM(n,r,e)})}function OM(n,t){var e=new SM;Ze.forEach(n,function(r){var i=r.graph().root,s=xM(r,i,e,t);Ze.forEach(s.vs,function(o,a){r.node(o).order=a}),MM(r,e,s.vs)})}function Qv(n,t){Ze.forEach(t,function(e){Ze.forEach(e,function(r,i){n.node(r).order=i})})}var W=re,AM=qe.Graph,IM=ve,TM={positionX:CM,findType1Conflicts:Hv,findType2Conflicts:e0,addConflict:Zu,hasConflict:t0,verticalAlignment:r0,horizontalCompaction:n0,alignCoordinates:s0,findSmallestWidthAlignment:i0,balance:o0};function Hv(n,t){var e={};function r(i,s){var o=0,a=0,u=i.length,c=W.last(s);return W.forEach(s,function(f,l){var h=kM(n,f),g=h?n.node(h).order:u;(h||f===c)&&(W.forEach(s.slice(a,l+1),function(p){W.forEach(n.predecessors(p),function(v){var m=n.node(v),d=m.order;(d<o||g<d)&&!(m.dummy&&n.node(p).dummy)&&Zu(e,v,p)})}),a=l+1,o=g)}),s}return W.reduce(t,r),e}function e0(n,t){var e={};function r(s,o,a,u,c){var f;W.forEach(W.range(o,a),function(l){f=s[l],n.node(f).dummy&&W.forEach(n.predecessors(f),function(h){var g=n.node(h);g.dummy&&(g.order<u||g.order>c)&&Zu(e,h,f)})})}function i(s,o){var a=-1,u,c=0;return W.forEach(o,function(f,l){if(n.node(f).dummy==="border"){var h=n.predecessors(f);h.length&&(u=n.node(h[0]).order,r(o,c,l,a,u),c=l,a=u)}r(o,c,o.length,u,s.length)}),o}return W.reduce(t,i),e}function kM(n,t){if(n.node(t).dummy)return W.find(n.predecessors(t),function(e){return n.node(e).dummy})}function Zu(n,t,e){if(t>e){var r=t;t=e,e=r}var i=n[t];i||(n[t]=i={}),i[e]=!0}function t0(n,t,e){if(t>e){var r=t;t=e,e=r}return W.has(n[t],e)}function r0(n,t,e,r){var i={},s={},o={};return W.forEach(t,function(a){W.forEach(a,function(u,c){i[u]=u,s[u]=u,o[u]=c})}),W.forEach(t,function(a){var u=-1;W.forEach(a,function(c){var f=r(c);if(f.length){f=W.sortBy(f,function(v){return o[v]});for(var l=(f.length-1)/2,h=Math.floor(l),g=Math.ceil(l);h<=g;++h){var p=f[h];s[c]===c&&u<o[p]&&!t0(e,c,p)&&(s[p]=c,s[c]=i[c]=i[p],u=o[p])}}})}),{root:i,align:s}}function n0(n,t,e,r,i){var s={},o=jM(n,t,e,i),a=i?"borderLeft":"borderRight";function u(l,h){for(var g=o.nodes(),p=g.pop(),v={};p;)v[p]?l(p):(v[p]=!0,g.push(p),g=g.concat(h(p))),p=g.pop()}function c(l){s[l]=o.inEdges(l).reduce(function(h,g){return Math.max(h,s[g.v]+o.edge(g))},0)}function f(l){var h=o.outEdges(l).reduce(function(p,v){return Math.min(p,s[v.w]-o.edge(v))},Number.POSITIVE_INFINITY),g=n.node(l);h!==Number.POSITIVE_INFINITY&&g.borderType!==a&&(s[l]=Math.max(s[l],h))}return u(c,o.predecessors.bind(o)),u(f,o.successors.bind(o)),W.forEach(r,function(l){s[l]=s[e[l]]}),s}function jM(n,t,e,r){var i=new AM,s=n.graph(),o=PM(s.nodesep,s.edgesep,r);return W.forEach(t,function(a){var u;W.forEach(a,function(c){var f=e[c];if(i.setNode(f),u){var l=e[u],h=i.edge(l,f);i.setEdge(l,f,Math.max(o(n,c,u),h||0))}u=c})}),i}function i0(n,t){return W.minBy(W.values(t),function(e){var r=Number.NEGATIVE_INFINITY,i=Number.POSITIVE_INFINITY;return W.forIn(e,function(s,o){var a=LM(n,o)/2;r=Math.max(s+a,r),i=Math.min(s-a,i)}),r-i})}function s0(n,t){var e=W.values(t),r=W.min(e),i=W.max(e);W.forEach(["u","d"],function(s){W.forEach(["l","r"],function(o){var a=s+o,u=n[a],c;if(u!==t){var f=W.values(u);c=o==="l"?r-W.min(f):i-W.max(f),c&&(n[a]=W.mapValues(u,function(l){return l+c}))}})})}function o0(n,t){return W.mapValues(n.ul,function(e,r){if(t)return n[t.toLowerCase()][r];var i=W.sortBy(W.map(n,r));return(i[1]+i[2])/2})}function CM(n){var t=IM.buildLayerMatrix(n),e=W.merge(Hv(n,t),e0(n,t)),r={},i;W.forEach(["u","d"],function(o){i=o==="u"?t:W.values(t).reverse(),W.forEach(["l","r"],function(a){a==="r"&&(i=W.map(i,function(l){return W.values(l).reverse()}));var u=(o==="u"?n.predecessors:n.successors).bind(n),c=r0(n,i,e,u),f=n0(n,i,c.root,c.align,a==="r");a==="r"&&(f=W.mapValues(f,function(l){return-l})),r[o+a]=f})});var s=i0(n,r);return s0(r,s),o0(r,n.graph().align)}function PM(n,t,e){return function(r,i,s){var o=r.node(i),a=r.node(s),u=0,c;if(u+=o.width/2,W.has(o,"labelpos"))switch(o.labelpos.toLowerCase()){case"l":c=-o.width/2;break;case"r":c=o.width/2;break}if(c&&(u+=e?c:-c),c=0,u+=(o.dummy?t:n)/2,u+=(a.dummy?t:n)/2,u+=a.width/2,W.has(a,"labelpos"))switch(a.labelpos.toLowerCase()){case"l":c=a.width/2;break;case"r":c=-a.width/2;break}return c&&(u+=e?c:-c),c=0,u}}function LM(n,t){return n.node(t).width}var Jt=re,a0=ve,DM=TM.positionX,zM=$M;function $M(n){n=a0.asNonCompoundGraph(n),FM(n),Jt.forEach(DM(n),function(t,e){n.node(e).x=t})}function FM(n){var t=a0.buildLayerMatrix(n),e=n.graph().ranksep,r=0;Jt.forEach(t,function(i){var s=Jt.max(Jt.map(i,function(o){return n.node(o).height}));Jt.forEach(i,function(o){n.node(o).y=r+s/2}),r+=s+e})}var K=re,u0=zx,c0=rN,BM=SN,UM=ve.normalizeRanks,GM=AN,VM=ve.removeEmptyRanks,f0=jN,WM=$N,l0=BN,YM=RM,KM=zM,Je=ve,XM=qe.Graph,ZM=JM;function JM(n,t){var e=t&&t.debugTiming?Je.time:Je.notime;e("layout",function(){var r=e(" buildLayoutGraph",function(){return uS(n)});e(" runLayout",function(){QM(r,e)}),e(" updateInputGraph",function(){HM(n,r)})})}function QM(n,t){t(" makeSpaceForEdgeLabels",function(){cS(n)}),t(" removeSelfEdges",function(){yS(n)}),t(" acyclic",function(){u0.run(n)}),t(" nestingGraph.run",function(){f0.run(n)}),t(" rank",function(){BM(Je.asNonCompoundGraph(n))}),t(" injectEdgeLabelProxies",function(){fS(n)}),t(" removeEmptyRanks",function(){VM(n)}),t(" nestingGraph.cleanup",function(){f0.cleanup(n)}),t(" normalizeRanks",function(){UM(n)}),t(" assignRankMinMax",function(){lS(n)}),t(" removeEdgeLabelProxies",function(){hS(n)}),t(" normalize.run",function(){c0.run(n)}),t(" parentDummyChains",function(){GM(n)}),t(" addBorderSegments",function(){WM(n)}),t(" order",function(){YM(n)}),t(" insertSelfEdges",function(){wS(n)}),t(" adjustCoordinateSystem",function(){l0.adjust(n)}),t(" position",function(){KM(n)}),t(" positionSelfEdges",function(){bS(n)}),t(" removeBorderNodes",function(){mS(n)}),t(" normalize.undo",function(){c0.undo(n)}),t(" fixupEdgeLabelCoords",function(){pS(n)}),t(" undoCoordinateSystem",function(){l0.undo(n)}),t(" translateGraph",function(){dS(n)}),t(" assignNodeIntersects",function(){gS(n)}),t(" reversePoints",function(){vS(n)}),t(" acyclic.undo",function(){u0.undo(n)})}function HM(n,t){K.forEach(n.nodes(),function(e){var r=n.node(e),i=t.node(e);r&&(r.x=i.x,r.y=i.y,t.children(e).length&&(r.width=i.width,r.height=i.height))}),K.forEach(n.edges(),function(e){var r=n.edge(e),i=t.edge(e);r.points=i.points,K.has(i,"x")&&(r.x=i.x,r.y=i.y)}),n.graph().width=t.graph().width,n.graph().height=t.graph().height}var eS=["nodesep","edgesep","ranksep","marginx","marginy"],tS={ranksep:50,edgesep:20,nodesep:50,rankdir:"tb"},rS=["acyclicer","ranker","rankdir","align"],nS=["width","height"],iS={width:0,height:0},sS=["minlen","weight","width","height","labeloffset"],oS={minlen:1,weight:1,width:0,height:0,labeloffset:10,labelpos:"r"},aS=["labelpos"];function uS(n){var t=new XM({multigraph:!0,compound:!0}),e=Qu(n.graph());return t.setGraph(K.merge({},tS,Ju(e,eS),K.pick(e,rS))),K.forEach(n.nodes(),function(r){var i=Qu(n.node(r));t.setNode(r,K.defaults(Ju(i,nS),iS)),t.setParent(r,n.parent(r))}),K.forEach(n.edges(),function(r){var i=Qu(n.edge(r));t.setEdge(r,K.merge({},oS,Ju(i,sS),K.pick(i,aS)))}),t}function cS(n){var t=n.graph();t.ranksep/=2,K.forEach(n.edges(),function(e){var r=n.edge(e);r.minlen*=2,r.labelpos.toLowerCase()!=="c"&&(t.rankdir==="TB"||t.rankdir==="BT"?r.width+=r.labeloffset:r.height+=r.labeloffset)})}function fS(n){K.forEach(n.edges(),function(t){var e=n.edge(t);if(e.width&&e.height){var r=n.node(t.v),i=n.node(t.w),s={rank:(i.rank-r.rank)/2+r.rank,e:t};Je.addDummyNode(n,"edge-proxy",s,"_ep")}})}function lS(n){var t=0;K.forEach(n.nodes(),function(e){var r=n.node(e);r.borderTop&&(r.minRank=n.node(r.borderTop).rank,r.maxRank=n.node(r.borderBottom).rank,t=K.max(t,r.maxRank))}),n.graph().maxRank=t}function hS(n){K.forEach(n.nodes(),function(t){var e=n.node(t);e.dummy==="edge-proxy"&&(n.edge(e.e).labelRank=e.rank,n.removeNode(t))})}function dS(n){var t=Number.POSITIVE_INFINITY,e=0,r=Number.POSITIVE_INFINITY,i=0,s=n.graph(),o=s.marginx||0,a=s.marginy||0;function u(c){var f=c.x,l=c.y,h=c.width,g=c.height;t=Math.min(t,f-h/2),e=Math.max(e,f+h/2),r=Math.min(r,l-g/2),i=Math.max(i,l+g/2)}K.forEach(n.nodes(),function(c){u(n.node(c))}),K.forEach(n.edges(),function(c){var f=n.edge(c);K.has(f,"x")&&u(f)}),t-=o,r-=a,K.forEach(n.nodes(),function(c){var f=n.node(c);f.x-=t,f.y-=r}),K.forEach(n.edges(),function(c){var f=n.edge(c);K.forEach(f.points,function(l){l.x-=t,l.y-=r}),K.has(f,"x")&&(f.x-=t),K.has(f,"y")&&(f.y-=r)}),s.width=e-t+o,s.height=i-r+a}function gS(n){K.forEach(n.edges(),function(t){var e=n.edge(t),r=n.node(t.v),i=n.node(t.w),s,o;e.points?(s=e.points[0],o=e.points[e.points.length-1]):(e.points=[],s=i,o=r),e.points.unshift(Je.intersectRect(r,s)),e.points.push(Je.intersectRect(i,o))})}function pS(n){K.forEach(n.edges(),function(t){var e=n.edge(t);if(K.has(e,"x"))switch((e.labelpos==="l"||e.labelpos==="r")&&(e.width-=e.labeloffset),e.labelpos){case"l":e.x-=e.width/2+e.labeloffset;break;case"r":e.x+=e.width/2+e.labeloffset;break}})}function vS(n){K.forEach(n.edges(),function(t){var e=n.edge(t);e.reversed&&e.points.reverse()})}function mS(n){K.forEach(n.nodes(),function(t){if(n.children(t).length){var e=n.node(t),r=n.node(e.borderTop),i=n.node(e.borderBottom),s=n.node(K.last(e.borderLeft)),o=n.node(K.last(e.borderRight));e.width=Math.abs(o.x-s.x),e.height=Math.abs(i.y-r.y),e.x=s.x+e.width/2,e.y=r.y+e.height/2}}),K.forEach(n.nodes(),function(t){n.node(t).dummy==="border"&&n.removeNode(t)})}function yS(n){K.forEach(n.edges(),function(t){if(t.v===t.w){var e=n.node(t.v);e.selfEdges||(e.selfEdges=[]),e.selfEdges.push({e:t,label:n.edge(t)}),n.removeEdge(t)}})}function wS(n){var t=Je.buildLayerMatrix(n);K.forEach(t,function(e){var r=0;K.forEach(e,function(i,s){var o=n.node(i);o.order=s+r,K.forEach(o.selfEdges,function(a){Je.addDummyNode(n,"selfedge",{width:a.label.width,height:a.label.height,rank:o.rank,order:s+ ++r,e:a.e,label:a.label},"_se")}),delete o.selfEdges})})}function bS(n){K.forEach(n.nodes(),function(t){var e=n.node(t);if(e.dummy==="selfedge"){var r=n.node(e.e.v),i=r.x+r.width/2,s=r.y,o=e.x-i,a=r.height/2;n.setEdge(e.e,e.label),n.removeNode(t),e.label.points=[{x:i+2*o/3,y:s-a},{x:i+5*o/6,y:s-a},{x:i+o,y:s},{x:i+5*o/6,y:s+a},{x:i+2*o/3,y:s+a}],e.label.x=e.x,e.label.y=e.y}})}function Ju(n,t){return K.mapValues(K.pick(n,t),Number)}function Qu(n){var t={};return K.forEach(n,function(e,r){t[r.toLowerCase()]=e}),t}var Vr=re,_S=ve,ES=qe.Graph,xS={debugOrdering:NS};function NS(n){var t=_S.buildLayerMatrix(n),e=new ES({compound:!0,multigraph:!0}).setGraph({});return Vr.forEach(n.nodes(),function(r){e.setNode(r,{label:r}),e.setParent(r,"layer"+n.node(r).rank)}),Vr.forEach(n.edges(),function(r){e.setEdge(r.v,r.w,{},r.name)}),Vr.forEach(t,function(r,i){var s="layer"+i;e.setNode(s,{rank:"same"}),Vr.reduce(r,function(o,a){return e.setEdge(o,a,{style:"invis"}),a})}),e}var MS="0.8.5",h0={graphlib:qe,layout:ZM,debug:xS,util:{time:ve.time,notime:ve.notime},version:MS},SS=Aw(h0);class Wr{constructor(t){this.id="dagre",this.options={},Object.assign(this.options,Wr.defaultOptions,t)}execute(t,e){return L(this,void 0,void 0,function*(){return this.genericDagreLayout(!1,t,Object.assign(Object.assign({},this.options),e))})}assign(t,e){return L(this,void 0,void 0,function*(){yield this.genericDagreLayout(!0,t,Object.assign(Object.assign({},this.options),e))})}genericDagreLayout(t,e,r){return L(this,void 0,void 0,function*(){const{nodeSize:i}=r,s=new h0.graphlib.Graph;s.setGraph(r),s.setDefaultEdgeLabel(()=>({}));const o=e.getAllNodes(),a=e.getAllEdges();[...o,...a].some(({id:c})=>V(c))&&console.error("Dagre layout only support string id, it will convert number to string."),e.getAllNodes().forEach(c=>{const{id:f}=c,l=Object.assign({},c.data);if(i!==void 0){const[h,g]=Ct(Te(i)?i(c):i);Object.assign(l,{width:h,height:g})}s.setNode(f.toString(),l)}),e.getAllEdges().forEach(({id:c,source:f,target:l})=>{s.setEdge(f.toString(),l.toString(),{id:c})}),SS.layout(s);const u={nodes:[],edges:[]};return s.nodes().forEach(c=>{const f=s.node(c);u.nodes.push({id:c,data:f}),t&&e.mergeNodeData(c,f)}),s.edges().forEach(c=>{const f=s.edge(c),{id:l}=f,h=ne(f,["id"]),{v:g,w:p}=c;u.edges.push({id:l,source:g,target:p,data:h}),t&&e.mergeEdgeData(l,h)}),u})}}Wr.defaultOptions={};class Hu{constructor(t){this.id=t.id||0,this.rx=t.rx,this.ry=t.ry,this.fx=0,this.fy=0,this.mass=t.mass,this.degree=t.degree,this.g=t.g||0}distanceTo(t){const e=this.rx-t.rx,r=this.ry-t.ry;return Math.hypot(e,r)}setPos(t,e){this.rx=t,this.ry=e}resetForce(){this.fx=0,this.fy=0}addForce(t){const e=t.rx-this.rx,r=t.ry-this.ry;let i=Math.hypot(e,r);i=i<1e-4?1e-4:i;const s=this.g*(this.degree+1)*(t.degree+1)/i;this.fx+=s*e/i,this.fy+=s*r/i}in(t){return t.contains(this.rx,this.ry)}add(t){const e=this.mass+t.mass,r=(this.rx*this.mass+t.rx*t.mass)/e,i=(this.ry*this.mass+t.ry*t.mass)/e,s=this.degree+t.degree,o={rx:r,ry:i,mass:e,degree:s};return new Hu(o)}}class St{constructor(t){this.xmid=t.xmid,this.ymid=t.ymid,this.length=t.length,this.massCenter=t.massCenter||[0,0],this.mass=t.mass||1}getLength(){return this.length}contains(t,e){const r=this.length/2;return t<=this.xmid+r&&t>=this.xmid-r&&e<=this.ymid+r&&e>=this.ymid-r}NW(){const t=this.xmid-this.length/4,e=this.ymid+this.length/4,r=this.length/2,i={xmid:t,ymid:e,length:r};return new St(i)}NE(){const t=this.xmid+this.length/4,e=this.ymid+this.length/4,r=this.length/2,i={xmid:t,ymid:e,length:r};return new St(i)}SW(){const t=this.xmid-this.length/4,e=this.ymid-this.length/4,r=this.length/2,i={xmid:t,ymid:e,length:r};return new St(i)}SE(){const t=this.xmid+this.length/4,e=this.ymid-this.length/4,r=this.length/2,i={xmid:t,ymid:e,length:r};return new St(i)}}class Rt{constructor(t){this.body=null,this.quad=null,this.NW=null,this.NE=null,this.SW=null,this.SE=null,this.theta=.5,t!=null&&(this.quad=t)}insert(t){if(this.body==null){this.body=t;return}this._isExternal()?(this.quad&&(this.NW=new Rt(this.quad.NW()),this.NE=new Rt(this.quad.NE()),this.SW=new Rt(this.quad.SW()),this.SE=new Rt(this.quad.SE())),this._putBody(this.body),this._putBody(t),this.body=this.body.add(t)):(this.body=this.body.add(t),this._putBody(t))}_putBody(t){this.quad&&(t.in(this.quad.NW())&&this.NW?this.NW.insert(t):t.in(this.quad.NE())&&this.NE?this.NE.insert(t):t.in(this.quad.SW())&&this.SW?this.SW.insert(t):t.in(this.quad.SE())&&this.SE&&this.SE.insert(t))}_isExternal(){return this.NW==null&&this.NE==null&&this.SW==null&&this.SE==null}updateForce(t){if(!(this.body==null||t===this.body))if(this._isExternal())t.addForce(this.body);else{const e=this.quad?this.quad.getLength():0,r=this.body.distanceTo(t);e/r<this.theta?t.addForce(this.body):(this.NW&&this.NW.updateForce(t),this.NE&&this.NE.updateForce(t),this.SW&&this.SW.updateForce(t),this.SE&&this.SE.updateForce(t))}}}const RS={center:[0,0],width:300,height:300,kr:5,kg:1,mode:"normal",preventOverlap:!1,dissuadeHubs:!1,maxIteration:0,ks:.1,ksmax:10,tao:.1};class qS{constructor(t={}){this.options=t,this.id="forceAtlas2",this.options=Object.assign(Object.assign({},RS),t)}execute(t,e){return L(this,void 0,void 0,function*(){return this.genericForceAtlas2Layout(!1,t,e)})}assign(t,e){return L(this,void 0,void 0,function*(){yield this.genericForceAtlas2Layout(!0,t,e)})}genericForceAtlas2Layout(t,e,r){return L(this,void 0,void 0,function*(){const i=e.getAllEdges(),s=e.getAllNodes(),o=this.formatOptions(r,s.length),{width:a,height:u,prune:c,maxIteration:f,nodeSize:l,center:h}=o;if(!(s!=null&&s.length)||s.length===1)return rt(e,t,h);const g=s.map(d=>ye(d,[a,u])),p=i.filter(d=>{const{source:y,target:w}=d;return y!==w}),v=new ue({nodes:g,edges:p}),m=this.getSizes(v,l);if(this.run(v,e,f,m,t,o),c){for(let y=0;y<p.length;y+=1){const{source:w,target:b}=p[y],x=v.getDegree(w),M=v.getDegree(w);if(x<=1){const N=v.getNode(b);v.mergeNodeData(w,{x:N.data.x,y:N.data.y})}else if(M<=1){const N=v.getNode(w);v.mergeNodeData(b,{x:N.data.x,y:N.data.y})}}const d=Object.assign(Object.assign({},o),{prune:!1,barnesHut:!1});this.run(v,e,100,m,t,d)}return{nodes:g,edges:i}})}getSizes(t,e){const r=t.getAllNodes(),i={};for(let s=0;s<r.length;s+=1){const o=r[s];i[o.id]=mn(e,void 0)(o)}return i}formatOptions(t={},e){const r=Object.assign(Object.assign({},this.options),t),{center:i,width:s,height:o,barnesHut:a,prune:u,maxIteration:c,kr:f,kg:l}=r;return r.width=!s&&typeof window<"u"?window.innerWidth:s,r.height=!o&&typeof window<"u"?window.innerHeight:o,r.center=i||[r.width/2,r.height/2],a===void 0&&e>250&&(r.barnesHut=!0),u===void 0&&e>100&&(r.prune=!0),c===0&&!u?(r.maxIteration=250,e<=200&&e>100?r.maxIteration=1e3:e>200&&(r.maxIteration=1200)):c===0&&u&&(r.maxIteration=100,e<=200&&e>100?r.maxIteration=500:e>200&&(r.maxIteration=950)),f||(r.kr=50,e>100&&e<=500?r.kr=20:e>500&&(r.kr=1)),l||(r.kg=20,e>100&&e<=500?r.kg=10:e>500&&(r.kg=1)),r}run(t,e,r,i,s,o){const{kr:a,barnesHut:u,onTick:c}=o,f=t.getAllNodes();let l=0,h=r;const g={},p={},v={};for(let m=0;m<f.length;m+=1){const{data:d,id:y}=f[m];if(g[y]=[0,0],u){const w={id:m,rx:d.x,ry:d.y,mass:1,g:a,degree:t.getDegree(y)};v[y]=new Hu(w)}}for(;h>0;)l=this.oneStep(t,{iter:h,preventOverlapIters:50,krPrime:100,sg:l,forces:g,preForces:p,bodies:v,sizes:i},o),h--,c==null||c({nodes:f,edges:e.getAllEdges()});return t}oneStep(t,e,r){const{iter:i,preventOverlapIters:s,krPrime:o,sg:a,preForces:u,bodies:c,sizes:f}=e;let{forces:l}=e;const{preventOverlap:h,barnesHut:g}=r,p=t.getAllNodes();for(let v=0;v<p.length;v+=1){const{id:m}=p[v];u[m]=[...l[m]],l[m]=[0,0]}return l=this.getAttrForces(t,i,s,f,l,r),g&&(h&&i>s||!h)?l=this.getOptRepGraForces(t,l,c,r):l=this.getRepGraForces(t,i,s,l,o,f,r),this.updatePos(t,l,u,a,r)}getAttrForces(t,e,r,i,s,o){const{preventOverlap:a,dissuadeHubs:u,mode:c,prune:f}=o,l=t.getAllEdges();for(let h=0;h<l.length;h+=1){const{source:g,target:p}=l[h],v=t.getNode(g),m=t.getNode(p),d=t.getDegree(g),y=t.getDegree(p);if(f&&(d<=1||y<=1))continue;const w=[m.data.x-v.data.x,m.data.y-v.data.y];let b=Math.hypot(w[0],w[1]);b=b<1e-4?1e-4:b,w[0]=w[0]/b,w[1]=w[1]/b,a&&e<r&&(b=b-i[g]-i[p]);let x=b,M=x;c==="linlog"&&(x=Math.log(1+b),M=x),u&&(x=b/d,M=b/y),a&&e<r&&b<=0?(x=0,M=0):a&&e<r&&b>0&&(x=b,M=b),s[g][0]+=x*w[0],s[p][0]-=M*w[0],s[g][1]+=x*w[1],s[p][1]-=M*w[1]}return s}getOptRepGraForces(t,e,r,i){const{kg:s,center:o,prune:a}=i,u=t.getAllNodes(),c=u.length;let f=9e10,l=-9e10,h=9e10,g=-9e10;for(let y=0;y<c;y+=1){const{id:w,data:b}=u[y];a&&t.getDegree(w)<=1||(r[w].setPos(b.x,b.y),b.x>=l&&(l=b.x),b.x<=f&&(f=b.x),b.y>=g&&(g=b.y),b.y<=h&&(h=b.y))}const p=Math.max(l-f,g-h),v={xmid:(l+f)/2,ymid:(g+h)/2,length:p,massCenter:o,mass:c},m=new St(v),d=new Rt(m);for(let y=0;y<c;y+=1){const{id:w}=u[y];a&&t.getDegree(w)<=1||r[w].in(m)&&d.insert(r[w])}for(let y=0;y<c;y+=1){const{id:w,data:b}=u[y],x=t.getDegree(w);if(a&&x<=1)continue;r[w].resetForce(),d.updateForce(r[w]),e[w][0]-=r[w].fx,e[w][1]-=r[w].fy;const M=[b.x-o[0],b.y-o[1]];let N=Math.hypot(M[0],M[1]);N=N<1e-4?1e-4:N,M[0]=M[0]/N,M[1]=M[1]/N;const E=s*(x+1);e[w][0]-=E*M[0],e[w][1]-=E*M[1]}return e}getRepGraForces(t,e,r,i,s,o,a){const{preventOverlap:u,kr:c,kg:f,center:l,prune:h}=a,g=t.getAllNodes(),p=g.length;for(let v=0;v<p;v+=1){const m=g[v],d=t.getDegree(m.id);for(let x=v+1;x<p;x+=1){const M=g[x],N=t.getDegree(M.id);if(h&&(d<=1||N<=1))continue;const E=[M.data.x-m.data.x,M.data.y-m.data.y];let O=Math.hypot(E[0],E[1]);O=O<1e-4?1e-4:O,E[0]=E[0]/O,E[1]=E[1]/O,u&&e<r&&(O=O-o[m.id]-o[M.id]);let _=c*(d+1)*(N+1)/O;u&&e<r&&O<0?_=s*(d+1)*(N+1):u&&e<r&&O===0?_=0:u&&e<r&&O>0&&(_=c*(d+1)*(N+1)/O),i[m.id][0]-=_*E[0],i[M.id][0]+=_*E[0],i[m.id][1]-=_*E[1],i[M.id][1]+=_*E[1]}const y=[m.data.x-l[0],m.data.y-l[1]],w=Math.hypot(y[0],y[1]);y[0]=y[0]/w,y[1]=y[1]/w;const b=f*(d+1);i[m.id][0]-=b*y[0],i[m.id][1]-=b*y[1]}return i}updatePos(t,e,r,i,s){const{ks:o,tao:a,prune:u,ksmax:c}=s,f=t.getAllNodes(),l=f.length,h=[],g=[];let p=0,v=0,m=i;for(let y=0;y<l;y+=1){const{id:w}=f[y],b=t.getDegree(w);if(u&&b<=1)continue;const x=[e[w][0]-r[w][0],e[w][1]-r[w][1]],M=Math.hypot(x[0],x[1]),N=[e[w][0]+r[w][0],e[w][1]+r[w][1]],E=Math.hypot(N[0],N[1]);h[y]=M,g[y]=E/2,p+=(b+1)*h[y],v+=(b+1)*g[y]}const d=m;m=a*v/p,d!==0&&(m=m>1.5*d?1.5*d:m);for(let y=0;y<l;y+=1){const{id:w,data:b}=f[y],x=t.getDegree(w);if(u&&x<=1||V(b.fx)&&V(b.fy))continue;let M=o*m/(1+m*Math.sqrt(h[y])),N=Math.hypot(e[w][0],e[w][1]);N=N<1e-4?1e-4:N;const E=c/N;M=M>E?E:M;const O=M*e[w][0],_=M*e[w][1];t.mergeNodeData(w,{x:b.x+O,y:b.y+_})}return m}}const OS={maxIteration:1e3,gravity:10,speed:5,clustering:!1,clusterGravity:10,width:300,height:300,nodeClusterBy:"cluster"},AS=800;class IS{constructor(t={}){this.options=t,this.id="fruchterman",this.timeInterval=0,this.running=!1,this.options=Object.assign(Object.assign({},OS),t)}execute(t,e){return L(this,void 0,void 0,function*(){return this.genericFruchtermanLayout(!1,t,e)})}assign(t,e){return L(this,void 0,void 0,function*(){yield this.genericFruchtermanLayout(!0,t,e)})}stop(){this.timeInterval&&typeof window<"u"&&window.clearInterval(this.timeInterval),this.running=!1}tick(t=this.options.maxIteration||1){if(this.lastResult)return this.lastResult;for(let r=0;r<t;r++)this.runOneStep(this.lastGraph,this.lastClusterMap,this.lastOptions);const e={nodes:this.lastLayoutNodes,edges:this.lastLayoutEdges};return this.lastAssign&&e.nodes.forEach(r=>this.lastGraph.mergeNodeData(r.id,{x:r.data.x,y:r.data.y,z:this.options.dimensions===3?r.data.z:void 0})),e}genericFruchtermanLayout(t,e,r){return L(this,void 0,void 0,function*(){if(this.running)return;const i=this.formatOptions(r),{dimensions:s,width:o,height:a,center:u,clustering:c,nodeClusterBy:f,maxIteration:l,onTick:h}=i,g=e.getAllNodes(),p=e.getAllEdges();if(!(g!=null&&g.length)){const w={nodes:[],edges:p};return this.lastResult=w,w}if(g.length===1){t&&e.mergeNodeData(g[0].id,{x:u[0],y:u[1],z:s===3?u[2]:void 0});const w={nodes:[Object.assign(Object.assign({},g[0]),{data:Object.assign(Object.assign({},g[0].data),{x:u[0],y:u[1],z:s===3?u[2]:void 0})})],edges:p};return this.lastResult=w,w}const v=g.map(w=>ye(w,[o,a])),m=new ue({nodes:v,edges:p}),d={};if(c&&v.forEach(w=>{const b=w.data[f];d[b]||(d[b]={name:b,cx:0,cy:0,count:0})}),this.lastLayoutNodes=v,this.lastLayoutEdges=p,this.lastAssign=t,this.lastGraph=m,this.lastOptions=i,this.lastClusterMap=d,typeof window>"u")return;let y=0;return new Promise(w=>{this.timeInterval=window.setInterval(()=>{if(!this.running){w({nodes:v,edges:p});return}this.runOneStep(m,d,i),t&&v.forEach(({id:b,data:x})=>e.mergeNodeData(b,{x:x.x,y:x.y,z:s===3?x.z:void 0})),h==null||h({nodes:v,edges:p}),y++,y>=l&&(window.clearInterval(this.timeInterval),w({nodes:v,edges:p}))},0),this.running=!0})})}formatOptions(t={}){const e=Object.assign(Object.assign({},this.options),t),{clustering:r,nodeClusterBy:i}=e,{center:s,width:o,height:a}=e;return e.width=!o&&typeof window<"u"?window.innerWidth:o,e.height=!a&&typeof window<"u"?window.innerHeight:a,e.center=s||[e.width/2,e.height/2],e.clustering=r&&!!i,e}runOneStep(t,e,r){const{dimensions:i,height:s,width:o,gravity:a,center:u,speed:c,clustering:f,nodeClusterBy:l,clusterGravity:h}=r,g=s*o,p=Math.sqrt(g)/10,v=t.getAllNodes(),m=g/(v.length+1),d=Math.sqrt(m),y={};if(this.applyCalculate(t,y,d,m),f){for(const b in e)e[b].cx=0,e[b].cy=0,e[b].count=0;v.forEach(b=>{const{data:x}=b,M=e[x[l]];V(x.x)&&(M.cx+=x.x),V(x.y)&&(M.cy+=x.y),M.count++});for(const b in e)e[b].cx/=e[b].count,e[b].cy/=e[b].count;const w=h||a;v.forEach((b,x)=>{const{id:M,data:N}=b;if(!V(N.x)||!V(N.y))return;const E=e[N[l]],O=Math.sqrt((N.x-E.cx)*(N.x-E.cx)+(N.y-E.cy)*(N.y-E.cy)),_=d*w;y[M].x-=_*(N.x-E.cx)/O,y[M].y-=_*(N.y-E.cy)/O})}v.forEach((w,b)=>{const{id:x,data:M}=w;if(!V(M.x)||!V(M.y))return;const N=.01*d*a;y[x].x-=N*(M.x-u[0]),y[x].y-=N*(M.y-u[1]),i===3&&(y[x].z-=N*(M.z-u[2]))}),v.forEach((w,b)=>{const{id:x,data:M}=w;if(V(M.fx)&&V(M.fy)){M.x=M.fx,M.y=M.fy,i===3&&(M.z=M.fz);return}if(!V(M.x)||!V(M.y))return;const N=Math.sqrt(y[x].x*y[x].x+y[x].y*y[x].y+(i===3?y[x].z*y[x].z:0));if(N>0){const E=Math.min(p*(c/AS),N);t.mergeNodeData(x,{x:M.x+y[x].x/N*E,y:M.y+y[x].y/N*E,z:i===3?M.z+y[x].z/N*E:void 0})}})}applyCalculate(t,e,r,i){this.calRepulsive(t,e,i),this.calAttractive(t,e,r)}calRepulsive(t,e,r){const i=t.getAllNodes();i.forEach(({data:s,id:o},a)=>{e[o]={x:0,y:0,z:0},i.forEach(({data:u,id:c},f)=>{if(a<=f||!V(s.x)||!V(u.x)||!V(s.y)||!V(u.y))return;let l=s.x-u.x,h=s.y-u.y,g=this.options.dimensions===3?s.z-u.z:0,p=l*l+h*h+g*g;p===0&&(p=1,l=.01,h=.01,g=.01);const v=r/p,m=l*v,d=h*v,y=g*v;e[o].x+=m,e[o].y+=d,e[c].x-=m,e[c].y-=d,this.options.dimensions===3&&(e[o].z+=y,e[c].z-=y)})})}calAttractive(t,e,r){t.getAllEdges().forEach(s=>{const{source:o,target:a}=s;if(!o||!a||o===a)return;const{data:u}=t.getNode(o),{data:c}=t.getNode(a);if(!V(c.x)||!V(u.x)||!V(c.y)||!V(u.y))return;const f=c.x-u.x,l=c.y-u.y,h=this.options.dimensions===3?c.z-u.z:0,g=Math.sqrt(f*f+l*l+h*h)/r,p=f*g,v=l*g,m=h*g;e[o].x+=p,e[o].y+=v,e[a].x-=p,e[a].y-=v,this.options.dimensions===3&&(e[o].z+=m,e[a].z-=m)})}}const TS={begin:[0,0],preventOverlap:!0,preventOverlapPadding:10,condense:!1,rows:void 0,cols:void 0,position:void 0,sortBy:"degree",nodeSize:30,width:300,height:300};class kS{constructor(t={}){this.options=t,this.id="grid",this.options=Object.assign(Object.assign({},TS),t)}execute(t,e){return L(this,void 0,void 0,function*(){return this.genericGridLayout(!1,t,e)})}assign(t,e){return L(this,void 0,void 0,function*(){yield this.genericGridLayout(!0,t,e)})}genericGridLayout(t,e,r){return L(this,void 0,void 0,function*(){const i=Object.assign(Object.assign({},this.options),r),{begin:s=[0,0],condense:o,preventOverlapPadding:a,preventOverlap:u,rows:c,cols:f,nodeSpacing:l,nodeSize:h,width:g,height:p,position:v}=i;let{sortBy:m}=i;const d=e.getAllNodes(),y=e.getAllEdges(),w=d==null?void 0:d.length;if(!w||w===1)return rt(e,t,s);const b=d.map(I=>ye(I));m!=="id"&&(!kt(m)||b[0].data[m]===void 0)&&(m="degree"),m==="degree"?b.sort((I,k)=>e.getDegree(k.id,"both")-e.getDegree(I.id,"both")):m==="id"?b.sort((I,k)=>V(k.id)&&V(I.id)?k.id-I.id:`${I.id}`.localeCompare(`${k.id}`)):b.sort((I,k)=>k.data[m]-I.data[m]);const x=!g&&typeof window<"u"?window.innerWidth:g,M=!p&&typeof window<"u"?window.innerHeight:p,N=w,E={rows:c,cols:f};if(c!=null&&f!=null)E.rows=c,E.cols=f;else if(c!=null&&f==null)E.rows=c,E.cols=Math.ceil(N/E.rows);else if(c==null&&f!=null)E.cols=f,E.rows=Math.ceil(N/E.cols);else{const I=Math.sqrt(N*M/x);E.rows=Math.round(I),E.cols=Math.round(x/M*I)}if(E.rows=Math.max(E.rows,1),E.cols=Math.max(E.cols,1),E.cols*E.rows>N){const I=Yr(E),k=Kr(E);(I-1)*k>=N?Yr(E,I-1):(k-1)*I>=N&&Kr(E,k-1)}else for(;E.cols*E.rows<N;){const I=Yr(E),k=Kr(E);(k+1)*I>=N?Kr(E,k+1):Yr(E,I+1)}let O=o?0:x/E.cols,_=o?0:M/E.rows;if(u||l){const I=tt(10,l),k=vn(30,h,!1);b.forEach(F=>{(!F.data.x||!F.data.y)&&(F.data.x=0,F.data.y=0);const A=e.getNode(F.id),[C,D]=Ct(k(A)||30),z=I!==void 0?I(F):a,U=C+z,P=D+z;O=Math.max(O,U),_=Math.max(_,P)})}const S={},q={row:0,col:0},R={};for(let I=0;I<b.length;I++){const k=b[I];let F;if(v&&(F=v(e.getNode(k.id))),F&&(F.row!==void 0||F.col!==void 0)){const A={row:F.row,col:F.col};if(A.col===void 0)for(A.col=0;ec(S,A);)A.col++;else if(A.row===void 0)for(A.row=0;ec(S,A);)A.row++;R[k.id]=A,d0(S,A)}jS(k,s,O,_,R,E,q,S)}const T={nodes:b,edges:y};return t&&b.forEach(I=>{e.mergeNodeData(I.id,{x:I.data.x,y:I.data.y})}),T})}}const Yr=(n,t)=>{let e;const r=n.rows||5,i=n.cols||5;return t==null?e=Math.min(r,i):Math.min(r,i)===n.rows?n.rows=t:n.cols=t,e},Kr=(n,t)=>{let e;const r=n.rows||5,i=n.cols||5;return t==null?e=Math.max(r,i):Math.max(r,i)===n.rows?n.rows=t:n.cols=t,e},ec=(n,t)=>n[`c-${t.row}-${t.col}`]||!1,d0=(n,t)=>n[`c-${t.row}-${t.col}`]=!0,g0=(n,t)=>{const e=n.cols||5;t.col++,t.col>=e&&(t.col=0,t.row++)},jS=(n,t,e,r,i,s,o,a)=>{let u,c;const f=i[n.id];if(f)u=f.col*e+e/2+t[0],c=f.row*r+r/2+t[1];else{for(;ec(a,o);)g0(s,o);u=o.col*e+e/2+t[0],c=o.row*r+r/2+t[1],d0(a,o),g0(s,o)}n.data.x=u,n.data.y=c},CS=(n,t,e)=>{try{const r=Ve.mul(Ve.pow(t,2),-.5),i=r.mean("row"),s=r.mean("column"),o=r.mean();r.add(o).subRowVector(i).subColumnVector(s);const a=new _f(r),u=Ve.sqrt(a.diagonalMatrix).diagonal();return a.leftSingularVectors.toJSON().map(c=>Ve.mul([c],[u]).toJSON()[0].splice(0,n))}catch{const i=[];for(let s=0;s<t.length;s++){const o=Math.random()*e,a=Math.random()*e;i.push([o,a])}return i}},PS=800,LS={iterations:10,height:10,width:10,speed:100,gravity:10,k:5},DS=(n,t)=>{const e=Object.assign(Object.assign({},LS),t),{positions:r,iterations:i,width:s,k:o,speed:a=100,strictRadial:u,focusIdx:c,radii:f=[],nodeSizeFunc:l}=e,h=n.getAllNodes(),g=[],p=s/10;for(let v=0;v<i;v++)r.forEach((m,d)=>{g[d]={x:0,y:0}}),zS(h,r,g,o,f,l),$S(r,g,a,u,c,p,s,f);return r},zS=(n,t,e,r,i,s)=>{t.forEach((o,a)=>{e[a]={x:0,y:0},t.forEach((u,c)=>{if(a===c||i[a]!==i[c])return;let f=o.x-u.x,l=o.y-u.y,h=Math.sqrt(f*f+l*l);if(h===0){h=1;const g=a>c?1:-1;f=.01*g,l=.01*g}if(h<s(n[a])/2+s(n[c])/2){const g=r*r/h;e[a].x+=f/h*g,e[a].y+=l/h*g}})})},$S=(n,t,e,r,i,s,o,a)=>{const u=s||o/10;return r&&t.forEach((c,f)=>{const l=n[f].x-n[i].x,h=n[f].y-n[i].y,g=Math.sqrt(l*l+h*h);let p=h/g,v=-l/g;const m=Math.sqrt(c.x*c.x+c.y*c.y);let d=Math.acos((p*c.x+v*c.y)/m);d>Math.PI/2&&(d-=Math.PI/2,p*=-1,v*=-1);const y=Math.cos(d)*m;c.x=p*y,c.y=v*y}),n.forEach((c,f)=>{if(f===i)return;const l=Math.sqrt(t[f].x*t[f].x+t[f].y*t[f].y);if(l>0&&f!==i){const h=Math.min(u*(e/PS),l);if(c.x+=t[f].x/l*h,c.y+=t[f].y/l*h,r){let g=c.x-n[i].x,p=c.y-n[i].y;const v=Math.sqrt(g*g+p*p);g=g/v*a[f],p=p/v*a[f],c.x=n[i].x+g,c.y=n[i].y+p}}}),n},FS={maxIteration:1e3,focusNode:null,unitRadius:null,linkDistance:50,preventOverlap:!1,strictRadial:!0,maxPreventOverlapIteration:200,sortStrength:10};class BS{constructor(t={}){this.options=t,this.id="radial",this.options=Object.assign(Object.assign({},FS),t)}execute(t,e){return L(this,void 0,void 0,function*(){return this.genericRadialLayout(!1,t,e)})}assign(t,e){return L(this,void 0,void 0,function*(){yield this.genericRadialLayout(!0,t,e)})}genericRadialLayout(t,e,r){return L(this,void 0,void 0,function*(){const i=Object.assign(Object.assign({},this.options),r),{width:s,height:o,center:a,focusNode:u,unitRadius:c,nodeSize:f,nodeSpacing:l,strictRadial:h,preventOverlap:g,maxPreventOverlapIteration:p,sortBy:v,linkDistance:m=50,sortStrength:d=10,maxIteration:y=1e3}=i,w=e.getAllNodes(),b=e.getAllEdges(),x=!s&&typeof window<"u"?window.innerWidth:s,M=!o&&typeof window<"u"?window.innerHeight:o,N=a||[x/2,M/2];if(!(w!=null&&w.length)||w.length===1)return rt(e,t,N);let E=w[0];if(kt(u)){for(let G=0;G<w.length;G++)if(w[G].id===u){E=w[G];break}}else E=u||w[0];const O=VS(w,E.id),_=Jc({nodes:w,edges:b}),S=Zc(_),q=YS(S,O);WS(S,O,q+1);const R=S[O];let T=x-N[0]>N[0]?N[0]:x-N[0],I=M-N[1]>N[1]?N[1]:M-N[1];T===0&&(T=x/2),I===0&&(I=M/2);const k=Math.min(T,I),F=Math.max(...R),A=[],C=c||k/F;R.forEach((G,le)=>{A[le]=G*C});const D=US(w,S,m,A,C,v,d),z=GS(D),U=CS(m,D,m);let P=U.map(([G,le])=>({x:(isNaN(G)?Math.random()*m:G)-U[O][0],y:(isNaN(le)?Math.random()*m:le)-U[O][1]}));this.run(y,P,z,D,A,O);let $;if(g){$=mn(f,l);const G={nodes:w,nodeSizeFunc:$,positions:P,radii:A,height:M,width:x,strictRadial:!!h,focusIdx:O,iterations:p||200,k:P.length/4.5};P=DS(e,G)}const B=[];return P.forEach((G,le)=>{const _e=ye(w[le]);_e.data.x=G.x+N[0],_e.data.y=G.y+N[1],B.push(_e)}),t&&B.forEach(G=>e.mergeNodeData(G.id,{x:G.data.x,y:G.data.y})),{nodes:B,edges:b}})}run(t,e,r,i,s,o){for(let a=0;a<=t;a++){const u=a/t;this.oneIteration(u,e,s,i,r,o)}}oneIteration(t,e,r,i,s,o){const a=1-t;e.forEach((u,c)=>{const f=Qc(u,{x:0,y:0}),l=f===0?0:1/f;if(c===o)return;let h=0,g=0,p=0;e.forEach((m,d)=>{if(c===d)return;const y=Qc(u,m),w=y===0?0:1/y,b=i[d][c];p+=s[c][d],h+=s[c][d]*(m.x+b*(u.x-m.x)*w),g+=s[c][d]*(m.y+b*(u.y-m.y)*w)});const v=r[c]===0?0:1/r[c];p*=a,p+=t*v*v,h*=a,h+=t*v*u.x*l,u.x=h/p,g*=a,g+=t*v*u.y*l,u.y=g/p})}}const US=(n,t,e,r,i,s,o)=>{if(!n)return[];const a=[];if(t){const u={};t.forEach((c,f)=>{const l=[];c.forEach((h,g)=>{var p,v;if(f===g)l.push(0);else if(r[f]===r[g])if(s==="data")l.push(h*(Math.abs(f-g)*o)/(r[f]/i));else if(s){let m,d;if(u[n[f].id])m=u[n[f].id];else{const y=(s==="id"?n[f].id:(p=n[f].data)===null||p===void 0?void 0:p[s])||0;kt(y)?m=y.charCodeAt(0):m=y,u[n[f].id]=m}if(u[n[g].id])d=u[n[g].id];else{const y=(s==="id"?n[g].id:(v=n[g].data)===null||v===void 0?void 0:v[s])||0;kt(y)?d=y.charCodeAt(0):d=y,u[n[g].id]=d}l.push(h*(Math.abs(m-d)*o)/(r[f]/i))}else l.push(h*e/(r[f]/i));else{const m=(e+i)/2;l.push(h*m)}}),a.push(l)})}return a},GS=n=>{const t=n.length,e=n[0].length,r=[];for(let i=0;i<t;i++){const s=[];for(let o=0;o<e;o++)n[i][o]!==0?s.push(1/(n[i][o]*n[i][o])):s.push(0);r.push(s)}return r},VS=(n,t)=>{let e=-1;return n.forEach((r,i)=>{r.id===t&&(e=i)}),Math.max(e,0)},WS=(n,t,e)=>{const r=n.length;for(let i=0;i<r;i++)if(n[t][i]===1/0){n[t][i]=e,n[i][t]=e;for(let s=0;s<r;s++)n[i][s]!==1/0&&n[t][s]===1/0&&(n[t][s]=e+n[i][s],n[s][t]=e+n[i][s])}for(let i=0;i<r;i++)if(i!==t){for(let s=0;s<r;s++)if(n[i][s]===1/0){let o=Math.abs(n[t][i]-n[t][s]);o=o===0?1:o,n[i][s]=o}}},YS=(n,t)=>{let e=0;for(let r=0;r<n[t].length;r++)n[t][r]!==1/0&&(e=n[t][r]>e?n[t][r]:e);return e},KS={center:[0,0],width:300,height:300};class XS{constructor(t={}){this.options=t,this.id="random",this.options=Object.assign(Object.assign({},KS),t)}execute(t,e){return L(this,void 0,void 0,function*(){return this.genericRandomLayout(!1,t,e)})}assign(t,e){return L(this,void 0,void 0,function*(){yield this.genericRandomLayout(!0,t,e)})}genericRandomLayout(t,e,r){return L(this,void 0,void 0,function*(){const i=Object.assign(Object.assign({},this.options),r),{center:s,width:o,height:a}=i,u=e.getAllNodes(),c=.9,f=!o&&typeof window<"u"?window.innerWidth:o,l=!a&&typeof window<"u"?window.innerHeight:a,h=s||[f/2,l/2],g=[];return u&&u.forEach(v=>{g.push({id:v.id,data:{x:(Math.random()-.5)*c*f+h[0],y:(Math.random()-.5)*c*l+h[1]}})}),t&&g.forEach(v=>e.mergeNodeData(v.id,{x:v.data.x,y:v.data.y})),{nodes:g,edges:e.getAllEdges()}})}}const ZS={circular:Dy,concentric:yn,mds:Ef,random:XS,grid:kS,radial:BS,force:sf,d3force:Tf,"d3-force-3d":Db,fruchterman:IS,forceAtlas2:qS,dagre:Wr,antvDagre:Cy,comboCombined:j1};let Ue;rn({stopLayout(){Ue!=null&&Ue.stop&&Ue.stop()},calculateLayout(n,t){return L(this,void 0,void 0,function*(){const{layout:{id:e,options:r,iterations:i},nodes:s,edges:o}=n,a=new ue({nodes:s,edges:o}),u=ZS[e];if(u)Ue=new u(r);else throw new Error(`Unknown layout id: ${e}`);let c=yield Ue.execute(a);return xf(Ue)&&(Ue.stop(),c=Ue.tick(i)),[c,t]})}})})();