diff --git a/package-lock.json b/package-lock.json
index 091ca72c110..38d7d9146b8 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -2338,13 +2338,14 @@
"integrity": "sha1-rHmH4+I/6AWpkPKOG1DTj8uCJDg="
},
"d3-sankey-circular": {
- "version": "0.30.0",
- "resolved": "https://registry.npmjs.org/d3-sankey-circular/-/d3-sankey-circular-0.30.0.tgz",
- "integrity": "sha512-7Rnjatzo/WcZrPONlrdtBK+puDdjShnQT82Cmk71xH4jIvF7vd1IFqcxYRLq6d6btFbIqeEPIRvU5JfAvSYWYg==",
+ "version": "0.32.0",
+ "resolved": "https://registry.npmjs.org/d3-sankey-circular/-/d3-sankey-circular-0.32.0.tgz",
+ "integrity": "sha512-lZvF25xPFNzsHkI4VPAxRVH+U6iZnWKswknOmXd5jl88obWZ7iJJG/nhE49B0+I6ZDsUB78ggsMmSR3S5m9+Sg==",
"requires": {
"d3-array": "^1.2.1",
"d3-collection": "^1.0.4",
- "d3-shape": "^1.2.0"
+ "d3-shape": "^1.2.0",
+ "elementary-circuits-directed-graph": "^1.0.4"
}
},
"d3-shape": {
@@ -3046,6 +3047,14 @@
"resolved": "https://registry.npmjs.org/element-size/-/element-size-1.1.1.tgz",
"integrity": "sha1-ZOXxWdlxIWMYRby67K8nnDm1404="
},
+ "elementary-circuits-directed-graph": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/elementary-circuits-directed-graph/-/elementary-circuits-directed-graph-1.0.4.tgz",
+ "integrity": "sha512-+xpVxSimU+fcHiTRPWrRN1IFOKaygwotCtZGSBle/rnFaFAoI+4Y8/pimAY1cKiDIHTek2Zox1R7SEQAB/AQ1g==",
+ "requires": {
+ "strongly-connected-components": "^1.0.1"
+ }
+ },
"elliptic": {
"version": "6.4.1",
"resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.4.1.tgz",
diff --git a/package.json b/package.json
index 03c0c3a2f0b..d975860f75f 100644
--- a/package.json
+++ b/package.json
@@ -66,7 +66,7 @@
"country-regex": "^1.1.0",
"d3": "^3.5.12",
"@plotly/d3-sankey": "0.7.2",
- "d3-sankey-circular": "0.30.0",
+ "d3-sankey-circular": "0.32.0",
"d3-force": "^1.0.6",
"d3-interpolate": "1",
"delaunay-triangulate": "^1.1.6",
diff --git a/src/traces/sankey/render.js b/src/traces/sankey/render.js
index 998203c199d..249ebab281d 100644
--- a/src/traces/sankey/render.js
+++ b/src/traces/sankey/render.js
@@ -45,7 +45,7 @@ function sankeyModel(layout, d, traceIndex) {
if(circular) {
sankey = d3SankeyCircular
.sankeyCircular()
- .circularLinkGap(2)
+ .circularLinkGap(0)
.nodeId(function(d) {
return d.pointNumber;
});
diff --git a/test/image/baselines/sankey_circular_large.png b/test/image/baselines/sankey_circular_large.png
new file mode 100644
index 00000000000..600ff74b614
Binary files /dev/null and b/test/image/baselines/sankey_circular_large.png differ
diff --git a/test/image/baselines/sankey_circular_process.png b/test/image/baselines/sankey_circular_process.png
index 82ce1f2e074..438062a1dd1 100644
Binary files a/test/image/baselines/sankey_circular_process.png and b/test/image/baselines/sankey_circular_process.png differ
diff --git a/test/image/baselines/sankey_circular_simple.png b/test/image/baselines/sankey_circular_simple.png
new file mode 100644
index 00000000000..8c6a99f2e26
Binary files /dev/null and b/test/image/baselines/sankey_circular_simple.png differ
diff --git a/test/image/baselines/sankey_subplots_circular.png b/test/image/baselines/sankey_subplots_circular.png
index 3b6c2c7b44a..9d744f00ca4 100644
Binary files a/test/image/baselines/sankey_subplots_circular.png and b/test/image/baselines/sankey_subplots_circular.png differ
diff --git a/test/image/mocks/sankey_circular_large.json b/test/image/mocks/sankey_circular_large.json
new file mode 100644
index 00000000000..6af23521291
--- /dev/null
+++ b/test/image/mocks/sankey_circular_large.json
@@ -0,0 +1,230 @@
+{
+ "data": [{
+ "type": "sankey",
+ "node": {
+ "label": ["node_0", "node_2", "node_4", "node_6", "node_9", "node_11", "node_14", "node_16", "node_13", "node_18", "node_17", "node_7", "node_20", "node_1", "node_3", "node_5", "node_15", "node_10", "node_12", "node_8", "node_19", "node_21", "node_22", "node_23", "node_24", "node_25"]
+ },
+ "link": {
+ "source": [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 23, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 24, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25],
+ "target": [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14, 16, 14, 16, 14, 16, 14, 16, 14, 16, 14, 16, 14, 16, 14, 16, 14, 16, 14, 16, 14, 16, 14, 16, 14, 16, 14, 16, 14, 16, 14, 16, 14, 16, 14, 16, 14, 16, 14, 16, 14, 16, 14, 16, 14, 16, 14, 16, 14, 16, 14, 16, 14, 16, 14, 16, 14, 16, 14, 16, 14, 16, 14, 16, 14, 16, 14, 16, 14, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 19, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 17, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7],
+ "value": [0.0, 0.0, 0.006646893, 11.68228, 412.55902, 442.56927, 0.013883961, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.78665316, 8.526513e-14, 0.6138538, 45.966034, 7136.0156, 2424.101, 1509.0869, 7120.3193, 295.09622, 9.1515847e-07, 0.027355881, 0.032680232, 77.08173, 2.3656483, 0.4589379, 40.13989, 0.0023563614, 0.78811955, 27.012928, 30.984028, 440.46704, 146.16705, 89.212036, 414.40326, 16.910637, 0.91114557, 32.428925, 38.6801, 569.7678, 194.95515, 122.100624, 578.82434, 24.096718, 2421.6963, 1257.6445, 3196.5034, 62.081352, 9.60988e-07, 0.028764999, 0.03436107, 81.02598, 2.4788527, 0.27914718, 3.8161736, 2.3054126e-05, 0.8387133, 28.537077, 32.619724, 463.0056, 153.39035, 78.07639, 195.34256, 3.7353568, 0.28559664, 10.209059, 12.197543, 179.789, 61.471806, 32.11993, 82.02592, 1.6002578, 2421.7532, 1263.6002, 3289.443, 67.60055, 1.0142184e-06, 0.030376881, 0.03628451, 85.55038, 2.6172085, 0.2988975, 4.3902717, 3.142184e-05, 0.89126384, 30.208187, 34.46845, 488.85928, 161.90334, 82.78547, 212.12839, 4.2920413, 0.48148987, 17.250084, 20.627787, 304.1493, 104.00748, 54.604145, 142.82541, 2.948419, 0.0, 0.0, 0.60126424, 0.0, 0.0, 44.941578, 7118.8457, 2395.3425, 538.55695, 82.62762, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.07240185, 11.468614, 3.858948, 0.8676268, 0.13311486, 0.0, 4.275301e-39, 0.09171584, 14.527993, 4.8883653, 1.0990758, 0.16862473, 3.1385706e-25, 0.11330401, 17.947605, 6.0389934, 1.3577774, 0.20831577, 0.0, 0.0, 0.18538894, 5.684342e-14, 0.6138538, 1.024453, 17.16984, 28.75857, 970.52997, 7037.6914, 295.09622, 9.1515847e-07, 0.027355881, 0.032680232, 77.08173, 2.3656483, 0.4589379, 40.13989, 0.0023563614, 0.78811955, 27.012928, 30.984028, 440.46704, 146.16705, 89.212036, 414.40326, 16.910637, 0.91114557, 32.428925, 38.6077, 558.2992, 191.0962, 121.232994, 578.6912, 24.096718, 26.353783, 719.0876, 3113.8757, 62.081352, 9.60988e-07, 0.028764999, 0.03436107, 81.02598, 2.4788527, 0.27914718, 3.8161736, 2.3054126e-05, 0.8387133, 28.537077, 32.619724, 463.0056, 153.39035, 78.07639, 195.34256, 3.7353568, 0.28559664, 10.209059, 12.105827, 165.261, 56.58344, 31.020855, 81.85729, 1.6002578, 26.410742, 725.0432, 3206.8154, 67.60055, 1.0142184e-06, 0.030376881, 0.03628451, 85.55038, 2.6172085, 0.2988975, 4.3902717, 3.142184e-05, 0.89126384, 30.208187, 34.46845, 488.85928, 161.90334, 82.78547, 212.12839, 4.2920413, 0.48148987, 17.250084, 20.514482, 286.2017, 97.96848, 53.24637, 142.6171, 2.948419, 0.0, 0.0, 0.18538894, 0.0, 0.6138538, 1.024453, 17.16984, 26.14728, 697.4959, 2776.9333, 42.072098, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0013678052, 0.002282713, 0.038258288, 0.058262054, 1.5541787, 6.1876354, 0.093746156, 0.0012357329, 0.0020622993, 0.03456415, 0.052636396, 1.4041106, 5.590171, 0.08469423, 0.0018279847, 0.0030507008, 0.05112977, 0.07786353, 2.077061, 8.2693815, 0.12528577, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 2.6112895, 273.0341, 4260.7583, 253.02411, 9.1515847e-07, 0.027355881, 0.032680232, 77.08173, 2.3656483, 0.4589379, 40.13989, 0.0023563614, 0.78811955, 27.012928, 30.984028, 440.46704, 146.16705, 89.212036, 414.40326, 16.910637, 0.91114557, 32.42756, 38.605415, 558.2609, 191.03795, 119.67882, 572.5036, 24.002972, 0.20650205, 21.591648, 336.94254, 20.00925, 9.60988e-07, 0.028764999, 0.03436107, 81.02598, 2.4788527, 0.27914718, 3.8161736, 2.3054126e-05, 0.8387133, 28.537077, 32.619724, 463.0056, 153.39035, 78.07639, 195.34256, 3.7353568, 0.28559664, 10.207823, 12.103765, 165.22644, 56.530804, 29.616745, 76.26712, 1.5155635, 0.26346198, 27.547321, 429.88214, 25.528448, 1.0142184e-06, 0.030376881, 0.03628451, 85.55038, 2.6172085, 0.2988975, 4.3902717, 3.142184e-05, 0.89126384, 30.208187, 34.46845, 488.85928, 161.90334, 82.78547, 212.12839, 4.2920413, 0.48148987, 17.248255, 20.51143, 286.15054, 97.890625, 51.169308, 134.34772, 2.8231332, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 2.109188, 220.53482, 3441.4954, 204.37238, 7.391909e-07, 0.022095865, 0.026396444, 62.26038, 1.910779, 0.37069288, 32.42175, 0.0019032779, 0.6365791, 21.818855, 25.026388, 355.7736, 118.061905, 72.05826, 334.72137, 13.659042, 0.7359496, 26.192354, 31.18233, 450.91797, 154.30498, 96.666855, 462.42203, 19.387655, 0.16651253, 17.410383, 271.69296, 16.134422, 7.7489085e-07, 0.023194602, 0.02770698, 65.335144, 1.9988183, 0.22508979, 3.0771644, 1.858965e-05, 0.67629486, 23.010817, 26.302855, 373.3437, 123.68602, 62.95675, 157.5141, 3.011998, 0.23029031, 8.231058, 9.759848, 133.23003, 45.583508, 23.881405, 61.497852, 1.2220718, 0.20387426, 21.316889, 332.65485, 19.754627, 7.8483055e-07, 0.023506481, 0.02807797, 66.20128, 2.0252693, 0.23129526, 3.3973153, 2.43151e-05, 0.6896849, 23.37594, 26.672651, 378.293, 125.28533, 64.061714, 164.15088, 3.321302, 0.37259033, 13.347183, 15.87232, 221.4313, 75.7505, 39.59624, 103.96202, 2.1846197, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.50210136, 52.499268, 819.2629, 48.65173, 1.7596759e-07, 0.0052600163, 0.0062837875, 14.821353, 0.4548692, 0.08824504, 7.7181377, 0.00045308354, 0.15154041, 5.1940727, 5.9576397, 84.69344, 28.105146, 17.15378, 79.68187, 3.251594, 0.17519598, 6.2352033, 7.423088, 107.34297, 36.732967, 23.011963, 110.08156, 4.6153154, 0.039989512, 4.1812634, 65.24956, 3.8748293, 1.8609715e-07, 0.0055703963, 0.0066540856, 15.690835, 0.48003453, 0.05405738, 0.73900926, 4.464475e-06, 0.16241841, 5.526259, 6.3168716, 89.66191, 29.704332, 15.119641, 37.828457, 0.7233589, 0.05530633, 1.9767642, 2.343917, 31.996414, 10.947297, 5.7353387, 14.769273, 0.29349175, 0.059587725, 6.2304325, 97.2273, 5.7738204, 2.293878e-07, 0.0068704, 0.008206541, 19.3491, 0.5919393, 0.06760225, 0.9929566, 7.1067407e-06, 0.20157892, 6.832246, 7.7957983, 110.566284, 36.618, 18.723755, 47.9775, 0.9707396, 0.10889953, 3.9010725, 4.6391115, 64.71924, 22.140118, 11.573065, 30.38569, 0.6385137, 2736.3335, 2108.9036, 14.86675, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 443.5915, 6569.0674, 8.137072, 454.3161, 5378.305, 8.642767, 13.946691, 6915.0107, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 7.245143, 3592.2676, 10.048806, 4982.3726, 86.01402, 580.18024, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 8.001811, 892.7646, 21.076576, 730.4533, 2460.0493, 1528.7233, 2790.7883, 11.968955, 417.03336, 490.2733, 7145.696, 2425.3513, 1509.3833, 7120.8516, 295.1046, 9.831879e-07, 0.02820494, 0.033103738, 77.49881, 2.3709927, 0.45937082, 40.155697, 0.002356749, 0.8467053, 27.851343, 31.385553, 442.85034, 146.49727, 89.29619, 414.56647, 16.913418, 2.4631135, 87.6656, 104.5645, 1540.2618, 527.0252, 330.07645, 1564.7445, 65.141014, 245.31956, 5676.3027, 2606.2048, 11.884567, 415.89694, 489.7617, 7142.8506, 2422.5776, 1257.8187, 3196.672, 62.082596, 1.0113957e-06, 0.029394984, 0.034675278, 81.33534, 2.4828045, 0.27933297, 3.8172343, 2.30568e-05, 0.8827072, 29.16207, 32.91801, 464.77338, 153.63487, 78.12836, 195.39685, 3.7357903, 0.62885964, 22.479483, 26.857958, 395.88016, 135.35571, 70.72537, 180.61414, 3.5236323, 242.96942, 4647.8516, 2571.1414, 11.841463, 415.3165, 489.50037, 7141.397, 2422.4468, 1263.7379, 3289.5796, 67.601616, 1.0560822e-06, 0.030900408, 0.03654561, 85.80741, 2.6204917, 0.29905406, 4.391232, 3.1424708e-05, 0.9280525, 30.728804, 34.71648, 490.32806, 162.10643, 82.828835, 212.17477, 4.2924333, 0.9368864, 33.565334, 40.13769, 591.81586, 202.3785, 106.24914, 277.9107, 5.737055, 2495.4575, 1203.661, 9.040011, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 362.2623, 4105.1655, 7.4855456, 356.7432, 3127.01, 6.5761266, 0.0, 0.0, 1708.9695, 0.28667504, 3.8604624, 1.7379957, 9.666174, 1.2502424, 0.29634866, 0.53239435, 0.00840123, 6.802936e-08, 0.00084905897, 0.00042350602, 0.41707394, 0.005344402, 0.00043290236, 0.015808823, 3.8748325e-07, 0.05858577, 0.8384146, 0.40152475, 2.3832796, 0.33021626, 0.08415104, 0.16320992, 0.0027808049, 1.551968, 55.236675, 65.8844, 970.4941, 332.07007, 207.97583, 985.92017, 41.0443, 1415.1053, 0.20228739, 2.7240698, 1.2263873, 6.820772, 0.8813371, 0.17427117, 0.16865067, 0.0012471518, 5.0407706e-08, 0.00062998536, 0.00031421002, 0.30936044, 0.0039516515, 0.00018580105, 0.0010605482, 2.675087e-09, 0.043993905, 0.62499356, 0.29828656, 1.767774, 0.2445265, 0.05196784, 0.05428742, 0.00043343264, 0.343263, 12.270425, 14.660415, 216.09117, 73.88391, 38.60544, 98.58822, 1.9233744, 1243.1842, 0.1591833, 2.1436157, 0.96506447, 5.367378, 0.69355506, 0.13778628, 0.13657272, 0.0010686538, 4.1863846e-08, 0.00052352564, 0.00026109786, 0.2570343, 0.0032831817, 0.00015655463, 0.0009601131, 2.8691258e-09, 0.036788657, 0.52061826, 0.24802977, 1.4687674, 0.20310114, 0.043360844, 0.046390574, 0.00039190616, 0.45539653, 16.315252, 19.509907, 287.66656, 98.37101, 51.64499, 135.0853, 2.7886357, 154.86191, 325.06226, 5.8267384, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 73.32737, 1571.1372, 0.65152603, 76.49633, 1520.8418, 2.0666401, 0.0, 0.0, 1066.9521, 11.68228, 413.17288, 488.5353, 7136.03, 2424.101, 1509.0869, 7120.3193, 295.09622, 9.1515847e-07, 0.027355881, 0.032680232, 77.08173, 2.3656483, 0.4589379, 40.13989, 0.0023563614, 0.78811955, 27.012928, 30.984028, 440.46704, 146.16705, 89.212036, 414.40326, 16.910637, 0.91114557, 32.428925, 38.6801, 569.7678, 194.95515, 122.100624, 578.82434, 24.096718, 1182.9623, 2421.6963, 1257.6445, 3196.5034, 62.081352, 9.60988e-07, 0.028764999, 0.03436107, 81.02598, 2.4788527, 0.27914718, 3.8161736, 2.3054126e-05, 0.8387133, 28.537077, 32.619724, 463.0056, 153.39035, 78.07639, 195.34256, 3.7353568, 0.28559664, 10.209059, 12.197543, 179.789, 61.471806, 32.11993, 82.02592, 1.6002578, 1319.3145, 2421.7532, 1263.6002, 3289.443, 67.60055, 1.0142184e-06, 0.030376881, 0.03628451, 85.55038, 2.6172085, 0.2988975, 4.3902717, 3.142184e-05, 0.89126384, 30.208187, 34.46845, 488.85928, 161.90334, 82.78547, 212.12839, 4.2920413, 0.48148987, 17.250084, 20.627787, 304.1493, 104.00748, 54.604145, 142.82541, 2.948419, 94.707184, 325.06226, 1072.7788, 11.68228, 413.17288, 488.5353, 7136.03, 2424.101, 1509.0869, 7120.3193, 295.09622, 9.1515847e-07, 0.027355881, 0.032680232, 77.08173, 2.3656483, 0.4589379, 40.13989, 0.0023563614, 0.78811955, 27.012928, 30.984028, 440.46704, 146.16705, 89.212036, 414.40326, 16.910637, 0.91114557, 32.428925, 38.6801, 569.7678, 194.95515, 122.100624, 578.82434, 24.096718, 13.172645, 1571.1372, 1183.6139, 2421.6963, 1257.6445, 3196.5034, 62.081352, 9.60988e-07, 0.028764999, 0.03436107, 81.02598, 2.4788527, 0.27914718, 3.8161736, 2.3054126e-05, 0.8387133, 28.537077, 32.619724, 463.0056, 153.39035, 78.07639, 195.34256, 3.7353568, 0.28559664, 10.209059, 12.197543, 179.789, 61.471806, 32.11993, 82.02592, 1.6002578, 16.3416, 1520.8418, 1321.3811, 2421.7532, 1263.6002, 3289.443, 67.60055, 1.0142184e-06, 0.030376881, 0.03628451, 85.55038, 2.6172085, 0.2988975, 4.3902717, 3.142184e-05, 0.89126384, 30.208187, 34.46845, 488.85928, 161.90334, 82.78547, 212.12839, 4.2920413, 0.48148987, 17.250084, 20.627787, 304.1493, 104.00748, 54.604145, 142.82541, 2.948419, 2365.342, 1203.661, 1718.0094, 0.28667504, 3.8604624, 1.7379957, 9.666174, 1.2502424, 0.29634866, 0.53239435, 0.00840123, 6.802936e-08, 0.00084905897, 0.00042350602, 0.41707394, 0.005344402, 0.00043290236, 0.015808823, 3.8748325e-07, 0.05858577, 0.8384146, 0.40152475, 2.3832796, 0.33021626, 0.08415104, 0.16320992, 0.0027808049, 1.551968, 55.236675, 65.8844, 970.4941, 332.07007, 207.97583, 985.92017, 41.0443, 232.14693, 4105.1655, 1422.591, 0.20228739, 2.7240698, 1.2263873, 6.820772, 0.8813371, 0.17427117, 0.16865067, 0.0012471518, 5.0407706e-08, 0.00062998536, 0.00031421002, 0.30936044, 0.0039516515, 0.00018580105, 0.0010605482, 2.675087e-09, 0.043993905, 0.62499356, 0.29828656, 1.767774, 0.2445265, 0.05196784, 0.05428742, 0.00043343264, 0.343263, 12.270425, 14.660415, 216.09117, 73.88391, 38.60544, 98.58822, 1.9233744, 226.62782, 3127.01, 1249.7604, 0.1591833, 2.1436157, 0.96506447, 5.367378, 0.69355506, 0.13778628, 0.13657272, 0.0010686538, 4.1863846e-08, 0.00052352564, 0.00026109786, 0.2570343, 0.0032831817, 0.00015655463, 0.0009601131, 2.8691258e-09, 0.036788657, 0.52061826, 0.24802977, 1.4687674, 0.20310114, 0.043360844, 0.046390574, 0.00039190616, 0.45539653, 16.315252, 19.509907, 287.66656, 98.37101, 51.64499, 135.0853, 2.7886357, 130.11539, 130.11539, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.7933001, 11.68228, 413.17288, 488.5353, 7136.03, 2424.101, 1509.0869, 7120.3193, 295.09622, 9.1515847e-07, 0.027355881, 0.032680232, 77.08173, 2.3656483, 0.4589379, 40.13989, 0.0023563614, 0.78811955, 27.012928, 30.984028, 440.46704, 146.16705, 89.212036, 414.40326, 16.910637, 0.91114557, 32.428925, 38.6801, 569.7678, 194.95515, 122.100624, 578.82434, 24.096718, 2421.6963, 1257.6445, 3196.5034, 62.081352, 9.60988e-07, 0.028764999, 0.03436107, 81.02598, 2.4788527, 0.27914718, 3.8161736, 2.3054126e-05, 0.8387133, 28.537077, 32.619724, 463.0056, 153.39035, 78.07639, 195.34256, 3.7353568, 0.28559664, 10.209059, 12.197543, 179.789, 61.471806, 32.11993, 82.02592, 1.6002578, 2421.7532, 1263.6002, 3289.443, 67.60055, 1.0142184e-06, 0.030376881, 0.03628451, 85.55038, 2.6172085, 0.2988975, 4.3902717, 3.142184e-05, 0.89126384, 30.208187, 34.46845, 488.85928, 161.90334, 82.78547, 212.12839, 4.2920413, 0.48148987, 17.250084, 20.627787, 304.1493, 104.00748, 54.604145, 142.82541, 2.948419, 208.01515, 0.0, 1066.1588, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1182.1691, 1318.5211, 2534.4382, 11143.2, 850.0, 1.4210855e-14, 0.0, 0.0, 0.0, 2.109188, 220.53482, 3441.4954, 204.37238, 10.644975, 372.82385, 439.97794, 7309.9087, 2190.6462, 1195.7097, 3826.735, 109.31696, 0.6365791, 21.818855, 25.026388, 355.7736, 118.061905, 72.05826, 334.72137, 13.659042, 3.673447, 129.06758, 152.58765, 1480.1659, 758.29, 426.52255, 1509.4688, 49.553318, 37.661854, 12188.093, 1083.6708, 0.16651253, 17.410383, 271.69296, 16.134422, 8.71208, 306.87488, 363.09512, 6260.749, 1812.035, 929.52545, 2206.279, 35.054283, 0.67629486, 23.010817, 26.302855, 373.3437, 123.68602, 62.95675, 157.5141, 3.011998, 3.504252, 123.54458, 146.199, 1326.5828, 725.78723, 373.10846, 889.45154, 14.395311, 64.565796, 12390.9, 1031.66, 0.20387426, 21.316889, 332.65485, 19.754627, 8.824489, 311.60336, 369.0566, 6371.218, 1843.2927, 947.7279, 2276.1665, 37.48881, 0.6896849, 23.37594, 26.672651, 378.293, 125.28533, 64.061714, 164.15088, 3.321302, 3.6919887, 130.55031, 154.68521, 1436.5192, 768.3573, 396.00433, 958.8815, 16.286312, 2560.01, 9023.914, 2790.7883, 11.968955, 417.03336, 490.2733, 7145.696, 2425.3513, 1509.3833, 7120.8516, 295.1046, 9.831879e-07, 0.02820494, 0.033103738, 77.49881, 2.3709927, 0.45937082, 40.155697, 0.002356749, 0.8467053, 27.851343, 31.385553, 442.85034, 146.49727, 89.29619, 414.56647, 16.913418, 2.4631135, 87.6656, 104.5645, 1540.2618, 527.0252, 330.07645, 1564.7445, 65.141014, 260.56653, 10161.335, 2606.2048, 11.884567, 415.89694, 489.7617, 7142.8506, 2422.5776, 1257.8187, 3196.672, 62.082596, 1.0113957e-06, 0.029394984, 0.034675278, 81.33534, 2.4828045, 0.27933297, 3.8172343, 2.30568e-05, 0.8827072, 29.16207, 32.91801, 464.77338, 153.63487, 78.12836, 195.39685, 3.7357903, 0.62885964, 22.479483, 26.857958, 395.88016, 135.35571, 70.72537, 180.61414, 3.5236323, 274.0948, 10360.678, 2571.1414, 11.841463, 415.3165, 489.50037, 7141.397, 2422.4468, 1263.7379, 3289.5796, 67.601616, 1.0560822e-06, 0.030900408, 0.03654561, 85.80741, 2.6204917, 0.29905406, 4.391232, 3.1424708e-05, 0.9280525, 30.728804, 34.71648, 490.32806, 162.10643, 82.828835, 212.17477, 4.2924333, 0.9368864, 33.565334, 40.13769, 591.81586, 202.3785, 106.24914, 277.9107, 5.737055, 190.27011, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 208.01515, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.4687487, 51.437614, 60.70266, 29.2479, 301.9925, 164.92784, 523.5234, 15.082831, 1.6369808, 57.65676, 68.21958, 340.10187, 174.61353, 413.97684, 6.58662, 1.6596992, 58.601566, 69.40645, 346.3034, 178.20404, 427.45975, 7.0508466, 34.438293, 11143.2, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 37.661842, 12188.093, 38.298496, 12390.9, 2500.0, 0.0, 850.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 10.644974, 372.80176, 439.95154, 7247.6484, 2188.7356, 1195.3391, 3794.3135, 109.315056, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.4687487, 51.437614, 60.70266, 1000.0, 301.9925, 164.92784, 523.5234, 15.082831, 1e-05, 1083.6708, 8.71208, 306.85168, 363.0674, 6195.414, 1810.0363, 929.30035, 2203.202, 35.054264, 1.6369808, 57.65676, 68.21958, 1164.1049, 340.10187, 174.61353, 413.97684, 6.58662, 26.2673, 1031.66, 8.824488, 311.57983, 369.02853, 6305.0166, 1841.2675, 947.49664, 2272.7693, 37.48879, 1.6596992, 58.601566, 69.40645, 1185.84, 346.3034, 178.20404, 427.45975, 7.0508466],
+ "label": ["link_0", "link_1", "link_2", "link_3", "link_4", "link_5", "link_6", "link_7", "link_8", "link_9", "link_10", "link_11", "link_12", "link_13", "link_14", "link_15", "link_16", "link_17", "link_18", "link_19", "link_20", "link_21", "link_22", "link_23", "link_24", "link_25", "link_26", "link_27", "link_28", "link_29", "link_30", "link_31", "link_32", "link_33", "link_34", "link_0", "link_1", "link_2", "link_3", "link_4", "link_5", "link_6", "link_7", "link_8", "link_9", "link_10", "link_11", "link_12", "link_13", "link_14", "link_15", "link_16", "link_17", "link_18", "link_19", "link_20", "link_21", "link_22", "link_23", "link_24", "link_25", "link_26", "link_27", "link_28", "link_29", "link_30", "link_31", "link_32", "link_33", "link_34", "link_7", "link_8", "link_9", "link_10", "link_11", "link_12", "link_13", "link_14", "link_15", "link_16", "link_17", "link_18", "link_19", "link_20", "link_21", "link_22", "link_23", "link_24", "link_25", "link_26", "link_27", "link_28", "link_29", "link_30", "link_31", "link_32", "link_33", "link_34", "link_7", "link_8", "link_9", "link_10", "link_11", "link_12", "link_13", "link_14", "link_15", "link_16", "link_17", "link_18", "link_19", "link_20", "link_21", "link_22", "link_23", "link_24", "link_25", "link_26", "link_27", "link_28", "link_29", "link_30", "link_31", "link_32", "link_33", "link_34", "link_0", "link_1", "link_2", "link_3", "link_4", "link_5", "link_6", "link_7", "link_8", "link_9", "link_10", "link_11", "link_12", "link_13", "link_14", "link_15", "link_16", "link_17", "link_18", "link_19", "link_20", "link_21", "link_22", "link_23", "link_24", "link_25", "link_26", "link_27", "link_28", "link_29", "link_30", "link_31", "link_32", "link_33", "link_34", "link_28", "link_29", "link_30", "link_31", "link_32", "link_33", "link_27", "link_29", "link_30", "link_31", "link_32", "link_33", "link_0", "link_1", "link_2", "link_3", "link_4", "link_5", "link_6", "link_7", "link_8", "link_9", "link_10", "link_11", "link_12", "link_13", "link_14", "link_15", "link_16", "link_17", "link_18", "link_19", "link_20", "link_21", "link_22", "link_23", "link_24", "link_25", "link_26", "link_27", "link_28", "link_29", "link_30", "link_31", "link_32", "link_33", "link_34", "link_7", "link_8", "link_9", "link_10", "link_11", "link_12", "link_13", "link_14", "link_15", "link_16", "link_17", "link_18", "link_19", "link_20", "link_21", "link_22", "link_23", "link_24", "link_25", "link_26", "link_27", "link_28", "link_29", "link_30", "link_31", "link_32", "link_33", "link_34", "link_7", "link_8", "link_9", "link_10", "link_11", "link_12", "link_13", "link_14", "link_15", "link_16", "link_17", "link_18", "link_19", "link_20", "link_21", "link_22", "link_23", "link_24", "link_25", "link_26", "link_27", "link_28", "link_29", "link_30", "link_31", "link_32", "link_33", "link_34", "link_0", "link_1", "link_2", "link_3", "link_4", "link_5", "link_6", "link_7", "link_8", "link_9", "link_10", "link_11", "link_12", "link_13", "link_14", "link_15", "link_16", "link_17", "link_18", "link_19", "link_20", "link_21", "link_22", "link_23", "link_24", "link_25", "link_26", "link_27", "link_28", "link_29", "link_30", "link_31", "link_32", "link_33", "link_34", "link_28", "link_29", "link_30", "link_31", "link_32", "link_33", "link_34", "link_28", "link_29", "link_30", "link_31", "link_32", "link_33", "link_34", "link_0", "link_1", "link_2", "link_3", "link_4", "link_5", "link_6", "link_7", "link_8", "link_9", "link_10", "link_11", "link_12", "link_13", "link_14", "link_15", "link_16", "link_17", "link_18", "link_19", "link_20", "link_21", "link_22", "link_23", "link_24", "link_25", "link_26", "link_27", "link_28", "link_29", "link_30", "link_31", "link_32", "link_33", "link_34", "link_7", "link_8", "link_9", "link_10", "link_11", "link_12", "link_13", "link_14", "link_15", "link_16", "link_17", "link_18", "link_19", "link_20", "link_21", "link_22", "link_23", "link_24", "link_25", "link_26", "link_27", "link_28", "link_29", "link_30", "link_31", "link_32", "link_33", "link_34", "link_7", "link_8", "link_9", "link_10", "link_11", "link_12", "link_13", "link_14", "link_15", "link_16", "link_17", "link_18", "link_19", "link_20", "link_21", "link_22", "link_23", "link_24", "link_25", "link_26", "link_27", "link_28", "link_29", "link_30", "link_31", "link_32", "link_33", "link_34", "link_0", "link_1", "link_2", "link_3", "link_4", "link_5", "link_6", "link_7", "link_8", "link_9", "link_10", "link_11", "link_12", "link_13", "link_14", "link_15", "link_16", "link_17", "link_18", "link_19", "link_20", "link_21", "link_22", "link_23", "link_24", "link_25", "link_26", "link_27", "link_28", "link_29", "link_30", "link_31", "link_32", "link_33", "link_34", "link_7", "link_8", "link_9", "link_10", "link_11", "link_12", "link_13", "link_14", "link_15", "link_16", "link_17", "link_18", "link_19", "link_20", "link_21", "link_22", "link_23", "link_24", "link_25", "link_26", "link_27", "link_28", "link_29", "link_30", "link_31", "link_32", "link_33", "link_34", "link_7", "link_8", "link_9", "link_10", "link_11", "link_12", "link_13", "link_14", "link_15", "link_16", "link_17", "link_18", "link_19", "link_20", "link_21", "link_22", "link_23", "link_24", "link_25", "link_26", "link_27", "link_28", "link_29", "link_30", "link_31", "link_32", "link_33", "link_34", "link_0", "link_1", "link_2", "link_3", "link_4", "link_5", "link_6", "link_7", "link_8", "link_9", "link_10", "link_11", "link_12", "link_13", "link_14", "link_15", "link_16", "link_17", "link_18", "link_19", "link_20", "link_21", "link_22", "link_23", "link_24", "link_25", "link_26", "link_27", "link_28", "link_29", "link_30", "link_31", "link_32", "link_33", "link_34", "link_7", "link_8", "link_9", "link_10", "link_11", "link_12", "link_13", "link_14", "link_15", "link_16", "link_17", "link_18", "link_19", "link_20", "link_21", "link_22", "link_23", "link_24", "link_25", "link_26", "link_27", "link_28", "link_29", "link_30", "link_31", "link_32", "link_33", "link_34", "link_7", "link_8", "link_9", "link_10", "link_11", "link_12", "link_13", "link_14", "link_15", "link_16", "link_17", "link_18", "link_19", "link_20", "link_21", "link_22", "link_23", "link_24", "link_25", "link_26", "link_27", "link_28", "link_29", "link_30", "link_31", "link_32", "link_33", "link_34", "link_0", "link_1", "link_2", "link_3", "link_4", "link_5", "link_6", "link_7", "link_8", "link_9", "link_10", "link_11", "link_12", "link_13", "link_14", "link_15", "link_16", "link_17", "link_18", "link_19", "link_20", "link_21", "link_22", "link_23", "link_24", "link_25", "link_26", "link_27", "link_28", "link_29", "link_30", "link_31", "link_32", "link_33", "link_34", "link_0", "link_1", "link_2", "link_0", "link_1", "link_2", "link_0", "link_1", "link_2", "link_3", "link_4", "link_5", "link_6", "link_7", "link_8", "link_9", "link_10", "link_11", "link_12", "link_13", "link_14", "link_15", "link_16", "link_17", "link_18", "link_19", "link_20", "link_21", "link_22", "link_23", "link_24", "link_25", "link_26", "link_27", "link_28", "link_29", "link_30", "link_31", "link_32", "link_33", "link_34", "link_0", "link_1", "link_0", "link_1", "link_0", "link_1", "link_2", "link_3", "link_4", "link_5", "link_6", "link_7", "link_8", "link_9", "link_10", "link_11", "link_12", "link_13", "link_14", "link_15", "link_16", "link_17", "link_18", "link_19", "link_20", "link_21", "link_22", "link_23", "link_24", "link_25", "link_26", "link_27", "link_28", "link_29", "link_30", "link_31", "link_32", "link_33", "link_34", "link_0", "link_1", "link_0", "link_1", "link_0", "link_1", "link_2", "link_3", "link_4", "link_5", "link_6", "link_7", "link_8", "link_9", "link_10", "link_11", "link_12", "link_13", "link_14", "link_15", "link_16", "link_17", "link_18", "link_19", "link_20", "link_21", "link_22", "link_23", "link_24", "link_25", "link_26", "link_27", "link_28", "link_29", "link_30", "link_31", "link_32", "link_33", "link_34", "link_0", "link_1", "link_2", "link_3", "link_4", "link_5", "link_6", "link_7", "link_8", "link_9", "link_10", "link_11", "link_12", "link_13", "link_14", "link_15", "link_16", "link_17", "link_18", "link_19", "link_20", "link_21", "link_22", "link_23", "link_24", "link_25", "link_26", "link_27", "link_28", "link_29", "link_30", "link_31", "link_32", "link_33", "link_34", "link_0", "link_1", "link_2", "link_3", "link_4", "link_5", "link_6", "link_7", "link_8", "link_9", "link_10", "link_11", "link_12", "link_13", "link_14", "link_15", "link_16", "link_17", "link_18", "link_19", "link_20", "link_21", "link_22", "link_23", "link_24", "link_25", "link_26", "link_27", "link_28", "link_29", "link_30", "link_31", "link_32", "link_33", "link_34", "link_0", "link_1", "link_2", "link_3", "link_4", "link_5", "link_6", "link_7", "link_8", "link_9", "link_10", "link_11", "link_12", "link_13", "link_14", "link_15", "link_16", "link_17", "link_18", "link_19", "link_20", "link_21", "link_22", "link_23", "link_24", "link_25", "link_26", "link_27", "link_28", "link_29", "link_30", "link_31", "link_32", "link_33", "link_34", "link_0", "link_1", "link_2", "link_0", "link_1", "link_2", "link_0", "link_1", "link_2", "link_3", "link_4", "link_5", "link_6", "link_7", "link_8", "link_9", "link_10", "link_11", "link_12", "link_13", "link_14", "link_15", "link_16", "link_17", "link_18", "link_19", "link_20", "link_21", "link_22", "link_23", "link_24", "link_25", "link_26", "link_27", "link_28", "link_29", "link_30", "link_31", "link_32", "link_33", "link_34", "link_2", "link_3", "link_4", "link_5", "link_6", "link_7", "link_8", "link_9", "link_10", "link_11", "link_12", "link_13", "link_14", "link_15", "link_16", "link_17", "link_18", "link_19", "link_20", "link_21", "link_22", "link_23", "link_24", "link_25", "link_26", "link_27", "link_28", "link_29", "link_30", "link_31", "link_32", "link_33", "link_34", "link_2", "link_3", "link_4", "link_5", "link_6", "link_7", "link_8", "link_9", "link_10", "link_11", "link_12", "link_13", "link_14", "link_15", "link_16", "link_17", "link_18", "link_19", "link_20", "link_21", "link_22", "link_23", "link_24", "link_25", "link_26", "link_27", "link_28", "link_29", "link_30", "link_31", "link_32", "link_33", "link_34", "link_0", "link_1", "link_2", "link_3", "link_4", "link_5", "link_6", "link_7", "link_8", "link_9", "link_10", "link_11", "link_12", "link_13", "link_14", "link_15", "link_16", "link_17", "link_18", "link_19", "link_20", "link_21", "link_22", "link_23", "link_24", "link_25", "link_26", "link_27", "link_28", "link_29", "link_30", "link_31", "link_32", "link_33", "link_34", "link_0", "link_1", "link_2", "link_0", "link_1", "link_2", "link_0", "link_1", "link_2", "link_3", "link_4", "link_5", "link_6", "link_7", "link_8", "link_9", "link_10", "link_11", "link_12", "link_13", "link_14", "link_15", "link_16", "link_17", "link_18", "link_19", "link_20", "link_21", "link_22", "link_23", "link_24", "link_25", "link_26", "link_27", "link_28", "link_29", "link_30", "link_31", "link_32", "link_33", "link_34", "link_2", "link_7", "link_8", "link_9", "link_10", "link_11", "link_12", "link_13", "link_14", "link_15", "link_16", "link_17", "link_18", "link_19", "link_20", "link_21", "link_22", "link_23", "link_24", "link_25", "link_26", "link_27", "link_28", "link_29", "link_30", "link_31", "link_32", "link_33", "link_34", "link_2", "link_7", "link_8", "link_9", "link_10", "link_11", "link_12", "link_13", "link_14", "link_15", "link_16", "link_17", "link_18", "link_19", "link_20", "link_21", "link_22", "link_23", "link_24", "link_25", "link_26", "link_27", "link_28", "link_29", "link_30", "link_31", "link_32", "link_33", "link_34", "link_0", "link_1", "link_2", "link_3", "link_4", "link_5", "link_6", "link_7", "link_8", "link_9", "link_10", "link_11", "link_12", "link_13", "link_14", "link_15", "link_16", "link_17", "link_18", "link_19", "link_20", "link_21", "link_22", "link_23", "link_24", "link_25", "link_26", "link_27", "link_28", "link_29", "link_30", "link_31", "link_32", "link_33", "link_34", "link_0", "link_1", "link_2", "link_7", "link_8", "link_9", "link_10", "link_11", "link_12", "link_13", "link_14", "link_15", "link_16", "link_17", "link_18", "link_19", "link_20", "link_21", "link_22", "link_23", "link_24", "link_25", "link_26", "link_27", "link_28", "link_29", "link_30", "link_31", "link_32", "link_33", "link_34", "link_0", "link_1", "link_2", "link_7", "link_8", "link_9", "link_10", "link_11", "link_12", "link_13", "link_14", "link_15", "link_16", "link_17", "link_18", "link_19", "link_20", "link_21", "link_22", "link_23", "link_24", "link_25", "link_26", "link_27", "link_28", "link_29", "link_30", "link_31", "link_32", "link_33", "link_34", "link_0", "link_1", "link_2", "link_3", "link_4", "link_5", "link_6", "link_7", "link_8", "link_9", "link_10", "link_11", "link_12", "link_13", "link_14", "link_15", "link_16", "link_17", "link_18", "link_19", "link_20", "link_21", "link_22", "link_23", "link_24", "link_25", "link_26", "link_27", "link_28", "link_29", "link_30", "link_31", "link_32", "link_33", "link_34", "link_0", "link_1", "link_2", "link_3", "link_4", "link_5", "link_6", "link_7", "link_8", "link_9", "link_10", "link_11", "link_12", "link_13", "link_14", "link_15", "link_16", "link_17", "link_18", "link_19", "link_20", "link_21", "link_22", "link_23", "link_24", "link_25", "link_26", "link_27", "link_28", "link_29", "link_30", "link_31", "link_32", "link_33", "link_34", "link_0", "link_1", "link_2", "link_3", "link_4", "link_5", "link_6", "link_7", "link_8", "link_9", "link_10", "link_11", "link_12", "link_13", "link_14", "link_15", "link_16", "link_17", "link_18", "link_19", "link_20", "link_21", "link_22", "link_23", "link_24", "link_25", "link_26", "link_27", "link_28", "link_29", "link_30", "link_31", "link_32", "link_33", "link_34", "link_0", "link_0", "link_1", "link_1", "link_2", "link_2", "link_3", "link_3", "link_4", "link_4", "link_5", "link_5", "link_6", "link_6", "link_7", "link_7", "link_8", "link_8", "link_9", "link_9", "link_10", "link_10", "link_11", "link_11", "link_12", "link_12", "link_13", "link_13", "link_14", "link_14", "link_15", "link_15", "link_16", "link_16", "link_17", "link_17", "link_18", "link_18", "link_19", "link_19", "link_20", "link_20", "link_21", "link_21", "link_22", "link_22", "link_23", "link_23", "link_24", "link_24", "link_25", "link_25", "link_26", "link_26", "link_27", "link_27", "link_28", "link_28", "link_29", "link_29", "link_30", "link_30", "link_31", "link_31", "link_32", "link_32", "link_33", "link_33", "link_34", "link_34", "link_0", "link_1", "link_2", "link_3", "link_4", "link_5", "link_6", "link_7", "link_8", "link_9", "link_10", "link_11", "link_12", "link_13", "link_14", "link_15", "link_16", "link_17", "link_18", "link_19", "link_20", "link_21", "link_22", "link_23", "link_24", "link_25", "link_26", "link_27", "link_28", "link_29", "link_30", "link_31", "link_32", "link_33", "link_34", "link_7", "link_8", "link_9", "link_10", "link_11", "link_12", "link_13", "link_14", "link_15", "link_16", "link_17", "link_18", "link_19", "link_20", "link_21", "link_22", "link_23", "link_24", "link_25", "link_26", "link_27", "link_28", "link_29", "link_30", "link_31", "link_32", "link_33", "link_34", "link_7", "link_8", "link_9", "link_10", "link_11", "link_12", "link_13", "link_14", "link_15", "link_16", "link_17", "link_18", "link_19", "link_20", "link_21", "link_22", "link_23", "link_24", "link_25", "link_26", "link_27", "link_28", "link_29", "link_30", "link_31", "link_32", "link_33", "link_34", "link_0", "link_1", "link_2", "link_3", "link_4", "link_5", "link_6", "link_7", "link_8", "link_9", "link_10", "link_11", "link_12", "link_13", "link_14", "link_15", "link_16", "link_17", "link_18", "link_19", "link_20", "link_21", "link_22", "link_23", "link_24", "link_25", "link_26", "link_27", "link_28", "link_29", "link_30", "link_31", "link_32", "link_33", "link_34", "link_2", "link_2", "link_0", "link_1", "link_2", "link_3", "link_4", "link_5", "link_6", "link_7", "link_8", "link_9", "link_10", "link_11", "link_12", "link_13", "link_14", "link_15", "link_16", "link_17", "link_18", "link_19", "link_20", "link_21", "link_22", "link_23", "link_24", "link_25", "link_26", "link_27", "link_28", "link_29", "link_30", "link_31", "link_32", "link_33", "link_34", "link_0", "link_1", "link_2", "link_7", "link_8", "link_9", "link_10", "link_11", "link_12", "link_13", "link_14", "link_15", "link_16", "link_17", "link_18", "link_19", "link_20", "link_21", "link_22", "link_23", "link_24", "link_25", "link_26", "link_27", "link_28", "link_29", "link_30", "link_31", "link_32", "link_33", "link_34", "link_0", "link_1", "link_2", "link_7", "link_8", "link_9", "link_10", "link_11", "link_12", "link_13", "link_14", "link_15", "link_16", "link_17", "link_18", "link_19", "link_20", "link_21", "link_22", "link_23", "link_24", "link_25", "link_26", "link_27", "link_28", "link_29", "link_30", "link_31", "link_32", "link_33", "link_34", "link_0", "link_1", "link_2", "link_3", "link_4", "link_5", "link_6", "link_7", "link_8", "link_9", "link_10", "link_11", "link_12", "link_13", "link_14", "link_15", "link_16", "link_17", "link_18", "link_19", "link_20", "link_21", "link_22", "link_23", "link_24", "link_25", "link_26", "link_27", "link_28", "link_29", "link_30", "link_31", "link_32", "link_33", "link_34", "link_0", "link_1", "link_2", "link_3", "link_4", "link_5", "link_6", "link_7", "link_8", "link_9", "link_10", "link_11", "link_12", "link_13", "link_14", "link_15", "link_16", "link_17", "link_18", "link_19", "link_20", "link_21", "link_22", "link_23", "link_24", "link_25", "link_26", "link_27", "link_28", "link_29", "link_30", "link_31", "link_32", "link_33", "link_34", "link_0", "link_1", "link_2", "link_3", "link_4", "link_5", "link_6", "link_7", "link_8", "link_9", "link_10", "link_11", "link_12", "link_13", "link_14", "link_15", "link_16", "link_17", "link_18", "link_19", "link_20", "link_21", "link_22", "link_23", "link_24", "link_25", "link_26", "link_27", "link_28", "link_29", "link_30", "link_31", "link_32", "link_33", "link_34", "link_0", "link_1", "link_2", "link_3", "link_4", "link_5", "link_6", "link_7", "link_8", "link_9", "link_10", "link_11", "link_12", "link_13", "link_14", "link_15", "link_16", "link_17", "link_18", "link_19", "link_20", "link_21", "link_22", "link_23", "link_24", "link_25", "link_26", "link_27", "link_28", "link_29", "link_30", "link_31", "link_32", "link_33", "link_34", "link_0", "link_1", "link_2", "link_3", "link_4", "link_5", "link_6", "link_7", "link_8", "link_9", "link_10", "link_11", "link_12", "link_13", "link_14", "link_15", "link_16", "link_17", "link_18", "link_19", "link_20", "link_21", "link_22", "link_23", "link_24", "link_25", "link_26", "link_27", "link_28", "link_29", "link_30", "link_31", "link_32", "link_33", "link_34", "link_0", "link_1", "link_2", "link_3", "link_4", "link_5", "link_6", "link_7", "link_8", "link_9", "link_10", "link_11", "link_12", "link_13", "link_14", "link_15", "link_16", "link_17", "link_18", "link_19", "link_20", "link_21", "link_22", "link_23", "link_24", "link_25", "link_26", "link_27", "link_28", "link_29", "link_30", "link_31", "link_32", "link_33", "link_34", "link_27", "link_28", "link_29", "link_31", "link_32", "link_33", "link_34", "link_27", "link_28", "link_29", "link_31", "link_32", "link_33", "link_34", "link_0", "link_1", "link_2", "link_3", "link_4", "link_5", "link_6", "link_7", "link_8", "link_9", "link_10", "link_11", "link_12", "link_13", "link_14", "link_15", "link_16", "link_17", "link_18", "link_19", "link_20", "link_21", "link_22", "link_23", "link_24", "link_25", "link_26", "link_27", "link_28", "link_29", "link_30", "link_31", "link_32", "link_33", "link_34", "link_0", "link_1", "link_0", "link_1", "link_0", "link_1", "link_2", "link_3", "link_4", "link_5", "link_6", "link_7", "link_8", "link_9", "link_10", "link_11", "link_12", "link_13", "link_14", "link_15", "link_16", "link_17", "link_18", "link_19", "link_20", "link_21", "link_22", "link_23", "link_24", "link_25", "link_26", "link_27", "link_28", "link_29", "link_30", "link_31", "link_32", "link_33", "link_34", "link_0", "link_2", "link_11", "link_12", "link_13", "link_14", "link_15", "link_16", "link_17", "link_18", "link_27", "link_28", "link_29", "link_30", "link_31", "link_32", "link_33", "link_34", "link_0", "link_2", "link_11", "link_12", "link_13", "link_14", "link_15", "link_16", "link_17", "link_18", "link_27", "link_28", "link_29", "link_30", "link_31", "link_32", "link_33", "link_34"],
+ "colorscales": [{
+ "label": "label_0",
+ "colorscale": [
+ [0, "white"],
+ [1, "#1f77b4"]
+ ]
+ }, {
+ "label": "label_1",
+ "colorscale": [
+ [0, "white"],
+ [1, "#ff7f0e"]
+ ]
+ }, {
+ "label": "label_2",
+ "colorscale": [
+ [0, "white"],
+ [1, "#2ca02c"]
+ ]
+ }, {
+ "label": "label_3",
+ "colorscale": [
+ [0, "white"],
+ [1, "#d62728"]
+ ]
+ }, {
+ "label": "label_4",
+ "colorscale": [
+ [0, "white"],
+ [1, "#9467bd"]
+ ]
+ }, {
+ "label": "label_5",
+ "colorscale": [
+ [0, "white"],
+ [1, "#8c564b"]
+ ]
+ }, {
+ "label": "label_6",
+ "colorscale": [
+ [0, "white"],
+ [1, "#e377c2"]
+ ]
+ }, {
+ "label": "label_7",
+ "colorscale": [
+ [0, "white"],
+ [1, "#7f7f7f"]
+ ]
+ }, {
+ "label": "label_8",
+ "colorscale": [
+ [0, "white"],
+ [1, "#bcbd22"]
+ ]
+ }, {
+ "label": "label_9",
+ "colorscale": [
+ [0, "white"],
+ [1, "#17becf"]
+ ]
+ }, {
+ "label": "label_10",
+ "colorscale": [
+ [0, "white"],
+ [1, "#1f77b4"]
+ ]
+ }, {
+ "label": "label_11",
+ "colorscale": [
+ [0, "white"],
+ [1, "#ff7f0e"]
+ ]
+ }, {
+ "label": "label_12",
+ "colorscale": [
+ [0, "white"],
+ [1, "#2ca02c"]
+ ]
+ }, {
+ "label": "label_13",
+ "colorscale": [
+ [0, "white"],
+ [1, "#d62728"]
+ ]
+ }, {
+ "label": "label_14",
+ "colorscale": [
+ [0, "white"],
+ [1, "#9467bd"]
+ ]
+ }, {
+ "label": "label_15",
+ "colorscale": [
+ [0, "white"],
+ [1, "#8c564b"]
+ ]
+ }, {
+ "label": "label_16",
+ "colorscale": [
+ [0, "white"],
+ [1, "#e377c2"]
+ ]
+ }, {
+ "label": "label_17",
+ "colorscale": [
+ [0, "white"],
+ [1, "#7f7f7f"]
+ ]
+ }, {
+ "label": "label_18",
+ "colorscale": [
+ [0, "white"],
+ [1, "#bcbd22"]
+ ]
+ }, {
+ "label": "label_19",
+ "colorscale": [
+ [0, "white"],
+ [1, "#17becf"]
+ ]
+ }, {
+ "label": "label_20",
+ "colorscale": [
+ [0, "white"],
+ [1, "#1f77b4"]
+ ]
+ }, {
+ "label": "label_21",
+ "colorscale": [
+ [0, "white"],
+ [1, "#ff7f0e"]
+ ]
+ }, {
+ "label": "label_22",
+ "colorscale": [
+ [0, "white"],
+ [1, "#2ca02c"]
+ ]
+ }, {
+ "label": "label_23",
+ "colorscale": [
+ [0, "white"],
+ [1, "#d62728"]
+ ]
+ }, {
+ "label": "label_24",
+ "colorscale": [
+ [0, "white"],
+ [1, "#9467bd"]
+ ]
+ }, {
+ "label": "label_25",
+ "colorscale": [
+ [0, "white"],
+ [1, "#8c564b"]
+ ]
+ }, {
+ "label": "label_26",
+ "colorscale": [
+ [0, "white"],
+ [1, "#e377c2"]
+ ]
+ }, {
+ "label": "label_27",
+ "colorscale": [
+ [0, "white"],
+ [1, "#7f7f7f"]
+ ]
+ }, {
+ "label": "label_28",
+ "colorscale": [
+ [0, "white"],
+ [1, "#bcbd22"]
+ ]
+ }, {
+ "label": "label_29",
+ "colorscale": [
+ [0, "white"],
+ [1, "#17becf"]
+ ]
+ }, {
+ "label": "label_30",
+ "colorscale": [
+ [0, "white"],
+ [1, "#1f77b4"]
+ ]
+ }, {
+ "label": "label_31",
+ "colorscale": [
+ [0, "white"],
+ [1, "#ff7f0e"]
+ ]
+ }, {
+ "label": "label_32",
+ "colorscale": [
+ [0, "white"],
+ [1, "#2ca02c"]
+ ]
+ }, {
+ "label": "label_33",
+ "colorscale": [
+ [0, "white"],
+ [1, "#d62728"]
+ ]
+ }, {
+ "label": "label_34",
+ "colorscale": [
+ [0, "white"],
+ [1, "#9467bd"]
+ ]
+ }],
+ "hovertemplate": "%{label}
%{flow.labelConcentration:%0.2f}
%{flow.value}"
+ }
+ }],
+ "layout": {
+ "width": 800,
+ "height": 800
+ }
+}
diff --git a/test/image/mocks/sankey_circular_simple.json b/test/image/mocks/sankey_circular_simple.json
new file mode 100644
index 00000000000..cff172479f7
--- /dev/null
+++ b/test/image/mocks/sankey_circular_simple.json
@@ -0,0 +1,31 @@
+{
+ "data": [
+ {
+ "type": "sankey",
+ "node": {
+ "pad": 5,
+ "label": ["0", "1", "2", "3", "sink", "source"]
+ },
+ "link": {
+ "source": [
+ 0, 1, 2, 3,
+ 0, 1, 2, 3,
+ 5
+ ],
+ "target": [
+ 1, 2, 3, 0,
+ 4, 4, 4, 4,
+ 0
+ ],
+ "value": [
+ 1, 0.85, 0.7, 0.55,
+ 0, 0.15, 0.15, 0.15,
+ 0.45
+ ]
+ }
+ }],
+ "layout": {
+ "width": 800,
+ "height": 800
+ }
+}
diff --git a/test/jasmine/tests/sankey_test.js b/test/jasmine/tests/sankey_test.js
index de3a598609b..e74723170f4 100644
--- a/test/jasmine/tests/sankey_test.js
+++ b/test/jasmine/tests/sankey_test.js
@@ -7,6 +7,7 @@ var d3SankeyCircular = require('d3-sankey-circular');
var mock = require('@mocks/sankey_energy.json');
var mockDark = require('@mocks/sankey_energy_dark.json');
var mockCircular = require('@mocks/sankey_circular.json');
+var mockCircularLarge = require('@mocks/sankey_circular_large.json');
var Sankey = require('@src/traces/sankey');
var createGraphDiv = require('../assets/create_graph_div');
@@ -1069,91 +1070,131 @@ describe('sankey layout generators', function() {
describe('d3-sankey-ciruclar', function() {
var data, sankey, graph;
- function _calc(trace) {
- var gd = { data: [trace] };
-
- supplyAllDefaults(gd);
- var fullTrace = gd._fullData[0];
- return Sankey.calc(gd, fullTrace);
- }
+ describe('implements d3-sankey compatible API', function() {
+ function _calc(trace) {
+ var gd = { data: [trace] };
+
+ supplyAllDefaults(gd);
+ var fullTrace = gd._fullData[0];
+ return Sankey.calc(gd, fullTrace);
+ }
+
+ beforeEach(function() {
+ data = _calc(mockCircular.data[0]);
+ data = {
+ nodes: data[0]._nodes,
+ links: data[0]._links
+ };
+ sankey = d3SankeyCircular
+ .sankeyCircular()
+ .iterations(32)
+ .circularLinkGap(2)
+ .nodePadding(10)
+ .size([500, 500])
+ .nodeId(function(d) {
+ return d.pointNumber;
+ })
+ .nodes(data.nodes)
+ .links(data.links);
+
+ graph = sankey();
+ });
- beforeEach(function() {
- data = _calc(mockCircular.data[0]);
- data = {
- nodes: data[0]._nodes,
- links: data[0]._links
- };
- sankey = d3SankeyCircular
- .sankeyCircular()
- .iterations(32)
- .circularLinkGap(2)
- .nodePadding(10)
- .size([500, 500])
- .nodeId(function(d) {
- return d.pointNumber;
- })
- .nodes(data.nodes)
- .links(data.links);
+ it('creates a graph with circular links', function() {
+ expect(graph.nodes.length).toEqual(6, 'there are 6 nodes');
+ var circularLinks = graph.links.filter(function(link) {
+ return link.circular;
+ });
+ expect(circularLinks.length).toEqual(2, 'there are two circular links');
+ });
- graph = sankey();
- });
+ it('keep a list of nodes with positions in integer (depth, height)', function() {
+ checkArray(graph.nodes, 'depth', [0, 0, 2, 3, 1, 1]);
+ checkArray(graph.nodes, 'height', [1, 3, 1, 0, 2, 0]);
+ });
- it('creates a graph with circular links', function() {
- expect(graph.nodes.length).toEqual(6, 'there are 6 nodes');
- var circularLinks = graph.links.filter(function(link) {
- return link.circular;
+ it('keep a list of nodes with positions in x and y', function() {
+ checkRoundedArray(graph.nodes, 'x0', [72, 72, 267, 365, 169, 169]);
+ checkRoundedArray(graph.nodes, 'y0', [303, 86, 72, 109, 86, 359]);
});
- expect(circularLinks.length).toEqual(2, 'there are two circular links');
- });
- it('keep a list of nodes with positions in integer (depth, height)', function() {
- checkArray(graph.nodes, 'depth', [0, 0, 2, 3, 1, 1]);
- checkArray(graph.nodes, 'height', [1, 3, 1, 0, 2, 0]);
- });
+ it('supports column reordering', function() {
+ var reorder = [ 2, 2, 1, 1, 0, 0 ];
- it('keep a list of nodes with positions in x and y', function() {
- checkRoundedArray(graph.nodes, 'x0', [72, 72, 267, 365, 169, 169]);
- checkRoundedArray(graph.nodes, 'y0', [303, 86, 72, 109, 86, 359]);
- });
+ checkArray(graph.nodes, 'column', [0, 0, 2, 3, 1, 1]);
- it('supports column reordering', function() {
- var reorder = [ 2, 2, 1, 1, 0, 0 ];
+ var a = graph.nodes[0].x0;
+ sankey.nodeAlign(function(node) {
+ return reorder[node.pointNumber];
+ });
+ graph = sankey();
+ checkArray(graph.nodes, 'column', [2, 2, 1, 1, 0, 0]);
+ checkArray(graph.nodes, 'height', [1, 3, 1, 0, 2, 0]);
+ var b = graph.nodes[0].x0;
+ expect(a).not.toEqual(b);
+ });
- checkArray(graph.nodes, 'column', [0, 0, 2, 3, 1, 1]);
+ it('updates links vertical position and circularLinkType upon moving nodes', function() {
+ var linkIndex = 6;
+ var nodeIndex = 2;
+ var delta = [0, 400];
- var a = graph.nodes[0].x0;
- sankey.nodeAlign(function(node) {
- return reorder[node.pointNumber];
- });
- graph = sankey();
- checkArray(graph.nodes, 'column', [2, 2, 1, 1, 0, 0]);
- checkArray(graph.nodes, 'height', [1, 3, 1, 0, 2, 0]);
- var b = graph.nodes[0].x0;
- expect(a).not.toEqual(b);
- });
+ var link = graph.links[linkIndex];
+ var linkY1 = link.y1;
+ var node = graph.nodes[nodeIndex];
+ var offsetTopToBottom = (node.y1 - node.y0) * link.value / node.value;
- it('updates links vertical position and circularLinkType upon moving nodes', function() {
- var linkIndex = 6;
- var nodeIndex = 2;
- var delta = [0, 400];
+ // Start with a circular link on top
+ expect(link.circular).toBeTruthy();
+ expect(link.circularLinkType).toEqual('top');
- var link = graph.links[linkIndex];
- var linkY1 = link.y1;
- var node = graph.nodes[nodeIndex];
- var offsetTopToBottom = (node.y1 - node.y0) * link.value / node.value;
+ // Update graph
+ var updatedGraph = moveNode(sankey, graph, nodeIndex, delta);
+ var updatedLink = updatedGraph.links[linkIndex];
- // Start with a circular link on top
- expect(link.circular).toBeTruthy();
- expect(link.circularLinkType).toEqual('top');
+ // End up with a cirular link on bottom
+ expect(updatedLink.circular).toBeTruthy();
+ expect(updatedLink.circularLinkType).toEqual('bottom');
+ expect(updatedLink.y1).toBeCloseTo(linkY1 + delta[1] + offsetTopToBottom, 0);
+ });
+ });
- // Update graph
- var updatedGraph = moveNode(sankey, graph, nodeIndex, delta);
- var updatedLink = updatedGraph.links[linkIndex];
+ describe('handles large number of links', function() {
+ function _calc(trace) {
+ var gd = { data: [trace] };
+
+ supplyAllDefaults(gd);
+ var fullTrace = gd._fullData[0];
+ return Sankey.calc(gd, fullTrace);
+ }
+
+ beforeEach(function() {
+ data = _calc(mockCircularLarge.data[0]);
+ data = {
+ nodes: data[0]._nodes,
+ links: data[0]._links
+ };
+ sankey = d3SankeyCircular
+ .sankeyCircular()
+ .iterations(32)
+ .nodePadding(10)
+ .size([500, 500])
+ .nodeId(function(d) {
+ return d.pointNumber;
+ })
+ .nodes(data.nodes)
+ .links(data.links);
+
+ graph = sankey();
+ });
- // End up with a cirular link on bottom
- expect(updatedLink.circular).toBeTruthy();
- expect(updatedLink.circularLinkType).toEqual('bottom');
- expect(updatedLink.y1).toBeCloseTo(linkY1 + delta[1] + offsetTopToBottom, 0);
+ it('creates a graph with circular links', function() {
+ expect(graph.nodes.length).toEqual(26, 'right number of nodes');
+ var circularLinks = graph.links.filter(function(link) {
+ return link.circular;
+ });
+ expect(circularLinks.length).toEqual(89, 'right number of circular links');
+ });
});
});
});