1717 lines
No EOL
235 KiB
HTML
1717 lines
No EOL
235 KiB
HTML
<!DOCTYPE html>
|
||
<html lang="en">
|
||
|
||
<head>
|
||
<meta charset="utf-8">
|
||
<meta name="generator" content="Cosma v2.4.1">
|
||
|
||
<meta name="title" content="rhizom2o24">
|
||
|
||
<meta name="author" content="lukasrosier">
|
||
|
||
<meta name="description" content="obvious">
|
||
|
||
<meta name="keywords" content="">
|
||
|
||
<meta name="date" content="November 4, 2024 at 10:09:38 PM">
|
||
<title>Cosma — rhizom2o24</title>
|
||
|
||
<link rel="icon" type="image/png" sizes="16x16" href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAIGaVRYdFhNTDpjb20uYWRvYmUueG1wAAAAAAA8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJYTVAgQ29yZSA2LjAuMCI+CiAgIDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+CiAgICAgIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICAgICAgICAgIHhtbG5zOnRpZmY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vdGlmZi8xLjAvIgogICAgICAgICAgICB4bWxuczpleGlmPSJodHRwOi8vbnMuYWRvYmUuY29tL2V4aWYvMS4wLyI+CiAgICAgICAgIDx0aWZmOk9yaWVudGF0aW9uPjE8L3RpZmY6T3JpZW50YXRpb24+CiAgICAgICAgIDxleGlmOlBpeGVsWERpbWVuc2lvbj4xMDI0PC9leGlmOlBpeGVsWERpbWVuc2lvbj4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjEwMjQ8L2V4aWY6UGl4ZWxZRGltZW5zaW9uPgogICAgICA8L3JkZjpEZXNjcmlwdGlvbj4KICAgPC9yZGY6UkRGPgo8L3g6eG1wbWV0YT4KokyVsAAAAAlwSFlzAAALEwAACxMBAJqcGAAAATtQTFRFR3BMDVJzDFx+GHSUAP//DVByCVd3AAAAAAD/AIKBCXKSBFJ0F1x/GFZ2EGCANmF8D2+QGHaXFG6NAFh8EnaXG3aWLHCOE2iIH3mZAEx4AFV6AG2QAXOUOn+dprG8AHGSGmuLGWmJfZqtUoahprrGD1V4CVV4FHeWFnWWLmeIAFp8FWaGAFh7LmeGF2OGUHWNfZapAF+HUHSNfZaoAF6H/////Pz87O7x4uLio6Oj3t7eFWaJE16DGGCEIWuOAFqAGoCiADxyAFyHRG+MHoGjAGeQE3GUEG6S1tvhAH2iRX+cAG2Y5OjrAGWMiqCxoa+7iqGyobXBB2KGCF6DCGGFCl2DE4CiEX2gGXqdEX2fFX+iJHmcGXqcInmbAEx3aIWa193jAE12Z4Sa5ensZ5CmaZCn1t3j5Ons3t7fp3RRZgAAADV0Uk5TAHRwQQFHRAEBAkJ4+3h0eHBudPpy+3V1cvv7+vpy+/v7+/v7+52dmZl1+nX6dXX7+/v7+/siYXfnAAAA2ElEQVQYGQXBy07CUBRA0X1OD9zCQAloS4Nj40ii/gG/7UdoSYwxjowCgo9EQxrpfdS1wA0AAGDgEHcgO8qshw/xN+IscnG9tp6SfCjqp2hheHXrMhO6EB8Wr43Rz/qX2fSe+TbW0m8MlepMdvBVxCJTDHv/vkNulqs3fnaGIpJmqnWnOksiKKVIAoAkcoLR+fEGMWK3OfYJ5SWsJ2XlfVVOtmGFso+tP53AaOzbuMewqt4+Tj9pP0aH0lrJ/87nG1Elpa5cPufiDvTCUJWUGvM4cDkAAOSOf+M3WO+ZgJOzAAAAAElFTkSuQmCC" />
|
||
|
||
<style>
|
||
:root {
|
||
|
||
--n_undefined: yellow;
|
||
|
||
--n_software: powderblue;
|
||
|
||
--n_concept: pink;
|
||
|
||
--n_organisation: gold;
|
||
|
||
--n_character: cornsilk;
|
||
|
||
--n_tool: papayawhip;
|
||
|
||
--n_project: aquamarine;
|
||
|
||
|
||
--l_undefined: #C0C0C0;
|
||
|
||
--highlight: red;
|
||
}
|
||
@charset "UTF-8";
|
||
|
||
/** Global
|
||
------------------------------------------------------------*/
|
||
|
||
:root {
|
||
/* colors */
|
||
--cosma-blue: #147899;
|
||
--cosma-blue-dark: #02385c;
|
||
--border-color: #d8d8d8;
|
||
--border-light-color: #f3f3f3;
|
||
--indicator-background-color: #fafafa;
|
||
--lateral-background-color: white;
|
||
/* typography */
|
||
--sans: system-ui, -apple-system, 'San Francisco', 'Helvetica Neue', 'Segoe UI', 'Arial',
|
||
sans-serif;
|
||
--serif: 'Georgia', 'Garamond', 'Time New Roman', 'Times', serif;
|
||
--mono: 'Consolas', 'Courrier New', 'Courrier', monospace;
|
||
--condensed: 'Avenir Next Condensed', 'Arial Condensed', sans-serif;
|
||
/* global size */
|
||
font-size: 62.5%;
|
||
/* others */
|
||
--shadow: 0 1px 3px rgba(3, 2, 2, 0.12), 0 1px 2px rgba(0, 0, 0, 0.24);
|
||
--offblack: rgb(51, 51, 51);
|
||
--offwhite: rgb(253, 252, 251);
|
||
--gray: #d6d6d6;
|
||
--background-gray: rgb(246, 246, 246);
|
||
}
|
||
|
||
* {
|
||
box-sizing: border-box;
|
||
}
|
||
|
||
/** Page
|
||
------------------------------------------------------------*/
|
||
|
||
body {
|
||
display: flex;
|
||
overflow: hidden;
|
||
width: 100%;
|
||
margin: 0;
|
||
padding: 0;
|
||
font-family: var(--sans);
|
||
font-size: 1.4rem;
|
||
}
|
||
|
||
/* ---
|
||
- Containers
|
||
--- */
|
||
|
||
article {
|
||
padding: 0.8rem 0;
|
||
}
|
||
|
||
article + article:not(.record) {
|
||
border-top: 1px solid var(--border-light-color);
|
||
}
|
||
|
||
/** Elements
|
||
------------------------------------------------------------*/
|
||
|
||
a {
|
||
text-decoration: none;
|
||
}
|
||
|
||
/* ---
|
||
- Buttons
|
||
--- */
|
||
|
||
button {
|
||
cursor: pointer;
|
||
margin: 0.5rem 0.2rem;
|
||
font-size: 1.3rem;
|
||
}
|
||
|
||
.btn {
|
||
background-color: white;
|
||
border: 1px solid var(--border-color);
|
||
border-radius: 2px;
|
||
}
|
||
|
||
.btn.active,
|
||
.btn[data-active='true'] {
|
||
border: 1px solid black;
|
||
}
|
||
|
||
[onclick] {
|
||
cursor: pointer;
|
||
}
|
||
|
||
/* ---
|
||
- Inputs
|
||
--- */
|
||
|
||
.outline {
|
||
outline: var(--cosma-blue) solid 1px;
|
||
}
|
||
|
||
label {
|
||
cursor: pointer;
|
||
}
|
||
|
||
input {
|
||
font-size: 1.3rem;
|
||
}
|
||
|
||
input[type='checkbox'] {
|
||
cursor: pointer;
|
||
width: 1.2rem;
|
||
height: 1.2rem;
|
||
margin: 0 0.8rem 0 0;
|
||
}
|
||
|
||
input[type='range'] {
|
||
cursor: pointer;
|
||
width: 100%;
|
||
margin-top: 0.3rem;
|
||
}
|
||
|
||
/* ---
|
||
- Lists
|
||
--- */
|
||
|
||
details {
|
||
padding: 0.5rem 0 1rem 0;
|
||
}
|
||
|
||
details[data-sort] .sort-box:not(.active) {
|
||
display: none;
|
||
}
|
||
|
||
details > summary {
|
||
cursor: pointer;
|
||
text-transform: uppercase;
|
||
font-size: 1.3rem;
|
||
margin: 1rem 0 0.5rem 0;
|
||
font-weight: bold;
|
||
outline: none;
|
||
}
|
||
|
||
summary + button {
|
||
margin: 1rem 0;
|
||
}
|
||
|
||
.list-content-container ul {
|
||
list-style: none;
|
||
margin: 0;
|
||
padding: 0;
|
||
}
|
||
|
||
.list-content-container ul li {
|
||
padding: 0.3rem 0 0.3rem 1rem;
|
||
}
|
||
|
||
.list-content-container .menu-controls-list {
|
||
margin-top: 1.3rem;
|
||
}
|
||
|
||
.list-content-container ul li span:last-of-type:not(.badge) {
|
||
line-height: 1.5;
|
||
}
|
||
|
||
.record-type-points {
|
||
/* colored dot before links */
|
||
font-size: 0.8em;
|
||
padding-right: 0.8em;
|
||
}
|
||
|
||
.menu-controls-container p:first-child {
|
||
font-weight: bold;
|
||
}
|
||
|
||
.menu-types-container {
|
||
display: flex;
|
||
flex-direction: column;
|
||
}
|
||
|
||
.filter {
|
||
margin: 0.1em 0;
|
||
}
|
||
|
||
.menu-tags-container {
|
||
display: flex;
|
||
flex-wrap: wrap;
|
||
margin-top: 1em;
|
||
}
|
||
|
||
.menu-tags-container label {
|
||
display: flex;
|
||
align-items: center;
|
||
margin: 0.15em 0.15em 0.15em 0;
|
||
}
|
||
|
||
.menu-tags-container .label {
|
||
margin: 0 0.2em;
|
||
}
|
||
|
||
.menu-tags-container .badge {
|
||
margin: 0.15em 0.15em 0.15em 0;
|
||
}
|
||
|
||
.menu-tags-container input[type='checkbox'] {
|
||
margin: 0.2em;
|
||
}
|
||
|
||
.menu-index-list {
|
||
display: flex;
|
||
flex-direction: column;
|
||
}
|
||
|
||
.menu-index-list.reverse {
|
||
flex-direction: column-reverse;
|
||
}
|
||
|
||
/* ---
|
||
- Texts
|
||
--- */
|
||
|
||
a {
|
||
color: inherit;
|
||
}
|
||
|
||
code {
|
||
font-family: var(--mono);
|
||
}
|
||
|
||
/* ---
|
||
- Tips
|
||
--- */
|
||
|
||
.badge {
|
||
display: inline-block;
|
||
background-color: var(--indicator-background-color);
|
||
border: 1px solid var(--gray);
|
||
border-radius: 1px;
|
||
padding: 0 0.3rem;
|
||
font-size: 1rem;
|
||
margin-left: 0.2rem;
|
||
text-align: center;
|
||
line-height: 1.5rem;
|
||
white-space: nowrap;
|
||
font-family: var(--mono);
|
||
color: black;
|
||
}
|
||
|
||
.tooltip {
|
||
cursor: pointer;
|
||
position: relative;
|
||
display: inline-block;
|
||
background-color: var(--cosma-blue);
|
||
border-radius: 50%;
|
||
color: white;
|
||
width: 16px;
|
||
text-align: center;
|
||
height: 16px;
|
||
font-weight: normal;
|
||
}
|
||
|
||
.tooltip .tooltiptext {
|
||
visibility: hidden;
|
||
width: 120px;
|
||
line-height: 130%;
|
||
background-color: var(--cosma-blue-dark);
|
||
box-shadow: var(--shadow);
|
||
text-align: center;
|
||
padding: 5px;
|
||
border-radius: 2px;
|
||
position: absolute;
|
||
z-index: 1;
|
||
width: 160px;
|
||
bottom: 130%;
|
||
left: 50%;
|
||
margin-left: -80px;
|
||
}
|
||
|
||
.tooltip:hover .tooltiptext {
|
||
visibility: visible;
|
||
}
|
||
|
||
/** Menu (left side board)
|
||
------------------------------------------------------------*/
|
||
|
||
aside.menu {
|
||
box-shadow: var(--shadow);
|
||
z-index: 100;
|
||
overflow: auto;
|
||
height: 100vh;
|
||
flex: 0 0 30rem;
|
||
margin: 0;
|
||
padding: 0 20px 50px 20px;
|
||
background-color: var(--background-gray);
|
||
color: var(--offblack);
|
||
}
|
||
|
||
aside.menu:not(.active) {
|
||
display: none;
|
||
}
|
||
|
||
/* ---
|
||
- User title
|
||
--- */
|
||
|
||
.title {
|
||
text-transform: uppercase;
|
||
font-size: 1.8rem;
|
||
color: var(--cosma-blue-dark);
|
||
text-align: center;
|
||
}
|
||
|
||
/* ---
|
||
- Toolbar
|
||
--- */
|
||
|
||
#menu-electron {
|
||
display: flex;
|
||
flex-direction: row;
|
||
justify-content: space-evenly;
|
||
align-items: center;
|
||
margin-top: 1.5rem;
|
||
}
|
||
|
||
#menu-electron button {
|
||
padding: 0;
|
||
margin: 0;
|
||
background-color: transparent;
|
||
border: none;
|
||
}
|
||
|
||
#menu-electron button + button {
|
||
margin-left: 7px;
|
||
}
|
||
|
||
#menu-electron button svg {
|
||
height: 25px;
|
||
width: auto;
|
||
}
|
||
|
||
#menu-electron button.icon-chevron svg {
|
||
height: 18px;
|
||
}
|
||
|
||
/* ---
|
||
- Spatialization load bar
|
||
--- */
|
||
|
||
.load-bar {
|
||
height: 0.3em;
|
||
padding: 0.1rem;
|
||
display: flex;
|
||
margin: 1rem 0;
|
||
background-color: var(--indicator-background-color);
|
||
}
|
||
|
||
.load-bar #load-bar-value {
|
||
background-color: var(--cosma-blue);
|
||
flex-basis: 100%;
|
||
}
|
||
|
||
/* ---
|
||
- Search input & list
|
||
--- */
|
||
|
||
.search-bar {
|
||
width: 100%;
|
||
margin: 0.8rem 0;
|
||
}
|
||
|
||
#search-result-list {
|
||
margin-bottom: 0.8rem;
|
||
}
|
||
|
||
#search-result-list li {
|
||
cursor: pointer;
|
||
}
|
||
|
||
/* ---
|
||
- Controls from graph params
|
||
--- */
|
||
|
||
.menu-controls input[type='number'] {
|
||
width: 7rem;
|
||
margin-left: 1rem;
|
||
}
|
||
|
||
.menu-controls-title {
|
||
font-weight: bold;
|
||
}
|
||
|
||
/* ---
|
||
- Footer
|
||
--- */
|
||
|
||
aside.menu footer {
|
||
display: flex;
|
||
justify-content: space-evenly;
|
||
position: fixed;
|
||
bottom: 0px;
|
||
left: 0px;
|
||
width: 30rem;
|
||
margin-top: 1.8rem;
|
||
background-color: inherit;
|
||
padding: 0.8rem 0 0.8rem 0.8rem;
|
||
text-transform: uppercase;
|
||
border-top: solid 1px var(--border-color);
|
||
font-size: 1.1rem;
|
||
text-align: center;
|
||
}
|
||
|
||
aside.menu footer span:not(:first-of-type)::before {
|
||
content: '—';
|
||
}
|
||
|
||
/** Record container (right side board)
|
||
------------------------------------------------------------*/
|
||
|
||
main.record-container {
|
||
z-index: 100;
|
||
top: 0;
|
||
right: 0;
|
||
padding: 1rem 2rem;
|
||
flex: 0 0 50rem;
|
||
height: 100vh;
|
||
overflow: auto;
|
||
background-color: var(--offwhite);
|
||
color: var(--offblack);
|
||
box-shadow: var(--shadow);
|
||
}
|
||
|
||
main.record-container:not(.active) {
|
||
display: none;
|
||
}
|
||
|
||
.empty-record {
|
||
margin-top: 4rem;
|
||
}
|
||
|
||
.empty-record p {
|
||
font-size: 1.8rem;
|
||
}
|
||
|
||
.record:not(.active) {
|
||
display: none;
|
||
}
|
||
|
||
/* ---
|
||
- Record header
|
||
--- */
|
||
|
||
.record header {
|
||
padding-bottom: 1.5rem;
|
||
margin-bottom: 3rem;
|
||
border-bottom: 1px solid var(--gray);
|
||
}
|
||
|
||
.record header div + div,
|
||
.record-focus-container {
|
||
margin-top: 0.8rem;
|
||
}
|
||
|
||
.record header div span:first-of-type,
|
||
.record-focus-container > span {
|
||
font-size: 1.3rem;
|
||
font-weight: bold;
|
||
text-transform: uppercase;
|
||
margin-right: 0.8rem;
|
||
}
|
||
|
||
.record-last-edit {
|
||
display: none;
|
||
}
|
||
|
||
.record-focus-lever {
|
||
display: none;
|
||
}
|
||
|
||
.record-focus-lever input {
|
||
width: 80%;
|
||
}
|
||
|
||
/* ---
|
||
- Record content
|
||
--- */
|
||
|
||
.record-content a {
|
||
text-decoration: underline;
|
||
}
|
||
|
||
.record img {
|
||
height: auto;
|
||
max-width: 100%;
|
||
}
|
||
|
||
.record header img {
|
||
height: auto;
|
||
max-width: 100%;
|
||
margin: 1rem 0;
|
||
}
|
||
|
||
/* From Typesafe.css, by Bradley Taunt */
|
||
|
||
.record main {
|
||
font-size: 1.6rem;
|
||
line-height: 1.5;
|
||
font-family: var(--serif);
|
||
}
|
||
|
||
.record main h1,
|
||
h2,
|
||
h3,
|
||
h4,
|
||
h5,
|
||
h6 {
|
||
font-family: var(--sans);
|
||
margin: 3rem 0 0 0;
|
||
}
|
||
|
||
.record main h1 {
|
||
font-size: 1.8rem;
|
||
}
|
||
|
||
.record main h2 {
|
||
font-size: 1.6rem;
|
||
}
|
||
|
||
.record main h3 {
|
||
font-size: 1.4rem;
|
||
}
|
||
|
||
.record main a {
|
||
word-wrap: break-word;
|
||
}
|
||
|
||
.record main a.record-link {
|
||
color: #337ab7;
|
||
}
|
||
|
||
a.record-link.highlight {
|
||
font-style: normal;
|
||
background-color: rgba(255, 255, 182, 1);
|
||
}
|
||
|
||
.record main ul,
|
||
.record main ol {
|
||
padding-left: 2rem;
|
||
}
|
||
|
||
.record main ul li,
|
||
.record ol li {
|
||
margin: 0.5rem 0 0 0;
|
||
}
|
||
|
||
.record main pre {
|
||
overflow: auto;
|
||
font-size: 90%;
|
||
}
|
||
|
||
.record main blockquote {
|
||
border-left: 5px solid var(--border-color);
|
||
margin: 0;
|
||
padding-left: 1rem;
|
||
}
|
||
|
||
.record main table {
|
||
border-collapse: collapse;
|
||
margin: 2rem 0;
|
||
text-align: left;
|
||
width: 100%;
|
||
}
|
||
|
||
.record main tr {
|
||
border-bottom: 1px solid var(--border-color);
|
||
}
|
||
|
||
.record main th,
|
||
.record main td {
|
||
padding: 0.5rem;
|
||
}
|
||
|
||
.record main hr {
|
||
background: var(--border-color);
|
||
border: 0;
|
||
height: 1px;
|
||
margin: 2rem 0;
|
||
}
|
||
|
||
/* ---
|
||
- Record bibliography
|
||
--- */
|
||
|
||
.record .bibliography div + div {
|
||
margin-top: 1rem;
|
||
}
|
||
|
||
.record div.csl-entry {
|
||
width: inherit;
|
||
text-indent: -2rem;
|
||
padding-left: 2rem;
|
||
margin: 0.75rem 0 0 0;
|
||
line-height: 1.3;
|
||
overflow-wrap: break-word;
|
||
word-wrap: break-word;
|
||
-ms-word-break: break-all;
|
||
word-break: break-word;
|
||
}
|
||
|
||
/* ---
|
||
- Record footer
|
||
--- */
|
||
|
||
.record footer {
|
||
margin-top: 3rem;
|
||
border-top: 1px solid var(--gray);
|
||
}
|
||
|
||
.record footer li {
|
||
/* links & backlinks */
|
||
position: relative;
|
||
}
|
||
|
||
.record footer li .record-links-context {
|
||
background: white;
|
||
padding: 0.8rem;
|
||
border-radius: 2px;
|
||
margin-top: 0.8rem;
|
||
bottom: calc(100% + 10px);
|
||
box-shadow: var(--shadow);
|
||
text-indent: 0;
|
||
}
|
||
|
||
.record footer li .record-links-context.hover {
|
||
position: absolute;
|
||
display: none;
|
||
}
|
||
|
||
.record footer li:hover .record-links-context.hover {
|
||
display: block;
|
||
}
|
||
|
||
.record footer li .record-links-context li::before {
|
||
content: '-';
|
||
position: relative;
|
||
left: -5px;
|
||
}
|
||
|
||
.record footer li .record-links-context p,
|
||
.record footer li .record-links-context blockquote {
|
||
margin: 0px;
|
||
}
|
||
|
||
.record footer li .record-links-context p + p {
|
||
margin-top: 0.8rem;
|
||
}
|
||
|
||
/** Graph
|
||
------------------------------------------------------------*/
|
||
|
||
.graph-wrapper {
|
||
top: 0;
|
||
right: 0;
|
||
height: 100vh;
|
||
flex: 1;
|
||
}
|
||
|
||
#graph-canvas {
|
||
cursor: move;
|
||
width: 100%;
|
||
height: 100%;
|
||
}
|
||
|
||
/* ---
|
||
- Graph elements
|
||
--- */
|
||
|
||
/* nodes */
|
||
circle,
|
||
text {
|
||
cursor: pointer;
|
||
}
|
||
|
||
g.focus circle {
|
||
stroke: var(--highlight);
|
||
}
|
||
|
||
/* labels */
|
||
text {
|
||
font-family: var(--condensed);
|
||
fill: gray;
|
||
}
|
||
|
||
/* arrows */
|
||
marker {
|
||
/* set into config.yml file by 'undefined' link type */
|
||
stroke: var(--l_undefined);
|
||
fill: var(--l_undefined);
|
||
}
|
||
|
||
/* ---
|
||
- Buttons
|
||
--- */
|
||
|
||
.graph-controls-section + .graph-controls-section {
|
||
margin-top: 10px;
|
||
}
|
||
|
||
.graph-control-label {
|
||
margin-bottom: 5px;
|
||
}
|
||
|
||
.graph-controls {
|
||
position: fixed;
|
||
left: 34rem;
|
||
display: flex;
|
||
align-items: flex-start;
|
||
flex-direction: column;
|
||
bottom: 55px;
|
||
}
|
||
|
||
.graph-controls.move {
|
||
left: 4rem;
|
||
}
|
||
|
||
.graph-timeline {
|
||
position: absolute;
|
||
display: flex;
|
||
align-items: flex-start;
|
||
flex-direction: column;
|
||
}
|
||
|
||
.graph-controls div {
|
||
position: relative;
|
||
}
|
||
|
||
.graph-controls div.graph-controls-zoom {
|
||
display: flex;
|
||
justify-content: space-between;
|
||
position: relative;
|
||
}
|
||
|
||
.graph-controls-focus {
|
||
display: flex;
|
||
justify-content: flex-start;
|
||
flex-flow: row wrap;
|
||
}
|
||
|
||
.graph-controls-focus input[type='range']:not(.active) {
|
||
display: none;
|
||
}
|
||
|
||
.graph-controls #reset-isolate {
|
||
display: none;
|
||
}
|
||
|
||
.graph-controls #reset-highlight {
|
||
display: none;
|
||
}
|
||
|
||
#timeline-form {
|
||
width: calc(100vw - 850px);
|
||
backdrop-filter: blur(7px);
|
||
}
|
||
|
||
#timeline-form:not(.active) {
|
||
display: none;
|
||
}
|
||
|
||
#timeline-form input[type='range'] {
|
||
width: 100%;
|
||
}
|
||
|
||
#timeline-range output[name='timeline_output'] {
|
||
color: gray;
|
||
position: relative;
|
||
text-align: center;
|
||
}
|
||
|
||
#chonos-list {
|
||
display: flex;
|
||
color: gray;
|
||
justify-content: space-between;
|
||
}
|
||
|
||
/* thanks to https://stackoverflow.com/a/62983699/13491646 */
|
||
|
||
input[type='range'] + datalist {
|
||
display: block;
|
||
margin-top: -4px;
|
||
}
|
||
|
||
input[type='range'] + datalist option {
|
||
cursor: pointer;
|
||
display: inline-block;
|
||
width: calc((100% - 12px) / (var(--list-length) - 1));
|
||
text-align: center;
|
||
font-size: 11px;
|
||
color: gray;
|
||
}
|
||
|
||
input[type='range'] + datalist option:first-child {
|
||
width: calc((100% - 12px) / ((var(--list-length) - 1) * 2) + 6px);
|
||
text-align: left;
|
||
}
|
||
|
||
input[type='range'] + datalist option:last-child {
|
||
width: calc((100% - 12px) / ((var(--list-length) - 1) * 2) + 6px);
|
||
text-align: right;
|
||
}
|
||
|
||
/** Credits
|
||
------------------------------------------------------------*/
|
||
|
||
article#credits {
|
||
text-align: center;
|
||
}
|
||
|
||
article#credits ul {
|
||
list-style-type: none;
|
||
margin: 0;
|
||
padding: 0;
|
||
}
|
||
|
||
article#credits dt {
|
||
font-weight: bold;
|
||
}
|
||
|
||
article#credits dd,
|
||
article#credits li {
|
||
margin: 0;
|
||
padding: 0 0 0.5rem 0;
|
||
}
|
||
|
||
article#credits h1.metas-title {
|
||
font-size: 2rem;
|
||
}
|
||
|
||
/* ---
|
||
- Logo
|
||
--- */
|
||
|
||
.logo {
|
||
cursor: pointer;
|
||
}
|
||
|
||
.logo svg {
|
||
display: block;
|
||
margin: 0 auto;
|
||
max-width: 300px;
|
||
}
|
||
|
||
@keyframes rotate-center {
|
||
0% {
|
||
transform: rotate(0deg);
|
||
}
|
||
|
||
50% {
|
||
transform: rotate(270deg);
|
||
}
|
||
|
||
100% {
|
||
transform: rotate(360deg);
|
||
}
|
||
}
|
||
|
||
#cosma-roll {
|
||
transform-origin: 96px 42px;
|
||
}
|
||
|
||
#cosma-roll.anim {
|
||
animation: 3s cubic-bezier(0.2, -0.2, 0.8, 1) 1 rotate-center;
|
||
}
|
||
|
||
/** Help
|
||
------------------------------------------------------------*/
|
||
|
||
#help td:first-child {
|
||
font-weight: bold;
|
||
text-align: right;
|
||
}
|
||
|
||
#help td {
|
||
vertical-align: top;
|
||
}
|
||
|
||
#help tr {
|
||
border-top: 1px solid var(--border-color);
|
||
border-bottom: 1px solid var(--border-color);
|
||
}
|
||
|
||
/** Bibliography references
|
||
------------------------------------------------------------*/
|
||
|
||
#citation-references button {
|
||
margin-bottom: 2rem;
|
||
}
|
||
|
||
#citation-references code {
|
||
display: block;
|
||
word-wrap: break-word;
|
||
font-size: 1.2rem;
|
||
max-height: 75vh;
|
||
overflow: scroll;
|
||
border-top: 1px solid var(--border-color);
|
||
border-bottom: 1px solid var(--border-color);
|
||
}
|
||
|
||
.close-button {
|
||
position: absolute;
|
||
top: 5px;
|
||
z-index: 200;
|
||
padding: 1px 5px 4px 4px;
|
||
}
|
||
|
||
.close-button.active {
|
||
transform: scaleX(-1);
|
||
}
|
||
|
||
.close-button.right {
|
||
right: 10px;
|
||
text-orientation: upright;
|
||
}
|
||
|
||
.close-button.left {
|
||
left: 10px;
|
||
}
|
||
|
||
@media print {
|
||
/* ---
|
||
- Global
|
||
--- */
|
||
|
||
:root {
|
||
font-size: 52.5%;
|
||
}
|
||
|
||
@page {
|
||
margin: 10mm 20mm;
|
||
}
|
||
|
||
body {
|
||
overflow: unset;
|
||
}
|
||
|
||
/* ---
|
||
- Elements
|
||
--- */
|
||
|
||
p,
|
||
tr,
|
||
li {
|
||
orphans: 3;
|
||
}
|
||
|
||
a[href]:not([onclick]):after {
|
||
content: ' (' attr(href) ')';
|
||
}
|
||
|
||
/* ---
|
||
- Page containers
|
||
--- */
|
||
|
||
aside,
|
||
.graph-wrapper {
|
||
display: none;
|
||
}
|
||
|
||
/* ---
|
||
- Record header
|
||
--- */
|
||
|
||
.record header {
|
||
margin-bottom: 10mm;
|
||
}
|
||
|
||
.record-focus-container,
|
||
.record-btn-close {
|
||
display: none;
|
||
}
|
||
|
||
/* ---
|
||
- Record main
|
||
--- */
|
||
|
||
main.record-container {
|
||
position: unset;
|
||
width: 100%;
|
||
overflow: unset;
|
||
box-shadow: unset;
|
||
}
|
||
|
||
/* ---
|
||
- Record footer
|
||
--- */
|
||
|
||
main.record-container footer {
|
||
break-before: page;
|
||
}
|
||
|
||
main.record-container footer .record-links-context {
|
||
display: block;
|
||
position: unset;
|
||
box-shadow: unset;
|
||
}
|
||
|
||
main.record-container footer li {
|
||
display: block;
|
||
margin-top: 2mm;
|
||
}
|
||
|
||
.id-context {
|
||
font-style: normal;
|
||
text-decoration: underline;
|
||
}
|
||
}
|
||
|
||
|
||
|
||
:root {
|
||
border-color: MediumBlue;
|
||
--cosma-blue-dark: Mediumblue;
|
||
--border-color: deepskyblue;
|
||
--indicator-background-color: ghostwhite;
|
||
}
|
||
|
||
body {
|
||
font-family: var(--mono);
|
||
font-size: 1.4rem;
|
||
}
|
||
|
||
.record main {
|
||
font-family: var(--mono);
|
||
font-size: 1.1rem;
|
||
font-weight: 100;
|
||
color: red;
|
||
background-color: whitesmoke
|
||
}
|
||
.record main a.record-link {
|
||
text-decoration: none;
|
||
font-style: italic;
|
||
color: mediumblue;
|
||
}
|
||
|
||
.record main hr {
|
||
background: mistyrose;
|
||
}
|
||
|
||
.record main a.record-link::before {
|
||
content: '/';
|
||
}
|
||
|
||
.record main h1, h2, h3, h4, h5, h6 {
|
||
font-family: var(--mono);
|
||
}
|
||
|
||
main.record-container {
|
||
color: mediumblue;
|
||
background-image: radial-gradient(circle, SlateGrey 0.5px, snow 0.5px);
|
||
background-size: 8px 8px;
|
||
}
|
||
|
||
details > summary {
|
||
text-transform: lowercase;
|
||
}
|
||
|
||
|
||
details {
|
||
font-size: 1rem;
|
||
background-color: whitesmoke;
|
||
}
|
||
text {
|
||
fill: mediumblue;
|
||
font-weight: 100;
|
||
z-index: 999;
|
||
}
|
||
|
||
|
||
|
||
aside.menu {
|
||
background-image: radial-gradient(circle, slategrey 0.5px, snow 0.5px);
|
||
color: MediumBlue;
|
||
background-size: 8px 8px;
|
||
flex: 0 0 20rem;
|
||
}
|
||
|
||
aside.menu footer {
|
||
width:20rem;
|
||
}
|
||
|
||
button {
|
||
background-color: ghostwhite;
|
||
font-family: var(--mono);
|
||
}
|
||
|
||
.title {
|
||
text-transform: lowercase;
|
||
}
|
||
|
||
.load-bar #load-bar-value {
|
||
background-color: gold;
|
||
}
|
||
|
||
.record footer li .record-links-context {
|
||
font-size: 1rem;
|
||
}
|
||
|
||
|
||
</style>
|
||
</head>
|
||
|
||
<body>
|
||
|
||
<button id="close-left-side" class="close-button left">❮</button>
|
||
<button id="close-right-side" class="close-button right">❮</button>
|
||
|
||
|
||
|
||
<aside id="menu-container" class="menu active list-content-container">
|
||
<header role="banner">
|
||
|
||
<h1 class="title">rhizom2o24</h1>
|
||
|
||
|
||
<div class="load-bar" onclick="updateForces()"
|
||
title="Spatialization (Space)">
|
||
<div id="load-bar-value"></div>
|
||
</div>
|
||
</header>
|
||
|
||
<section>
|
||
<input class="search-bar" id="search" placeholder="Search… (S)"
|
||
autocomplete="off" role="search" />
|
||
<ul id="search-result-list"></ul>
|
||
</section>
|
||
|
||
<details class="menu-types" open="open">
|
||
<summary class="menu-title">
|
||
Types
|
||
<span id="types-counter" class="badge">0</span>
|
||
</summary>
|
||
|
||
<form id="types-form" class="menu-types-container">
|
||
|
||
<label class="filter">
|
||
<input type="checkbox" name="project">
|
||
<span class="label" style="color: var(--n_project);">project</span>
|
||
<span class="badge">2</span>
|
||
</label>
|
||
|
||
</form>
|
||
</details>
|
||
|
||
|
||
<details class="menu-tags" data-sort="tag">
|
||
<summary class="menu-title">
|
||
Keywords
|
||
<span id="tag-counter" class="badge">3</span>
|
||
</summary>
|
||
|
||
<select class="sorting-select" name="index_sorting">
|
||
<option value="alphabetical">A-Z</option>
|
||
<option value="alphabetical:reverse">Z-A</option>
|
||
<option value="digital">Ascending</option>
|
||
<option value="digital:reverse">Descending</option>
|
||
</select>
|
||
|
||
<form id="tags-form" class="menu-tags-container menu-tags-container-prim sort-box active">
|
||
|
||
<label class="btn" style="order: 1">
|
||
<input type="checkbox" name="software">
|
||
<span class="label">software</span>
|
||
<span class="badge">1</span>
|
||
</label>
|
||
|
||
<label class="btn" style="order: 2">
|
||
<input type="checkbox" name="hardware">
|
||
<span class="label">hardware</span>
|
||
<span class="badge">1</span>
|
||
</label>
|
||
|
||
<label class="btn" style="order: 3">
|
||
<input type="checkbox" name="architecture">
|
||
<span class="label">architecture</span>
|
||
<span class="badge">1</span>
|
||
</label>
|
||
|
||
</form>
|
||
</details>
|
||
|
||
|
||
<details class="menu-index" id="index">
|
||
<summary class="menu-title">
|
||
Index
|
||
<span id="index-counter" class="badge">2</span>
|
||
</summary>
|
||
|
||
<select class="sorting-select" name="index_sorting">
|
||
<option value="alphabetical">A-Z</option>
|
||
<option value="alphabetical:reverse">Z-A</option>
|
||
<option value="chronological">Chronological</option>
|
||
<option value="chronological:reverse">Antechronological</option>
|
||
</select>
|
||
|
||
<ul class="menu-index-list">
|
||
|
||
<li data-index="hkw-pavillon" style="order: 1">
|
||
<a href="#hkw-pavillon">
|
||
<span class="record-type-points">
|
||
|
||
<span style="color: var(--n_project);">⬤</span>
|
||
|
||
</span>
|
||
<span>hkw-pavillon</span>
|
||
</a>
|
||
</li>
|
||
|
||
<li data-index="meta" style="order: 2">
|
||
<a href="#meta">
|
||
<span class="record-type-points">
|
||
|
||
<span style="color: var(--n_project);">⬤</span>
|
||
|
||
</span>
|
||
<span>meta</span>
|
||
</a>
|
||
</li>
|
||
|
||
</ul>
|
||
</details>
|
||
|
||
<details class="menu-view" open="open">
|
||
<summary class="menu-title">
|
||
View
|
||
</summary>
|
||
|
||
<button onclick="window.location.replace(window.location.pathname)">
|
||
Reset the view
|
||
</button>
|
||
|
||
<button id="view-save">
|
||
Set URL to current view
|
||
</button>
|
||
|
||
<span class="tooltip">?
|
||
<span class="tooltiptext">Apply the current state of the interface (selected record, filters, focus…) to the URL, which can then be used to access the current view.
|
||
</span>
|
||
</span>
|
||
|
||
<div class="menu-view-container" id="views-container">
|
||
|
||
|
||
|
||
</div>
|
||
</details>
|
||
|
||
<details class="menu-controls">
|
||
<summary class="menu-title">
|
||
Graph parameters
|
||
</summary>
|
||
|
||
<ul class="menu-controls-list">
|
||
<li>
|
||
<label>
|
||
<input type="checkbox" checked onchange="linksDisplayToggle(this.checked)">
|
||
Display links
|
||
<span class="badge">0</span>
|
||
</label>
|
||
</li>
|
||
<li>
|
||
<label>
|
||
<input type="checkbox" checked onchange="labelDisplayToggle(this.checked)">
|
||
Display labels
|
||
</label>
|
||
</li>
|
||
<li>
|
||
<label>
|
||
<input type="checkbox" checked
|
||
onchange="graphProperties.graph_highlight_on_hover = this.checked">
|
||
Highlight on hover
|
||
</label>
|
||
</li>
|
||
</ul>
|
||
|
||
|
||
|
||
<article class="menu-controls-container">
|
||
<p class="menu-controls-title">
|
||
Forces
|
||
<span class="tooltip">?
|
||
<span class="tooltiptext"></span>
|
||
</span>
|
||
</p>
|
||
|
||
<form oninput="graphProperties.attraction_force = range.value; updateForces()">
|
||
<label>repulsion</label>
|
||
<input type="number" value="400" name="number" min="50" max="600" oninput="range.value = number.value"/>
|
||
<input type="range" min="50" max="600" value="400" name="range" step="0.1" oninput="number.value = range.value"/>
|
||
</form>
|
||
|
||
|
||
<form oninput="graphProperties.attraction_distance_max = range.value; updateForces()">
|
||
<label>max distance</label>
|
||
<input type="number" value="500" name="number" min="200" max="800" oninput="range.value = number.value"/>
|
||
<input type="range" min="200" max="800" value="500" name="range" step="0.1" oninput="number.value = range.value"/>
|
||
</form>
|
||
|
||
|
||
<form oninput="graphProperties.attraction_vertical = range.value; updateForces()">
|
||
<label>vertical attraction</label>
|
||
<input type="number" value="0" name="number" min="0" max="1" oninput="range.value = number.value"/>
|
||
<input type="range" min="0" max="1" value="0" name="range" step="0.01" oninput="number.value = range.value"/>
|
||
</form>
|
||
|
||
|
||
<form oninput="graphProperties.attraction_horizontal = range.value; updateForces()">
|
||
<label>horizontal attraction</label>
|
||
<input type="number" value="0" name="number" min="0" max="1" oninput="range.value = number.value"/>
|
||
<input type="range" min="0" max="1" value="0" name="range" step="0.01" oninput="number.value = range.value"/>
|
||
</form>
|
||
|
||
</article>
|
||
|
||
<article class="menu-controls-container">
|
||
<p class="menu-controls-title">
|
||
Labels
|
||
</p>
|
||
|
||
<form oninput="graphProperties.text_size = range.value; updateFontsize()">
|
||
<label>font size</label>
|
||
<input type="number" value="14" name="number" min="2" max="15" oninput="range.value = number.value"/>
|
||
<input type="range" min="2" max="15" value="14" name="range" step="0.5" oninput="number.value = range.value"/>
|
||
</form>
|
||
|
||
</article>
|
||
|
||
|
||
<article class="menu-controls-container">
|
||
<p class="menu-controls-title">Focus type</p>
|
||
<select name="focus_mode" id="focus-mode-select">
|
||
<option value="directed">All links</option>
|
||
<option value="inbound">Inbound links</option>
|
||
<option value="outbound">Outbound links</option>
|
||
</select>
|
||
</article>
|
||
|
||
</details>
|
||
|
||
<footer class="menu-footer">
|
||
|
||
|
||
<a href="#help">
|
||
Help
|
||
</a>
|
||
|
||
<a href="#credits">
|
||
|
||
Made with Cosma – About
|
||
|
||
</a>
|
||
</footer>
|
||
</aside>
|
||
|
||
|
||
|
||
<div class="graph-wrapper" style="background-color: whitesmoke">
|
||
<svg id="graph-canvas">
|
||
<defs>
|
||
<marker id="arrow" viewBox="0 0 10 10" refX="22" refY="5" markerUnits="strokeWidth" markerWidth="5" markerHeight="5" orient="auto">
|
||
<path d="M 0 0 L 10 5 L 0 10 z"></path>
|
||
</marker>
|
||
<filter id="double">
|
||
<feMorphology in="SourceGraphic" result="a" operator="dilate" radius="0.2"></feMorphology>
|
||
<feComposite in="SourceGraphic" in2="a" result="xx" operator="xor"></feComposite>
|
||
</filter>
|
||
|
||
</defs>
|
||
</svg>
|
||
</div>
|
||
|
||
|
||
|
||
<div class="graph-controls" id="graph-controls">
|
||
<div class="graph-controls-section graph-controls-zoom">
|
||
<button onclick="zoomLess()">-</button>
|
||
<button onclick="zoomReset()">Reset (R)</button>
|
||
<button onclick="zoomMore()">+</button>
|
||
</div>
|
||
|
||
|
||
<div class="graph-controls-section graph-controls-focus">
|
||
<span class="graph-control-label">
|
||
<input id="focus-check" type="checkbox" name="checkbox">
|
||
<label for="focus-check">Focus (F)</label>
|
||
</span>
|
||
|
||
<input id="focus-input" type="range" min="1" max="2" value="1" name="focus_range" step="1" />
|
||
</div>
|
||
|
||
|
||
|
||
</div>
|
||
|
||
|
||
|
||
<main id="record-container" class="record-container">
|
||
<article class="record active empty-record">
|
||
<p>To open a record, select a node in the graph or a title in the index.</p>
|
||
</article>
|
||
|
||
|
||
<article id="hkw-pavillon" class="record">
|
||
<header>
|
||
<h1 class="record-title">hkw-pavillon</h1>
|
||
|
||
|
||
|
||
|
||
|
||
<div class="record-type">
|
||
<span>types :</span>
|
||
<span>project</span>
|
||
</div>
|
||
|
||
|
||
<div class="record-tags">
|
||
<span>keywords :</span>
|
||
|
||
<button class="btn" onclick="activeTag('architecture');">architecture</button>
|
||
|
||
</div>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
</header>
|
||
|
||
<main class="record-content">
|
||
|
||
<p><img src="https://data.lukasrosier.com/hkw-pavillon.jpeg" alt="hkww-pavillon"></p>
|
||
|
||
|
||
|
||
|
||
</main>
|
||
|
||
<footer class="list-content-container">
|
||
|
||
|
||
|
||
</footer>
|
||
</article>
|
||
|
||
<article id="meta" class="record">
|
||
<header>
|
||
<h1 class="record-title">meta</h1>
|
||
|
||
|
||
|
||
|
||
|
||
<div class="record-type">
|
||
<span>types :</span>
|
||
<span>project</span>
|
||
</div>
|
||
|
||
|
||
<div class="record-tags">
|
||
<span>keywords :</span>
|
||
|
||
<button class="btn" onclick="activeTag('software');">software</button>
|
||
|
||
<button class="btn" onclick="activeTag('hardware');">hardware</button>
|
||
|
||
</div>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
</header>
|
||
|
||
<main class="record-content">
|
||
|
||
<p><img src="https://data.lukasrosier.com/pinix.jpeg" alt="pinix"></p>
|
||
<p>you are here, right now, inside my closet, hanging on kabelbinder, being cooled by a icetower with funky cheesy leds.</p>
|
||
<p>how do you like it huh? :D</p>
|
||
|
||
|
||
|
||
|
||
</main>
|
||
|
||
<footer class="list-content-container">
|
||
|
||
|
||
|
||
</footer>
|
||
</article>
|
||
|
||
|
||
|
||
|
||
<article id="help" class="record">
|
||
<main>
|
||
<h1>Help</h1>
|
||
|
||
<p>
|
||
<a href="https://cosma.arthurperret.fr/" target="_blank" class="link-documentation">
|
||
Click here to access Cosma's documentation
|
||
</a>
|
||
</p>
|
||
|
||
<h2>Shortcuts</h2>
|
||
|
||
<table>
|
||
<tbody>
|
||
<tr>
|
||
<td>Space</td>
|
||
<td>Re-run the force-layout algorithm</td>
|
||
</tr>
|
||
<tr>
|
||
<td>S</td>
|
||
<td>Move the cursor to Search</td>
|
||
</tr>
|
||
<tr>
|
||
<td>Alt + click</td>
|
||
<td>(on a record type) Deselect other types</td>
|
||
</tr>
|
||
<tr>
|
||
<td>R</td>
|
||
<td>Reset zoom</td>
|
||
</tr>
|
||
<tr>
|
||
<td>Alt + R</td>
|
||
<td>Reset the display</td>
|
||
</tr>
|
||
<tr>
|
||
<td>C</td>
|
||
<td>Zoom in on the selected node</td>
|
||
</tr>
|
||
<tr>
|
||
<td>F</td>
|
||
<td>Switch to Focus mode</td>
|
||
</tr>
|
||
<tr>
|
||
<td>Escape</td>
|
||
<td>Close the active record</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</main>
|
||
</article>
|
||
|
||
|
||
|
||
<article id="credits" class="record">
|
||
<main>
|
||
|
||
|
||
<h1 class="metas-title">rhizom2o24</h1>
|
||
|
||
|
||
|
||
<p class="metas-author">lukasrosier</p>
|
||
|
||
|
||
|
||
<p class="metas-description">obvious</p>
|
||
|
||
|
||
<hr>
|
||
|
||
|
||
|
||
<div class="logo">
|
||
<?xml version="1.0" encoding="UTF-8"?>
|
||
<svg enable-background="new 0 0 283.46 68" version="1.1" viewBox="0 0 283.46 68" xml:space="preserve" xmlns="http://www.w3.org/2000/svg">
|
||
<style type="text/css">
|
||
.st0{fill:#147899;}
|
||
.st1{fill:#02385C;}
|
||
.st2{fill:#001A37;}
|
||
</style>
|
||
<path class="st0" d="m227.63 41.56v0.68-0.35-0.33m-15.62-15.3c-6.32 0-12.02 3.81-14.44 9.65s-1.08 12.56 3.39 17.03c2.99 2.99 6.98 4.58 11.05 4.58 2.01 0 4.04-0.39 5.98-1.19 0.26-0.11 0.52-0.22 0.77-0.34v-12.1c-0.86 2.91-3.56 5.03-6.75 5.03-2.85 0-5.41-1.71-6.5-4.34s-0.49-5.66 1.53-7.67c1.35-1.35 3.15-2.06 4.98-2.06 0.91 0 1.82 0.18 2.69 0.54 1.99 0.83 3.46 2.5 4.05 4.5v-12.09c-2.05-0.98-4.33-1.53-6.75-1.54"/>
|
||
<path class="st0" d="m67.32 26.18c-4 0-8 1.53-11.05 4.58-6.1 6.1-6.1 16 0 22.1 3.05 3.05 7.05 4.58 11.05 4.58s8-1.53 11.05-4.58l-6.07-6.07c-1.31 1.32-3.1 2.06-4.96 2.06h-0.02c-3.19 0-5.97-2.14-6.8-5.22-0.82-3.08 0.52-6.32 3.28-7.92 1.1-0.63 2.31-0.94 3.52-0.94 1.82 0 3.62 0.71 4.98 2.06l6.07-6.07c-3.05-3.05-7.05-4.58-11.05-4.58"/>
|
||
<path class="st0" d="m137.46 26.26h-12.18c-5.5 0-9.96 4.46-9.96 9.96s4.46 9.96 9.96 9.96h5.13c0.76 0 1.37 0.61 1.37 1.37s-0.61 1.37-1.37 1.37h-12.18v8.59h12.32c4-0.05 7.58-2.5 9.09-6.21s0.65-7.96-2.18-10.79c-1.86-1.87-4.38-2.92-7.01-2.92h-0.03-5.13c-0.76 0-1.37-0.62-1.37-1.38s0.62-1.37 1.37-1.37h12.18v-8.58"/>
|
||
<path class="st0" d="m227.63 42.24c-0.13 5.9-3.58 11.21-8.88 13.74v1.49h8.88v-15.23m-8.87-2.36v4.01c0.19-0.64 0.29-1.31 0.29-2s-0.1-1.37-0.29-2.01m8.87-13.65h-8.88v1.57c5.15 2.48 8.74 7.69 8.88 13.76v-15.33"/>
|
||
<path class="st1" d="m218.76 27.8v12.08c0.19 0.64 0.29 1.31 0.29 2 0 0.7-0.1 1.37-0.29 2v12.09c5.3-2.53 8.74-7.84 8.88-13.74v-0.68c-0.14-6.06-3.73-11.28-8.88-13.75"/>
|
||
<path class="st0" d="m153.79 26.23h-8.52v31.24h8.52-8.52v-17.57-0.18c0.07-5.65 3.57-10.48 8.52-12.49v-1"/>
|
||
<path class="st0" d="m177.75 26.23c-3.65 0-6.96 1.43-9.41 3.75 2.58 2.45 4.21 5.91 4.26 9.74v0.18c0-2.84 2.3-5.15 5.15-5.15 2.84 0 5.15 2.3 5.15 5.15v17.57h8.52v-17.57-0.18c-0.1-7.47-6.18-13.49-13.67-13.49"/>
|
||
<path class="st0" d="m158.93 26.23c-1.82 0-3.56 0.36-5.15 1v30.24-17.57c0-2.84 2.3-5.15 5.15-5.15s5.15 2.3 5.15 5.15v-0.18c0.05-3.83 1.67-7.28 4.26-9.74-2.45-2.32-5.76-3.75-9.41-3.75"/>
|
||
<path class="st1" d="m153.79 27.23c-4.94 2.01-8.45 6.84-8.52 12.49v0.18 17.57h8.52v-30.24"/>
|
||
<path class="st1" d="m168.34 29.98c-2.58 2.45-4.21 5.91-4.26 9.74v0.18 17.57h8.52v-17.57-0.18c-0.05-3.83-1.68-7.28-4.26-9.74"/>
|
||
<g id="cosma-roll">
|
||
<path class="st0" d="m95.49 46.43-4.08 2.36v8.55h8.17v-8.55l-4.09-2.36m4.08-20.34h-8.17v8.55l4.09 2.36 4.08-2.36v-8.55"/>
|
||
<path class="st0" d="m103.65 41.71-4.08 2.36v4.71l7.4 4.27 4.08-7.07-7.4-4.27m-19.65-11.34-4.08 7.07 7.4 4.27 4.08-2.36v-4.71l-7.4-4.27"/>
|
||
<path class="st1" d="m99.57 44.07-4.08 2.36 4.08 2.36v-4.72m-8.17-9.43v4.71l4.09-2.35-4.09-2.36"/>
|
||
<path class="st0" d="m87.32 41.71-7.4 4.27 4.08 7.08 7.4-4.27v-4.71l-4.08-2.37m19.65-11.34-7.4 4.27v4.71l4.08 2.36 7.4-4.27-4.08-7.07"/>
|
||
<path class="st1" d="m91.4 44.07v4.71l4.08-2.36-4.08-2.35m8.17-9.43-4.08 2.36 4.08 2.36v-4.72"/>
|
||
<path class="st1" d="m91.4 39.36-4.08 2.36 4.08 2.36v-4.72m8.17 0v4.71l4.08-2.36-4.08-2.35"/>
|
||
<polyline class="st2" points="95.49 37 91.4 39.36 91.4 44.07 95.49 46.43 99.57 44.07 99.57 39.36 95.49 37"/>
|
||
</g>
|
||
<path class="st0" d="m50.43 16.17h-15c-0.69 0-1.25 0.56-1.25 1.25v48.56c0 0.69 0.56 1.25 1.25 1.25h15v-9.9h-5.09c-0.69 0-1.25-0.56-1.25-1.25v-28.74c0-0.69 0.56-1.25 1.25-1.25h5.09v-9.92"/>
|
||
<path class="st0" d="m32.53 16.17h-15c-0.69 0-1.25 0.56-1.25 1.25v48.56c0 0.69 0.56 1.25 1.25 1.25h15v-9.9h-5.09c-0.69 0-1.25-0.56-1.25-1.25v-28.73c0-0.69 0.56-1.25 1.25-1.25h5.09v-9.93"/>
|
||
<path class="st0" d="m247.89 16.17h-15v9.92h5.09c0.69 0 1.25 0.56 1.25 1.25v28.74c0 0.69-0.56 1.25-1.25 1.25h-5.09v9.9h15c0.69 0 1.25-0.56 1.25-1.25v-48.56c0.01-0.68-0.56-1.25-1.25-1.25"/>
|
||
<path class="st0" d="m265.82 16.17h-15v9.92h5.09c0.69 0 1.25 0.56 1.25 1.25v28.74c0 0.69-0.56 1.25-1.25 1.25h-5.09v9.9h15c0.69 0 1.25-0.56 1.25-1.25v-48.55c0-0.69-0.56-1.26-1.25-1.26"/>
|
||
</svg>
|
||
</div>
|
||
|
||
|
||
<p>
|
||
Version 2.4.1
|
||
•
|
||
License GPL-3.0-or-later</p>
|
||
|
||
<ul>
|
||
|
||
<li>Arthur Perret</li>
|
||
|
||
<li>Guillaume Brioudes</li>
|
||
|
||
<li>Olivier Le Deuff</li>
|
||
|
||
<li>Clément Borel</li>
|
||
|
||
|
||
<li>ANR research programme <a href="https://hyperotlet.hypotheses.org/">HyperOtlet</a></li>
|
||
</ul>
|
||
|
||
<dl>
|
||
<dt><a href="https://d3js.org/" target="_blank">D3 <span class="badge">v4.13.0</span></a></dt>
|
||
<dd>Mike Bostock (BSD 3-Clause)</dd>
|
||
<dt><a href="https://mozilla.github.io/nunjucks/" target="_blank">Nunjucks <span class="badge">v3.2.3</span></a></dt>
|
||
<dd>James Long (BSD 2-Clause)</dd>
|
||
<dt><a href="https://github.com/nodeca/js-yaml" target="_blank">Js-yaml <span class="badge">v4.1.0</span></a></dt>
|
||
<dd>Vitaly Puzrin (MIT License)</dd>
|
||
<dt><a href="https://github.com/markdown-it/markdown-it" target="_blank">Markdown-it <span class="badge">v12.3.0</span></a></dt>
|
||
<dd>Vitaly Puzrin, Alex Kocharin (MIT License)</dd>
|
||
<dt><a href="https://github.com/juris-m/citeproc-js" target="_blank">Citeproc <span class="badge">v2.4.62</span></a></dt>
|
||
<dd>Frank Bennett (CPAL, AGPL)</dd>
|
||
<dt><a href="https://fusejs.io/" target="_blank">Fuse-js <span class="badge">v6.4.6</span></a></dt>
|
||
<dd>Kiro Risk (Apache License 2.0)</dd>
|
||
</dl>
|
||
</main>
|
||
</article>
|
||
|
||
|
||
</main>
|
||
|
||
|
||
|
||
<script>
|
||
const data = {"nodes":[{"id":"meta","label":"meta","types":["project"],"size":11,"strokeWidth":2},{"id":"hkw-pavillon","label":"hkw-pavillon","types":["project"],"size":11,"strokeWidth":2}],"links":[]};
|
||
const graphProperties = {"select_origin":"directory","files_origin":"/srv/git/nixos-config/data","nodes_origin":"","links_origin":"","nodes_online":"","links_online":"","images_origin":"","export_target":"/srv/git/nixos-config/www/","history":false,"focus_max":2,"record_types":{"undefined":{"fill":"maroon","stroke":"yellow"},"software":{"fill":"Aqua","stroke":"powderblue"},"concept":{"fill":"DeepPink","stroke":"pink"},"organisation":{"fill":"orangered","stroke":"gold"},"character":{"fill":"rosybrown","stroke":"cornsilk"},"tool":{"fill":"magenta","stroke":"papayawhip"},"project":{"fill":"lime","stroke":"aquamarine"}},"link_types":{"undefined":{"stroke":"dash","color":"#C0C0C0"}},"references_as_nodes":false,"references_type_label":"references","record_filters":[],"graph_background_color":"whitesmoke","graph_highlight_color":"red","graph_highlight_on_hover":true,"graph_text_size":14,"graph_arrows":false,"node_size_method":"degree","node_size":10,"node_size_max":20,"node_size_min":2,"attraction_force":400,"attraction_distance_max":500,"attraction_vertical":0,"attraction_horizontal":0,"views":{},"record_metas":[],"generate_id":"never","link_context":"tooltip","hide_id_from_record_header":true,"title":"rhizom2o24","author":"lukasrosier","description":"obvious","keywords":[],"link_symbol":"","csl":"","bibliography":"","csl_locale":"","css_custom":"/srv/git/nixos-config/www/style.css","devtools":false,"lang":"en"};
|
||
const tagList = [{"name":"software","nodes":["meta"]},{"name":"hardware","nodes":["meta"]},{"name":"architecture","nodes":["hkw-pavillon"]}];
|
||
const typeList = {"project":{"nodes":["meta","hkw-pavillon"],"active":true}};
|
||
const timeline = {"end":null};
|
||
const sorting = {"records":[{"alphabetical":0,"chronological":0},{"alphabetical":1,"chronological":1}],"tags":[{"alphabetical":2,"digital":0},{"alphabetical":1,"digital":1},{"alphabetical":0,"digital":2}]};
|
||
|
||
const focusIsActive = true;
|
||
</script>
|
||
|
||
|
||
|
||
|
||
<script>
|
||
/*! For license information please see bundle.js.LICENSE.txt */
|
||
(()=>{var t={165:()=>{window.addEventListener("DOMContentLoaded",(function(){var t=document.getElementById("citation-references"),e=null==t?void 0:t.querySelector("button"),n=null==t?void 0:t.querySelector("code");e&&e.addEventListener("click",(function(){var t=document.createElement("a");t.setAttribute("href","data:text/plain;charset=utf-8,"+encodeURIComponent(n.textContent)),t.setAttribute("download","bibliography.json"),t.style.display="none",document.body.appendChild(t),t.click(),t.remove()}))}))},192:()=>{window.addEventListener("DOMContentLoaded",(function(){var t=document.getElementById("close-left-side"),e=document.getElementById("menu-container"),n=document.getElementById("graph-controls");t.addEventListener("click",(function(){t.classList.toggle("active"),e.classList.toggle("active"),n.classList.toggle("move")}))}))},841:function(t){t.exports=function(){"use strict";function t(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function e(e){for(var n=1;n<arguments.length;n++){var r=null!=arguments[n]?arguments[n]:{};n%2?t(Object(r),!0).forEach((function(t){a(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):t(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function n(t){return n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},n(t)}function r(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function i(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}function o(t,e,n){return e&&i(t.prototype,e),n&&i(t,n),Object.defineProperty(t,"prototype",{writable:!1}),t}function a(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function u(t){return function(t){if(Array.isArray(t))return c(t)}(t)||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(t)||function(t,e){if(t){if("string"==typeof t)return c(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);return"Object"===n&&t.constructor&&(n=t.constructor.name),"Map"===n||"Set"===n?Array.from(t):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?c(t,e):void 0}}(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function c(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);n<e;n++)r[n]=t[n];return r}function s(t){return Array.isArray?Array.isArray(t):"[object Array]"===m(t)}var h=1/0;function l(t){return null==t?"":function(t){if("string"==typeof t)return t;var e=t+"";return"0"==e&&1/t==-h?"-0":e}(t)}function d(t){return"string"==typeof t}function f(t){return"number"==typeof t}function p(t){return!0===t||!1===t||function(t){return y(t)&&null!==t}(t)&&"[object Boolean]"==m(t)}function y(t){return"object"===n(t)}function g(t){return null!=t}function v(t){return!t.trim().length}function m(t){return null==t?void 0===t?"[object Undefined]":"[object Null]":Object.prototype.toString.call(t)}var w=function(t){return"Missing ".concat(t," property in key")},b=function(t){return"Property 'weight' in key '".concat(t,"' must be a positive integer")},_=Object.prototype.hasOwnProperty,x=function(){function t(e){var n=this;r(this,t),this._keys=[],this._keyMap={};var i=0;e.forEach((function(t){var e=k(t);i+=e.weight,n._keys.push(e),n._keyMap[e.id]=e,i+=e.weight})),this._keys.forEach((function(t){t.weight/=i}))}return o(t,[{key:"get",value:function(t){return this._keyMap[t]}},{key:"keys",value:function(){return this._keys}},{key:"toJSON",value:function(){return JSON.stringify(this._keys)}}]),t}();function k(t){var e=null,n=null,r=null,i=1,o=null;if(d(t)||s(t))r=t,e=E(t),n=A(t);else{if(!_.call(t,"name"))throw new Error(w("name"));var a=t.name;if(r=a,_.call(t,"weight")&&(i=t.weight)<=0)throw new Error(b(a));e=E(a),n=A(a),o=t.getFn}return{path:e,id:n,weight:i,src:r,getFn:o}}function E(t){return s(t)?t:t.split(".")}function A(t){return s(t)?t.join("."):t}var S={useExtendedSearch:!1,getFn:function(t,e){var n=[],r=!1;return function t(e,i,o){if(g(e))if(i[o]){var a=e[i[o]];if(!g(a))return;if(o===i.length-1&&(d(a)||f(a)||p(a)))n.push(l(a));else if(s(a)){r=!0;for(var u=0,c=a.length;u<c;u+=1)t(a[u],i,o+1)}else i.length&&t(a,i,o+1)}else n.push(e)}(t,d(e)?e.split("."):e,0),r?n:n[0]},ignoreLocation:!1,ignoreFieldNorm:!1,fieldNormWeight:1},L=e(e(e(e({},{isCaseSensitive:!1,includeScore:!1,keys:[],shouldSort:!0,sortFn:function(t,e){return t.score===e.score?t.idx<e.idx?-1:1:t.score<e.score?-1:1}}),{includeMatches:!1,findAllMatches:!1,minMatchCharLength:1}),{location:0,threshold:.6,distance:100}),S),M=/[^ ]+/g;var G=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=e.getFn,i=void 0===n?L.getFn:n,o=e.fieldNormWeight,a=void 0===o?L.fieldNormWeight:o;r(this,t),this.norm=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:3,n=new Map,r=Math.pow(10,e);return{get:function(e){var i=e.match(M).length;if(n.has(i))return n.get(i);var o=1/Math.pow(i,.5*t),a=parseFloat(Math.round(o*r)/r);return n.set(i,a),a},clear:function(){n.clear()}}}(a,3),this.getFn=i,this.isCreated=!1,this.setIndexRecords()}return o(t,[{key:"setSources",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];this.docs=t}},{key:"setIndexRecords",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];this.records=t}},{key:"setKeys",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];this.keys=e,this._keysMap={},e.forEach((function(e,n){t._keysMap[e.id]=n}))}},{key:"create",value:function(){var t=this;!this.isCreated&&this.docs.length&&(this.isCreated=!0,d(this.docs[0])?this.docs.forEach((function(e,n){t._addString(e,n)})):this.docs.forEach((function(e,n){t._addObject(e,n)})),this.norm.clear())}},{key:"add",value:function(t){var e=this.size();d(t)?this._addString(t,e):this._addObject(t,e)}},{key:"removeAt",value:function(t){this.records.splice(t,1);for(var e=t,n=this.size();e<n;e+=1)this.records[e].i-=1}},{key:"getValueForItemAtKeyId",value:function(t,e){return t[this._keysMap[e]]}},{key:"size",value:function(){return this.records.length}},{key:"_addString",value:function(t,e){if(g(t)&&!v(t)){var n={v:t,i:e,n:this.norm.get(t)};this.records.push(n)}}},{key:"_addObject",value:function(t,e){var n=this,r={i:e,$:{}};this.keys.forEach((function(e,i){var o=e.getFn?e.getFn(t):n.getFn(t,e.path);if(g(o))if(s(o))!function(){for(var t=[],e=[{nestedArrIndex:-1,value:o}];e.length;){var a=e.pop(),u=a.nestedArrIndex,c=a.value;if(g(c))if(d(c)&&!v(c)){var h={v:c,i:u,n:n.norm.get(c)};t.push(h)}else s(c)&&c.forEach((function(t,n){e.push({nestedArrIndex:n,value:t})}))}r.$[i]=t}();else if(d(o)&&!v(o)){var a={v:o,n:n.norm.get(o)};r.$[i]=a}})),this.records.push(r)}},{key:"toJSON",value:function(){return{keys:this.keys,records:this.records}}}]),t}();function N(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=n.getFn,i=void 0===r?L.getFn:r,o=n.fieldNormWeight,a=void 0===o?L.fieldNormWeight:o,u=new G({getFn:i,fieldNormWeight:a});return u.setKeys(t.map(k)),u.setSources(e),u.create(),u}function O(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=e.errors,r=void 0===n?0:n,i=e.currentLocation,o=void 0===i?0:i,a=e.expectedLocation,u=void 0===a?0:a,c=e.distance,s=void 0===c?L.distance:c,h=e.ignoreLocation,l=void 0===h?L.ignoreLocation:h,d=r/t.length;if(l)return d;var f=Math.abs(u-o);return s?d+f/s:f?1:d}var j=32;function z(t,e,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},i=r.location,o=void 0===i?L.location:i,a=r.distance,u=void 0===a?L.distance:a,c=r.threshold,s=void 0===c?L.threshold:c,h=r.findAllMatches,l=void 0===h?L.findAllMatches:h,d=r.minMatchCharLength,f=void 0===d?L.minMatchCharLength:d,p=r.includeMatches,y=void 0===p?L.includeMatches:p,g=r.ignoreLocation,v=void 0===g?L.ignoreLocation:g;if(e.length>j)throw new Error("Pattern length exceeds max of ".concat(j,"."));for(var m,w=e.length,b=t.length,_=Math.max(0,Math.min(o,b)),x=s,k=_,E=f>1||y,A=E?Array(b):[];(m=t.indexOf(e,k))>-1;){var S=O(e,{currentLocation:m,expectedLocation:_,distance:u,ignoreLocation:v});if(x=Math.min(S,x),k=m+w,E)for(var M=0;M<w;)A[m+M]=1,M+=1}k=-1;for(var G=[],N=1,z=w+b,C=1<<w-1,D=0;D<w;D+=1){for(var P=0,I=z;P<I;)O(e,{errors:D,currentLocation:_+I,expectedLocation:_,distance:u,ignoreLocation:v})<=x?P=I:z=I,I=Math.floor((z-P)/2+P);z=I;var U=Math.max(1,_-I+1),T=l?b:Math.min(_+I,b)+w,B=Array(T+2);B[T+1]=(1<<D)-1;for(var q=T;q>=U;q-=1){var R=q-1,F=n[t.charAt(R)];if(E&&(A[R]=+!!F),B[q]=(B[q+1]<<1|1)&F,D&&(B[q]|=(G[q+1]|G[q])<<1|1|G[q+1]),B[q]&C&&(N=O(e,{errors:D,currentLocation:R,expectedLocation:_,distance:u,ignoreLocation:v}))<=x){if(x=N,(k=R)<=_)break;U=Math.max(1,2*_-k)}}if(O(e,{errors:D+1,currentLocation:_,expectedLocation:_,distance:u,ignoreLocation:v})>x)break;G=B}var K={isMatch:k>=0,score:Math.max(.001,N)};if(E){var W=function(){for(var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:L.minMatchCharLength,n=[],r=-1,i=-1,o=0,a=t.length;o<a;o+=1){var u=t[o];u&&-1===r?r=o:u||-1===r||((i=o-1)-r+1>=e&&n.push([r,i]),r=-1)}return t[o-1]&&o-r>=e&&n.push([r,o-1]),n}(A,f);W.length?y&&(K.indices=W):K.isMatch=!1}return K}function C(t){for(var e={},n=0,r=t.length;n<r;n+=1){var i=t.charAt(n);e[i]=(e[i]||0)|1<<r-n-1}return e}var D=function(){function t(e){var n=this,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},o=i.location,a=void 0===o?L.location:o,u=i.threshold,c=void 0===u?L.threshold:u,s=i.distance,h=void 0===s?L.distance:s,l=i.includeMatches,d=void 0===l?L.includeMatches:l,f=i.findAllMatches,p=void 0===f?L.findAllMatches:f,y=i.minMatchCharLength,g=void 0===y?L.minMatchCharLength:y,v=i.isCaseSensitive,m=void 0===v?L.isCaseSensitive:v,w=i.ignoreLocation,b=void 0===w?L.ignoreLocation:w;if(r(this,t),this.options={location:a,threshold:c,distance:h,includeMatches:d,findAllMatches:p,minMatchCharLength:g,isCaseSensitive:m,ignoreLocation:b},this.pattern=m?e:e.toLowerCase(),this.chunks=[],this.pattern.length){var _=function(t,e){n.chunks.push({pattern:t,alphabet:C(t),startIndex:e})},x=this.pattern.length;if(x>j){for(var k=0,E=x%j,A=x-E;k<A;)_(this.pattern.substr(k,j),k),k+=j;if(E){var S=x-j;_(this.pattern.substr(S),S)}}else _(this.pattern,0)}}return o(t,[{key:"searchIn",value:function(t){var e=this.options,n=e.isCaseSensitive,r=e.includeMatches;if(n||(t=t.toLowerCase()),this.pattern===t){var i={isMatch:!0,score:0};return r&&(i.indices=[[0,t.length-1]]),i}var o=this.options,a=o.location,c=o.distance,s=o.threshold,h=o.findAllMatches,l=o.minMatchCharLength,d=o.ignoreLocation,f=[],p=0,y=!1;this.chunks.forEach((function(e){var n=e.pattern,i=e.alphabet,o=e.startIndex,g=z(t,n,i,{location:a+o,distance:c,threshold:s,findAllMatches:h,minMatchCharLength:l,includeMatches:r,ignoreLocation:d}),v=g.isMatch,m=g.score,w=g.indices;v&&(y=!0),p+=m,v&&w&&(f=[].concat(u(f),u(w)))}));var g={isMatch:y,score:y?p/this.chunks.length:1};return y&&r&&(g.indices=f),g}}]),t}(),P=[];function I(t,e){for(var n=0,r=P.length;n<r;n+=1){var i=P[n];if(i.condition(t,e))return new i(t,e)}return new D(t,e)}var U="$and",T="$or",B="$path",q="$val",R=function(t){return!(!t[U]&&!t[T])},F=function(t){return a({},U,Object.keys(t).map((function(e){return a({},e,t[e])})))};function K(t,e){var n=t.matches;e.matches=[],g(n)&&n.forEach((function(t){if(g(t.indices)&&t.indices.length){var n={indices:t.indices,value:t.value};t.key&&(n.key=t.key.src),t.idx>-1&&(n.refIndex=t.idx),e.matches.push(n)}}))}function W(t,e){e.score=t.score}var Y=function(){function t(n){var i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},o=arguments.length>2?arguments[2]:void 0;if(r(this,t),this.options=e(e({},L),i),this.options.useExtendedSearch)throw new Error("Extended search is not available");this._keyStore=new x(this.options.keys),this.setCollection(n,o)}return o(t,[{key:"setCollection",value:function(t,e){if(this._docs=t,e&&!(e instanceof G))throw new Error("Incorrect 'index' type");this._myIndex=e||N(this.options.keys,this._docs,{getFn:this.options.getFn,fieldNormWeight:this.options.fieldNormWeight})}},{key:"add",value:function(t){g(t)&&(this._docs.push(t),this._myIndex.add(t))}},{key:"remove",value:function(){for(var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:function(){return!1},e=[],n=0,r=this._docs.length;n<r;n+=1){var i=this._docs[n];t(i,n)&&(this.removeAt(n),n-=1,r-=1,e.push(i))}return e}},{key:"removeAt",value:function(t){this._docs.splice(t,1),this._myIndex.removeAt(t)}},{key:"getIndex",value:function(){return this._myIndex}},{key:"search",value:function(t){var e=(arguments.length>1&&void 0!==arguments[1]?arguments[1]:{}).limit,n=void 0===e?-1:e,r=this.options,i=r.includeMatches,o=r.includeScore,a=r.shouldSort,u=r.sortFn,c=r.ignoreFieldNorm,s=d(t)?d(this._docs[0])?this._searchStringList(t):this._searchObjectList(t):this._searchLogical(t);return function(t,e){var n=e.ignoreFieldNorm,r=void 0===n?L.ignoreFieldNorm:n;t.forEach((function(t){var e=1;t.matches.forEach((function(t){var n=t.key,i=t.norm,o=t.score,a=n?n.weight:null;e*=Math.pow(0===o&&a?Number.EPSILON:o,(a||1)*(r?1:i))})),t.score=e}))}(s,{ignoreFieldNorm:c}),a&&s.sort(u),f(n)&&n>-1&&(s=s.slice(0,n)),function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},r=n.includeMatches,i=void 0===r?L.includeMatches:r,o=n.includeScore,a=void 0===o?L.includeScore:o,u=[];return i&&u.push(K),a&&u.push(W),t.map((function(t){var n=t.idx,r={item:e[n],refIndex:n};return u.length&&u.forEach((function(e){e(t,r)})),r}))}(s,this._docs,{includeMatches:i,includeScore:o})}},{key:"_searchStringList",value:function(t){var e=I(t,this.options),n=this._myIndex.records,r=[];return n.forEach((function(t){var n=t.v,i=t.i,o=t.n;if(g(n)){var a=e.searchIn(n),u=a.isMatch,c=a.score,s=a.indices;u&&r.push({item:n,idx:i,matches:[{score:c,value:n,norm:o,indices:s}]})}})),r}},{key:"_searchLogical",value:function(t){throw new Error("Logical search is not available")}},{key:"_searchObjectList",value:function(t){var e=this,n=I(t,this.options),r=this._myIndex,i=r.keys,o=r.records,a=[];return o.forEach((function(t){var r=t.$,o=t.i;if(g(r)){var c=[];i.forEach((function(t,i){c.push.apply(c,u(e._findMatches({key:t,value:r[i],searcher:n})))})),c.length&&a.push({idx:o,item:r,matches:c})}})),a}},{key:"_findMatches",value:function(t){var e=t.key,n=t.value,r=t.searcher;if(!g(n))return[];var i=[];if(s(n))n.forEach((function(t){var n=t.v,o=t.i,a=t.n;if(g(n)){var u=r.searchIn(n),c=u.isMatch,s=u.score,h=u.indices;c&&i.push({score:s,key:e,value:n,idx:o,norm:a,indices:h})}}));else{var o=n.v,a=n.n,u=r.searchIn(o),c=u.isMatch,h=u.score,l=u.indices;c&&i.push({score:h,key:e,value:o,norm:a,indices:l})}return i}}]),t}();return Y.version="6.6.2",Y.createIndex=N,Y.parseIndex=function(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=e.getFn,r=void 0===n?L.getFn:n,i=e.fieldNormWeight,o=void 0===i?L.fieldNormWeight:i,a=t.keys,u=t.records,c=new G({getFn:r,fieldNormWeight:o});return c.setKeys(a),c.setIndexRecords(u),c},Y.config=L,Y.parseQuery=function(t,e){var n=(arguments.length>2&&void 0!==arguments[2]?arguments[2]:{}).auto,r=void 0===n||n;return R(t)||(t=F(t)),function t(n){var i=Object.keys(n),o=function(t){return!!t[B]}(n);if(!o&&i.length>1&&!R(n))return t(F(n));if(function(t){return!s(t)&&y(t)&&!R(t)}(n)){var a=o?n[B]:i[0],u=o?n[q]:n[a];if(!d(u))throw new Error(function(t){return"Invalid value for key ".concat(t)}(a));var c={keyId:A(a),pattern:u};return r&&(c.searcher=I(u,e)),c}var h={children:[],operator:i[0]};return i.forEach((function(e){var r=n[e];s(r)&&r.forEach((function(e){h.children.push(t(e))}))})),h}(t)},Y}()},30:(t,e,n)=>{var r=n(208);function i(t){this.graph=t,this.queue=new r(Array,t.order),this.seen=new Set,this.size=0}i.prototype.hasAlreadySeenEverything=function(){return this.seen.size===this.graph.order},i.prototype.countUnseenNodes=function(){return this.graph.order-this.seen.size},i.prototype.forEachNodeYetUnseen=function(t){var e=this.seen,n=this.graph;n.someNode((function(r,i){return e.size===n.order||!e.has(r)&&!!t(r,i)}))},i.prototype.has=function(t){return this.seen.has(t)},i.prototype.push=function(t){var e=this.seen.size;return this.seen.add(t),e!==this.seen.size&&(this.queue.push(t),this.size++,!0)},i.prototype.pushWith=function(t,e){var n=this.seen.size;return this.seen.add(t),n!==this.seen.size&&(this.queue.push(e),this.size++,!0)},i.prototype.shift=function(){var t=this.queue.shift();return this.size=this.queue.size,t},t.exports=i},563:(t,e,n)=>{var r=n(736),i=n(30),o=n(331),a=o.TraversalRecord,u=o.capitalize;e.g=function(t,e,n,o){if(o=o||{},!r(t))throw new Error("graphology-traversal/bfs: expecting a graphology instance.");if("function"!=typeof n)throw new Error("graphology-traversal/bfs: given callback is not a function.");if(0!==t.order){var c,s=new i(t),h=t["forEach"+u(o.mode||"outbound")+"Neighbor"].bind(t);(null===e?s.forEachNodeYetUnseen.bind(s):function(n){n(e=""+e,t.getNodeAttributes(e))})((function(t,e){for(s.pushWith(t,new a(t,e,0));0!==s.size;)c=s.shift(),!0!==n(c.node,c.attributes,c.depth)&&h(c.node,l)}))}function l(t,e){s.pushWith(t,new a(t,e,c.depth+1))}}},331:(t,e)=>{e.TraversalRecord=function(t,e,n){this.node=t,this.attributes=e,this.depth=n},e.capitalize=function(t){return t[0].toUpperCase()+t.slice(1)}},736:t=>{t.exports=function(t){return null!==t&&"object"==typeof t&&"function"==typeof t.addUndirectedEdgeWithKey&&"function"==typeof t.dropNode&&"boolean"==typeof t.multi}},934:function(t){t.exports=function(){"use strict";function t(e){return(t="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(e)}function e(t,e){t.prototype=Object.create(e.prototype),t.prototype.constructor=t,r(t,e)}function n(t){return n=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t)},n(t)}function r(t,e){return r=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},r(t,e)}function i(t,e,n){return i=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}()?Reflect.construct.bind():function(t,e,n){var i=[null];i.push.apply(i,e);var o=new(Function.bind.apply(t,i));return n&&r(o,n.prototype),o},i.apply(null,arguments)}function o(t){var e="function"==typeof Map?new Map:void 0;return o=function(t){if(null===t||(o=t,-1===Function.toString.call(o).indexOf("[native code]")))return t;var o;if("function"!=typeof t)throw new TypeError("Super expression must either be null or a function");if(void 0!==e){if(e.has(t))return e.get(t);e.set(t,a)}function a(){return i(t,arguments,n(this).constructor)}return a.prototype=Object.create(t.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),r(a,t)},o(t)}function a(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}var u=function(){for(var t=arguments[0],e=1,n=arguments.length;e<n;e++)if(arguments[e])for(var r in arguments[e])t[r]=arguments[e][r];return t};function c(t,e,n,r){var i=t._nodes.get(e),o=null;return i?o="mixed"===r?i.out&&i.out[n]||i.undirected&&i.undirected[n]:"directed"===r?i.out&&i.out[n]:i.undirected&&i.undirected[n]:o}function s(e){return"object"===t(e)&&null!==e}function h(t){var e;for(e in t)return!1;return!0}function l(t,e,n){Object.defineProperty(t,e,{enumerable:!1,configurable:!1,writable:!0,value:n})}function d(t,e,n){var r={enumerable:!0,configurable:!0};"function"==typeof n?r.get=n:(r.value=n,r.writable=!1),Object.defineProperty(t,e,r)}function f(t){return!(!s(t)||t.attributes&&!Array.isArray(t.attributes))}"function"==typeof Object.assign&&(u=Object.assign);var p,y={exports:{}},g="object"==typeof Reflect?Reflect:null,v=g&&"function"==typeof g.apply?g.apply:function(t,e,n){return Function.prototype.apply.call(t,e,n)};p=g&&"function"==typeof g.ownKeys?g.ownKeys:Object.getOwnPropertySymbols?function(t){return Object.getOwnPropertyNames(t).concat(Object.getOwnPropertySymbols(t))}:function(t){return Object.getOwnPropertyNames(t)};var m=Number.isNaN||function(t){return t!=t};function w(){w.init.call(this)}y.exports=w,y.exports.once=function(t,e){return new Promise((function(n,r){function i(n){t.removeListener(e,o),r(n)}function o(){"function"==typeof t.removeListener&&t.removeListener("error",i),n([].slice.call(arguments))}G(t,e,o,{once:!0}),"error"!==e&&function(t,e,n){"function"==typeof t.on&&G(t,"error",e,{once:!0})}(t,i)}))},w.EventEmitter=w,w.prototype._events=void 0,w.prototype._eventsCount=0,w.prototype._maxListeners=void 0;var b=10;function _(t){if("function"!=typeof t)throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof t)}function x(t){return void 0===t._maxListeners?w.defaultMaxListeners:t._maxListeners}function k(t,e,n,r){var i,o,a,u;if(_(n),void 0===(o=t._events)?(o=t._events=Object.create(null),t._eventsCount=0):(void 0!==o.newListener&&(t.emit("newListener",e,n.listener?n.listener:n),o=t._events),a=o[e]),void 0===a)a=o[e]=n,++t._eventsCount;else if("function"==typeof a?a=o[e]=r?[n,a]:[a,n]:r?a.unshift(n):a.push(n),(i=x(t))>0&&a.length>i&&!a.warned){a.warned=!0;var c=new Error("Possible EventEmitter memory leak detected. "+a.length+" "+String(e)+" listeners added. Use emitter.setMaxListeners() to increase limit");c.name="MaxListenersExceededWarning",c.emitter=t,c.type=e,c.count=a.length,u=c,console&&console.warn&&console.warn(u)}return t}function E(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,0===arguments.length?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function A(t,e,n){var r={fired:!1,wrapFn:void 0,target:t,type:e,listener:n},i=E.bind(r);return i.listener=n,r.wrapFn=i,i}function S(t,e,n){var r=t._events;if(void 0===r)return[];var i=r[e];return void 0===i?[]:"function"==typeof i?n?[i.listener||i]:[i]:n?function(t){for(var e=new Array(t.length),n=0;n<e.length;++n)e[n]=t[n].listener||t[n];return e}(i):M(i,i.length)}function L(t){var e=this._events;if(void 0!==e){var n=e[t];if("function"==typeof n)return 1;if(void 0!==n)return n.length}return 0}function M(t,e){for(var n=new Array(e),r=0;r<e;++r)n[r]=t[r];return n}function G(t,e,n,r){if("function"==typeof t.on)r.once?t.once(e,n):t.on(e,n);else{if("function"!=typeof t.addEventListener)throw new TypeError('The "emitter" argument must be of type EventEmitter. Received type '+typeof t);t.addEventListener(e,(function i(o){r.once&&t.removeEventListener(e,i),n(o)}))}}function N(t){if("function"!=typeof t)throw new Error("obliterator/iterator: expecting a function!");this.next=t}Object.defineProperty(w,"defaultMaxListeners",{enumerable:!0,get:function(){return b},set:function(t){if("number"!=typeof t||t<0||m(t))throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received '+t+".");b=t}}),w.init=function(){void 0!==this._events&&this._events!==Object.getPrototypeOf(this)._events||(this._events=Object.create(null),this._eventsCount=0),this._maxListeners=this._maxListeners||void 0},w.prototype.setMaxListeners=function(t){if("number"!=typeof t||t<0||m(t))throw new RangeError('The value of "n" is out of range. It must be a non-negative number. Received '+t+".");return this._maxListeners=t,this},w.prototype.getMaxListeners=function(){return x(this)},w.prototype.emit=function(t){for(var e=[],n=1;n<arguments.length;n++)e.push(arguments[n]);var r="error"===t,i=this._events;if(void 0!==i)r=r&&void 0===i.error;else if(!r)return!1;if(r){var o;if(e.length>0&&(o=e[0]),o instanceof Error)throw o;var a=new Error("Unhandled error."+(o?" ("+o.message+")":""));throw a.context=o,a}var u=i[t];if(void 0===u)return!1;if("function"==typeof u)v(u,this,e);else{var c=u.length,s=M(u,c);for(n=0;n<c;++n)v(s[n],this,e)}return!0},w.prototype.addListener=function(t,e){return k(this,t,e,!1)},w.prototype.on=w.prototype.addListener,w.prototype.prependListener=function(t,e){return k(this,t,e,!0)},w.prototype.once=function(t,e){return _(e),this.on(t,A(this,t,e)),this},w.prototype.prependOnceListener=function(t,e){return _(e),this.prependListener(t,A(this,t,e)),this},w.prototype.removeListener=function(t,e){var n,r,i,o,a;if(_(e),void 0===(r=this._events))return this;if(void 0===(n=r[t]))return this;if(n===e||n.listener===e)0==--this._eventsCount?this._events=Object.create(null):(delete r[t],r.removeListener&&this.emit("removeListener",t,n.listener||e));else if("function"!=typeof n){for(i=-1,o=n.length-1;o>=0;o--)if(n[o]===e||n[o].listener===e){a=n[o].listener,i=o;break}if(i<0)return this;0===i?n.shift():function(t,e){for(;e+1<t.length;e++)t[e]=t[e+1];t.pop()}(n,i),1===n.length&&(r[t]=n[0]),void 0!==r.removeListener&&this.emit("removeListener",t,a||e)}return this},w.prototype.off=w.prototype.removeListener,w.prototype.removeAllListeners=function(t){var e,n,r;if(void 0===(n=this._events))return this;if(void 0===n.removeListener)return 0===arguments.length?(this._events=Object.create(null),this._eventsCount=0):void 0!==n[t]&&(0==--this._eventsCount?this._events=Object.create(null):delete n[t]),this;if(0===arguments.length){var i,o=Object.keys(n);for(r=0;r<o.length;++r)"removeListener"!==(i=o[r])&&this.removeAllListeners(i);return this.removeAllListeners("removeListener"),this._events=Object.create(null),this._eventsCount=0,this}if("function"==typeof(e=n[t]))this.removeListener(t,e);else if(void 0!==e)for(r=e.length-1;r>=0;r--)this.removeListener(t,e[r]);return this},w.prototype.listeners=function(t){return S(this,t,!0)},w.prototype.rawListeners=function(t){return S(this,t,!1)},w.listenerCount=function(t,e){return"function"==typeof t.listenerCount?t.listenerCount(e):L.call(t,e)},w.prototype.listenerCount=L,w.prototype.eventNames=function(){return this._eventsCount>0?p(this._events):[]},"undefined"!=typeof Symbol&&(N.prototype[Symbol.iterator]=function(){return this}),N.of=function(){var t=arguments,e=t.length,n=0;return new N((function(){return n>=e?{done:!0}:{done:!1,value:t[n++]}}))},N.empty=function(){return new N((function(){return{done:!0}}))},N.fromSequence=function(t){var e=0,n=t.length;return new N((function(){return e>=n?{done:!0}:{done:!1,value:t[e++]}}))},N.is=function(t){return t instanceof N||"object"==typeof t&&null!==t&&"function"==typeof t.next};var O=N,j={};j.ARRAY_BUFFER_SUPPORT="undefined"!=typeof ArrayBuffer,j.SYMBOL_SUPPORT="undefined"!=typeof Symbol;var z=O,C=j,D=C.ARRAY_BUFFER_SUPPORT,P=C.SYMBOL_SUPPORT,I=function(t){var e=function(t){return"string"==typeof t||Array.isArray(t)||D&&ArrayBuffer.isView(t)?z.fromSequence(t):"object"!=typeof t||null===t?null:P&&"function"==typeof t[Symbol.iterator]?t[Symbol.iterator]():"function"==typeof t.next?t:null}(t);if(!e)throw new Error("obliterator: target is not iterable nor a valid iterator.");return e},U=I,T=function(t,e){for(var n,r=arguments.length>1?e:1/0,i=r!==1/0?new Array(r):[],o=0,a=U(t);;){if(o===r)return i;if((n=a.next()).done)return o!==e&&(i.length=o),i;i[o++]=n.value}},B=function(t){function n(e){var n;return(n=t.call(this)||this).name="GraphError",n.message=e,n}return e(n,t),n}(o(Error)),q=function(t){function n(e){var r;return(r=t.call(this,e)||this).name="InvalidArgumentsGraphError","function"==typeof Error.captureStackTrace&&Error.captureStackTrace(a(r),n.prototype.constructor),r}return e(n,t),n}(B),R=function(t){function n(e){var r;return(r=t.call(this,e)||this).name="NotFoundGraphError","function"==typeof Error.captureStackTrace&&Error.captureStackTrace(a(r),n.prototype.constructor),r}return e(n,t),n}(B),F=function(t){function n(e){var r;return(r=t.call(this,e)||this).name="UsageGraphError","function"==typeof Error.captureStackTrace&&Error.captureStackTrace(a(r),n.prototype.constructor),r}return e(n,t),n}(B);function K(t,e){this.key=t,this.attributes=e,this.clear()}function W(t,e){this.key=t,this.attributes=e,this.clear()}function Y(t,e){this.key=t,this.attributes=e,this.clear()}function X(t,e,n,r,i){this.key=e,this.attributes=i,this.undirected=t,this.source=n,this.target=r}function $(t,e,n,r,i,o,a){var u,c,s,h;if(r=""+r,0===n){if(!(u=t._nodes.get(r)))throw new R("Graph.".concat(e,': could not find the "').concat(r,'" node in the graph.'));s=i,h=o}else if(3===n){if(i=""+i,!(c=t._edges.get(i)))throw new R("Graph.".concat(e,': could not find the "').concat(i,'" edge in the graph.'));var l=c.source.key,d=c.target.key;if(r===l)u=c.target;else{if(r!==d)throw new R("Graph.".concat(e,': the "').concat(r,'" node is not attached to the "').concat(i,'" edge (').concat(l,", ").concat(d,")."));u=c.source}s=o,h=a}else{if(!(c=t._edges.get(r)))throw new R("Graph.".concat(e,': could not find the "').concat(r,'" edge in the graph.'));u=1===n?c.source:c.target,s=i,h=o}return[u,s,h]}K.prototype.clear=function(){this.inDegree=0,this.outDegree=0,this.undirectedDegree=0,this.undirectedLoops=0,this.directedLoops=0,this.in={},this.out={},this.undirected={}},W.prototype.clear=function(){this.inDegree=0,this.outDegree=0,this.directedLoops=0,this.in={},this.out={}},Y.prototype.clear=function(){this.undirectedDegree=0,this.undirectedLoops=0,this.undirected={}},X.prototype.attach=function(){var t="out",e="in";this.undirected&&(t=e="undirected");var n=this.source.key,r=this.target.key;this.source[t][r]=this,this.undirected&&n===r||(this.target[e][n]=this)},X.prototype.attachMulti=function(){var t="out",e="in",n=this.source.key,r=this.target.key;this.undirected&&(t=e="undirected");var i=this.source[t],o=i[r];if(void 0===o)return i[r]=this,void(this.undirected&&n===r||(this.target[e][n]=this));o.previous=this,this.next=o,i[r]=this,this.target[e][n]=this},X.prototype.detach=function(){var t=this.source.key,e=this.target.key,n="out",r="in";this.undirected&&(n=r="undirected"),delete this.source[n][e],delete this.target[r][t]},X.prototype.detachMulti=function(){var t=this.source.key,e=this.target.key,n="out",r="in";this.undirected&&(n=r="undirected"),void 0===this.previous?void 0===this.next?(delete this.source[n][e],delete this.target[r][t]):(this.next.previous=void 0,this.source[n][e]=this.next,this.target[r][t]=this.next):(this.previous.next=this.next,void 0!==this.next&&(this.next.previous=this.previous))};var V=[{name:function(t){return"get".concat(t,"Attribute")},attacher:function(t,e,n){t.prototype[e]=function(t,r,i){var o=$(this,e,n,t,r,i),a=o[0],u=o[1];return a.attributes[u]}}},{name:function(t){return"get".concat(t,"Attributes")},attacher:function(t,e,n){t.prototype[e]=function(t,r){return $(this,e,n,t,r)[0].attributes}}},{name:function(t){return"has".concat(t,"Attribute")},attacher:function(t,e,n){t.prototype[e]=function(t,r,i){var o=$(this,e,n,t,r,i),a=o[0],u=o[1];return a.attributes.hasOwnProperty(u)}}},{name:function(t){return"set".concat(t,"Attribute")},attacher:function(t,e,n){t.prototype[e]=function(t,r,i,o){var a=$(this,e,n,t,r,i,o),u=a[0],c=a[1],s=a[2];return u.attributes[c]=s,this.emit("nodeAttributesUpdated",{key:u.key,type:"set",attributes:u.attributes,name:c}),this}}},{name:function(t){return"update".concat(t,"Attribute")},attacher:function(t,e,n){t.prototype[e]=function(t,r,i,o){var a=$(this,e,n,t,r,i,o),u=a[0],c=a[1],s=a[2];if("function"!=typeof s)throw new q("Graph.".concat(e,": updater should be a function."));var h=u.attributes,l=s(h[c]);return h[c]=l,this.emit("nodeAttributesUpdated",{key:u.key,type:"set",attributes:u.attributes,name:c}),this}}},{name:function(t){return"remove".concat(t,"Attribute")},attacher:function(t,e,n){t.prototype[e]=function(t,r,i){var o=$(this,e,n,t,r,i),a=o[0],u=o[1];return delete a.attributes[u],this.emit("nodeAttributesUpdated",{key:a.key,type:"remove",attributes:a.attributes,name:u}),this}}},{name:function(t){return"replace".concat(t,"Attributes")},attacher:function(t,e,n){t.prototype[e]=function(t,r,i){var o=$(this,e,n,t,r,i),a=o[0],u=o[1];if(!s(u))throw new q("Graph.".concat(e,": provided attributes are not a plain object."));return a.attributes=u,this.emit("nodeAttributesUpdated",{key:a.key,type:"replace",attributes:a.attributes}),this}}},{name:function(t){return"merge".concat(t,"Attributes")},attacher:function(t,e,n){t.prototype[e]=function(t,r,i){var o=$(this,e,n,t,r,i),a=o[0],c=o[1];if(!s(c))throw new q("Graph.".concat(e,": provided attributes are not a plain object."));return u(a.attributes,c),this.emit("nodeAttributesUpdated",{key:a.key,type:"merge",attributes:a.attributes,data:c}),this}}},{name:function(t){return"update".concat(t,"Attributes")},attacher:function(t,e,n){t.prototype[e]=function(t,r,i){var o=$(this,e,n,t,r,i),a=o[0],u=o[1];if("function"!=typeof u)throw new q("Graph.".concat(e,": provided updater is not a function."));return a.attributes=u(a.attributes),this.emit("nodeAttributesUpdated",{key:a.key,type:"update",attributes:a.attributes}),this}}}],H=[{name:function(t){return"get".concat(t,"Attribute")},attacher:function(t,e,n){t.prototype[e]=function(t,r){var i;if("mixed"!==this.type&&"mixed"!==n&&n!==this.type)throw new F("Graph.".concat(e,": cannot find this type of edges in your ").concat(this.type," graph."));if(arguments.length>2){if(this.multi)throw new F("Graph.".concat(e,": cannot use a {source,target} combo when asking about an edge's attributes in a MultiGraph since we cannot infer the one you want information about."));var o=""+t,a=""+r;if(r=arguments[2],!(i=c(this,o,a,n)))throw new R("Graph.".concat(e,': could not find an edge for the given path ("').concat(o,'" - "').concat(a,'").'))}else{if("mixed"!==n)throw new F("Graph.".concat(e,": calling this method with only a key (vs. a source and target) does not make sense since an edge with this key could have the other type."));if(t=""+t,!(i=this._edges.get(t)))throw new R("Graph.".concat(e,': could not find the "').concat(t,'" edge in the graph.'))}return i.attributes[r]}}},{name:function(t){return"get".concat(t,"Attributes")},attacher:function(t,e,n){t.prototype[e]=function(t){var r;if("mixed"!==this.type&&"mixed"!==n&&n!==this.type)throw new F("Graph.".concat(e,": cannot find this type of edges in your ").concat(this.type," graph."));if(arguments.length>1){if(this.multi)throw new F("Graph.".concat(e,": cannot use a {source,target} combo when asking about an edge's attributes in a MultiGraph since we cannot infer the one you want information about."));var i=""+t,o=""+arguments[1];if(!(r=c(this,i,o,n)))throw new R("Graph.".concat(e,': could not find an edge for the given path ("').concat(i,'" - "').concat(o,'").'))}else{if("mixed"!==n)throw new F("Graph.".concat(e,": calling this method with only a key (vs. a source and target) does not make sense since an edge with this key could have the other type."));if(t=""+t,!(r=this._edges.get(t)))throw new R("Graph.".concat(e,': could not find the "').concat(t,'" edge in the graph.'))}return r.attributes}}},{name:function(t){return"has".concat(t,"Attribute")},attacher:function(t,e,n){t.prototype[e]=function(t,r){var i;if("mixed"!==this.type&&"mixed"!==n&&n!==this.type)throw new F("Graph.".concat(e,": cannot find this type of edges in your ").concat(this.type," graph."));if(arguments.length>2){if(this.multi)throw new F("Graph.".concat(e,": cannot use a {source,target} combo when asking about an edge's attributes in a MultiGraph since we cannot infer the one you want information about."));var o=""+t,a=""+r;if(r=arguments[2],!(i=c(this,o,a,n)))throw new R("Graph.".concat(e,': could not find an edge for the given path ("').concat(o,'" - "').concat(a,'").'))}else{if("mixed"!==n)throw new F("Graph.".concat(e,": calling this method with only a key (vs. a source and target) does not make sense since an edge with this key could have the other type."));if(t=""+t,!(i=this._edges.get(t)))throw new R("Graph.".concat(e,': could not find the "').concat(t,'" edge in the graph.'))}return i.attributes.hasOwnProperty(r)}}},{name:function(t){return"set".concat(t,"Attribute")},attacher:function(t,e,n){t.prototype[e]=function(t,r,i){var o;if("mixed"!==this.type&&"mixed"!==n&&n!==this.type)throw new F("Graph.".concat(e,": cannot find this type of edges in your ").concat(this.type," graph."));if(arguments.length>3){if(this.multi)throw new F("Graph.".concat(e,": cannot use a {source,target} combo when asking about an edge's attributes in a MultiGraph since we cannot infer the one you want information about."));var a=""+t,u=""+r;if(r=arguments[2],i=arguments[3],!(o=c(this,a,u,n)))throw new R("Graph.".concat(e,': could not find an edge for the given path ("').concat(a,'" - "').concat(u,'").'))}else{if("mixed"!==n)throw new F("Graph.".concat(e,": calling this method with only a key (vs. a source and target) does not make sense since an edge with this key could have the other type."));if(t=""+t,!(o=this._edges.get(t)))throw new R("Graph.".concat(e,': could not find the "').concat(t,'" edge in the graph.'))}return o.attributes[r]=i,this.emit("edgeAttributesUpdated",{key:o.key,type:"set",attributes:o.attributes,name:r}),this}}},{name:function(t){return"update".concat(t,"Attribute")},attacher:function(t,e,n){t.prototype[e]=function(t,r,i){var o;if("mixed"!==this.type&&"mixed"!==n&&n!==this.type)throw new F("Graph.".concat(e,": cannot find this type of edges in your ").concat(this.type," graph."));if(arguments.length>3){if(this.multi)throw new F("Graph.".concat(e,": cannot use a {source,target} combo when asking about an edge's attributes in a MultiGraph since we cannot infer the one you want information about."));var a=""+t,u=""+r;if(r=arguments[2],i=arguments[3],!(o=c(this,a,u,n)))throw new R("Graph.".concat(e,': could not find an edge for the given path ("').concat(a,'" - "').concat(u,'").'))}else{if("mixed"!==n)throw new F("Graph.".concat(e,": calling this method with only a key (vs. a source and target) does not make sense since an edge with this key could have the other type."));if(t=""+t,!(o=this._edges.get(t)))throw new R("Graph.".concat(e,': could not find the "').concat(t,'" edge in the graph.'))}if("function"!=typeof i)throw new q("Graph.".concat(e,": updater should be a function."));return o.attributes[r]=i(o.attributes[r]),this.emit("edgeAttributesUpdated",{key:o.key,type:"set",attributes:o.attributes,name:r}),this}}},{name:function(t){return"remove".concat(t,"Attribute")},attacher:function(t,e,n){t.prototype[e]=function(t,r){var i;if("mixed"!==this.type&&"mixed"!==n&&n!==this.type)throw new F("Graph.".concat(e,": cannot find this type of edges in your ").concat(this.type," graph."));if(arguments.length>2){if(this.multi)throw new F("Graph.".concat(e,": cannot use a {source,target} combo when asking about an edge's attributes in a MultiGraph since we cannot infer the one you want information about."));var o=""+t,a=""+r;if(r=arguments[2],!(i=c(this,o,a,n)))throw new R("Graph.".concat(e,': could not find an edge for the given path ("').concat(o,'" - "').concat(a,'").'))}else{if("mixed"!==n)throw new F("Graph.".concat(e,": calling this method with only a key (vs. a source and target) does not make sense since an edge with this key could have the other type."));if(t=""+t,!(i=this._edges.get(t)))throw new R("Graph.".concat(e,': could not find the "').concat(t,'" edge in the graph.'))}return delete i.attributes[r],this.emit("edgeAttributesUpdated",{key:i.key,type:"remove",attributes:i.attributes,name:r}),this}}},{name:function(t){return"replace".concat(t,"Attributes")},attacher:function(t,e,n){t.prototype[e]=function(t,r){var i;if("mixed"!==this.type&&"mixed"!==n&&n!==this.type)throw new F("Graph.".concat(e,": cannot find this type of edges in your ").concat(this.type," graph."));if(arguments.length>2){if(this.multi)throw new F("Graph.".concat(e,": cannot use a {source,target} combo when asking about an edge's attributes in a MultiGraph since we cannot infer the one you want information about."));var o=""+t,a=""+r;if(r=arguments[2],!(i=c(this,o,a,n)))throw new R("Graph.".concat(e,': could not find an edge for the given path ("').concat(o,'" - "').concat(a,'").'))}else{if("mixed"!==n)throw new F("Graph.".concat(e,": calling this method with only a key (vs. a source and target) does not make sense since an edge with this key could have the other type."));if(t=""+t,!(i=this._edges.get(t)))throw new R("Graph.".concat(e,': could not find the "').concat(t,'" edge in the graph.'))}if(!s(r))throw new q("Graph.".concat(e,": provided attributes are not a plain object."));return i.attributes=r,this.emit("edgeAttributesUpdated",{key:i.key,type:"replace",attributes:i.attributes}),this}}},{name:function(t){return"merge".concat(t,"Attributes")},attacher:function(t,e,n){t.prototype[e]=function(t,r){var i;if("mixed"!==this.type&&"mixed"!==n&&n!==this.type)throw new F("Graph.".concat(e,": cannot find this type of edges in your ").concat(this.type," graph."));if(arguments.length>2){if(this.multi)throw new F("Graph.".concat(e,": cannot use a {source,target} combo when asking about an edge's attributes in a MultiGraph since we cannot infer the one you want information about."));var o=""+t,a=""+r;if(r=arguments[2],!(i=c(this,o,a,n)))throw new R("Graph.".concat(e,': could not find an edge for the given path ("').concat(o,'" - "').concat(a,'").'))}else{if("mixed"!==n)throw new F("Graph.".concat(e,": calling this method with only a key (vs. a source and target) does not make sense since an edge with this key could have the other type."));if(t=""+t,!(i=this._edges.get(t)))throw new R("Graph.".concat(e,': could not find the "').concat(t,'" edge in the graph.'))}if(!s(r))throw new q("Graph.".concat(e,": provided attributes are not a plain object."));return u(i.attributes,r),this.emit("edgeAttributesUpdated",{key:i.key,type:"merge",attributes:i.attributes,data:r}),this}}},{name:function(t){return"update".concat(t,"Attributes")},attacher:function(t,e,n){t.prototype[e]=function(t,r){var i;if("mixed"!==this.type&&"mixed"!==n&&n!==this.type)throw new F("Graph.".concat(e,": cannot find this type of edges in your ").concat(this.type," graph."));if(arguments.length>2){if(this.multi)throw new F("Graph.".concat(e,": cannot use a {source,target} combo when asking about an edge's attributes in a MultiGraph since we cannot infer the one you want information about."));var o=""+t,a=""+r;if(r=arguments[2],!(i=c(this,o,a,n)))throw new R("Graph.".concat(e,': could not find an edge for the given path ("').concat(o,'" - "').concat(a,'").'))}else{if("mixed"!==n)throw new F("Graph.".concat(e,": calling this method with only a key (vs. a source and target) does not make sense since an edge with this key could have the other type."));if(t=""+t,!(i=this._edges.get(t)))throw new R("Graph.".concat(e,': could not find the "').concat(t,'" edge in the graph.'))}if("function"!=typeof r)throw new q("Graph.".concat(e,": provided updater is not a function."));return i.attributes=r(i.attributes),this.emit("edgeAttributesUpdated",{key:i.key,type:"update",attributes:i.attributes}),this}}}],J=O,Q=I,Z=function(){var t=arguments,e=null,n=-1;return new J((function(){for(var r=null;;){if(null===e){if(++n>=t.length)return{done:!0};e=Q(t[n])}if(!0!==(r=e.next()).done)break;e=null}return r}))},tt=[{name:"edges",type:"mixed"},{name:"inEdges",type:"directed",direction:"in"},{name:"outEdges",type:"directed",direction:"out"},{name:"inboundEdges",type:"mixed",direction:"in"},{name:"outboundEdges",type:"mixed",direction:"out"},{name:"directedEdges",type:"directed"},{name:"undirectedEdges",type:"undirected"}];function et(t,e,n,r){var i=!1;for(var o in e)if(o!==r){var a=e[o];if(i=n(a.key,a.attributes,a.source.key,a.target.key,a.source.attributes,a.target.attributes,a.undirected),t&&i)return a.key}}function nt(t,e,n,r){var i,o,a,u=!1;for(var c in e)if(c!==r){i=e[c];do{if(o=i.source,a=i.target,u=n(i.key,i.attributes,o.key,a.key,o.attributes,a.attributes,i.undirected),t&&u)return i.key;i=i.next}while(void 0!==i)}}function rt(t,e){var n,r=Object.keys(t),i=r.length,o=0;return new O((function(){do{if(n)n=n.next;else{if(o>=i)return{done:!0};var a=r[o++];if(a===e){n=void 0;continue}n=t[a]}}while(!n);return{done:!1,value:{edge:n.key,attributes:n.attributes,source:n.source.key,target:n.target.key,sourceAttributes:n.source.attributes,targetAttributes:n.target.attributes,undirected:n.undirected}}}))}function it(t,e,n,r){var i=e[n];if(i){var o=i.source,a=i.target;return r(i.key,i.attributes,o.key,a.key,o.attributes,a.attributes,i.undirected)&&t?i.key:void 0}}function ot(t,e,n,r){var i=e[n];if(i){var o=!1;do{if(o=r(i.key,i.attributes,i.source.key,i.target.key,i.source.attributes,i.target.attributes,i.undirected),t&&o)return i.key;i=i.next}while(void 0!==i)}}function at(t,e){var n=t[e];return void 0!==n.next?new O((function(){if(!n)return{done:!0};var t={edge:n.key,attributes:n.attributes,source:n.source.key,target:n.target.key,sourceAttributes:n.source.attributes,targetAttributes:n.target.attributes,undirected:n.undirected};return n=n.next,{done:!1,value:t}})):O.of({edge:n.key,attributes:n.attributes,source:n.source.key,target:n.target.key,sourceAttributes:n.source.attributes,targetAttributes:n.target.attributes,undirected:n.undirected})}function ut(t,e,n,r){if(0!==e.size)for(var i,o,a="mixed"!==n&&n!==e.type,u="undirected"===n,c=!1,s=e._edges.values();!0!==(i=s.next()).done;)if(o=i.value,!a||o.undirected===u){var h=o,l=h.key,d=h.attributes,f=h.source,p=h.target;if(c=r(l,d,f.key,p.key,f.attributes,p.attributes,o.undirected),t&&c)return l}}function ct(t,e,n,r,i,o){var a,u=e?nt:et;if("undirected"!==n){if("out"!==r&&(a=u(t,i.in,o),t&&a))return a;if("in"!==r&&(a=u(t,i.out,o,r?void 0:i.key),t&&a))return a}if("directed"!==n&&(a=u(t,i.undirected,o),t&&a))return a}function st(t,e,n,r,i,o,a){var u,c=n?ot:it;if("undirected"!==e){if(void 0!==i.in&&"out"!==r&&(u=c(t,i.in,o,a),t&&u))return u;if(void 0!==i.out&&"in"!==r&&(r||i.key!==o)&&(u=c(t,i.out,o,a),t&&u))return u}if("directed"!==e&&void 0!==i.undirected&&(u=c(t,i.undirected,o,a),t&&u))return u}var ht=[{name:"neighbors",type:"mixed"},{name:"inNeighbors",type:"directed",direction:"in"},{name:"outNeighbors",type:"directed",direction:"out"},{name:"inboundNeighbors",type:"mixed",direction:"in"},{name:"outboundNeighbors",type:"mixed",direction:"out"},{name:"directedNeighbors",type:"directed"},{name:"undirectedNeighbors",type:"undirected"}];function lt(){this.A=null,this.B=null}function dt(t,e,n,r,i){for(var o in r){var a=r[o],u=a.source,c=a.target,s=u===n?c:u;if(!e||!e.has(s.key)){var h=i(s.key,s.attributes);if(t&&h)return s.key}}}function ft(t,e,n,r,i){if("mixed"!==e){if("undirected"===e)return dt(t,null,r,r.undirected,i);if("string"==typeof n)return dt(t,null,r,r[n],i)}var o,a=new lt;if("undirected"!==e){if("out"!==n){if(o=dt(t,null,r,r.in,i),t&&o)return o;a.wrap(r.in)}if("in"!==n){if(o=dt(t,a,r,r.out,i),t&&o)return o;a.wrap(r.out)}}if("directed"!==e&&(o=dt(t,a,r,r.undirected,i),t&&o))return o}function pt(t,e,n){var r=Object.keys(n),i=r.length,o=0;return new O((function(){var a=null;do{if(o>=i)return t&&t.wrap(n),{done:!0};var u=n[r[o++]],c=u.source,s=u.target;a=c===e?s:c,t&&t.has(a.key)&&(a=null)}while(null===a);return{done:!1,value:{neighbor:a.key,attributes:a.attributes}}}))}function yt(t,e,n,r,i){for(var o,a,u,c,s,h,l,d=r._nodes.values(),f=r.type;!0!==(o=d.next()).done;){var p=!1;if(a=o.value,"undirected"!==f)for(u in c=a.out){s=c[u];do{if(h=s.target,p=!0,l=i(a.key,h.key,a.attributes,h.attributes,s.key,s.attributes,s.undirected),t&&l)return s;s=s.next}while(s)}if("directed"!==f)for(u in c=a.undirected)if(!(e&&a.key>u)){s=c[u];do{if((h=s.target).key!==u&&(h=s.source),p=!0,l=i(a.key,h.key,a.attributes,h.attributes,s.key,s.attributes,s.undirected),t&&l)return s;s=s.next}while(s)}if(n&&!p&&(l=i(a.key,null,a.attributes,null,null,null,null),t&&l))return null}}function gt(t){if(!s(t))throw new q('Graph.import: invalid serialized node. A serialized node should be a plain object with at least a "key" property.');if(!("key"in t))throw new q("Graph.import: serialized node is missing its key.");if("attributes"in t&&(!s(t.attributes)||null===t.attributes))throw new q("Graph.import: invalid attributes. Attributes should be a plain object, null or omitted.")}function vt(t){if(!s(t))throw new q('Graph.import: invalid serialized edge. A serialized edge should be a plain object with at least a "source" & "target" property.');if(!("source"in t))throw new q("Graph.import: serialized edge is missing its source.");if(!("target"in t))throw new q("Graph.import: serialized edge is missing its target.");if("attributes"in t&&(!s(t.attributes)||null===t.attributes))throw new q("Graph.import: invalid attributes. Attributes should be a plain object, null or omitted.");if("undirected"in t&&"boolean"!=typeof t.undirected)throw new q("Graph.import: invalid undirectedness information. Undirected should be boolean or omitted.")}lt.prototype.wrap=function(t){null===this.A?this.A=t:null===this.B&&(this.B=t)},lt.prototype.has=function(t){return null!==this.A&&t in this.A||null!==this.B&&t in this.B};var mt,wt=(mt=255&Math.floor(256*Math.random()),function(){return mt++}),bt=new Set(["directed","undirected","mixed"]),_t=new Set(["domain","_events","_eventsCount","_maxListeners"]),xt={allowSelfLoops:!0,multi:!1,type:"mixed"};function kt(t,e,n){var r=new t.NodeDataClass(e,n);return t._nodes.set(e,r),t.emit("nodeAdded",{key:e,attributes:n}),r}function Et(t,e,n,r,i,o,a,u){if(!r&&"undirected"===t.type)throw new F("Graph.".concat(e,": you cannot add a directed edge to an undirected graph. Use the #.addEdge or #.addUndirectedEdge instead."));if(r&&"directed"===t.type)throw new F("Graph.".concat(e,": you cannot add an undirected edge to a directed graph. Use the #.addEdge or #.addDirectedEdge instead."));if(u&&!s(u))throw new q("Graph.".concat(e,': invalid attributes. Expecting an object but got "').concat(u,'"'));if(o=""+o,a=""+a,u=u||{},!t.allowSelfLoops&&o===a)throw new F("Graph.".concat(e,': source & target are the same ("').concat(o,"\"), thus creating a loop explicitly forbidden by this graph 'allowSelfLoops' option set to false."));var c=t._nodes.get(o),h=t._nodes.get(a);if(!c)throw new R("Graph.".concat(e,': source node "').concat(o,'" not found.'));if(!h)throw new R("Graph.".concat(e,': target node "').concat(a,'" not found.'));var l={key:null,undirected:r,source:o,target:a,attributes:u};if(n)i=t._edgeKeyGenerator();else if(i=""+i,t._edges.has(i))throw new F("Graph.".concat(e,': the "').concat(i,'" edge already exists in the graph.'));if(!t.multi&&(r?void 0!==c.undirected[a]:void 0!==c.out[a]))throw new F("Graph.".concat(e,': an edge linking "').concat(o,'" to "').concat(a,"\" already exists. If you really want to add multiple edges linking those nodes, you should create a multi graph by using the 'multi' option."));var d=new X(r,i,c,h,u);t._edges.set(i,d);var f=o===a;return r?(c.undirectedDegree++,h.undirectedDegree++,f&&(c.undirectedLoops++,t._undirectedSelfLoopCount++)):(c.outDegree++,h.inDegree++,f&&(c.directedLoops++,t._directedSelfLoopCount++)),t.multi?d.attachMulti():d.attach(),r?t._undirectedSize++:t._directedSize++,l.key=i,t.emit("edgeAdded",l),i}function At(t,e,n,r,i,o,a,c,h){if(!r&&"undirected"===t.type)throw new F("Graph.".concat(e,": you cannot merge/update a directed edge to an undirected graph. Use the #.mergeEdge/#.updateEdge or #.addUndirectedEdge instead."));if(r&&"directed"===t.type)throw new F("Graph.".concat(e,": you cannot merge/update an undirected edge to a directed graph. Use the #.mergeEdge/#.updateEdge or #.addDirectedEdge instead."));if(c)if(h){if("function"!=typeof c)throw new q("Graph.".concat(e,': invalid updater function. Expecting a function but got "').concat(c,'"'))}else if(!s(c))throw new q("Graph.".concat(e,': invalid attributes. Expecting an object but got "').concat(c,'"'));var l;if(o=""+o,a=""+a,h&&(l=c,c=void 0),!t.allowSelfLoops&&o===a)throw new F("Graph.".concat(e,': source & target are the same ("').concat(o,"\"), thus creating a loop explicitly forbidden by this graph 'allowSelfLoops' option set to false."));var d,f,p=t._nodes.get(o),y=t._nodes.get(a);if(!n&&(d=t._edges.get(i))){if(!(d.source.key===o&&d.target.key===a||r&&d.source.key===a&&d.target.key===o))throw new F("Graph.".concat(e,': inconsistency detected when attempting to merge the "').concat(i,'" edge with "').concat(o,'" source & "').concat(a,'" target vs. ("').concat(d.source.key,'", "').concat(d.target.key,'").'));f=d}if(f||t.multi||!p||(f=r?p.undirected[a]:p.out[a]),f){var g=[f.key,!1,!1,!1];if(h?!l:!c)return g;if(h){var v=f.attributes;f.attributes=l(v),t.emit("edgeAttributesUpdated",{type:"replace",key:f.key,attributes:f.attributes})}else u(f.attributes,c),t.emit("edgeAttributesUpdated",{type:"merge",key:f.key,attributes:f.attributes,data:c});return g}c=c||{},h&&l&&(c=l(c));var m={key:null,undirected:r,source:o,target:a,attributes:c};if(n)i=t._edgeKeyGenerator();else if(i=""+i,t._edges.has(i))throw new F("Graph.".concat(e,': the "').concat(i,'" edge already exists in the graph.'));var w=!1,b=!1;p||(p=kt(t,o,{}),w=!0,o===a&&(y=p,b=!0)),y||(y=kt(t,a,{}),b=!0),d=new X(r,i,p,y,c),t._edges.set(i,d);var _=o===a;return r?(p.undirectedDegree++,y.undirectedDegree++,_&&(p.undirectedLoops++,t._undirectedSelfLoopCount++)):(p.outDegree++,y.inDegree++,_&&(p.directedLoops++,t._directedSelfLoopCount++)),t.multi?d.attachMulti():d.attach(),r?t._undirectedSize++:t._directedSize++,m.key=i,t.emit("edgeAdded",m),[i,!0,w,b]}function St(t,e){t._edges.delete(e.key);var n=e.source,r=e.target,i=e.attributes,o=e.undirected,a=n===r;o?(n.undirectedDegree--,r.undirectedDegree--,a&&(n.undirectedLoops--,t._undirectedSelfLoopCount--)):(n.outDegree--,r.inDegree--,a&&(n.directedLoops--,t._directedSelfLoopCount--)),t.multi?e.detachMulti():e.detach(),o?t._undirectedSize--:t._directedSize--,t.emit("edgeDropped",{key:e.key,attributes:i,source:n.key,target:r.key,undirected:o})}var Lt=function(n){function r(t){var e;if(e=n.call(this)||this,"boolean"!=typeof(t=u({},xt,t)).multi)throw new q("Graph.constructor: invalid 'multi' option. Expecting a boolean but got \"".concat(t.multi,'".'));if(!bt.has(t.type))throw new q('Graph.constructor: invalid \'type\' option. Should be one of "mixed", "directed" or "undirected" but got "'.concat(t.type,'".'));if("boolean"!=typeof t.allowSelfLoops)throw new q("Graph.constructor: invalid 'allowSelfLoops' option. Expecting a boolean but got \"".concat(t.allowSelfLoops,'".'));var r="mixed"===t.type?K:"directed"===t.type?W:Y;l(a(e),"NodeDataClass",r);var i="geid_"+wt()+"_",o=0;return l(a(e),"_attributes",{}),l(a(e),"_nodes",new Map),l(a(e),"_edges",new Map),l(a(e),"_directedSize",0),l(a(e),"_undirectedSize",0),l(a(e),"_directedSelfLoopCount",0),l(a(e),"_undirectedSelfLoopCount",0),l(a(e),"_edgeKeyGenerator",(function(){var t;do{t=i+o++}while(e._edges.has(t));return t})),l(a(e),"_options",t),_t.forEach((function(t){return l(a(e),t,e[t])})),d(a(e),"order",(function(){return e._nodes.size})),d(a(e),"size",(function(){return e._edges.size})),d(a(e),"directedSize",(function(){return e._directedSize})),d(a(e),"undirectedSize",(function(){return e._undirectedSize})),d(a(e),"selfLoopCount",(function(){return e._directedSelfLoopCount+e._undirectedSelfLoopCount})),d(a(e),"directedSelfLoopCount",(function(){return e._directedSelfLoopCount})),d(a(e),"undirectedSelfLoopCount",(function(){return e._undirectedSelfLoopCount})),d(a(e),"multi",e._options.multi),d(a(e),"type",e._options.type),d(a(e),"allowSelfLoops",e._options.allowSelfLoops),d(a(e),"implementation",(function(){return"graphology"})),e}e(r,n);var i=r.prototype;return i._resetInstanceCounters=function(){this._directedSize=0,this._undirectedSize=0,this._directedSelfLoopCount=0,this._undirectedSelfLoopCount=0},i.hasNode=function(t){return this._nodes.has(""+t)},i.hasDirectedEdge=function(t,e){if("undirected"===this.type)return!1;if(1===arguments.length){var n=""+t,r=this._edges.get(n);return!!r&&!r.undirected}if(2===arguments.length){t=""+t,e=""+e;var i=this._nodes.get(t);return!!i&&i.out.hasOwnProperty(e)}throw new q("Graph.hasDirectedEdge: invalid arity (".concat(arguments.length,", instead of 1 or 2). You can either ask for an edge id or for the existence of an edge between a source & a target."))},i.hasUndirectedEdge=function(t,e){if("directed"===this.type)return!1;if(1===arguments.length){var n=""+t,r=this._edges.get(n);return!!r&&r.undirected}if(2===arguments.length){t=""+t,e=""+e;var i=this._nodes.get(t);return!!i&&i.undirected.hasOwnProperty(e)}throw new q("Graph.hasDirectedEdge: invalid arity (".concat(arguments.length,", instead of 1 or 2). You can either ask for an edge id or for the existence of an edge between a source & a target."))},i.hasEdge=function(t,e){if(1===arguments.length){var n=""+t;return this._edges.has(n)}if(2===arguments.length){t=""+t,e=""+e;var r=this._nodes.get(t);return!!r&&(void 0!==r.out&&r.out.hasOwnProperty(e)||void 0!==r.undirected&&r.undirected.hasOwnProperty(e))}throw new q("Graph.hasEdge: invalid arity (".concat(arguments.length,", instead of 1 or 2). You can either ask for an edge id or for the existence of an edge between a source & a target."))},i.directedEdge=function(t,e){if("undirected"!==this.type){if(t=""+t,e=""+e,this.multi)throw new F("Graph.directedEdge: this method is irrelevant with multigraphs since there might be multiple edges between source & target. See #.directedEdges instead.");var n=this._nodes.get(t);if(!n)throw new R('Graph.directedEdge: could not find the "'.concat(t,'" source node in the graph.'));if(!this._nodes.has(e))throw new R('Graph.directedEdge: could not find the "'.concat(e,'" target node in the graph.'));var r=n.out&&n.out[e]||void 0;return r?r.key:void 0}},i.undirectedEdge=function(t,e){if("directed"!==this.type){if(t=""+t,e=""+e,this.multi)throw new F("Graph.undirectedEdge: this method is irrelevant with multigraphs since there might be multiple edges between source & target. See #.undirectedEdges instead.");var n=this._nodes.get(t);if(!n)throw new R('Graph.undirectedEdge: could not find the "'.concat(t,'" source node in the graph.'));if(!this._nodes.has(e))throw new R('Graph.undirectedEdge: could not find the "'.concat(e,'" target node in the graph.'));var r=n.undirected&&n.undirected[e]||void 0;return r?r.key:void 0}},i.edge=function(t,e){if(this.multi)throw new F("Graph.edge: this method is irrelevant with multigraphs since there might be multiple edges between source & target. See #.edges instead.");t=""+t,e=""+e;var n=this._nodes.get(t);if(!n)throw new R('Graph.edge: could not find the "'.concat(t,'" source node in the graph.'));if(!this._nodes.has(e))throw new R('Graph.edge: could not find the "'.concat(e,'" target node in the graph.'));var r=n.out&&n.out[e]||n.undirected&&n.undirected[e]||void 0;if(r)return r.key},i.areDirectedNeighbors=function(t,e){t=""+t,e=""+e;var n=this._nodes.get(t);if(!n)throw new R('Graph.areDirectedNeighbors: could not find the "'.concat(t,'" node in the graph.'));return"undirected"!==this.type&&(e in n.in||e in n.out)},i.areOutNeighbors=function(t,e){t=""+t,e=""+e;var n=this._nodes.get(t);if(!n)throw new R('Graph.areOutNeighbors: could not find the "'.concat(t,'" node in the graph.'));return"undirected"!==this.type&&e in n.out},i.areInNeighbors=function(t,e){t=""+t,e=""+e;var n=this._nodes.get(t);if(!n)throw new R('Graph.areInNeighbors: could not find the "'.concat(t,'" node in the graph.'));return"undirected"!==this.type&&e in n.in},i.areUndirectedNeighbors=function(t,e){t=""+t,e=""+e;var n=this._nodes.get(t);if(!n)throw new R('Graph.areUndirectedNeighbors: could not find the "'.concat(t,'" node in the graph.'));return"directed"!==this.type&&e in n.undirected},i.areNeighbors=function(t,e){t=""+t,e=""+e;var n=this._nodes.get(t);if(!n)throw new R('Graph.areNeighbors: could not find the "'.concat(t,'" node in the graph.'));return"undirected"!==this.type&&(e in n.in||e in n.out)||"directed"!==this.type&&e in n.undirected},i.areInboundNeighbors=function(t,e){t=""+t,e=""+e;var n=this._nodes.get(t);if(!n)throw new R('Graph.areInboundNeighbors: could not find the "'.concat(t,'" node in the graph.'));return"undirected"!==this.type&&e in n.in||"directed"!==this.type&&e in n.undirected},i.areOutboundNeighbors=function(t,e){t=""+t,e=""+e;var n=this._nodes.get(t);if(!n)throw new R('Graph.areOutboundNeighbors: could not find the "'.concat(t,'" node in the graph.'));return"undirected"!==this.type&&e in n.out||"directed"!==this.type&&e in n.undirected},i.inDegree=function(t){t=""+t;var e=this._nodes.get(t);if(!e)throw new R('Graph.inDegree: could not find the "'.concat(t,'" node in the graph.'));return"undirected"===this.type?0:e.inDegree},i.outDegree=function(t){t=""+t;var e=this._nodes.get(t);if(!e)throw new R('Graph.outDegree: could not find the "'.concat(t,'" node in the graph.'));return"undirected"===this.type?0:e.outDegree},i.directedDegree=function(t){t=""+t;var e=this._nodes.get(t);if(!e)throw new R('Graph.directedDegree: could not find the "'.concat(t,'" node in the graph.'));return"undirected"===this.type?0:e.inDegree+e.outDegree},i.undirectedDegree=function(t){t=""+t;var e=this._nodes.get(t);if(!e)throw new R('Graph.undirectedDegree: could not find the "'.concat(t,'" node in the graph.'));return"directed"===this.type?0:e.undirectedDegree},i.inboundDegree=function(t){t=""+t;var e=this._nodes.get(t);if(!e)throw new R('Graph.inboundDegree: could not find the "'.concat(t,'" node in the graph.'));var n=0;return"directed"!==this.type&&(n+=e.undirectedDegree),"undirected"!==this.type&&(n+=e.inDegree),n},i.outboundDegree=function(t){t=""+t;var e=this._nodes.get(t);if(!e)throw new R('Graph.outboundDegree: could not find the "'.concat(t,'" node in the graph.'));var n=0;return"directed"!==this.type&&(n+=e.undirectedDegree),"undirected"!==this.type&&(n+=e.outDegree),n},i.degree=function(t){t=""+t;var e=this._nodes.get(t);if(!e)throw new R('Graph.degree: could not find the "'.concat(t,'" node in the graph.'));var n=0;return"directed"!==this.type&&(n+=e.undirectedDegree),"undirected"!==this.type&&(n+=e.inDegree+e.outDegree),n},i.inDegreeWithoutSelfLoops=function(t){t=""+t;var e=this._nodes.get(t);if(!e)throw new R('Graph.inDegreeWithoutSelfLoops: could not find the "'.concat(t,'" node in the graph.'));return"undirected"===this.type?0:e.inDegree-e.directedLoops},i.outDegreeWithoutSelfLoops=function(t){t=""+t;var e=this._nodes.get(t);if(!e)throw new R('Graph.outDegreeWithoutSelfLoops: could not find the "'.concat(t,'" node in the graph.'));return"undirected"===this.type?0:e.outDegree-e.directedLoops},i.directedDegreeWithoutSelfLoops=function(t){t=""+t;var e=this._nodes.get(t);if(!e)throw new R('Graph.directedDegreeWithoutSelfLoops: could not find the "'.concat(t,'" node in the graph.'));return"undirected"===this.type?0:e.inDegree+e.outDegree-2*e.directedLoops},i.undirectedDegreeWithoutSelfLoops=function(t){t=""+t;var e=this._nodes.get(t);if(!e)throw new R('Graph.undirectedDegreeWithoutSelfLoops: could not find the "'.concat(t,'" node in the graph.'));return"directed"===this.type?0:e.undirectedDegree-2*e.undirectedLoops},i.inboundDegreeWithoutSelfLoops=function(t){t=""+t;var e=this._nodes.get(t);if(!e)throw new R('Graph.inboundDegreeWithoutSelfLoops: could not find the "'.concat(t,'" node in the graph.'));var n=0,r=0;return"directed"!==this.type&&(n+=e.undirectedDegree,r+=2*e.undirectedLoops),"undirected"!==this.type&&(n+=e.inDegree,r+=e.directedLoops),n-r},i.outboundDegreeWithoutSelfLoops=function(t){t=""+t;var e=this._nodes.get(t);if(!e)throw new R('Graph.outboundDegreeWithoutSelfLoops: could not find the "'.concat(t,'" node in the graph.'));var n=0,r=0;return"directed"!==this.type&&(n+=e.undirectedDegree,r+=2*e.undirectedLoops),"undirected"!==this.type&&(n+=e.outDegree,r+=e.directedLoops),n-r},i.degreeWithoutSelfLoops=function(t){t=""+t;var e=this._nodes.get(t);if(!e)throw new R('Graph.degreeWithoutSelfLoops: could not find the "'.concat(t,'" node in the graph.'));var n=0,r=0;return"directed"!==this.type&&(n+=e.undirectedDegree,r+=2*e.undirectedLoops),"undirected"!==this.type&&(n+=e.inDegree+e.outDegree,r+=2*e.directedLoops),n-r},i.source=function(t){t=""+t;var e=this._edges.get(t);if(!e)throw new R('Graph.source: could not find the "'.concat(t,'" edge in the graph.'));return e.source.key},i.target=function(t){t=""+t;var e=this._edges.get(t);if(!e)throw new R('Graph.target: could not find the "'.concat(t,'" edge in the graph.'));return e.target.key},i.extremities=function(t){t=""+t;var e=this._edges.get(t);if(!e)throw new R('Graph.extremities: could not find the "'.concat(t,'" edge in the graph.'));return[e.source.key,e.target.key]},i.opposite=function(t,e){t=""+t,e=""+e;var n=this._edges.get(e);if(!n)throw new R('Graph.opposite: could not find the "'.concat(e,'" edge in the graph.'));var r=n.source.key,i=n.target.key;if(t===r)return i;if(t===i)return r;throw new R('Graph.opposite: the "'.concat(t,'" node is not attached to the "').concat(e,'" edge (').concat(r,", ").concat(i,")."))},i.hasExtremity=function(t,e){t=""+t,e=""+e;var n=this._edges.get(t);if(!n)throw new R('Graph.hasExtremity: could not find the "'.concat(t,'" edge in the graph.'));return n.source.key===e||n.target.key===e},i.isUndirected=function(t){t=""+t;var e=this._edges.get(t);if(!e)throw new R('Graph.isUndirected: could not find the "'.concat(t,'" edge in the graph.'));return e.undirected},i.isDirected=function(t){t=""+t;var e=this._edges.get(t);if(!e)throw new R('Graph.isDirected: could not find the "'.concat(t,'" edge in the graph.'));return!e.undirected},i.isSelfLoop=function(t){t=""+t;var e=this._edges.get(t);if(!e)throw new R('Graph.isSelfLoop: could not find the "'.concat(t,'" edge in the graph.'));return e.source===e.target},i.addNode=function(t,e){var n=function(t,e,n){if(n&&!s(n))throw new q('Graph.addNode: invalid attributes. Expecting an object but got "'.concat(n,'"'));if(e=""+e,n=n||{},t._nodes.has(e))throw new F('Graph.addNode: the "'.concat(e,'" node already exist in the graph.'));var r=new t.NodeDataClass(e,n);return t._nodes.set(e,r),t.emit("nodeAdded",{key:e,attributes:n}),r}(this,t,e);return n.key},i.mergeNode=function(t,e){if(e&&!s(e))throw new q('Graph.mergeNode: invalid attributes. Expecting an object but got "'.concat(e,'"'));t=""+t,e=e||{};var n=this._nodes.get(t);return n?(e&&(u(n.attributes,e),this.emit("nodeAttributesUpdated",{type:"merge",key:t,attributes:n.attributes,data:e})),[t,!1]):(n=new this.NodeDataClass(t,e),this._nodes.set(t,n),this.emit("nodeAdded",{key:t,attributes:e}),[t,!0])},i.updateNode=function(t,e){if(e&&"function"!=typeof e)throw new q('Graph.updateNode: invalid updater function. Expecting a function but got "'.concat(e,'"'));t=""+t;var n=this._nodes.get(t);if(n){if(e){var r=n.attributes;n.attributes=e(r),this.emit("nodeAttributesUpdated",{type:"replace",key:t,attributes:n.attributes})}return[t,!1]}var i=e?e({}):{};return n=new this.NodeDataClass(t,i),this._nodes.set(t,n),this.emit("nodeAdded",{key:t,attributes:i}),[t,!0]},i.dropNode=function(t){t=""+t;var e,n=this._nodes.get(t);if(!n)throw new R('Graph.dropNode: could not find the "'.concat(t,'" node in the graph.'));if("undirected"!==this.type){for(var r in n.out){e=n.out[r];do{St(this,e),e=e.next}while(e)}for(var i in n.in){e=n.in[i];do{St(this,e),e=e.next}while(e)}}if("directed"!==this.type)for(var o in n.undirected){e=n.undirected[o];do{St(this,e),e=e.next}while(e)}this._nodes.delete(t),this.emit("nodeDropped",{key:t,attributes:n.attributes})},i.dropEdge=function(t){var e;if(arguments.length>1){var n=""+arguments[0],r=""+arguments[1];if(!(e=c(this,n,r,this.type)))throw new R('Graph.dropEdge: could not find the "'.concat(n,'" -> "').concat(r,'" edge in the graph.'))}else if(t=""+t,!(e=this._edges.get(t)))throw new R('Graph.dropEdge: could not find the "'.concat(t,'" edge in the graph.'));return St(this,e),this},i.dropDirectedEdge=function(t,e){if(arguments.length<2)throw new F("Graph.dropDirectedEdge: it does not make sense to try and drop a directed edge by key. What if the edge with this key is undirected? Use #.dropEdge for this purpose instead.");if(this.multi)throw new F("Graph.dropDirectedEdge: cannot use a {source,target} combo when dropping an edge in a MultiGraph since we cannot infer the one you want to delete as there could be multiple ones.");var n=c(this,t=""+t,e=""+e,"directed");if(!n)throw new R('Graph.dropDirectedEdge: could not find a "'.concat(t,'" -> "').concat(e,'" edge in the graph.'));return St(this,n),this},i.dropUndirectedEdge=function(t,e){if(arguments.length<2)throw new F("Graph.dropUndirectedEdge: it does not make sense to drop a directed edge by key. What if the edge with this key is undirected? Use #.dropEdge for this purpose instead.");if(this.multi)throw new F("Graph.dropUndirectedEdge: cannot use a {source,target} combo when dropping an edge in a MultiGraph since we cannot infer the one you want to delete as there could be multiple ones.");var n=c(this,t,e,"undirected");if(!n)throw new R('Graph.dropUndirectedEdge: could not find a "'.concat(t,'" -> "').concat(e,'" edge in the graph.'));return St(this,n),this},i.clear=function(){this._edges.clear(),this._nodes.clear(),this._resetInstanceCounters(),this.emit("cleared")},i.clearEdges=function(){for(var t,e=this._nodes.values();!0!==(t=e.next()).done;)t.value.clear();this._edges.clear(),this._resetInstanceCounters(),this.emit("edgesCleared")},i.getAttribute=function(t){return this._attributes[t]},i.getAttributes=function(){return this._attributes},i.hasAttribute=function(t){return this._attributes.hasOwnProperty(t)},i.setAttribute=function(t,e){return this._attributes[t]=e,this.emit("attributesUpdated",{type:"set",attributes:this._attributes,name:t}),this},i.updateAttribute=function(t,e){if("function"!=typeof e)throw new q("Graph.updateAttribute: updater should be a function.");var n=this._attributes[t];return this._attributes[t]=e(n),this.emit("attributesUpdated",{type:"set",attributes:this._attributes,name:t}),this},i.removeAttribute=function(t){return delete this._attributes[t],this.emit("attributesUpdated",{type:"remove",attributes:this._attributes,name:t}),this},i.replaceAttributes=function(t){if(!s(t))throw new q("Graph.replaceAttributes: provided attributes are not a plain object.");return this._attributes=t,this.emit("attributesUpdated",{type:"replace",attributes:this._attributes}),this},i.mergeAttributes=function(t){if(!s(t))throw new q("Graph.mergeAttributes: provided attributes are not a plain object.");return u(this._attributes,t),this.emit("attributesUpdated",{type:"merge",attributes:this._attributes,data:t}),this},i.updateAttributes=function(t){if("function"!=typeof t)throw new q("Graph.updateAttributes: provided updater is not a function.");return this._attributes=t(this._attributes),this.emit("attributesUpdated",{type:"update",attributes:this._attributes}),this},i.updateEachNodeAttributes=function(t,e){if("function"!=typeof t)throw new q("Graph.updateEachNodeAttributes: expecting an updater function.");if(e&&!f(e))throw new q("Graph.updateEachNodeAttributes: invalid hints. Expecting an object having the following shape: {attributes?: [string]}");for(var n,r,i=this._nodes.values();!0!==(n=i.next()).done;)(r=n.value).attributes=t(r.key,r.attributes);this.emit("eachNodeAttributesUpdated",{hints:e||null})},i.updateEachEdgeAttributes=function(t,e){if("function"!=typeof t)throw new q("Graph.updateEachEdgeAttributes: expecting an updater function.");if(e&&!f(e))throw new q("Graph.updateEachEdgeAttributes: invalid hints. Expecting an object having the following shape: {attributes?: [string]}");for(var n,r,i,o,a=this._edges.values();!0!==(n=a.next()).done;)i=(r=n.value).source,o=r.target,r.attributes=t(r.key,r.attributes,i.key,o.key,i.attributes,o.attributes,r.undirected);this.emit("eachEdgeAttributesUpdated",{hints:e||null})},i.forEachAdjacencyEntry=function(t){if("function"!=typeof t)throw new q("Graph.forEachAdjacencyEntry: expecting a callback.");yt(!1,!1,!1,this,t)},i.forEachAdjacencyEntryWithOrphans=function(t){if("function"!=typeof t)throw new q("Graph.forEachAdjacencyEntryWithOrphans: expecting a callback.");yt(!1,!1,!0,this,t)},i.forEachAssymetricAdjacencyEntry=function(t){if("function"!=typeof t)throw new q("Graph.forEachAssymetricAdjacencyEntry: expecting a callback.");yt(!1,!0,!1,this,t)},i.forEachAssymetricAdjacencyEntryWithOrphans=function(t){if("function"!=typeof t)throw new q("Graph.forEachAssymetricAdjacencyEntryWithOrphans: expecting a callback.");yt(!1,!0,!0,this,t)},i.nodes=function(){return"function"==typeof Array.from?Array.from(this._nodes.keys()):T(this._nodes.keys(),this._nodes.size)},i.forEachNode=function(t){if("function"!=typeof t)throw new q("Graph.forEachNode: expecting a callback.");for(var e,n,r=this._nodes.values();!0!==(e=r.next()).done;)t((n=e.value).key,n.attributes)},i.findNode=function(t){if("function"!=typeof t)throw new q("Graph.findNode: expecting a callback.");for(var e,n,r=this._nodes.values();!0!==(e=r.next()).done;)if(t((n=e.value).key,n.attributes))return n.key},i.mapNodes=function(t){if("function"!=typeof t)throw new q("Graph.mapNode: expecting a callback.");for(var e,n,r=this._nodes.values(),i=new Array(this.order),o=0;!0!==(e=r.next()).done;)n=e.value,i[o++]=t(n.key,n.attributes);return i},i.someNode=function(t){if("function"!=typeof t)throw new q("Graph.someNode: expecting a callback.");for(var e,n,r=this._nodes.values();!0!==(e=r.next()).done;)if(t((n=e.value).key,n.attributes))return!0;return!1},i.everyNode=function(t){if("function"!=typeof t)throw new q("Graph.everyNode: expecting a callback.");for(var e,n,r=this._nodes.values();!0!==(e=r.next()).done;)if(!t((n=e.value).key,n.attributes))return!1;return!0},i.filterNodes=function(t){if("function"!=typeof t)throw new q("Graph.filterNodes: expecting a callback.");for(var e,n,r=this._nodes.values(),i=[];!0!==(e=r.next()).done;)t((n=e.value).key,n.attributes)&&i.push(n.key);return i},i.reduceNodes=function(t,e){if("function"!=typeof t)throw new q("Graph.reduceNodes: expecting a callback.");if(arguments.length<2)throw new q("Graph.reduceNodes: missing initial value. You must provide it because the callback takes more than one argument and we cannot infer the initial value from the first iteration, as you could with a simple array.");for(var n,r,i=e,o=this._nodes.values();!0!==(n=o.next()).done;)i=t(i,(r=n.value).key,r.attributes);return i},i.nodeEntries=function(){var t=this._nodes.values();return new O((function(){var e=t.next();if(e.done)return e;var n=e.value;return{value:{node:n.key,attributes:n.attributes},done:!1}}))},i.export=function(){var t=this,e=new Array(this._nodes.size),n=0;this._nodes.forEach((function(t,r){e[n++]=function(t,e){var n={key:t};return h(e.attributes)||(n.attributes=u({},e.attributes)),n}(r,t)}));var r=new Array(this._edges.size);return n=0,this._edges.forEach((function(e,i){r[n++]=function(t,e,n){var r={key:e,source:n.source.key,target:n.target.key};return h(n.attributes)||(r.attributes=u({},n.attributes)),"mixed"===t&&n.undirected&&(r.undirected=!0),r}(t.type,i,e)})),{options:{type:this.type,multi:this.multi,allowSelfLoops:this.allowSelfLoops},attributes:this.getAttributes(),nodes:e,edges:r}},i.import=function(t){var e,n,i,o,a,u=this,c=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(t instanceof r)return t.forEachNode((function(t,e){c?u.mergeNode(t,e):u.addNode(t,e)})),t.forEachEdge((function(t,e,n,r,i,o,a){c?a?u.mergeUndirectedEdgeWithKey(t,n,r,e):u.mergeDirectedEdgeWithKey(t,n,r,e):a?u.addUndirectedEdgeWithKey(t,n,r,e):u.addDirectedEdgeWithKey(t,n,r,e)})),this;if(!s(t))throw new q("Graph.import: invalid argument. Expecting a serialized graph or, alternatively, a Graph instance.");if(t.attributes){if(!s(t.attributes))throw new q("Graph.import: invalid attributes. Expecting a plain object.");c?this.mergeAttributes(t.attributes):this.replaceAttributes(t.attributes)}if(t.nodes){if(i=t.nodes,!Array.isArray(i))throw new q("Graph.import: invalid nodes. Expecting an array.");for(e=0,n=i.length;e<n;e++){gt(o=i[e]);var h=o,l=h.key,d=h.attributes;c?this.mergeNode(l,d):this.addNode(l,d)}}if(t.edges){var f=!1;if("undirected"===this.type&&(f=!0),i=t.edges,!Array.isArray(i))throw new q("Graph.import: invalid edges. Expecting an array.");for(e=0,n=i.length;e<n;e++){vt(a=i[e]);var p=a,y=p.source,g=p.target,v=p.attributes,m=p.undirected,w=void 0===m?f:m;"key"in a?(c?w?this.mergeUndirectedEdgeWithKey:this.mergeDirectedEdgeWithKey:w?this.addUndirectedEdgeWithKey:this.addDirectedEdgeWithKey).call(this,a.key,y,g,v):(c?w?this.mergeUndirectedEdge:this.mergeDirectedEdge:w?this.addUndirectedEdge:this.addDirectedEdge).call(this,y,g,v)}}return this},i.nullCopy=function(t){var e=new r(u({},this._options,t));return e.replaceAttributes(u({},this.getAttributes())),e},i.emptyCopy=function(t){var e=this.nullCopy(t);return this._nodes.forEach((function(t,n){var r=u({},t.attributes);t=new e.NodeDataClass(n,r),e._nodes.set(n,t)})),e},i.copy=function(t){if("string"==typeof(t=t||{}).type&&t.type!==this.type&&"mixed"!==t.type)throw new F('Graph.copy: cannot create an incompatible copy from "'.concat(this.type,'" type to "').concat(t.type,'" because this would mean losing information about the current graph.'));if("boolean"==typeof t.multi&&t.multi!==this.multi&&!0!==t.multi)throw new F("Graph.copy: cannot create an incompatible copy by downgrading a multi graph to a simple one because this would mean losing information about the current graph.");if("boolean"==typeof t.allowSelfLoops&&t.allowSelfLoops!==this.allowSelfLoops&&!0!==t.allowSelfLoops)throw new F("Graph.copy: cannot create an incompatible copy from a graph allowing self loops to one that does not because this would mean losing information about the current graph.");for(var e,n,r=this.emptyCopy(t),i=this._edges.values();!0!==(e=i.next()).done;)Et(r,"copy",!1,(n=e.value).undirected,n.key,n.source.key,n.target.key,u({},n.attributes));return r},i.toJSON=function(){return this.export()},i.toString=function(){return"[object Graph]"},i.inspect=function(){var e=this,n={};this._nodes.forEach((function(t,e){n[e]=t.attributes}));var r={},i={};this._edges.forEach((function(t,n){var o,a=t.undirected?"--":"->",u="",c=t.source.key,s=t.target.key;t.undirected&&c>s&&(o=c,c=s,s=o);var h="(".concat(c,")").concat(a,"(").concat(s,")");n.startsWith("geid_")?e.multi&&(void 0===i[h]?i[h]=0:i[h]++,u+="".concat(i[h],". ")):u+="[".concat(n,"]: "),r[u+=h]=t.attributes}));var o={};for(var a in this)this.hasOwnProperty(a)&&!_t.has(a)&&"function"!=typeof this[a]&&"symbol"!==t(a)&&(o[a]=this[a]);return o.attributes=this._attributes,o.nodes=n,o.edges=r,l(o,"constructor",this.constructor),o},r}(y.exports.EventEmitter);"undefined"!=typeof Symbol&&(Lt.prototype[Symbol.for("nodejs.util.inspect.custom")]=Lt.prototype.inspect),[{name:function(t){return"".concat(t,"Edge")},generateKey:!0},{name:function(t){return"".concat(t,"DirectedEdge")},generateKey:!0,type:"directed"},{name:function(t){return"".concat(t,"UndirectedEdge")},generateKey:!0,type:"undirected"},{name:function(t){return"".concat(t,"EdgeWithKey")}},{name:function(t){return"".concat(t,"DirectedEdgeWithKey")},type:"directed"},{name:function(t){return"".concat(t,"UndirectedEdgeWithKey")},type:"undirected"}].forEach((function(t){["add","merge","update"].forEach((function(e){var n=t.name(e),r="add"===e?Et:At;t.generateKey?Lt.prototype[n]=function(i,o,a){return r(this,n,!0,"undirected"===(t.type||this.type),null,i,o,a,"update"===e)}:Lt.prototype[n]=function(i,o,a,u){return r(this,n,!1,"undirected"===(t.type||this.type),i,o,a,u,"update"===e)}}))})),function(t){V.forEach((function(e){var n=e.name,r=e.attacher;r(t,n("Node"),0),r(t,n("Source"),1),r(t,n("Target"),2),r(t,n("Opposite"),3)}))}(Lt),function(t){H.forEach((function(e){var n=e.name,r=e.attacher;r(t,n("Edge"),"mixed"),r(t,n("DirectedEdge"),"directed"),r(t,n("UndirectedEdge"),"undirected")}))}(Lt),function(t){tt.forEach((function(e){!function(t,e){var n=e.name,r=e.type,i=e.direction;t.prototype[n]=function(t,e){if("mixed"!==r&&"mixed"!==this.type&&r!==this.type)return[];if(!arguments.length)return function(t,e){if(0===t.size)return[];if("mixed"===e||e===t.type)return"function"==typeof Array.from?Array.from(t._edges.keys()):T(t._edges.keys(),t._edges.size);for(var n,r,i="undirected"===e?t.undirectedSize:t.directedSize,o=new Array(i),a="undirected"===e,u=t._edges.values(),c=0;!0!==(n=u.next()).done;)(r=n.value).undirected===a&&(o[c++]=r.key);return o}(this,r);if(1===arguments.length){t=""+t;var o=this._nodes.get(t);if(void 0===o)throw new R("Graph.".concat(n,': could not find the "').concat(t,'" node in the graph.'));return function(t,e,n,r){var i=[];return ct(!1,t,e,n,r,(function(t){i.push(t)})),i}(this.multi,"mixed"===r?this.type:r,i,o)}if(2===arguments.length){t=""+t,e=""+e;var a=this._nodes.get(t);if(!a)throw new R("Graph.".concat(n,': could not find the "').concat(t,'" source node in the graph.'));if(!this._nodes.has(e))throw new R("Graph.".concat(n,': could not find the "').concat(e,'" target node in the graph.'));return function(t,e,n,r,i){var o=[];return st(!1,t,e,n,r,i,(function(t){o.push(t)})),o}(r,this.multi,i,a,e)}throw new q("Graph.".concat(n,": too many arguments (expecting 0, 1 or 2 and got ").concat(arguments.length,")."))}}(t,e),function(t,e){var n=e.name,r=e.type,i=e.direction,o="forEach"+n[0].toUpperCase()+n.slice(1,-1);t.prototype[o]=function(t,e,n){if("mixed"===r||"mixed"===this.type||r===this.type){if(1===arguments.length)return ut(!1,this,r,n=t);if(2===arguments.length){t=""+t,n=e;var a=this._nodes.get(t);if(void 0===a)throw new R("Graph.".concat(o,': could not find the "').concat(t,'" node in the graph.'));return ct(!1,this.multi,"mixed"===r?this.type:r,i,a,n)}if(3===arguments.length){t=""+t,e=""+e;var u=this._nodes.get(t);if(!u)throw new R("Graph.".concat(o,': could not find the "').concat(t,'" source node in the graph.'));if(!this._nodes.has(e))throw new R("Graph.".concat(o,': could not find the "').concat(e,'" target node in the graph.'));return st(!1,r,this.multi,i,u,e,n)}throw new q("Graph.".concat(o,": too many arguments (expecting 1, 2 or 3 and got ").concat(arguments.length,")."))}};var a="map"+n[0].toUpperCase()+n.slice(1);t.prototype[a]=function(){var t,e=Array.prototype.slice.call(arguments),n=e.pop();if(0===e.length){var i=0;"directed"!==r&&(i+=this.undirectedSize),"undirected"!==r&&(i+=this.directedSize),t=new Array(i);var a=0;e.push((function(e,r,i,o,u,c,s){t[a++]=n(e,r,i,o,u,c,s)}))}else t=[],e.push((function(e,r,i,o,a,u,c){t.push(n(e,r,i,o,a,u,c))}));return this[o].apply(this,e),t};var u="filter"+n[0].toUpperCase()+n.slice(1);t.prototype[u]=function(){var t=Array.prototype.slice.call(arguments),e=t.pop(),n=[];return t.push((function(t,r,i,o,a,u,c){e(t,r,i,o,a,u,c)&&n.push(t)})),this[o].apply(this,t),n};var c="reduce"+n[0].toUpperCase()+n.slice(1);t.prototype[c]=function(){var t,e,n=Array.prototype.slice.call(arguments);if(n.length<2||n.length>4)throw new q("Graph.".concat(c,": invalid number of arguments (expecting 2, 3 or 4 and got ").concat(n.length,")."));if("function"==typeof n[n.length-1]&&"function"!=typeof n[n.length-2])throw new q("Graph.".concat(c,": missing initial value. You must provide it because the callback takes more than one argument and we cannot infer the initial value from the first iteration, as you could with a simple array."));2===n.length?(t=n[0],e=n[1],n=[]):3===n.length?(t=n[1],e=n[2],n=[n[0]]):4===n.length&&(t=n[2],e=n[3],n=[n[0],n[1]]);var r=e;return n.push((function(e,n,i,o,a,u,c){r=t(r,e,n,i,o,a,u,c)})),this[o].apply(this,n),r}}(t,e),function(t,e){var n=e.name,r=e.type,i=e.direction,o="find"+n[0].toUpperCase()+n.slice(1,-1);t.prototype[o]=function(t,e,n){if("mixed"!==r&&"mixed"!==this.type&&r!==this.type)return!1;if(1===arguments.length)return ut(!0,this,r,n=t);if(2===arguments.length){t=""+t,n=e;var a=this._nodes.get(t);if(void 0===a)throw new R("Graph.".concat(o,': could not find the "').concat(t,'" node in the graph.'));return ct(!0,this.multi,"mixed"===r?this.type:r,i,a,n)}if(3===arguments.length){t=""+t,e=""+e;var u=this._nodes.get(t);if(!u)throw new R("Graph.".concat(o,': could not find the "').concat(t,'" source node in the graph.'));if(!this._nodes.has(e))throw new R("Graph.".concat(o,': could not find the "').concat(e,'" target node in the graph.'));return st(!0,r,this.multi,i,u,e,n)}throw new q("Graph.".concat(o,": too many arguments (expecting 1, 2 or 3 and got ").concat(arguments.length,")."))};var a="some"+n[0].toUpperCase()+n.slice(1,-1);t.prototype[a]=function(){var t=Array.prototype.slice.call(arguments),e=t.pop();return t.push((function(t,n,r,i,o,a,u){return e(t,n,r,i,o,a,u)})),!!this[o].apply(this,t)};var u="every"+n[0].toUpperCase()+n.slice(1,-1);t.prototype[u]=function(){var t=Array.prototype.slice.call(arguments),e=t.pop();return t.push((function(t,n,r,i,o,a,u){return!e(t,n,r,i,o,a,u)})),!this[o].apply(this,t)}}(t,e),function(t,e){var n=e.name,r=e.type,i=e.direction,o=n.slice(0,-1)+"Entries";t.prototype[o]=function(t,e){if("mixed"!==r&&"mixed"!==this.type&&r!==this.type)return O.empty();if(!arguments.length)return function(t,e){if(0===t.size)return O.empty();var n="mixed"!==e&&e!==t.type,r="undirected"===e,i=t._edges.values();return new O((function(){for(var t,e;;){if((t=i.next()).done)return t;if(e=t.value,!n||e.undirected===r)break}return{value:{edge:e.key,attributes:e.attributes,source:e.source.key,target:e.target.key,sourceAttributes:e.source.attributes,targetAttributes:e.target.attributes,undirected:e.undirected},done:!1}}))}(this,r);if(1===arguments.length){t=""+t;var n=this._nodes.get(t);if(!n)throw new R("Graph.".concat(o,': could not find the "').concat(t,'" node in the graph.'));return function(t,e,n){var r=O.empty();return"undirected"!==t&&("out"!==e&&void 0!==n.in&&(r=Z(r,rt(n.in))),"in"!==e&&void 0!==n.out&&(r=Z(r,rt(n.out,e?void 0:n.key)))),"directed"!==t&&void 0!==n.undirected&&(r=Z(r,rt(n.undirected))),r}(r,i,n)}if(2===arguments.length){t=""+t,e=""+e;var a=this._nodes.get(t);if(!a)throw new R("Graph.".concat(o,': could not find the "').concat(t,'" source node in the graph.'));if(!this._nodes.has(e))throw new R("Graph.".concat(o,': could not find the "').concat(e,'" target node in the graph.'));return function(t,e,n,r){var i=O.empty();return"undirected"!==t&&(void 0!==n.in&&"out"!==e&&r in n.in&&(i=Z(i,at(n.in,r))),void 0!==n.out&&"in"!==e&&r in n.out&&(e||n.key!==r)&&(i=Z(i,at(n.out,r)))),"directed"!==t&&void 0!==n.undirected&&r in n.undirected&&(i=Z(i,at(n.undirected,r))),i}(r,i,a,e)}throw new q("Graph.".concat(o,": too many arguments (expecting 0, 1 or 2 and got ").concat(arguments.length,")."))}}(t,e)}))}(Lt),function(t){ht.forEach((function(e){(function(t,e){var n=e.name,r=e.type,i=e.direction;t.prototype[n]=function(t){if("mixed"!==r&&"mixed"!==this.type&&r!==this.type)return[];t=""+t;var e=this._nodes.get(t);if(void 0===e)throw new R("Graph.".concat(n,': could not find the "').concat(t,'" node in the graph.'));return function(t,e,n){if("mixed"!==t){if("undirected"===t)return Object.keys(n.undirected);if("string"==typeof e)return Object.keys(n[e])}var r=[];return ft(!1,t,e,n,(function(t){r.push(t)})),r}("mixed"===r?this.type:r,i,e)}})(t,e),function(t,e){var n=e.name,r=e.type,i=e.direction,o="forEach"+n[0].toUpperCase()+n.slice(1,-1);t.prototype[o]=function(t,e){if("mixed"===r||"mixed"===this.type||r===this.type){t=""+t;var n=this._nodes.get(t);if(void 0===n)throw new R("Graph.".concat(o,': could not find the "').concat(t,'" node in the graph.'));ft(!1,"mixed"===r?this.type:r,i,n,e)}};var a="map"+n[0].toUpperCase()+n.slice(1);t.prototype[a]=function(t,e){var n=[];return this[o](t,(function(t,r){n.push(e(t,r))})),n};var u="filter"+n[0].toUpperCase()+n.slice(1);t.prototype[u]=function(t,e){var n=[];return this[o](t,(function(t,r){e(t,r)&&n.push(t)})),n};var c="reduce"+n[0].toUpperCase()+n.slice(1);t.prototype[c]=function(t,e,n){if(arguments.length<3)throw new q("Graph.".concat(c,": missing initial value. You must provide it because the callback takes more than one argument and we cannot infer the initial value from the first iteration, as you could with a simple array."));var r=n;return this[o](t,(function(t,n){r=e(r,t,n)})),r}}(t,e),function(t,e){var n=e.name,r=e.type,i=e.direction,o=n[0].toUpperCase()+n.slice(1,-1),a="find"+o;t.prototype[a]=function(t,e){if("mixed"===r||"mixed"===this.type||r===this.type){t=""+t;var n=this._nodes.get(t);if(void 0===n)throw new R("Graph.".concat(a,': could not find the "').concat(t,'" node in the graph.'));return ft(!0,"mixed"===r?this.type:r,i,n,e)}};var u="some"+o;t.prototype[u]=function(t,e){return!!this[a](t,e)};var c="every"+o;t.prototype[c]=function(t,e){return!this[a](t,(function(t,n){return!e(t,n)}))}}(t,e),function(t,e){var n=e.name,r=e.type,i=e.direction,o=n.slice(0,-1)+"Entries";t.prototype[o]=function(t){if("mixed"!==r&&"mixed"!==this.type&&r!==this.type)return O.empty();t=""+t;var e=this._nodes.get(t);if(void 0===e)throw new R("Graph.".concat(o,': could not find the "').concat(t,'" node in the graph.'));return function(t,e,n){if("mixed"!==t){if("undirected"===t)return pt(null,n,n.undirected);if("string"==typeof e)return pt(null,n,n[e])}var r=O.empty(),i=new lt;return"undirected"!==t&&("out"!==e&&(r=Z(r,pt(i,n,n.in))),"in"!==e&&(r=Z(r,pt(i,n,n.out)))),"directed"!==t&&(r=Z(r,pt(i,n,n.undirected))),r}("mixed"===r?this.type:r,i,e)}}(t,e)}))}(Lt);var Mt=function(t){function n(e){var n=u({type:"directed"},e);if("multi"in n&&!1!==n.multi)throw new q("DirectedGraph.from: inconsistent indication that the graph should be multi in given options!");if("directed"!==n.type)throw new q('DirectedGraph.from: inconsistent "'+n.type+'" type in given options!');return t.call(this,n)||this}return e(n,t),n}(Lt),Gt=function(t){function n(e){var n=u({type:"undirected"},e);if("multi"in n&&!1!==n.multi)throw new q("UndirectedGraph.from: inconsistent indication that the graph should be multi in given options!");if("undirected"!==n.type)throw new q('UndirectedGraph.from: inconsistent "'+n.type+'" type in given options!');return t.call(this,n)||this}return e(n,t),n}(Lt),Nt=function(t){function n(e){var n=u({multi:!0},e);if("multi"in n&&!0!==n.multi)throw new q("MultiGraph.from: inconsistent indication that the graph should be simple in given options!");return t.call(this,n)||this}return e(n,t),n}(Lt),Ot=function(t){function n(e){var n=u({type:"directed",multi:!0},e);if("multi"in n&&!0!==n.multi)throw new q("MultiDirectedGraph.from: inconsistent indication that the graph should be simple in given options!");if("directed"!==n.type)throw new q('MultiDirectedGraph.from: inconsistent "'+n.type+'" type in given options!');return t.call(this,n)||this}return e(n,t),n}(Lt),jt=function(t){function n(e){var n=u({type:"undirected",multi:!0},e);if("multi"in n&&!0!==n.multi)throw new q("MultiUndirectedGraph.from: inconsistent indication that the graph should be simple in given options!");if("undirected"!==n.type)throw new q('MultiUndirectedGraph.from: inconsistent "'+n.type+'" type in given options!');return t.call(this,n)||this}return e(n,t),n}(Lt);function zt(t){t.from=function(e,n){var r=u({},e.options,n),i=new t(r);return i.import(e),i}}return zt(Lt),zt(Mt),zt(Gt),zt(Nt),zt(Ot),zt(jt),Lt.Graph=Lt,Lt.DirectedGraph=Mt,Lt.UndirectedGraph=Gt,Lt.MultiGraph=Nt,Lt.MultiDirectedGraph=Ot,Lt.MultiUndirectedGraph=jt,Lt.InvalidArgumentsGraphError=q,Lt.NotFoundGraphError=R,Lt.UsageGraphError=F,Lt}()},208:(t,e,n)=>{var r=n(938),i=n(766);function o(t,e){if(arguments.length<2)throw new Error("mnemonist/fixed-deque: expecting an Array class and a capacity.");if("number"!=typeof e||e<=0)throw new Error("mnemonist/fixed-deque: `capacity` should be a positive number.");this.ArrayClass=t,this.capacity=e,this.items=new t(this.capacity),this.clear()}o.prototype.clear=function(){this.start=0,this.size=0},o.prototype.push=function(t){if(this.size===this.capacity)throw new Error("mnemonist/fixed-deque.push: deque capacity ("+this.capacity+") exceeded!");var e=this.start+this.size;return e>=this.capacity&&(e-=this.capacity),this.items[e]=t,++this.size},o.prototype.unshift=function(t){if(this.size===this.capacity)throw new Error("mnemonist/fixed-deque.unshift: deque capacity ("+this.capacity+") exceeded!");var e=this.start-1;return 0===this.start&&(e=this.capacity-1),this.items[e]=t,this.start=e,++this.size},o.prototype.pop=function(){if(0!==this.size){this.size--;var t=this.start+this.size;return t>=this.capacity&&(t-=this.capacity),this.items[t]}},o.prototype.shift=function(){if(0!==this.size){var t=this.start;return this.size--,this.start++,this.start===this.capacity&&(this.start=0),this.items[t]}},o.prototype.peekFirst=function(){if(0!==this.size)return this.items[this.start]},o.prototype.peekLast=function(){if(0!==this.size){var t=this.start+this.size-1;return t>=this.capacity&&(t-=this.capacity),this.items[t]}},o.prototype.get=function(t){if(!(0===this.size||t>=this.capacity))return(t=this.start+t)>=this.capacity&&(t-=this.capacity),this.items[t]},o.prototype.forEach=function(t,e){e=arguments.length>1?e:this;for(var n=this.capacity,r=this.size,i=this.start,o=0;o<r;)t.call(e,this.items[i],o,this),o++,++i===n&&(i=0)},o.prototype.toArray=function(){var t=this.start+this.size;if(t<this.capacity)return this.items.slice(this.start,t);for(var e=new this.ArrayClass(this.size),n=this.capacity,r=this.size,i=this.start,o=0;o<r;)e[o]=this.items[i],o++,++i===n&&(i=0);return e},o.prototype.values=function(){var t=this.items,e=this.capacity,n=this.size,r=this.start,o=0;return new i((function(){if(o>=n)return{done:!0};var i=t[r];return r++,o++,r===e&&(r=0),{value:i,done:!1}}))},o.prototype.entries=function(){var t=this.items,e=this.capacity,n=this.size,r=this.start,o=0;return new i((function(){if(o>=n)return{done:!0};var i=t[r];return++r===e&&(r=0),{value:[o++,i],done:!1}}))},"undefined"!=typeof Symbol&&(o.prototype[Symbol.iterator]=o.prototype.values),o.prototype.inspect=function(){var t=this.toArray();return t.type=this.ArrayClass.name,t.capacity=this.capacity,Object.defineProperty(t,"constructor",{value:o,enumerable:!1}),t},"undefined"!=typeof Symbol&&(o.prototype[Symbol.for("nodejs.util.inspect.custom")]=o.prototype.inspect),o.from=function(t,e,n){if(arguments.length<3&&"number"!=typeof(n=r.guessLength(t)))throw new Error("mnemonist/fixed-deque.from: could not guess iterable length. Please provide desired capacity as last argument.");var i=new o(e,n);if(r.isArrayLike(t)){var a,u;for(a=0,u=t.length;a<u;a++)i.items[a]=t[a];return i.size=u,i}return r.forEach(t,(function(t){i.push(t)})),i},t.exports=o},938:(t,e,n)=>{var r=n(156),i=n(384);function o(t){return"number"==typeof t.length?t.length:"number"==typeof t.size?t.size:void 0}e.isArrayLike=function(t){return Array.isArray(t)||i.isTypedArray(t)},e.guessLength=o,e.toArray=function(t){var e=o(t),n="number"==typeof e?new Array(e):[],i=0;return r(t,(function(t){n[i++]=t})),n},e.toArrayWithIndices=function(t){var e=o(t),n="number"==typeof e?i.getPointerArray(e):Array,a="number"==typeof e?new Array(e):[],u="number"==typeof e?new n(e):[],c=0;return r(t,(function(t){a[c]=t,u[c]=c++})),[a,u]}},384:(t,e)=>{var n=Math.pow(2,8)-1,r=Math.pow(2,16)-1,i=Math.pow(2,32)-1,o=Math.pow(2,7)-1,a=Math.pow(2,15)-1,u=Math.pow(2,31)-1;e.getPointerArray=function(t){var e=t-1;if(e<=n)return Uint8Array;if(e<=r)return Uint16Array;if(e<=i)return Uint32Array;throw new Error("mnemonist: Pointer Array of size > 4294967295 is not supported.")},e.getSignedPointerArray=function(t){var e=t-1;return e<=o?Int8Array:e<=a?Int16Array:e<=u?Int32Array:Float64Array},e.getNumberType=function(t){return t===(0|t)?-1===Math.sign(t)?t<=127&&t>=-128?Int8Array:t<=32767&&t>=-32768?Int16Array:Int32Array:t<=255?Uint8Array:t<=65535?Uint16Array:Uint32Array:Float64Array};var c={Uint8Array:1,Int8Array:2,Uint16Array:3,Int16Array:4,Uint32Array:5,Int32Array:6,Float32Array:7,Float64Array:8};e.getMinimalRepresentation=function(t,n){var r,i,o,a,u,s=null,h=0;for(a=0,u=t.length;a<u;a++)o=n?n(t[a]):t[a],i=e.getNumberType(o),(r=c[i.name])>h&&(h=r,s=i);return s},e.isTypedArray=function(t){return"undefined"!=typeof ArrayBuffer&&ArrayBuffer.isView(t)},e.concat=function(){var t,e,n,r=0;for(t=0,n=arguments.length;t<n;t++)r+=arguments[t].length;var i=new arguments[0].constructor(r);for(t=0,e=0;t<n;t++)i.set(arguments[t],e),e+=arguments[t].length;return i},e.indices=function(t){for(var n=new(e.getPointerArray(t))(t),r=0;r<t;r++)n[r]=r;return n}},156:(t,e,n)=>{var r=n(109),i=r.ARRAY_BUFFER_SUPPORT,o=r.SYMBOL_SUPPORT;t.exports=function(t,e){var n,r,a,u,c;if(!t)throw new Error("obliterator/forEach: invalid iterable.");if("function"!=typeof e)throw new Error("obliterator/forEach: expecting a callback.");if(Array.isArray(t)||i&&ArrayBuffer.isView(t)||"string"==typeof t||"[object Arguments]"===t.toString())for(a=0,u=t.length;a<u;a++)e(t[a],a);else if("function"!=typeof t.forEach)if(o&&Symbol.iterator in t&&"function"!=typeof t.next&&(t=t[Symbol.iterator]()),"function"!=typeof t.next)for(r in t)t.hasOwnProperty(r)&&e(t[r],r);else for(n=t,a=0;!0!==(c=n.next()).done;)e(c.value,a),a++;else t.forEach(e)}},766:t=>{function e(t){if("function"!=typeof t)throw new Error("obliterator/iterator: expecting a function!");this.next=t}"undefined"!=typeof Symbol&&(e.prototype[Symbol.iterator]=function(){return this}),e.of=function(){var t=arguments,n=t.length,r=0;return new e((function(){return r>=n?{done:!0}:{done:!1,value:t[r++]}}))},e.empty=function(){return new e((function(){return{done:!0}}))},e.fromSequence=function(t){var n=0,r=t.length;return new e((function(){return n>=r?{done:!0}:{done:!1,value:t[n++]}}))},e.is=function(t){return t instanceof e||"object"==typeof t&&null!==t&&"function"==typeof t.next},t.exports=e},109:(t,e)=>{e.ARRAY_BUFFER_SUPPORT="undefined"!=typeof ArrayBuffer,e.SYMBOL_SUPPORT="undefined"!=typeof Symbol}},e={};function n(r){var i=e[r];if(void 0!==i)return i.exports;var o=e[r]={exports:{}};return t[r].call(o.exports,o,o.exports,n),o.exports}n.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return n.d(e,{a:e}),e},n.d=(t,e)=>{for(var r in e)n.o(e,r)&&!n.o(t,r)&&Object.defineProperty(t,r,{enumerable:!0,get:e[r]})},n.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),(()=>{"use strict";function t(t,e){let n;if(void 0===e)for(const e of t)null!=e&&(n<e||void 0===n&&e>=e)&&(n=e);else{let r=-1;for(let i of t)null!=(i=e(i,++r,t))&&(n<i||void 0===n&&i>=i)&&(n=i)}return n}function e(t,e){let n=0,r=0;if(void 0===e)for(let e of t)null!=e&&(e=+e)>=e&&(++n,r+=e);else{let i=-1;for(let o of t)null!=(o=e(o,++i,t))&&(o=+o)>=o&&(++n,r+=o)}if(n)return r/n}function r(t,e){let n;if(void 0===e)for(const e of t)null!=e&&(n>e||void 0===n&&e>=e)&&(n=e);else{let r=-1;for(let i of t)null!=(i=e(i,++r,t))&&(n>i||void 0===n&&i>=i)&&(n=i)}return n}function i(){}function o(t){return null==t?i:function(){return this.querySelector(t)}}function a(){return[]}function u(t){return null==t?a:function(){return this.querySelectorAll(t)}}function c(t){return function(){return this.matches(t)}}function s(t){return function(e){return e.matches(t)}}var h=Array.prototype.find;function l(){return this.firstElementChild}var d=Array.prototype.filter;function f(){return Array.from(this.children)}function p(t){return new Array(t.length)}function y(t,e){this.ownerDocument=t.ownerDocument,this.namespaceURI=t.namespaceURI,this._next=null,this._parent=t,this.__data__=e}function g(t,e,n,r,i,o){for(var a,u=0,c=e.length,s=o.length;u<s;++u)(a=e[u])?(a.__data__=o[u],r[u]=a):n[u]=new y(t,o[u]);for(;u<c;++u)(a=e[u])&&(i[u]=a)}function v(t,e,n,r,i,o,a){var u,c,s,h=new Map,l=e.length,d=o.length,f=new Array(l);for(u=0;u<l;++u)(c=e[u])&&(f[u]=s=a.call(c,c.__data__,u,e)+"",h.has(s)?i[u]=c:h.set(s,c));for(u=0;u<d;++u)s=a.call(t,o[u],u,o)+"",(c=h.get(s))?(r[u]=c,c.__data__=o[u],h.delete(s)):n[u]=new y(t,o[u]);for(u=0;u<l;++u)(c=e[u])&&h.get(f[u])===c&&(i[u]=c)}function m(t){return t.__data__}function w(t){return"object"==typeof t&&"length"in t?t:Array.from(t)}function b(t,e){return t<e?-1:t>e?1:t>=e?0:NaN}y.prototype={constructor:y,appendChild:function(t){return this._parent.insertBefore(t,this._next)},insertBefore:function(t,e){return this._parent.insertBefore(t,e)},querySelector:function(t){return this._parent.querySelector(t)},querySelectorAll:function(t){return this._parent.querySelectorAll(t)}};var _="http://www.w3.org/1999/xhtml";const x={svg:"http://www.w3.org/2000/svg",xhtml:_,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};function k(t){var e=t+="",n=e.indexOf(":");return n>=0&&"xmlns"!==(e=t.slice(0,n))&&(t=t.slice(n+1)),x.hasOwnProperty(e)?{space:x[e],local:t}:t}function E(t){return function(){this.removeAttribute(t)}}function A(t){return function(){this.removeAttributeNS(t.space,t.local)}}function S(t,e){return function(){this.setAttribute(t,e)}}function L(t,e){return function(){this.setAttributeNS(t.space,t.local,e)}}function M(t,e){return function(){var n=e.apply(this,arguments);null==n?this.removeAttribute(t):this.setAttribute(t,n)}}function G(t,e){return function(){var n=e.apply(this,arguments);null==n?this.removeAttributeNS(t.space,t.local):this.setAttributeNS(t.space,t.local,n)}}function N(t){return t.ownerDocument&&t.ownerDocument.defaultView||t.document&&t||t.defaultView}function O(t){return function(){this.style.removeProperty(t)}}function j(t,e,n){return function(){this.style.setProperty(t,e,n)}}function z(t,e,n){return function(){var r=e.apply(this,arguments);null==r?this.style.removeProperty(t):this.style.setProperty(t,r,n)}}function C(t,e){return t.style.getPropertyValue(e)||N(t).getComputedStyle(t,null).getPropertyValue(e)}function D(t){return function(){delete this[t]}}function P(t,e){return function(){this[t]=e}}function I(t,e){return function(){var n=e.apply(this,arguments);null==n?delete this[t]:this[t]=n}}function U(t){return t.trim().split(/^|\s+/)}function T(t){return t.classList||new B(t)}function B(t){this._node=t,this._names=U(t.getAttribute("class")||"")}function q(t,e){for(var n=T(t),r=-1,i=e.length;++r<i;)n.add(e[r])}function R(t,e){for(var n=T(t),r=-1,i=e.length;++r<i;)n.remove(e[r])}function F(t){return function(){q(this,t)}}function K(t){return function(){R(this,t)}}function W(t,e){return function(){(e.apply(this,arguments)?q:R)(this,t)}}function Y(){this.textContent=""}function X(t){return function(){this.textContent=t}}function $(t){return function(){var e=t.apply(this,arguments);this.textContent=null==e?"":e}}function V(){this.innerHTML=""}function H(t){return function(){this.innerHTML=t}}function J(t){return function(){var e=t.apply(this,arguments);this.innerHTML=null==e?"":e}}function Q(){this.nextSibling&&this.parentNode.appendChild(this)}function Z(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function tt(t){return function(){var e=this.ownerDocument,n=this.namespaceURI;return n===_&&e.documentElement.namespaceURI===_?e.createElement(t):e.createElementNS(n,t)}}function et(t){return function(){return this.ownerDocument.createElementNS(t.space,t.local)}}function nt(t){var e=k(t);return(e.local?et:tt)(e)}function rt(){return null}function it(){var t=this.parentNode;t&&t.removeChild(this)}function ot(){var t=this.cloneNode(!1),e=this.parentNode;return e?e.insertBefore(t,this.nextSibling):t}function at(){var t=this.cloneNode(!0),e=this.parentNode;return e?e.insertBefore(t,this.nextSibling):t}function ut(t){return function(){var e=this.__on;if(e){for(var n,r=0,i=-1,o=e.length;r<o;++r)n=e[r],t.type&&n.type!==t.type||n.name!==t.name?e[++i]=n:this.removeEventListener(n.type,n.listener,n.options);++i?e.length=i:delete this.__on}}}function ct(t,e,n){return function(){var r,i=this.__on,o=function(t){return function(e){t.call(this,e,this.__data__)}}(e);if(i)for(var a=0,u=i.length;a<u;++a)if((r=i[a]).type===t.type&&r.name===t.name)return this.removeEventListener(r.type,r.listener,r.options),this.addEventListener(r.type,r.listener=o,r.options=n),void(r.value=e);this.addEventListener(t.type,o,n),r={type:t.type,name:t.name,value:e,listener:o,options:n},i?i.push(r):this.__on=[r]}}function st(t,e,n){var r=N(t),i=r.CustomEvent;"function"==typeof i?i=new i(e,n):(i=r.document.createEvent("Event"),n?(i.initEvent(e,n.bubbles,n.cancelable),i.detail=n.detail):i.initEvent(e,!1,!1)),t.dispatchEvent(i)}function ht(t,e){return function(){return st(this,t,e)}}function lt(t,e){return function(){return st(this,t,e.apply(this,arguments))}}B.prototype={add:function(t){this._names.indexOf(t)<0&&(this._names.push(t),this._node.setAttribute("class",this._names.join(" ")))},remove:function(t){var e=this._names.indexOf(t);e>=0&&(this._names.splice(e,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(t){return this._names.indexOf(t)>=0}};var dt=[null];function ft(t,e){this._groups=t,this._parents=e}function pt(){return new ft([[document.documentElement]],dt)}ft.prototype=pt.prototype={constructor:ft,select:function(t){"function"!=typeof t&&(t=o(t));for(var e=this._groups,n=e.length,r=new Array(n),i=0;i<n;++i)for(var a,u,c=e[i],s=c.length,h=r[i]=new Array(s),l=0;l<s;++l)(a=c[l])&&(u=t.call(a,a.__data__,l,c))&&("__data__"in a&&(u.__data__=a.__data__),h[l]=u);return new ft(r,this._parents)},selectAll:function(t){t="function"==typeof t?function(t){return function(){return null==(e=t.apply(this,arguments))?[]:Array.isArray(e)?e:Array.from(e);var e}}(t):u(t);for(var e=this._groups,n=e.length,r=[],i=[],o=0;o<n;++o)for(var a,c=e[o],s=c.length,h=0;h<s;++h)(a=c[h])&&(r.push(t.call(a,a.__data__,h,c)),i.push(a));return new ft(r,i)},selectChild:function(t){return this.select(null==t?l:function(t){return function(){return h.call(this.children,t)}}("function"==typeof t?t:s(t)))},selectChildren:function(t){return this.selectAll(null==t?f:function(t){return function(){return d.call(this.children,t)}}("function"==typeof t?t:s(t)))},filter:function(t){"function"!=typeof t&&(t=c(t));for(var e=this._groups,n=e.length,r=new Array(n),i=0;i<n;++i)for(var o,a=e[i],u=a.length,s=r[i]=[],h=0;h<u;++h)(o=a[h])&&t.call(o,o.__data__,h,a)&&s.push(o);return new ft(r,this._parents)},data:function(t,e){if(!arguments.length)return Array.from(this,m);var n,r=e?v:g,i=this._parents,o=this._groups;"function"!=typeof t&&(n=t,t=function(){return n});for(var a=o.length,u=new Array(a),c=new Array(a),s=new Array(a),h=0;h<a;++h){var l=i[h],d=o[h],f=d.length,p=w(t.call(l,l&&l.__data__,h,i)),y=p.length,b=c[h]=new Array(y),_=u[h]=new Array(y);r(l,d,b,_,s[h]=new Array(f),p,e);for(var x,k,E=0,A=0;E<y;++E)if(x=b[E]){for(E>=A&&(A=E+1);!(k=_[A])&&++A<y;);x._next=k||null}}return(u=new ft(u,i))._enter=c,u._exit=s,u},enter:function(){return new ft(this._enter||this._groups.map(p),this._parents)},exit:function(){return new ft(this._exit||this._groups.map(p),this._parents)},join:function(t,e,n){var r=this.enter(),i=this,o=this.exit();return"function"==typeof t?(r=t(r))&&(r=r.selection()):r=r.append(t+""),null!=e&&(i=e(i))&&(i=i.selection()),null==n?o.remove():n(o),r&&i?r.merge(i).order():i},merge:function(t){for(var e=t.selection?t.selection():t,n=this._groups,r=e._groups,i=n.length,o=r.length,a=Math.min(i,o),u=new Array(i),c=0;c<a;++c)for(var s,h=n[c],l=r[c],d=h.length,f=u[c]=new Array(d),p=0;p<d;++p)(s=h[p]||l[p])&&(f[p]=s);for(;c<i;++c)u[c]=n[c];return new ft(u,this._parents)},selection:function(){return this},order:function(){for(var t=this._groups,e=-1,n=t.length;++e<n;)for(var r,i=t[e],o=i.length-1,a=i[o];--o>=0;)(r=i[o])&&(a&&4^r.compareDocumentPosition(a)&&a.parentNode.insertBefore(r,a),a=r);return this},sort:function(t){function e(e,n){return e&&n?t(e.__data__,n.__data__):!e-!n}t||(t=b);for(var n=this._groups,r=n.length,i=new Array(r),o=0;o<r;++o){for(var a,u=n[o],c=u.length,s=i[o]=new Array(c),h=0;h<c;++h)(a=u[h])&&(s[h]=a);s.sort(e)}return new ft(i,this._parents).order()},call:function(){var t=arguments[0];return arguments[0]=this,t.apply(null,arguments),this},nodes:function(){return Array.from(this)},node:function(){for(var t=this._groups,e=0,n=t.length;e<n;++e)for(var r=t[e],i=0,o=r.length;i<o;++i){var a=r[i];if(a)return a}return null},size:function(){let t=0;for(const e of this)++t;return t},empty:function(){return!this.node()},each:function(t){for(var e=this._groups,n=0,r=e.length;n<r;++n)for(var i,o=e[n],a=0,u=o.length;a<u;++a)(i=o[a])&&t.call(i,i.__data__,a,o);return this},attr:function(t,e){var n=k(t);if(arguments.length<2){var r=this.node();return n.local?r.getAttributeNS(n.space,n.local):r.getAttribute(n)}return this.each((null==e?n.local?A:E:"function"==typeof e?n.local?G:M:n.local?L:S)(n,e))},style:function(t,e,n){return arguments.length>1?this.each((null==e?O:"function"==typeof e?z:j)(t,e,null==n?"":n)):C(this.node(),t)},property:function(t,e){return arguments.length>1?this.each((null==e?D:"function"==typeof e?I:P)(t,e)):this.node()[t]},classed:function(t,e){var n=U(t+"");if(arguments.length<2){for(var r=T(this.node()),i=-1,o=n.length;++i<o;)if(!r.contains(n[i]))return!1;return!0}return this.each(("function"==typeof e?W:e?F:K)(n,e))},text:function(t){return arguments.length?this.each(null==t?Y:("function"==typeof t?$:X)(t)):this.node().textContent},html:function(t){return arguments.length?this.each(null==t?V:("function"==typeof t?J:H)(t)):this.node().innerHTML},raise:function(){return this.each(Q)},lower:function(){return this.each(Z)},append:function(t){var e="function"==typeof t?t:nt(t);return this.select((function(){return this.appendChild(e.apply(this,arguments))}))},insert:function(t,e){var n="function"==typeof t?t:nt(t),r=null==e?rt:"function"==typeof e?e:o(e);return this.select((function(){return this.insertBefore(n.apply(this,arguments),r.apply(this,arguments)||null)}))},remove:function(){return this.each(it)},clone:function(t){return this.select(t?at:ot)},datum:function(t){return arguments.length?this.property("__data__",t):this.node().__data__},on:function(t,e,n){var r,i,o=function(t){return t.trim().split(/^|\s+/).map((function(t){var e="",n=t.indexOf(".");return n>=0&&(e=t.slice(n+1),t=t.slice(0,n)),{type:t,name:e}}))}(t+""),a=o.length;if(!(arguments.length<2)){for(u=e?ct:ut,r=0;r<a;++r)this.each(u(o[r],e,n));return this}var u=this.node().__on;if(u)for(var c,s=0,h=u.length;s<h;++s)for(r=0,c=u[s];r<a;++r)if((i=o[r]).type===c.type&&i.name===c.name)return c.value},dispatch:function(t,e){return this.each(("function"==typeof e?lt:ht)(t,e))},[Symbol.iterator]:function*(){for(var t=this._groups,e=0,n=t.length;e<n;++e)for(var r,i=t[e],o=0,a=i.length;o<a;++o)(r=i[o])&&(yield r)}};const yt=pt;var gt={value:()=>{}};function vt(){for(var t,e=0,n=arguments.length,r={};e<n;++e){if(!(t=arguments[e]+"")||t in r||/[\s.]/.test(t))throw new Error("illegal type: "+t);r[t]=[]}return new mt(r)}function mt(t){this._=t}function wt(t,e){for(var n,r=0,i=t.length;r<i;++r)if((n=t[r]).name===e)return n.value}function bt(t,e,n){for(var r=0,i=t.length;r<i;++r)if(t[r].name===e){t[r]=gt,t=t.slice(0,r).concat(t.slice(r+1));break}return null!=n&&t.push({name:e,value:n}),t}mt.prototype=vt.prototype={constructor:mt,on:function(t,e){var n,r,i=this._,o=(r=i,(t+"").trim().split(/^|\s+/).map((function(t){var e="",n=t.indexOf(".");if(n>=0&&(e=t.slice(n+1),t=t.slice(0,n)),t&&!r.hasOwnProperty(t))throw new Error("unknown type: "+t);return{type:t,name:e}}))),a=-1,u=o.length;if(!(arguments.length<2)){if(null!=e&&"function"!=typeof e)throw new Error("invalid callback: "+e);for(;++a<u;)if(n=(t=o[a]).type)i[n]=bt(i[n],t.name,e);else if(null==e)for(n in i)i[n]=bt(i[n],t.name,null);return this}for(;++a<u;)if((n=(t=o[a]).type)&&(n=wt(i[n],t.name)))return n},copy:function(){var t={},e=this._;for(var n in e)t[n]=e[n].slice();return new mt(t)},call:function(t,e){if((n=arguments.length-2)>0)for(var n,r,i=new Array(n),o=0;o<n;++o)i[o]=arguments[o+2];if(!this._.hasOwnProperty(t))throw new Error("unknown type: "+t);for(o=0,n=(r=this._[t]).length;o<n;++o)r[o].value.apply(e,i)},apply:function(t,e,n){if(!this._.hasOwnProperty(t))throw new Error("unknown type: "+t);for(var r=this._[t],i=0,o=r.length;i<o;++i)r[i].value.apply(e,n)}};const _t=vt;var xt,kt,Et=0,At=0,St=0,Lt=1e3,Mt=0,Gt=0,Nt=0,Ot="object"==typeof performance&&performance.now?performance:Date,jt="object"==typeof window&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(t){setTimeout(t,17)};function zt(){return Gt||(jt(Ct),Gt=Ot.now()+Nt)}function Ct(){Gt=0}function Dt(){this._call=this._time=this._next=null}function Pt(t,e,n){var r=new Dt;return r.restart(t,e,n),r}function It(){Gt=(Mt=Ot.now())+Nt,Et=At=0;try{!function(){zt(),++Et;for(var t,e=xt;e;)(t=Gt-e._time)>=0&&e._call.call(void 0,t),e=e._next;--Et}()}finally{Et=0,function(){for(var t,e,n=xt,r=1/0;n;)n._call?(r>n._time&&(r=n._time),t=n,n=n._next):(e=n._next,n._next=null,n=t?t._next=e:xt=e);kt=t,Tt(r)}(),Gt=0}}function Ut(){var t=Ot.now(),e=t-Mt;e>Lt&&(Nt-=e,Mt=t)}function Tt(t){Et||(At&&(At=clearTimeout(At)),t-Gt>24?(t<1/0&&(At=setTimeout(It,t-Ot.now()-Nt)),St&&(St=clearInterval(St))):(St||(Mt=Ot.now(),St=setInterval(Ut,Lt)),Et=1,jt(It)))}function Bt(t,e,n){var r=new Dt;return e=null==e?0:+e,r.restart((n=>{r.stop(),t(n+e)}),e,n),r}Dt.prototype=Pt.prototype={constructor:Dt,restart:function(t,e,n){if("function"!=typeof t)throw new TypeError("callback is not a function");n=(null==n?zt():+n)+(null==e?0:+e),this._next||kt===this||(kt?kt._next=this:xt=this,kt=this),this._call=t,this._time=n,Tt()},stop:function(){this._call&&(this._call=null,this._time=1/0,Tt())}};var qt=_t("start","end","cancel","interrupt"),Rt=[],Ft=0,Kt=3;function Wt(t,e,n,r,i,o){var a=t.__transition;if(a){if(n in a)return}else t.__transition={};!function(t,e,n){var r,i=t.__transition;function o(c){var s,h,l,d;if(1!==n.state)return u();for(s in i)if((d=i[s]).name===n.name){if(d.state===Kt)return Bt(o);4===d.state?(d.state=6,d.timer.stop(),d.on.call("interrupt",t,t.__data__,d.index,d.group),delete i[s]):+s<e&&(d.state=6,d.timer.stop(),d.on.call("cancel",t,t.__data__,d.index,d.group),delete i[s])}if(Bt((function(){n.state===Kt&&(n.state=4,n.timer.restart(a,n.delay,n.time),a(c))})),n.state=2,n.on.call("start",t,t.__data__,n.index,n.group),2===n.state){for(n.state=Kt,r=new Array(l=n.tween.length),s=0,h=-1;s<l;++s)(d=n.tween[s].value.call(t,t.__data__,n.index,n.group))&&(r[++h]=d);r.length=h+1}}function a(e){for(var i=e<n.duration?n.ease.call(null,e/n.duration):(n.timer.restart(u),n.state=5,1),o=-1,a=r.length;++o<a;)r[o].call(t,i);5===n.state&&(n.on.call("end",t,t.__data__,n.index,n.group),u())}function u(){for(var r in n.state=6,n.timer.stop(),delete i[e],i)return;delete t.__transition}i[e]=n,n.timer=Pt((function(t){n.state=1,n.timer.restart(o,n.delay,n.time),n.delay<=t&&o(t-n.delay)}),0,n.time)}(t,n,{name:e,index:r,group:i,on:qt,tween:Rt,time:o.time,delay:o.delay,duration:o.duration,ease:o.ease,timer:null,state:Ft})}function Yt(t,e){var n=$t(t,e);if(n.state>Ft)throw new Error("too late; already scheduled");return n}function Xt(t,e){var n=$t(t,e);if(n.state>Kt)throw new Error("too late; already running");return n}function $t(t,e){var n=t.__transition;if(!n||!(n=n[e]))throw new Error("transition not found");return n}function Vt(t,e){var n,r,i,o=t.__transition,a=!0;if(o){for(i in e=null==e?null:e+"",o)(n=o[i]).name===e?(r=n.state>2&&n.state<5,n.state=6,n.timer.stop(),n.on.call(r?"interrupt":"cancel",t,t.__data__,n.index,n.group),delete o[i]):a=!1;a&&delete t.__transition}}function Ht(t,e){return t=+t,e=+e,function(n){return t*(1-n)+e*n}}var Jt,Qt=180/Math.PI,Zt={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function te(t,e,n,r,i,o){var a,u,c;return(a=Math.sqrt(t*t+e*e))&&(t/=a,e/=a),(c=t*n+e*r)&&(n-=t*c,r-=e*c),(u=Math.sqrt(n*n+r*r))&&(n/=u,r/=u,c/=u),t*r<e*n&&(t=-t,e=-e,c=-c,a=-a),{translateX:i,translateY:o,rotate:Math.atan2(e,t)*Qt,skewX:Math.atan(c)*Qt,scaleX:a,scaleY:u}}function ee(t,e,n,r){function i(t){return t.length?t.pop()+" ":""}return function(o,a){var u=[],c=[];return o=t(o),a=t(a),function(t,r,i,o,a,u){if(t!==i||r!==o){var c=a.push("translate(",null,e,null,n);u.push({i:c-4,x:Ht(t,i)},{i:c-2,x:Ht(r,o)})}else(i||o)&&a.push("translate("+i+e+o+n)}(o.translateX,o.translateY,a.translateX,a.translateY,u,c),function(t,e,n,o){t!==e?(t-e>180?e+=360:e-t>180&&(t+=360),o.push({i:n.push(i(n)+"rotate(",null,r)-2,x:Ht(t,e)})):e&&n.push(i(n)+"rotate("+e+r)}(o.rotate,a.rotate,u,c),function(t,e,n,o){t!==e?o.push({i:n.push(i(n)+"skewX(",null,r)-2,x:Ht(t,e)}):e&&n.push(i(n)+"skewX("+e+r)}(o.skewX,a.skewX,u,c),function(t,e,n,r,o,a){if(t!==n||e!==r){var u=o.push(i(o)+"scale(",null,",",null,")");a.push({i:u-4,x:Ht(t,n)},{i:u-2,x:Ht(e,r)})}else 1===n&&1===r||o.push(i(o)+"scale("+n+","+r+")")}(o.scaleX,o.scaleY,a.scaleX,a.scaleY,u,c),o=a=null,function(t){for(var e,n=-1,r=c.length;++n<r;)u[(e=c[n]).i]=e.x(t);return u.join("")}}}var ne=ee((function(t){const e=new("function"==typeof DOMMatrix?DOMMatrix:WebKitCSSMatrix)(t+"");return e.isIdentity?Zt:te(e.a,e.b,e.c,e.d,e.e,e.f)}),"px, ","px)","deg)"),re=ee((function(t){return null==t?Zt:(Jt||(Jt=document.createElementNS("http://www.w3.org/2000/svg","g")),Jt.setAttribute("transform",t),(t=Jt.transform.baseVal.consolidate())?te((t=t.matrix).a,t.b,t.c,t.d,t.e,t.f):Zt)}),", ",")",")");function ie(t,e){var n,r;return function(){var i=Xt(this,t),o=i.tween;if(o!==n)for(var a=0,u=(r=n=o).length;a<u;++a)if(r[a].name===e){(r=r.slice()).splice(a,1);break}i.tween=r}}function oe(t,e,n){var r,i;if("function"!=typeof n)throw new Error;return function(){var o=Xt(this,t),a=o.tween;if(a!==r){i=(r=a).slice();for(var u={name:e,value:n},c=0,s=i.length;c<s;++c)if(i[c].name===e){i[c]=u;break}c===s&&i.push(u)}o.tween=i}}function ae(t,e,n){var r=t._id;return t.each((function(){var t=Xt(this,r);(t.value||(t.value={}))[e]=n.apply(this,arguments)})),function(t){return $t(t,r).value[e]}}function ue(t,e,n){t.prototype=e.prototype=n,n.constructor=t}function ce(t,e){var n=Object.create(t.prototype);for(var r in e)n[r]=e[r];return n}function se(){}var he=.7,le=1/he,de="\\s*([+-]?\\d+)\\s*",fe="\\s*([+-]?\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)\\s*",pe="\\s*([+-]?\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)%\\s*",ye=/^#([0-9a-f]{3,8})$/,ge=new RegExp("^rgb\\("+[de,de,de]+"\\)$"),ve=new RegExp("^rgb\\("+[pe,pe,pe]+"\\)$"),me=new RegExp("^rgba\\("+[de,de,de,fe]+"\\)$"),we=new RegExp("^rgba\\("+[pe,pe,pe,fe]+"\\)$"),be=new RegExp("^hsl\\("+[fe,pe,pe]+"\\)$"),_e=new RegExp("^hsla\\("+[fe,pe,pe,fe]+"\\)$"),xe={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};function ke(){return this.rgb().formatHex()}function Ee(){return this.rgb().formatRgb()}function Ae(t){var e,n;return t=(t+"").trim().toLowerCase(),(e=ye.exec(t))?(n=e[1].length,e=parseInt(e[1],16),6===n?Se(e):3===n?new Ge(e>>8&15|e>>4&240,e>>4&15|240&e,(15&e)<<4|15&e,1):8===n?Le(e>>24&255,e>>16&255,e>>8&255,(255&e)/255):4===n?Le(e>>12&15|e>>8&240,e>>8&15|e>>4&240,e>>4&15|240&e,((15&e)<<4|15&e)/255):null):(e=ge.exec(t))?new Ge(e[1],e[2],e[3],1):(e=ve.exec(t))?new Ge(255*e[1]/100,255*e[2]/100,255*e[3]/100,1):(e=me.exec(t))?Le(e[1],e[2],e[3],e[4]):(e=we.exec(t))?Le(255*e[1]/100,255*e[2]/100,255*e[3]/100,e[4]):(e=be.exec(t))?ze(e[1],e[2]/100,e[3]/100,1):(e=_e.exec(t))?ze(e[1],e[2]/100,e[3]/100,e[4]):xe.hasOwnProperty(t)?Se(xe[t]):"transparent"===t?new Ge(NaN,NaN,NaN,0):null}function Se(t){return new Ge(t>>16&255,t>>8&255,255&t,1)}function Le(t,e,n,r){return r<=0&&(t=e=n=NaN),new Ge(t,e,n,r)}function Me(t,e,n,r){return 1===arguments.length?((i=t)instanceof se||(i=Ae(i)),i?new Ge((i=i.rgb()).r,i.g,i.b,i.opacity):new Ge):new Ge(t,e,n,null==r?1:r);var i}function Ge(t,e,n,r){this.r=+t,this.g=+e,this.b=+n,this.opacity=+r}function Ne(){return"#"+je(this.r)+je(this.g)+je(this.b)}function Oe(){var t=this.opacity;return(1===(t=isNaN(t)?1:Math.max(0,Math.min(1,t)))?"rgb(":"rgba(")+Math.max(0,Math.min(255,Math.round(this.r)||0))+", "+Math.max(0,Math.min(255,Math.round(this.g)||0))+", "+Math.max(0,Math.min(255,Math.round(this.b)||0))+(1===t?")":", "+t+")")}function je(t){return((t=Math.max(0,Math.min(255,Math.round(t)||0)))<16?"0":"")+t.toString(16)}function ze(t,e,n,r){return r<=0?t=e=n=NaN:n<=0||n>=1?t=e=NaN:e<=0&&(t=NaN),new De(t,e,n,r)}function Ce(t){if(t instanceof De)return new De(t.h,t.s,t.l,t.opacity);if(t instanceof se||(t=Ae(t)),!t)return new De;if(t instanceof De)return t;var e=(t=t.rgb()).r/255,n=t.g/255,r=t.b/255,i=Math.min(e,n,r),o=Math.max(e,n,r),a=NaN,u=o-i,c=(o+i)/2;return u?(a=e===o?(n-r)/u+6*(n<r):n===o?(r-e)/u+2:(e-n)/u+4,u/=c<.5?o+i:2-o-i,a*=60):u=c>0&&c<1?0:a,new De(a,u,c,t.opacity)}function De(t,e,n,r){this.h=+t,this.s=+e,this.l=+n,this.opacity=+r}function Pe(t,e,n){return 255*(t<60?e+(n-e)*t/60:t<180?n:t<240?e+(n-e)*(240-t)/60:e)}function Ie(t,e,n,r,i){var o=t*t,a=o*t;return((1-3*t+3*o-a)*e+(4-6*o+3*a)*n+(1+3*t+3*o-3*a)*r+a*i)/6}ue(se,Ae,{copy:function(t){return Object.assign(new this.constructor,this,t)},displayable:function(){return this.rgb().displayable()},hex:ke,formatHex:ke,formatHsl:function(){return Ce(this).formatHsl()},formatRgb:Ee,toString:Ee}),ue(Ge,Me,ce(se,{brighter:function(t){return t=null==t?le:Math.pow(le,t),new Ge(this.r*t,this.g*t,this.b*t,this.opacity)},darker:function(t){return t=null==t?he:Math.pow(he,t),new Ge(this.r*t,this.g*t,this.b*t,this.opacity)},rgb:function(){return this},displayable:function(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:Ne,formatHex:Ne,formatRgb:Oe,toString:Oe})),ue(De,(function(t,e,n,r){return 1===arguments.length?Ce(t):new De(t,e,n,null==r?1:r)}),ce(se,{brighter:function(t){return t=null==t?le:Math.pow(le,t),new De(this.h,this.s,this.l*t,this.opacity)},darker:function(t){return t=null==t?he:Math.pow(he,t),new De(this.h,this.s,this.l*t,this.opacity)},rgb:function(){var t=this.h%360+360*(this.h<0),e=isNaN(t)||isNaN(this.s)?0:this.s,n=this.l,r=n+(n<.5?n:1-n)*e,i=2*n-r;return new Ge(Pe(t>=240?t-240:t+120,i,r),Pe(t,i,r),Pe(t<120?t+240:t-120,i,r),this.opacity)},displayable:function(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl:function(){var t=this.opacity;return(1===(t=isNaN(t)?1:Math.max(0,Math.min(1,t)))?"hsl(":"hsla(")+(this.h||0)+", "+100*(this.s||0)+"%, "+100*(this.l||0)+"%"+(1===t?")":", "+t+")")}}));const Ue=t=>()=>t;function Te(t,e){var n=e-t;return n?function(t,e){return function(n){return t+n*e}}(t,n):Ue(isNaN(t)?e:t)}const Be=function t(e){var n=function(t){return 1==(t=+t)?Te:function(e,n){return n-e?function(t,e,n){return t=Math.pow(t,n),e=Math.pow(e,n)-t,n=1/n,function(r){return Math.pow(t+r*e,n)}}(e,n,t):Ue(isNaN(e)?n:e)}}(e);function r(t,e){var r=n((t=Me(t)).r,(e=Me(e)).r),i=n(t.g,e.g),o=n(t.b,e.b),a=Te(t.opacity,e.opacity);return function(e){return t.r=r(e),t.g=i(e),t.b=o(e),t.opacity=a(e),t+""}}return r.gamma=t,r}(1);function qe(t){return function(e){var n,r,i=e.length,o=new Array(i),a=new Array(i),u=new Array(i);for(n=0;n<i;++n)r=Me(e[n]),o[n]=r.r||0,a[n]=r.g||0,u[n]=r.b||0;return o=t(o),a=t(a),u=t(u),r.opacity=1,function(t){return r.r=o(t),r.g=a(t),r.b=u(t),r+""}}}qe((function(t){var e=t.length-1;return function(n){var r=n<=0?n=0:n>=1?(n=1,e-1):Math.floor(n*e),i=t[r],o=t[r+1],a=r>0?t[r-1]:2*i-o,u=r<e-1?t[r+2]:2*o-i;return Ie((n-r/e)*e,a,i,o,u)}})),qe((function(t){var e=t.length;return function(n){var r=Math.floor(((n%=1)<0?++n:n)*e),i=t[(r+e-1)%e],o=t[r%e],a=t[(r+1)%e],u=t[(r+2)%e];return Ie((n-r/e)*e,i,o,a,u)}}));var Re=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,Fe=new RegExp(Re.source,"g");function Ke(t,e){var n,r,i,o=Re.lastIndex=Fe.lastIndex=0,a=-1,u=[],c=[];for(t+="",e+="";(n=Re.exec(t))&&(r=Fe.exec(e));)(i=r.index)>o&&(i=e.slice(o,i),u[a]?u[a]+=i:u[++a]=i),(n=n[0])===(r=r[0])?u[a]?u[a]+=r:u[++a]=r:(u[++a]=null,c.push({i:a,x:Ht(n,r)})),o=Fe.lastIndex;return o<e.length&&(i=e.slice(o),u[a]?u[a]+=i:u[++a]=i),u.length<2?c[0]?function(t){return function(e){return t(e)+""}}(c[0].x):function(t){return function(){return t}}(e):(e=c.length,function(t){for(var n,r=0;r<e;++r)u[(n=c[r]).i]=n.x(t);return u.join("")})}function We(t,e){var n;return("number"==typeof e?Ht:e instanceof Ae?Be:(n=Ae(e))?(e=n,Be):Ke)(t,e)}function Ye(t){return function(){this.removeAttribute(t)}}function Xe(t){return function(){this.removeAttributeNS(t.space,t.local)}}function $e(t,e,n){var r,i,o=n+"";return function(){var a=this.getAttribute(t);return a===o?null:a===r?i:i=e(r=a,n)}}function Ve(t,e,n){var r,i,o=n+"";return function(){var a=this.getAttributeNS(t.space,t.local);return a===o?null:a===r?i:i=e(r=a,n)}}function He(t,e,n){var r,i,o;return function(){var a,u,c=n(this);if(null!=c)return(a=this.getAttribute(t))===(u=c+"")?null:a===r&&u===i?o:(i=u,o=e(r=a,c));this.removeAttribute(t)}}function Je(t,e,n){var r,i,o;return function(){var a,u,c=n(this);if(null!=c)return(a=this.getAttributeNS(t.space,t.local))===(u=c+"")?null:a===r&&u===i?o:(i=u,o=e(r=a,c));this.removeAttributeNS(t.space,t.local)}}function Qe(t,e){var n,r;function i(){var i=e.apply(this,arguments);return i!==r&&(n=(r=i)&&function(t,e){return function(n){this.setAttributeNS(t.space,t.local,e.call(this,n))}}(t,i)),n}return i._value=e,i}function Ze(t,e){var n,r;function i(){var i=e.apply(this,arguments);return i!==r&&(n=(r=i)&&function(t,e){return function(n){this.setAttribute(t,e.call(this,n))}}(t,i)),n}return i._value=e,i}function tn(t,e){return function(){Yt(this,t).delay=+e.apply(this,arguments)}}function en(t,e){return e=+e,function(){Yt(this,t).delay=e}}function nn(t,e){return function(){Xt(this,t).duration=+e.apply(this,arguments)}}function rn(t,e){return e=+e,function(){Xt(this,t).duration=e}}var on=yt.prototype.constructor;function an(t){return function(){this.style.removeProperty(t)}}var un=0;function cn(t,e,n,r){this._groups=t,this._parents=e,this._name=n,this._id=r}function sn(){return++un}var hn=yt.prototype;cn.prototype=function(t){return yt().transition(t)}.prototype={constructor:cn,select:function(t){var e=this._name,n=this._id;"function"!=typeof t&&(t=o(t));for(var r=this._groups,i=r.length,a=new Array(i),u=0;u<i;++u)for(var c,s,h=r[u],l=h.length,d=a[u]=new Array(l),f=0;f<l;++f)(c=h[f])&&(s=t.call(c,c.__data__,f,h))&&("__data__"in c&&(s.__data__=c.__data__),d[f]=s,Wt(d[f],e,n,f,d,$t(c,n)));return new cn(a,this._parents,e,n)},selectAll:function(t){var e=this._name,n=this._id;"function"!=typeof t&&(t=u(t));for(var r=this._groups,i=r.length,o=[],a=[],c=0;c<i;++c)for(var s,h=r[c],l=h.length,d=0;d<l;++d)if(s=h[d]){for(var f,p=t.call(s,s.__data__,d,h),y=$t(s,n),g=0,v=p.length;g<v;++g)(f=p[g])&&Wt(f,e,n,g,p,y);o.push(p),a.push(s)}return new cn(o,a,e,n)},selectChild:hn.selectChild,selectChildren:hn.selectChildren,filter:function(t){"function"!=typeof t&&(t=c(t));for(var e=this._groups,n=e.length,r=new Array(n),i=0;i<n;++i)for(var o,a=e[i],u=a.length,s=r[i]=[],h=0;h<u;++h)(o=a[h])&&t.call(o,o.__data__,h,a)&&s.push(o);return new cn(r,this._parents,this._name,this._id)},merge:function(t){if(t._id!==this._id)throw new Error;for(var e=this._groups,n=t._groups,r=e.length,i=n.length,o=Math.min(r,i),a=new Array(r),u=0;u<o;++u)for(var c,s=e[u],h=n[u],l=s.length,d=a[u]=new Array(l),f=0;f<l;++f)(c=s[f]||h[f])&&(d[f]=c);for(;u<r;++u)a[u]=e[u];return new cn(a,this._parents,this._name,this._id)},selection:function(){return new on(this._groups,this._parents)},transition:function(){for(var t=this._name,e=this._id,n=sn(),r=this._groups,i=r.length,o=0;o<i;++o)for(var a,u=r[o],c=u.length,s=0;s<c;++s)if(a=u[s]){var h=$t(a,e);Wt(a,t,n,s,u,{time:h.time+h.delay+h.duration,delay:0,duration:h.duration,ease:h.ease})}return new cn(r,this._parents,t,n)},call:hn.call,nodes:hn.nodes,node:hn.node,size:hn.size,empty:hn.empty,each:hn.each,on:function(t,e){var n=this._id;return arguments.length<2?$t(this.node(),n).on.on(t):this.each(function(t,e,n){var r,i,o=function(t){return(t+"").trim().split(/^|\s+/).every((function(t){var e=t.indexOf(".");return e>=0&&(t=t.slice(0,e)),!t||"start"===t}))}(e)?Yt:Xt;return function(){var a=o(this,t),u=a.on;u!==r&&(i=(r=u).copy()).on(e,n),a.on=i}}(n,t,e))},attr:function(t,e){var n=k(t),r="transform"===n?re:We;return this.attrTween(t,"function"==typeof e?(n.local?Je:He)(n,r,ae(this,"attr."+t,e)):null==e?(n.local?Xe:Ye)(n):(n.local?Ve:$e)(n,r,e))},attrTween:function(t,e){var n="attr."+t;if(arguments.length<2)return(n=this.tween(n))&&n._value;if(null==e)return this.tween(n,null);if("function"!=typeof e)throw new Error;var r=k(t);return this.tween(n,(r.local?Qe:Ze)(r,e))},style:function(t,e,n){var r="transform"==(t+="")?ne:We;return null==e?this.styleTween(t,function(t,e){var n,r,i;return function(){var o=C(this,t),a=(this.style.removeProperty(t),C(this,t));return o===a?null:o===n&&a===r?i:i=e(n=o,r=a)}}(t,r)).on("end.style."+t,an(t)):"function"==typeof e?this.styleTween(t,function(t,e,n){var r,i,o;return function(){var a=C(this,t),u=n(this),c=u+"";return null==u&&(this.style.removeProperty(t),c=u=C(this,t)),a===c?null:a===r&&c===i?o:(i=c,o=e(r=a,u))}}(t,r,ae(this,"style."+t,e))).each(function(t,e){var n,r,i,o,a="style."+e,u="end."+a;return function(){var c=Xt(this,t),s=c.on,h=null==c.value[a]?o||(o=an(e)):void 0;s===n&&i===h||(r=(n=s).copy()).on(u,i=h),c.on=r}}(this._id,t)):this.styleTween(t,function(t,e,n){var r,i,o=n+"";return function(){var a=C(this,t);return a===o?null:a===r?i:i=e(r=a,n)}}(t,r,e),n).on("end.style."+t,null)},styleTween:function(t,e,n){var r="style."+(t+="");if(arguments.length<2)return(r=this.tween(r))&&r._value;if(null==e)return this.tween(r,null);if("function"!=typeof e)throw new Error;return this.tween(r,function(t,e,n){var r,i;function o(){var o=e.apply(this,arguments);return o!==i&&(r=(i=o)&&function(t,e,n){return function(r){this.style.setProperty(t,e.call(this,r),n)}}(t,o,n)),r}return o._value=e,o}(t,e,null==n?"":n))},text:function(t){return this.tween("text","function"==typeof t?function(t){return function(){var e=t(this);this.textContent=null==e?"":e}}(ae(this,"text",t)):function(t){return function(){this.textContent=t}}(null==t?"":t+""))},textTween:function(t){var e="text";if(arguments.length<1)return(e=this.tween(e))&&e._value;if(null==t)return this.tween(e,null);if("function"!=typeof t)throw new Error;return this.tween(e,function(t){var e,n;function r(){var r=t.apply(this,arguments);return r!==n&&(e=(n=r)&&function(t){return function(e){this.textContent=t.call(this,e)}}(r)),e}return r._value=t,r}(t))},remove:function(){return this.on("end.remove",function(t){return function(){var e=this.parentNode;for(var n in this.__transition)if(+n!==t)return;e&&e.removeChild(this)}}(this._id))},tween:function(t,e){var n=this._id;if(t+="",arguments.length<2){for(var r,i=$t(this.node(),n).tween,o=0,a=i.length;o<a;++o)if((r=i[o]).name===t)return r.value;return null}return this.each((null==e?ie:oe)(n,t,e))},delay:function(t){var e=this._id;return arguments.length?this.each(("function"==typeof t?tn:en)(e,t)):$t(this.node(),e).delay},duration:function(t){var e=this._id;return arguments.length?this.each(("function"==typeof t?nn:rn)(e,t)):$t(this.node(),e).duration},ease:function(t){var e=this._id;return arguments.length?this.each(function(t,e){if("function"!=typeof e)throw new Error;return function(){Xt(this,t).ease=e}}(e,t)):$t(this.node(),e).ease},easeVarying:function(t){if("function"!=typeof t)throw new Error;return this.each(function(t,e){return function(){var n=e.apply(this,arguments);if("function"!=typeof n)throw new Error;Xt(this,t).ease=n}}(this._id,t))},end:function(){var t,e,n=this,r=n._id,i=n.size();return new Promise((function(o,a){var u={value:a},c={value:function(){0==--i&&o()}};n.each((function(){var n=Xt(this,r),i=n.on;i!==t&&((e=(t=i).copy())._.cancel.push(u),e._.interrupt.push(u),e._.end.push(c)),n.on=e})),0===i&&o()}))},[Symbol.iterator]:hn[Symbol.iterator]};var ln={time:null,delay:0,duration:250,ease:function(t){return((t*=2)<=1?t*t*t:(t-=2)*t*t+2)/2}};function dn(t,e){for(var n;!(n=t.__transition)||!(n=n[e]);)if(!(t=t.parentNode))throw new Error(`transition ${e} not found`);return n}yt.prototype.interrupt=function(t){return this.each((function(){Vt(this,t)}))},yt.prototype.transition=function(t){var e,n;t instanceof cn?(e=t._id,t=t._name):(e=sn(),(n=ln).time=zt(),t=null==t?null:t+"");for(var r=this._groups,i=r.length,o=0;o<i;++o)for(var a,u=r[o],c=u.length,s=0;s<c;++s)(a=u[s])&&Wt(a,t,e,s,u,n||dn(a,e));return new cn(r,this._parents,t,e)};const{abs:fn,max:pn,min:yn}=Math;function gn(t){return{type:t}}function vn(t){return"string"==typeof t?new ft([[document.querySelector(t)]],[document.documentElement]):new ft([[t]],dt)}function mn(t,e){if(t=function(t){let e;for(;e=t.sourceEvent;)t=e;return t}(t),void 0===e&&(e=t.currentTarget),e){var n=e.ownerSVGElement||e;if(n.createSVGPoint){var r=n.createSVGPoint();return r.x=t.clientX,r.y=t.clientY,[(r=r.matrixTransform(e.getScreenCTM().inverse())).x,r.y]}if(e.getBoundingClientRect){var i=e.getBoundingClientRect();return[t.clientX-i.left-e.clientLeft,t.clientY-i.top-e.clientTop]}}return[t.pageX,t.pageY]}["w","e"].map(gn),["n","s"].map(gn),["n","w","e","s","nw","ne","sw","se"].map(gn);const wn={passive:!1},bn={capture:!0,passive:!1};function _n(t){t.stopImmediatePropagation()}function xn(t){t.preventDefault(),t.stopImmediatePropagation()}function kn(t){var e=t.document.documentElement,n=vn(t).on("dragstart.drag",xn,bn);"onselectstart"in e?n.on("selectstart.drag",xn,bn):(e.__noselect=e.style.MozUserSelect,e.style.MozUserSelect="none")}function En(t,e){var n=t.document.documentElement,r=vn(t).on("dragstart.drag",null);e&&(r.on("click.drag",xn,bn),setTimeout((function(){r.on("click.drag",null)}),0)),"onselectstart"in n?r.on("selectstart.drag",null):(n.style.MozUserSelect=n.__noselect,delete n.__noselect)}const An=t=>()=>t;function Sn(t,{sourceEvent:e,subject:n,target:r,identifier:i,active:o,x:a,y:u,dx:c,dy:s,dispatch:h}){Object.defineProperties(this,{type:{value:t,enumerable:!0,configurable:!0},sourceEvent:{value:e,enumerable:!0,configurable:!0},subject:{value:n,enumerable:!0,configurable:!0},target:{value:r,enumerable:!0,configurable:!0},identifier:{value:i,enumerable:!0,configurable:!0},active:{value:o,enumerable:!0,configurable:!0},x:{value:a,enumerable:!0,configurable:!0},y:{value:u,enumerable:!0,configurable:!0},dx:{value:c,enumerable:!0,configurable:!0},dy:{value:s,enumerable:!0,configurable:!0},_:{value:h}})}function Ln(t){return!t.ctrlKey&&!t.button}function Mn(){return this.parentNode}function Gn(t,e){return null==e?{x:t.x,y:t.y}:e}function Nn(){return navigator.maxTouchPoints||"ontouchstart"in this}function On(t){return function(){return t}}function jn(t){return 1e-6*(t()-.5)}function zn(t){return t.index}function Cn(t,e){var n=t.get(e);if(!n)throw new Error("node not found: "+e);return n}function Dn(t,e,n,r){if(isNaN(e)||isNaN(n))return t;var i,o,a,u,c,s,h,l,d,f=t._root,p={data:r},y=t._x0,g=t._y0,v=t._x1,m=t._y1;if(!f)return t._root=p,t;for(;f.length;)if((s=e>=(o=(y+v)/2))?y=o:v=o,(h=n>=(a=(g+m)/2))?g=a:m=a,i=f,!(f=f[l=h<<1|s]))return i[l]=p,t;if(u=+t._x.call(null,f.data),c=+t._y.call(null,f.data),e===u&&n===c)return p.next=f,i?i[l]=p:t._root=p,t;do{i=i?i[l]=new Array(4):t._root=new Array(4),(s=e>=(o=(y+v)/2))?y=o:v=o,(h=n>=(a=(g+m)/2))?g=a:m=a}while((l=h<<1|s)==(d=(c>=a)<<1|u>=o));return i[d]=f,i[l]=p,t}function Pn(t,e,n,r,i){this.node=t,this.x0=e,this.y0=n,this.x1=r,this.y1=i}function In(t){return t[0]}function Un(t){return t[1]}function Tn(t,e,n){var r=new Bn(null==e?In:e,null==n?Un:n,NaN,NaN,NaN,NaN);return null==t?r:r.addAll(t)}function Bn(t,e,n,r,i,o){this._x=t,this._y=e,this._x0=n,this._y0=r,this._x1=i,this._y1=o,this._root=void 0}function qn(t){for(var e={data:t.data},n=e;t=t.next;)n=n.next={data:t.data};return e}Sn.prototype.on=function(){var t=this._.on.apply(this._,arguments);return t===this._?this:t};var Rn=Tn.prototype=Bn.prototype;Rn.copy=function(){var t,e,n=new Bn(this._x,this._y,this._x0,this._y0,this._x1,this._y1),r=this._root;if(!r)return n;if(!r.length)return n._root=qn(r),n;for(t=[{source:r,target:n._root=new Array(4)}];r=t.pop();)for(var i=0;i<4;++i)(e=r.source[i])&&(e.length?t.push({source:e,target:r.target[i]=new Array(4)}):r.target[i]=qn(e));return n},Rn.add=function(t){const e=+this._x.call(null,t),n=+this._y.call(null,t);return Dn(this.cover(e,n),e,n,t)},Rn.addAll=function(t){var e,n,r,i,o=t.length,a=new Array(o),u=new Array(o),c=1/0,s=1/0,h=-1/0,l=-1/0;for(n=0;n<o;++n)isNaN(r=+this._x.call(null,e=t[n]))||isNaN(i=+this._y.call(null,e))||(a[n]=r,u[n]=i,r<c&&(c=r),r>h&&(h=r),i<s&&(s=i),i>l&&(l=i));if(c>h||s>l)return this;for(this.cover(c,s).cover(h,l),n=0;n<o;++n)Dn(this,a[n],u[n],t[n]);return this},Rn.cover=function(t,e){if(isNaN(t=+t)||isNaN(e=+e))return this;var n=this._x0,r=this._y0,i=this._x1,o=this._y1;if(isNaN(n))i=(n=Math.floor(t))+1,o=(r=Math.floor(e))+1;else{for(var a,u,c=i-n||1,s=this._root;n>t||t>=i||r>e||e>=o;)switch(u=(e<r)<<1|t<n,(a=new Array(4))[u]=s,s=a,c*=2,u){case 0:i=n+c,o=r+c;break;case 1:n=i-c,o=r+c;break;case 2:i=n+c,r=o-c;break;case 3:n=i-c,r=o-c}this._root&&this._root.length&&(this._root=s)}return this._x0=n,this._y0=r,this._x1=i,this._y1=o,this},Rn.data=function(){var t=[];return this.visit((function(e){if(!e.length)do{t.push(e.data)}while(e=e.next)})),t},Rn.extent=function(t){return arguments.length?this.cover(+t[0][0],+t[0][1]).cover(+t[1][0],+t[1][1]):isNaN(this._x0)?void 0:[[this._x0,this._y0],[this._x1,this._y1]]},Rn.find=function(t,e,n){var r,i,o,a,u,c,s,h=this._x0,l=this._y0,d=this._x1,f=this._y1,p=[],y=this._root;for(y&&p.push(new Pn(y,h,l,d,f)),null==n?n=1/0:(h=t-n,l=e-n,d=t+n,f=e+n,n*=n);c=p.pop();)if(!(!(y=c.node)||(i=c.x0)>d||(o=c.y0)>f||(a=c.x1)<h||(u=c.y1)<l))if(y.length){var g=(i+a)/2,v=(o+u)/2;p.push(new Pn(y[3],g,v,a,u),new Pn(y[2],i,v,g,u),new Pn(y[1],g,o,a,v),new Pn(y[0],i,o,g,v)),(s=(e>=v)<<1|t>=g)&&(c=p[p.length-1],p[p.length-1]=p[p.length-1-s],p[p.length-1-s]=c)}else{var m=t-+this._x.call(null,y.data),w=e-+this._y.call(null,y.data),b=m*m+w*w;if(b<n){var _=Math.sqrt(n=b);h=t-_,l=e-_,d=t+_,f=e+_,r=y.data}}return r},Rn.remove=function(t){if(isNaN(o=+this._x.call(null,t))||isNaN(a=+this._y.call(null,t)))return this;var e,n,r,i,o,a,u,c,s,h,l,d,f=this._root,p=this._x0,y=this._y0,g=this._x1,v=this._y1;if(!f)return this;if(f.length)for(;;){if((s=o>=(u=(p+g)/2))?p=u:g=u,(h=a>=(c=(y+v)/2))?y=c:v=c,e=f,!(f=f[l=h<<1|s]))return this;if(!f.length)break;(e[l+1&3]||e[l+2&3]||e[l+3&3])&&(n=e,d=l)}for(;f.data!==t;)if(r=f,!(f=f.next))return this;return(i=f.next)&&delete f.next,r?(i?r.next=i:delete r.next,this):e?(i?e[l]=i:delete e[l],(f=e[0]||e[1]||e[2]||e[3])&&f===(e[3]||e[2]||e[1]||e[0])&&!f.length&&(n?n[d]=f:this._root=f),this):(this._root=i,this)},Rn.removeAll=function(t){for(var e=0,n=t.length;e<n;++e)this.remove(t[e]);return this},Rn.root=function(){return this._root},Rn.size=function(){var t=0;return this.visit((function(e){if(!e.length)do{++t}while(e=e.next)})),t},Rn.visit=function(t){var e,n,r,i,o,a,u=[],c=this._root;for(c&&u.push(new Pn(c,this._x0,this._y0,this._x1,this._y1));e=u.pop();)if(!t(c=e.node,r=e.x0,i=e.y0,o=e.x1,a=e.y1)&&c.length){var s=(r+o)/2,h=(i+a)/2;(n=c[3])&&u.push(new Pn(n,s,h,o,a)),(n=c[2])&&u.push(new Pn(n,r,h,s,a)),(n=c[1])&&u.push(new Pn(n,s,i,o,h)),(n=c[0])&&u.push(new Pn(n,r,i,s,h))}return this},Rn.visitAfter=function(t){var e,n=[],r=[];for(this._root&&n.push(new Pn(this._root,this._x0,this._y0,this._x1,this._y1));e=n.pop();){var i=e.node;if(i.length){var o,a=e.x0,u=e.y0,c=e.x1,s=e.y1,h=(a+c)/2,l=(u+s)/2;(o=i[0])&&n.push(new Pn(o,a,u,h,l)),(o=i[1])&&n.push(new Pn(o,h,u,c,l)),(o=i[2])&&n.push(new Pn(o,a,l,h,s)),(o=i[3])&&n.push(new Pn(o,h,l,c,s))}r.push(e)}for(;e=r.pop();)t(e.node,e.x0,e.y0,e.x1,e.y1);return this},Rn.x=function(t){return arguments.length?(this._x=t,this):this._x},Rn.y=function(t){return arguments.length?(this._y=t,this):this._y};const Fn=4294967296;function Kn(t){return t.x}function Wn(t){return t.y}var Yn=Math.PI*(3-Math.sqrt(5));function Xn(t){return((t=Math.exp(t))+1/t)/2}const $n=function t(e,n,r){function i(t,i){var o,a,u=t[0],c=t[1],s=t[2],h=i[0],l=i[1],d=i[2],f=h-u,p=l-c,y=f*f+p*p;if(y<1e-12)a=Math.log(d/s)/e,o=function(t){return[u+t*f,c+t*p,s*Math.exp(e*t*a)]};else{var g=Math.sqrt(y),v=(d*d-s*s+r*y)/(2*s*n*g),m=(d*d-s*s-r*y)/(2*d*n*g),w=Math.log(Math.sqrt(v*v+1)-v),b=Math.log(Math.sqrt(m*m+1)-m);a=(b-w)/e,o=function(t){var r,i=t*a,o=Xn(w),h=s/(n*g)*(o*(r=e*i+w,((r=Math.exp(2*r))-1)/(r+1))-function(t){return((t=Math.exp(t))-1/t)/2}(w));return[u+h*f,c+h*p,s*o/Xn(e*i+w)]}}return o.duration=1e3*a*e/Math.SQRT2,o}return i.rho=function(e){var n=Math.max(.001,+e),r=n*n;return t(n,r,r*r)},i}(Math.SQRT2,2,4),Vn=t=>()=>t;function Hn(t,{sourceEvent:e,target:n,transform:r,dispatch:i}){Object.defineProperties(this,{type:{value:t,enumerable:!0,configurable:!0},sourceEvent:{value:e,enumerable:!0,configurable:!0},target:{value:n,enumerable:!0,configurable:!0},transform:{value:r,enumerable:!0,configurable:!0},_:{value:i}})}function Jn(t,e,n){this.k=t,this.x=e,this.y=n}Jn.prototype={constructor:Jn,scale:function(t){return 1===t?this:new Jn(this.k*t,this.x,this.y)},translate:function(t,e){return 0===t&0===e?this:new Jn(this.k,this.x+this.k*t,this.y+this.k*e)},apply:function(t){return[t[0]*this.k+this.x,t[1]*this.k+this.y]},applyX:function(t){return t*this.k+this.x},applyY:function(t){return t*this.k+this.y},invert:function(t){return[(t[0]-this.x)/this.k,(t[1]-this.y)/this.k]},invertX:function(t){return(t-this.x)/this.k},invertY:function(t){return(t-this.y)/this.k},rescaleX:function(t){return t.copy().domain(t.range().map(this.invertX,this).map(t.invert,t))},rescaleY:function(t){return t.copy().domain(t.range().map(this.invertY,this).map(t.invert,t))},toString:function(){return"translate("+this.x+","+this.y+") scale("+this.k+")"}};var Qn=new Jn(1,0,0);function Zn(t){t.stopImmediatePropagation()}function tr(t){t.preventDefault(),t.stopImmediatePropagation()}function er(t){return!(t.ctrlKey&&"wheel"!==t.type||t.button)}function nr(){var t=this;return t instanceof SVGElement?(t=t.ownerSVGElement||t).hasAttribute("viewBox")?[[(t=t.viewBox.baseVal).x,t.y],[t.x+t.width,t.y+t.height]]:[[0,0],[t.width.baseVal.value,t.height.baseVal.value]]:[[0,0],[t.clientWidth,t.clientHeight]]}function rr(){return this.__zoom||Qn}function ir(t){return-t.deltaY*(1===t.deltaMode?.05:t.deltaMode?1:.002)*(t.ctrlKey?10:1)}function or(){return navigator.maxTouchPoints||"ontouchstart"in this}function ar(t,e,n){var r=t.invertX(e[0][0])-n[0][0],i=t.invertX(e[1][0])-n[1][0],o=t.invertY(e[0][1])-n[0][1],a=t.invertY(e[1][1])-n[1][1];return t.translate(i>r?(r+i)/2:Math.min(0,r)||Math.max(0,i),a>o?(o+a)/2:Math.min(0,o)||Math.max(0,a))}function ur(t){return ur="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},ur(t)}function cr(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,lr(r.key),r)}}function sr(t,e,n){return e&&cr(t.prototype,e),n&&cr(t,n),Object.defineProperty(t,"prototype",{writable:!1}),t}function hr(t,e,n){return(e=lr(e))in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function lr(t){var e=function(t,e){if("object"!=ur(t)||!t)return t;var n=t[Symbol.toPrimitive];if(void 0!==n){var r=n.call(t,"string");if("object"!=ur(r))return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==ur(e)?e:e+""}Jn.prototype;var dr=sr((function t(){!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t)}));hr(dr,"highlightedNodes",[]),hr(dr,"focusMode",!1),hr(dr,"position",{x:0,y:0,zoom:1}),window.addEventListener("DOMContentLoaded",(function(){document.getElementById("view-save").addEventListener("click",(function(){var t=new URL(window.location),e=Array.from(document.querySelectorAll("#types-form input:checked")).map((function(t){return t.name})),n=Array.from(document.querySelectorAll("#tags-form input:checked")).map((function(t){return t.name})),r=document.getElementById("focus-input").value;e.length>0&&t.searchParams.set("filters",e.join("-")),n.length>0&&t.searchParams.set("tags",n.join("-")),document.querySelector("#focus-check:checked")&&t.searchParams.set("focus",r),window.location.replace(t)}))}));const fr="undefined"!=typeof navigator&&navigator.userAgent.toLowerCase().indexOf("firefox")>0;function pr(t,e,n,r){t.addEventListener?t.addEventListener(e,n,r):t.attachEvent&&t.attachEvent("on".concat(e),n)}function yr(t,e,n,r){t.removeEventListener?t.removeEventListener(e,n,r):t.detachEvent&&t.detachEvent("on".concat(e),n)}function gr(t,e){const n=e.slice(0,e.length-1);for(let e=0;e<n.length;e++)n[e]=t[n[e].toLowerCase()];return n}function vr(t){"string"!=typeof t&&(t="");const e=(t=t.replace(/\s/g,"")).split(",");let n=e.lastIndexOf("");for(;n>=0;)e[n-1]+=",",e.splice(n,1),n=e.lastIndexOf("");return e}const mr={backspace:8,"⌫":8,tab:9,clear:12,enter:13,"↩":13,return:13,esc:27,escape:27,space:32,left:37,up:38,right:39,down:40,del:46,delete:46,ins:45,insert:45,home:36,end:35,pageup:33,pagedown:34,capslock:20,num_0:96,num_1:97,num_2:98,num_3:99,num_4:100,num_5:101,num_6:102,num_7:103,num_8:104,num_9:105,num_multiply:106,num_add:107,num_enter:108,num_subtract:109,num_decimal:110,num_divide:111,"⇪":20,",":188,".":190,"/":191,"`":192,"-":fr?173:189,"=":fr?61:187,";":fr?59:186,"'":222,"[":219,"]":221,"\\":220},wr={"⇧":16,shift:16,"⌥":18,alt:18,option:18,"⌃":17,ctrl:17,control:17,"⌘":91,cmd:91,command:91},br={16:"shiftKey",18:"altKey",17:"ctrlKey",91:"metaKey",shiftKey:16,ctrlKey:17,altKey:18,metaKey:91},_r={16:!1,18:!1,17:!1,91:!1},xr={};for(let t=1;t<20;t++)mr["f".concat(t)]=111+t;let kr=[],Er=null,Ar="all";const Sr=new Map,Lr=t=>mr[t.toLowerCase()]||wr[t.toLowerCase()]||t.toUpperCase().charCodeAt(0);function Mr(t){Ar=t||"all"}function Gr(){return Ar||"all"}function Nr(t){if(void 0===t)Object.keys(xr).forEach((t=>{Array.isArray(xr[t])&&xr[t].forEach((t=>Or(t))),delete xr[t]})),Dr(null);else if(Array.isArray(t))t.forEach((t=>{t.key&&Or(t)}));else if("object"==typeof t)t.key&&Or(t);else if("string"==typeof t){for(var e=arguments.length,n=new Array(e>1?e-1:0),r=1;r<e;r++)n[r-1]=arguments[r];let[i,o]=n;"function"==typeof i&&(o=i,i=""),Or({key:t,scope:i,method:o,splitKey:"+"})}}const Or=t=>{let{key:e,scope:n,method:r,splitKey:i="+"}=t;vr(e).forEach((t=>{const e=t.split(i),o=e.length,a=e[o-1],u="*"===a?"*":Lr(a);if(!xr[u])return;n||(n=Gr());const c=o>1?gr(wr,e):[],s=[];xr[u]=xr[u].filter((t=>{const e=(!r||t.method===r)&&t.scope===n&&function(t,e){const n=t.length>=e.length?t:e,r=t.length>=e.length?e:t;let i=!0;for(let t=0;t<n.length;t++)-1===r.indexOf(n[t])&&(i=!1);return i}(t.mods,c);return e&&s.push(t.element),!e})),s.forEach((t=>Dr(t)))}))};function jr(t,e,n,r){if(e.element!==r)return;let i;if(e.scope===n||"all"===e.scope){i=e.mods.length>0;for(const t in _r)Object.prototype.hasOwnProperty.call(_r,t)&&(!_r[t]&&e.mods.indexOf(+t)>-1||_r[t]&&-1===e.mods.indexOf(+t))&&(i=!1);(0!==e.mods.length||_r[16]||_r[18]||_r[17]||_r[91])&&!i&&"*"!==e.shortcut||(e.keys=[],e.keys=e.keys.concat(kr),!1===e.method(t,e)&&(t.preventDefault?t.preventDefault():t.returnValue=!1,t.stopPropagation&&t.stopPropagation(),t.cancelBubble&&(t.cancelBubble=!0)))}}function zr(t,e){const n=xr["*"];let r=t.keyCode||t.which||t.charCode;if(!Cr.filter.call(this,t))return;if(93!==r&&224!==r||(r=91),-1===kr.indexOf(r)&&229!==r&&kr.push(r),["ctrlKey","altKey","shiftKey","metaKey"].forEach((e=>{const n=br[e];t[e]&&-1===kr.indexOf(n)?kr.push(n):!t[e]&&kr.indexOf(n)>-1?kr.splice(kr.indexOf(n),1):"metaKey"===e&&t[e]&&3===kr.length&&(t.ctrlKey||t.shiftKey||t.altKey||(kr=kr.slice(kr.indexOf(n))))})),r in _r){_r[r]=!0;for(const t in wr)wr[t]===r&&(Cr[t]=!0);if(!n)return}for(const e in _r)Object.prototype.hasOwnProperty.call(_r,e)&&(_r[e]=t[br[e]]);t.getModifierState&&(!t.altKey||t.ctrlKey)&&t.getModifierState("AltGraph")&&(-1===kr.indexOf(17)&&kr.push(17),-1===kr.indexOf(18)&&kr.push(18),_r[17]=!0,_r[18]=!0);const i=Gr();if(n)for(let r=0;r<n.length;r++)n[r].scope===i&&("keydown"===t.type&&n[r].keydown||"keyup"===t.type&&n[r].keyup)&&jr(t,n[r],i,e);if(!(r in xr))return;const o=xr[r],a=o.length;for(let n=0;n<a;n++)if(("keydown"===t.type&&o[n].keydown||"keyup"===t.type&&o[n].keyup)&&o[n].key){const r=o[n],{splitKey:a}=r,u=r.key.split(a),c=[];for(let t=0;t<u.length;t++)c.push(Lr(u[t]));c.sort().join("")===kr.sort().join("")&&jr(t,r,i,e)}}function Cr(t,e,n){kr=[];const r=vr(t);let i=[],o="all",a=document,u=0,c=!1,s=!0,h="+",l=!1,d=!1;for(void 0===n&&"function"==typeof e&&(n=e),"[object Object]"===Object.prototype.toString.call(e)&&(e.scope&&(o=e.scope),e.element&&(a=e.element),e.keyup&&(c=e.keyup),void 0!==e.keydown&&(s=e.keydown),void 0!==e.capture&&(l=e.capture),"string"==typeof e.splitKey&&(h=e.splitKey),!0===e.single&&(d=!0)),"string"==typeof e&&(o=e),d&&Nr(t,o);u<r.length;u++)i=[],(t=r[u].split(h)).length>1&&(i=gr(wr,t)),(t="*"===(t=t[t.length-1])?"*":Lr(t))in xr||(xr[t]=[]),xr[t].push({keyup:c,keydown:s,scope:o,mods:i,shortcut:r[u],method:n,key:r[u],splitKey:h,element:a});if(void 0!==a&&window){if(!Sr.has(a)){const t=function(){return zr(arguments.length>0&&void 0!==arguments[0]?arguments[0]:window.event,a)},e=function(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:window.event;zr(t,a),function(t){let e=t.keyCode||t.which||t.charCode;const n=kr.indexOf(e);if(n>=0&&kr.splice(n,1),t.key&&"meta"===t.key.toLowerCase()&&kr.splice(0,kr.length),93!==e&&224!==e||(e=91),e in _r){_r[e]=!1;for(const t in wr)wr[t]===e&&(Cr[t]=!1)}}(t)};Sr.set(a,{keydownListener:t,keyupListenr:e,capture:l}),pr(a,"keydown",t,l),pr(a,"keyup",e,l)}if(!Er){const t=()=>{kr=[]};Er={listener:t,capture:l},pr(window,"focus",t,l)}}}function Dr(t){const e=Object.values(xr).flat();if(e.findIndex((e=>{let{element:n}=e;return n===t}))<0){const{keydownListener:e,keyupListenr:n,capture:r}=Sr.get(t)||{};e&&n&&(yr(t,"keyup",n,r),yr(t,"keydown",e,r),Sr.delete(t))}if((e.length<=0||Sr.size<=0)&&(Object.keys(Sr).forEach((t=>{const{keydownListener:e,keyupListenr:n,capture:r}=Sr.get(t)||{};e&&n&&(yr(t,"keyup",n,r),yr(t,"keydown",e,r),Sr.delete(t))})),Sr.clear(),Object.keys(xr).forEach((t=>delete xr[t])),Er)){const{listener:t,capture:e}=Er;yr(window,"focus",t,e),Er=null}}const Pr={getPressedKeyString:function(){return kr.map((t=>{return e=t,Object.keys(mr).find((t=>mr[t]===e))||(t=>Object.keys(wr).find((e=>wr[e]===t)))(t)||String.fromCharCode(t);var e}))},setScope:Mr,getScope:Gr,deleteScope:function(t,e){let n,r;t||(t=Gr());for(const e in xr)if(Object.prototype.hasOwnProperty.call(xr,e))for(n=xr[e],r=0;r<n.length;)n[r].scope===t?n.splice(r,1).forEach((t=>{let{element:e}=t;return Dr(e)})):r++;Gr()===t&&Mr(e||"all")},getPressedKeyCodes:function(){return kr.slice(0)},getAllKeyCodes:function(){const t=[];return Object.keys(xr).forEach((e=>{xr[e].forEach((e=>{let{key:n,scope:r,mods:i,shortcut:o}=e;t.push({scope:r,shortcut:o,mods:i,keys:n.split("+").map((t=>Lr(t)))})}))})),t},isPressed:function(t){return"string"==typeof t&&(t=Lr(t)),-1!==kr.indexOf(t)},filter:function(t){const e=t.target||t.srcElement,{tagName:n}=e;let r=!0;const i="INPUT"===n&&!["checkbox","radio","range","button","file","reset","submit","color"].includes(e.type);return(e.isContentEditable||(i||"TEXTAREA"===n||"SELECT"===n)&&!e.readOnly)&&(r=!1),r},trigger:function(t){let e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"all";Object.keys(xr).forEach((n=>{xr[n].filter((n=>n.scope===e&&n.shortcut===t)).forEach((t=>{t&&t.method&&t.method()}))}))},unbind:Nr,keyMap:mr,modifier:wr,modifierMap:br};for(const t in Pr)Object.prototype.hasOwnProperty.call(Pr,t)&&(Cr[t]=Pr[t]);if("undefined"!=typeof window){const t=window.hotkeys;Cr.noConflict=e=>(e&&window.hotkeys===Cr&&(window.hotkeys=t),Cr),window.hotkeys=Cr}const Ir={notFiltered:0,filteredByTimeline:1,filteredByFocus:2,filteredByTag:3,filteredByType:4};var Ur=[];data.nodes=data.nodes.map((function(t){return Ur.push(t.id),t.hidden=Ir.notFiltered,t.isolated=!1,t.highlighted=!1,t}));var Tr=vn("#graph-canvas"),Br=Tr.append("svg"),qr=Tr.node().getBoundingClientRect(),Rr=qr.width,Fr=qr.height;Br.attr("viewBox",[0,0,Rr,Fr]);var Kr=function(t){var e,n=1,r=.001,i=1-Math.pow(r,1/300),o=0,a=.6,u=new Map,c=Pt(l),s=_t("tick","end"),h=function(){let t=1;return()=>(t=(1664525*t+1013904223)%Fn)/Fn}();function l(){d(),s.call("tick",e),n<r&&(c.stop(),s.call("end",e))}function d(r){var c,s,h=t.length;void 0===r&&(r=1);for(var l=0;l<r;++l)for(n+=(o-n)*i,u.forEach((function(t){t(n)})),c=0;c<h;++c)null==(s=t[c]).fx?s.x+=s.vx*=a:(s.x=s.fx,s.vx=0),null==s.fy?s.y+=s.vy*=a:(s.y=s.fy,s.vy=0);return e}function f(){for(var e,n=0,r=t.length;n<r;++n){if((e=t[n]).index=n,null!=e.fx&&(e.x=e.fx),null!=e.fy&&(e.y=e.fy),isNaN(e.x)||isNaN(e.y)){var i=10*Math.sqrt(.5+n),o=n*Yn;e.x=i*Math.cos(o),e.y=i*Math.sin(o)}(isNaN(e.vx)||isNaN(e.vy))&&(e.vx=e.vy=0)}}function p(e){return e.initialize&&e.initialize(t,h),e}return null==t&&(t=[]),f(),e={tick:d,restart:function(){return c.restart(l),e},stop:function(){return c.stop(),e},nodes:function(n){return arguments.length?(t=n,f(),u.forEach(p),e):t},alpha:function(t){return arguments.length?(n=+t,e):n},alphaMin:function(t){return arguments.length?(r=+t,e):r},alphaDecay:function(t){return arguments.length?(i=+t,e):+i},alphaTarget:function(t){return arguments.length?(o=+t,e):o},velocityDecay:function(t){return arguments.length?(a=1-t,e):1-a},randomSource:function(t){return arguments.length?(h=t,u.forEach(p),e):h},force:function(t,n){return arguments.length>1?(null==n?u.delete(t):u.set(t,p(n)),e):u.get(t)},find:function(e,n,r){var i,o,a,u,c,s=0,h=t.length;for(null==r?r=1/0:r*=r,s=0;s<h;++s)(a=(i=e-(u=t[s]).x)*i+(o=n-u.y)*o)<r&&(c=u,r=a);return c},on:function(t,n){return arguments.length>1?(s.on(t,n),e):s.on(t)}}}(data.nodes).force("link",function(t){var e,n,r,i,o,a,u=zn,c=function(t){return 1/Math.min(i[t.source.index],i[t.target.index])},s=On(30),h=1;function l(r){for(var i=0,u=t.length;i<h;++i)for(var c,s,l,d,f,p,y,g=0;g<u;++g)s=(c=t[g]).source,d=(l=c.target).x+l.vx-s.x-s.vx||jn(a),f=l.y+l.vy-s.y-s.vy||jn(a),d*=p=((p=Math.sqrt(d*d+f*f))-n[g])/p*r*e[g],f*=p,l.vx-=d*(y=o[g]),l.vy-=f*y,s.vx+=d*(y=1-y),s.vy+=f*y}function d(){if(r){var a,c,s=r.length,h=t.length,l=new Map(r.map(((t,e)=>[u(t,e,r),t])));for(a=0,i=new Array(s);a<h;++a)(c=t[a]).index=a,"object"!=typeof c.source&&(c.source=Cn(l,c.source)),"object"!=typeof c.target&&(c.target=Cn(l,c.target)),i[c.source.index]=(i[c.source.index]||0)+1,i[c.target.index]=(i[c.target.index]||0)+1;for(a=0,o=new Array(h);a<h;++a)c=t[a],o[a]=i[c.source.index]/(i[c.source.index]+i[c.target.index]);e=new Array(h),f(),n=new Array(h),p()}}function f(){if(r)for(var n=0,i=t.length;n<i;++n)e[n]=+c(t[n],n,t)}function p(){if(r)for(var e=0,i=t.length;e<i;++e)n[e]=+s(t[e],e,t)}return null==t&&(t=[]),l.initialize=function(t,e){r=t,a=e,d()},l.links=function(e){return arguments.length?(t=e,d(),l):t},l.id=function(t){return arguments.length?(u=t,l):u},l.iterations=function(t){return arguments.length?(h=+t,l):h},l.strength=function(t){return arguments.length?(c="function"==typeof t?t:On(+t),f(),l):c},l.distance=function(t){return arguments.length?(s="function"==typeof t?t:On(+t),p(),l):s},l}(data.links).id((function(t){return t.id}))).force("charge",function(){var t,e,n,r,i,o=On(-30),a=1,u=1/0,c=.81;function s(n){var i,o=t.length,a=Tn(t,Kn,Wn).visitAfter(l);for(r=n,i=0;i<o;++i)e=t[i],a.visit(d)}function h(){if(t){var e,n,r=t.length;for(i=new Array(r),e=0;e<r;++e)n=t[e],i[n.index]=+o(n,e,t)}}function l(t){var e,n,r,o,a,u=0,c=0;if(t.length){for(r=o=a=0;a<4;++a)(e=t[a])&&(n=Math.abs(e.value))&&(u+=e.value,c+=n,r+=n*e.x,o+=n*e.y);t.x=r/c,t.y=o/c}else{(e=t).x=e.data.x,e.y=e.data.y;do{u+=i[e.data.index]}while(e=e.next)}t.value=u}function d(t,o,s,h){if(!t.value)return!0;var l=t.x-e.x,d=t.y-e.y,f=h-o,p=l*l+d*d;if(f*f/c<p)return p<u&&(0===l&&(p+=(l=jn(n))*l),0===d&&(p+=(d=jn(n))*d),p<a&&(p=Math.sqrt(a*p)),e.vx+=l*t.value*r/p,e.vy+=d*t.value*r/p),!0;if(!(t.length||p>=u)){(t.data!==e||t.next)&&(0===l&&(p+=(l=jn(n))*l),0===d&&(p+=(d=jn(n))*d),p<a&&(p=Math.sqrt(a*p)));do{t.data!==e&&(f=i[t.data.index]*r/p,e.vx+=l*f,e.vy+=d*f)}while(t=t.next)}}return s.initialize=function(e,r){t=e,n=r,h()},s.strength=function(t){return arguments.length?(o="function"==typeof t?t:On(+t),h(),s):o},s.distanceMin=function(t){return arguments.length?(a=t*t,s):Math.sqrt(a)},s.distanceMax=function(t){return arguments.length?(u=t*t,s):Math.sqrt(u)},s.theta=function(t){return arguments.length?(c=t*t,s):Math.sqrt(c)},s}()).force("center",function(t,e){var n,r=1;function i(){var i,o,a=n.length,u=0,c=0;for(i=0;i<a;++i)u+=(o=n[i]).x,c+=o.y;for(u=(u/a-t)*r,c=(c/a-e)*r,i=0;i<a;++i)(o=n[i]).x-=u,o.y-=c}return null==t&&(t=0),null==e&&(e=0),i.initialize=function(t){n=t},i.x=function(e){return arguments.length?(t=+e,i):t},i.y=function(t){return arguments.length?(e=+t,i):e},i.strength=function(t){return arguments.length?(r=+t,i):r},i}()).force("forceX",function(t){var e,n,r,i=On(.1);function o(t){for(var i,o=0,a=e.length;o<a;++o)(i=e[o]).vx+=(r[o]-i.x)*n[o]*t}function a(){if(e){var o,a=e.length;for(n=new Array(a),r=new Array(a),o=0;o<a;++o)n[o]=isNaN(r[o]=+t(e[o],o,e))?0:+i(e[o],o,e)}}return"function"!=typeof t&&(t=On(null==t?0:+t)),o.initialize=function(t){e=t,a()},o.strength=function(t){return arguments.length?(i="function"==typeof t?t:On(+t),a(),o):i},o.x=function(e){return arguments.length?(t="function"==typeof e?e:On(+e),a(),o):t},o}()).force("forceY",function(t){var e,n,r,i=On(.1);function o(t){for(var i,o=0,a=e.length;o<a;++o)(i=e[o]).vy+=(r[o]-i.y)*n[o]*t}function a(){if(e){var o,a=e.length;for(n=new Array(a),r=new Array(a),o=0;o<a;++o)n[o]=isNaN(r[o]=+t(e[o],o,e))?0:+i(e[o],o,e)}}return"function"!=typeof t&&(t=On(null==t?0:+t)),o.initialize=function(t){e=t,a()},o.strength=function(t){return arguments.length?(i="function"==typeof t?t:On(+t),a(),o):i},o.y=function(e){return arguments.length?(t="function"==typeof e?e:On(+e),a(),o):t},o}());Kr.force("center").x(.5*Rr).y(.5*Fr),window.updateForces=function(){Kr.force("charge").strength(-Math.abs(graphProperties.attraction_force)).distanceMax(graphProperties.attraction_distance_max),Kr.force("forceX").strength(graphProperties.attraction_vertical),Kr.force("forceY").strength(graphProperties.attraction_horizontal),Kr.alpha(1).restart()},updateForces(),Cr("space",(function(t){t.preventDefault(),updateForces()})),Kr.on("tick",(function(){Wr.links.attr("x1",(function(t){return t.source.x})).attr("y1",(function(t){return t.source.y})).attr("x2",(function(t){return t.target.x})).attr("y2",(function(t){return t.target.y})),Wr.nodes.attr("transform",(function(t){return"translate("+t.x+","+t.y+")"})),vn("#load-bar-value").style("flex-basis",100*Kr.alpha()+"%"),Zr()}));var Wr={},Yr=new Set(["jpg","jpeg","png"]);function Xr(t,e,n){for(var r=[],i=2*Math.PI/t,o=0;o<t;o++){var a=o*i,u=(o+1)*i,c=0+e*Math.cos(a),s=0+e*Math.sin(a),h=0+e*Math.cos(u),l=0+e*Math.sin(u),d="M ".concat(c," ").concat(s," A ").concat(e," ").concat(e," 0 0 1 ").concat(h," ").concat(l," L ").concat(0," ").concat(0," Z"),f=0+(e+n)*Math.cos(a),p=0+(e+n)*Math.sin(a),y=0+(e+n)*Math.cos(u),g=0+(e+n)*Math.sin(u),v="M ".concat(f," ").concat(p," A ").concat(e+n," ").concat(e+n," 0 0 1 ").concat(y," ").concat(g," L ").concat(0," ").concat(0," Z");r.push({segment:d,border:v})}return r}function $r(t){var e=Wr.nodes.filter((function(t){return t.hidden===Ir.notFiltered})).data().map((function(t){return t.id}));return{nodes:Wr.nodes.filter((function(e){return t.includes(e.id)})),links:Wr.links.filter((function(n){return!(!t.includes(n.source.id)&&!t.includes(n.target.id)||!e.includes(n.source.id)||!e.includes(n.target.id))}))}}function Vr(t,e){var n=[],r=[];Ur.forEach((function(e){t.includes(e)?r.push(e):n.push(e)})),function(t,e){if(hideNodeNetwork(t),function(t){var e,n=ai(t);try{for(n.s();!(e=n.n()).done;){var r=e.value;li.querySelectorAll('[data-index="'+r+'"]').forEach((function(t){t.style.display="none"}))}}catch(t){n.e(t)}finally{n.f()}}(t),void 0===e)throw new Error("Need priority");Wr.nodes.data().map((function(n){var r=n.id,i=n.hidden;return t.includes(r)&&i<=e&&(n.hidden=e),n}))}(n,e),Hr(r,e)}function Hr(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:Ir.notFiltered,n=[];Wr.nodes.data().map((function(r){var i=r.id,o=r.hidden;return t.includes(i)&&o<=e&&(n.push(i),r.hidden=Ir.notFiltered),r})),displayNodeNetwork(n),function(t){var e,n=ai(t=t.filter((function(t){if(ti.find((function(e){return e.id===t})).hidden===Ir.notFiltered)return!0})));try{for(n.s();!(e=n.n()).done;){var r=e.value;li.querySelectorAll('[data-index="'+r+'"]').forEach((function(t){t.style.display=null}))}}catch(t){n.e(t)}finally{n.f()}}(n)}function Jr(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:Ir.notFiltered;Hr(Ur,t)}function Qr(){if(0!==dr.highlightedNodes.length){var t=$r(dr.highlightedNodes),e=t.nodes,n=t.links;e.selectAll(".border").style("fill",null),n.style("stroke",null),dr.highlightedNodes=[]}}function Zr(){var e=r(data.nodes,(function(t){return t.x})),n=t(data.nodes,(function(t){return t.x})),i=r(data.nodes,(function(t){return t.y})),o=t(data.nodes,(function(t){return t.y})),a=window.innerWidth,u=window.innerHeight,c=dr.position,s=c.x,h=c.y,l=c.zoom,d=r([u,a]),f=n-e;f<d&&(f=d);var p=o-i;if(p<d&&(p=d),0>e||0>i){var y=[(e-s)/l,(i-h)/l,f/l,p/l];Br.attr("viewBox",y).attr("preserveAspectRatio",null)}else{var g=[(0-s)/l,(0-h)/l,f/l,p/l];Br.attr("viewBox",g).attr("preserveAspectRatio","xMinYMin meet")}}Wr.links=Br.append("g").selectAll("line").data(data.links).enter().append("line").attr("stroke",(function(t){return t.color})).attr("title",(function(t){return t.title})).attr("data-source",(function(t){return t.source.id})).attr("data-target",(function(t){return t.target.id})).attr("stroke-dasharray",(function(t){return("dash"===t.shape.stroke||"dotted"===t.shape.stroke)&&t.shape.dashInterval})).attr("filter",(function(t){return"double"===t.shape.stroke&&"url(#double)"})),!0===graphProperties.graph_arrows&&Wr.links.attr("marker-end","url(#arrow)"),Wr.nodes=Br.append("g").selectAll("g").data(data.nodes).enter().append("g").attr("data-node",(function(t){return t.id})).append("a").attr("href",(function(t){return"#"+t.id})).call(function(){var t,e,n,r,i=Ln,o=Mn,a=Gn,u=Nn,c={},s=_t("start","drag","end"),h=0,l=0;function d(t){t.on("mousedown.drag",f).filter(u).on("touchstart.drag",g).on("touchmove.drag",v,wn).on("touchend.drag touchcancel.drag",m).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function f(a,u){if(!r&&i.call(this,a,u)){var c=w(this,o.call(this,a,u),a,u,"mouse");c&&(vn(a.view).on("mousemove.drag",p,bn).on("mouseup.drag",y,bn),kn(a.view),_n(a),n=!1,t=a.clientX,e=a.clientY,c("start",a))}}function p(r){if(xn(r),!n){var i=r.clientX-t,o=r.clientY-e;n=i*i+o*o>l}c.mouse("drag",r)}function y(t){vn(t.view).on("mousemove.drag mouseup.drag",null),En(t.view,n),xn(t),c.mouse("end",t)}function g(t,e){if(i.call(this,t,e)){var n,r,a=t.changedTouches,u=o.call(this,t,e),c=a.length;for(n=0;n<c;++n)(r=w(this,u,t,e,a[n].identifier,a[n]))&&(_n(t),r("start",t,a[n]))}}function v(t){var e,n,r=t.changedTouches,i=r.length;for(e=0;e<i;++e)(n=c[r[e].identifier])&&(xn(t),n("drag",t,r[e]))}function m(t){var e,n,i=t.changedTouches,o=i.length;for(r&&clearTimeout(r),r=setTimeout((function(){r=null}),500),e=0;e<o;++e)(n=c[i[e].identifier])&&(_n(t),n("end",t,i[e]))}function w(t,e,n,r,i,o){var u,l,f,p=s.copy(),y=mn(o||n,e);if(null!=(f=a.call(t,new Sn("beforestart",{sourceEvent:n,target:d,identifier:i,active:h,x:y[0],y:y[1],dx:0,dy:0,dispatch:p}),r)))return u=f.x-y[0]||0,l=f.y-y[1]||0,function n(o,a,s){var g,v=y;switch(o){case"start":c[i]=n,g=h++;break;case"end":delete c[i],--h;case"drag":y=mn(s||a,e),g=h}p.call(o,t,new Sn(o,{sourceEvent:a,subject:f,target:d,identifier:i,active:g,x:y[0]+u,y:y[1]+l,dx:y[0]-v[0],dy:y[1]-v[1],dispatch:p}),r)}}return d.filter=function(t){return arguments.length?(i="function"==typeof t?t:An(!!t),d):i},d.container=function(t){return arguments.length?(o="function"==typeof t?t:An(t),d):o},d.subject=function(t){return arguments.length?(a="function"==typeof t?t:An(t),d):a},d.touchable=function(t){return arguments.length?(u="function"==typeof t?t:An(!!t),d):u},d.on=function(){var t=s.on.apply(s,arguments);return t===s?d:t},d.clickDistance=function(t){return arguments.length?(l=(t=+t)*t,d):Math.sqrt(l)},d}().on("start",(function(t,e){t.active||Kr.alphaTarget(.3).restart(),e.fx=e.x,e.fy=e.y})).on("drag",(function(t,e){e.fx=t.x,e.fy=t.y})).on("end",(function(t,e){t.active||Kr.alphaTarget(1e-4),e.fx=null,e.fy=null}))).on("mouseover",(function(t,e){var n=[e.id],r=Wr.links.filter((function(t){return t.source.id!==e.id&&t.target.id!==e.id||(n.push(t.source.id,t.target.id),!1)})),i=Wr.nodes.filter((function(t){return!n.includes(t.id)})),o=Wr.links.filter((function(t){return t.source.id===e.id||t.target.id===e.id}));Wr.nodes.filter((function(t){return!!n.includes(t.id)})).selectAll(".border").style("fill","var(--highlight)"),o.style("stroke","var(--highlight)"),i.attr("opacity",.5),r.attr("stroke-opacity",.5)})).on("mouseout",(function(){var t=hi();Wr.nodes.filter((function(e){var n=e.id;return!t||n!==t})).selectAll(".border").style("fill",null),Wr.links.filter((function(e){return!t||e.source.id!==t&&e.target.id!==t})).style("stroke",null),Wr.nodes.attr("opacity",null),Wr.links.attr("stroke-opacity",null)})),Wr.nodes.each((function(t){var e=vn(this),n=function(t){return Yr.has(t.split(".").at(-1))?"url(#".concat(t,")"):t},r=function(n,r){e.append("circle").attr("class","border").attr("r",t.size+2).attr("fill",n),e.append("circle").attr("r",t.size).attr("fill",r)};if(t.thumbnail)1===t.types.length?r(graphProperties.record_types[t.types[0]].stroke,"url(#".concat(t.thumbnail,")")):(Xr(t.types.length,t.size,2).forEach((function(n,r){var i=n.border,o=graphProperties.record_types[t.types[r]];e.append("path").attr("d",i).attr("fill",o.stroke).attr("class","border")})),e.append("circle").attr("r",t.size).attr("fill","var(--background-gray)"),e.append("circle").attr("r",t.size).attr("fill","url(#".concat(t.thumbnail,")")));else if(1===t.types.length){var i=graphProperties.record_types[t.types[0]];r(i.stroke,n(i.fill))}else Xr(t.types.length,t.size,2).forEach((function(r,i){var o=r.segment,a=r.border,u=graphProperties.record_types[t.types[i]];e.append("path").attr("d",a).attr("fill",u.stroke).attr("class","border"),e.append("path").attr("d",o).attr("fill","var(--background-gray)"),e.append("path").attr("d",o).attr("fill",n(u.fill))}))})),Wr.labels=Wr.nodes.append("text").each((function(t){for(var e=t.label.split(" "),n=vn(this),r="",i=0;i<e.length;i++)(r+=e[i]+" ").length<25&&i!==e.length-1||(n.append("tspan").attr("x",0).attr("dy","1.2em").text(r.slice(0,-1)),r="")})).attr("font-size",graphProperties.graph_text_size).attr("x",0).attr("y",(function(t){return t.size})).attr("dominant-baseline","middle").attr("text-anchor","middle"),window.hideNodeNetwork=function(t){var e=$r(t),n=e.nodes,r=e.links;n.style("display","none"),r.style("display","none")},window.displayNodeNetwork=function(t){var e=$r(t),n=e.nodes,r=e.links;n.style("display",null),r.style("display",null)},window.linksDisplayToggle=function(t){t?Wr.links.style("display",null):Wr.links.style("display","none")},window.labelDisplayToggle=function(t){t?Wr.labels.style("display",null):Wr.labels.style("display","none")},window.labelHighlight=function(t){Wr.nodes.data().map((function(e){return t.includes(e.id)&&(e.highlighted=!0),e})),Wr.nodes.filter((function(e){return t.includes(e.id)})).select("text").style("fill","var(--highlight)")},window.updateFontsize=function(){Wr.labels.attr("font-size",graphProperties.text_size)},window.labelUnlight=function(t){Wr.nodes.data().map((function(e){return t.includes(e.id)&&(e.highlighted=!1),e})),Wr.nodes.filter((function(e){return t.includes(e.id)})).select("text").style("fill",null)},window.labelUnlightAll=function(){data.nodes=data.nodes.map((function(t){return t.highlighted=!1,t})),Wr.labels.style("fill",null)};var ti=Wr.nodes.data(),ei=(Wr.links.data(),.2),ni=ti.reduce((function(t,e){return t+e.size}),0);window.addEventListener("resize",(function(){var t=ni/(window.innerWidth*window.innerHeight);t*=1e3,ei=Math.log2(t)}));var ri=function(){var t,e,n,r=er,i=nr,o=ar,a=ir,u=or,c=[0,1/0],s=[[-1/0,-1/0],[1/0,1/0]],h=250,l=$n,d=_t("start","zoom","end"),f=500,p=150,y=0,g=10;function v(t){t.property("__zoom",rr).on("wheel.zoom",E,{passive:!1}).on("mousedown.zoom",A).on("dblclick.zoom",S).filter(u).on("touchstart.zoom",L).on("touchmove.zoom",M).on("touchend.zoom touchcancel.zoom",G).style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function m(t,e){return(e=Math.max(c[0],Math.min(c[1],e)))===t.k?t:new Jn(e,t.x,t.y)}function w(t,e,n){var r=e[0]-n[0]*t.k,i=e[1]-n[1]*t.k;return r===t.x&&i===t.y?t:new Jn(t.k,r,i)}function b(t){return[(+t[0][0]+ +t[1][0])/2,(+t[0][1]+ +t[1][1])/2]}function _(t,e,n,r){t.on("start.zoom",(function(){x(this,arguments).event(r).start()})).on("interrupt.zoom end.zoom",(function(){x(this,arguments).event(r).end()})).tween("zoom",(function(){var t=this,o=arguments,a=x(t,o).event(r),u=i.apply(t,o),c=null==n?b(u):"function"==typeof n?n.apply(t,o):n,s=Math.max(u[1][0]-u[0][0],u[1][1]-u[0][1]),h=t.__zoom,d="function"==typeof e?e.apply(t,o):e,f=l(h.invert(c).concat(s/h.k),d.invert(c).concat(s/d.k));return function(t){if(1===t)t=d;else{var e=f(t),n=s/e[2];t=new Jn(n,c[0]-e[0]*n,c[1]-e[1]*n)}a.zoom(null,t)}}))}function x(t,e,n){return!n&&t.__zooming||new k(t,e)}function k(t,e){this.that=t,this.args=e,this.active=0,this.sourceEvent=null,this.extent=i.apply(t,e),this.taps=0}function E(t,...e){if(r.apply(this,arguments)){var n=x(this,e).event(t),i=this.__zoom,u=Math.max(c[0],Math.min(c[1],i.k*Math.pow(2,a.apply(this,arguments)))),h=mn(t);if(n.wheel)n.mouse[0][0]===h[0]&&n.mouse[0][1]===h[1]||(n.mouse[1]=i.invert(n.mouse[0]=h)),clearTimeout(n.wheel);else{if(i.k===u)return;n.mouse=[h,i.invert(h)],Vt(this),n.start()}tr(t),n.wheel=setTimeout((function(){n.wheel=null,n.end()}),p),n.zoom("mouse",o(w(m(i,u),n.mouse[0],n.mouse[1]),n.extent,s))}}function A(t,...e){if(!n&&r.apply(this,arguments)){var i=t.currentTarget,a=x(this,e,!0).event(t),u=vn(t.view).on("mousemove.zoom",(function(t){if(tr(t),!a.moved){var e=t.clientX-h,n=t.clientY-l;a.moved=e*e+n*n>y}a.event(t).zoom("mouse",o(w(a.that.__zoom,a.mouse[0]=mn(t,i),a.mouse[1]),a.extent,s))}),!0).on("mouseup.zoom",(function(t){u.on("mousemove.zoom mouseup.zoom",null),En(t.view,a.moved),tr(t),a.event(t).end()}),!0),c=mn(t,i),h=t.clientX,l=t.clientY;kn(t.view),Zn(t),a.mouse=[c,this.__zoom.invert(c)],Vt(this),a.start()}}function S(t,...e){if(r.apply(this,arguments)){var n=this.__zoom,a=mn(t.changedTouches?t.changedTouches[0]:t,this),u=n.invert(a),c=n.k*(t.shiftKey?.5:2),l=o(w(m(n,c),a,u),i.apply(this,e),s);tr(t),h>0?vn(this).transition().duration(h).call(_,l,a,t):vn(this).call(v.transform,l,a,t)}}function L(n,...i){if(r.apply(this,arguments)){var o,a,u,c,s=n.touches,h=s.length,l=x(this,i,n.changedTouches.length===h).event(n);for(Zn(n),a=0;a<h;++a)c=[c=mn(u=s[a],this),this.__zoom.invert(c),u.identifier],l.touch0?l.touch1||l.touch0[2]===c[2]||(l.touch1=c,l.taps=0):(l.touch0=c,o=!0,l.taps=1+!!t);t&&(t=clearTimeout(t)),o&&(l.taps<2&&(e=c[0],t=setTimeout((function(){t=null}),f)),Vt(this),l.start())}}function M(t,...e){if(this.__zooming){var n,r,i,a,u=x(this,e).event(t),c=t.changedTouches,h=c.length;for(tr(t),n=0;n<h;++n)i=mn(r=c[n],this),u.touch0&&u.touch0[2]===r.identifier?u.touch0[0]=i:u.touch1&&u.touch1[2]===r.identifier&&(u.touch1[0]=i);if(r=u.that.__zoom,u.touch1){var l=u.touch0[0],d=u.touch0[1],f=u.touch1[0],p=u.touch1[1],y=(y=f[0]-l[0])*y+(y=f[1]-l[1])*y,g=(g=p[0]-d[0])*g+(g=p[1]-d[1])*g;r=m(r,Math.sqrt(y/g)),i=[(l[0]+f[0])/2,(l[1]+f[1])/2],a=[(d[0]+p[0])/2,(d[1]+p[1])/2]}else{if(!u.touch0)return;i=u.touch0[0],a=u.touch0[1]}u.zoom("touch",o(w(r,i,a),u.extent,s))}}function G(t,...r){if(this.__zooming){var i,o,a=x(this,r).event(t),u=t.changedTouches,c=u.length;for(Zn(t),n&&clearTimeout(n),n=setTimeout((function(){n=null}),f),i=0;i<c;++i)o=u[i],a.touch0&&a.touch0[2]===o.identifier?delete a.touch0:a.touch1&&a.touch1[2]===o.identifier&&delete a.touch1;if(a.touch1&&!a.touch0&&(a.touch0=a.touch1,delete a.touch1),a.touch0)a.touch0[1]=this.__zoom.invert(a.touch0[0]);else if(a.end(),2===a.taps&&(o=mn(o,this),Math.hypot(e[0]-o[0],e[1]-o[1])<g)){var s=vn(this).on("dblclick.zoom");s&&s.apply(this,arguments)}}}return v.transform=function(t,e,n,r){var i=t.selection?t.selection():t;i.property("__zoom",rr),t!==i?_(t,e,n,r):i.interrupt().each((function(){x(this,arguments).event(r).start().zoom(null,"function"==typeof e?e.apply(this,arguments):e).end()}))},v.scaleBy=function(t,e,n,r){v.scaleTo(t,(function(){return this.__zoom.k*("function"==typeof e?e.apply(this,arguments):e)}),n,r)},v.scaleTo=function(t,e,n,r){v.transform(t,(function(){var t=i.apply(this,arguments),r=this.__zoom,a=null==n?b(t):"function"==typeof n?n.apply(this,arguments):n,u=r.invert(a),c="function"==typeof e?e.apply(this,arguments):e;return o(w(m(r,c),a,u),t,s)}),n,r)},v.translateBy=function(t,e,n,r){v.transform(t,(function(){return o(this.__zoom.translate("function"==typeof e?e.apply(this,arguments):e,"function"==typeof n?n.apply(this,arguments):n),i.apply(this,arguments),s)}),null,r)},v.translateTo=function(t,e,n,r,a){v.transform(t,(function(){var t=i.apply(this,arguments),a=this.__zoom,u=null==r?b(t):"function"==typeof r?r.apply(this,arguments):r;return o(Qn.translate(u[0],u[1]).scale(a.k).translate("function"==typeof e?-e.apply(this,arguments):-e,"function"==typeof n?-n.apply(this,arguments):-n),t,s)}),r,a)},k.prototype={event:function(t){return t&&(this.sourceEvent=t),this},start:function(){return 1==++this.active&&(this.that.__zooming=this,this.emit("start")),this},zoom:function(t,e){return this.mouse&&"mouse"!==t&&(this.mouse[1]=e.invert(this.mouse[0])),this.touch0&&"touch"!==t&&(this.touch0[1]=e.invert(this.touch0[0])),this.touch1&&"touch"!==t&&(this.touch1[1]=e.invert(this.touch1[0])),this.that.__zoom=e,this.emit("zoom"),this},end:function(){return 0==--this.active&&(delete this.that.__zooming,this.emit("end")),this},emit:function(t){var e=vn(this.that).datum();d.call(t,this.that,new Hn(t,{sourceEvent:this.sourceEvent,target:v,type:t,transform:this.that.__zoom,dispatch:d}),e)}},v.wheelDelta=function(t){return arguments.length?(a="function"==typeof t?t:Vn(+t),v):a},v.filter=function(t){return arguments.length?(r="function"==typeof t?t:Vn(!!t),v):r},v.touchable=function(t){return arguments.length?(u="function"==typeof t?t:Vn(!!t),v):u},v.extent=function(t){return arguments.length?(i="function"==typeof t?t:Vn([[+t[0][0],+t[0][1]],[+t[1][0],+t[1][1]]]),v):i},v.scaleExtent=function(t){return arguments.length?(c[0]=+t[0],c[1]=+t[1],v):[c[0],c[1]]},v.translateExtent=function(t){return arguments.length?(s[0][0]=+t[0][0],s[1][0]=+t[1][0],s[0][1]=+t[0][1],s[1][1]=+t[1][1],v):[[s[0][0],s[0][1]],[s[1][0],s[1][1]]]},v.constrain=function(t){return arguments.length?(o=t,v):o},v.duration=function(t){return arguments.length?(h=+t,v):h},v.interpolate=function(t){return arguments.length?(l=t,v):l},v.on=function(){var t=d.on.apply(d,arguments);return t===d?v:t},v.clickDistance=function(t){return arguments.length?(y=(t=+t)*t,v):Math.sqrt(y)},v.tapDistance=function(t){return arguments.length?(g=+t,v):g},v}().scaleExtent([1,10]).on("zoom",(function(t){var e=t.transform,n=e.x,r=e.y,i=e.k;dr.position.x=n||0,dr.position.y=r||0,dr.position.zoom=i||1,Zr()}));function ii(){dr.position.zoom=1,dr.position.x=0,dr.position.y=0,Tr.call(ri.transform,Qn.translate(dr.position.y,dr.position.x).scale(dr.position.zoom)),Zr()}function oi(t){var n=ti.find((function(e){return e.id===t}));if(n){var r=n.x,i=n.y,o=e(ti,(function(t){return t.x})),a=e(ti,(function(t){return t.y})),u=1===dr.position.zoom?dr.position.zoom+2*ei:dr.position.zoom;Tr.call(ri.transform,Qn.translate(-(r*u-o),-(i*u-a)).scale(u)),Zr()}}function ai(t,e){var n="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!n){if(Array.isArray(t)||(n=ui(t))||e&&t&&"number"==typeof t.length){n&&(t=n);var r=0,i=function(){};return{s:i,n:function(){return r>=t.length?{done:!0}:{done:!1,value:t[r++]}},e:function(t){throw t},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,a=!0,u=!1;return{s:function(){n=n.call(t)},n:function(){var t=n.next();return a=t.done,t},e:function(t){u=!0,o=t},f:function(){try{a||null==n.return||n.return()}finally{if(u)throw o}}}}function ui(t,e){if(t){if("string"==typeof t)return ci(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);return"Object"===n&&t.constructor&&(n=t.constructor.name),"Map"===n||"Set"===n?Array.from(t):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?ci(t,e):void 0}}function ci(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);n<e;n++)r[n]=t[n];return r}function si(){var t=document.querySelector(".record.active");t&&t.classList.remove("active")}function hi(){var t=new URL(window.location).hash;if(t)return decodeURI(t.substring(1))}Tr.call(ri),Cr("e,alt+r",(function(t){t.preventDefault(),ii()})),Cr("c",(function(t){t.preventDefault(),oi(hi())})),window.zoomMore=function(){ri.scaleTo(Tr,dr.position.zoom+ei)},window.zoomLess=function(){ri.scaleTo(Tr,dr.position.zoom-ei)},window.zoomReset=ii,window.addEventListener("DOMContentLoaded",(function(){var t=document.getElementById("record-container"),e=document.getElementById("close-right-side"),n=hi();n&&i(n);var r=!1;function i(n){var i,o,a,u,c=document.getElementById(n);if(c){si(),r||(e.classList.add("active"),t.classList.add("active")),t.scrollTo({top:0}),si(),c.classList.add("active"),Qr(),o=$r(i=[n]),a=o.nodes,u=o.links,a.selectAll(".border").style("fill","var(--highlight)"),u.style("stroke","var(--highlight)"),dr.highlightedNodes=dr.highlightedNodes.concat(i);var s=c.querySelector("h1").textContent;document.title=s}}e.addEventListener("click",(function(){e.classList.toggle("active"),t.classList.toggle("active"),r=!r})),Cr("escape",(function(){e.classList.remove("active"),t.classList.remove("active"),history.pushState("",document.title,window.location.pathname),Qr()})),window.addEventListener("hashchange",(function(){var e=hi();e?(i(e),oi(e)):(t.classList.remove("active"),Qr())}))}));var li=document.getElementById("index");window.addEventListener("DOMContentLoaded",(function(){var t=li.querySelector(".sorting-select"),e=sorting.records;function n(){for(var n=li.querySelectorAll("li"),r=function(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){var n=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=n){var r,i,o,a,u=[],c=!0,s=!1;try{if(o=(n=n.call(t)).next,0===e){if(Object(n)!==n)return;c=!1}else for(;!(c=(r=o.call(n)).done)&&(u.push(r.value),u.length!==e);c=!0);}catch(t){s=!0,i=t}finally{try{if(!c&&null!=n.return&&(a=n.return(),Object(a)!==a))return}finally{if(s)throw i}}return u}}(t,e)||ui(t,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}(t.value.split(":"),2),i=r[0],o=r[1],a=0;a<n.length;a++){var u=e[a][i],c=n[a];"reverse"===o&&(u=n.length-1-u),c.style.order=u}}n(),t.addEventListener("change",n)}));var di=n(841),fi=new(n.n(di)())([],{includeScore:!1,keys:["label"]});function pi(t,e){var n="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!n){if(Array.isArray(t)||(n=yi(t))||e&&t&&"number"==typeof t.length){n&&(t=n);var r=0,i=function(){};return{s:i,n:function(){return r>=t.length?{done:!0}:{done:!1,value:t[r++]}},e:function(t){throw t},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,a=!0,u=!1;return{s:function(){n=n.call(t)},n:function(){var t=n.next();return a=t.done,t},e:function(t){u=!0,o=t},f:function(){try{a||null==n.return||n.return()}finally{if(u)throw o}}}}function yi(t,e){if(t){if("string"==typeof t)return gi(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);return"Object"===n&&t.constructor&&(n=t.constructor.name),"Map"===n||"Set"===n?Array.from(t):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?gi(t,e):void 0}}function gi(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);n<e;n++)r[n]=t[n];return r}function vi(){var t,e=document.getElementById("index-counter"),n=document.querySelectorAll(".menu-types-list .badge"),r=0,i={},o=pi(data.nodes);try{for(o.s();!(t=o.n()).done;){var a=t.value,u=a.hidden,c=a.type;!0!==u&&(r+=1,i[c]?i[c]+=1:i[c]=1)}}catch(t){o.e(t)}finally{o.f()}var s,h=pi(n);try{for(h.s();!(s=h.n()).done;){var l=s.value;mi(l,i[l.previousElementSibling.name]||0)}}catch(t){h.e(t)}finally{h.f()}mi(e,r)}function mi(t,e){var n,r,i=(n=t.textContent.split("/",2),r=2,function(t){if(Array.isArray(t))return t}(n)||function(t,e){var n=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=n){var r,i,o,a,u=[],c=!0,s=!1;try{if(o=(n=n.call(t)).next,0===e){if(Object(n)!==n)return;c=!1}else for(;!(c=(r=o.call(n)).done)&&(u.push(r.value),u.length!==e);c=!0);}catch(t){s=!0,i=t}finally{try{if(!c&&null!=n.return&&(a=n.return(),Object(a)!==a))return}finally{if(s)throw i}}return u}}(n,r)||yi(n,r)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),o=i[0],a=i[1];o=Number(o),a=Number(a)||o,t.textContent=e===a?a:"".concat(e,"/").concat(a)}function wi(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);n<e;n++)r[n]=t[n];return r}window.addEventListener("DOMContentLoaded",(function(){var t=[],e=0,n=document.getElementById("search"),r=document.getElementById("search-result-list");function i(){r.childNodes[e].classList.add("outline")}function o(){r.childNodes[e].classList.remove("outline")}n.addEventListener("focus",(function(){fi.setCollection(ti.filter((function(t){return 0===t.hidden}))),n.addEventListener("input",(function(){if(r.innerHTML="",e=0,t=[],""!==n.value){t=fi.search(n.value);for(var o=0;o<Math.min(5,t.length);o++){var a=t[o].item,u=a.id,c=a.label,s=a.types,h=document.createElement("li");h.classList.add("search-result-item"),h.innerHTML='\n <a href="#'.concat(u,'">\n <span class="record-type-points">\n ').concat(s.map((function(t){return'<span style="color:var(--n_'.concat(t,')">⬤</span>')})).join(" "),'\n </span>\n <span class="record-title">').concat(c,"</span>\n </a>"),r.appendChild(h)}i()}}))})),Cr("s",(function(t){t.preventDefault(),n.focus()})),document.addEventListener("keydown",(function(r){if(0!==t.length)switch(r.key){case"ArrowUp":r.preventDefault(),e>0&&(o(),e--,i()),0===e&&n.focus();break;case"ArrowDown":if(r.preventDefault(),4===e||e===t.length-1)break;o(),e++,i(),1===e&&n.blur();break;case"Enter":r.preventDefault(),window.location.hash=t[e].item.id,n.blur()}}))})),n(165);var bi=timeline,_i=bi.begin,xi=bi.end;function ki(t){return new Date(1e3*t).toLocaleDateString(graphProperties.lang)}function Ei(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){var n=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=n){var r,i,o,a,u=[],c=!0,s=!1;try{if(o=(n=n.call(t)).next,0===e){if(Object(n)!==n)return;c=!1}else for(;!(c=(r=o.call(n)).done)&&(u.push(r.value),u.length!==e);c=!0);}catch(t){s=!0,i=t}finally{try{if(!c&&null!=n.return&&(a=n.return(),Object(a)!==a))return}finally{if(s)throw i}}return u}}(t,e)||Ai(t,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Ai(t,e){if(t){if("string"==typeof t)return Si(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);return"Object"===n&&t.constructor&&(n=t.constructor.name),"Map"===n||"Set"===n?Array.from(t):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?Si(t,e):void 0}}function Si(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);n<e;n++)r[n]=t[n];return r}function Li(t,e){if(t){if("string"==typeof t)return Mi(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);return"Object"===n&&t.constructor&&(n=t.constructor.name),"Map"===n||"Set"===n?Array.from(t):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?Mi(t,e):void 0}}function Mi(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);n<e;n++)r[n]=t[n];return r}window.addEventListener("DOMContentLoaded",(function(){var t=document.getElementById("timeline-checkbox"),e=document.getElementById("timeline-form"),n=document.getElementById("timeline-ticks");if(e){var r=e.querySelector("output"),i=e.querySelector('input[type="range"]');t.checked=!1,t.addEventListener("change",(function(){t.checked?(e.classList.add("active"),a(),o(),window.addEventListener("resize",a),i.addEventListener("input",o)):(e.classList.remove("active"),window.removeEventListener("resize",a),i.removeEventListener("input",o),Jr(Ir.filteredByTimeline),vi())}))}function o(){var t=i.value;r.value=ki(t);var e,n=[],o=function(t,e){var n="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!n){if(Array.isArray(t)||(n=function(t,e){if(t){if("string"==typeof t)return wi(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);return"Object"===n&&t.constructor&&(n=t.constructor.name),"Map"===n||"Set"===n?Array.from(t):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?wi(t,e):void 0}}(t))||e&&t&&"number"==typeof t.length){n&&(t=n);var r=0,i=function(){};return{s:i,n:function(){return r>=t.length?{done:!0}:{done:!1,value:t[r++]}},e:function(t){throw t},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,a=!0,u=!1;return{s:function(){n=n.call(t)},n:function(){var t=n.next();return a=t.done,t},e:function(t){u=!0,o=t},f:function(){try{a||null==n.return||n.return()}finally{if(u)throw o}}}}(data.nodes);try{for(o.s();!(e=o.n()).done;){var a=e.value,u=a.begin,c=a.end,s=a.id;void 0===c&&(c=xi),void 0===u&&(u=_i),t>=u&&t<=c&&n.push(s)}}catch(t){o.e(t)}finally{o.f()}Vr(n,Ir.filteredByTimeline),vi()}function a(){var t=Math.round(e.offsetWidth/100),r=Math.round((xi-_i)/t);n.setAttribute("style","--list-length: ".concat(t+1,";")),n.innerHTML="";var a=function(t){var e=document.createElement("option");e.value=t,e.textContent=ki(t),e.addEventListener("click",(function(){i.value=t,o()})),n.appendChild(e)};a(_i);for(var u=1;u<=t;u++)a(u!==t?_i+r*u:xi)}})),window.addEventListener("DOMContentLoaded",(function(){for(var t,e=document.getElementById("types-form"),n=e.querySelectorAll("input"),r=0,i=Object.entries(typeList);r<i.length;r++){var o=Ei(i[r],2),a=o[0],u=o[1].active;e.querySelector('[name="'.concat(a,'"]')).checked=u}f();var c,s=null===(t=new URL(window.location).searchParams.get("filters"))||void 0===t?void 0:t.split("-");if(null!=s&&s.length){for(var h=0,l=Object.entries(typeList);h<l.length;h++){var d=Ei(l[h],1)[0];e.querySelector('[name="'.concat(d,'"]')).checked=s.includes(d)}f()}function f(){var t=new FormData(e);t=Object.fromEntries(t);var n=new Set;t=Object.entries(typeList).filter((function(e){var n=Ei(e,1)[0];return!!t[n]})).forEach((function(t){Ei(t,2)[1].nodes.forEach((function(t){return n.add(t)}))})),Vr(Array.from(n),Ir.filteredByType)}e.addEventListener("change",f);var p,y=function(t,e){var n="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!n){if(Array.isArray(t)||(n=Ai(t))){n&&(t=n);var r=0,i=function(){};return{s:i,n:function(){return r>=t.length?{done:!0}:{done:!1,value:t[r++]}},e:function(t){throw t},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,a=!0,u=!1;return{s:function(){n=n.call(t)},n:function(){var t=n.next();return a=t.done,t},e:function(t){u=!0,o=t},f:function(){try{a||null==n.return||n.return()}finally{if(u)throw o}}}}(n);try{var g=function(){var t=p.value,r=t.name;t.checked,t.parentElement.addEventListener("click",(function(t){t.altKey&&(t.stopPropagation(),t.preventDefault(),c===r?(v(),c=void 0):(function(t){n.forEach((function(e){return e.checked=t===e.name})),e.dispatchEvent(new Event("change"))}(r),c=r))}))};for(y.s();!(p=y.n()).done;)g()}catch(t){y.e(t)}finally{y.f()}function v(){e.querySelectorAll("input:not(:checked)").forEach((function(t){return t.checked=!0})),e.dispatchEvent(new Event("change"))}hotkeys("alt+r",(function(t){t.preventDefault(),v()}))})),window.addEventListener("DOMContentLoaded",(function(){var t,e=document.getElementById("tags-form");if(e){var n=document.querySelector(".menu-tags .sorting-select"),r=sorting.tags;c(),s(),n.addEventListener("change",c),e.addEventListener("change",s);var i=null===(t=new URL(window.location).searchParams.get("tags"))||void 0===t?void 0:t.split("-");if(null!=i&&i.length){var o,a=function(t,e){var n="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!n){if(Array.isArray(t)||(n=Li(t))){n&&(t=n);var r=0,i=function(){};return{s:i,n:function(){return r>=t.length?{done:!0}:{done:!1,value:t[r++]}},e:function(t){throw t},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,a=!0,u=!1;return{s:function(){n=n.call(t)},n:function(){var t=n.next();return a=t.done,t},e:function(t){u=!0,o=t},f:function(){try{a||null==n.return||n.return()}finally{if(u)throw o}}}}(i);try{for(a.s();!(o=a.n()).done;){var u=o.value;e.querySelector('input[name="'.concat(u,'"]')).checked=!0}}catch(t){a.e(t)}finally{a.f()}e.dispatchEvent(new Event("change"))}Cr("alt+r",(function(t){t.preventDefault(),e.querySelectorAll("input:checked").forEach((function(t){return t.checked=!1})),e.dispatchEvent(new Event("change"))})),window.activeTag=function(t){var n=e.querySelector('input[name="'.concat(t,'"]'));n.checked=!n.checked,e.dispatchEvent(new Event("change"))}}function c(){for(var t=e.querySelectorAll("label"),i=function(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){var n=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=n){var r,i,o,a,u=[],c=!0,s=!1;try{if(o=(n=n.call(t)).next,0===e){if(Object(n)!==n)return;c=!1}else for(;!(c=(r=o.call(n)).done)&&(u.push(r.value),u.length!==e);c=!0);}catch(t){s=!0,i=t}finally{try{if(!c&&null!=n.return&&(a=n.return(),Object(a)!==a))return}finally{if(s)throw i}}return u}}(t,e)||Li(t,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}(n.value.split(":"),2),o=i[0],a=i[1],u=0;u<t.length;u++){var c=r[u][o],s=t[u];"reverse"===a&&(c=t.length-1-c),s.style.order=c}}function s(){var t=new FormData(e);t=Object.fromEntries(t);var n=new Set;tagList.filter((function(e){var n=e.name;return!!t[n]})).forEach((function(t){t.nodes.forEach((function(t){return n.add(t)}))})),0!==n.size?Vr(Array.from(n),Ir.filteredByTag):Jr(Ir.filteredByTag)}}));var Gi=n(934),Ni=n.n(Gi),Oi=n(563);function ji(t,e){var n="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!n){if(Array.isArray(t)||(n=function(t,e){if(t){if("string"==typeof t)return zi(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);return"Object"===n&&t.constructor&&(n=t.constructor.name),"Map"===n||"Set"===n?Array.from(t):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?zi(t,e):void 0}}(t))||e&&t&&"number"==typeof t.length){n&&(t=n);var r=0,i=function(){};return{s:i,n:function(){return r>=t.length?{done:!0}:{done:!1,value:t[r++]}},e:function(t){throw t},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,a=!0,u=!1;return{s:function(){n=n.call(t)},n:function(){var t=n.next();return a=t.done,t},e:function(t){u=!0,o=t},f:function(){try{a||null==n.return||n.return()}finally{if(u)throw o}}}}function zi(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);n<e;n++)r[n]=t[n];return r}var Ci=function(){var t,e=new(Ni()),n=ji(data.nodes);try{for(n.s();!(t=n.n()).done;){var r=t.value,i=r.id,o=r.label;e.hasNode(i)||e.addNode(i,{label:o})}}catch(t){n.e(t)}finally{n.f()}var a,u=ji(data.links);try{for(u.s();!(a=u.n()).done;){var c=a.value,s=c.source,h=c.target;e.hasEdge(s.id,h.id)||e.addEdge(s.id,h.id)}}catch(t){u.e(t)}finally{u.f()}return e}();window.addEventListener("DOMContentLoaded",(function(){var t=document.getElementById("focus-check"),e=document.getElementById("focus-mode-select"),n=document.getElementById("focus-input");if(!1!==focusIsActive){var r;t.checked=!1;var i=new URL(window.location).searchParams,o=Number(i.get("focus"));!1===isNaN(o)&&o>0&&(n.value=o,a()),Cr("f",(function(e){e.preventDefault(),t.checked=!t.checked,t.dispatchEvent(new Event("change"))})),Cr("alt+r",(function(e){e.preventDefault(),t.checked=!1,t.dispatchEvent(new Event("change"))})),t.addEventListener("change",(function(){t.checked?a():(n.classList.remove("active"),n.removeEventListener("input",u),e.removeEventListener("change",c),Jr(Ir.filteredByFocus))}))}function a(){void 0!==hi()?(c(),e.addEventListener("change",c),u(),n.classList.add("active"),n.addEventListener("input",u),n.focus()):t.checked=!1}function u(){var t=hi(),e=[];(0,Oi.g)(Ci,t,(function(t,r,i){return e.push(t),i>=n.valueAsNumber}),{mode:r}),Vr(e,Ir.filteredByFocus)}function c(){r=e.value,u()}})),n(192)})()})();
|
||
</script>
|
||
|
||
|
||
</body>
|
||
|
||
</html> |