godev/third_party: add third party libraries and copy tool

The npmdeps command copies dependencies from node_modules into the
third_party directory to be served by the website. The libraries
added will be used to render charts from telemetry data.

Change-Id: If71c7394f2a7fe3814972d749e03d94aae1d68cc
Reviewed-on: https://go-review.googlesource.com/c/telemetry/+/498258
Reviewed-by: Hyang-Ah Hana Kim <hyangah@gmail.com>
Run-TryBot: Jamal Carvalho <jamal@golang.org>
TryBot-Result: Gopher Robot <gobot@golang.org>
diff --git a/godev/.eslintignore b/godev/.eslintignore
new file mode 100644
index 0000000..65596ba
--- /dev/null
+++ b/godev/.eslintignore
@@ -0,0 +1 @@
+third_party
\ No newline at end of file
diff --git a/godev/.prettierignore b/godev/.prettierignore
new file mode 100644
index 0000000..65596ba
--- /dev/null
+++ b/godev/.prettierignore
@@ -0,0 +1 @@
+third_party
\ No newline at end of file
diff --git a/godev/README.md b/godev/README.md
index 7af97b9..fa06aa3 100644
--- a/godev/README.md
+++ b/godev/README.md
@@ -27,3 +27,13 @@
 ### Run ESLint, Stylelint, & Prettier
 
     ./npm run all
+
+## Third Party
+
+The `third_party` directory was generated with `go run ./devtools/cmd/npmdeps`.
+It contains JS  packages that are served by the web site. To add or upgrade a
+new dependency use the necessary `./npm` command then run
+`go run ./devtools/cmd/npmdeps`. Remove unnecessary files from the copy result
+where appropriate. For example, `content/localserver/index.html` only depends
+on files from `third_party/d3@7.8.4/dist/` so the directory
+`third_party/d3@7.8.4/src` can be deleted.
diff --git a/godev/content.go b/godev/content.go
index d9c1b06..7e2f109 100644
--- a/godev/content.go
+++ b/godev/content.go
@@ -9,5 +9,5 @@
 	"embed"
 )
 
-//go:embed content
+//go:embed content third_party
 var FS embed.FS
diff --git a/godev/devtools/cmd/npmdeps/main.go b/godev/devtools/cmd/npmdeps/main.go
new file mode 100644
index 0000000..5f110b1
--- /dev/null
+++ b/godev/devtools/cmd/npmdeps/main.go
@@ -0,0 +1,103 @@
+// Copyright 2023 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// npmdeps copies npm dependencies to be served by the website into the
+// third_party directory. It reads the package.json file to get the list
+// of dependencies to copy.
+package main
+
+import (
+	"encoding/json"
+	"fmt"
+	"io"
+	"log"
+	"os"
+	"path/filepath"
+	"strings"
+)
+
+const (
+	pkgjsonfile = "package.json"
+	source      = "node_modules"
+	destination = "third_party"
+)
+
+var files = []string{"LICENSE", "package.json"}
+
+type metadata struct {
+	Dependencies map[string]string `json:"dependencies"`
+	Exports      map[string]string `json:"exports"`
+}
+
+func run() error {
+	f, err := os.ReadFile(pkgjsonfile)
+	if err != nil {
+		return err
+	}
+	var pkgjson metadata
+	if err := json.Unmarshal(f, &pkgjson); err != nil {
+		return err
+	}
+	if err := os.RemoveAll(destination); err != nil {
+		return err
+	}
+	for name, version := range pkgjson.Dependencies {
+		src := filepath.Join(source, name)
+		// Added version to the path for long term caching.
+		dest := filepath.Join(destination, name+"@"+version)
+		org, rest, found := strings.Cut(name, "/")
+		if found {
+			dest = filepath.Join(destination, org, rest+"@"+version)
+		}
+		f, err := os.ReadFile(filepath.Join(src, pkgjsonfile))
+		if err != nil {
+			return err
+		}
+		var dependency metadata
+		if err := json.Unmarshal(f, &dependency); err != nil {
+			return err
+		}
+		for _, name := range files {
+			if err := copy(filepath.Join(src, name), filepath.Join(dest, name)); err != nil {
+				return err
+			}
+		}
+		umd := dependency.Exports["umd"]
+		if err := copy(filepath.Join(src, umd), filepath.Join(dest, umd)); err != nil {
+			return err
+		}
+	}
+	return nil
+}
+
+func copy(from, to string) error {
+	stat, err := os.Stat(from)
+	if err != nil {
+		return err
+	}
+	if !stat.Mode().IsRegular() {
+		return fmt.Errorf("%s is not a regular file", from)
+	}
+	src, err := os.Open(from)
+	if err != nil {
+		return err
+	}
+	defer src.Close()
+	if err := os.MkdirAll(filepath.Dir(to), os.ModePerm); err != nil {
+		return err
+	}
+	dst, err := os.Create(to)
+	if err != nil {
+		return err
+	}
+	defer dst.Close()
+	_, err = io.Copy(dst, src)
+	return err
+}
+
+func main() {
+	if err := run(); err != nil {
+		log.Fatal(err)
+	}
+}
diff --git a/godev/package-lock.json b/godev/package-lock.json
index 8e4d5a2..0cee1c1 100644
--- a/godev/package-lock.json
+++ b/godev/package-lock.json
@@ -4,6 +4,10 @@
   "requires": true,
   "packages": {
     "": {
+      "dependencies": {
+        "@observablehq/plot": "0.6.6",
+        "d3": "7.8.4"
+      },
       "devDependencies": {
         "@typescript-eslint/eslint-plugin": "5.59.6",
         "@typescript-eslint/parser": "5.59.6",
@@ -259,6 +263,19 @@
         "node": ">= 8"
       }
     },
+    "node_modules/@observablehq/plot": {
+      "version": "0.6.6",
+      "resolved": "https://registry.npmjs.org/@observablehq/plot/-/plot-0.6.6.tgz",
+      "integrity": "sha512-OmWn3ZfBwXxwuNUBLE/DEh0aDAo6KVx55MPvwzl4X52W2KGw0Loz3zier3i8spBI5iMCOqY1DnE+hl1mRaBaBA==",
+      "dependencies": {
+        "d3": "^7.8.0",
+        "interval-tree-1d": "^1.0.0",
+        "isoformat": "^0.2.0"
+      },
+      "engines": {
+        "node": ">=12"
+      }
+    },
     "node_modules/@types/json-schema": {
       "version": "7.0.11",
       "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz",
@@ -593,6 +610,11 @@
       "integrity": "sha512-1ugUSr8BHXRnK23KfuYS+gVMC3LB8QGH9W1iGtDPsNWoQbgtXSExkBu2aDR4epiGWZOjZsj6lDl/N/AqqTC3UA==",
       "dev": true
     },
+    "node_modules/binary-search-bounds": {
+      "version": "2.0.5",
+      "resolved": "https://registry.npmjs.org/binary-search-bounds/-/binary-search-bounds-2.0.5.tgz",
+      "integrity": "sha512-H0ea4Fd3lS1+sTEB2TgcLoK21lLhwEJzlQv3IN47pJS976Gx4zoWe0ak3q+uYh60ppQxg9F16Ri4tS1sfD4+jA=="
+    },
     "node_modules/brace-expansion": {
       "version": "1.1.11",
       "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
@@ -704,6 +726,14 @@
       "integrity": "sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==",
       "dev": true
     },
+    "node_modules/commander": {
+      "version": "7.2.0",
+      "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz",
+      "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==",
+      "engines": {
+        "node": ">= 10"
+      }
+    },
     "node_modules/concat-map": {
       "version": "0.0.1",
       "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
@@ -791,6 +821,376 @@
         "node": ">=4"
       }
     },
+    "node_modules/d3": {
+      "version": "7.8.4",
+      "resolved": "https://registry.npmjs.org/d3/-/d3-7.8.4.tgz",
+      "integrity": "sha512-q2WHStdhiBtD8DMmhDPyJmXUxr6VWRngKyiJ5EfXMxPw+tqT6BhNjhJZ4w3BHsNm3QoVfZLY8Orq/qPFczwKRA==",
+      "dependencies": {
+        "d3-array": "3",
+        "d3-axis": "3",
+        "d3-brush": "3",
+        "d3-chord": "3",
+        "d3-color": "3",
+        "d3-contour": "4",
+        "d3-delaunay": "6",
+        "d3-dispatch": "3",
+        "d3-drag": "3",
+        "d3-dsv": "3",
+        "d3-ease": "3",
+        "d3-fetch": "3",
+        "d3-force": "3",
+        "d3-format": "3",
+        "d3-geo": "3",
+        "d3-hierarchy": "3",
+        "d3-interpolate": "3",
+        "d3-path": "3",
+        "d3-polygon": "3",
+        "d3-quadtree": "3",
+        "d3-random": "3",
+        "d3-scale": "4",
+        "d3-scale-chromatic": "3",
+        "d3-selection": "3",
+        "d3-shape": "3",
+        "d3-time": "3",
+        "d3-time-format": "4",
+        "d3-timer": "3",
+        "d3-transition": "3",
+        "d3-zoom": "3"
+      },
+      "engines": {
+        "node": ">=12"
+      }
+    },
+    "node_modules/d3-array": {
+      "version": "3.2.3",
+      "resolved": "https://registry.npmjs.org/d3-array/-/d3-array-3.2.3.tgz",
+      "integrity": "sha512-JRHwbQQ84XuAESWhvIPaUV4/1UYTBOLiOPGWqgFDHZS1D5QN9c57FbH3QpEnQMYiOXNzKUQyGTZf+EVO7RT5TQ==",
+      "dependencies": {
+        "internmap": "1 - 2"
+      },
+      "engines": {
+        "node": ">=12"
+      }
+    },
+    "node_modules/d3-axis": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/d3-axis/-/d3-axis-3.0.0.tgz",
+      "integrity": "sha512-IH5tgjV4jE/GhHkRV0HiVYPDtvfjHQlQfJHs0usq7M30XcSBvOotpmH1IgkcXsO/5gEQZD43B//fc7SRT5S+xw==",
+      "engines": {
+        "node": ">=12"
+      }
+    },
+    "node_modules/d3-brush": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/d3-brush/-/d3-brush-3.0.0.tgz",
+      "integrity": "sha512-ALnjWlVYkXsVIGlOsuWH1+3udkYFI48Ljihfnh8FZPF2QS9o+PzGLBslO0PjzVoHLZ2KCVgAM8NVkXPJB2aNnQ==",
+      "dependencies": {
+        "d3-dispatch": "1 - 3",
+        "d3-drag": "2 - 3",
+        "d3-interpolate": "1 - 3",
+        "d3-selection": "3",
+        "d3-transition": "3"
+      },
+      "engines": {
+        "node": ">=12"
+      }
+    },
+    "node_modules/d3-chord": {
+      "version": "3.0.1",
+      "resolved": "https://registry.npmjs.org/d3-chord/-/d3-chord-3.0.1.tgz",
+      "integrity": "sha512-VE5S6TNa+j8msksl7HwjxMHDM2yNK3XCkusIlpX5kwauBfXuyLAtNg9jCp/iHH61tgI4sb6R/EIMWCqEIdjT/g==",
+      "dependencies": {
+        "d3-path": "1 - 3"
+      },
+      "engines": {
+        "node": ">=12"
+      }
+    },
+    "node_modules/d3-color": {
+      "version": "3.1.0",
+      "resolved": "https://registry.npmjs.org/d3-color/-/d3-color-3.1.0.tgz",
+      "integrity": "sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==",
+      "engines": {
+        "node": ">=12"
+      }
+    },
+    "node_modules/d3-contour": {
+      "version": "4.0.2",
+      "resolved": "https://registry.npmjs.org/d3-contour/-/d3-contour-4.0.2.tgz",
+      "integrity": "sha512-4EzFTRIikzs47RGmdxbeUvLWtGedDUNkTcmzoeyg4sP/dvCexO47AaQL7VKy/gul85TOxw+IBgA8US2xwbToNA==",
+      "dependencies": {
+        "d3-array": "^3.2.0"
+      },
+      "engines": {
+        "node": ">=12"
+      }
+    },
+    "node_modules/d3-delaunay": {
+      "version": "6.0.4",
+      "resolved": "https://registry.npmjs.org/d3-delaunay/-/d3-delaunay-6.0.4.tgz",
+      "integrity": "sha512-mdjtIZ1XLAM8bm/hx3WwjfHt6Sggek7qH043O8KEjDXN40xi3vx/6pYSVTwLjEgiXQTbvaouWKynLBiUZ6SK6A==",
+      "dependencies": {
+        "delaunator": "5"
+      },
+      "engines": {
+        "node": ">=12"
+      }
+    },
+    "node_modules/d3-dispatch": {
+      "version": "3.0.1",
+      "resolved": "https://registry.npmjs.org/d3-dispatch/-/d3-dispatch-3.0.1.tgz",
+      "integrity": "sha512-rzUyPU/S7rwUflMyLc1ETDeBj0NRuHKKAcvukozwhshr6g6c5d8zh4c2gQjY2bZ0dXeGLWc1PF174P2tVvKhfg==",
+      "engines": {
+        "node": ">=12"
+      }
+    },
+    "node_modules/d3-drag": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/d3-drag/-/d3-drag-3.0.0.tgz",
+      "integrity": "sha512-pWbUJLdETVA8lQNJecMxoXfH6x+mO2UQo8rSmZ+QqxcbyA3hfeprFgIT//HW2nlHChWeIIMwS2Fq+gEARkhTkg==",
+      "dependencies": {
+        "d3-dispatch": "1 - 3",
+        "d3-selection": "3"
+      },
+      "engines": {
+        "node": ">=12"
+      }
+    },
+    "node_modules/d3-dsv": {
+      "version": "3.0.1",
+      "resolved": "https://registry.npmjs.org/d3-dsv/-/d3-dsv-3.0.1.tgz",
+      "integrity": "sha512-UG6OvdI5afDIFP9w4G0mNq50dSOsXHJaRE8arAS5o9ApWnIElp8GZw1Dun8vP8OyHOZ/QJUKUJwxiiCCnUwm+Q==",
+      "dependencies": {
+        "commander": "7",
+        "iconv-lite": "0.6",
+        "rw": "1"
+      },
+      "bin": {
+        "csv2json": "bin/dsv2json.js",
+        "csv2tsv": "bin/dsv2dsv.js",
+        "dsv2dsv": "bin/dsv2dsv.js",
+        "dsv2json": "bin/dsv2json.js",
+        "json2csv": "bin/json2dsv.js",
+        "json2dsv": "bin/json2dsv.js",
+        "json2tsv": "bin/json2dsv.js",
+        "tsv2csv": "bin/dsv2dsv.js",
+        "tsv2json": "bin/dsv2json.js"
+      },
+      "engines": {
+        "node": ">=12"
+      }
+    },
+    "node_modules/d3-ease": {
+      "version": "3.0.1",
+      "resolved": "https://registry.npmjs.org/d3-ease/-/d3-ease-3.0.1.tgz",
+      "integrity": "sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w==",
+      "engines": {
+        "node": ">=12"
+      }
+    },
+    "node_modules/d3-fetch": {
+      "version": "3.0.1",
+      "resolved": "https://registry.npmjs.org/d3-fetch/-/d3-fetch-3.0.1.tgz",
+      "integrity": "sha512-kpkQIM20n3oLVBKGg6oHrUchHM3xODkTzjMoj7aWQFq5QEM+R6E4WkzT5+tojDY7yjez8KgCBRoj4aEr99Fdqw==",
+      "dependencies": {
+        "d3-dsv": "1 - 3"
+      },
+      "engines": {
+        "node": ">=12"
+      }
+    },
+    "node_modules/d3-force": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/d3-force/-/d3-force-3.0.0.tgz",
+      "integrity": "sha512-zxV/SsA+U4yte8051P4ECydjD/S+qeYtnaIyAs9tgHCqfguma/aAQDjo85A9Z6EKhBirHRJHXIgJUlffT4wdLg==",
+      "dependencies": {
+        "d3-dispatch": "1 - 3",
+        "d3-quadtree": "1 - 3",
+        "d3-timer": "1 - 3"
+      },
+      "engines": {
+        "node": ">=12"
+      }
+    },
+    "node_modules/d3-format": {
+      "version": "3.1.0",
+      "resolved": "https://registry.npmjs.org/d3-format/-/d3-format-3.1.0.tgz",
+      "integrity": "sha512-YyUI6AEuY/Wpt8KWLgZHsIU86atmikuoOmCfommt0LYHiQSPjvX2AcFc38PX0CBpr2RCyZhjex+NS/LPOv6YqA==",
+      "engines": {
+        "node": ">=12"
+      }
+    },
+    "node_modules/d3-geo": {
+      "version": "3.1.0",
+      "resolved": "https://registry.npmjs.org/d3-geo/-/d3-geo-3.1.0.tgz",
+      "integrity": "sha512-JEo5HxXDdDYXCaWdwLRt79y7giK8SbhZJbFWXqbRTolCHFI5jRqteLzCsq51NKbUoX0PjBVSohxrx+NoOUujYA==",
+      "dependencies": {
+        "d3-array": "2.5.0 - 3"
+      },
+      "engines": {
+        "node": ">=12"
+      }
+    },
+    "node_modules/d3-hierarchy": {
+      "version": "3.1.2",
+      "resolved": "https://registry.npmjs.org/d3-hierarchy/-/d3-hierarchy-3.1.2.tgz",
+      "integrity": "sha512-FX/9frcub54beBdugHjDCdikxThEqjnR93Qt7PvQTOHxyiNCAlvMrHhclk3cD5VeAaq9fxmfRp+CnWw9rEMBuA==",
+      "engines": {
+        "node": ">=12"
+      }
+    },
+    "node_modules/d3-interpolate": {
+      "version": "3.0.1",
+      "resolved": "https://registry.npmjs.org/d3-interpolate/-/d3-interpolate-3.0.1.tgz",
+      "integrity": "sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==",
+      "dependencies": {
+        "d3-color": "1 - 3"
+      },
+      "engines": {
+        "node": ">=12"
+      }
+    },
+    "node_modules/d3-path": {
+      "version": "3.1.0",
+      "resolved": "https://registry.npmjs.org/d3-path/-/d3-path-3.1.0.tgz",
+      "integrity": "sha512-p3KP5HCf/bvjBSSKuXid6Zqijx7wIfNW+J/maPs+iwR35at5JCbLUT0LzF1cnjbCHWhqzQTIN2Jpe8pRebIEFQ==",
+      "engines": {
+        "node": ">=12"
+      }
+    },
+    "node_modules/d3-polygon": {
+      "version": "3.0.1",
+      "resolved": "https://registry.npmjs.org/d3-polygon/-/d3-polygon-3.0.1.tgz",
+      "integrity": "sha512-3vbA7vXYwfe1SYhED++fPUQlWSYTTGmFmQiany/gdbiWgU/iEyQzyymwL9SkJjFFuCS4902BSzewVGsHHmHtXg==",
+      "engines": {
+        "node": ">=12"
+      }
+    },
+    "node_modules/d3-quadtree": {
+      "version": "3.0.1",
+      "resolved": "https://registry.npmjs.org/d3-quadtree/-/d3-quadtree-3.0.1.tgz",
+      "integrity": "sha512-04xDrxQTDTCFwP5H6hRhsRcb9xxv2RzkcsygFzmkSIOJy3PeRJP7sNk3VRIbKXcog561P9oU0/rVH6vDROAgUw==",
+      "engines": {
+        "node": ">=12"
+      }
+    },
+    "node_modules/d3-random": {
+      "version": "3.0.1",
+      "resolved": "https://registry.npmjs.org/d3-random/-/d3-random-3.0.1.tgz",
+      "integrity": "sha512-FXMe9GfxTxqd5D6jFsQ+DJ8BJS4E/fT5mqqdjovykEB2oFbTMDVdg1MGFxfQW+FBOGoB++k8swBrgwSHT1cUXQ==",
+      "engines": {
+        "node": ">=12"
+      }
+    },
+    "node_modules/d3-scale": {
+      "version": "4.0.2",
+      "resolved": "https://registry.npmjs.org/d3-scale/-/d3-scale-4.0.2.tgz",
+      "integrity": "sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ==",
+      "dependencies": {
+        "d3-array": "2.10.0 - 3",
+        "d3-format": "1 - 3",
+        "d3-interpolate": "1.2.0 - 3",
+        "d3-time": "2.1.1 - 3",
+        "d3-time-format": "2 - 4"
+      },
+      "engines": {
+        "node": ">=12"
+      }
+    },
+    "node_modules/d3-scale-chromatic": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/d3-scale-chromatic/-/d3-scale-chromatic-3.0.0.tgz",
+      "integrity": "sha512-Lx9thtxAKrO2Pq6OO2Ua474opeziKr279P/TKZsMAhYyNDD3EnCffdbgeSYN5O7m2ByQsxtuP2CSDczNUIZ22g==",
+      "dependencies": {
+        "d3-color": "1 - 3",
+        "d3-interpolate": "1 - 3"
+      },
+      "engines": {
+        "node": ">=12"
+      }
+    },
+    "node_modules/d3-selection": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/d3-selection/-/d3-selection-3.0.0.tgz",
+      "integrity": "sha512-fmTRWbNMmsmWq6xJV8D19U/gw/bwrHfNXxrIN+HfZgnzqTHp9jOmKMhsTUjXOJnZOdZY9Q28y4yebKzqDKlxlQ==",
+      "engines": {
+        "node": ">=12"
+      }
+    },
+    "node_modules/d3-shape": {
+      "version": "3.2.0",
+      "resolved": "https://registry.npmjs.org/d3-shape/-/d3-shape-3.2.0.tgz",
+      "integrity": "sha512-SaLBuwGm3MOViRq2ABk3eLoxwZELpH6zhl3FbAoJ7Vm1gofKx6El1Ib5z23NUEhF9AsGl7y+dzLe5Cw2AArGTA==",
+      "dependencies": {
+        "d3-path": "^3.1.0"
+      },
+      "engines": {
+        "node": ">=12"
+      }
+    },
+    "node_modules/d3-time": {
+      "version": "3.1.0",
+      "resolved": "https://registry.npmjs.org/d3-time/-/d3-time-3.1.0.tgz",
+      "integrity": "sha512-VqKjzBLejbSMT4IgbmVgDjpkYrNWUYJnbCGo874u7MMKIWsILRX+OpX/gTk8MqjpT1A/c6HY2dCA77ZN0lkQ2Q==",
+      "dependencies": {
+        "d3-array": "2 - 3"
+      },
+      "engines": {
+        "node": ">=12"
+      }
+    },
+    "node_modules/d3-time-format": {
+      "version": "4.1.0",
+      "resolved": "https://registry.npmjs.org/d3-time-format/-/d3-time-format-4.1.0.tgz",
+      "integrity": "sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg==",
+      "dependencies": {
+        "d3-time": "1 - 3"
+      },
+      "engines": {
+        "node": ">=12"
+      }
+    },
+    "node_modules/d3-timer": {
+      "version": "3.0.1",
+      "resolved": "https://registry.npmjs.org/d3-timer/-/d3-timer-3.0.1.tgz",
+      "integrity": "sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==",
+      "engines": {
+        "node": ">=12"
+      }
+    },
+    "node_modules/d3-transition": {
+      "version": "3.0.1",
+      "resolved": "https://registry.npmjs.org/d3-transition/-/d3-transition-3.0.1.tgz",
+      "integrity": "sha512-ApKvfjsSR6tg06xrL434C0WydLr7JewBB3V+/39RMHsaXTOG0zmt/OAXeng5M5LBm0ojmxJrpomQVZ1aPvBL4w==",
+      "dependencies": {
+        "d3-color": "1 - 3",
+        "d3-dispatch": "1 - 3",
+        "d3-ease": "1 - 3",
+        "d3-interpolate": "1 - 3",
+        "d3-timer": "1 - 3"
+      },
+      "engines": {
+        "node": ">=12"
+      },
+      "peerDependencies": {
+        "d3-selection": "2 - 3"
+      }
+    },
+    "node_modules/d3-zoom": {
+      "version": "3.0.0",
+      "resolved": "https://registry.npmjs.org/d3-zoom/-/d3-zoom-3.0.0.tgz",
+      "integrity": "sha512-b8AmV3kfQaqWAuacbPuNbL6vahnOJflOhexLzMMNLga62+/nh0JzvJ0aO/5a5MVgUFGS7Hu1P9P03o3fJkDCyw==",
+      "dependencies": {
+        "d3-dispatch": "1 - 3",
+        "d3-drag": "2 - 3",
+        "d3-interpolate": "1 - 3",
+        "d3-selection": "2 - 3",
+        "d3-transition": "2 - 3"
+      },
+      "engines": {
+        "node": ">=12"
+      }
+    },
     "node_modules/debug": {
       "version": "4.3.4",
       "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
@@ -864,6 +1264,14 @@
         "url": "https://github.com/sponsors/ljharb"
       }
     },
+    "node_modules/delaunator": {
+      "version": "5.0.0",
+      "resolved": "https://registry.npmjs.org/delaunator/-/delaunator-5.0.0.tgz",
+      "integrity": "sha512-AyLvtyJdbv/U1GkiS6gUUzclRoAY4Gs75qkMygJJhU75LW4DNuSF2RMzpxs9jw9Oz1BobHjTdkG3zdP55VxAqw==",
+      "dependencies": {
+        "robust-predicates": "^3.0.0"
+      }
+    },
     "node_modules/dir-glob": {
       "version": "3.0.1",
       "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz",
@@ -1815,6 +2223,17 @@
         "url": "https://github.com/sponsors/sindresorhus"
       }
     },
+    "node_modules/iconv-lite": {
+      "version": "0.6.3",
+      "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz",
+      "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==",
+      "dependencies": {
+        "safer-buffer": ">= 2.1.2 < 3.0.0"
+      },
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
     "node_modules/ignore": {
       "version": "5.2.4",
       "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz",
@@ -1912,6 +2331,22 @@
         "node": ">= 0.4"
       }
     },
+    "node_modules/internmap": {
+      "version": "2.0.3",
+      "resolved": "https://registry.npmjs.org/internmap/-/internmap-2.0.3.tgz",
+      "integrity": "sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==",
+      "engines": {
+        "node": ">=12"
+      }
+    },
+    "node_modules/interval-tree-1d": {
+      "version": "1.0.4",
+      "resolved": "https://registry.npmjs.org/interval-tree-1d/-/interval-tree-1d-1.0.4.tgz",
+      "integrity": "sha512-wY8QJH+6wNI0uh4pDQzMvl+478Qh7Rl4qLmqiluxALlNvl+I+o5x38Pw3/z7mDPTPS1dQalZJXsmbvxx5gclhQ==",
+      "dependencies": {
+        "binary-search-bounds": "^2.0.0"
+      }
+    },
     "node_modules/is-array-buffer": {
       "version": "3.0.2",
       "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.2.tgz",
@@ -2187,6 +2622,11 @@
       "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==",
       "dev": true
     },
+    "node_modules/isoformat": {
+      "version": "0.2.1",
+      "resolved": "https://registry.npmjs.org/isoformat/-/isoformat-0.2.1.tgz",
+      "integrity": "sha512-tFLRAygk9NqrRPhJSnNGh7g7oaVWDwR0wKh/GM2LgmPa50Eg4UfyaCO4I8k6EqJHl1/uh2RAD6g06n5ygEnrjQ=="
+    },
     "node_modules/js-sdsl": {
       "version": "4.4.0",
       "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.4.0.tgz",
@@ -3160,6 +3600,11 @@
         "url": "https://github.com/sponsors/isaacs"
       }
     },
+    "node_modules/robust-predicates": {
+      "version": "3.0.1",
+      "resolved": "https://registry.npmjs.org/robust-predicates/-/robust-predicates-3.0.1.tgz",
+      "integrity": "sha512-ndEIpszUHiG4HtDsQLeIuMvRsDnn8c8rYStabochtUeCvfuvNptb5TUbVD68LRAILPX7p9nqQGh4xJgn3EHS/g=="
+    },
     "node_modules/run-parallel": {
       "version": "1.2.0",
       "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz",
@@ -3183,6 +3628,11 @@
         "queue-microtask": "^1.2.2"
       }
     },
+    "node_modules/rw": {
+      "version": "1.3.3",
+      "resolved": "https://registry.npmjs.org/rw/-/rw-1.3.3.tgz",
+      "integrity": "sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ=="
+    },
     "node_modules/safe-regex-test": {
       "version": "1.0.0",
       "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz",
@@ -3197,6 +3647,11 @@
         "url": "https://github.com/sponsors/ljharb"
       }
     },
+    "node_modules/safer-buffer": {
+      "version": "2.1.2",
+      "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
+      "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
+    },
     "node_modules/semver": {
       "version": "7.5.1",
       "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.1.tgz",
diff --git a/godev/package.json b/godev/package.json
index 5b90b39..db9dbd4 100644
--- a/godev/package.json
+++ b/godev/package.json
@@ -15,5 +15,9 @@
     "stylelint": "15.6.2",
     "stylelint-config-standard": "33.0.0",
     "typescript": "5.0.4"
+  },
+  "dependencies": {
+    "@observablehq/plot": "0.6.6",
+    "d3": "7.8.4"
   }
 }
diff --git a/godev/third_party/@observablehq/plot@0.6.6/LICENSE b/godev/third_party/@observablehq/plot@0.6.6/LICENSE
new file mode 100644
index 0000000..7ad9b96
--- /dev/null
+++ b/godev/third_party/@observablehq/plot@0.6.6/LICENSE
@@ -0,0 +1,13 @@
+Copyright 2020-2023 Observable, Inc.
+
+Permission to use, copy, modify, and/or distribute this software for any purpose
+with or without fee is hereby granted, provided that the above copyright notice
+and this permission notice appear in all copies.
+
+THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
+REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
+FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
+INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
+OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF
+THIS SOFTWARE.
diff --git a/godev/third_party/@observablehq/plot@0.6.6/dist/plot.umd.min.js b/godev/third_party/@observablehq/plot@0.6.6/dist/plot.umd.min.js
new file mode 100644
index 0000000..814c858
--- /dev/null
+++ b/godev/third_party/@observablehq/plot@0.6.6/dist/plot.umd.min.js
@@ -0,0 +1,2 @@
+// @observablehq/plot v0.6.6 Copyright 2020-2023 Observable, Inc.
+!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("d3@7.8.4/dist/d3.min.js")):"function"==typeof define&&define.amd?define(["exports","d3@7.8.4/dist/d3.min.js"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).Plot=t.Plot||{},t.d3)}(this,(function(t,e){"use strict";function n(t){return null!=t&&!Number.isNaN(t)}function r(t,r){return+n(r)-+n(t)||e.ascending(t,r)}function o(t,r){return+n(r)-+n(t)||e.descending(t,r)}function i(t){return null!=t&&""!=`${t}`}function a(t){return isFinite(t)?t:NaN}function l(t){return t>0&&isFinite(t)?t:NaN}function s(t){return t<0&&isFinite(t)?t:NaN}function c(t,e){if(t instanceof Date||(t=new Date(+t)),isNaN(t))return"function"==typeof e?e(t):e;const n=t.getUTCHours(),r=t.getUTCMinutes(),o=t.getUTCSeconds(),i=t.getUTCMilliseconds();return`${a=t.getUTCFullYear(),a<0?`-${u(-a,6)}`:a>9999?`+${u(a,6)}`:u(a,4)}-${u(t.getUTCMonth()+1,2)}-${u(t.getUTCDate(),2)}${n||r||o||i?`T${u(n,2)}:${u(r,2)}${o||i?`:${u(o,2)}${i?`.${u(i,3)}`:""}`:""}Z`:""}`;var a}function u(t,e){return`${t}`.padStart(e,"0")}const f=/^(?:[-+]\d{2})?\d{4}(?:-\d{2}(?:-\d{2})?)?(?:T\d{2}:\d{2}(?::\d{2}(?:\.\d{3})?)?(?:Z|[-+]\d{2}:?\d{2})?)?$/;function h(t,e){return f.test(t+="")?new Date(t):"function"==typeof e?e(t):e}const d=new Map([["second",e.timeSecond],["minute",e.timeMinute],["hour",e.timeHour],["day",e.timeDay],["week",e.timeWeek],["month",e.timeMonth],["quarter",e.timeMonth.every(3)],["half",e.timeMonth.every(6)],["year",e.timeYear],["monday",e.timeMonday],["tuesday",e.timeTuesday],["wednesday",e.timeWednesday],["thursday",e.timeThursday],["friday",e.timeFriday],["saturday",e.timeSaturday],["sunday",e.timeSunday]]),p=new Map([["second",e.utcSecond],["minute",e.utcMinute],["hour",e.utcHour],["day",e.utcDay],["week",e.utcWeek],["month",e.utcMonth],["quarter",e.utcMonth.every(3)],["half",e.utcMonth.every(6)],["year",e.utcYear],["monday",e.utcMonday],["tuesday",e.utcTuesday],["wednesday",e.utcWednesday],["thursday",e.utcThursday],["friday",e.utcFriday],["saturday",e.utcSaturday],["sunday",e.utcSunday]]);function m(t){const e=d.get(`${t}`.toLowerCase());if(!e)throw new Error(`unknown interval: ${t}`);return e}function g(t){const e=p.get(`${t}`.toLowerCase());if(!e)throw new Error(`unknown interval: ${t}`);return e}const y=Object.getPrototypeOf(Uint8Array),v=Object.prototype.toString;function x(t,e,n){const r=typeof e;return"string"===r?w(t,k(e),n):"function"===r?w(t,e,n):"number"===r||e instanceof Date||"boolean"===r?Y(t,C(e),n):b("function"==typeof e?.transform?e.transform(t):e,n)}function w(t,e,n){return Y(t,n?.prototype instanceof y?function(t){return(e,n)=>N(t(e,n))}(e):e,n)}function b(t,e){return void 0===e?F(t):t instanceof e?t:e.prototype instanceof y&&!(t instanceof y)?e.from(t,N):e.from(t)}const k=t=>e=>e[t],$={transform:J},M={transform:t=>t},L=()=>1,A=()=>!0,R=t=>null==t?t:`${t}`,z=t=>null==t?t:+t,O=t=>t?t[0]:void 0,E=t=>t?t[1]:void 0,S=t=>t?t[2]:void 0,C=t=>()=>t;function B(t){const n=+`${t}`.slice(1)/100;return(t,r)=>e.quantile(t,n,r)}function T(t){return t instanceof y?t:Y(t,N,Float64Array)}function N(t){return null==t?NaN:Number(t)}function I(t){return Y(t,P)}function P(t){return t instanceof Date&&!isNaN(t)?t:"string"==typeof t?h(t):null==t||isNaN(t=+t)?void 0:new Date(t)}function j(t,e){return void 0===t&&(t=e),null===t?[void 0,"none"]:vt(t)?[void 0,t]:[t,void 0]}function W(t,e){return void 0===t&&(t=e),null===t||"number"==typeof t?[void 0,t]:[t,void 0]}function D(t,e,n){if(null!=t)return q(t,e,n)}function q(t,e,n){const r=`${t}`.toLowerCase();if(!n.includes(r))throw new Error(`invalid ${e}: ${t}`);return r}function F(t){return null==t||t instanceof Array||t instanceof y?t:Array.from(t)}function Y(t,e,n=Array){return null==t?t:t instanceof n?t.map(e):n.from(t,e)}function _(t,e=Array){return t instanceof e?t.slice():e.from(t)}function G(t){return t?.toString===v}function X(t){return G(t)&&(void 0!==t.type||void 0!==t.domain)}function U(t){return G(t)&&"function"!=typeof t.transform}function H(t){return U(t)&&void 0===t.value&&void 0===t.channel}function V(t,e,n,r=M){return void 0===e&&void 0===n?(e=0,n=void 0===t?r:t):void 0===e?e=void 0===t?0:t:void 0===n&&(n=void 0===t?0:t),[e,n]}function Z(t,e){return void 0===t&&void 0===e?[O,E]:[t,e]}function Q({z:t,fill:e,stroke:n}={}){return void 0===t&&([t]=j(e)),void 0===t&&([t]=j(n)),t}function J(t){const e=t.length,n=new Uint32Array(e);for(let t=0;t<e;++t)n[t]=t;return n}function K(t,e){return Y(e,(e=>t[e]))}function tt(t){return null!==t&&"object"==typeof t?t.valueOf():t}function et(t,e){if(void 0!==e[t])return e[t];switch(t){case"x1":case"x2":t="x";break;case"y1":case"y2":t="y"}return e[t]}function nt(t){let e;return[{transform:()=>e,label:ot(t)},t=>e=t]}function rt(t){return null==t?[t]:nt(t)}function ot(t,e){return"string"==typeof t?t:t&&void 0!==t.label?t.label:e}function at(t,e){return{transform(n){const r=t.transform(n),o=e.transform(n);return dt(r)||dt(o)?Y(r,((t,e)=>new Date((+r[e]+ +o[e])/2))):Y(r,((t,e)=>(+r[e]+ +o[e])/2),Float64Array)},label:t.label}}function lt(t,n){if(null!=t){if("number"==typeof t){0<t&&t<1&&Number.isInteger(1/t)&&(t=-1/t);const n=Math.abs(t);return t<0?{floor:t=>Math.floor(t*n)/n,offset:t=>(t*n+1)/n,range:(t,r)=>e.range(Math.ceil(t*n),r*n).map((t=>t/n))}:{floor:t=>Math.floor(t/n)*n,offset:t=>t+n,range:(t,r)=>e.range(Math.ceil(t/n),r/n).map((t=>t*n))}}if("string"==typeof t)return("time"===n?m:g)(t);if("function"!=typeof t.floor)throw new Error("invalid interval; missing floor method");if("function"!=typeof t.offset)throw new Error("invalid interval; missing offset method");return t}}function st(t,e){if((t=lt(t,e))&&"function"!=typeof t.range)throw new Error("invalid interval: missing range method");return t}function ct(t){return void 0===t||U(t)?t:{value:t}}function ut(t){return t&&"function"==typeof t[Symbol.iterator]}function ft(t){for(const e of t)if(null!=e)return"object"!=typeof e||e instanceof Date}function ht(t){for(const e of t){if(null==e)continue;const t=typeof e;return"string"===t||"boolean"===t}}function dt(t){for(const e of t)if(null!=e)return e instanceof Date}function pt(t){for(const e of t)if(null!=e)return"string"==typeof e&&isNaN(e)&&h(e)}function mt(t){for(const e of t)if(null!=e){if("string"!=typeof e)return!1;if(e.trim())return!isNaN(e)}}function gt(t){for(const e of t)if(null!=e)return"number"==typeof e}function yt(t,e){let n;for(const r of t)if(null!=r){if(!e(r))return!1;n=!0}return n}function vt(t){return"string"==typeof t&&("none"===(t=t.toLowerCase().trim())||"currentcolor"===t||t.startsWith("url(")&&t.endsWith(")")||t.startsWith("var(")&&t.endsWith(")")||null!==e.color(t))}function xt(t){return"number"==typeof t&&(0<=t&&t<=1||isNaN(t))}function wt(t){return null==t||bt(t)}function bt(t){return/^\s*none\s*$/i.test(t)}function kt(t="middle"){return q(t,"frameAnchor",["middle","top-left","top","top-right","right","bottom-right","bottom","bottom-left","left"])}function $t(t){if(null==t)return;const n=t[0],r=t[t.length-1];return e.descending(n,r)}function Mt(t){return ut(t)?function(t){console.warn("named iterables are deprecated; please use an object instead");const e=new Set;return Object.fromEntries(Array.from(t,(t=>{const{name:n}=t;if(null==n)throw new Error("missing name");const r=`${n}`;if("__proto__"===r)throw new Error(`illegal name: ${r}`);if(e.has(r))throw new Error(`duplicate name: ${r}`);return e.add(r),[n,t]})))}(t):t}const Lt=Symbol("position"),At=Symbol("color"),Rt=Symbol("radius"),zt=Symbol("length"),Ot=Symbol("opacity"),Et=Symbol("symbol"),St=new Map([["x",Lt],["y",Lt],["fx",Lt],["fy",Lt],["r",Rt],["color",At],["opacity",Ot],["symbol",Et],["length",zt]]),Ct=Math.sqrt(3),Bt=2/Ct,Tt={draw(t,e){const n=Math.sqrt(e/Math.PI),r=n*Bt,o=r/2;t.moveTo(0,r),t.lineTo(n,o),t.lineTo(n,-o),t.lineTo(0,-r),t.lineTo(-n,-o),t.lineTo(-n,o),t.closePath()}},Nt=new Map([["asterisk",e.symbolAsterisk],["circle",e.symbolCircle],["cross",e.symbolCross],["diamond",e.symbolDiamond],["diamond2",e.symbolDiamond2],["hexagon",Tt],["plus",e.symbolPlus],["square",e.symbolSquare],["square2",e.symbolSquare2],["star",e.symbolStar],["times",e.symbolTimes],["triangle",e.symbolTriangle],["triangle2",e.symbolTriangle2],["wye",e.symbolWye]]);function It(t){return t&&"function"==typeof t.draw}function Pt(t){return!!It(t)||"string"==typeof t&&Nt.has(t.toLowerCase())}function jt(t){if(null==t||It(t))return t;const e=Nt.get(`${t}`.toLowerCase());if(e)return e;throw new Error(`invalid symbol: ${t}`)}function Wt({filter:t,sort:e,reverse:n,transform:r,initializer:o,...i}={},a){if(void 0===r&&(null!=t&&(r=_t(t)),null==e||H(e)||(r=qt(r,Ut(e))),n&&(r=qt(r,Gt))),null!=a&&null!=o)throw new Error("transforms cannot be applied after initializers");return{...i,...(null===e||H(e))&&{sort:e},transform:qt(r,a)}}function Dt({filter:t,sort:e,reverse:n,initializer:r,...o}={},i){return void 0===r&&(null!=t&&(r=_t(t)),null==e||H(e)||(r=Ft(r,Ut(e))),n&&(r=Ft(r,Gt))),{...o,...(null===e||H(e))&&{sort:e},initializer:Ft(r,i)}}function qt(t,e){return null==t?null===e?void 0:e:null==e?null===t?void 0:t:function(n,r){return({data:n,facets:r}=t.call(this,n,r)),e.call(this,F(n),r)}}function Ft(t,e){return null==t?null===e?void 0:e:null==e?null===t?void 0:t:function(n,r,o,...i){let a,l,s,c,u,f;return({data:l=n,facets:s=r,channels:a}=t.call(this,n,r,o,...i)),({data:u=l,facets:f=s,channels:c}=e.call(this,l,s,{...o,...a},...i)),{data:u,facets:f,channels:{...a,...c}}}}function Yt(t,e){return(null!=t.initializer?Dt:Wt)(t,e)}function _t(t){return(e,n)=>{const r=x(e,t);return{data:e,facets:n.map((t=>t.filter((t=>r[t]))))}}}function Gt(t,e){return{data:t,facets:e.map((t=>t.slice().reverse()))}}function Xt(t,{sort:e,...n}={}){return{...(U(t)&&void 0!==t.channel?Dt:Yt)(n,Ut(t)),sort:H(e)?e:null}}function Ut(t){return("function"==typeof t&&1!==t.length?Ht:Vt)(t)}function Ht(t){return(e,n)=>{const r=(n,r)=>t(e[n],e[r]);return{data:e,facets:n.map((t=>t.slice().sort(r)))}}}function Vt(t){let e,n;if(({channel:e,value:t,order:n=r}={...ct(t)}),"function"!=typeof n)switch(`${n}`.toLowerCase()){case"ascending":n=r;break;case"descending":n=o;break;default:throw new Error(`invalid order: ${n}`)}return(r,o,i)=>{let a;if(void 0===e)a=x(r,t);else{if(void 0===i)throw new Error("channel sort requires an initializer");if(a=i[e],!a)return{};a=a.value}const l=(t,e)=>n(a[t],a[e]);return{data:r,facets:o.map((t=>t.slice().sort(l)))}}}function Zt(t,e){return te(null,null,t,e)}function Qt(t={y:"count"},e={}){const{x:n=M}=e;if(null==n)throw new Error("missing channel: x");return te(n,null,t,e)}function Jt(t={x:"count"},e={}){const{y:n=M}=e;if(null==n)throw new Error("missing channel: y");return te(null,n,t,e)}function Kt(t={fill:"count"},e={}){let{x:n,y:r}=e;if([n,r]=Z(n,r),null==n)throw new Error("missing channel: x");if(null==r)throw new Error("missing channel: y");return te(n,r,t,e)}function te(t,e,{data:n=he,filter:r,sort:o,reverse:i,...a}={},l={}){a=ne(a,l),n=ae(n,M),o=null==o?void 0:re("sort",o,l),r=null==r?void 0:oe("filter",r,l);const[s,c]=rt(t),[u,f]=rt(e),{z:h,fill:d,stroke:p,x1:m,x2:g,y1:y,y2:v,...w}=l,[b,k]=rt(h),[$]=j(d),[L]=j(p),[A,R]=rt($),[z,O]=rt(L);return{..."z"in l&&{z:b||h},..."fill"in l&&{fill:A||d},..."stroke"in l&&{stroke:z||p},...Wt(w,((l,s)=>{const u=x(l,t),d=x(l,e),p=x(l,h),m=x(l,$),g=x(l,L),y=se(a,{z:p,fill:m,stroke:g}),v=[],w=[],b=u&&c([]),M=d&&f([]),A=p&&k([]),z=m&&R([]),E=g&&O([]);let S=0;for(const t of a)t.initialize(l);o&&o.initialize(l),r&&r.initialize(l);for(const t of s){const e=[];for(const e of a)e.scope("facet",t);o&&o.scope("facet",t),r&&r.scope("facet",t);for(const[i,s]of ie(t,y))for(const[t,c]of ie(s,d))for(const[s,f]of ie(c,u))if(!r||r.reduce(f)){e.push(S++),w.push(n.reduceIndex(f,l)),u&&b.push(s),d&&M.push(t),p&&A.push(y===p?i:p[f[0]]),m&&z.push(y===m?i:m[f[0]]),g&&E.push(y===g?i:g[f[0]]);for(const t of a)t.reduce(f);o&&o.reduce(f)}v.push(e)}return ce(v,o,i),{data:w,facets:v}})),...!ee(a,"x")&&(s?{x:s}:{x1:m,x2:g}),...!ee(a,"y")&&(u?{y:u}:{y1:y,y2:v}),...Object.fromEntries(a.map((({name:t,output:e})=>[t,e])))}}function ee(t,...e){for(const{name:n}of t)if(e.includes(n))return!0;return!1}function ne(t,e,n=re){const r=Object.entries(t);return null!=e.title&&void 0===t.title&&r.push(["title",pe]),null!=e.href&&void 0===t.href&&r.push(["href",de]),r.filter((([,t])=>void 0!==t)).map((([t,r])=>null===r?function(t){return{name:t,initialize(){},scope(){},reduce(){}}}(t):n(t,r,e)))}function re(t,e,n,r=oe){let o;G(e)&&"reduce"in e&&(o=e.scale,e=e.reduce);const i=r(t,e,n),[a,l]=nt(i.label);let s;return{name:t,output:void 0===o?a:{value:a,scale:o},initialize(t){i.initialize(t),s=l([])},scope(t,e){i.scope(t,e)},reduce(t,e){s.push(i.reduce(t,e))}}}function oe(t,e,n,r=ae){const o=et(t,n),i=r(e,o);let a,l;return{label:ot(i===ge?null:o,i.label),initialize(t){a=void 0===o?t:x(t,o),"data"===i.scope&&(l=i.reduceIndex(J(t),a))},scope(t,e){i.scope===t&&(l=i.reduceIndex(e,a))},reduce:(t,e)=>null==i.scope?i.reduceIndex(t,a,e):i.reduceIndex(t,a,l,e)}}function ie(t,n){return n?e.sort(e.group(t,(t=>n[t])),O):[[,t]]}function ae(t,n,r=le){if(null==t)return r(t);if("function"==typeof t.reduceIndex)return t;if("function"==typeof t.reduce&&G(t))return function(t){return console.warn("deprecated reduce interface; implement reduceIndex instead."),{...t,reduceIndex:t.reduce.bind(t)}}(t);if("function"==typeof t)return o=t,{reduceIndex:(t,e,n)=>o(K(e,t),n)};var o;if(/^p\d{2}$/i.test(t))return ue(B(t));switch(`${t}`.toLowerCase()){case"first":return de;case"last":return me;case"identity":return he;case"count":return ge;case"distinct":return ye;case"sum":return null==n?ge:ve;case"proportion":return xe(n,"data");case"proportion-facet":return xe(n,"facet");case"deviation":return ue(e.deviation);case"min":return ue(e.min);case"min-index":return ue(e.minIndex);case"max":return ue(e.max);case"max-index":return ue(e.maxIndex);case"mean":return fe(e.mean);case"median":return fe(e.median);case"variance":return ue(e.variance);case"mode":return ue(e.mode)}return r(t)}function le(t){throw new Error(`invalid reduce: ${t}`)}function se(t,e){for(const n in e){const r=e[n];if(void 0!==r&&!t.some((t=>t.name===n)))return r}}function ce(t,e,n){if(e){const n=e.output.transform(),o=(t,e)=>r(n[t],n[e]);t.forEach((t=>t.sort(o)))}n&&t.forEach((t=>t.reverse()))}function ue(t){return{reduceIndex:(e,n)=>t(e,(t=>n[t]))}}function fe(t){return{reduceIndex(e,n){const r=t(e,(t=>n[t]));return dt(n)?new Date(r):r}}}const he={reduceIndex:(t,e)=>K(e,t)},de={reduceIndex:(t,e)=>e[t[0]]},pe={reduceIndex(t,n){const r=e.sort(e.rollup(t,(t=>t.length),(t=>n[t])),E),o=r.slice(-5).reverse();if(o.length<r.length){const t=r.slice(0,-4);o[4]=[`… ${t.length.toLocaleString("en-US")} more`,e.sum(t,E)]}return o.map((([t,e])=>`${t} (${e.toLocaleString("en-US")})`)).join("\n")}},me={reduceIndex:(t,e)=>e[t[t.length-1]]},ge={label:"Frequency",reduceIndex:t=>t.length},ye={label:"Distinct",reduceIndex(t,n){const r=new e.InternSet;for(const e of t)r.add(n[e]);return r.size}},ve=ue(e.sum);function xe(t,n){return null==t?{scope:n,label:"Frequency",reduceIndex:(t,e,n=1)=>t.length/n}:{scope:n,reduceIndex:(t,n,r=1)=>e.sum(t,(t=>n[t]))/r}}function we(t,{scale:e,type:n,value:r,filter:o,hint:i},a){return $e(a,{scale:e,type:n,value:x(t,r),label:ot(r),filter:o,hint:i})}function be(t,e){return Object.fromEntries(Object.entries(t).map((([t,n])=>[t,we(e,n,t)])))}function ke(t,e){const n=Object.fromEntries(Object.entries(t).map((([t,{scale:n,value:r}])=>{const o=null==n?null:e[n];return[t,null==o?r:Y(r,o)]})));return n.channels=t,n}function $e(t,e){const{scale:n,value:r}=e;if(!0===n||"auto"===n)switch(t){case"fill":case"stroke":case"color":e.scale=!0!==n&&yt(r,vt)?null:"color";break;case"fillOpacity":case"strokeOpacity":e.scale=!0!==n&&yt(r,xt)?null:"opacity";break;case"symbol":!0!==n&&yt(r,Pt)?(e.scale=null,e.value=Y(r,jt)):e.scale="symbol";break;default:e.scale=St.has(t)?t:null}else if(!1===n)e.scale=null;else if(null!=n&&!St.has(n))throw new Error(`unknown scale: ${n}`);return e}function Me(t,e){for(const n in t){const r=t[n];if(r.scale===e)return r}}function Le(t,e){const n=t.original;if(n===t)return e;const r=e.value,o=e.value=[];for(let e=0;e<n.length;++e){const i=r[n[e][0]];for(const n of t[e])o[n]=i}return e}function Ae(t,e,n){const r=Re(t,e);return Y(Re(t,n),((t,e)=>Math.abs(t-r[e])),Float64Array)}function Re(t,e,n){let r=t[e];if(r||void 0===n||(r=t[n]),r)return r.value;throw new Error(`missing channel: ${e}`)}function ze([t,e],[n,o]){return r(e,o)||r(t,n)}function Oe([t,e],[n,i]){return o(e,i)||r(t,n)}let Ee=0;function Se(t){console.warn(t),++Ee}const Ce=Math.PI,Be=2*Ce,Te=.618;function Ne({projection:t,inset:n=0,insetTop:r=n,insetRight:o=n,insetBottom:i=n,insetLeft:a=n}={},l){if(null==t)return;if("function"==typeof t.stream)return t;let s,c,u="frame";if(G(t)){let e;if(({type:t,domain:c,inset:e,insetTop:r=(void 0!==e?e:r),insetRight:o=(void 0!==e?e:o),insetBottom:i=(void 0!==e?e:i),insetLeft:a=(void 0!==e?e:a),clip:u=u,...s}=t),null==t)return}"function"!=typeof t&&({type:t}=Ie(t));const{width:f,height:h,marginLeft:d,marginRight:p,marginTop:m,marginBottom:g}=l,y=f-d-p-a-o,v=h-m-g-r-i;if(t=t?.({width:y,height:v,clip:u,...s}),null==t)return;u=function(t,n,r,o,i){if(!1===t||null==t||"number"==typeof t)return t=>t;!0===t&&(t="frame");if("frame"===`${t}`.toLowerCase())return e.geoClipRectangle(n,r,o,i);throw new Error(`unknown projection clip type: ${t}`)}(u,d,m,f-p,h-g);let x,w=d+a,b=m+r;if(null!=c){const[[n,r],[o,i]]=e.geoPath(t).bounds(c),a=Math.min(y/(o-n),v/(i-r));a>0?(w-=(a*(n+o)-y)/2,b-=(a*(r+i)-v)/2,x=e.geoTransform({point(t,e){this.stream.point(t*a+w,e*a+b)}})):Se("Warning: the projection could not be fit to the specified domain; using the default scale.")}return x??=0===w&&0===b?We():e.geoTransform({point(t,e){this.stream.point(t+w,e+b)}}),{stream:e=>t.stream(x.stream(u(e)))}}function Ie(t){switch(`${t}`.toLowerCase()){case"albers-usa":return Pe(e.geoAlbersUsa,.7463,.4673);case"albers":return je(e.geoAlbers,.7463,.4673);case"azimuthal-equal-area":return Pe(e.geoAzimuthalEqualArea,4,4);case"azimuthal-equidistant":return Pe(e.geoAzimuthalEquidistant,Be,Be);case"conic-conformal":return je(e.geoConicConformal,Be,Be);case"conic-equal-area":return je(e.geoConicEqualArea,6.1702,2.9781);case"conic-equidistant":return je(e.geoConicEquidistant,7.312,3.6282);case"equal-earth":return Pe(e.geoEqualEarth,5.4133,2.6347);case"equirectangular":return Pe(e.geoEquirectangular,Be,Ce);case"gnomonic":return Pe(e.geoGnomonic,3.4641,3.4641);case"identity":return{type:We};case"reflect-y":return{type:De};case"mercator":return Pe(e.geoMercator,Be,Be);case"orthographic":return Pe(e.geoOrthographic,2,2);case"stereographic":return Pe(e.geoStereographic,2,2);case"transverse-mercator":return Pe(e.geoTransverseMercator,Be,Be);default:throw new Error(`unknown projection type: ${t}`)}}function Pe(t,e,n){return{type:({width:r,height:o,rotate:i,precision:a=.15,clip:l})=>{const s=t();return null!=a&&s.precision?.(a),null!=i&&s.rotate?.(i),"number"==typeof l&&s.clipAngle?.(l),s.scale(Math.min(r/e,o/n)),s.translate([r/2,o/2]),s},aspectRatio:n/e}}function je(t,e,n){const{type:r,aspectRatio:o}=Pe(t,e,n);return{type:t=>{const{parallels:e,domain:n,width:o,height:i}=t,a=r(t);return null!=e&&(a.parallels(e),void 0===n&&a.fitSize([o,i],{type:"Sphere"})),a},aspectRatio:o}}const We=C({stream:t=>t}),De=C(e.geoTransform({point(t,e){this.stream.point(t,-e)}}));function qe(t,e,n,r,o){const i=n[t]&&"x"===n[t].scale,a=n[e]&&"y"===n[e].scale;if(i&&a)!function(t,e,n,r){const o=n[t],i=n[e],a=o.length,l=n[t]=new Float64Array(a).fill(NaN),s=n[e]=new Float64Array(a).fill(NaN);let c;const u=r.stream({point(t,e){l[c]=t,s[c]=e}});for(c=0;c<a;++c)u.point(o[c],i[c])}(t,e,r,o.projection);else{if(i)throw new Error(`projection requires paired x and y channels; ${t} is missing ${e}`);if(a)throw new Error(`projection requires paired x and y channels; ${e} is missing ${t}`)}}function Fe(t,e,n){const{x:r,y:o}=t;let i={};return r&&(i.x=r),o&&(i.y=o),i=ke(i,e),n.projection&&qe("x","y",t,i,n),r&&(i.x=T(i.x)),o&&(i.y=T(i.y)),i}function Ye(t={},e,n){const{document:r=("undefined"!=typeof window?window.document:void 0)}=t;return{document:r,className:n,projection:Ne(t,e)}}function _e(t,{document:n}){return e.select(e.creator(t).call(n.documentElement))}const Ge=new Map([["accent",e.schemeAccent],["category10",e.schemeCategory10],["dark2",e.schemeDark2],["paired",e.schemePaired],["pastel1",e.schemePastel1],["pastel2",e.schemePastel2],["set1",e.schemeSet1],["set2",e.schemeSet2],["set3",e.schemeSet3],["tableau10",e.schemeTableau10],["brbg",Ue(e.schemeBrBG,e.interpolateBrBG)],["prgn",Ue(e.schemePRGn,e.interpolatePRGn)],["piyg",Ue(e.schemePiYG,e.interpolatePiYG)],["puor",Ue(e.schemePuOr,e.interpolatePuOr)],["rdbu",Ue(e.schemeRdBu,e.interpolateRdBu)],["rdgy",Ue(e.schemeRdGy,e.interpolateRdGy)],["rdylbu",Ue(e.schemeRdYlBu,e.interpolateRdYlBu)],["rdylgn",Ue(e.schemeRdYlGn,e.interpolateRdYlGn)],["spectral",Ue(e.schemeSpectral,e.interpolateSpectral)],["burd",He(e.schemeRdBu,e.interpolateRdBu)],["buylrd",He(e.schemeRdYlBu,e.interpolateRdYlBu)],["blues",Xe(e.schemeBlues,e.interpolateBlues)],["greens",Xe(e.schemeGreens,e.interpolateGreens)],["greys",Xe(e.schemeGreys,e.interpolateGreys)],["oranges",Xe(e.schemeOranges,e.interpolateOranges)],["purples",Xe(e.schemePurples,e.interpolatePurples)],["reds",Xe(e.schemeReds,e.interpolateReds)],["turbo",Ve(e.interpolateTurbo)],["viridis",Ve(e.interpolateViridis)],["magma",Ve(e.interpolateMagma)],["inferno",Ve(e.interpolateInferno)],["plasma",Ve(e.interpolatePlasma)],["cividis",Ve(e.interpolateCividis)],["cubehelix",Ve(e.interpolateCubehelixDefault)],["warm",Ve(e.interpolateWarm)],["cool",Ve(e.interpolateCool)],["bugn",Xe(e.schemeBuGn,e.interpolateBuGn)],["bupu",Xe(e.schemeBuPu,e.interpolateBuPu)],["gnbu",Xe(e.schemeGnBu,e.interpolateGnBu)],["orrd",Xe(e.schemeOrRd,e.interpolateOrRd)],["pubu",Xe(e.schemePuBu,e.interpolatePuBu)],["pubugn",Xe(e.schemePuBuGn,e.interpolatePuBuGn)],["purd",Xe(e.schemePuRd,e.interpolatePuRd)],["rdpu",Xe(e.schemeRdPu,e.interpolateRdPu)],["ylgn",Xe(e.schemeYlGn,e.interpolateYlGn)],["ylgnbu",Xe(e.schemeYlGnBu,e.interpolateYlGnBu)],["ylorbr",Xe(e.schemeYlOrBr,e.interpolateYlOrBr)],["ylorrd",Xe(e.schemeYlOrRd,e.interpolateYlOrRd)],["rainbow",Ze(e.interpolateRainbow)],["sinebow",Ze(e.interpolateSinebow)]]);function Xe(t,n){return({length:r})=>1===r?[t[3][1]]:2===r?[t[3][1],t[3][2]]:(r=Math.max(3,Math.floor(r)))>9?e.quantize(n,r):t[r]}function Ue(t,n){return({length:r})=>2===r?[t[3][0],t[3][2]]:(r=Math.max(3,Math.floor(r)))>11?e.quantize(n,r):t[r]}function He(t,n){return({length:r})=>2===r?[t[3][2],t[3][0]]:(r=Math.max(3,Math.floor(r)))>11?e.quantize((t=>n(1-t)),r):t[r].slice().reverse()}function Ve(t){return({length:n})=>e.quantize(t,Math.max(2,Math.floor(n)))}function Ze(t){return({length:n})=>e.quantize(t,Math.floor(n)+1).slice(0,-1)}function Qe(t){const e=`${t}`.toLowerCase();if(!Ge.has(e))throw new Error(`unknown ordinal scheme: ${e}`);return Ge.get(e)}function Je(t,e){const n=Qe(t),r="function"==typeof n?n({length:e}):n;return r.length!==e?r.slice(0,e):r}const Ke=new Map([["brbg",e.interpolateBrBG],["prgn",e.interpolatePRGn],["piyg",e.interpolatePiYG],["puor",e.interpolatePuOr],["rdbu",e.interpolateRdBu],["rdgy",e.interpolateRdGy],["rdylbu",e.interpolateRdYlBu],["rdylgn",e.interpolateRdYlGn],["spectral",e.interpolateSpectral],["burd",t=>e.interpolateRdBu(1-t)],["buylrd",t=>e.interpolateRdYlBu(1-t)],["blues",e.interpolateBlues],["greens",e.interpolateGreens],["greys",e.interpolateGreys],["purples",e.interpolatePurples],["reds",e.interpolateReds],["oranges",e.interpolateOranges],["turbo",e.interpolateTurbo],["viridis",e.interpolateViridis],["magma",e.interpolateMagma],["inferno",e.interpolateInferno],["plasma",e.interpolatePlasma],["cividis",e.interpolateCividis],["cubehelix",e.interpolateCubehelixDefault],["warm",e.interpolateWarm],["cool",e.interpolateCool],["bugn",e.interpolateBuGn],["bupu",e.interpolateBuPu],["gnbu",e.interpolateGnBu],["orrd",e.interpolateOrRd],["pubugn",e.interpolatePuBuGn],["pubu",e.interpolatePuBu],["purd",e.interpolatePuRd],["rdpu",e.interpolateRdPu],["ylgnbu",e.interpolateYlGnBu],["ylgn",e.interpolateYlGn],["ylorbr",e.interpolateYlOrBr],["ylorrd",e.interpolateYlOrRd],["rainbow",e.interpolateRainbow],["sinebow",e.interpolateSinebow]]);function tn(t){const e=`${t}`.toLowerCase();if(!Ke.has(e))throw new Error(`unknown quantitative scheme: ${e}`);return Ke.get(e)}const en=new Set(["brbg","prgn","piyg","puor","rdbu","rdgy","rdylbu","rdylgn","spectral","burd","buylrd"]);function nn(t){return null!=t&&en.has(`${t}`.toLowerCase())}const rn=t=>e=>t(1-e),on=[0,1],an=new Map([["number",e.interpolateNumber],["rgb",e.interpolateRgb],["hsl",e.interpolateHsl],["hcl",e.interpolateHcl],["lab",e.interpolateLab]]);function ln(t){const e=`${t}`.toLowerCase();if(!an.has(e))throw new Error(`unknown interpolator: ${e}`);return an.get(e)}function sn(t,n,r,{type:o,nice:i,clamp:a,zero:l,domain:s=hn(t,r),unknown:c,round:u,scheme:f,interval:h,range:d=(St.get(t)===Rt?pn(r,s):St.get(t)===zt?mn(r,s):St.get(t)===Ot?on:void 0),interpolate:p=(St.get(t)===At?null==f&&void 0!==d?e.interpolateRgb:tn(void 0!==f?f:"cyclical"===o?"rainbow":"turbo"):u?e.interpolateRound:e.interpolateNumber),reverse:m}){if(h=st(h,o),"cyclical"!==o&&"sequential"!==o||(o="linear"),m=!!m,"function"!=typeof p&&(p=ln(p)),1===p.length?(m&&(p=rn(p),m=!1),void 0===d&&2===(d=Float64Array.from(s,((t,e)=>e/(s.length-1)))).length&&(d=on),n.interpolate((d===on?C:vn)(p))):n.interpolate(p),l){const[t,n]=e.extent(s);(t>0||n<0)&&($t(s=_(s))!==Math.sign(t)?s[s.length-1]=0:s[0]=0)}return m&&(s=e.reverse(s)),n.domain(s).unknown(c),i&&(n.nice(function(t,e){return!0===t?void 0:"number"==typeof t?t:function(t,e){if((t=st(t,e))&&"function"!=typeof t.ceil)throw new Error("invalid interval: missing ceil method");return t}(t,e)}(i,o)),s=n.domain()),void 0!==d&&n.range(d),a&&n.clamp(a),{type:o,domain:s,range:d,scale:n,interpolate:p,interval:h}}function cn(t,n,{exponent:r=1,...o}){return sn(t,e.scalePow().exponent(r),n,{...o,type:"pow"})}function un(t,n,{domain:r=[0],unknown:o,scheme:i="rdylbu",interpolate:a,range:l=(void 0!==a?e.quantize(a,r.length+1):St.get(t)===At?Je(i,r.length+1):void 0),reverse:s}){const c=$t(r=F(r));if(!isNaN(c)&&!function(t,n){for(let r=1,o=t.length,i=t[0];r<o;++r){const o=e.descending(i,i=t[r]);if(0!==o&&o!==n)return!1}return!0}(r,c))throw new Error(`the ${t} scale has a non-monotonic domain`);return s&&(l=e.reverse(l)),{type:"threshold",scale:e.scaleThreshold(c<0?e.reverse(r):r,void 0===l?[]:l).unknown(o),domain:r,range:l}}function fn(t,n=a){return t.length?[e.min(t,(({value:t})=>void 0===t?t:e.min(t,n))),e.max(t,(({value:t})=>void 0===t?t:e.max(t,n)))]:[0,1]}function hn(t,e){const n=St.get(t);return(n===Rt||n===Ot||n===zt?dn:fn)(e)}function dn(t){return[0,t.length?e.max(t,(({value:t})=>void 0===t?t:e.max(t,a))):1]}function pn(t,n){const r=t.find((({radius:t})=>void 0!==t));if(void 0!==r)return[0,r.radius];const o=e.quantile(t,.5,(({value:t})=>void 0===t?NaN:e.quantile(t,.25,l))),i=n.map((t=>3*Math.sqrt(t/o))),a=30/e.max(i);return a<1?i.map((t=>t*a)):i}function mn(t,n){const r=e.median(t,(({value:t})=>void 0===t?NaN:e.median(t,Math.abs))),o=n.map((t=>12*t/r)),i=60/e.max(o);return i<1?o.map((t=>t*i)):o}function gn(t){for(const{value:e}of t)if(void 0!==e)for(let n of e){if(n>0)return fn(t,l);if(n<0)return fn(t,s)}return[1,10]}function yn(t){const e=[];for(const{value:n}of t)if(void 0!==n)for(const t of n)e.push(t);return e}function vn(t){return(e,n)=>r=>t(e+r*(n-e))}function xn(t,n,r,o,{type:i,nice:a,clamp:l,domain:s=fn(o),unknown:c,pivot:u=0,scheme:f,range:h,symmetric:d=!0,interpolate:p=(St.get(t)===At?null==f&&void 0!==h?e.interpolateRgb:tn(void 0!==f?f:"rdbu"):e.interpolateNumber),reverse:m}){u=+u;let[g,y]=s;if(e.descending(g,y)<0&&([g,y]=[y,g],m=!m),g=Math.min(g,u),y=Math.max(y,u),"function"!=typeof p&&(p=ln(p)),void 0!==h&&(p=1===p.length?vn(p)(...h):e.piecewise(p,h)),m&&(p=rn(p)),d){const t=r.apply(u),e=t-r.apply(g),n=r.apply(y)-t;e<n?g=r.invert(t-n):e>n&&(y=r.invert(t+e))}return n.domain([g,u,y]).unknown(c).interpolator(p),l&&n.clamp(l),a&&n.nice(a),{type:i,domain:[g,y],pivot:u,interpolate:p,scale:n}}function wn(t,n,{exponent:r=1,...o}){return xn(t,e.scaleDivergingPow().exponent(r=+r),function(t){return.5===t?Mn:{apply:e=>Math.sign(e)*Math.pow(Math.abs(e),t),invert:e=>Math.sign(e)*Math.pow(Math.abs(e),1/t)}}(r),n,{...o,type:"diverging-pow"})}function bn(t,n,{constant:r=1,...o}){return xn(t,e.scaleDivergingSymlog().constant(r=+r),function(t){return{apply:e=>Math.sign(e)*Math.log1p(Math.abs(e/t)),invert:e=>Math.sign(e)*Math.expm1(Math.abs(e))*t}}(r),n,o)}const kn={apply:t=>t,invert:t=>t},$n={apply:Math.log,invert:Math.exp},Mn={apply:t=>Math.sign(t)*Math.sqrt(Math.abs(t)),invert:t=>Math.sign(t)*(t*t)};function Ln(t,e,n,r){return sn(t,e,n,r)}const An=Symbol("ordinal");function Rn(t,n,r,{type:o,interval:i,domain:a,range:l,reverse:s,hint:c}){return i=st(i,o),void 0===a&&(a=En(r,i,t)),"categorical"!==o&&o!==An||(o="ordinal"),s&&(a=e.reverse(a)),n.domain(a),void 0!==l&&("function"==typeof l&&(l=l(a)),n.range(l)),{type:o,domain:a,range:l,scale:n,hint:c,interval:i}}function zn(t,n,{type:r,interval:o,domain:i,range:a,scheme:l,unknown:s,...c}){let u;if(o=st(o,r),void 0===i&&(i=En(n,o,t)),St.get(t)===Et)u=function(t){return{fill:Sn(t,"fill"),stroke:Sn(t,"stroke")}}(n),a=void 0===a?function(t){return wt(t.fill)?e.symbolsStroke:e.symbolsFill}(u):Y(a,jt);else if(St.get(t)===At&&(void 0!==a||"ordinal"!==r&&r!==An||(a=function(t,e="greys"){const n=new Set,[r,o]=Je(e,2);for(const e of t)if(null!=e)if(!0===e)n.add(o);else{if(!1!==e)return;n.add(r)}return[...n]}(i,l),void 0!==a&&(l=void 0)),void 0===l&&void 0===a&&(l="ordinal"===r?"turbo":"tableau10"),void 0!==l))if(void 0!==a){const t=tn(l),n=a[0],r=a[1]-a[0];a=({length:o})=>e.quantize((e=>t(n+r*e)),o)}else a=Qe(l);if(s===e.scaleImplicit)throw new Error(`implicit unknown on ${t} scale is not supported`);return Rn(t,e.scaleOrdinal().unknown(s),n,{...c,type:r,domain:i,range:a,hint:u})}function On(t,e,n,r){let{round:o}=n;return void 0!==o&&t.round(o=!!o),(t=Rn(r,t,e,n)).round=o,t}function En(t,n,o){const i=new e.InternSet;for(const{value:e,domain:n}of t){if(void 0!==n)return n();if(void 0!==e)for(const t of e)i.add(t)}if(void 0!==n){const[t,r]=e.extent(i).map(n.floor,n);return n.range(t,n.offset(r))}if(i.size>1e4&&St.get(o)===Lt)throw new Error(`implicit ordinal domain of ${o} scale has more than 10,000 values`);return e.sort(i,r)}function Sn(t,e){let n;for(const{hint:r}of t){const t=r?.[e];if(void 0!==t)if(void 0===n)n=t;else if(n!==t)return}return n}function Cn(t,{label:e,inset:n=0,insetTop:r=n,insetRight:o=n,insetBottom:i=n,insetLeft:a=n,round:l,nice:s,clamp:c,zero:u,align:f,padding:h,projection:d,facet:{label:p=e}={},...m}={}){const g={};for(const[n,y]of t){const t=m[n],v=Fn(n,y,{round:St.get(n)===Lt?l:void 0,nice:s,clamp:c,zero:u,align:f,padding:h,projection:d,...t});if(v){let{label:l=("fx"===n||"fy"===n?p:e),percent:s,transform:c,inset:u,insetTop:f=(void 0!==u?u:"y"===n?r:0),insetRight:h=(void 0!==u?u:"x"===n?o:0),insetBottom:d=(void 0!==u?u:"y"===n?i:0),insetLeft:m=(void 0!==u?u:"x"===n?a:0)}=t||{};if(null==c)c=void 0;else if("function"!=typeof c)throw new Error("invalid scale transform; not a function");v.percent=!!s,v.label=void 0===l?Tn(y,v):l,v.transform=c,"x"===n||"fx"===n?(v.insetLeft=+m,v.insetRight=+h):"y"!==n&&"fy"!==n||(v.insetTop=+f,v.insetBottom=+d),g[n]=v}}return g}function Bn(t){return Object.fromEntries(Object.entries(t).filter((([,{scale:t}])=>t)).map((([t,{scale:e,type:n,interval:r,label:o}])=>(e.type=n,null!=r&&(e.interval=r),null!=o&&(e.label=o),[t,e]))))}function Tn(t=[],e){let n;for(const{label:e}of t)if(void 0!==e)if(void 0===n)n=e;else if(n!==e)return;if(!(void 0===n||Xn(e)&&/^(date|time|year)$/i.test(n)))return!Un(e)&&e.percent&&(n=`${n} (%)`),{inferred:!0,toString:()=>n}}function Nn(t){const{marginTop:e,marginRight:n,marginBottom:r,marginLeft:o,width:i,height:a,facet:{marginTop:l,marginRight:s,marginBottom:c,marginLeft:u}}=t;return{marginTop:Math.max(e,l),marginRight:Math.max(n,s),marginBottom:Math.max(r,c),marginLeft:Math.max(o,u),width:i,height:a}}function In({fx:t,fy:e},n){const{marginTop:r,marginRight:o,marginBottom:i,marginLeft:a,width:l,height:s}=Nn(n);return{marginTop:r,marginRight:o,marginBottom:i,marginLeft:a,width:t?t.scale.bandwidth()+a+o:l,height:e?e.scale.bandwidth()+r+i:s}}function Pn(t,e){if(void 0===t.range){const{insetLeft:n,insetRight:r}=t,{width:o,marginLeft:i=0,marginRight:a=0}=e,l=i+n,s=o-a-r;t.range=[l,Math.max(l,s)],Un(t)||(t.range=Dn(t)),t.scale.range(t.range)}Wn(t)}function jn(t,e){if(void 0===t.range){const{insetTop:n,insetBottom:r}=t,{height:o,marginTop:i=0,marginBottom:a=0}=e,l=i+n,s=o-a-r;t.range=[Math.max(l,s),l],Un(t)?t.range.reverse():t.range=Dn(t),t.scale.range(t.range)}Wn(t)}function Wn(t){void 0===t.round&&function({type:t}){return"point"===t||"band"===t}(t)&&function({scale:t}){const e=t.domain().length,[n,r]=t.range(),o=t.paddingInner?t.paddingInner():1,i=t.paddingOuter?t.paddingOuter():t.padding(),a=e-o,l=Math.abs(r-n)/Math.max(1,a+2*i);return(l-Math.floor(l))*a}(t)<=30&&t.scale.round(!0)}function Dn(t){const e=t.scale.domain().length+Hn(t);if(!(e>2))return t.range;const[n,r]=t.range;return Array.from({length:e},((t,o)=>n+o/(e-1)*(r-n)))}function qn(t,e,n){return Fn(t,void 0===n?void 0:[{hint:n}],{...e})}function Fn(t,n=[],r={}){const o=function(t,e,{type:n,domain:r,range:o,scheme:i,pivot:a,projection:l}){if("fx"===t||"fy"===t)return"band";"x"!==t&&"y"!==t||null==l||(n=_n);for(const{type:t}of e)if(void 0!==t)if(void 0===n)n=t;else if(n!==t)throw new Error(`scale incompatible with channel: ${n} !== ${t}`);if(n===_n)return;if(void 0!==n)return n;if(void 0===r&&!e.some((({value:t})=>void 0!==t)))return;const s=St.get(t);if(s===Rt)return"sqrt";if(s===Ot||s===zt)return"linear";if(s===Et)return"ordinal";if((r||o||[]).length>2)return Gn(s);if(void 0!==r)return ht(r)?Gn(s):dt(r)?"utc":s!==At||null==a&&!nn(i)?"linear":"diverging";const c=e.map((({value:t})=>t)).filter((t=>void 0!==t));return c.some(ht)?Gn(s):c.some(dt)?"utc":s!==At||null==a&&!nn(i)?"linear":"diverging"}(t,n,r);if(void 0===r.type&&void 0===r.domain&&void 0===r.range&&null==r.interval&&"fx"!==t&&"fy"!==t&&Un({type:o})){const e=n.map((({value:t})=>t)).filter((t=>void 0!==t));e.some(dt)?Se(`Warning: some data associated with the ${t} scale are dates. Dates are typically associated with a "utc" or "time" scale rather than a "${Yn(o)}" scale. If you are using a bar mark, you probably want a rect mark with the interval option instead; if you are using a group transform, you probably want a bin transform instead. If you want to treat this data as ordinal, you can specify the interval of the ${t} scale (e.g., d3.utcDay), or you can suppress this warning by setting the type of the ${t} scale to "${Yn(o)}".`):e.some(pt)?Se(`Warning: some data associated with the ${t} scale are strings that appear to be dates (e.g., YYYY-MM-DD). If these strings represent dates, you should parse them to Date objects. Dates are typically associated with a "utc" or "time" scale rather than a "${Yn(o)}" scale. If you are using a bar mark, you probably want a rect mark with the interval option instead; if you are using a group transform, you probably want a bin transform instead. If you want to treat this data as ordinal, you can suppress this warning by setting the type of the ${t} scale to "${Yn(o)}".`):e.some(mt)&&Se(`Warning: some data associated with the ${t} scale are strings that appear to be numbers. If these strings represent numbers, you should parse or coerce them to numbers. Numbers are typically associated with a "linear" scale rather than a "${Yn(o)}" scale. If you want to treat this data as ordinal, you can specify the interval of the ${t} scale (e.g., 1 for integers), or you can suppress this warning by setting the type of the ${t} scale to "${Yn(o)}".`)}switch(r.type=o,o){case"diverging":case"diverging-sqrt":case"diverging-pow":case"diverging-log":case"diverging-symlog":case"cyclical":case"sequential":case"linear":case"sqrt":case"threshold":case"quantile":case"pow":case"log":case"symlog":r=Zn(n,r,T);break;case"identity":switch(St.get(t)){case Lt:r=Zn(n,r,T);break;case Et:r=Zn(n,r,Qn)}break;case"utc":case"time":r=Zn(n,r,I)}switch(o){case"diverging":return function(t,n,r){return xn(t,e.scaleDiverging(),kn,n,r)}(t,n,r);case"diverging-sqrt":return function(t,e,n){return wn(t,e,{...n,exponent:.5})}(t,n,r);case"diverging-pow":return wn(t,n,r);case"diverging-log":return function(t,n,{base:r=10,pivot:o=1,domain:i=fn(n,o<0?s:l),...a}){return xn(t,e.scaleDivergingLog().base(r=+r),$n,n,{domain:i,pivot:o,...a})}(t,n,r);case"diverging-symlog":return bn(t,n,r);case"categorical":case"ordinal":case An:return zn(t,n,r);case"cyclical":case"sequential":case"linear":return function(t,n,r){return sn(t,e.scaleLinear(),n,r)}(t,n,r);case"sqrt":return function(t,e,n){return cn(t,e,{...n,exponent:.5})}(t,n,r);case"threshold":return un(t,0,r);case"quantile":return function(t,n,{range:r,quantiles:o=(void 0===r?5:(r=[...r]).length),n:i=o,scheme:a="rdylbu",domain:l=yn(n),unknown:s,interpolate:c,reverse:u}){return void 0===r&&(r=void 0!==c?e.quantize(c,i):St.get(t)===At?Je(a,i):void 0),l.length>0&&(l=e.scaleQuantile(l,void 0===r?{length:i}:r).quantiles()),un(t,0,{domain:l,range:r,reverse:u,unknown:s})}(t,n,r);case"quantize":return function(t,n,{range:r,n:o=(void 0===r?5:(r=[...r]).length),scheme:i="rdylbu",domain:a=hn(t,n),unknown:l,interpolate:s,reverse:c}){const[u,f]=e.extent(a);let h;return void 0===r?(h=e.ticks(u,f,o),h[0]<=u&&h.splice(0,1),h[h.length-1]>=f&&h.pop(),o=h.length+1,r=void 0!==s?e.quantize(s,o):St.get(t)===At?Je(i,o):void 0):(h=e.quantize(e.interpolateNumber(u,f),o+1).slice(1,-1),u instanceof Date&&(h=h.map((t=>new Date(t))))),$t(F(a))<0&&h.reverse(),un(t,0,{domain:h,range:r,reverse:c,unknown:l})}(t,n,r);case"pow":return cn(t,n,r);case"log":return function(t,n,{base:r=10,domain:o=gn(n),...i}){return sn(t,e.scaleLog().base(r),n,{...i,domain:o})}(t,n,r);case"symlog":return function(t,n,{constant:r=1,...o}){return sn(t,e.scaleSymlog().constant(r),n,o)}(t,n,r);case"utc":return function(t,n,r){return Ln(t,e.scaleUtc(),n,r)}(t,n,r);case"time":return function(t,n,r){return Ln(t,e.scaleTime(),n,r)}(t,n,r);case"point":return function(t,n,{align:r=.5,padding:o=.5,...i}){return On(e.scalePoint().align(r).padding(o),n,i,t)}(t,n,r);case"band":return function(t,n,{align:r=.5,padding:o=.1,paddingInner:i=o,paddingOuter:a=("fx"===t||"fy"===t?0:o),...l}){return On(e.scaleBand().align(r).paddingInner(i).paddingOuter(a),n,l,t)}(t,n,r);case"identity":return St.get(t)===Lt?{type:"identity",scale:e.scaleIdentity()}:{type:"identity"};case void 0:return;default:throw new Error(`unknown scale type: ${o}`)}}function Yn(t){return"symbol"==typeof t?t.description:t}const _n={toString:()=>"projection"};function Gn(t){switch(t){case Lt:return"point";case At:return An;default:return"ordinal"}}function Xn({type:t}){return"time"===t||"utc"===t}function Un({type:t}){return"ordinal"===t||"point"===t||"band"===t||t===An}function Hn({type:t}){return"threshold"===t}function Vn(t){if(void 0===t)return!0;const e=t.domain(),n=t(e[0]);for(let r=1,o=e.length;r<o;++r)if(t(e[r])-n)return!1;return!0}function Zn(t,{domain:e,...n},r){for(const e of t)void 0!==e.value&&(e.value=r(e.value));return{domain:void 0===e?e:r(e),...n}}function Qn(t){return Y(t,jt)}function Jn({scale:t,type:e,domain:n,range:r,interpolate:o,interval:i,transform:a,percent:l,pivot:s}){if("identity"===e)return{type:"identity",apply:t=>t,invert:t=>t};const c=t.unknown?t.unknown():void 0;return{type:e,domain:_(n),...void 0!==r&&{range:_(r)},...void 0!==a&&{transform:a},...l&&{percent:l},...void 0!==c&&{unknown:c},...void 0!==i&&{interval:i},...void 0!==o&&{interpolate:o},...t.clamp&&{clamp:t.clamp()},...void 0!==s&&{pivot:s,symmetric:!1},...t.base&&{base:t.base()},...t.exponent&&{exponent:t.exponent()},...t.constant&&{constant:t.constant()},...t.align&&{align:t.align(),round:t.round()},...t.padding&&(t.paddingInner?{paddingInner:t.paddingInner(),paddingOuter:t.paddingOuter()}:{padding:t.padding()}),...t.bandwidth&&{bandwidth:t.bandwidth(),step:t.step()},apply:e=>t(e),...t.invert&&{invert:e=>t.invert(e)}}}function Kn(t){let e,n;return(...r)=>((n?.length!==r.length||n.some(((t,e)=>t!==r[e])))&&(n=r,e=t(...r)),e)}const tr=Kn((t=>new Intl.NumberFormat(t))),er=Kn(((t,e)=>new Intl.DateTimeFormat(t,{timeZone:"UTC",...e&&{month:e}}))),nr=Kn(((t,e)=>new Intl.DateTimeFormat(t,{timeZone:"UTC",...e&&{weekday:e}})));function rr(t){return c(t,"Invalid Date")}const or=function(t="en-US"){const e=function(t="en-US"){const e=tr(t);return t=>null==t||isNaN(t)?void 0:e.format(t)}(t);return t=>(t instanceof Date?rr:"number"==typeof t?e:R)(t)}(),ir=("undefined"!=typeof window?window.devicePixelRatio>1:"undefined"==typeof it)?0:.5;let ar=0;function lr(){return"plot-clip-"+ ++ar}function sr(t,{title:e,href:n,ariaLabel:r,ariaDescription:o,ariaHidden:i,target:a,fill:l,fillOpacity:s,stroke:c,strokeWidth:u,strokeOpacity:f,strokeLinejoin:h,strokeLinecap:d,strokeMiterlimit:p,strokeDasharray:m,strokeDashoffset:g,opacity:y,mixBlendMode:v,paintOrder:x,pointerEvents:w,shapeRendering:b},{ariaLabel:k,fill:$="currentColor",fillOpacity:M,stroke:L="none",strokeOpacity:A,strokeWidth:z,strokeLinecap:O,strokeLinejoin:E,strokeMiterlimit:S,paintOrder:C}){null===$&&(l=null,s=null),null===L&&(c=null,f=null),wt($)?wt(L)||wt(l)||(L="none"):wt(L)&&!wt(c)&&($="none");const[B,T]=j(l,$),[N,I]=W(s,M),[P,D]=j(c,L),[q,F]=W(f,A),[Y,_]=W(y);bt(D)||(void 0===u&&(u=z),void 0===d&&(d=O),void 0===h&&(h=E),void 0!==p||/^\s*round\s*$/i.test(h)||(p=S),bt(T)||void 0!==x||(x=C));const[G,X]=W(u);return null!==$&&(t.fill=wr(T,"currentColor"),t.fillOpacity=br(I,1)),null!==L&&(t.stroke=wr(D,"none"),t.strokeWidth=br(X,1),t.strokeOpacity=br(F,1),t.strokeLinejoin=wr(h,"miter"),t.strokeLinecap=wr(d,"butt"),t.strokeMiterlimit=br(p,4),t.strokeDasharray=wr(m,"none"),t.strokeDashoffset=wr(g,"0")),t.target=R(a),t.ariaLabel=R(k),t.ariaDescription=R(o),t.ariaHidden=R(i),t.opacity=br(_,1),t.mixBlendMode=wr(v,"normal"),t.paintOrder=wr(x,"normal"),t.pointerEvents=wr(w,"auto"),t.shapeRendering=wr(b,"auto"),{title:{value:e,optional:!0},href:{value:n,optional:!0},ariaLabel:{value:r,optional:!0},fill:{value:B,scale:"auto",optional:!0},fillOpacity:{value:N,scale:"auto",optional:!0},stroke:{value:P,scale:"auto",optional:!0},strokeOpacity:{value:q,scale:"auto",optional:!0},strokeWidth:{value:G,optional:!0},opacity:{value:Y,scale:"auto",optional:!0}}}function cr(t,e){e&&t.text((t=>or(e[t])))}function ur(t,e){e&&t.text((([t])=>or(e[t])))}function fr(t,{target:e},{ariaLabel:n,title:r,fill:o,fillOpacity:a,stroke:l,strokeOpacity:s,strokeWidth:c,opacity:u,href:f}){n&&vr(t,"aria-label",(t=>n[t])),o&&vr(t,"fill",(t=>o[t])),a&&vr(t,"fill-opacity",(t=>a[t])),l&&vr(t,"stroke",(t=>l[t])),s&&vr(t,"stroke-opacity",(t=>s[t])),c&&vr(t,"stroke-width",(t=>c[t])),u&&vr(t,"opacity",(t=>u[t])),f&&yr(t,(t=>f[t]),e),function(t,e){e&&t.filter((t=>i(e[t]))).append("title").call(cr,e)}(t,r)}function hr(t,{target:e},{ariaLabel:n,title:r,fill:o,fillOpacity:a,stroke:l,strokeOpacity:s,strokeWidth:c,opacity:u,href:f}){n&&vr(t,"aria-label",(([t])=>n[t])),o&&vr(t,"fill",(([t])=>o[t])),a&&vr(t,"fill-opacity",(([t])=>a[t])),l&&vr(t,"stroke",(([t])=>l[t])),s&&vr(t,"stroke-opacity",(([t])=>s[t])),c&&vr(t,"stroke-width",(([t])=>c[t])),u&&vr(t,"opacity",(([t])=>u[t])),f&&yr(t,(([t])=>f[t]),e),function(t,e){e&&t.filter((([t])=>i(e[t]))).append("title").call(ur,e)}(t,r)}function dr(t,n,r){const o=e.group(t,(t=>n[t]));return void 0===r&&o.size>t.length>>1&&Se("Warning: the implicit z channel has high cardinality. This may occur when the fill or stroke channel is associated with quantitative data rather than ordinal or categorical data. You can suppress this warning by setting the z option explicitly; if this data represents a single series, set z to null."),o.values()}function*pr(t,e,{z:r},o){const{z:i}=o,a=function({ariaLabel:t,title:e,fill:n,fillOpacity:r,stroke:o,strokeOpacity:i,strokeWidth:a,opacity:l,href:s}){return[t,e,n,r,o,i,a,l,s].filter((t=>void 0!==t))}(o),l=[...e,...a];for(const e of i?dr(t,i,r):[t]){let t,r;t:for(const o of e){for(const t of l)if(!n(t[o])){r&&r.push(-1);continue t}if(void 0!==t){r.push(o);for(let e=0;e<a.length;++e){if(tt(a[e][o])!==t[e]){yield r,t=a.map((t=>tt(t[o]))),r=[o];continue t}}}else r&&(yield r),t=a.map((t=>tt(t[o]))),r=[o]}r&&(yield r)}}function mr(t,n,r,o){!function(t,n,r,o){let i;switch(n.clip){case"frame":{const{width:e,height:n,marginLeft:a,marginRight:l,marginTop:s,marginBottom:c}=r,u=lr();i=`url(#${u})`,t=_e("svg:g",o).call((t=>t.append("svg:clipPath").attr("id",u).append("rect").attr("x",a).attr("y",s).attr("width",e-l-a).attr("height",n-s-c))).each((function(){this.appendChild(t.node()),t.node=()=>this}));break}case"sphere":{const{projection:n}=o;if(!n)throw new Error('the "sphere" clip option requires a projection');const r=lr();i=`url(#${r})`,t.append("clipPath").attr("id",r).append("path").attr("d",e.geoPath(n)({type:"Sphere"}));break}}vr(t,"aria-label",n.ariaLabel),vr(t,"aria-description",n.ariaDescription),vr(t,"aria-hidden",n.ariaHidden),vr(t,"clip-path",i)}(t,n,r,o),vr(t,"fill",n.fill),vr(t,"fill-opacity",n.fillOpacity),vr(t,"stroke",n.stroke),vr(t,"stroke-width",n.strokeWidth),vr(t,"stroke-opacity",n.strokeOpacity),vr(t,"stroke-linejoin",n.strokeLinejoin),vr(t,"stroke-linecap",n.strokeLinecap),vr(t,"stroke-miterlimit",n.strokeMiterlimit),vr(t,"stroke-dasharray",n.strokeDasharray),vr(t,"stroke-dashoffset",n.strokeDashoffset),vr(t,"shape-rendering",n.shapeRendering),vr(t,"paint-order",n.paintOrder),vr(t,"pointer-events",n.pointerEvents)}function gr(t,e){!function(t,e,n){null!=n&&t.style(e,n)}(t,"mix-blend-mode",e.mixBlendMode),vr(t,"opacity",e.opacity)}function yr(t,n,r){t.each((function(t){const o=n(t);if(null!=o){const t=this.ownerDocument.createElementNS(e.namespaces.svg,"a");t.setAttribute("fill","inherit"),t.setAttributeNS(e.namespaces.xlink,"href",o),null!=r&&t.setAttribute("target",r),this.parentNode.insertBefore(t,this).appendChild(this)}}))}function vr(t,e,n){null!=n&&t.attr(e,n)}function xr(t,e,{x:n,y:r},o=ir,i=ir){o+=e.dx,i+=e.dy,n?.bandwidth&&(o+=n.bandwidth()/2),r?.bandwidth&&(i+=r.bandwidth()/2),(o||i)&&t.attr("transform",`translate(${o},${i})`)}function wr(t,e){if((t=R(t))!==e)return t}function br(t,e){if((t=z(t))!==e)return t}const kr=/^-?([_a-z]|[\240-\377]|\\[0-9a-f]{1,6}(\r\n|[ \t\r\n\f])?|\\[^\r\n\f0-9a-f])([_a-z0-9-]|[\240-\377]|\\[0-9a-f]{1,6}(\r\n|[ \t\r\n\f])?|\\[^\r\n\f0-9a-f])*$/i;function $r(t){if(void 0===t)return"plot-d6a7b5";if(t=`${t}`,!kr.test(t))throw new Error(`invalid class name: ${t}`);return t}function Mr(t,e){if("string"==typeof e)t.property("style",e);else if(null!=e)for(const n of t)Object.assign(n.style,e)}function Lr({frameAnchor:t},{width:e,height:n,marginTop:r,marginRight:o,marginBottom:i,marginLeft:a}){return[/left$/.test(t)?a:/right$/.test(t)?e-o:(a+e-o)/2,/^top/.test(t)?r:/^bottom/.test(t)?n-i:(r+n-i)/2]}function Ar({x:t,y:e,fy:n,fx:r},o,{projection:i,aspectRatio:a},{width:l,marginTopDefault:s,marginRightDefault:c,marginBottomDefault:u,marginLeftDefault:f}){const h=n?n.scale.domain().length:1,d=function(t,e){if("function"==typeof t?.stream)return Te;if(G(t)&&(t=t.type),null==t)return function(t){for(const e of t)if(e.channels.geometry)return!0;return!1}(e)?Te:void 0;if("function"!=typeof t){const{aspectRatio:e}=Ie(t);if(e)return e}return Te}(i,o);if(d){const t=(1.1*h-.1)/(1.1*(r?r.scale.domain().length:1)-.1)*d,e=Math.max(.1,Math.min(10,t));return Math.round((l-f-c)*e+s+u)}const p=e?Un(e)?e.scale.domain().length:Math.max(7,17/h):1;if(null!=a){if(a=+a,!(isFinite(a)&&a>0))throw new Error(`invalid aspectRatio: ${a}`);const o=Rr("y",e)/(Rr("x",t)*a),i=r?r.scale.bandwidth():1,h=n?n.scale.bandwidth():1;return(o*(i*(l-f-c)-t.insetLeft-t.insetRight)+e.insetTop+e.insetBottom)/h+s+u}return!(!e&&!n)*Math.max(1,Math.min(60,p*h))*20+30*!!r+60}function Rr(t,n){if(!n)throw new Error(`aspectRatio requires ${t} scale`);const{type:r,domain:o}=n;let i;switch(r){case"linear":case"utc":case"time":i=Number;break;case"pow":{const t=n.scale.exponent();i=e=>Math.pow(e,t);break}case"log":i=Math.log;break;case"point":case"band":return o.length;default:throw new Error(`unsupported ${t} scale for aspectRatio: ${r}`)}const[a,l]=e.extent(o);return Math.abs(i(l)-i(a))}function zr(t,{fx:n,fy:r}){const o=J(t),i=n?.value,a=r?.value;return n&&r?e.rollup(o,(t=>(t.fx=i[t[0]],t.fy=a[t[0]],t)),(t=>i[t]),(t=>a[t])):n?e.rollup(o,(t=>(t.fx=i[t[0]],t)),(t=>i[t])):e.rollup(o,(t=>(t.fy=a[t[0]],t)),(t=>a[t]))}function Or(t){const n=[],r=new Uint32Array(e.sum(t,(t=>t.length)));for(const e of t){let o=0;for(const n of t)e!==n&&(r.set(n,o),o+=n.length);n.push(r.slice(0,o))}return n}const Er=new Map([["top",Sr],["right",Tr],["bottom",Cr],["left",Br],["top-left",Nr(Sr,Br)],["top-right",Nr(Sr,Tr)],["bottom-left",Nr(Cr,Br)],["bottom-right",Nr(Cr,Tr)],["top-empty",function(t,{y:e},{x:n,y:r,empty:o}){if(o)return!1;const i=e?.indexOf(r);if(i>0){const r=e[i-1];return t.find((t=>t.x===n&&t.y===r))?.empty}}],["right-empty",function(t,{x:e},{x:n,y:r,empty:o}){if(o)return!1;const i=e?.indexOf(n);if(i<e?.length-1){const n=e[i+1];return t.find((t=>t.x===n&&t.y===r))?.empty}}],["bottom-empty",function(t,{y:e},{x:n,y:r,empty:o}){if(o)return!1;const i=e?.indexOf(r);if(i<e?.length-1){const r=e[i+1];return t.find((t=>t.x===n&&t.y===r))?.empty}}],["left-empty",function(t,{x:e},{x:n,y:r,empty:o}){if(o)return!1;const i=e?.indexOf(n);if(i>0){const n=e[i-1];return t.find((t=>t.x===n&&t.y===r))?.empty}}],["empty",function(t,e,{empty:n}){return n}]]);function Sr(t,{y:e},{y:n}){return!e||0===e.indexOf(n)}function Cr(t,{y:e},{y:n}){return!e||e.indexOf(n)===e.length-1}function Br(t,{x:e},{x:n}){return!e||0===e.indexOf(n)}function Tr(t,{x:e},{x:n}){return!e||e.indexOf(n)===e.length-1}function Nr(t,e){return function(){return t.apply(null,arguments)&&e.apply(null,arguments)}}function Ir(t,{channels:{fx:e,fy:n},groups:r}){return e&&n?t.map((({x:t,y:e})=>r.get(t)?.get(e)??[])):e?t.map((({x:t})=>r.get(t)??[])):t.map((({y:t})=>r.get(t)??[]))}function Pr(t){return Un(t)&&void 0===t.interval?void 0:"tabular-nums"}function jr(t,e){if(null==e)return e;const n=t(e);if(!n)throw new Error(`scale not found: ${e}`);return n}function Wr(t,n={},r){let{columns:o,tickFormat:i,fontVariant:a=Pr(t),swatchSize:l=15,swatchWidth:s=l,swatchHeight:c=l,marginLeft:u=0,className:f,style:h,width:d}=n;const p=Ye(n);f=$r(f),i=function(t,n){return void 0===t?dt(n)?rr:R:"function"==typeof t?t:("string"==typeof t?dt(n)?e.utcFormat:e.format:C)(t)}(i,t.domain);const m=_e("div",p).attr("class",`${f}-swatches ${f}-swatches-${null!=o?"columns":"wrap"}`);let g;return null!=o?(g=`.${f}-swatches-columns .${f}-swatch {\n  display: flex;\n  align-items: center;\n  break-inside: avoid;\n  padding-bottom: 1px;\n}\n.${f}-swatches-columns .${f}-swatch::before {\n  flex-shrink: 0;\n}\n.${f}-swatches-columns .${f}-swatch-label {\n  white-space: nowrap;\n  overflow: hidden;\n  text-overflow: ellipsis;\n}`,m.style("columns",o).selectAll().data(t.domain).enter().append("div").attr("class",`${f}-swatch`).call(r,t,s,c).call((t=>t.append("div").attr("class",`${f}-swatch-label`).attr("title",i).text(i)))):(g=`.${f}-swatches-wrap {\n  display: flex;\n  align-items: center;\n  min-height: 33px;\n  flex-wrap: wrap;\n}\n.${f}-swatches-wrap .${f}-swatch {\n  display: inline-flex;\n  align-items: center;\n  margin-right: 1em;\n}`,m.selectAll().data(t.domain).enter().append("span").attr("class",`${f}-swatch`).call(r,t,s,c).append((function(){return this.ownerDocument.createTextNode(i.apply(this,arguments))}))),m.call((t=>t.insert("style","*").text(`.${f}-swatches {\n  font-family: system-ui, sans-serif;\n  font-size: 10px;\n  margin-bottom: 0.5em;\n}\n.${f}-swatch > svg {\n  margin-right: 0.5em;\n  overflow: visible;\n}\n${g}`))).style("margin-left",u?+u+"px":null).style("width",void 0===d?null:+d+"px").style("font-variant",wr(a,"normal")).call(Mr,h).node()}const Dr=new Map([["symbol",function(t,{fill:n=(void 0!==t.hint?.fill?t.hint.fill:"none"),fillOpacity:r=1,stroke:o=(void 0!==t.hint?.stroke?t.hint.stroke:wt(n)?"currentColor":"none"),strokeOpacity:i=1,strokeWidth:a=1.5,r:l=4.5,...s}={},c){const[u,f]=j(n),[h,d]=j(o),p=jr(c,u),m=jr(c,h),g=l*l*Math.PI;return r=W(r)[1],i=W(i)[1],a=W(a)[1],Wr(t,s,((n,o,l,s)=>n.append("svg").attr("viewBox","-8 -8 16 16").attr("width",l).attr("height",s).attr("fill","color"===u?t=>p.scale(t):f).attr("fill-opacity",r).attr("stroke","color"===h?t=>m.scale(t):d).attr("stroke-opacity",i).attr("stroke-width",a).append("path").attr("d",(n=>{const r=e.pathRound();return t.scale(n).draw(r,g),r}))))}],["color",Fr],["opacity",function({type:t,interpolate:n,...r},{legend:o=!0,color:i=e.rgb(0,0,0),...a}){if(!n)throw new Error(`${t} opacity scales are not supported`);!0===o&&(o="ramp");if("ramp"!==`${o}`.toLowerCase())throw new Error(`${o} opacity legends are not supported`);return Fr({type:t,...r,interpolate:Yr(i)},{legend:o,...a})}]]);function qr({className:t,...e},{label:n,ticks:r,tickFormat:o}={},i){return function(t={},...e){let n=t;for(const r of e)for(const e in r)if(void 0===n[e]){const o=r[e];n===t?n={...n,[e]:o}:n[e]=o}return n}(i,{className:t,...e},{label:n,ticks:r,tickFormat:o})}function Fr(t,{legend:n=!0,...r}){if(!0===n&&(n="ordinal"===t.type?"swatches":"ramp"),void 0!==t.domain)switch(`${n}`.toLowerCase()){case"swatches":return function(t,{opacity:e,...n}={}){if(!Un(t)&&!Hn(t))throw new Error(`swatches legend requires ordinal or threshold color scale (not ${t.type})`);return Wr(t,n,((t,n,r,o)=>t.append("svg").attr("width",r).attr("height",o).attr("fill",n.scale).attr("fill-opacity",W(e)[1]).append("rect").attr("width","100%").attr("height","100%")))}(t,r);case"ramp":return function(t,n){let{label:r=t.label,tickSize:o=6,width:i=240,height:a=44+o,marginTop:l=18,marginRight:s=0,marginBottom:c=16+o,marginLeft:u=0,style:f,ticks:h=(i-u-s)/64,tickFormat:d,fontVariant:p=Pr(t),round:m=!0,opacity:g,className:y}=n;const v=Ye(n);y=$r(y),g=W(g)[1],null===d&&(d=()=>null);const x=_e("svg",v).attr("class",`${y}-ramp`).attr("font-family","system-ui, sans-serif").attr("font-size",10).attr("width",i).attr("height",a).attr("viewBox",`0 0 ${i} ${a}`).call((t=>t.append("style").text(`.${y}-ramp {\n  display: block;\n  background: white;\n  height: auto;\n  height: intrinsic;\n  max-width: 100%;\n  overflow: visible;\n}\n.${y}-ramp text {\n  white-space: pre;\n}`))).call(Mr,f);let w,b=t=>t.selectAll(".tick line").attr("y1",l+c-a);const k=m?(t,e)=>t.rangeRound(e):(t,e)=>t.range(e),{type:$,domain:M,range:L,interpolate:A,scale:R,pivot:z}=t;if(A){const t=void 0===L?A:e.piecewise(1===A.length?vn(A):A,L);w=k(R.copy(),e.quantize(e.interpolateNumber(u,i-s),Math.min(M.length+(void 0!==z),void 0===L?1/0:L.length)));const n=256,r=v.document.createElement("canvas");r.width=n,r.height=1;const o=r.getContext("2d");for(let e=0,r=n-1;e<n;++e)o.fillStyle=t(e/r),o.fillRect(e,0,1,1);x.append("image").attr("opacity",g).attr("x",u).attr("y",l).attr("width",i-u-s).attr("height",a-l-c).attr("preserveAspectRatio","none").attr("xlink:href",r.toDataURL())}else if("threshold"===$){const t=M,n=void 0===d?t=>t:"string"==typeof d?e.format(d):d;w=k(e.scaleLinear().domain([-1,L.length-1]),[u,i-s]),x.append("g").attr("fill-opacity",g).selectAll().data(L).enter().append("rect").attr("x",((t,e)=>w(e-1))).attr("y",l).attr("width",((t,e)=>w(e)-w(e-1))).attr("height",a-l-c).attr("fill",(t=>t)),h=Y(t,((t,e)=>e)),d=e=>n(t[e],e)}else w=k(e.scaleBand().domain(M),[u,i-s]),x.append("g").attr("fill-opacity",g).selectAll().data(M).enter().append("rect").attr("x",w).attr("y",l).attr("width",Math.max(0,w.bandwidth()-1)).attr("height",a-l-c).attr("fill",R),b=()=>{};return x.append("g").attr("transform",`translate(0,${a-c})`).call(e.axisBottom(w).ticks(Array.isArray(h)?null:h,"string"==typeof d?d:void 0).tickFormat("function"==typeof d?d:void 0).tickSize(o).tickValues(Array.isArray(h)?h:null)).attr("font-size",null).attr("font-family",null).attr("font-variant",wr(p,"normal")).call(b).call((t=>t.select(".domain").remove())),void 0!==r&&x.append("text").attr("x",u).attr("y",l-6).attr("fill","currentColor").attr("font-weight","bold").text(r),x.node()}(t,r);default:throw new Error(`unknown legend type: ${n}`)}}function Yr(t){const{r:n,g:r,b:o}=e.rgb(t)||e.rgb(0,0,0);return t=>`rgba(${n},${r},${o},${t})`}class _r{constructor(t,e={},n={},r){const{facet:o="auto",facetAnchor:i,fx:a,fy:l,sort:s,dx:c=0,dy:u=0,margin:f=0,marginTop:h=f,marginRight:d=f,marginBottom:p=f,marginLeft:m=f,clip:g,channels:y}=n;if(this.data=t,this.sort=H(s)?s:null,this.initializer=Dt(n).initializer,this.transform=this.initializer?n.transform:Wt(n).transform,null===o||!1===o?this.facet=null:(this.facet=q(!0===o?"include":o,"facet",["auto","include","exclude","super"]),this.fx=a,this.fy=l),this.facetAnchor=function(t){if(null==t)return null;const e=Er.get(`${t}`.toLowerCase());if(e)return e;throw new Error(`invalid facet anchor: ${t}`)}(i),e=Mt(e),void 0!==y&&(e={...Mt(y),...e}),void 0!==r&&(e={...sr(this,n,r),...e}),this.channels=Object.fromEntries(Object.entries(e).map((([t,e])=>{const{value:n}=e;return U(n)&&(e={...e,value:n.value},void 0!==n.scale&&(e.scale=n.scale)),[t,e]})).filter((([t,{value:e,optional:n}])=>{if(null!=e)return!0;if(n)return!1;throw new Error(`missing channel value: ${t}`)}))),this.dx=+c,this.dy=+u,this.marginTop=+h,this.marginRight=+d,this.marginBottom=+p,this.marginLeft=+m,this.clip=function(t){return!0===t?t="frame":!1===t&&(t=null),D(t,"clip",["frame","sphere"])}(g),"super"===this.facet){if(a||l)throw new Error("super-faceting cannot use fx or fy");for(const t in this.channels){const{scale:n}=e[t];if("x"===n||"y"===n)throw new Error("super-faceting cannot use x or y")}}}initialize(t,n){let r=F(this.data);void 0===t&&null!=r&&(t=[J(r)]);const o=t;null!=this.transform&&(({facets:t,data:r}=this.transform(r,t)),r=F(r)),void 0!==t&&(t.original=o);const i=be(this.channels,r);return null!=this.sort&&function(t,n,r,o,i){const{reverse:a,reduce:l=!0,limit:s}=i;for(const c in i){if(!St.has(c))continue;let{value:u,reverse:f=a,reduce:h=l,limit:d=s}=ct(i[c]);if(void 0===f&&(f="width"===u||"height"===u),null==h||!1===h)continue;const p="fx"===c||"fy"===c?Le(n,o[c]):Me(r,c);if(!p)throw new Error(`missing channel for scale: ${c}`);const m=p.value,[g=0,y=1/0]=ut(d)?d:d<0?[d]:[0,d];if(null==u)p.domain=()=>{let t=Array.from(new e.InternSet(m));return f&&(t=t.reverse()),0===g&&y===1/0||(t=t.slice(g,y)),t};else{const n="data"===u?t:"height"===u?Ae(r,"y1","y2"):"width"===u?Ae(r,"x1","x2"):Re(r,u,"y"===u?"y2":"x"===u?"x2":void 0),o=ae(!0===h?"max":h,n);p.domain=()=>{let t=e.rollup(J(m),(t=>o.reduceIndex(t,n)),(t=>m[t]));return t=e.sort(t,f?Oe:ze),0===g&&y===1/0||(t=t.slice(g,y)),t.map(O)}}}}(r,t,i,n,this.sort),{data:r,facets:t,channels:i}}filter(t,e,r){for(const o in e){const{filter:i=n}=e[o];if(null!==i){const e=r[o];t=t.filter((t=>i(e[t])))}}return t}project(t,e,n){qe("x","y",t,e,n),qe("x1","y1",t,e,n),qe("x2","y2",t,e,n)}scale(t,e,n){const r=ke(t,e);return n.projection&&this.project(t,r,n),r}}function Gr(...t){return t.plot=_r.prototype.plot,t}const Xr=Math.PI/180;function Ur({inset:t,insetLeft:e,insetRight:n,...r}={}){return[e,n]=Vr(t,e,n),{inset:t,insetLeft:e,insetRight:n,...r}}function Hr({inset:t,insetTop:e,insetBottom:n,...r}={}){return[e,n]=Vr(t,e,n),{inset:t,insetTop:e,insetBottom:n,...r}}function Vr(t,e,n){return void 0===t&&void 0===e&&void 0===n?ir?[1,0]:[.5,.5]:[e,n]}function Zr(t,{interval:e}){return(t={...ct(t)}).interval=lt(void 0===t.interval?e:t.interval),t}function Qr(t,e,n,r){const{[t]:o,[`${t}1`]:i,[`${t}2`]:a}=n,{value:l,interval:s}=Zr(o,n);if(null==l||null==s&&!r)return n;const c=ot(o);if(null==s){let e;const r={transform:t=>e||(e=x(t,l)),label:c};return{...n,[t]:void 0,[`${t}1`]:void 0===i?r:i,[`${t}2`]:void 0===a?r:a}}let u,f;function h(t){return void 0!==f&&t===u?f:f=Y(x(u=t,l),(t=>s.floor(t)))}return e({...n,[t]:void 0,[`${t}1`]:void 0===i?{transform:h,label:c}:i,[`${t}2`]:void 0===a?{transform:t=>h(t).map((t=>s.offset(t))),label:c}:a})}function Jr(t,e,n){const{[t]:r}=n,{value:o,interval:i}=Zr(r,n);return null==o||null==i?n:e({...n,[t]:{label:ot(r),transform:t=>{const e=Y(x(t,o),(t=>i.floor(t))),n=e.map((t=>i.offset(t)));return e.map(dt(e)?(t,e)=>null==t||isNaN(t=+t)||null==(e=n[e])||isNaN(e=+e)?void 0:new Date((t+e)/2):(t,e)=>null==t||null==(e=n[e])?NaN:(+t+ +e)/2)}}})}function Kr(t={}){return Qr("x",Ur,t,!0)}function to(t={}){return Qr("y",Hr,t,!0)}function eo(t={}){return Qr("x",Ur,t)}function no(t={}){return Qr("y",Hr,t)}function ro(t={}){return Jr("x",Ur,t)}function oo(t={}){return Jr("y",Hr,t)}const io={ariaLabel:"rule",fill:null,stroke:"currentColor"};class ao extends _r{constructor(t,e={}){const{x:n,y1:r,y2:o,inset:i=0,insetTop:a=i,insetBottom:l=i}=e;super(t,{x:{value:n,scale:"x",optional:!0},y1:{value:r,scale:"y",optional:!0},y2:{value:o,scale:"y",optional:!0}},e,io),this.insetTop=z(a),this.insetBottom=z(l)}render(t,e,n,r,o){const{x:i,y:a}=e,{x:l,y1:s,y2:c}=n,{width:u,height:f,marginTop:h,marginRight:d,marginLeft:p,marginBottom:m}=r,{insetTop:g,insetBottom:y}=this;return _e("svg:g",o).call(mr,this,r).call(xr,this,{x:l&&i},ir,0).call((e=>e.selectAll().data(t).enter().append("line").call(gr,this).attr("x1",l?t=>l[t]:(p+u-d)/2).attr("x2",l?t=>l[t]:(p+u-d)/2).attr("y1",s&&!Vn(a)?t=>s[t]+g:h+g).attr("y2",c&&!Vn(a)?a.bandwidth?t=>c[t]+a.bandwidth()-y:t=>c[t]-y:f-m-y).call(fr,this,n))).node()}}class lo extends _r{constructor(t,e={}){const{x1:n,x2:r,y:o,inset:i=0,insetRight:a=i,insetLeft:l=i}=e;super(t,{y:{value:o,scale:"y",optional:!0},x1:{value:n,scale:"x",optional:!0},x2:{value:r,scale:"x",optional:!0}},e,io),this.insetRight=z(a),this.insetLeft=z(l)}render(t,e,n,r,o){const{x:i,y:a}=e,{y:l,x1:s,x2:c}=n,{width:u,height:f,marginTop:h,marginRight:d,marginLeft:p,marginBottom:m}=r,{insetLeft:g,insetRight:y}=this;return _e("svg:g",o).call(mr,this,r,o).call(xr,this,{y:l&&a},0,ir).call((e=>e.selectAll().data(t).enter().append("line").call(gr,this).attr("x1",s&&!Vn(i)?t=>s[t]+g:p+g).attr("x2",c&&!Vn(i)?i.bandwidth?t=>c[t]+i.bandwidth()-y:t=>c[t]-y:u-d-y).attr("y1",l?t=>l[t]:(h+f-m)/2).attr("y2",l?t=>l[t]:(h+f-m)/2).call(fr,this,n))).node()}}function so(t,e){let{x:n=M,y:r,y1:o,y2:i,...a}=no(e);return[o,i]=uo(r,o,i),new ao(t,{...a,x:n,y1:o,y2:i})}function co(t,e){let{y:n=M,x:r,x1:o,x2:i,...a}=eo(e);return[o,i]=uo(r,o,i),new lo(t,{...a,y:n,x1:o,x2:i})}function uo(t,e,n){if(void 0===t){if(void 0===e){if(void 0!==n)return[0,n]}else if(void 0===n)return[0,e]}else{if(void 0===e)return void 0===n?[0,t]:[t,n];if(void 0===n)return[t,e]}return[e,n]}function fo(t,...e){let n=e.length;for(let r=0,o=!0;r<n;++r)"function"!=typeof e[r]&&(o&&(t=t.slice(),o=!1),t.splice(r,2,t[r]+e[r]+t[r+1]),e.splice(r,1),--r,--n);return r=>{let o=t[0];for(let i=0;i<n;++i)o+=e[i](r)+t[i+1];return o}}const ho={ariaLabel:"text",strokeLinejoin:"round",strokeWidth:3,paintOrder:"stroke"},po="­";class mo extends _r{constructor(t,e={}){const{x:n,y:r,text:o=(ut(t)&&ft(t)?M:$),frameAnchor:a,textAnchor:l=(/right$/i.test(a)?"end":/left$/i.test(a)?"start":"middle"),lineAnchor:s=(/^top/i.test(a)?"top":/^bottom/i.test(a)?"bottom":"middle"),lineHeight:c=1,lineWidth:u=1/0,textOverflow:f,monospace:h,fontFamily:d=(h?"ui-monospace, monospace":void 0),fontSize:p,fontStyle:m,fontVariant:g,fontWeight:y,rotate:v}=e,[w,b]=W(v,0),[k,L]=function(t){return null==t||"number"==typeof t?[void 0,t]:"string"!=typeof t?[t,void 0]:(t=t.trim().toLowerCase(),bo.has(t)||/^[+-]?\d*\.?\d+(e[+-]?\d+)?(\w*|%)$/.test(t)?[void 0,t]:[t,void 0])}(p);var A;if(super(t,{x:{value:n,scale:"x",optional:!0},y:{value:r,scale:"y",optional:!0},fontSize:{value:k,optional:!0},rotate:{value:(A=w,null==A?null:{transform:t=>x(t,A,Float64Array),label:ot(A)}),optional:!0},text:{value:o,filter:i,optional:!0}},e,ho),this.rotate=b,this.textAnchor=wr(l,"middle"),this.lineAnchor=q(s,"lineAnchor",["top","middle","bottom"]),this.lineHeight=+c,this.lineWidth=+u,this.textOverflow=function(t){return null==t?null:q(t,"textOverflow",["clip","ellipsis","clip-start","clip-end","ellipsis-start","ellipsis-middle","ellipsis-end"]).replace(/^(clip|ellipsis)$/,"$1-end")}(f),this.monospace=!!h,this.fontFamily=R(d),this.fontSize=L,this.fontStyle=R(m),this.fontVariant=R(g),this.fontWeight=R(y),this.frameAnchor=kt(a),!(this.lineWidth>=0))throw new Error(`invalid lineWidth: ${u}`);this.splitLines=function({monospace:t,lineWidth:e,textOverflow:n}){if(null!=n||e==1/0)return t=>t.split(/\r\n?|\n/g);const r=t?Mo:$o,o=100*e;return t=>function(t,e,n){const r=[];let o,i=0;for(const[a,l,s]of function*(t){let e=0,n=0;const r=t.length;for(;n<r;){let r=1;switch(t[n]){case po:case"-":++n,yield[e,n,!1],e=n;break;case" ":for(yield[e,n,!1];" "===t[++n];);e=n;break;case"\r":"\n"===t[n+1]&&++r;case"\n":yield[e,n,!0],n+=r,e=n;break;default:++n}}yield[e,n,!0]}(t))void 0===o&&(o=a),i>o&&n(t,o,l)>e&&(r.push(t.slice(o,i)+(t[i-1]===po?"-":"")),o=a),s?(r.push(t.slice(o,l)),o=void 0):i=l;return r}(t,o,r)}(this),this.clipLine=function({monospace:t,lineWidth:e,textOverflow:n}){if(null==n||e==1/0)return t=>t;const r=t?Mo:$o,o=100*e;switch(n){case"clip-start":return t=>Ro(t,o,r,"");case"clip-end":return t=>Ao(t,o,r,"");case"ellipsis-start":return t=>Ro(t,o,r,"…");case"ellipsis-middle":return t=>function(t,e,n,r){t=t.trim();const o=n(t);if(o<=e)return t;const i=n(r)/2,[a,l]=Lo(t,e/2,n,i),[s]=Lo(t,o-e/2-l+i,n,-i);return s<0?r:t.slice(0,a).trimEnd()+r+t.slice(Eo(t,s)).trimStart()}(t,o,r,"…");case"ellipsis-end":return t=>Ao(t,o,r,"…")}}(this)}render(t,e,n,r,o){const{x:i,y:a}=e,{x:l,y:s,rotate:c,text:u,title:f,fontSize:h}=n,{rotate:d}=this,[p,m]=Lr(this,r);return _e("svg:g",o).call(mr,this,r,o).call(wo,this,u,r).call(xr,this,{x:l&&i,y:s&&a}).call((e=>e.selectAll().data(t).enter().append("text").call(gr,this).call(go,this,u,f).attr("transform",fo`translate(${l?t=>l[t]:p},${s?t=>s[t]:m})${c?t=>` rotate(${c[t]})`:d?` rotate(${d})`:""}`).call(vr,"font-size",h&&(t=>h[t])).call(fr,this,n))).node()}}function go(t,n,r,o){if(!r)return;const{lineAnchor:i,lineHeight:a,textOverflow:l,splitLines:s,clipLine:c}=n;t.each((function(t){const n=s(or(r[t])??"").map(c),u=n.length,f="top"===i?.71:"bottom"===i?1-u:(164-100*u)/200;if(u>1)for(let t=0;t<u;++t){if(!n[t])continue;const r=this.ownerDocument.createElementNS(e.namespaces.svg,"tspan");r.setAttribute("x",0),r.setAttribute("y",(f+t)*a+"em"),r.textContent=n[t],this.appendChild(r)}else f&&this.setAttribute("y",f*a+"em"),this.textContent=n[0];if(l&&!o&&n[0]!==r[t]){const n=this.ownerDocument.createElementNS(e.namespaces.svg,"title");n.textContent=r[t],this.appendChild(n)}}))}function yo(t,e={}){let{x:n,y:r,...o}=e;return void 0===e.frameAnchor&&([n,r]=Z(n,r)),new mo(t,{...o,x:n,y:r})}function vo(t,e={}){const{x:n=M,...r}=e;return new mo(t,oo({...r,x:n}))}function xo(t,e={}){const{y:n=M,...r}=e;return new mo(t,ro({...r,y:n}))}function wo(t,e,n){vr(t,"text-anchor",e.textAnchor),vr(t,"font-family",e.fontFamily),vr(t,"font-size",e.fontSize),vr(t,"font-style",e.fontStyle),vr(t,"font-variant",void 0===e.fontVariant?function(t){return gt(t)||dt(t)?"tabular-nums":void 0}(n):e.fontVariant),vr(t,"font-weight",e.fontWeight)}const bo=new Set(["inherit","initial","revert","unset","xx-small","x-small","small","medium","large","x-large","xx-large","xxx-large","larger","smaller"]);const ko={a:56,b:63,c:57,d:63,e:58,f:37,g:62,h:60,i:26,j:26,k:55,l:26,m:88,n:60,o:60,p:62,q:62,r:39,s:54,t:38,u:60,v:55,w:79,x:54,y:55,z:55,A:69,B:67,C:73,D:74,E:61,F:58,G:76,H:75,I:28,J:55,K:67,L:58,M:89,N:75,O:78,P:65,Q:78,R:67,S:65,T:65,U:75,V:69,W:98,X:69,Y:67,Z:67,0:64,1:48,2:62,3:64,4:66,5:63,6:65,7:58,8:65,9:65," ":29,"!":32,'"':49,"'":31,"(":39,")":39,",":31,"-":48,".":31,"/":32,":":31,";":31,"?":52,"‘":31,"’":31,"“":47,"”":47,"…":82};function $o(t,e=0,n=t.length){let r=0;for(let o=e;o<n;o=Eo(t,o))r+=ko[t[o]]??(Co(t,o)?120:ko.e);return r}function Mo(t,e=0,n=t.length){let r=0;for(let o=e;o<n;o=Eo(t,o))r+=Co(t,o)?200:100;return r}function Lo(t,e,n,r){const o=[];let i=0;for(let a=0,l=0,s=t.length;a<s;a=l){l=Eo(t,a);const s=n(t,a,l);if(i+s>e){for(i+=r;i>e&&a>0;)l=a,a=o.pop(),i-=n(t,a,l);return[a,e-i]}i+=s,o.push(a)}return[-1,0]}function Ao(t,e,n,r){t=t.trim();const o=n(r),[i]=Lo(t,e,n,o);return i<0?t:t.slice(0,i).trimEnd()+r}function Ro(t,e,n,r){const o=n(t=t.trim());if(o<=e)return t;const i=n(r),[a]=Lo(t,o-e+i,n,-i);return a<0?r:r+t.slice(Eo(t,a)).trimStart()}const zo=/[\p{Combining_Mark}\p{Emoji_Modifier}]+/uy,Oo=/\p{Extended_Pictographic}/uy;function Eo(t,e){return e+=function(t,e){const n=t.charCodeAt(e);if(n>=55296&&n<56320){const n=t.charCodeAt(e+1);return n>=56320&&n<57344}return!1}(t,e)?2:1,function(t,e){return!So(t,e)&&(zo.lastIndex=e,zo.test(t))}(t,e)&&(e=zo.lastIndex),function(t,e){return 8205===t.charCodeAt(e)}(t,e)?Eo(t,e+1):e}function So(t,e){return t.charCodeAt(e)<128}function Co(t,e){return!So(t,e)&&(Oo.lastIndex=e,Oo.test(t))}const Bo={ariaLabel:"vector",fill:"none",stroke:"currentColor",strokeWidth:1.5,strokeLinejoin:"round",strokeLinecap:"round"},To=3.5,No=5*To,Io={draw(t,e,n){const r=e*n/No;t.moveTo(0,0),t.lineTo(0,-e),t.moveTo(-r,r-e),t.lineTo(0,-e),t.lineTo(r,r-e)}},Po={draw(t,e,n){t.moveTo(-n,0),t.lineTo(0,-e),t.lineTo(n,0)}},jo=new Map([["arrow",Io],["spike",Po]]);class Wo extends _r{constructor(t,e={}){const{x:n,y:r,r:o=To,length:i,rotate:a,shape:l=Io,anchor:s="middle",frameAnchor:c}=e,[u,f]=W(i,12),[h,d]=W(a,0);super(t,{x:{value:n,scale:"x",optional:!0},y:{value:r,scale:"y",optional:!0},length:{value:u,scale:"length",optional:!0},rotate:{value:h,optional:!0}},e,Bo),this.r=+o,this.length=f,this.rotate=d,this.shape=function(t){if(function(t){return t&&"function"==typeof t.draw}(t))return t;const e=jo.get(`${t}`.toLowerCase());if(e)return e;throw new Error(`invalid shape: ${t}`)}(l),this.anchor=q(s,"anchor",["start","middle","end"]),this.frameAnchor=kt(c)}render(t,n,r,o,i){const{x:a,y:l}=n,{x:s,y:c,length:u,rotate:f}=r,{length:h,rotate:d,anchor:p,shape:m,r:g}=this,[y,v]=Lr(this,o);return _e("svg:g",i).call(mr,this,o,i).call(xr,this,{x:s&&a,y:c&&l}).call((n=>n.selectAll().data(t).enter().append("path").call(gr,this).attr("transform",fo`translate(${s?t=>s[t]:y},${c?t=>c[t]:v})${f?t=>` rotate(${f[t]})`:d?` rotate(${d})`:""}${"start"===p?"":"end"===p?u?t=>` translate(0,${u[t]})`:` translate(0,${h})`:u?t=>` translate(0,${u[t]/2})`:` translate(0,${h/2})`}`).attr("d",u?t=>{const n=e.pathRound();return m.draw(n,u[t],g),n}:(()=>{const t=e.pathRound();return m.draw(t,h,g),t})()).call(fr,this,r))).node()}}function Do(t,e={}){let{x:n,y:r,...o}=e;return void 0===e.frameAnchor&&([n,r]=Z(n,r)),new Wo(t,{...o,x:n,y:r})}function qo(t,e={}){const{x:n=M,...r}=e;return new Wo(t,{...r,x:n})}function Fo(t,e={}){const{y:n=M,...r}=e;return new Wo(t,{...r,y:n})}function Yo(t,e){return arguments.length<2&&!ut(t)&&(e=t,t=null),void 0===e&&(e={}),[t,e]}function _o({anchor:t}={},e){return void 0===t?e[0]:q(t,"anchor",e)}function Go(t){return _o(t,["left","right"])}function Xo(t){return _o(t,["right","left"])}function Uo(t){return _o(t,["bottom","top"])}function Ho(t){return _o(t,["top","bottom"])}function Vo(){const[t,e]=Yo(...arguments);return Ko("y",Go(e),t,e)}function Zo(){const[t,e]=Yo(...arguments);return Ko("fy",Xo(e),t,e)}function Qo(){const[t,e]=Yo(...arguments);return ti("x",Uo(e),t,e)}function Jo(){const[t,e]=Yo(...arguments);return ti("fx",Ho(e),t,e)}function Ko(t,e,n,{color:r="currentColor",opacity:o=1,stroke:i=r,strokeOpacity:a=o,strokeWidth:l=1,fill:s=r,fillOpacity:c=o,textAnchor:u,textStroke:f,textStrokeOpacity:h,textStrokeWidth:d,tickSize:p=("y"===t?6:0),tickPadding:m,tickRotate:g,x:y,margin:v,marginTop:x=(void 0===v?20:v),marginRight:w=(void 0===v?"right"===e?40:0:v),marginBottom:b=(void 0===v?20:v),marginLeft:k=(void 0===v?"left"===e?40:0:v),label:$,labelOffset:M,labelAnchor:L,...A}){return p=z(p),m=z(m),g=z(g),void 0!==L&&(L=q(L,"labelAnchor",["center","top","bottom"])),Gr(p&&!wt(i)?function(t,e,n,{strokeWidth:r=1,strokeLinecap:o=null,strokeLinejoin:i=null,facetAnchor:a=e+("y"===t?"-empty":""),frameAnchor:l=e,tickSize:s,inset:c=0,insetLeft:u=c,insetRight:f=c,dx:h=0,y:d=("y"===t?void 0:null),...p}){return ci(Fo,t,`${t}-axis tick`,n,{strokeWidth:r,strokeLinecap:o,strokeLinejoin:i,facetAnchor:a,frameAnchor:l,y:d,...p,dx:"left"===e?+h-ir+ +u:+h+ir-f,anchor:"start",length:s,shape:"left"===e?pi:mi})}(t,e,n,{stroke:i,strokeOpacity:a,strokeWidth:l,tickSize:p,tickPadding:m,tickRotate:g,x:y,...A}):null,wt(s)?null:function(t,e,n,{facetAnchor:r=e+("y"===t?"-empty":""),frameAnchor:o=e,tickSize:i,tickRotate:a=0,tickPadding:l=Math.max(3,9-i)+(Math.abs(a)>60?4*Math.cos(a*Xr):0),tickFormat:s,text:c=("function"==typeof s?s:void 0),textAnchor:u=(Math.abs(a)>60?"middle":"left"===e?"end":"start"),lineAnchor:f=(a>60?"top":a<-60?"bottom":"middle"),fontVariant:h,inset:d=0,insetLeft:p=d,insetRight:m=d,dx:g=0,y:y=("y"===t?void 0:null),...v}){return ci(xo,t,`${t}-axis tick label`,n,{facetAnchor:r,frameAnchor:o,text:void 0===c?null:c,textAnchor:u,lineAnchor:f,fontVariant:h,rotate:a,y:y,...v,dx:"left"===e?+g-i-l+ +p:+g+ +i+ +l-m},(function(t,e,n){void 0===h&&(this.fontVariant=gi(t)),void 0===c&&(n.text=ui(t,e,s))}))}(t,e,n,{fill:s,fillOpacity:c,stroke:f,strokeOpacity:h,strokeWidth:d,textAnchor:u,tickSize:p,tickPadding:m,tickRotate:g,x:y,marginTop:x,marginRight:w,marginBottom:b,marginLeft:k,...A}),wt(s)||null===$?null:yo([],si({fill:s,fillOpacity:c,...A},(function(n,r,o,i,a){const l=i[t],{marginTop:s,marginRight:c,marginBottom:u,marginLeft:f}="y"===t&&a.inset||a,h=L??(l.bandwidth?"center":"top"),d=M??("right"===e?c:f)-3;return"center"===h?(this.textAnchor=void 0,this.lineAnchor="right"===e?"bottom":"top",this.frameAnchor=e,this.rotate=-90):(this.textAnchor="right"===e?"end":"start",this.lineAnchor=h,this.frameAnchor=`${h}-${e}`,this.rotate=0),this.dy="top"===h?3-s:"bottom"===h?u-3:0,this.dx="right"===e?d:-d,this.ariaLabel=`${t}-axis label`,{facets:[[0]],channels:{text:{value:[void 0===$?yi(t,l,h):$]}}}}))))}function ti(t,e,n,{color:r="currentColor",opacity:o=1,stroke:i=r,strokeOpacity:a=o,strokeWidth:l=1,fill:s=r,fillOpacity:c=o,textAnchor:u,textStroke:f,textStrokeOpacity:h,textStrokeWidth:d,tickSize:p=("x"===t?6:0),tickPadding:m,tickRotate:g,y:y,margin:v,marginTop:x=(void 0===v?"top"===e?30:0:v),marginRight:w=(void 0===v?20:v),marginBottom:b=(void 0===v?"bottom"===e?30:0:v),marginLeft:k=(void 0===v?20:v),label:$,labelAnchor:M,labelOffset:L,...A}){return p=z(p),m=z(m),g=z(g),void 0!==M&&(M=q(M,"labelAnchor",["center","left","right"])),Gr(p&&!wt(i)?function(t,e,n,{strokeWidth:r=1,strokeLinecap:o=null,strokeLinejoin:i=null,facetAnchor:a=e+("x"===t?"-empty":""),frameAnchor:l=e,tickSize:s,inset:c=0,insetTop:u=c,insetBottom:f=c,dy:h=0,x:d=("x"===t?void 0:null),...p}){return ci(qo,t,`${t}-axis tick`,n,{strokeWidth:r,strokeLinejoin:i,strokeLinecap:o,facetAnchor:a,frameAnchor:l,x:d,...p,dy:"bottom"===e?+h-ir-f:+h+ir+ +u,anchor:"start",length:s,shape:"bottom"===e?hi:di})}(t,e,n,{stroke:i,strokeOpacity:a,strokeWidth:l,tickSize:p,tickPadding:m,tickRotate:g,y:y,...A}):null,wt(s)?null:function(t,e,n,{facetAnchor:r=e+("x"===t?"-empty":""),frameAnchor:o=e,tickSize:i,tickRotate:a=0,tickPadding:l=Math.max(3,9-i)+(Math.abs(a)>=10?4*Math.cos(a*Xr):0),tickFormat:s,text:c=("function"==typeof s?s:void 0),textAnchor:u=(Math.abs(a)>=10?a<0^"bottom"===e?"start":"end":"middle"),lineAnchor:f=(Math.abs(a)>=10?"middle":"bottom"===e?"top":"bottom"),fontVariant:h,inset:d=0,insetTop:p=d,insetBottom:m=d,dy:g=0,x:y=("x"===t?void 0:null),...v}){return ci(vo,t,`${t}-axis tick label`,n,{facetAnchor:r,frameAnchor:o,text:void 0===c?null:c,textAnchor:u,lineAnchor:f,fontVariant:h,rotate:a,x:y,...v,dy:"bottom"===e?+g+ +i+ +l-m:+g-i-l+ +p},(function(t,e,n){void 0===h&&(this.fontVariant=gi(t)),void 0===c&&(n.text=ui(t,e,s))}))}(t,e,n,{fill:s,fillOpacity:c,stroke:f,strokeOpacity:h,strokeWidth:d,textAnchor:u,tickSize:p,tickPadding:m,tickRotate:g,y:y,marginTop:x,marginRight:w,marginBottom:b,marginLeft:k,...A}),wt(s)||null===$?null:yo([],si({fill:s,fillOpacity:c,...A},(function(n,r,o,i,a){const l=i[t],{marginTop:s,marginRight:c,marginBottom:u,marginLeft:f}="x"===t&&a.inset||a,h=M??(l.bandwidth?"center":"right"),d=L??("top"===e?s:u)-3;return"center"===h?(this.frameAnchor=e,this.textAnchor=void 0):(this.frameAnchor=`${e}-${h}`,this.textAnchor="right"===h?"end":"start"),this.lineAnchor=e,this.dy="top"===e?-d:d,this.dx="right"===h?c-3:"left"===h?3-f:0,this.ariaLabel=`${t}-axis label`,{facets:[[0]],channels:{text:{value:[void 0===$?yi(t,l,h):$]}}}}))))}function ei(){const[t,e]=Yo(...arguments);return ii("y",Go(e),t,e)}function ni(){const[t,e]=Yo(...arguments);return ii("fy",Xo(e),t,e)}function ri(){const[t,e]=Yo(...arguments);return ai("x",Uo(e),t,e)}function oi(){const[t,e]=Yo(...arguments);return ai("fx",Ho(e),t,e)}function ii(t,e,n,{y:r=("y"===t?void 0:null),x:o=null,x1:i=("left"===e?o:null),x2:a=("right"===e?o:null),...l}){return ci(co,t,`${t}-grid`,n,{y:r,x1:i,x2:a,...li(l)})}function ai(t,e,n,{x:r=("x"===t?void 0:null),y:o=null,y1:i=("top"===e?o:null),y2:a=("bottom"===e?o:null),...l}){return ci(so,t,`${t}-grid`,n,{x:r,y1:i,y2:a,...li(l)})}function li({color:t="currentColor",opacity:e=.1,stroke:n=t,strokeOpacity:r=e,strokeWidth:o=1,...i}){return{stroke:n,strokeOpacity:r,strokeWidth:o,...i}}function si({fill:t,fillOpacity:e,fontFamily:n,fontSize:r,fontStyle:o,fontWeight:i,monospace:a,pointerEvents:l,shapeRendering:s},c){return[,t]=j(t),[,e]=W(e),{facet:"super",x:null,y:null,fill:t,fillOpacity:e,fontFamily:n,fontSize:r,fontStyle:o,fontWeight:i,monospace:a,pointerEvents:l,shapeRendering:s,initializer:c}}function ci(t,n,r,o,i,a){let l;const s=t(o,Dt(i,(function(t,r,o,s){const{[n]:c}=s;if(!c)throw new Error(`missing scale: ${n}`);let{ticks:u,tickSpacing:f,interval:h}=i;if(Xn(c)&&"string"==typeof u&&(h=u,u=void 0),null==t){if(ut(u))t=F(u);else if(c.ticks)if(void 0!==u)t=c.ticks(u);else if(h=st(void 0===h?c.interval:h,c.type),void 0!==h){const[n,r]=e.extent(c.domain());t=h.range(n,h.offset(h.floor(r)))}else{const[r,o]=e.extent(c.range());u=(o-r)/(void 0===f?"x"===n?80:35:f),t=c.ticks(u)}else t=c.domain();"y"===n||"x"===n?r=[J(t)]:(l[n]={scale:n,value:M},r=void 0)}return a?.call(this,c,u,l),{data:t,facets:r,channels:Object.fromEntries(Object.entries(l).map((([e,n])=>[e,{...n,value:x(t,n.value)}])))}})));return null==o?(l=s.channels,s.channels={}):l={},s.ariaLabel=r,s}function ui(t,e,n){return{value:fi(t,e,n)}}function fi(t,n,r){return t.tickFormat?t.tickFormat(ut(n)?null:n,r):void 0===r?or:"string"==typeof r?(dt(t.domain())?e.utcFormat:e.format)(r):C(r)}const hi={draw(t,e){t.moveTo(0,0),t.lineTo(0,e)}},di={draw(t,e){t.moveTo(0,0),t.lineTo(0,-e)}},pi={draw(t,e){t.moveTo(0,0),t.lineTo(-e,0)}},mi={draw(t,e){t.moveTo(0,0),t.lineTo(e,0)}};function gi(t){return t.bandwidth&&void 0===t.interval?void 0:"tabular-nums"}function yi(t,e,n){const r=e.label;if(e.bandwidth||!r?.inferred)return r;const o=function(t){return Math.sign($t(t.domain()))*Math.sign($t(t.range()))}(e);return o?"x"===t||"center"===n?"x"===t==o<0?`← ${r}`:`${r} →`:`${o<0?"↑ ":"↓ "}${r}`:r}const vi={ariaLabel:"frame",fill:"none",stroke:"currentColor"},xi={ariaLabel:"frame",fill:null,stroke:"currentColor",strokeLinecap:"square"};class wi extends _r{constructor(t={}){const{anchor:e=null,inset:n=0,insetTop:r=n,insetRight:o=n,insetBottom:i=n,insetLeft:a=n,rx:l,ry:s}=t;super(void 0,void 0,t,null==e?vi:xi),this.anchor=D(e,"anchor",["top","right","bottom","left"]),this.insetTop=z(r),this.insetRight=z(o),this.insetBottom=z(i),this.insetLeft=z(a),this.rx=z(l),this.ry=z(s)}render(t,e,n,r,o){const{marginTop:i,marginRight:a,marginBottom:l,marginLeft:s,width:c,height:u}=r,{anchor:f,insetTop:h,insetRight:d,insetBottom:p,insetLeft:m,rx:g,ry:y}=this,v=s+m,x=c-a-d,w=i+h,b=u-l-p;return _e(f?"svg:line":"svg:rect",o).call(mr,this,r,o).call(gr,this).call(xr,this,{}).call("left"===f?t=>t.attr("x1",v).attr("x2",v).attr("y1",w).attr("y2",b):"right"===f?t=>t.attr("x1",x).attr("x2",x).attr("y1",w).attr("y2",b):"top"===f?t=>t.attr("x1",v).attr("x2",x).attr("y1",w).attr("y2",w):"bottom"===f?t=>t.attr("x1",v).attr("x2",x).attr("y1",b).attr("y2",b):t=>t.attr("x",v).attr("y",w).attr("width",x-v).attr("height",b-w).attr("rx",g).attr("ry",y)).node()}}function bi(t){return new wi(t)}function ki(t={}){const{facet:n,style:r,caption:o,ariaLabel:i,ariaDescription:a}=t,l=$r(t.className),s=void 0===t.marks?[]:$i(t.marks),c=function(t,e){if(null==t)return;const{x:n,y:r}=t;if(null==n&&null==r)return;const o=F(t.data??n??r);if(void 0===o)throw new Error("missing facet data");const i={};null!=n&&(i.fx=we(o,{value:n,scale:"fx"}));null!=r&&(i.fy=we(o,{value:r,scale:"fy"}));Ai(i,e);const a=zr(o,i);return{channels:i,groups:a,data:t.data}}(n,t),u=new Map;for(const e of s){const n=Ei(e,c,t);n&&u.set(e,n)}const f=new Map;c&&Oi(f,[c]),Oi(f,u);const h=$i(function(t,e,n){let{projection:r,x:o={},y:i={},fx:a={},fy:l={},axis:s,grid:c,facet:u={},facet:{axis:f=s,grid:h}=u,x:{axis:d=s,grid:p=(null===d?null:c)}=o,y:{axis:m=s,grid:g=(null===m?null:c)}=i,fx:{axis:y=f,grid:v=(null===y?null:h)}=a,fy:{axis:x=f,grid:w=(null===x?null:h)}=l}=n;(r||!X(o)&&!Ni("x",t))&&(d=p=null);(r||!X(i)&&!Ni("y",t))&&(m=g=null);e.has("fx")||(y=v=null);e.has("fy")||(x=w=null);void 0===d&&(d=!Ti(t,"x"));void 0===m&&(m=!Ti(t,"y"));void 0===y&&(y=!Ti(t,"fx"));void 0===x&&(x=!Ti(t,"fy"));!0===d&&(d="bottom");!0===m&&(m="left");!0===y&&(y="top"===d||null===d?"bottom":"top");!0===x&&(x="right"===m||null===m?"left":"right");const b=[];return Ci(b,w,ni,l),Si(b,x,Zo,"right","left",u,l),Ci(b,v,oi,a),Si(b,y,Jo,"top","bottom",u,a),Ci(b,g,ei,i),Si(b,m,Vo,"left","right",n,i),Ci(b,p,ri,o),Si(b,d,Qo,"bottom","top",n,o),b}(s,f,t));for(const e of h){const n=Ei(e,c,t);n&&u.set(e,n)}s.unshift(...h);let d=function(t,n){const{fx:r,fy:o}=Cn(t,n),i=r?.scale.domain(),a=o?.scale.domain();return i&&a?e.cross(i,a).map((([t,e],n)=>({x:t,y:e,i:n}))):i?i.map(((t,e)=>({x:t,i:e}))):a?a.map(((t,e)=>({y:t,i:e}))):void 0}(f,t);if(void 0!==d){const t=c?Ir(d,c):void 0;for(const e of s){if(null===e.facet||"super"===e.facet)continue;const n=u.get(e);void 0!==n&&(n.facetsIndex=null!=e.fx||null!=e.fy?Ir(d,n):t)}const e=new Set;for(const{facetsIndex:t}of u.values())t?.forEach(((t,n)=>{t?.length>0&&e.add(n)}));d.forEach(0<e.size&&e.size<d.length?(t,n)=>t.empty=!e.has(n):t=>t.empty=!1);for(const t of s)if("exclude"===t.facet){const e=u.get(t);void 0!==e&&(e.facetsIndex=Or(e.facetsIndex))}}for(const e of St.keys())X(t[e])&&"fx"!==e&&"fy"!==e&&f.set(e,[]);const p=new Map;for(const e of s){if(p.has(e))throw new Error("duplicate mark; each mark must be unique");const{facetsIndex:n,channels:r}=u.get(e)??{},{data:o,facets:i,channels:a}=e.initialize(n,r);Ai(a,t),p.set(e,{data:o,facets:i,channels:a})}const m=Cn(Oi(f,p),t),g=Bn(m),y=function(t,e,n={}){let r=.5-ir,o=.5+ir,i=.5+ir,a=.5-ir;for(const{marginTop:t,marginRight:n,marginBottom:l,marginLeft:s}of e)t>r&&(r=t),n>o&&(o=n),l>i&&(i=l),s>a&&(a=s);let{margin:l,marginTop:s=(void 0!==l?l:r),marginRight:c=(void 0!==l?l:o),marginBottom:u=(void 0!==l?l:i),marginLeft:f=(void 0!==l?l:a)}=n;s=+s,c=+c,u=+u,f=+f;let{width:h=640,height:d=Ar(t,e,n,{width:h,marginTopDefault:r,marginRightDefault:o,marginBottomDefault:i,marginLeftDefault:a})+Math.max(0,s-r+u-i)}=n;h=+h,d=+d;const p={width:h,height:d,marginTop:s,marginRight:c,marginBottom:u,marginLeft:f};if(t.fx||t.fy){let{margin:t,marginTop:e=(void 0!==t?t:s),marginRight:r=(void 0!==t?t:c),marginBottom:o=(void 0!==t?t:u),marginLeft:i=(void 0!==t?t:f)}=n.facet??{};e=+e,r=+r,o=+o,i=+i,p.facet={marginTop:e,marginRight:r,marginBottom:o,marginLeft:i}}return p}(m,s,t);!function(t,e){const{x:n,y:r,fx:o,fy:i}=t,a=o||i?Nn(e):e;o&&Pn(o,a),i&&jn(i,a);const l=o||i?In(t,e):e;n&&Pn(n,l),r&&jn(r,l)}(m,y);const{fx:v,fy:x}=g,w=v||x?In(m,y):y,b=v||x?function({fx:t,fy:e},n){const{marginTop:r,marginRight:o,marginBottom:i,marginLeft:a,width:l,height:s}=Nn(n),c=t&&Ii(t),u=e&&Ii(e);return{marginTop:e?u[0]:r,marginRight:t?l-c[1]:o,marginBottom:e?s-u[1]:i,marginLeft:t?c[0]:a,inset:{marginTop:n.marginTop,marginRight:n.marginRight,marginBottom:n.marginBottom,marginLeft:n.marginLeft},width:l,height:s}}(g,y):y,k=Ye(t,w,l),$=new Set;for(const[e,n]of p)if(null!=e.initializer){const r="super"===e.facet?b:w,o=e.initializer(n.data,n.facets,n.channels,g,r,k);if(void 0!==o.data&&(n.data=o.data),void 0!==o.facets&&(n.facets=o.facets),void 0!==o.channels){zi(o.channels),Object.assign(n.channels,o.channels);for(const e of Object.values(o.channels)){const{scale:n}=e;null!=n&&St.get(n)!==Lt&&(Ri(e,t),$.add(n))}const{fx:r,fy:i}=o.channels;if(null!=r||null!=i){const t=u.get(e)??{channels:{}};null!=r&&(t.channels.fx=r),null!=i&&(t.channels.fy=i),t.groups=zr(n.data,t.channels),t.facetsIndex=n.facets=Ir(d,t),u.set(e,t)}}}if($.size){const e=new Map;Oi(e,p,(t=>$.has(t))),Oi(f,p,(t=>$.has(t)));const n=function(t,e){for(const n in t){const r=t[n],o=e[n];void 0===r.label&&o&&(r.label=o.label)}return t}(Cn(e,t),m),r=Bn(n);Object.assign(m,n),Object.assign(g,r)}for(const[t,e]of p)e.values=t.scale(e.channels,g,k);const{width:M,height:L}=y,A=_e("svg",k).attr("class",l).attr("fill","currentColor").attr("font-family","system-ui, sans-serif").attr("font-size",10).attr("text-anchor","middle").attr("width",M).attr("height",L).attr("viewBox",`0 0 ${M} ${L}`).attr("aria-label",i).attr("aria-description",a).call((t=>t.append("style").text(`.${l} {\n  display: block;\n  background: white;\n  height: auto;\n  height: intrinsic;\n  max-width: 100%;\n}\n.${l} text,\n.${l} tspan {\n  white-space: pre;\n}`))).call(Mr,r).node();if(void 0!==d){const t={x:v?.domain(),y:x?.domain()};d=function(t,{x:n,y:r}){return n&&=new e.InternMap(n.map(((t,e)=>[t,e]))),r&&=new e.InternMap(r.map(((t,e)=>[t,e]))),t.filter(n&&r?t=>n.has(t.x)&&r.has(t.y):n?t=>n.has(t.x):t=>r.has(t.y)).sort(n&&r?(t,e)=>n.get(t.x)-n.get(e.x)||r.get(t.y)-r.get(e.y):n?(t,e)=>n.get(t.x)-n.get(e.x):(t,e)=>r.get(t.y)-r.get(e.y))}(d,t),e.select(A).selectAll().data(d).enter().append("g").attr("aria-label","facet").attr("transform",function(t,e,{marginTop:n,marginLeft:r}){return t&&e?({x:o,y:i})=>`translate(${t(o)-r},${e(i)-n})`:t?({x:e})=>`translate(${t(e)-r},0)`:({y:t})=>`translate(0,${e(t)-n})`}(v,x,y)).each((function(e){let n=!0;for(const r of s){if("super"===r.facet)continue;const{channels:o,values:i,facets:a}=p.get(r);if(!(r.facetAnchor?.(d,t,e)??!e.empty))continue;let l=null;if(a){if(l=a[u.has(r)?e.i:0],l=r.filter(l,o,i),0===l.length)continue;l.fi=e.i}const s=r.render(l,g,i,w,k);null!=s&&(n=!1,this.appendChild(s))}n&&this.remove()}))}for(const t of s){if(void 0!==d&&"super"!==t.facet)continue;const{channels:e,values:n,facets:r}=p.get(t);let o=null;if(r&&(o=r[0],o=t.filter(o,e,n),0===o.length))continue;const i=t.render(o,g,n,b,k);null!=i&&A.appendChild(i)}let R=A;const z=function(t,e,n){const r=[];for(const[o,i]of Dr){const a=n[o];if(a?.legend&&o in t){const n=i(t[o],qr(e,t[o],a),(e=>t[e]));null!=n&&r.push(n)}}return r}(m,k,t);if(null!=o||z.length>0){const{document:t}=k;R=t.createElement("figure"),R.style.maxWidth="initial";for(const t of z)R.appendChild(t);if(R.appendChild(A),null!=o){const e=t.createElement("figcaption");e.appendChild(o?.ownerDocument?o:t.createTextNode(o)),R.appendChild(e)}}R.scale=function(t){return e=>{if(!St.has(e=`${e}`))throw new Error(`unknown scale: ${e}`);return e in t?Jn(t[e]):void 0}}(m),R.legend=function(t,e,n={}){return(r,o)=>{if(!Dr.has(r))throw new Error(`unknown legend type: ${r}`);if(r in t)return Dr.get(r)(t[r],qr(e,n[r],o),(e=>t[e]))}}(m,k,t);const O=function(){const t=Ee;return Ee=0,t}();return O>0&&e.select(A).append("text").attr("x",M).attr("y",20).attr("dy","-1em").attr("text-anchor","end").attr("font-family","initial").text("⚠️").append("title").text(`${O.toLocaleString("en-US")} warning${1===O?"":"s"}. Please check the console.`),R}function $i(t){return t.flat(1/0).filter((t=>null!=t)).map(Mi)}function Mi(t){return"function"==typeof t.render?t:new Li(t)}_r.prototype.plot=function({marks:t=[],...e}={}){return ki({...e,marks:[...t,this]})};class Li extends _r{constructor(t){if("function"!=typeof t)throw new TypeError("invalid mark; missing render function");super(),this.render=t}render(){}}function Ai(t,e){for(const n in t)Ri(t[n],e);return t}function Ri(t,e){const{scale:n}=t;if(null==n)return;const{type:r,percent:o,interval:i,transform:a=(o?t=>100*t:lt(i,r)?.floor)}=e[n]??{};null!=a&&(t.value=Y(t.value,a))}function zi(t){for(const e in t)$e(e,t[e])}function Oi(t,e,n=A){for(const{channels:r}of e.values())for(const e in r){const o=r[e],{scale:i}=o;if(null!=i&&n(i)){const e=t.get(i);void 0!==e?e.push(o):t.set(i,[o])}}return t}function Ei(t,e,n){if(null===t.facet||"super"===t.facet)return;const{fx:r,fy:o}=t;if(null!=r||null!=o){const e=F(t.data??r??o);if(void 0===e)throw new Error(`missing facet data in ${t.ariaLabel}`);if(null===e)return;const i={};return null!=r&&(i.fx=we(e,{value:r,scale:"fx"})),null!=o&&(i.fy=we(e,{value:o,scale:"fy"})),Ai(i,n),{channels:i,groups:zr(e,i)}}if(void 0===e)return;const{channels:i,groups:a,data:l}=e;if("auto"!==t.facet||t.data===l)return{channels:i,groups:a};l.length>0&&(a.size>1||1===a.size&&i.fx&&i.fy&&[...a][0][1].size>1)&&F(t.data)?.length===l.length&&Se(`Warning: the ${t.ariaLabel} mark appears to use faceted data, but isn’t faceted. The mark data has the same length as the facet data and the mark facet option is "auto", but the mark data and facet data are distinct. If this mark should be faceted, set the mark facet option to true; otherwise, suppress this warning by setting the mark facet option to false.`)}function Si(t,e,n,r,o,i,a){if(!e)return;const l=/^\s*both\s*$/i.test(e);a=function(t,e,{line:n=e.line,ticks:r,tickSize:o,tickSpacing:i,tickPadding:a,tickFormat:l,tickRotate:s,fontVariant:c,ariaLabel:u,ariaDescription:f,label:h=e.label,labelAnchor:d,labelOffset:p}){return{anchor:t,line:n,ticks:r,tickSize:o,tickSpacing:i,tickPadding:a,tickFormat:l,tickRotate:s,fontVariant:c,ariaLabel:u,ariaDescription:f,label:h,labelAnchor:d,labelOffset:p}}(l?r:e,i,a);const{line:s}=a;n!==Vo&&n!==Qo||!s||bt(s)||t.push(bi(function(t){const{anchor:e,line:n}=t;return{anchor:e,facetAnchor:e+"-empty",stroke:!0===n?void 0:n}}(a))),t.push(n(a)),l&&t.push(n({...a,anchor:o,label:null}))}function Ci(t,e,n,r){e&&!bt(e)&&t.push(n(function(t,{stroke:e=(vt(t)?t:void 0),ticks:n=(Bi(t)?t:void 0),tickSpacing:r,ariaLabel:o,ariaDescription:i}){return{stroke:e,ticks:n,tickSpacing:r,ariaLabel:o,ariaDescription:i}}(e,r)))}function Bi(t){switch(typeof t){case"number":return!0;case"string":return!vt(t)}return ut(t)||"function"==typeof t?.range}function Ti(t,e){const n=`${e}-axis `;return t.some((t=>t.ariaLabel?.startsWith(n)))}function Ni(t,e){for(const n of e)for(const e in n.channels)if(n.channels[e].scale===t)return!0;return!1}function Ii(t){const e=t.domain();let n=t(e[0]),r=t(e[e.length-1]);return r<n&&([n,r]=[r,n]),[n,r+t.bandwidth()]}const Pi=new Map([["basis",e.curveBasis],["basis-closed",e.curveBasisClosed],["basis-open",e.curveBasisOpen],["bundle",e.curveBundle],["bump-x",e.curveBumpX],["bump-y",e.curveBumpY],["cardinal",e.curveCardinal],["cardinal-closed",e.curveCardinalClosed],["cardinal-open",e.curveCardinalOpen],["catmull-rom",e.curveCatmullRom],["catmull-rom-closed",e.curveCatmullRomClosed],["catmull-rom-open",e.curveCatmullRomOpen],["linear",e.curveLinear],["linear-closed",e.curveLinearClosed],["monotone-x",e.curveMonotoneX],["monotone-y",e.curveMonotoneY],["natural",e.curveNatural],["step",e.curveStep],["step-after",e.curveStepAfter],["step-before",e.curveStepBefore]]);function ji(t=e.curveLinear,n){if("function"==typeof t)return t;const r=Pi.get(`${t}`.toLowerCase());if(!r)throw new Error(`unknown curve: ${t}`);if(void 0!==n){if("beta"in r)return r.beta(n);if("tension"in r)return r.tension(n);if("alpha"in r)return r.alpha(n)}return r}function Wi(t=Di,e){return"function"!=typeof t&&"auto"===`${t}`.toLowerCase()?Di:ji(t,e)}function Di(t){return e.curveLinear(t)}function qi(t={y:"count"},e={}){[t,e]=Hi(t,e);const{x:n,y:r}=e;return Ui(Vi(n,e,M),null,null,r,t,Ur(e))}function Fi(t={x:"count"},e={}){[t,e]=Hi(t,e);const{x:n,y:r}=e;return Ui(null,Vi(r,e,M),n,null,t,Hr(e))}function Yi(t={fill:"count"},e={}){[t,e]=Hi(t,e);const{x:n,y:r}=function(t){let{x:e,y:n}=t;return e=Vi(e,t),n=Vi(n,t),[e.value,n.value]=Z(e.value,n.value),{x:e,y:n}}(e);return Ui(n,r,null,null,t,Ur(Hr(e)))}function _i(t,e,n={}){return null==n?.interval?n:t({[e]:void 0===n?.reduce?de:n.reduce,filter:null},n)}function Gi(t){return _i(qi,"y",t)}function Xi(t){return _i(Fi,"x",t)}function Ui(t,e,n,r,{data:o=he,filter:i=ge,sort:a,reverse:l,...s}={},c={}){t=Zi(t),e=Zi(e),s=function(t,e){return ne(t,e,Ji)}(s,c),o=ta(o,M),a=null==a?void 0:Ji("sort",a,c),i=null==i?void 0:Ki("filter",i,c),null!=n&&ee(s,"x","x1","x2")&&(n=null),null!=r&&ee(s,"y","y1","y2")&&(r=null);const[u,f]=rt(t),[h,d]=rt(t),[p,m]=rt(e),[g,y]=rt(e),[v,w]=null!=n?[n,"x"]:null!=r?[r,"y"]:[],[b,k]=rt(v),{x:$,y:L,z:A,fill:R,stroke:z,x1:O,x2:E,y1:S,y2:C,domain:B,cumulative:T,thresholds:N,interval:I,...P}=c,[W,D]=rt(A),[q]=j(R),[F]=j(z),[Y,_]=rt(q),[G,X]=rt(F);return{..."z"in c&&{z:W||A},..."fill"in c&&{fill:Y||R},..."stroke"in c&&{stroke:G||z},...Wt(P,((n,r)=>{const c=x(n,v),u=x(n,A),h=x(n,q),p=x(n,F),g=se(s,{z:u,fill:h,stroke:p}),w=[],b=[],$=c&&k([]),M=u&&D([]),L=h&&_([]),R=p&&X([]),z=t&&f([]),O=t&&d([]),E=e&&m([]),S=e&&y([]),C=(B=t?.(n),T=e?.(n),B&&T?function*(t){const e=B.bin(t);for(const[t,[n,r]]of B.entries()){const o=T.bin(e[t]);for(const[t,[e,i]]of T.entries())yield[o[t],{x1:n,y1:e,x2:r,y2:i}]}}:B?function*(t){const e=B.bin(t);for(const[t,[n,r]]of B.entries())yield[e[t],{x1:n,x2:r}]}:function*(t){const e=T.bin(t);for(const[t,[n,r]]of T.entries())yield[e[t],{y1:n,y2:r}]});var B,T;let N=0;for(const t of s)t.initialize(n);a&&a.initialize(n),i&&i.initialize(n);for(const t of r){const e=[];for(const e of s)e.scope("facet",t);a&&a.scope("facet",t),i&&i.scope("facet",t);for(const[r,l]of ie(t,g))for(const[t,f]of ie(l,c))for(const[l,d]of C(f))if(!i||i.reduce(l,d)){e.push(N++),b.push(o.reduceIndex(l,n,d)),c&&$.push(t),u&&M.push(g===u?r:u[l[0]]),h&&L.push(g===h?r:h[l[0]]),p&&R.push(g===p?r:p[l[0]]),z&&(z.push(d.x1),O.push(d.x2)),E&&(E.push(d.y1),S.push(d.y2));for(const t of s)t.reduce(l,d);a&&a.reduce(l)}w.push(e)}return ce(w,a,l),{data:b,facets:w}})),...!ee(s,"x")&&(u?{x1:u,x2:h,x:at(u,h)}:{x:$,x1:O,x2:E}),...!ee(s,"y")&&(p?{y1:p,y2:g,y:at(p,g)}:{y:L,y1:S,y2:C}),...b&&{[w]:b},...Object.fromEntries(s.map((({name:t,output:e})=>[t,e])))}}function Hi({cumulative:t,domain:e,thresholds:n,interval:r,...o},i){return[o,{cumulative:t,domain:e,thresholds:n,interval:r,...i}]}function Vi(t,{cumulative:e,domain:n,thresholds:r,interval:o},i){return void 0===(t={...ct(t)}).domain&&(t.domain=n),void 0===t.cumulative&&(t.cumulative=e),void 0===t.thresholds&&(t.thresholds=r),void 0===t.interval&&(t.interval=o),void 0===t.value&&(t.value=i),t.thresholds=Qi(t.thresholds,t.interval),t}function Zi(t){if(null==t)return;const{value:n,cumulative:r,domain:o=e.extent,thresholds:i}=t,a=t=>{let a,l=x(t,n);if(dt(l)||(function(t){return ra(t)&&"function"==typeof t&&t()instanceof Date}(s=i)||ut(s)&&dt(s))){l=Y(l,P,Float64Array);let[t,n]="function"==typeof o?o(l):o,r="function"!=typeof i||ra(i)?i:i(l,t,n);"number"==typeof r&&(r=e.utcTickInterval(t,n,r)),ra(r)&&(o===e.extent&&(t=r.floor(t),n=r.offset(r.floor(n))),r=r.range(t,r.offset(n))),a=r}else{l=T(l);let[t,n]="function"==typeof o?o(l):o,r="function"!=typeof i||ra(i)?i:i(l,t,n);if("number"==typeof r)if(o===e.extent){let o=e.tickIncrement(t,n,r);if(isFinite(o))if(o>0){let e=Math.round(t/o),i=Math.round(n/o);e*o<=t||--e,i*o>n||++i;let a=i-e+1;r=new Float64Array(a);for(let t=0;t<a;++t)r[t]=(e+t)*o}else if(o<0){o=-o;let e=Math.round(t*o),i=Math.round(n*o);e/o<=t||--e,i/o>n||++i;let a=i-e+1;r=new Float64Array(a);for(let t=0;t<a;++t)r[t]=(e+t)/o}else r=[t];else r=[t]}else r=e.ticks(t,n,r);else ra(r)&&(o===e.extent&&(t=r.floor(t),n=r.offset(r.floor(n))),r=r.range(t,r.offset(n)));a=r}var s;const c=[];if(1===a.length)c.push([a[0],a[0]]);else for(let t=1;t<a.length;++t)c.push([a[t-1],a[t]]);return c.bin=(r<0?aa:r>0?ia:oa)(c,a,l),c};return a.label=ot(n),a}function Qi(t,n,r=na){if(void 0===t)return void 0===n?r:st(n);if("string"==typeof t){switch(t.toLowerCase()){case"freedman-diaconis":return e.thresholdFreedmanDiaconis;case"scott":return e.thresholdScott;case"sturges":return e.thresholdSturges;case"auto":return na}return g(t)}return t}function Ji(t,e,n){return re(t,e,n,Ki)}function Ki(t,e,n){return oe(t,e,n,ta)}function ta(t,e){return ae(t,e,ea)}function ea(t){switch(`${t}`.toLowerCase()){case"x":return sa;case"x1":return ua;case"x2":return fa;case"y":return ca;case"y1":return ha;case"y2":return da}throw new Error(`invalid bin reduce: ${t}`)}function na(t,n,r){return Math.min(200,e.thresholdScott(t,n,r))}function ra(t){return"function"==typeof t?.range}function oa(t,n,r){return n=T(n),o=>{const i=t.map((()=>[]));for(const t of o)i[e.bisect(n,r[t])-1]?.push(t);return i}}function ia(t,e,n){const r=oa(t,e,n);return t=>{const e=r(t);for(let t=1,n=e.length;t<n;++t){const n=e[t-1],r=e[t];for(const t of n)r.push(t)}return e}}function aa(t,e,n){const r=oa(t,e,n);return t=>{const e=r(t);for(let t=e.length-2;t>=0;--t){const n=e[t+1],r=e[t];for(const t of n)r.push(t)}return e}}function la(t,e){const n=(+t+ +e)/2;return t instanceof Date?new Date(n):n}const sa={reduceIndex:(t,e,{x1:n,x2:r})=>la(n,r)},ca={reduceIndex:(t,e,{y1:n,y2:r})=>la(n,r)},ua={reduceIndex:(t,e,{x1:n})=>n},fa={reduceIndex:(t,e,{x2:n})=>n},ha={reduceIndex:(t,e,{y1:n})=>n},da={reduceIndex:(t,e,{y2:n})=>n};function pa(t={}){const{x:e,x1:n,x2:r}=t;return void 0===n&&void 0===r&&void 0===e?{...t,x:M}:t}function ma(t={}){const{y:e,y1:n,y2:r}=t;return void 0===n&&void 0===r&&void 0===e?{...t,y:M}:t}function ga(t={},e={}){1===arguments.length&&([t,e]=wa(t));const{y1:n,y:r=n,x:o,...i}=e,[a,l,s,c]=ba(r,o,"x",t,i);return{...a,y1:n,y:l,x1:s,x2:c,x:at(s,c)}}function ya(t={},e={}){1===arguments.length&&([t,e]=wa(t));const{x1:n,x:r=n,y:o,...i}=e,[a,l,s,c]=ba(r,o,"y",t,i);return{...a,x1:n,x:l,y1:s,y2:c,y:at(s,c)}}function va({x:t,x1:e,x2:n,...r}={}){return void 0===e&&void 0===n?ga({x:t,...r}):([e,n]=V(t,e,n),{...r,x1:e,x2:n})}function xa({y:t,y1:e,y2:n,...r}={}){return void 0===e&&void 0===n?ya({y:t,...r}):([e,n]=V(t,e,n),{...r,y1:e,y2:n})}function wa(t){const{offset:e,order:n,reverse:r,...o}=t;return[{offset:e,order:n,reverse:r},o]}const ba=function(t,n=L,r,{offset:o,order:i,reverse:a},l){const s=Q(l),[c,u]=rt(t),[f,h]=nt(n),[d,p]=nt(n);return o=function(t){if(null==t)return;if("function"==typeof t)return t;switch(`${t}`.toLowerCase()){case"expand":case"normalize":return $a;case"center":case"silhouette":return Ma;case"wiggle":return La}throw new Error(`unknown offset: ${t}`)}(o),i=function(t,e,n){if(void 0===t&&e===La)return Ca;if(null==t)return;if("string"==typeof t){switch(t.toLowerCase()){case"value":case n:return za;case"z":return Oa;case"sum":return Ea;case"appearance":return Sa;case"inside-out":return Ca}return Ba(k(t))}if("function"==typeof t)return Ba(t);if(Array.isArray(t))return r=t,(t,e,n,o)=>Ta(o,r);var r;throw new Error(`invalid order: ${t}`)}(i,o,r),[Wt(l,((r,l)=>{const c=null==t?void 0:u(x(r,t)),f=x(r,n,Float64Array),d=x(r,s),m=i&&i(r,c,f,d),g=r.length,y=h(new Float64Array(g)),v=p(new Float64Array(g)),w=[];for(const t of l){const n=c?Array.from(e.group(t,(t=>c[t])).values()):[t];m&&Na(n,m);for(const t of n){let e=0,n=0;a&&t.reverse();for(const r of t){const t=f[r];t<0?e=v[r]=(y[r]=e)+t:t>0?n=v[r]=(y[r]=n)+t:v[r]=y[r]=n}}w.push(n)}return o&&o(w,y,v,d),{data:r,facets:l}})),c,f,d]};function ka(t,e){let n=0,r=0;for(const o of t){const t=e[o];t<n&&(n=t),t>r&&(r=t)}return[n,r]}function $a(t,e,n){for(const r of t)for(const t of r){const[r,o]=ka(t,n);for(const i of t){const t=1/(o-r||1);e[i]=t*(e[i]-r),n[i]=t*(n[i]-r)}}}function Ma(t,e,n){for(const r of t){for(const t of r){const[r,o]=ka(t,n);for(const i of t){const t=(o+r)/2;e[i]-=t,n[i]-=t}}Aa(r,e,n)}Ra(t,e,n)}function La(t,n,r,o){for(const i of t){const t=new e.InternMap;let a=0;for(const l of i){let i=-1;const s=l.map((t=>Math.abs(r[t]-n[t]))),c=l.map((e=>{i=o?o[e]:++i;const a=r[e]-n[e],l=t.has(i)?a-t.get(i):0;return t.set(i,a),l})),u=[0,...e.cumsum(c)];for(const t of l)n[t]+=a,r[t]+=a;const f=e.sum(s);f&&(a-=e.sum(s,((t,e)=>(c[e]/2+u[e])*t))/f)}Aa(i,n,r)}Ra(t,n,r)}function Aa(t,n,r){const o=e.min(t,(t=>e.min(t,(t=>n[t]))));for(const e of t)for(const t of e)n[t]-=o,r[t]-=o}function Ra(t,n,r){const o=t.length;if(1===o)return;const i=t.map((t=>t.flat())),a=i.map((t=>(e.min(t,(t=>n[t]))+e.max(t,(t=>r[t])))/2)),l=e.min(a);for(let t=0;t<o;t++){const e=l-a[t];for(const o of i[t])n[o]+=e,r[o]+=e}}function za(t,e,n){return n}function Oa(t,e,n,r){return r}function Ea(t,n,r,o){return Ta(o,e.groupSort(J(t),(t=>e.sum(t,(t=>r[t]))),(t=>o[t])))}function Sa(t,n,r,o){return Ta(o,e.groupSort(J(t),(t=>n[e.greatest(t,(t=>r[t]))]),(t=>o[t])))}function Ca(t,n,r,o){const i=J(t),a=e.groupSort(i,(t=>n[e.greatest(t,(t=>r[t]))]),(t=>o[t])),l=e.rollup(i,(t=>e.sum(t,(t=>r[t]))),(t=>o[t])),s=[],c=[];let u=0;for(const t of a)u<0?(u+=l.get(t),s.push(t)):(u-=l.get(t),c.push(t));return Ta(o,c.reverse().concat(s))}function Ba(t){return e=>x(e,t)}function Ta(t,n){if(!t)throw new Error("missing channel: z");return n=new e.InternMap(n.map(((t,e)=>[t,e]))),t.map((t=>n.get(t)))}function Na(t,e){for(const n of t)n.sort(((t,n)=>r(e[t],e[n])))}const Ia={ariaLabel:"area",strokeWidth:1,strokeLinecap:"round",strokeLinejoin:"round",strokeMiterlimit:1};class Pa extends _r{constructor(t,e={}){const{x1:n,y1:r,x2:o,y2:i,z:a,curve:l,tension:s}=e;super(t,{x1:{value:n,scale:"x"},y1:{value:r,scale:"y"},x2:{value:o,scale:"x",optional:!0},y2:{value:i,scale:"y",optional:!0},z:{value:Q(e),optional:!0}},e,Ia),this.z=a,this.curve=ji(l,s)}filter(t){return t}render(t,n,r,o,i){const{x1:a,y1:l,x2:s=a,y2:c=l}=r;return _e("svg:g",i).call(mr,this,o,i).call(xr,this,n,0,0).call((n=>n.selectAll().data(pr(t,[a,l,s,c],this,r)).enter().append("path").call(gr,this).call(hr,this,r).attr("d",e.area().curve(this.curve).defined((t=>t>=0)).x0((t=>a[t])).y0((t=>l[t])).x1((t=>s[t])).y1((t=>c[t]))))).node()}}function ja(t,e){const{y:n=$,...r}=Xi(e);return new Pa(t,va(pa({...r,y1:n,y2:void 0})))}function Wa(t,e){const{x:n=$,...r}=Gi(e);return new Pa(t,xa(ma({...r,x1:n,x2:void 0})))}function Da(t,{marker:e,markerStart:n=e,markerMid:r=e,markerEnd:o=e}={}){t.markerStart=qa(n),t.markerMid=qa(r),t.markerEnd=qa(o)}function qa(t){if(null==t||!1===t)return null;if(!0===t)return _a;if("function"==typeof t)return t;switch(`${t}`.toLowerCase()){case"none":return null;case"arrow":return Fa;case"dot":return Ya;case"circle":case"circle-fill":return _a;case"circle-stroke":return Ga}throw new Error(`invalid marker: ${t}`)}function Fa(t,e){return _e("svg:marker",e).attr("viewBox","-5 -5 10 10").attr("markerWidth",6.67).attr("markerHeight",6.67).attr("orient","auto").attr("fill","none").attr("stroke",t).attr("stroke-width",1.5).attr("stroke-linecap","round").attr("stroke-linejoin","round").call((t=>t.append("path").attr("d","M-1.5,-3l3,3l-3,3"))).node()}function Ya(t,e){return _e("svg:marker",e).attr("viewBox","-5 -5 10 10").attr("markerWidth",6.67).attr("markerHeight",6.67).attr("fill",t).attr("stroke","none").call((t=>t.append("circle").attr("r",2.5))).node()}function _a(t,e){return _e("svg:marker",e).attr("viewBox","-5 -5 10 10").attr("markerWidth",6.67).attr("markerHeight",6.67).attr("fill",t).attr("stroke","white").attr("stroke-width",1.5).call((t=>t.append("circle").attr("r",3))).node()}function Ga(t,e){return _e("svg:marker",e).attr("viewBox","-5 -5 10 10").attr("markerWidth",6.67).attr("markerHeight",6.67).attr("fill","white").attr("stroke",t).attr("stroke-width",1.5).call((t=>t.append("circle").attr("r",3))).node()}let Xa=0;function Ua(t,e,{stroke:n},r){return Va(t,e,n&&(t=>n[t]),r)}function Ha(t,e,{stroke:n},r){return Va(t,e,n&&(([t])=>n[t]),r)}function Va(t,{markerStart:e,markerMid:n,markerEnd:r,stroke:o},i=(()=>o),a){const l=new Map;function s(t){return function(e){const n=i(e);let r=l.get(t);r||l.set(t,r=new Map);let o=r.get(n);if(!o){const e=this.parentNode.insertBefore(t(n,a),this),i="plot-marker-"+ ++Xa;e.setAttribute("id",i),r.set(n,o=`url(#${i})`)}return o}}e&&t.attr("marker-start",s(e)),n&&t.attr("marker-mid",s(n)),r&&t.attr("marker-end",s(r))}const Za={ariaLabel:"link",fill:"none",stroke:"currentColor",strokeMiterlimit:1};class Qa extends _r{constructor(t,e={}){const{x1:n,y1:r,x2:o,y2:i,curve:a,tension:l}=e;super(t,{x1:{value:n,scale:"x"},y1:{value:r,scale:"y"},x2:{value:o,scale:"x",optional:!0},y2:{value:i,scale:"y",optional:!0}},e,Za),this.curve=Wi(a,l),Da(this,e)}project(t,e,n){this.curve!==Di&&super.project(t,e,n)}render(t,n,r,o,i){const{x1:a,y1:l,x2:s=a,y2:c=l}=r,{curve:u}=this;return _e("svg:g",i).call(mr,this,o,i).call(xr,this,n).call((n=>n.selectAll().data(t).enter().append("path").call(gr,this).attr("d",u===Di&&i.projection?function(t,n,r,o,i){const a=e.geoPath(t);return n=T(n),r=T(r),o=T(o),i=T(i),t=>a({type:"LineString",coordinates:[[n[t],r[t]],[o[t],i[t]]]})}(i.projection,a,l,s,c):t=>{const n=e.pathRound(),r=u(n);return r.lineStart(),r.point(a[t],l[t]),r.point(s[t],c[t]),r.lineEnd(),n}).call(fr,this,r).call(Ua,this,r,i))).node()}}function Ja(t,e={}){let{x:n,x1:r,x2:o,y:i,y1:a,y2:l,...s}=e;return[r,o]=Ka(n,r,o),[a,l]=Ka(i,a,l),new Qa(t,{...s,x1:r,x2:o,y1:a,y2:l})}function Ka(t,e,n){if(void 0===t){if(void 0===e){if(void 0!==n)return[n]}else if(void 0===n)return[e]}else{if(void 0===e)return void 0===n?[t]:[t,n];if(void 0===n)return[t,e]}return[e,n]}const tl={ariaLabel:"arrow",fill:"none",stroke:"currentColor",strokeLinecap:"round",strokeMiterlimit:1,strokeWidth:1.5};class el extends _r{constructor(t,e={}){const{x1:n,y1:r,x2:o,y2:i,bend:a=0,headAngle:l=60,headLength:s=8,inset:c=0,insetStart:u=c,insetEnd:f=c}=e;super(t,{x1:{value:n,scale:"x"},y1:{value:r,scale:"y"},x2:{value:o,scale:"x",optional:!0},y2:{value:i,scale:"y",optional:!0}},e,tl),this.bend=!0===a?22.5:Math.max(-90,Math.min(90,a)),this.headAngle=+l,this.headLength=+s,this.insetStart=+u,this.insetEnd=+f}render(t,e,n,r,o){const{x1:i,y1:a,x2:l=i,y2:s=a,SW:c}=n,{strokeWidth:u,bend:f,headAngle:h,headLength:d,insetStart:p,insetEnd:m}=this,g=c?t=>c[t]:C(void 0===u?1:u),y=f*Xr,v=h*Xr/2,x=d/1.5;return _e("svg:g",o).call(mr,this,r,o).call(xr,this,e).call((e=>e.selectAll().data(t).enter().append("path").call(gr,this).attr("d",(t=>{let e=i[t],n=a[t],r=l[t],o=s[t];const c=Math.hypot(r-e,o-n);if(c<=p+m)return null;let u=Math.atan2(o-n,r-e);const f=Math.min(x*g(t),c/3),h=Math.hypot(c/Math.tan(y),c)/2;if(p||m)if(h<1e5){const t=Math.sign(y),[i,a]=function([t,e],[n,r],o,i){const a=n-t,l=r-e,s=Math.hypot(a,l),c=i*Math.sqrt(o*o-s*s/4)/s;return[(t+n)/2-l*c,(e+r)/2+a*c]}([e,n],[r,o],h,t);if(p&&([e,n]=nl([i,a,h],[e,n,p],-t*Math.sign(p))),m){const[e,n]=nl([i,a,h],[r,o,m],t*Math.sign(m));u+=Math.atan2(n-a,e-i)-Math.atan2(o-a,r-i),r=e,o=n}}else{const t=r-e,i=o-n,a=Math.hypot(t,i);p&&(e+=t/a*p,n+=i/a*p),m&&(r-=t/a*m,o-=i/a*m)}const d=u+y,w=d+v,b=d-v,k=r-f*Math.cos(w),$=o-f*Math.sin(w),M=r-f*Math.cos(b),L=o-f*Math.sin(b);return`M${e},${n}${h<1e5?`A${h},${h} 0,0,${y>0?1:0} `:"L"}${r},${o}M${k},${$}L${r},${o}L${M},${L}`})).call(fr,this,n))).node()}}function nl([t,e,n],[r,o,i],a){const l=r-t,s=o-e,c=Math.hypot(l,s),u=(l*l+s*s-i*i+n*n)/(2*c),f=a*Math.sqrt(n*n-u*u);return[t+(l*u+s*f)/c,e+(s*u-l*f)/c]}class rl extends _r{constructor(t,e,n={},r){super(t,e,n,r);const{inset:o=0,insetTop:i=o,insetRight:a=o,insetBottom:l=o,insetLeft:s=o,rx:c,ry:u}=n;this.insetTop=z(i),this.insetRight=z(a),this.insetBottom=z(l),this.insetLeft=z(s),this.rx=wr(c,"auto"),this.ry=wr(u,"auto")}render(t,e,n,r,o){const{rx:i,ry:a}=this;return _e("svg:g",o).call(mr,this,r,o).call(this._transform,this,e).call((o=>o.selectAll().data(t).enter().append("rect").call(gr,this).attr("x",this._x(e,n,r)).attr("width",this._width(e,n,r)).attr("y",this._y(e,n,r)).attr("height",this._height(e,n,r)).call(vr,"rx",i).call(vr,"ry",a).call(fr,this,n))).node()}_x(t,{x:e},{marginLeft:n}){const{insetLeft:r}=this;return e?t=>e[t]+r:n+r}_y(t,{y:e},{marginTop:n}){const{insetTop:r}=this;return e?t=>e[t]+r:n+r}_width({x:t},{x:e},{marginRight:n,marginLeft:r,width:o}){const{insetLeft:i,insetRight:a}=this,l=e&&t?t.bandwidth():o-n-r;return Math.max(0,l-i-a)}_height({y:t},{y:e},{marginTop:n,marginBottom:r,height:o}){const{insetTop:i,insetBottom:a}=this,l=e&&t?t.bandwidth():o-n-r;return Math.max(0,l-i-a)}}const ol={ariaLabel:"bar"};class il extends rl{constructor(t,e={}){const{x1:n,x2:r,y:o}=e;super(t,{x1:{value:n,scale:"x"},x2:{value:r,scale:"x"},y:{value:o,scale:"y",type:"band",optional:!0}},e,ol)}_transform(t,e,{x:n}){t.call(xr,e,{x:n},0,0)}_x({x:t},{x1:e,x2:n},{marginLeft:r}){const{insetLeft:o}=this;return Vn(t)?r+o:t=>Math.min(e[t],n[t])+o}_width({x:t},{x1:e,x2:n},{marginRight:r,marginLeft:o,width:i}){const{insetLeft:a,insetRight:l}=this;return Vn(t)?i-r-o-a-l:t=>Math.max(0,Math.abs(n[t]-e[t])-a-l)}}class al extends rl{constructor(t,e={}){const{x:n,y1:r,y2:o}=e;super(t,{y1:{value:r,scale:"y"},y2:{value:o,scale:"y"},x:{value:n,scale:"x",type:"band",optional:!0}},e,ol)}_transform(t,e,{y:n}){t.call(xr,e,{y:n},0,0)}_y({y:t},{y1:e,y2:n},{marginTop:r}){const{insetTop:o}=this;return Vn(t)?r+o:t=>Math.min(e[t],n[t])+o}_height({y:t},{y1:e,y2:n},{marginTop:r,marginBottom:o,height:i}){const{insetTop:a,insetBottom:l}=this;return Vn(t)?i-r-o-a-l:t=>Math.max(0,Math.abs(n[t]-e[t])-a-l)}}function ll(t,e={y:$,x2:M}){return new il(t,va(eo(pa(e))))}function sl(t,e={x:$,y2:M}){return new al(t,xa(no(ma(e))))}const cl={ariaLabel:"cell"};class ul extends rl{constructor(t,{x:e,y:n,...r}={}){super(t,{x:{value:e,scale:"x",type:"band",optional:!0},y:{value:n,scale:"y",type:"band",optional:!0}},r,cl)}_transform(t,e){t.call(xr,e,{},0,0)}}function fl(t,e={}){let{x:n,y:r,...o}=e;return[n,r]=Z(n,r),new ul(t,{...o,x:n,y:r})}const hl={ariaLabel:"dot",fill:"none",stroke:"currentColor",strokeWidth:1.5};function dl(t){return void 0===t.sort&&void 0===t.reverse?Xt({channel:"r",order:"descending"},t):t}class pl extends _r{constructor(t,n={}){const{x:r,y:o,r:i,rotate:a,symbol:s=e.symbolCircle,frameAnchor:c}=n,[u,f]=W(a,0),[h,d]=function(t){if(null==t||It(t))return[void 0,t];if("string"==typeof t){const e=Nt.get(`${t}`.toLowerCase());if(e)return[void 0,e]}return[t,void 0]}(s),[p,m]=W(i,null==h?3:4.5);super(t,{x:{value:r,scale:"x",optional:!0},y:{value:o,scale:"y",optional:!0},r:{value:p,scale:"r",filter:l,optional:!0},rotate:{value:u,optional:!0},symbol:{value:h,scale:"auto",optional:!0}},dl(n),hl),this.r=m,this.rotate=f,this.symbol=d,this.frameAnchor=kt(c);const{channels:g}=this,{symbol:y}=g;if(y){const{fill:t,stroke:e}=g;y.hint={fill:t?t.value===y.value?"color":"currentColor":this.fill,stroke:e?e.value===y.value?"color":"currentColor":this.stroke}}}render(t,n,r,o,i){const{x:a,y:l}=n,{x:c,y:u,r:f,rotate:h,symbol:d}=r,{r:p,rotate:m,symbol:g}=this,[y,v]=Lr(this,o),x=this.symbol===e.symbolCircle,w=f?void 0:p*p*Math.PI;return s(p)&&(t=[]),_e("svg:g",i).call(mr,this,o,i).call(xr,this,{x:c&&a,y:u&&l}).call((n=>n.selectAll().data(t).enter().append(x?"circle":"path").call(gr,this).call(x?t=>{t.attr("cx",c?t=>c[t]:y).attr("cy",u?t=>u[t]:v).attr("r",f?t=>f[t]:p)}:t=>{t.attr("transform",fo`translate(${c?t=>c[t]:y},${u?t=>u[t]:v})${h?t=>` rotate(${h[t]})`:m?` rotate(${m})`:""}`).attr("d",f&&d?t=>{const n=e.pathRound();return d[t].draw(n,f[t]*f[t]*Math.PI),n}:f?t=>{const n=e.pathRound();return g.draw(n,f[t]*f[t]*Math.PI),n}:d?t=>{const n=e.pathRound();return d[t].draw(n,w),n}:(()=>{const t=e.pathRound();return g.draw(t,w),t})())}).call(fr,this,r))).node()}}function ml(t,e={}){let{x:n,y:r,...o}=e;return void 0===e.frameAnchor&&([n,r]=Z(n,r)),new pl(t,{...o,x:n,y:r})}const gl={ariaLabel:"line",fill:"none",stroke:"currentColor",strokeWidth:1.5,strokeLinecap:"round",strokeLinejoin:"round",strokeMiterlimit:1};class yl extends _r{constructor(t,e={}){const{x:n,y:r,z:o,curve:i,tension:a}=e;super(t,{x:{value:n,scale:"x"},y:{value:r,scale:"y"},z:{value:Q(e),optional:!0}},e,gl),this.z=o,this.curve=Wi(i,a),Da(this,e)}filter(t){return t}project(t,e,n){this.curve!==Di&&super.project(t,e,n)}render(t,n,r,o,i){const{x:a,y:l}=r,{curve:s}=this;return _e("svg:g",i).call(mr,this,o,i).call(xr,this,n).call((n=>n.selectAll().data(pr(t,[a,l],this,r)).enter().append("path").call(gr,this).call(hr,this,r).call(Ha,this,r,i).attr("d",s===Di&&i.projection?function(t,n,r){const o=e.geoPath(t);return n=T(n),r=T(r),t=>{let e=[];const i=[e];for(const o of t)-1===o?(e=[],i.push(e)):e.push([n[o],r[o]]);return o({type:"MultiLineString",coordinates:i})}}(i.projection,a,l):e.line().curve(s).defined((t=>t>=0)).x((t=>a[t])).y((t=>l[t]))))).node()}}function vl(t,e={}){let{x:n,y:r,...o}=e;return[n,r]=Z(n,r),new yl(t,{...o,x:n,y:r})}function xl(t,e={}){const{x:n=M,y:r=$,...o}=e;return new yl(t,Xi({...o,x:n,y:r}))}function wl(t,e={}){const{x:n=$,y:r=M,...o}=e;return new yl(t,Gi({...o,x:n,y:r}))}const bl={ariaLabel:"rect"};class kl extends _r{constructor(t,e={}){const{x1:n,y1:r,x2:o,y2:i,inset:a=0,insetTop:l=a,insetRight:s=a,insetBottom:c=a,insetLeft:u=a,rx:f,ry:h}=e;super(t,{x1:{value:n,scale:"x",optional:!0},y1:{value:r,scale:"y",optional:!0},x2:{value:o,scale:"x",optional:!0},y2:{value:i,scale:"y",optional:!0}},e,bl),this.insetTop=z(l),this.insetRight=z(s),this.insetBottom=z(c),this.insetLeft=z(u),this.rx=wr(f,"auto"),this.ry=wr(h,"auto")}render(t,e,n,r,o){const{x:i,y:a}=e,{x1:l,y1:s,x2:c,y2:u}=n,{marginTop:f,marginRight:h,marginBottom:d,marginLeft:p,width:m,height:g}=r,{projection:y}=o,{insetTop:v,insetRight:x,insetBottom:w,insetLeft:b,rx:k,ry:$}=this;return _e("svg:g",o).call(mr,this,r,o).call(xr,this,{x:l&&c&&i,y:s&&u&&a},0,0).call((e=>e.selectAll().data(t).enter().append("rect").call(gr,this).attr("x",l&&c&&(y||!Vn(i))?t=>Math.min(l[t],c[t])+b:p+b).attr("y",s&&u&&(y||!Vn(a))?t=>Math.min(s[t],u[t])+v:f+v).attr("width",l&&c&&(y||!Vn(i))?t=>Math.max(0,Math.abs(c[t]-l[t])-b-x):m-h-p-x-b).attr("height",s&&u&&(y||!Vn(a))?t=>Math.max(0,Math.abs(s[t]-u[t])-v-w):g-f-d-v-w).call(vr,"rx",k).call(vr,"ry",$).call(fr,this,n))).node()}}function $l(t,e={y:$,interval:1,x2:M}){return new kl(t,va(to(pa(e))))}function Ml(t,e={x:$,interval:1,y2:M}){return new kl(t,xa(Kr(ma(e))))}function Ll(t,e){e=function({x:t,y:e,color:n,size:r,fx:o,fy:i,mark:a}={}){U(t)||(t=zl(t));U(e)||(e=zl(e));U(n)||(n=vt(n)?{color:n}:zl(n));U(r)||(r=zl(r));U(o)&&({value:o}=zl(o));U(i)&&({value:i}=zl(i));null!=a&&(a=`${a}`.toLowerCase());return{x:t,y:e,color:n,size:r,fx:o,fy:i,mark:a}}(e);const{x:n,y:r,color:o,size:i}=e,a=Rl(t,n),l=Rl(t,r),s=Rl(t,o),c=Rl(t,i);let u,f,h,{fx:d,fy:p,x:{value:m,reduce:g,zero:y,...v},y:{value:x,reduce:w,zero:b,...k},color:{value:$,color:M,reduce:L},size:{value:A,reduce:R},mark:z}=e;if(void 0===g&&(g=null==w&&null==m&&null==A&&null!=x?"count":null),void 0===w&&(w=null==g&&null==x&&null==A&&null!=m?"count":null),void 0!==R||null!=A||null!=L||null!=g||null!=w||null!=m&&!ht(a)||null!=x&&!ht(l)||(R="count"),void 0===y&&(y=!!Ol(g)||void 0),void 0===b&&(b=!!Ol(w)||void 0),null==m&&null==x)throw new Error("must specify x or y");if(null!=g&&null==x)throw new Error("reducing x requires y");if(null!=w&&null==m)throw new Error("reducing y requires x");switch(void 0===z&&(z=null!=A||null!=R?"dot":Ol(g)||Ol(w)||null!=L?"bar":null!=m&&null!=x?ht(a)||ht(l)||null==g&&null==w&&!Al(a)&&!Al(l)?"dot":"line":null!=m||null!=x?"rule":null),z){case"dot":h=ml,f="stroke";break;case"line":h=a&&l?vl:a?xl:wl,f="stroke",Sl(s)&&(u=null);break;case"area":h=b?Wa:y||l&&Al(l)?ja:Wa,f="fill",Sl(s)&&(u=null);break;case"rule":h=a?so:co,f="stroke";break;case"bar":h=b?El(g,a)?sl:Ml:y?El(w,l)?ll:$l:El(g,a)&&El(w,l)?fl:El(g,a)?sl:El(w,l)?ll:Ml,f="fill";break;default:throw new Error(`invalid mark: ${z}`)}let O,E={fx:d,fy:p,x:a??void 0,y:l??void 0,[f]:s??M,z:u,r:c??void 0},S={[f]:L??void 0,r:R??void 0};if(null!=g&&null!=w)throw new Error("cannot reduce both x and y");return null!=w?(S.y=w,O=ht(a)?Qt:qi):null!=g?(S.x=g,O=ht(l)?Jt:Fi):null==L&&null==R||(a&&l?O=ht(a)&&ht(l)?Kt:ht(a)?Fi:ht(l)?qi:Yi:a?O=ht(a)?Qt:qi:l&&(O=ht(l)?Jt:Fi)),O!==Yi&&O!==qi||(E.x={value:a,...v}),O!==Yi&&O!==Fi||(E.y={value:l,...k}),void 0===y&&(y=a&&!(O===Yi||O===qi)&&(h===ll||h===ja||h===$l||h===co)),void 0===b&&(b=l&&!(O===Yi||O===Fi)&&(h===sl||h===Wa||h===Ml||h===so)),{fx:d??null,fy:p??null,x:{value:m??null,reduce:g??null,zero:!!y,...v},y:{value:x??null,reduce:w??null,zero:!!b,...k},color:{value:$??null,reduce:L??null,...void 0!==M&&{color:M}},size:{value:A??null,reduce:R??null},mark:z,markImpl:h,markOptions:E,transformImpl:O,transformOptions:S,colorMode:f}}function Al(t){let n,r;for(const o of t){if(null==o)continue;if(void 0===n){n=o;continue}const t=Math.sign(e.ascending(n,o));if(t){if(void 0!==r&&t!==r)return!1;n=o,r=t}}return!0}function Rl(t,e){const n=x(t,e.value);return n&&(n.label=ot(e.value)),n}function zl(t){return function(t){if(null==t)return!1;if("function"==typeof t.reduceIndex)return!0;if("function"==typeof t.reduce&&G(t))return!0;if(/^p\d{2}$/i.test(t))return!0;switch(`${t}`.toLowerCase()){case"first":case"last":case"count":case"distinct":case"sum":case"proportion":case"proportion-facet":case"deviation":case"min":case"min-index":case"max":case"max-index":case"mean":case"median":case"variance":case"mode":return!0}return!1}(t)?{reduce:t}:{value:t}}function Ol(t){return/^(?:distinct|count|sum|proportion)$/i.test(t)}function El(t,e){return!(null!=t&&!function(t){return/^(?:first|last|mode)$/i.test(t)}(t)||!e)&&ht(e)}function Sl(t){return!!t&&new e.InternSet(t).size>t.length>>1}function Cl(t,e={}){return Nl(Object.fromEntries(["x","x1","x2"].filter((t=>null!=e[t])).map((e=>[e,t]))),e)}function Bl(t,e={}){return Nl(Object.fromEntries(["y","y1","y2"].filter((t=>null!=e[t])).map((e=>[e,t]))),e)}function Tl(t={},n={}){const r=Q(n),o=Object.entries(t).map((([t,e])=>{const r=et(t,n);if(null==r)throw new Error(`missing channel: ${t}`);const[o,i]=nt(r);return{key:t,input:r,output:o,setOutput:i,map:Il(e)}}));return{...Wt(n,((t,n)=>{const i=x(t,r),a=o.map((({input:e})=>x(t,e))),l=o.map((({setOutput:e})=>e(new Array(t.length))));for(const t of n)for(const n of i?e.group(t,(t=>i[t])).values():[t])o.forEach((({map:t},e)=>t.mapIndex(n,a[e],l[e])));return{data:t,facets:n}})),...Object.fromEntries(o.map((({key:t,output:e})=>[t,e])))}}const Nl=Tl;function Il(t){if(null==t)throw new Error("missing map");if("function"==typeof t.mapIndex)return t;if("function"==typeof t.map&&G(t))return function(t){return console.warn("deprecated map interface; implement mapIndex instead."),{mapIndex:t.map.bind(t)}}(t);if("function"==typeof t)return jl(t);switch(`${t}`.toLowerCase()){case"cumsum":return Wl;case"rank":return jl(e.rank);case"quantile":return jl(Pl)}throw new Error(`invalid map: ${t}`)}function Pl(t){const n=e.count(t)-1;return e.rank(t).map((t=>t/n))}function jl(t){return{mapIndex(e,n,r){const o=t(K(n,e));if(o.length!==e.length)throw new Error("map function returned a mismatched length");for(let t=0,n=e.length;t<n;++t)r[e[t]]=o[t]}}}const Wl={mapIndex(t,e,n){let r=0;for(const o of t)n[o]=r+=e[o]}},Dl={ariaLabel:"tick",fill:null,stroke:"currentColor"};class ql extends _r{constructor(t,e,n){super(t,e,n,Dl)}render(t,e,n,r,o){return _e("svg:g",o).call(mr,this,r,o).call(this._transform,this,e).call((o=>o.selectAll().data(t).enter().append("line").call(gr,this).attr("x1",this._x1(e,n,r)).attr("x2",this._x2(e,n,r)).attr("y1",this._y1(e,n,r)).attr("y2",this._y2(e,n,r)).call(fr,this,n))).node()}}class Fl extends ql{constructor(t,e={}){const{x:n,y:r,inset:o=0,insetTop:i=o,insetBottom:a=o}=e;super(t,{x:{value:n,scale:"x"},y:{value:r,scale:"y",type:"band",optional:!0}},e),this.insetTop=z(i),this.insetBottom=z(a)}_transform(t,e,{x:n}){t.call(xr,e,{x:n},ir,0)}_x1(t,{x:e}){return t=>e[t]}_x2(t,{x:e}){return t=>e[t]}_y1({y:t},{y:e},{marginTop:n}){const{insetTop:r}=this;return e&&t?t=>e[t]+r:n+r}_y2({y:t},{y:e},{height:n,marginBottom:r}){const{insetBottom:o}=this;return e&&t?n=>e[n]+t.bandwidth()-o:n-r-o}}class Yl extends ql{constructor(t,e={}){const{x:n,y:r,inset:o=0,insetRight:i=o,insetLeft:a=o}=e;super(t,{y:{value:r,scale:"y"},x:{value:n,scale:"x",type:"band",optional:!0}},e),this.insetRight=z(i),this.insetLeft=z(a)}_transform(t,e,{y:n}){t.call(xr,e,{y:n},0,ir)}_x1({x:t},{x:e},{marginLeft:n}){const{insetLeft:r}=this;return e&&t?t=>e[t]+r:n+r}_x2({x:t},{x:e},{width:n,marginRight:r}){const{insetRight:o}=this;return e&&t?n=>e[n]+t.bandwidth()-o:n-r-o}_y1(t,{y:e}){return t=>e[t]}_y2(t,{y:e}){return t=>e[t]}}function _l(t,e={}){const{x:n=M,...r}=e;return new Fl(t,{...r,x:n})}function Gl(t,e={}){const{y:n=M,...r}=e;return new Yl(t,{...r,y:n})}function Xl(t){const e=Ul(t),n=Hl(t);return t.map((t=>t<e||t>n?t:NaN))}function Ul(t){const n=2.5*Vl(t)-1.5*Zl(t);return e.min(t,(t=>t>=n?t:NaN))}function Hl(t){const n=2.5*Zl(t)-1.5*Vl(t);return e.max(t,(t=>t<=n?t:NaN))}function Vl(t){return e.quantile(t,.25)}function Zl(t){return e.quantile(t,.75)}const Ql={ariaLabel:"raster",stroke:null,pixelSize:1};function Jl(t,e){const n=+t;if(isNaN(n))throw new Error(`invalid ${e}: ${t}`);return n}function Kl(t,e){const n=Math.floor(t);if(isNaN(n))throw new Error(`invalid ${e}: ${t}`);return n}class ts extends _r{constructor(t,e,n={},r){let{width:o,height:i,x:a,y:l,x1:s=(null==a?0:void 0),y1:c=(null==l?0:void 0),x2:u=(null==a?o:void 0),y2:f=(null==l?i:void 0),pixelSize:h=r.pixelSize,blur:d=0,interpolate:p}=n;if(null!=o&&(o=Kl(o,"width")),null!=i&&(i=Kl(i,"height")),null!=s&&(s=Jl(s,"x1")),null!=c&&(c=Jl(c,"y1")),null!=u&&(u=Jl(u,"x2")),null!=f&&(f=Jl(f,"y2")),null==a&&(null==s||null==u))throw new Error("missing x");if(null==l&&(null==c||null==f))throw new Error("missing y");null!=t&&null!=o&&null!=i&&(void 0===a&&null!=s&&null!=u&&(a=function(t,e,n){return{transform(r){const o=r.length,i=new Float64Array(o),a=(e-t)/n,l=t+a/2;for(let t=0;t<o;++t)i[t]=t%n*a+l;return i}}}(s,u,o)),void 0===l&&null!=c&&null!=f&&(l=function(t,e,n,r){return{transform(o){const i=o.length,a=new Float64Array(i),l=(e-t)/r,s=t+l/2;for(let t=0;t<i;++t)a[t]=Math.floor(t/n)%r*l+s;return a}}}(c,f,o,i))),super(t,{x:{value:a,scale:"x",optional:!0},y:{value:l,scale:"y",optional:!0},x1:{value:null==s?null:[s],scale:"x",optional:!0,filter:null},y1:{value:null==c?null:[c],scale:"y",optional:!0,filter:null},x2:{value:null==u?null:[u],scale:"x",optional:!0,filter:null},y2:{value:null==f?null:[f],scale:"y",optional:!0,filter:null},...e},n,r),this.width=o,this.height=i,this.pixelSize=Jl(h,"pixelSize"),this.blur=Jl(d,"blur"),this.interpolate=null==a||null==l?null:function(t){if("function"==typeof t)return t;if(null==t)return as;switch(`${t}`.toLowerCase()){case"none":return as;case"nearest":return ss;case"barycentric":return ls();case"random-walk":return cs()}throw new Error(`invalid interpolate: ${t}`)}(p)}}class es extends ts{constructor(t,e={}){const{imageRendering:n}=e;if(null==t){const{fill:t,fillOpacity:n}=e;void 0!==W(n)[0]&&(e=is("fillOpacity",e)),void 0!==j(t)[0]&&(e=is("fill",e))}super(t,void 0,e,Ql),this.imageRendering=wr(n,"auto")}scale(t,{color:e,...n},r){return super.scale(t,n,r)}render(t,n,r,o,i){const a=n[r.channels.fill?.scale]??(t=>t),{x:l,y:s}=r,{document:c}=i,[u,f,h,d]=rs(r,o,i),p=h-u,m=d-f,{pixelSize:g,width:y=Math.round(Math.abs(p)/g),height:v=Math.round(Math.abs(m)/g)}=this,x=y*v;let{fill:w,fillOpacity:b}=r,k=0;if(this.interpolate){const e=y/p,n=v/m,r=Y(l,(t=>(t-u)*e),Float64Array),o=Y(s,(t=>(t-f)*n),Float64Array);w&&(w=this.interpolate(t,y,v,r,o,w)),b&&(b=this.interpolate(t,y,v,r,o,b))}else null==this.data&&t&&(k=t.fi*x);const $=c.createElement("canvas");$.width=y,$.height=v;const M=$.getContext("2d"),L=M.createImageData(y,v),A=L.data;let{r:R,g:z,b:O}=e.rgb(this.fill)??{r:0,g:0,b:0},E=255*(this.fillOpacity??1);for(let t=0;t<x;++t){const n=t<<2;if(w){const r=a(w[t+k]);if(null==r){A[n+3]=0;continue}({r:R,g:z,b:O}=e.rgb(r))}b&&(E=255*b[t+k]),A[n+0]=R,A[n+1]=z,A[n+2]=O,A[n+3]=E}return this.blur>0&&e.blurImage(L,this.blur),M.putImageData(L,0,0),_e("svg:g",i).call(mr,this,o,i).call(xr,this,n).call((t=>t.append("image").attr("transform",`translate(${u},${f}) scale(${Math.sign(h-u)},${Math.sign(d-f)})`).attr("width",Math.abs(p)).attr("height",Math.abs(m)).attr("preserveAspectRatio","none").call(vr,"image-rendering",this.imageRendering).call(gr,this).attr("xlink:href",$.toDataURL()))).node()}}function ns(t,e,n){arguments.length<3&&(n=e,e=null);let{x:r,y:o,[t]:i,...a}=n;return void 0===r&&void 0===o&&function(t){if(!ut(t))return!1;for(const e of t)if(null!=e)return"object"==typeof e&&"0"in e&&"1"in e}(e)&&(r=O,o=E,void 0===i&&(i=S)),[e,{...a,x:r,y:o,[t]:i}]}function rs({x1:t,y1:e,x2:n,y2:r},o,{projection:i}){const{width:a,height:l,marginTop:s,marginRight:c,marginBottom:u,marginLeft:f}=o;return[t&&null==i?t[0]:f,e&&null==i?e[0]:s,n&&null==i?n[0]:a-c,r&&null==i?r[0]:l-u]}function os({x1:t,y1:e,x2:n,y2:r},o,i,a){const l={};return t&&(l.x1=t),e&&(l.y1=e),n&&(l.x2=n),r&&(l.y2=r),rs(ke(l,o),i,a)}function is(t,e={}){const{[t]:n}=e;if("function"!=typeof n)throw new Error(`invalid ${t}: not a function`);return Dt({...e,[t]:void 0},(function(r,o,i,a,l,s){const{x:c,y:u}=a;if(!c)throw new Error("missing scale: x");if(!u)throw new Error("missing scale: y");const[f,h,d,p]=os(i,a,l,s),m=d-f,g=p-h,{pixelSize:y}=this,{width:v=Math.round(Math.abs(m)/y),height:x=Math.round(Math.abs(g)/y)}=e,w=new Array(v*x*(o?o.length:1)),b=m/v,k=g/x;let $=0;for(const t of o??[void 0])for(let e=.5;e<x;++e)for(let r=.5;r<v;++r,++$)w[$]=n(c.invert(f+r*b),u.invert(h+e*k),t);return{data:w,facets:o,channels:{[t]:{value:w,scale:"auto"}}}}))}function as(t,e,n,r,o,i){const a=new Array(e*n);for(const l of t)r[l]<0||r[l]>=e||o[l]<0||o[l]>=n||(a[Math.floor(o[l])*e+Math.floor(r[l])]=i[l]);return a}function ls({random:t=e.randomLcg(42)}={}){return(n,r,o,i,a,l)=>{const s=n.length,c=r>>2,u=(o>>2)-1,f=s+2*c+2*u,h=new Float64Array(2*f);for(let t=0;t<s;++t)h[2*t]=i[n[t]],h[2*t+1]=a[n[t]];let d=s;const p=(t,e)=>(h[2*d]=t,h[2*d+1]=e,d++);for(let t=0;t<=c;++t)p(t/c*r,0),p(t/c*r,o);for(let t=0;t<u;++t)p(r,t/u*o),p(0,t/u*o);l=K(l,n);const m=new e.Delaunay(h.subarray(0,2*s));for(let t,e=s;e<f;++e)l[e]=l[t=m.find(h[2*e],h[2*e+1],t)];const{points:g,triangles:y}=new e.Delaunay(h),v=new l.constructor(r*o),x=function(t,e){return gt(t)||dt(t)?us:function(t){return(e,n,r,o,i,a,l,s)=>{const c=t(l,s);return c<n?e:c<n+o?r:i}}(e)}(l,t);for(let t=0;t<y.length;t+=3){const e=y[t],n=y[t+1],i=y[t+2],a=g[2*e],s=g[2*n],c=g[2*i],u=g[2*e+1],f=g[2*n+1],h=g[2*i+1],d=Math.min(a,s,c),p=Math.max(a,s,c),m=Math.min(u,f,h),w=Math.max(u,f,h),b=(f-h)*(a-c)+(u-h)*(c-s);if(!b)continue;const k=l[e],$=l[n],M=l[i];for(let t=Math.floor(d);t<p;++t)for(let e=Math.floor(m);e<w;++e){if(t<0||t>=r||e<0||e>=o)continue;const n=t+.5,i=e+.5,l=((f-h)*(n-c)+(i-h)*(c-s))/b;if(l<0)continue;const d=((h-u)*(n-c)+(i-h)*(a-c))/b;if(d<0)continue;const p=1-l-d;p<0||(v[t+r*e]=x(k,l,$,d,M,p,t,e))}}return v}}function ss(t,n,r,o,i,a){const l=new a.constructor(n*r),s=e.Delaunay.from(t,(t=>o[t]),(t=>i[t]));let c,u;for(let e=.5,o=0;e<r;++e){u=c;for(let r=.5;r<n;++r,++o)u=s.find(r,e,u),.5===r&&(c=u),l[o]=a[t[u]]}return l}function cs({random:t=e.randomLcg(42),minDistance:n=.5,maxSteps:r=2}={}){return(o,i,a,l,s,c)=>{const u=new c.constructor(i*a),f=e.Delaunay.from(o,(t=>l[t]),(t=>s[t]));let h,d,p;for(let e=.5,m=0;e<a;++e){d=h;for(let a=.5;a<i;++a,++m){let i,g=a,y=e;p=d=f.find(g,y,d),.5===a&&(h=d);let v=0;for(;(i=Math.hypot(l[o[p]]-g,s[o[p]]-y))>n&&v<r;){const n=2*t(a,e,v)*Math.PI;g+=Math.cos(n)*i,y+=Math.sin(n)*i,p=f.find(g,y,p),++v}u[m]=c[o[p]]}}return u}}function us(t,e,n,r,o,i){return e*t+r*n+i*o}const fs={ariaLabel:"contour",fill:"none",stroke:"currentColor",strokeMiterlimit:1,pixelSize:2};class hs extends ts{constructor(t,{smooth:n=!0,value:r,...o}={}){const i=sr({},o,fs);if(void 0===r)for(const t in i)if(null!=i[t].value){if(void 0!==r)throw new Error("ambiguous contour value");r=o[t],o[t]="value"}if(null!=r){const t={transform:t=>t.map((t=>t.value)),label:ot(r)};for(const e in i)"value"===o[e]&&(o[e]=t)}if(null==t){if(null==r)throw new Error("missing contour value");o=is("value",{value:r,...o}),r=null}else{let{interpolate:t}=o;void 0===r&&(r=M),void 0===t&&(o.interpolate="nearest")}super(t,{value:{value:r,optional:!0}},function({thresholds:t,interval:n,...r}){return t=Qi(t,n,e.thresholdSturges),Dt(r,(function(n,r,o,i,a,l){const[s,c,u,f]=os(o,i,a,l),h=u-s,d=f-c,{pixelSize:p,width:m=Math.round(Math.abs(h)/p),height:g=Math.round(Math.abs(d)/p)}=this,y=m/h,v=g/d,x=o.value.value,w=[];if(this.interpolate){const{x:t,y:e}=Fe(o,i,l),n=Y(t,(t=>(t-s)*y),Float64Array),a=Y(e,(t=>(t-c)*v),Float64Array),u=[o.x,o.y,o.value],f=[n,a,x];for(const t of r){const e=this.filter(t,u,f);w.push(this.interpolate(e,m,g,n,a,x))}}else if(r){const t=m*g,e=r.length;for(let n=0;n<e;++n)w.push(x.slice(n*t,n*t+t))}else w.push(x);if(this.blur>0)for(const t of w)e.blur2({data:t,width:m,height:g},this.blur);const b=function(t,n,r,o){if("function"==typeof t?.range)return t.range(t.floor(r),o);"function"==typeof t&&(t=t(n,r,o));if("number"!=typeof t)return F(t);const i=e.ticks(...e.nice(r,o,t),t);for(;i[i.length-1]>=o;)i.pop();for(;i[1]<r;)i.shift();return i}(t,x,...function(t){return[e.min(t,(t=>e.min(t,ds))),e.max(t,(t=>e.max(t,ds)))]}(w));if(null===b)throw new Error(`unsupported thresholds: ${t}`);const{contour:k}=e.contours().size([m,g]).smooth(this.smooth),$=[],M=[];for(const t of w)M.push(e.range($.length,$.push(...Y(b,(e=>k(t,e))))));for(const{coordinates:t}of $)for(const e of t)for(const t of e)for(const e of t)e[0]=e[0]/y+s,e[1]=e[1]/v+c;return{data:$,facets:M,channels:be(this.contourChannels,$)}}))}(o),fs);const a={geometry:{value:M}};for(const t in this.channels){const e=this.channels[t],{scale:n}=e;"x"!==n&&"y"!==n&&"value"!==t&&(a[t]=e,delete this.channels[t])}this.contourChannels=a,this.smooth=!!n}filter(t,{x:e,y:n,value:r,...o},i){return super.filter(t,o,i)}render(t,n,r,o,i){const{geometry:a}=r,l=e.geoPath();return _e("svg:g",i).call(mr,this,o,i).call(xr,this,n).call((e=>{e.selectAll().data(t).enter().append("path").call(gr,this).attr("d",(t=>l(a[t]))).call(fr,this,r)})).node()}}function ds(t){return isFinite(t)?t:NaN}const ps={ariaLabel:"delaunay link",fill:"none",stroke:"currentColor",strokeMiterlimit:1},ms={ariaLabel:"delaunay mesh",fill:null,stroke:"currentColor",strokeOpacity:.2},gs={ariaLabel:"hull",fill:"none",stroke:"currentColor",strokeWidth:1.5,strokeMiterlimit:1},ys={ariaLabel:"voronoi",fill:"none",stroke:"currentColor",strokeMiterlimit:1},vs={ariaLabel:"voronoi mesh",fill:null,stroke:"currentColor",strokeOpacity:.2};class xs extends _r{constructor(t,e={}){const{x:n,y:r,z:o,curve:i,tension:a}=e;super(t,{x:{value:n,scale:"x",optional:!0},y:{value:r,scale:"y",optional:!0},z:{value:o,optional:!0}},e,ps),this.curve=ji(i,a),Da(this,e)}render(t,n,r,o,i){const{x:a,y:l}=n,{x:s,y:c,z:u}=r,{curve:f}=this,[h,d]=Lr(this,o),p=s?t=>s[t]:C(h),m=c?t=>c[t]:C(d),g=this;function y(t){let n=-1;const o=[],a={};for(const t in r)a[t]=[];const l=[],s=[],c=[],u=[];function h(e,i){e=t[e],i=t[i],o.push(++n),l[n]=p(e),c[n]=m(e),s[n]=p(i),u[n]=m(i);for(const t in r)a[t].push(r[t][i])}const{halfedges:d,hull:y,triangles:v}=e.Delaunay.from(t,p,m);for(let t=0;t<d.length;++t){const e=d[t];e>t&&h(v[t],v[e])}for(let t=0;t<y.length;++t)h(y[t],y[(t+1)%y.length]);e.select(this).selectAll().data(o).enter().append("path").call(gr,g).attr("d",(t=>{const n=e.pathRound(),r=f(n);return r.lineStart(),r.point(l[t],c[t]),r.point(s[t],u[t]),r.lineEnd(),n})).call(fr,g,a).call(Ua,g,a,i)}return _e("svg:g",i).call(mr,this,o,i).call(xr,this,{x:s&&a,y:c&&l}).call(u?n=>n.selectAll().data(e.group(t,(t=>u[t])).values()).enter().append("g").each(y):e=>e.datum(t).each(y)).node()}}class ws extends _r{constructor(t,e={},n,r=(({z:t})=>t)){const{x:o,y:i}=e;super(t,{x:{value:o,scale:"x",optional:!0},y:{value:i,scale:"y",optional:!0},z:{value:r(e),optional:!0}},e,n)}render(t,n,r,o,i){const{x:a,y:l}=n,{x:s,y:c,z:u}=r,[f,h]=Lr(this,o),d=s?t=>s[t]:C(f),p=c?t=>c[t]:C(h),m=this;function g(t){const n=e.Delaunay.from(t,d,p);e.select(this).append("path").datum(t[0]).call(gr,m).attr("d",m._render(n,o)).call(fr,m,r)}return _e("svg:g",i).call(mr,this,o,i).call(xr,this,{x:s&&a,y:c&&l}).call(u?n=>n.selectAll().data(e.group(t,(t=>u[t])).values()).enter().append("g").each(g):e=>e.datum(t).each(g)).node()}}class bs extends ws{constructor(t,e={}){super(t,e,ms),this.fill="none"}_render(t){return t.render()}}class ks extends ws{constructor(t,e={}){super(t,e,gs,Q)}_render(t){return t.renderHull()}}class $s extends _r{constructor(t,e={}){const{x:n,y:r,z:o}=e;super(t,{x:{value:n,scale:"x",optional:!0},y:{value:r,scale:"y",optional:!0},z:{value:o,optional:!0}},e,ys)}render(t,n,r,o,i){const{x:a,y:l}=n,{x:s,y:c,z:u}=r,[f,h]=Lr(this,o),d=s?t=>s[t]:C(f),p=c?t=>c[t]:C(h),m=this;function g(t){const n=Ls(e.Delaunay.from(t,d,p),o);e.select(this).selectAll().data(t).enter().append("path").call(gr,m).attr("d",((t,e)=>n.renderCell(e))).call(fr,m,r)}return _e("svg:g",i).call(mr,this,o,i).call(xr,this,{x:s&&a,y:c&&l}).call(u?n=>n.selectAll().data(e.group(t,(t=>u[t])).values()).enter().append("g").each(g):e=>e.datum(t).each(g)).node()}}class Ms extends ws{constructor(t,e){super(t,e,vs),this.fill="none"}_render(t,e){return Ls(t,e).render()}}function Ls(t,e){const{width:n,height:r,marginTop:o,marginRight:i,marginBottom:a,marginLeft:l}=e;return t.voronoi([l,o,n-i,r-a])}function As(t,e,{x:n,y:r,...o}={}){return[n,r]=Z(n,r),new t(e,{...o,x:n,y:r})}const Rs={ariaLabel:"density",fill:"none",stroke:"currentColor",strokeMiterlimit:1};class zs extends _r{constructor(t,{x:n,y:r,z:o,weight:i,fill:a,stroke:l,...s}={}){const c=Es(a)&&(a="currentColor",!0),u=Es(l)&&(l="currentColor",!0);super(t,{x:{value:n,scale:"x",optional:!0},y:{value:r,scale:"y",optional:!0},z:{value:Q({z:o,fill:a,stroke:l}),optional:!0},weight:{value:i,optional:!0}},function(t,n,r){const o=100;let{bandwidth:i,thresholds:a}=t;return i=void 0===i?20:+i,a=void 0===a?20:"function"==typeof a?.[Symbol.iterator]?T(a):+a,Dt(t,(function(t,l,s,c,u,f){const h=s.weight?T(s.weight.value):null,d=s.z?.value,{z:p}=this,[m,g]=Lr(this,u),{width:v,height:x}=u,{x:w,y:b}=Fe(s,c,f),k=Object.fromEntries(Object.entries(s).filter((([t])=>!Os.has(t))).map((([t,e])=>[t,{...e,value:[]}]))),$=n&&[],M=r&&[],L=e.contourDensity().x(w?t=>w[t]:m).y(b?t=>b[t]:g).weight(h?t=>h[t]:1).size([v,x]).bandwidth(i),A=[];for(const t of l){const e=[];A.push(e);for(const n of d?dr(t,d,p):[t]){const t=L.contours(n);e.push([n,t])}}let R=a;if(!(R instanceof y)){let t=0;for(const e of A)for(const[,n]of e){const e=n.max;e>t&&(t=e)}R=Float64Array.from({length:a-1},((e,n)=>t*o*(n+1)/a))}const z=[],O=[];for(const t of A){const e=[];z.push(e);for(const[n,r]of t)for(const t of R){e.push(O.length),O.push(r(t/o)),$&&$.push(t),M&&M.push(t);for(const t in k)k[t].value.push(s[t].value[n[0]])}}return $&&$.push(0),M&&M.push(0),{data:t,facets:z,channels:{...k,...$&&{fill:{value:$,scale:"color"}},...M&&{stroke:{value:M,scale:"color"}},contours:{value:O}}}}))}({...s,fill:a,stroke:l},c,u),Rs),c&&(this.fill=void 0),u&&(this.stroke=void 0),this.z=o}filter(t){return t}render(t,n,r,o,i){const{contours:a}=r,l=e.geoPath();return _e("svg:g",i).call(mr,this,o,i).call(xr,this,{}).call((e=>e.selectAll().data(t).enter().append("path").call(gr,this).call(fr,this,r).attr("d",(t=>l(a[t]))))).node()}}const Os=new Set(["x","y","z","weight"]);function Es(t){return/^density$/i.test(t)}const Ss={ariaLabel:"geo",fill:"none",stroke:"currentColor",strokeWidth:1,strokeLinecap:"round",strokeLinejoin:"round",strokeMiterlimit:1};class Cs extends _r{constructor(t,e={}){const[n,r]=W(e.r,3);super(t,{geometry:{value:e.geometry},r:{value:n,scale:"r",filter:l,optional:!0}},dl(e),Ss),this.r=r}render(t,n,r,o,i){const{geometry:a,r:l}=r,c=e.geoPath(i.projection??function({x:t,y:n}){if(t||n)return t??=t=>t,n??=t=>t,e.geoTransform({point(e,r){this.stream.point(t(e),n(r))}})}(n)),{r:u}=this;return s(u)?t=[]:void 0!==u&&c.pointRadius(u),_e("svg:g",i).call(mr,this,o,i).call(xr,this,n).call((e=>{e.selectAll().data(t).enter().append("path").call(gr,this).attr("d",l?t=>c.pointRadius(l[t])(a[t]):t=>c(a[t])).call(fr,this,r)})).node()}}function Bs(t,{geometry:e=M,...n}={}){switch(t?.type){case"FeatureCollection":t=t.features;break;case"GeometryCollection":t=t.geometries;break;case"Feature":case"LineString":case"MultiLineString":case"MultiPoint":case"MultiPolygon":case"Point":case"Polygon":case"Sphere":t=[t]}return new Cs(t,{geometry:e,...n})}const Ts=.5,Ns=0;function Is(t,e,n,r){const o=r*(1.5/Ct),i=new Map;for(const a of t){let t=e[a],l=n[a];if(isNaN(t)||isNaN(l))continue;let s=Math.round(l=(l-Ns)/o),c=Math.round(t=(t-Ts)/r-(1&s)/2),u=l-s;if(3*Math.abs(u)>1){let e=t-c,n=c+(t<c?-1:1)/2,r=s+(l<s?-1:1),o=t-n,i=l-r;e*e+u*u>o*o+i*i&&(c=n+(1&s?1:-1)/2,s=r)}const f=`${c},${s}`;let h=i.get(f);void 0===h&&(i.set(f,h=[]),h.x=(c+(1&s)/2)*r+Ts,h.y=s*o+Ns),h.push(a)}return i.values()}const Ps={ariaLabel:"hexgrid",fill:"none",stroke:"currentColor",strokeOpacity:.1};class js extends _r{constructor({binWidth:t=20,clip:e=!0,...n}={}){super(void 0,void 0,{clip:e,...n},Ps),this.binWidth=z(t)}render(t,e,n,r,o){const{binWidth:i}=this,{marginTop:a,marginRight:l,marginBottom:s,marginLeft:c,width:u,height:f}=r,h=c-Ts,d=u-l-Ts,p=a-Ns,m=f-s-Ns,g=i/2,y=g*Bt,v=y/2,x=2*g,w=1.5*y,b=Math.floor(h/x),k=Math.ceil(d/x),$=Math.floor((p+v)/w),M=Math.ceil((m-v)/w)+1,L=`m0,${Ws(-y)}l${Ws(g)},${Ws(v)}v${Ws(y)}l${Ws(-g)},${Ws(v)}`;let A=L;for(let t=$;t<M;++t)for(let e=b;e<k;++e)A+=`M${Ws(e*x+(1&t)*g)},${Ws(t*w)}${L}`;return _e("svg:g",o).call(mr,this,r,o).call(xr,this,{},ir+Ts,ir+Ns).call((t=>t.append("path").call(gr,this).attr("d",A))).node()}}function Ws(t){return Math.round(1e3*t)/1e3}const Ds={ariaLabel:"image",fill:null,stroke:null};class qs extends _r{constructor(t,e={}){let{x:n,y:r,r:o,width:i,height:a,rotate:s,src:c,preserveAspectRatio:u,crossOrigin:f,frameAnchor:h,imageRendering:d}=e;null==o&&(o=void 0),void 0===o&&void 0===i&&void 0===a?i=a=16:void 0===i&&void 0!==a?i=a:void 0===a&&void 0!==i&&(a=i);const[p,m]="string"==typeof(g=c)&&(function(t){return/^\.*\//.test(t)}(g)||function(t){return/^(blob|data|file|http|https):/i.test(t)}(g))?[void 0,g]:[g,void 0];var g;const[y,v]=W(o),[x,w]=W(i,void 0!==v?2*v:void 0),[b,k]=W(a,void 0!==v?2*v:void 0),[$,M]=W(s,0);super(t,{x:{value:n,scale:"x",optional:!0},y:{value:r,scale:"y",optional:!0},r:{value:y,scale:"r",filter:l,optional:!0},width:{value:x,filter:l,optional:!0},height:{value:b,filter:l,optional:!0},rotate:{value:$,optional:!0},src:{value:p,optional:!0}},dl(e),Ds),this.src=m,this.width=w,this.rotate=M,this.height=k,this.r=v,this.preserveAspectRatio=wr(u,"xMidYMid"),this.crossOrigin=R(f),this.frameAnchor=kt(h),this.imageRendering=wr(d,"auto")}render(t,e,n,r,o){const{x:i,y:a}=e,{x:l,y:s,width:c,height:u,r:f,rotate:h,src:d}=n,{r:p,width:m,height:g,rotate:y}=this,[v,x]=Lr(this,r);return _e("svg:g",o).call(mr,this,r,o).call(xr,this,{x:l&&i,y:s&&a}).call((e=>e.selectAll().data(t).enter().append("image").call(gr,this).attr("x",Fs(l,c,f,v,m,p)).attr("y",Fs(s,u,f,x,g,p)).attr("width",c?t=>c[t]:void 0!==m?m:f?t=>2*f[t]:2*p).attr("height",u?t=>u[t]:void 0!==g?g:f?t=>2*f[t]:2*p).attr("transform",h?t=>`rotate(${h[t]})`:y?`rotate(${y})`:null).attr("transform-origin",h||y?fo`${l?t=>l[t]:v}px ${s?t=>s[t]:x}px`:null).call(vr,"href",d?t=>d[t]:this.src).call(vr,"preserveAspectRatio",this.preserveAspectRatio).call(vr,"crossorigin",this.crossOrigin).call(vr,"image-rendering",this.imageRendering).call(vr,"clip-path",f?t=>`circle(${f[t]}px)`:void 0!==p?`circle(${p}px)`:null).call(fr,this,n))).node()}}function Fs(t,e,n,r,o,i){return e&&t?n=>t[n]-e[n]/2:e?t=>r-e[t]/2:t&&void 0!==o?e=>t[e]-o/2:void 0!==o?r-o/2:n&&t?e=>t[e]-n[e]:n?t=>r-n[t]:t?e=>t[e]-i:r-i}function Ys(t,e,n){var r=0===t||1===t?0:Math.exp(Gs(e+n)-Gs(e)-Gs(n)+e*Math.log(t)+n*Math.log(1-t));return!(t<0||t>1)&&(t<(e+1)/(e+n+2)?r*_s(t,e,n)/e:1-r*_s(1-t,n,e)/n)}function _s(t,e,n){var r,o,i,a,l=1e-30,s=1,c=e+n,u=e+1,f=e-1,h=1,d=1-c*t/u;for(Math.abs(d)<l&&(d=l),a=d=1/d;s<=100&&(d=1+(o=s*(n-s)*t/((f+(r=2*s))*(e+r)))*d,Math.abs(d)<l&&(d=l),h=1+o/h,Math.abs(h)<l&&(h=l),a*=(d=1/d)*h,d=1+(o=-(e+s)*(c+s)*t/((e+r)*(u+r)))*d,Math.abs(d)<l&&(d=l),h=1+o/h,Math.abs(h)<l&&(h=l),a*=i=(d=1/d)*h,!(Math.abs(i-1)<3e-7));s++);return a}function Gs(t){var e,n,r,o=0,i=[76.18009172947146,-86.5053203294167,24.01409824083091,-1.231739572450155,.001208650973866179,-5395239384953e-18],a=1.000000000190015;for(r=(n=e=t)+5.5,r-=(e+.5)*Math.log(r);o<6;o++)a+=i[o]/++n;return Math.log(2.506628274631*a/e)-r}function Xs(t,e){var n=function(t,e,n){var r,o,i,a,l,s,c,u,f,h,d=e-1,p=n-1,m=0;if(t<=0)return 0;if(t>=1)return 1;for(e>=1&&n>=1?(i=t<.5?t:1-t,s=(2.30753+.27061*(a=Math.sqrt(-2*Math.log(i))))/(1+a*(.99229+.04481*a))-a,t<.5&&(s=-s),c=(s*s-3)/6,u=2/(1/(2*e-1)+1/(2*n-1)),f=s*Math.sqrt(c+u)/u-(1/(2*n-1)-1/(2*e-1))*(c+5/6-2/(3*u)),s=e/(e+n*Math.exp(2*f))):(r=Math.log(e/(e+n)),o=Math.log(n/(e+n)),s=t<(a=Math.exp(e*r)/e)/(f=a+(l=Math.exp(n*o)/n))?Math.pow(e*f*t,1/e):1-Math.pow(n*f*(1-t),1/n)),h=-Gs(e)-Gs(n)+Gs(e+n);m<10;m++){if(0===s||1===s)return s;if((s-=a=(l=(Ys(s,e,n)-t)/(a=Math.exp(d*Math.log(s)+p*Math.log(1-s)+h)))/(1-.5*Math.min(1,l*(d/s-p/(1-s)))))<=0&&(s=.5*(s+a)),s>=1&&(s=.5*(s+a+1)),Math.abs(a)<1e-8*s&&m>0)break}return s}(2*Math.min(t,1-t),.5*e,.5);return n=Math.sqrt(e*(1-n)/n),t>.5?n:-n}const Us={ariaLabel:"linear-regression",fill:"currentColor",fillOpacity:.1,stroke:"currentColor",strokeWidth:1.5,strokeLinecap:"round",strokeLinejoin:"round",strokeMiterlimit:1};class Hs extends _r{constructor(t,e={}){const{x:n,y:r,z:o,ci:i=.95,precision:a=4}=e;if(super(t,{x:{value:n,scale:"x"},y:{value:r,scale:"y"},z:{value:Q(e),optional:!0}},e,Us),this.z=o,this.ci=+i,this.precision=+a,!(0<=this.ci&&this.ci<1))throw new Error(`invalid ci; not in [0, 1): ${i}`);if(!(this.precision>0))throw new Error(`invalid precision: ${a}`)}render(t,e,n,r,o){const{x:i,y:a,z:l}=n,{ci:s}=this;return _e("svg:g",o).call(mr,this,r,o).call(xr,this,e).call((e=>e.selectAll().data(l?dr(t,l,this.z):[t]).enter().call((t=>t.append("path").attr("fill","none").call(gr,this).call(hr,this,{...n,fill:null,fillOpacity:null}).attr("d",(t=>this._renderLine(t,i,a))).call(s&&!bt(this.fill)?t=>t.select(Vs).attr("stroke","none").call(gr,this).call(hr,this,{...n,stroke:null,strokeOpacity:null,strokeWidth:null}).attr("d",(t=>this._renderBand(t,i,a))):()=>{}))))).node()}}function Vs(){return this.parentNode.insertBefore(this.ownerDocument.createElementNS(e.namespaces.svg,"path"),this)}class Zs extends Hs{constructor(t,e){super(t,e)}_renderBand(t,n,r){const{ci:o,precision:i}=this,[a,l]=e.extent(t,(t=>r[t])),s=Js(t,r,n),c=Ks(t,r,n,(1-o)/2,s);return e.area().y((t=>t)).x0((t=>c(t,-1))).x1((t=>c(t,1)))(e.range(a,l-i/2,i).concat(l))}_renderLine(t,n,r){const[o,i]=e.extent(t,(t=>r[t])),a=Js(t,r,n);return`M${a(o)},${o}L${a(i)},${i}`}}class Qs extends Hs{constructor(t,e){super(t,e)}_renderBand(t,n,r){const{ci:o,precision:i}=this,[a,l]=e.extent(t,(t=>n[t])),s=Js(t,n,r),c=Ks(t,n,r,(1-o)/2,s);return e.area().x((t=>t)).y0((t=>c(t,-1))).y1((t=>c(t,1)))(e.range(a,l-i/2,i).concat(l))}_renderLine(t,n,r){const[o,i]=e.extent(t,(t=>n[t])),a=Js(t,n,r);return`M${o},${a(o)}L${i},${a(i)}`}}function Js(t,e,n){let r=0,o=0,i=0,a=0;for(const l of t){const t=e[l],s=n[l];r+=t,o+=s,i+=t*s,a+=t*t}const l=t.length,s=(l*i-r*o)/(l*a-r*r),c=(o-s*r)/l;return t=>s*t+c}function Ks(t,n,r,o,i){const a=e.sum(t,(t=>n[t]))/t.length;let l=0,s=0;for(const e of t)l+=(n[e]-a)**2,s+=(r[e]-i(n[e]))**2;const c=Math.sqrt(s/(t.length-2)),u=Xs(o,t.length-2);return(e,n)=>{const r=i(e),o=c*Math.sqrt(1/t.length+(e-a)**2/l);return r+n*u*o}}function tc(t={}){let{path:n=M,delimiter:r,frameAnchor:o,treeLayout:i=e.tree,treeSort:a,treeSeparation:l,treeAnchor:s,...c}=t;s=nc(s),a=ic(a),void 0===o&&(o=s.frameAnchor);const u=lc(r),f=bc(c,cc),[h,d]=nt(),[p,m]=nt();return{x:h,y:p,frameAnchor:o,...Wt(c,((t,r)=>{const o=u(x(t,n)),c=d([]),h=m([]);let p=-1;const g=[],y=[],v=e.stratify().path((t=>o[t])),w=i();w.nodeSize&&w.nodeSize([1,1]),w.separation&&void 0!==l&&w.separation(l??L);for(const t of f)t[wc]=t[vc]([]);for(const e of r){const n=[],r=v(e.filter((t=>null!=o[t]))).each((e=>e.data=t[e.data]));null!=a&&r.sort(a),w(r);for(const t of r.descendants()){n.push(++p),g[p]=t.data,s.position(t,p,c,h);for(const e of f)e[wc][p]=e[xc](t)}y.push(n)}return{data:g,facets:y}})),...Object.fromEntries(f)}}function ec(t={}){let{path:n=M,delimiter:r,curve:o="bump-x",stroke:i="#555",strokeWidth:a=1.5,strokeOpacity:l=.5,treeLayout:s=e.tree,treeSort:c,treeSeparation:u,treeAnchor:f,...h}=t;f=nc(f),c=ic(c),h={curve:o,stroke:i,strokeWidth:a,strokeOpacity:l,...h};const d=lc(r),p=bc(h,uc),[m,g]=nt(),[y,v]=nt(),[w,b]=nt(),[k,$]=nt();return{x1:m,x2:y,y1:w,y2:k,...Wt(h,((t,r)=>{const o=d(x(t,n)),i=g([]),a=v([]),l=b([]),h=$([]);let m=-1;const y=[],w=[],k=e.stratify().path((t=>o[t])),M=s();M.nodeSize&&M.nodeSize([1,1]),M.separation&&void 0!==u&&M.separation(u??L);for(const t of p)t[wc]=t[vc]([]);for(const e of r){const n=[],r=k(e.filter((t=>null!=o[t]))).each((e=>e.data=t[e.data]));null!=c&&r.sort(c),M(r);for(const{source:t,target:e}of r.links()){n.push(++m),y[m]=e.data,f.position(t,m,i,l),f.position(e,m,a,h);for(const n of p)n[wc][m]=n[xc](e,t)}w.push(n)}return{data:y,facets:w}})),...Object.fromEntries(p)}}function nc(t="left"){switch(`${t}`.trim().toLowerCase()){case"left":return rc;case"right":return oc}throw new Error(`invalid tree anchor: ${t}`)}const rc={frameAnchor:"left",dx:6,position({x:t,y:e},n,r,o){r[n]=e,o[n]=-t}},oc={frameAnchor:"right",dx:-6,position({x:t,y:e},n,r,o){r[n]=-e,o[n]=-t}};function ic(t){return null==t||"function"==typeof t?t:`${t}`.trim().toLowerCase().startsWith("node:")?ac(cc(t)):ac(function(t){return e=>e.data?.[t]}(t))}function ac(t){return(e,n)=>r(t(e),t(n))}function lc(t="/"){return"/"==`${t}`?t=>t:e=>{return e.map((n=t,r="/",n=new RegExp(function(t){return`${t}`.replace(/[\\^$*+?.()|[\]{}]/g,"\\$&")}(n),"g"),t=>null==t?null:`${t}`.replace(n,r)));var n,r}}function sc(t){return G(t)&&"function"==typeof t.node}function cc(t){if(sc(t))return t.node;if((t=`${t}`.trim().toLowerCase()).startsWith("node:")){switch(t){case"node:name":return hc;case"node:path":return fc;case"node:internal":return mc;case"node:depth":return dc;case"node:height":return pc}throw new Error(`invalid node value: ${t}`)}}function uc(t){if(sc(t))return t.node;if(G(e=t)&&"function"==typeof e.link)return t.link;var e;if((t=`${t}`.trim().toLowerCase()).startsWith("node:")||t.startsWith("parent:")){switch(t){case"parent:name":return gc(hc);case"parent:path":return gc(fc);case"parent:depth":return gc(dc);case"parent:height":return gc(pc);case"node:name":return hc;case"node:path":return fc;case"node:internal":return mc;case"node:depth":return dc;case"node:height":return pc}throw new Error(`invalid link value: ${t}`)}}function fc(t){return t.id}function hc(t){return function(t){let e=t.length;for(;--e>0&&!yc(t,e););return t.slice(e+1)}(t.id)}function dc(t){return t.depth}function pc(t){return t.height}function mc(t){return!!t.children}function gc(t){return(e,n)=>null==n?void 0:t(n)}function yc(t,e){if("/"===t[e]){let n=0;for(;e>0&&"\\"===t[--e];)++n;if(0==(1&n))return!0}return!1}const vc=2,xc=3,wc=4;function bc(t,e){const n=[];for(const r in t){const o=t[r],i=e(o);void 0!==i&&n.push([r,...nt(o),i])}return n}function kc(t,e={}){let{fill:n,stroke:r,strokeWidth:o,strokeOpacity:i,strokeLinejoin:a,strokeLinecap:l,strokeMiterlimit:s,strokeDasharray:c,strokeDashoffset:u,marker:f,markerStart:h=f,markerEnd:d=f,dot:p=wt(h)&&wt(d),text:m="node:name",textStroke:g="white",title:y="node:path",dx:v,dy:x,...w}=e;return void 0===v&&(v=nc(w.treeAnchor).dx),Gr(Ja(t,ec({markerStart:h,markerEnd:d,stroke:void 0!==r?r:void 0===n?"node:internal":n,strokeWidth:o,strokeOpacity:i,strokeLinejoin:a,strokeLinecap:l,strokeMiterlimit:s,strokeDasharray:c,strokeDashoffset:u,...w})),p?ml(t,tc({fill:void 0===n?"node:internal":n,title:y,...w})):null,null!=m?yo(t,tc({text:m,fill:void 0===n?"currentColor":n,stroke:g,dx:v,dy:x,title:y,...w})):null)}function $c(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}function Mc(t,e,n,r,o){for(var i=o+1;r<=o;){var a=r+o>>>1,l=t[a];(void 0!==n?n(l,e):l-e)>=0?(i=a,o=a-1):r=a+1}return i}function Lc(t,e,n,r,o){for(var i=o+1;r<=o;){var a=r+o>>>1,l=t[a];(void 0!==n?n(l,e):l-e)>0?(i=a,o=a-1):r=a+1}return i}function Ac(t,e,n,r,o){for(var i=r-1;r<=o;){var a=r+o>>>1,l=t[a];(void 0!==n?n(l,e):l-e)<0?(i=a,r=a+1):o=a-1}return i}function Rc(t,e,n,r,o){for(var i=r-1;r<=o;){var a=r+o>>>1,l=t[a];(void 0!==n?n(l,e):l-e)<=0?(i=a,r=a+1):o=a-1}return i}function zc(t,e,n,r,o){for(;r<=o;){var i=r+o>>>1,a=t[i],l=void 0!==n?n(a,e):a-e;if(0===l)return i;l<=0?r=i+1:o=i-1}return-1}function Oc(t,e,n,r,o,i){return"function"==typeof n?i(t,e,n,void 0===r?0:0|r,void 0===o?t.length-1:0|o):i(t,e,void 0,void 0===n?0:0|n,void 0===r?t.length-1:0|r)}var Ec={ge:function(t,e,n,r,o){return Oc(t,e,n,r,o,Mc)},gt:function(t,e,n,r,o){return Oc(t,e,n,r,o,Lc)},lt:function(t,e,n,r,o){return Oc(t,e,n,r,o,Ac)},le:function(t,e,n,r,o){return Oc(t,e,n,r,o,Rc)},eq:function(t,e,n,r,o){return Oc(t,e,n,r,o,zc)}},Sc=0,Cc=1,Bc=function(t){if(!t||0===t.length)return new Uc(null);return new Uc(Xc(t))};function Tc(t,e,n,r,o){this.mid=t,this.left=e,this.right=n,this.leftPoints=r,this.rightPoints=o,this.count=(e?e.count:0)+(n?n.count:0)+r.length}var Nc=Tc.prototype;function Ic(t,e){t.mid=e.mid,t.left=e.left,t.right=e.right,t.leftPoints=e.leftPoints,t.rightPoints=e.rightPoints,t.count=e.count}function Pc(t,e){var n=Xc(e);t.mid=n.mid,t.left=n.left,t.right=n.right,t.leftPoints=n.leftPoints,t.rightPoints=n.rightPoints,t.count=n.count}function jc(t,e){var n=t.intervals([]);n.push(e),Pc(t,n)}function Wc(t,e){var n=t.intervals([]),r=n.indexOf(e);return r<0?Sc:(n.splice(r,1),Pc(t,n),Cc)}function Dc(t,e,n){for(var r=0;r<t.length&&t[r][0]<=e;++r){var o=n(t[r]);if(o)return o}}function qc(t,e,n){for(var r=t.length-1;r>=0&&t[r][1]>=e;--r){var o=n(t[r]);if(o)return o}}function Fc(t,e){for(var n=0;n<t.length;++n){var r=e(t[n]);if(r)return r}}function Yc(t,e){return t-e}function _c(t,e){var n=t[0]-e[0];return n||t[1]-e[1]}function Gc(t,e){var n=t[1]-e[1];return n||t[0]-e[0]}function Xc(t){if(0===t.length)return null;for(var e=[],n=0;n<t.length;++n)e.push(t[n][0],t[n][1]);e.sort(Yc);var r=e[e.length>>1],o=[],i=[],a=[];for(n=0;n<t.length;++n){var l=t[n];l[1]<r?o.push(l):r<l[0]?i.push(l):a.push(l)}var s=a,c=a.slice();return s.sort(_c),c.sort(Gc),new Tc(r,Xc(o),Xc(i),s,c)}function Uc(t){this.root=t}Nc.intervals=function(t){return t.push.apply(t,this.leftPoints),this.left&&this.left.intervals(t),this.right&&this.right.intervals(t),t},Nc.insert=function(t){var e=this.count-this.leftPoints.length;if(this.count+=1,t[1]<this.mid)this.left?4*(this.left.count+1)>3*(e+1)?jc(this,t):this.left.insert(t):this.left=Xc([t]);else if(t[0]>this.mid)this.right?4*(this.right.count+1)>3*(e+1)?jc(this,t):this.right.insert(t):this.right=Xc([t]);else{var n=Ec.ge(this.leftPoints,t,_c),r=Ec.ge(this.rightPoints,t,Gc);this.leftPoints.splice(n,0,t),this.rightPoints.splice(r,0,t)}},Nc.remove=function(t){var e=this.count-this.leftPoints;if(t[1]<this.mid)return this.left?4*(this.right?this.right.count:0)>3*(e-1)?Wc(this,t):2===(i=this.left.remove(t))?(this.left=null,this.count-=1,Cc):(i===Cc&&(this.count-=1),i):Sc;if(t[0]>this.mid)return this.right?4*(this.left?this.left.count:0)>3*(e-1)?Wc(this,t):2===(i=this.right.remove(t))?(this.right=null,this.count-=1,Cc):(i===Cc&&(this.count-=1),i):Sc;if(1===this.count)return this.leftPoints[0]===t?2:Sc;if(1===this.leftPoints.length&&this.leftPoints[0]===t){if(this.left&&this.right){for(var n=this,r=this.left;r.right;)n=r,r=r.right;if(n===this)r.right=this.right;else{var o=this.left,i=this.right;n.count-=r.count,n.right=r.left,r.left=o,r.right=i}Ic(this,r),this.count=(this.left?this.left.count:0)+(this.right?this.right.count:0)+this.leftPoints.length}else this.left?Ic(this,this.left):Ic(this,this.right);return Cc}for(o=Ec.ge(this.leftPoints,t,_c);o<this.leftPoints.length&&this.leftPoints[o][0]===t[0];++o)if(this.leftPoints[o]===t){this.count-=1,this.leftPoints.splice(o,1);for(i=Ec.ge(this.rightPoints,t,Gc);i<this.rightPoints.length&&this.rightPoints[i][1]===t[1];++i)if(this.rightPoints[i]===t)return this.rightPoints.splice(i,1),Cc}return Sc},Nc.queryPoint=function(t,e){if(t<this.mid){if(this.left)if(n=this.left.queryPoint(t,e))return n;return Dc(this.leftPoints,t,e)}if(t>this.mid){var n;if(this.right)if(n=this.right.queryPoint(t,e))return n;return qc(this.rightPoints,t,e)}return Fc(this.leftPoints,e)},Nc.queryInterval=function(t,e,n){var r;if(t<this.mid&&this.left&&(r=this.left.queryInterval(t,e,n)))return r;if(e>this.mid&&this.right&&(r=this.right.queryInterval(t,e,n)))return r;return e<this.mid?Dc(this.leftPoints,e,n):t>this.mid?qc(this.rightPoints,t,n):Fc(this.leftPoints,n)};var Hc=Uc.prototype;Hc.insert=function(t){this.root?this.root.insert(t):this.root=new Tc(t[0],null,null,[t],[t])},Hc.remove=function(t){if(this.root){var e=this.root.remove(t);return 2===e&&(this.root=null),e!==Sc}return!1},Hc.queryPoint=function(t,e){if(this.root)return this.root.queryPoint(t,e)},Hc.queryInterval=function(t,e,n){if(t<=e&&this.root)return this.root.queryInterval(t,e,n)},Object.defineProperty(Hc,"count",{get:function(){return this.root?this.root.count:0}}),Object.defineProperty(Hc,"intervals",{get:function(){return this.root?this.root.intervals([]):[]}});var Vc=$c(Bc);const Zc=({marginLeft:t})=>[1,t],Qc=({width:t,marginRight:e})=>[-1,t-e],Jc=({width:t,marginLeft:e,marginRight:n})=>[0,(e+t-n)/2],Kc=({marginTop:t})=>[1,t],tu=({height:t,marginBottom:e})=>[-1,t-e],eu=({height:t,marginTop:e,marginBottom:n})=>[0,(e+t-n)/2];function nu(t){return"string"==typeof t?{anchor:t}:t}function ru(t){const{anchor:e,padding:n,...r}=t,{r:o}=r;return[{anchor:e,padding:n,r:o},r]}function ou(t,e,n,r,o,i){if(null!=o&&"number"!=typeof o){const{channels:t,sort:e,reverse:n}=i;i={...i,channels:{r:{value:o,scale:"r"},...Mt(t)}},void 0===e&&void 0===n&&(i.sort={channel:"r",order:"descending"})}return Dt(i,(function(i,s,c,u,f,h){let{[e]:d,r:p}=c;if(!c[e])throw new Error(`missing channel: ${e}`);({[e]:d}=Fe(c,u,h));const m=p?void 0:void 0!==o?z(o):void 0!==this.r?this.r:3;p&&(p=x(p.value,u[p.scale]||M,Float64Array));let[g,y]=n(f);const v=g?au:iu,w=new Float64Array(d.length),b=p?t=>p[t]:()=>m;for(let t of s){const e=Vc();t=t.filter(p?t=>a(d[t])&&l(p[t]):t=>a(d[t]));const n=new Float64Array(2*t.length+2);for(const o of t){const t=b(o),i=g?t+r:0,a=d[o]-t,l=d[o]+t;let s=2;e.queryInterval(a-r,l+r,(([,,t])=>{const e=w[t]-i,a=d[o]-d[t],l=r+(p?p[o]+p[t]:2*m),c=Math.sqrt(l*l-a*a);n[s++]=e-c,n[s++]=e+c}));let c=n.slice(0,s);g&&(c=c.filter((t=>t>=0)));t:for(const t of c.sort(v)){for(let e=0;e<s;e+=2)if(n[e]+1e-6<t&&t<n[e+1]-1e-6)continue t;w[o]=t+i;break}e.insert([a,l,o])}}g||(g=1);for(const t of s)for(const e of t)w[e]=w[e]*g+y;return{data:i,facets:s,channels:{[e]:{value:d},[t]:{value:w},...p&&{r:{value:p}}}}}))}function iu(t,e){return Math.abs(t)-Math.abs(e)}function au(t,e){return t-e}function lu(t){if(void 0===t)return fu;if("function"==typeof t)return su(((e,n)=>t(K(n,e))));if(/^p\d{2}$/i.test(t))return cu(B(t));switch(`${t}`.toLowerCase()){case"deviation":return du;case"first":return fu;case"last":return hu;case"max":return pu;case"mean":return mu;case"median":return gu;case"min":return yu;case"sum":return vu;case"extent":return uu}throw new Error(`invalid basis: ${t}`)}function su(t){return{mapIndex(e,n,r){const o=+t(e,n);for(const t of e)r[t]=null===n[t]?NaN:n[t]/o}}}function cu(t){return su(((e,n)=>t(e,(t=>n[t]))))}const uu={mapIndex(t,n,r){const[o,i]=e.extent(t,(t=>n[t])),a=i-o;for(const e of t)r[e]=null===n[e]?NaN:(n[e]-o)/a}},fu=su(((t,e)=>{for(let r=0;r<t.length;++r){const o=e[t[r]];if(n(o))return o}})),hu=su(((t,e)=>{for(let r=t.length-1;r>=0;--r){const o=e[t[r]];if(n(o))return o}})),du={mapIndex(t,n,r){const o=e.mean(t,(t=>n[t])),i=e.deviation(t,(t=>n[t]));for(const e of t)r[e]=null===n[e]?NaN:i?(n[e]-o)/i:0}},pu=cu(e.max),mu=cu(e.mean),gu=cu(e.median),yu=cu(e.min),vu=cu(e.sum);function xu(t={}){"number"==typeof t&&(t={k:t});let{k:n,reduce:r,shift:o,anchor:i,strict:a}=t;if(void 0===i&&void 0!==o&&(i=function(t){switch(`${t}`.toLowerCase()){case"centered":return"middle";case"leading":return"start";case"trailing":return"end"}throw new Error(`invalid shift: ${t}`)}(o),Se(`Warning: the shift option is deprecated; please use anchor "${i}" instead.`)),!((n=Math.floor(n))>0))throw new Error(`invalid k: ${n}`);return function(t="mean"){if("string"==typeof t){if(/^p\d{2}$/i.test(t))return bu(B(t));switch(t.toLowerCase()){case"deviation":return bu(e.deviation);case"max":return ku(e.max);case"mean":return Mu;case"median":return bu(e.median);case"min":return ku(e.min);case"mode":return ku(e.mode);case"sum":return $u;case"variance":return bu(e.variance);case"difference":return Ou;case"ratio":return Eu;case"first":return Su;case"last":return Cu}}if("function"!=typeof t)throw new Error(`invalid reduce: ${t}`);return ku(t)}(r)(n,function(t="middle",e){switch(`${t}`.toLowerCase()){case"middle":return e-1>>1;case"start":return 0;case"end":return e-1}throw new Error(`invalid anchor: ${t}`)}(i,n),a)}function wu(t,e,n){return t.subarray?t.subarray(e,n):t.slice(e,n)}function bu(t){return(e,n,r)=>r?{mapIndex(r,o,i){const a=Float64Array.from(r,(t=>null===o[t]?NaN:o[t]));let l=0;for(let t=0;t<e-1;++t)isNaN(a[t])&&++l;for(let o=0,s=r.length-e+1;o<s;++o)isNaN(a[o+e-1])&&++l,i[r[o+n]]=0===l?t(a.subarray(o,o+e)):NaN,isNaN(a[o])&&--l}}:{mapIndex(r,o,i){const a=Float64Array.from(r,(t=>null===o[t]?NaN:o[t]));for(let o=-n;o<0;++o)i[r[o+n]]=t(a.subarray(0,o+e));for(let o=0,l=r.length-n;o<l;++o)i[r[o+n]]=t(a.subarray(o,o+e))}}}function ku(t){return(e,r,o)=>o?{mapIndex(o,i,a){let l=0;for(let t=0;t<e-1;++t)l+=n(i[o[t]]);for(let s=0,c=o.length-e+1;s<c;++s)l+=n(i[o[s+e-1]]),l===e&&(a[o[s+r]]=t(K(i,wu(o,s,s+e)))),l-=n(i[o[s]])}}:{mapIndex(n,o,i){for(let a=-r;a<0;++a)i[n[a+r]]=t(K(o,wu(n,0,a+e)));for(let a=0,l=n.length-r;a<l;++a)i[n[a+r]]=t(K(o,wu(n,a,a+e)))}}}function $u(t,e,n){return n?{mapIndex(n,r,o){let i=0,a=0;for(let e=0;e<t-1;++e){const t=r[n[e]];null===t||isNaN(t)?++i:a+=+t}for(let l=0,s=n.length-t+1;l<s;++l){const s=r[n[l]],c=r[n[l+t-1]];null===c||isNaN(c)?++i:a+=+c,o[n[l+e]]=0===i?a:NaN,null===s||isNaN(s)?--i:a-=+s}}}:{mapIndex(n,r,o){let i=0;const a=n.length;for(let o=0,l=Math.min(a,t-e-1);o<l;++o)i+=+r[n[o]]||0;for(let l=-e,s=a-e;l<s;++l)i+=+r[n[l+t-1]]||0,o[n[l+e]]=i,i-=+r[n[l]]||0}}}function Mu(t,e,n){if(n){const r=$u(t,e,n);return{mapIndex(n,o,i){r.mapIndex(n,o,i);for(let r=0,o=n.length-t+1;r<o;++r)i[n[r+e]]/=t}}}return{mapIndex(n,r,o){let i=0,a=0;const l=n.length;for(let o=0,s=Math.min(l,t-e-1);o<s;++o){let t=r[n[o]];null===t||isNaN(t=+t)||(i+=t,++a)}for(let s=-e,c=l-e;s<c;++s){let l=r[n[s+t-1]],c=r[n[s]];null===l||isNaN(l=+l)||(i+=l,++a),o[n[s+e]]=i/a,null===c||isNaN(c=+c)||(i-=c,--a)}}}}function Lu(t,e,r,o){for(let i=r+o;r<i;++r){const o=t[e[r]];if(n(o))return o}}function Au(t,e,r,o){for(let i=r+o-1;i>=r;--i){const r=t[e[i]];if(n(r))return r}}function Ru(t,e,n,r){for(let o=n+r;n<o;++n){let r=t[e[n]];if(null!==r&&!isNaN(r=+r))return r}}function zu(t,e,n,r){for(let o=n+r-1;o>=n;--o){let n=t[e[o]];if(null!==n&&!isNaN(n=+n))return n}}function Ou(t,e,n){return n?{mapIndex(n,r,o){for(let i=0,a=n.length-t;i<a;++i){const a=r[n[i]],l=r[n[i+t-1]];o[n[i+e]]=null===a||null===l?NaN:l-a}}}:{mapIndex(n,r,o){for(let i=-e,a=n.length-t+e+1;i<a;++i)o[n[i+e]]=zu(r,n,i,t)-Ru(r,n,i,t)}}}function Eu(t,e,n){return n?{mapIndex(n,r,o){for(let i=0,a=n.length-t;i<a;++i){const a=r[n[i]],l=r[n[i+t-1]];o[n[i+e]]=null===a||null===l?NaN:l/a}}}:{mapIndex(n,r,o){for(let i=-e,a=n.length-t+e+1;i<a;++i)o[n[i+e]]=zu(r,n,i,t)/Ru(r,n,i,t)}}}function Su(t,e,n){return n?{mapIndex(n,r,o){for(let i=0,a=n.length-t;i<a;++i)o[n[i+e]]=r[n[i]]}}:{mapIndex(n,r,o){for(let i=-e,a=n.length-t+e+1;i<a;++i)o[n[i+e]]=Lu(r,n,i,t)}}}function Cu(t,e,n){return n?{mapIndex(n,r,o){for(let i=0,a=n.length-t;i<a;++i)o[n[i+e]]=r[n[i+t-1]]}}:{mapIndex(n,r,o){for(let i=-e,a=n.length-t+e+1;i<a;++i)o[n[i+e]]=Au(r,n,i,t)}}}function Bu(t){if("function"==typeof t)return t;switch(`${t}`.toLowerCase()){case"min":return ju;case"max":return Wu}throw new Error(`unknown selector: ${t}`)}function Tu(t){return Du(null,Iu,t)}function Nu(t){return Du(null,Pu,t)}function*Iu(t){yield t[0]}function*Pu(t){yield t[t.length-1]}function*ju(t,n){yield e.least(t,(t=>n[t]))}function*Wu(t,n){yield e.greatest(t,(t=>n[t]))}function Du(t,n,r){if(null!=t){if(null==r[t])throw new Error(`missing channel: ${t}`);t=r[t]}const o=Q(r);return Wt(r,((r,i)=>{const a=x(r,o),l=x(r,t),s=[];for(const t of i){const r=[];for(const o of a?e.group(t,(t=>a[t])).values():[t])for(const t of n(o,l))r.push(t);s.push(r)}return{data:r,facets:s}}))}t.Area=Pa,t.Arrow=el,t.BarX=il,t.BarY=al,t.Cell=ul,t.Contour=hs,t.Density=zs,t.Dot=pl,t.Frame=wi,t.Geo=Cs,t.Hexgrid=js,t.Image=qs,t.Line=yl,t.Link=Qa,t.Mark=_r,t.Raster=es,t.Rect=kl,t.RuleX=ao,t.RuleY=lo,t.Text=mo,t.TickX=Fl,t.TickY=Yl,t.Vector=Wo,t.area=function(t,e){return void 0===e?Wa(t,{x:O,y:E}):new Pa(t,e)},t.areaX=ja,t.areaY=Wa,t.arrow=function(t,e={}){let{x:n,x1:r,x2:o,y:i,y1:a,y2:l,...s}=e;return[r,o]=Ka(n,r,o),[a,l]=Ka(i,a,l),new el(t,{...s,x1:r,x2:o,y1:a,y2:l})},t.auto=function(t,e){const{fx:n,fy:r,x:{zero:o},y:{zero:i},markImpl:a,markOptions:l,transformImpl:s,transformOptions:c,colorMode:u}=Ll(t,e),f=null!=n||null!=r?bi({strokeOpacity:.1}):null,h=[o?so([0]):null,i?co([0]):null],d=a(t,s?s(c,l):l);return"stroke"===u?Gr(f,h,d):Gr(f,d,h)},t.autoSpec=function(t,e){const{x:n,y:r,fx:o,fy:i,color:a,size:l,mark:s}=Ll(t,e);return{x:n,y:r,fx:o,fy:i,color:a,size:l,mark:s}},t.axisFx=Jo,t.axisFy=Zo,t.axisX=Qo,t.axisY=Vo,t.barX=ll,t.barY=sl,t.bin=Yi,t.binX=qi,t.binY=Fi,t.boxX=function(t,e={}){const{x:n=M,y:r=null,fill:o="#ccc",fillOpacity:i,stroke:a="currentColor",strokeOpacity:l,strokeWidth:s=2,sort:c,...u}=e,f=null!=r?Jt:Zt;return Gr(co(t,f({x1:Ul,x2:Hl},{x:n,y:r,stroke:a,strokeOpacity:l,...u})),ll(t,f({x1:"p25",x2:"p75"},{x:n,y:r,fill:o,fillOpacity:i,...u})),_l(t,f({x:"p50"},{x:n,y:r,stroke:a,strokeOpacity:l,strokeWidth:s,sort:c,...u})),ml(t,Tl({x:Xl},{x:n,y:r,z:r,stroke:a,strokeOpacity:l,...u})))},t.boxY=function(t,e={}){const{y:n=M,x:r=null,fill:o="#ccc",fillOpacity:i,stroke:a="currentColor",strokeOpacity:l,strokeWidth:s=2,sort:c,...u}=e,f=null!=r?Qt:Zt;return Gr(so(t,f({y1:Ul,y2:Hl},{x:r,y:n,stroke:a,strokeOpacity:l,...u})),sl(t,f({y1:"p25",y2:"p75"},{x:r,y:n,fill:o,fillOpacity:i,...u})),Gl(t,f({y:"p50"},{x:r,y:n,stroke:a,strokeOpacity:l,strokeWidth:s,sort:c,...u})),ml(t,Tl({y:Xl},{x:r,y:n,z:r,stroke:a,strokeOpacity:l,...u})))},t.cell=fl,t.cellX=function(t,e={}){let{x:n=$,fill:r,stroke:o,...i}=e;return void 0===r&&void 0===j(o)[0]&&(r=M),new ul(t,{...i,x:n,fill:r,stroke:o})},t.cellY=function(t,e={}){let{y:n=$,fill:r,stroke:o,...i}=e;return void 0===r&&void 0===j(o)[0]&&(r=M),new ul(t,{...i,y:n,fill:r,stroke:o})},t.centroid=function({geometry:t=M,...n}={}){return Dt({...n,x:null,y:null},((n,r,o,i,a,{projection:l})=>{const s=x(n,t),c=s.length,u=new Float64Array(c),f=new Float64Array(c),h=e.geoPath(l);for(let t=0;t<c;++t)[u[t],f[t]]=h.centroid(s[t]);return{data:n,facets:r,channels:{x:{value:u},y:{value:f}}}}))},t.circle=function(t,e){return ml(t,{...e,symbol:"circle"})},t.cluster=function(t,n){return kc(t,{...n,treeLayout:e.cluster})},t.column=nt,t.contour=function(){return new hs(...ns("value",...arguments))},t.delaunayLink=function(t,e){return As(xs,t,e)},t.delaunayMesh=function(t,e){return As(bs,t,e)},t.density=function(t,e={}){let{x:n,y:r,...o}=e;return[n,r]=Z(n,r),new zs(t,{...o,x:n,y:r})},t.dodgeX=function(t={},e={}){1===arguments.length&&([t,e]=ru(t));let{anchor:n="left",padding:r=1,r:o=e.r}=nu(t);switch(`${n}`.toLowerCase()){case"left":n=Zc;break;case"right":n=Qc;break;case"middle":n=Jc;break;default:throw new Error(`unknown dodge anchor: ${n}`)}return ou("x","y",n,z(r),o,e)},t.dodgeY=function(t={},e={}){1===arguments.length&&([t,e]=ru(t));let{anchor:n="bottom",padding:r=1,r:o=e.r}=nu(t);switch(`${n}`.toLowerCase()){case"top":n=Kc;break;case"bottom":n=tu;break;case"middle":n=eu;break;default:throw new Error(`unknown dodge anchor: ${n}`)}return ou("y","x",n,z(r),o,e)},t.dot=ml,t.dotX=function(t,e={}){const{x:n=M,...r}=e;return new pl(t,oo({...r,x:n}))},t.dotY=function(t,e={}){const{y:n=M,...r}=e;return new pl(t,ro({...r,y:n}))},t.filter=function(t,e){return Yt(e,_t(t))},t.formatIsoDate=rr,t.formatMonth=function(t="en-US",e="short"){const n=er(t,e);return t=>null==t||isNaN(t=+new Date(Date.UTC(2e3,+t)))?void 0:n.format(t)},t.formatWeekday=function(t="en-US",e="short"){const n=nr(t,e);return t=>null==t||isNaN(t=+new Date(Date.UTC(2001,0,+t)))?void 0:n.format(t)},t.frame=bi,t.geo=Bs,t.geoCentroid=function({geometry:t=M,...n}={}){let r;return{...n,x:{transform:n=>Float64Array.from(r=x(x(n,t),e.geoCentroid),(([t])=>t))},y:{transform:()=>Float64Array.from(r,(([,t])=>t))}}},t.graticule=function({strokeOpacity:t=.1,...n}={}){return Bs(e.geoGraticule10(),{strokeOpacity:t,...n})},t.gridFx=oi,t.gridFy=ni,t.gridX=ri,t.gridY=ei,t.group=Kt,t.groupX=Qt,t.groupY=Jt,t.groupZ=Zt,t.hexagon=function(t,e){return ml(t,{...e,symbol:"hexagon"})},t.hexbin=function(t={fill:"count"},{binWidth:e,...n}={}){e=void 0===e?20:z(e),t=ne(t,n);const{z:r,fill:o,stroke:i}=n;return void 0===i&&wt(o)&&ee(t,"fill")&&(n.stroke="none"),void 0===n.symbol&&(n.symbol="hexagon"),void 0!==n.r||ee(t,"r")||(n.r=e/2),Dt(n,((n,o,i,a,l,s)=>{let{x:c,y:u,z:f,fill:h,stroke:d,symbol:p}=i;if(void 0===c)throw new Error("missing channel: x");if(void 0===u)throw new Error("missing channel: y");({x:c,y:u}=Fe(i,a,s)),f=f?f.value:x(n,r),h=h?.value,d=d?.value,p=p?.value;const m=se(t,{z:f,fill:h,stroke:d,symbol:p}),g=f&&[],y=h&&[],v=d&&[],w=p&&[],b=[],k=[],$=[];let M=-1;for(const e of t)e.initialize(n);for(const n of o){const r=[];for(const e of t)e.scope("facet",n);for(const[o,i]of ie(n,m))for(const n of Is(i,c,u,e)){r.push(++M),k.push(n.x),$.push(n.y),f&&g.push(m===f?o:f[n[0]]),h&&y.push(m===h?o:h[n[0]]),d&&v.push(m===d?o:d[n[0]]),p&&w.push(m===p?o:p[n[0]]);for(const e of t)e.reduce(n)}b.push(r)}return{data:n,facets:b,channels:{x:{value:k},y:{value:$},...f&&{z:{value:g}},...h&&{fill:{value:y,scale:"auto"}},...d&&{stroke:{value:v,scale:"auto"}},...p&&{symbol:{value:w,scale:"auto"}},...Object.fromEntries(t.map((({name:t,output:n})=>[t,{scale:"auto",radius:"r"===t?e/2:void 0,value:n.transform()}])))}}}))},t.hexgrid=function(t){return new js(t)},t.hull=function(t,e){return As(ks,t,e)},t.identity=M,t.image=function(t,e={}){let{x:n,y:r,...o}=e;return void 0===e.frameAnchor&&([n,r]=Z(n,r)),new qs(t,{...o,x:n,y:r})},t.indexOf=$,t.initializer=Dt,t.interpolateNearest=ss,t.interpolateNone=as,t.interpolatorBarycentric=ls,t.interpolatorRandomWalk=cs,t.legend=function(t={}){for(const[e,n]of Dr){const r=t[e];if(X(r)){const o=Ye(t);let i;if("symbol"===e){const{fill:e,stroke:n=(void 0===e&&X(t.color)?"color":void 0)}=t;i={fill:e,stroke:n}}return n(qn(e,r,i),qr(o,r,t),(e=>X(t[e])?qn(e,t[e]):null))}}throw new Error("unknown legend type; no scale found")},t.line=vl,t.lineX=xl,t.lineY=wl,t.linearRegressionX=function(t,e={}){const{y:n=$,x:r=M,stroke:o,fill:i=(wt(o)?"currentColor":o),...a}=e;return new Zs(t,Xi({...a,x:r,y:n,fill:i,stroke:o}))},t.linearRegressionY=function(t,e={}){const{x:n=$,y:r=M,stroke:o,fill:i=(wt(o)?"currentColor":o),...a}=e;return new Qs(t,Gi({...a,x:n,y:r,fill:i,stroke:o}))},t.link=Ja,t.map=Tl,t.mapX=Cl,t.mapY=Bl,t.marks=Gr,t.normalize=lu,t.normalizeX=function(t,e){return 1===arguments.length&&({basis:t,...e}=t),Cl(lu(t),e)},t.normalizeY=function(t,e){return 1===arguments.length&&({basis:t,...e}=t),Bl(lu(t),e)},t.plot=ki,t.raster=function(){const[t,e]=ns("fill",...arguments);return new es(t,null==t||void 0!==e.fill||void 0!==e.fillOpacity?e:{...e,fill:M})},t.rect=function(t,e){return new kl(t,Kr(to(e)))},t.rectX=$l,t.rectY=Ml,t.reverse=function({sort:t,...e}={}){return{...Yt(e,Gt),sort:H(t)?t:null}},t.ruleX=so,t.ruleY=co,t.scale=function(t={}){let e;for(const n in t)if(St.has(n)&&X(t[n])){if(void 0!==e)throw new Error("ambiguous scale definition; multiple scales found");e=Jn(qn(n,t[n]))}if(void 0===e)throw new Error("invalid scale definition; no scale found");return e},t.select=function(t,e={}){if("string"==typeof t)switch(t.toLowerCase()){case"first":return Tu(e);case"last":return Nu(e)}if("function"==typeof t)return Du(null,t,e);let n,r;for(n in t){if(void 0!==r)throw new Error("ambiguous selector; multiple inputs");r=Bu(t[n])}if(void 0===r)throw new Error(`invalid selector: ${t}`);return Du(n,r,e)},t.selectFirst=Tu,t.selectLast=Nu,t.selectMaxX=function(t){return Du("x",Wu,t)},t.selectMaxY=function(t){return Du("y",Wu,t)},t.selectMinX=function(t){return Du("x",ju,t)},t.selectMinY=function(t){return Du("y",ju,t)},t.shuffle=function({seed:t,sort:n,...r}={}){return{...Yt(r,Vt(null==t?Math.random:e.randomLcg(t))),sort:H(n)?n:null}},t.sort=Xt,t.sphere=function({strokeWidth:t=1.5,...e}={}){return Bs({type:"Sphere"},{strokeWidth:t,...e})},t.spike=function(t,e={}){const{shape:n=Po,stroke:r=Bo.stroke,strokeWidth:o=1,fill:i=r,fillOpacity:a=.3,anchor:l="start",...s}=e;return Do(t,{...s,shape:n,stroke:r,strokeWidth:o,fill:i,fillOpacity:a,anchor:l})},t.stackX=ga,t.stackX1=function(t={},e={}){1===arguments.length&&([t,e]=wa(t));const{y1:n,y:r=n,x:o}=e,[i,a,l]=ba(r,o,"x",t,e);return{...i,y1:n,y:a,x:l}},t.stackX2=function(t={},e={}){1===arguments.length&&([t,e]=wa(t));const{y1:n,y:r=n,x:o}=e,[i,a,,l]=ba(r,o,"x",t,e);return{...i,y1:n,y:a,x:l}},t.stackY=ya,t.stackY1=function(t={},e={}){1===arguments.length&&([t,e]=wa(t));const{x1:n,x:r=n,y:o}=e,[i,a,l]=ba(r,o,"y",t,e);return{...i,x1:n,x:a,y:l}},t.stackY2=function(t={},e={}){1===arguments.length&&([t,e]=wa(t));const{x1:n,x:r=n,y:o}=e,[i,a,,l]=ba(r,o,"y",t,e);return{...i,x1:n,x:a,y:l}},t.text=yo,t.textX=vo,t.textY=xo,t.tickX=_l,t.tickY=Gl,t.transform=Wt,t.tree=kc,t.treeLink=ec,t.treeNode=tc,t.valueof=x,t.vector=Do,t.vectorX=qo,t.vectorY=Fo,t.version="0.6.6",t.voronoi=function(t,e){return As($s,t,e)},t.voronoiMesh=function(t,e){return As(Ms,t,e)},t.window=xu,t.windowX=function(t={},e){return 1===arguments.length&&(e=t),Cl(xu(t),e)},t.windowY=function(t={},e){return 1===arguments.length&&(e=t),Bl(xu(t),e)}}));
diff --git a/godev/third_party/@observablehq/plot@0.6.6/package.json b/godev/third_party/@observablehq/plot@0.6.6/package.json
new file mode 100644
index 0000000..537511a
--- /dev/null
+++ b/godev/third_party/@observablehq/plot@0.6.6/package.json
@@ -0,0 +1,86 @@
+{
+  "name": "@observablehq/plot",
+  "description": "A JavaScript library for exploratory data visualization.",
+  "version": "0.6.6",
+  "author": {
+    "name": "Observable, Inc.",
+    "url": "https://observablehq.com"
+  },
+  "license": "ISC",
+  "type": "module",
+  "main": "src/index.js",
+  "module": "src/index.js",
+  "jsdelivr": "dist/plot.umd.min.js",
+  "unpkg": "dist/plot.umd.min.js",
+  "exports": {
+    "umd": "./dist/plot.umd.min.js",
+    "default": "./src/index.js"
+  },
+  "types": "src/index.d.ts",
+  "repository": {
+    "type": "git",
+    "url": "https://github.com/observablehq/plot.git"
+  },
+  "files": [
+    "dist/**/*.js",
+    "src/**/*.d.ts",
+    "src/**/*.js"
+  ],
+  "scripts": {
+    "test": "yarn test:mocha && yarn test:tsc && yarn test:lint && yarn test:prettier",
+    "test:mocha": "mkdir -p test/output && mocha 'test/**/*-test.*' 'test/plot.js'",
+    "test:lint": "eslint src test",
+    "test:prettier": "prettier --check src test",
+    "test:tsc": "tsc",
+    "prepublishOnly": "rm -rf dist && rollup -c",
+    "postpublish": "git push && git push --tags",
+    "dev": "vite",
+    "docs:dev": "vitepress dev docs",
+    "docs:build": "vitepress build docs",
+    "docs:preview": "vitepress preview docs"
+  },
+  "_moduleAliases": {
+    "@observablehq/plot": "./src/index.js"
+  },
+  "sideEffects": [
+    "./src/plot.js"
+  ],
+  "devDependencies": {
+    "@esbuild-kit/core-utils": "^3.1.0",
+    "@rollup/plugin-commonjs": "^24.0.1",
+    "@rollup/plugin-json": "^6.0.0",
+    "@rollup/plugin-node-resolve": "^15.0.1",
+    "@rollup/plugin-terser": "^0.4.0",
+    "@types/d3": "^7.4.0",
+    "@typescript-eslint/eslint-plugin": "^5.54.1",
+    "@typescript-eslint/parser": "^5.54.1",
+    "canvas": "^2.0.0",
+    "d3-geo-projection": "^4.0.0",
+    "eslint": "^8.16.0",
+    "eslint-config-prettier": "^8.5.0",
+    "get-tsconfig": "^4.1.0",
+    "htl": "^0.3.0",
+    "js-beautify": "1",
+    "jsdom": "^21.0.0",
+    "markdown-it-container": "^3.0.0",
+    "mocha": "^10.0.0",
+    "module-alias": "^2.0.0",
+    "prettier": "^2.7.1",
+    "rollup": "^3.7.0",
+    "topojson-client": "^3.1.0",
+    "typescript": "^5.0.2",
+    "vite": "^4.0.0",
+    "vitepress": "^1.0.0-alpha.72"
+  },
+  "dependencies": {
+    "d3": "^7.8.0",
+    "interval-tree-1d": "^1.0.0",
+    "isoformat": "^0.2.0"
+  },
+  "engines": {
+    "node": ">=12"
+  },
+  "publishConfig": {
+    "access": "public"
+  }
+}
diff --git a/godev/third_party/d3@7.8.4/LICENSE b/godev/third_party/d3@7.8.4/LICENSE
new file mode 100644
index 0000000..3594fff
--- /dev/null
+++ b/godev/third_party/d3@7.8.4/LICENSE
@@ -0,0 +1,13 @@
+Copyright 2010-2023 Mike Bostock
+
+Permission to use, copy, modify, and/or distribute this software for any purpose
+with or without fee is hereby granted, provided that the above copyright notice
+and this permission notice appear in all copies.
+
+THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
+REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
+FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
+INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
+OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF
+THIS SOFTWARE.
diff --git a/godev/third_party/d3@7.8.4/dist/d3.min.js b/godev/third_party/d3@7.8.4/dist/d3.min.js
new file mode 100644
index 0000000..2c10135
--- /dev/null
+++ b/godev/third_party/d3@7.8.4/dist/d3.min.js
@@ -0,0 +1,2 @@
+// https://d3js.org v7.8.4 Copyright 2010-2023 Mike Bostock
+!function(t,n){"object"==typeof exports&&"undefined"!=typeof module?n(exports):"function"==typeof define&&define.amd?define(["exports"],n):n((t="undefined"!=typeof globalThis?globalThis:t||self).d3=t.d3||{})}(this,(function(t){"use strict";function n(t,n){return null==t||null==n?NaN:t<n?-1:t>n?1:t>=n?0:NaN}function e(t,n){return null==t||null==n?NaN:n<t?-1:n>t?1:n>=t?0:NaN}function r(t){let r,o,a;function u(t,n,e=0,i=t.length){if(e<i){if(0!==r(n,n))return i;do{const r=e+i>>>1;o(t[r],n)<0?e=r+1:i=r}while(e<i)}return e}return 2!==t.length?(r=n,o=(e,r)=>n(t(e),r),a=(n,e)=>t(n)-e):(r=t===n||t===e?t:i,o=t,a=t),{left:u,center:function(t,n,e=0,r=t.length){const i=u(t,n,e,r-1);return i>e&&a(t[i-1],n)>-a(t[i],n)?i-1:i},right:function(t,n,e=0,i=t.length){if(e<i){if(0!==r(n,n))return i;do{const r=e+i>>>1;o(t[r],n)<=0?e=r+1:i=r}while(e<i)}return e}}}function i(){return 0}function o(t){return null===t?NaN:+t}function*a(t,n){if(void 0===n)for(let n of t)null!=n&&(n=+n)>=n&&(yield n);else{let e=-1;for(let r of t)null!=(r=n(r,++e,t))&&(r=+r)>=r&&(yield r)}}const u=r(n),c=u.right,f=u.left,s=r(o).center;var l=c;const h=p(v),d=p((function(t){const n=v(t);return(t,e,r,i,o)=>{n(t,e,(r<<=2)+0,(i<<=2)+0,o<<=2),n(t,e,r+1,i+1,o),n(t,e,r+2,i+2,o),n(t,e,r+3,i+3,o)}}));function p(t){return function(n,e,r=e){if(!((e=+e)>=0))throw new RangeError("invalid rx");if(!((r=+r)>=0))throw new RangeError("invalid ry");let{data:i,width:o,height:a}=n;if(!((o=Math.floor(o))>=0))throw new RangeError("invalid width");if(!((a=Math.floor(void 0!==a?a:i.length/o))>=0))throw new RangeError("invalid height");if(!o||!a||!e&&!r)return n;const u=e&&t(e),c=r&&t(r),f=i.slice();return u&&c?(g(u,f,i,o,a),g(u,i,f,o,a),g(u,f,i,o,a),y(c,i,f,o,a),y(c,f,i,o,a),y(c,i,f,o,a)):u?(g(u,i,f,o,a),g(u,f,i,o,a),g(u,i,f,o,a)):c&&(y(c,i,f,o,a),y(c,f,i,o,a),y(c,i,f,o,a)),n}}function g(t,n,e,r,i){for(let o=0,a=r*i;o<a;)t(n,e,o,o+=r,1)}function y(t,n,e,r,i){for(let o=0,a=r*i;o<r;++o)t(n,e,o,o+a,r)}function v(t){const n=Math.floor(t);if(n===t)return function(t){const n=2*t+1;return(e,r,i,o,a)=>{if(!((o-=a)>=i))return;let u=t*r[i];const c=a*t;for(let t=i,n=i+c;t<n;t+=a)u+=r[Math.min(o,t)];for(let t=i,f=o;t<=f;t+=a)u+=r[Math.min(o,t+c)],e[t]=u/n,u-=r[Math.max(i,t-c)]}}(t);const e=t-n,r=2*t+1;return(t,i,o,a,u)=>{if(!((a-=u)>=o))return;let c=n*i[o];const f=u*n,s=f+u;for(let t=o,n=o+f;t<n;t+=u)c+=i[Math.min(a,t)];for(let n=o,l=a;n<=l;n+=u)c+=i[Math.min(a,n+f)],t[n]=(c+e*(i[Math.max(o,n-s)]+i[Math.min(a,n+s)]))/r,c-=i[Math.max(o,n-f)]}}function _(t,n){let e=0;if(void 0===n)for(let n of t)null!=n&&(n=+n)>=n&&++e;else{let r=-1;for(let i of t)null!=(i=n(i,++r,t))&&(i=+i)>=i&&++e}return e}function b(t){return 0|t.length}function m(t){return!(t>0)}function x(t){return"object"!=typeof t||"length"in t?t:Array.from(t)}function w(t,n){let e,r=0,i=0,o=0;if(void 0===n)for(let n of t)null!=n&&(n=+n)>=n&&(e=n-i,i+=e/++r,o+=e*(n-i));else{let a=-1;for(let u of t)null!=(u=n(u,++a,t))&&(u=+u)>=u&&(e=u-i,i+=e/++r,o+=e*(u-i))}if(r>1)return o/(r-1)}function M(t,n){const e=w(t,n);return e?Math.sqrt(e):e}function T(t,n){let e,r;if(void 0===n)for(const n of t)null!=n&&(void 0===e?n>=n&&(e=r=n):(e>n&&(e=n),r<n&&(r=n)));else{let i=-1;for(let o of t)null!=(o=n(o,++i,t))&&(void 0===e?o>=o&&(e=r=o):(e>o&&(e=o),r<o&&(r=o)))}return[e,r]}class A{constructor(){this._partials=new Float64Array(32),this._n=0}add(t){const n=this._partials;let e=0;for(let r=0;r<this._n&&r<32;r++){const i=n[r],o=t+i,a=Math.abs(t)<Math.abs(i)?t-(o-i):i-(o-t);a&&(n[e++]=a),t=o}return n[e]=t,this._n=e+1,this}valueOf(){const t=this._partials;let n,e,r,i=this._n,o=0;if(i>0){for(o=t[--i];i>0&&(n=o,e=t[--i],o=n+e,r=e-(o-n),!r););i>0&&(r<0&&t[i-1]<0||r>0&&t[i-1]>0)&&(e=2*r,n=o+e,e==n-o&&(o=n))}return o}}class InternMap extends Map{constructor(t,n=k){if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:n}}),null!=t)for(const[n,e]of t)this.set(n,e)}get(t){return super.get(S(this,t))}has(t){return super.has(S(this,t))}set(t,n){return super.set(E(this,t),n)}delete(t){return super.delete(N(this,t))}}class InternSet extends Set{constructor(t,n=k){if(super(),Object.defineProperties(this,{_intern:{value:new Map},_key:{value:n}}),null!=t)for(const n of t)this.add(n)}has(t){return super.has(S(this,t))}add(t){return super.add(E(this,t))}delete(t){return super.delete(N(this,t))}}function S({_intern:t,_key:n},e){const r=n(e);return t.has(r)?t.get(r):e}function E({_intern:t,_key:n},e){const r=n(e);return t.has(r)?t.get(r):(t.set(r,e),e)}function N({_intern:t,_key:n},e){const r=n(e);return t.has(r)&&(e=t.get(r),t.delete(r)),e}function k(t){return null!==t&&"object"==typeof t?t.valueOf():t}function C(t){return t}function P(t,...n){return q(t,C,C,n)}function z(t,...n){return q(t,Array.from,C,n)}function $(t,n){for(let e=1,r=n.length;e<r;++e)t=t.flatMap((t=>t.pop().map((([n,e])=>[...t,n,e]))));return t}function D(t,n,...e){return q(t,C,n,e)}function R(t,n,...e){return q(t,Array.from,n,e)}function F(t){if(1!==t.length)throw new Error("duplicate key");return t[0]}function q(t,n,e,r){return function t(i,o){if(o>=r.length)return e(i);const a=new InternMap,u=r[o++];let c=-1;for(const t of i){const n=u(t,++c,i),e=a.get(n);e?e.push(t):a.set(n,[t])}for(const[n,e]of a)a.set(n,t(e,o));return n(a)}(t,0)}function U(t,n){return Array.from(n,(n=>t[n]))}function I(t,...n){if("function"!=typeof t[Symbol.iterator])throw new TypeError("values is not iterable");t=Array.from(t);let[e]=n;if(e&&2!==e.length||n.length>1){const r=Uint32Array.from(t,((t,n)=>n));return n.length>1?(n=n.map((n=>t.map(n))),r.sort(((t,e)=>{for(const r of n){const n=B(r[t],r[e]);if(n)return n}}))):(e=t.map(e),r.sort(((t,n)=>B(e[t],e[n])))),U(t,r)}return t.sort(O(e))}function O(t=n){if(t===n)return B;if("function"!=typeof t)throw new TypeError("compare is not a function");return(n,e)=>{const r=t(n,e);return r||0===r?r:(0===t(e,e))-(0===t(n,n))}}function B(t,n){return(null==t||!(t>=t))-(null==n||!(n>=n))||(t<n?-1:t>n?1:0)}var Y=Array.prototype.slice;function L(t){return()=>t}const j=Math.sqrt(50),H=Math.sqrt(10),X=Math.sqrt(2);function G(t,n,e){const r=(n-t)/Math.max(0,e),i=Math.floor(Math.log10(r)),o=r/Math.pow(10,i),a=o>=j?10:o>=H?5:o>=X?2:1;let u,c,f;return i<0?(f=Math.pow(10,-i)/a,u=Math.round(t*f),c=Math.round(n*f),u/f<t&&++u,c/f>n&&--c,f=-f):(f=Math.pow(10,i)*a,u=Math.round(t/f),c=Math.round(n/f),u*f<t&&++u,c*f>n&&--c),c<u&&.5<=e&&e<2?G(t,n,2*e):[u,c,f]}function V(t,n,e){if(!((e=+e)>0))return[];if((t=+t)===(n=+n))return[t];const r=n<t,[i,o,a]=r?G(n,t,e):G(t,n,e);if(!(o>=i))return[];const u=o-i+1,c=new Array(u);if(r)if(a<0)for(let t=0;t<u;++t)c[t]=(o-t)/-a;else for(let t=0;t<u;++t)c[t]=(o-t)*a;else if(a<0)for(let t=0;t<u;++t)c[t]=(i+t)/-a;else for(let t=0;t<u;++t)c[t]=(i+t)*a;return c}function W(t,n,e){return G(t=+t,n=+n,e=+e)[2]}function Z(t,n,e){e=+e;const r=(n=+n)<(t=+t),i=r?W(n,t,e):W(t,n,e);return(r?-1:1)*(i<0?1/-i:i)}function K(t,n,e){let r;for(;;){const i=W(t,n,e);if(i===r||0===i||!isFinite(i))return[t,n];i>0?(t=Math.floor(t/i)*i,n=Math.ceil(n/i)*i):i<0&&(t=Math.ceil(t*i)/i,n=Math.floor(n*i)/i),r=i}}function Q(t){return Math.max(1,Math.ceil(Math.log(_(t))/Math.LN2)+1)}function J(){var t=C,n=T,e=Q;function r(r){Array.isArray(r)||(r=Array.from(r));var i,o,a,u=r.length,c=new Array(u);for(i=0;i<u;++i)c[i]=t(r[i],i,r);var f=n(c),s=f[0],h=f[1],d=e(c,s,h);if(!Array.isArray(d)){const t=h,e=+d;if(n===T&&([s,h]=K(s,h,e)),(d=V(s,h,e))[0]<=s&&(a=W(s,h,e)),d[d.length-1]>=h)if(t>=h&&n===T){const t=W(s,h,e);isFinite(t)&&(t>0?h=(Math.floor(h/t)+1)*t:t<0&&(h=(Math.ceil(h*-t)+1)/-t))}else d.pop()}for(var p=d.length,g=0,y=p;d[g]<=s;)++g;for(;d[y-1]>h;)--y;(g||y<p)&&(d=d.slice(g,y),p=y-g);var v,_=new Array(p+1);for(i=0;i<=p;++i)(v=_[i]=[]).x0=i>0?d[i-1]:s,v.x1=i<p?d[i]:h;if(isFinite(a)){if(a>0)for(i=0;i<u;++i)null!=(o=c[i])&&s<=o&&o<=h&&_[Math.min(p,Math.floor((o-s)/a))].push(r[i]);else if(a<0)for(i=0;i<u;++i)if(null!=(o=c[i])&&s<=o&&o<=h){const t=Math.floor((s-o)*a);_[Math.min(p,t+(d[t]<=o))].push(r[i])}}else for(i=0;i<u;++i)null!=(o=c[i])&&s<=o&&o<=h&&_[l(d,o,0,p)].push(r[i]);return _}return r.value=function(n){return arguments.length?(t="function"==typeof n?n:L(n),r):t},r.domain=function(t){return arguments.length?(n="function"==typeof t?t:L([t[0],t[1]]),r):n},r.thresholds=function(t){return arguments.length?(e="function"==typeof t?t:L(Array.isArray(t)?Y.call(t):t),r):e},r}function tt(t,n){let e;if(void 0===n)for(const n of t)null!=n&&(e<n||void 0===e&&n>=n)&&(e=n);else{let r=-1;for(let i of t)null!=(i=n(i,++r,t))&&(e<i||void 0===e&&i>=i)&&(e=i)}return e}function nt(t,n){let e,r=-1,i=-1;if(void 0===n)for(const n of t)++i,null!=n&&(e<n||void 0===e&&n>=n)&&(e=n,r=i);else for(let o of t)null!=(o=n(o,++i,t))&&(e<o||void 0===e&&o>=o)&&(e=o,r=i);return r}function et(t,n){let e;if(void 0===n)for(const n of t)null!=n&&(e>n||void 0===e&&n>=n)&&(e=n);else{let r=-1;for(let i of t)null!=(i=n(i,++r,t))&&(e>i||void 0===e&&i>=i)&&(e=i)}return e}function rt(t,n){let e,r=-1,i=-1;if(void 0===n)for(const n of t)++i,null!=n&&(e>n||void 0===e&&n>=n)&&(e=n,r=i);else for(let o of t)null!=(o=n(o,++i,t))&&(e>o||void 0===e&&o>=o)&&(e=o,r=i);return r}function it(t,n,e=0,r=1/0,i){if(n=Math.floor(n),e=Math.floor(Math.max(0,e)),r=Math.floor(Math.min(t.length-1,r)),!(e<=n&&n<=r))return t;for(i=void 0===i?B:O(i);r>e;){if(r-e>600){const o=r-e+1,a=n-e+1,u=Math.log(o),c=.5*Math.exp(2*u/3),f=.5*Math.sqrt(u*c*(o-c)/o)*(a-o/2<0?-1:1);it(t,n,Math.max(e,Math.floor(n-a*c/o+f)),Math.min(r,Math.floor(n+(o-a)*c/o+f)),i)}const o=t[n];let a=e,u=r;for(ot(t,e,n),i(t[r],o)>0&&ot(t,e,r);a<u;){for(ot(t,a,u),++a,--u;i(t[a],o)<0;)++a;for(;i(t[u],o)>0;)--u}0===i(t[e],o)?ot(t,e,u):(++u,ot(t,u,r)),u<=n&&(e=u+1),n<=u&&(r=u-1)}return t}function ot(t,n,e){const r=t[n];t[n]=t[e],t[e]=r}function at(t,e=n){let r,i=!1;if(1===e.length){let o;for(const a of t){const t=e(a);(i?n(t,o)>0:0===n(t,t))&&(r=a,o=t,i=!0)}}else for(const n of t)(i?e(n,r)>0:0===e(n,n))&&(r=n,i=!0);return r}function ut(t,n,e){if((r=(t=Float64Array.from(a(t,e))).length)&&!isNaN(n=+n)){if(n<=0||r<2)return et(t);if(n>=1)return tt(t);var r,i=(r-1)*n,o=Math.floor(i),u=tt(it(t,o).subarray(0,o+1));return u+(et(t.subarray(o+1))-u)*(i-o)}}function ct(t,n,e=o){if((r=t.length)&&!isNaN(n=+n)){if(n<=0||r<2)return+e(t[0],0,t);if(n>=1)return+e(t[r-1],r-1,t);var r,i=(r-1)*n,a=Math.floor(i),u=+e(t[a],a,t);return u+(+e(t[a+1],a+1,t)-u)*(i-a)}}function ft(t,n,e){if((r=(t=Float64Array.from(a(t,e))).length)&&!isNaN(n=+n)){if(n<=0||r<2)return rt(t);if(n>=1)return nt(t);var r,i=Math.floor((r-1)*n),o=it(Uint32Array.from(t,((t,n)=>n)),i,0,r-1,((n,e)=>B(t[n],t[e])));return at(o.subarray(0,i+1),(n=>t[n]))}}function st(t){return Array.from(function*(t){for(const n of t)yield*n}(t))}function lt(t,n){return[t,n]}function ht(t,n,e){t=+t,n=+n,e=(i=arguments.length)<2?(n=t,t=0,1):i<3?1:+e;for(var r=-1,i=0|Math.max(0,Math.ceil((n-t)/e)),o=new Array(i);++r<i;)o[r]=t+r*e;return o}function dt(t,e=n){if(1===e.length)return rt(t,e);let r,i=-1,o=-1;for(const n of t)++o,(i<0?0===e(n,n):e(n,r)<0)&&(r=n,i=o);return i}var pt=gt(Math.random);function gt(t){return function(n,e=0,r=n.length){let i=r-(e=+e);for(;i;){const r=t()*i--|0,o=n[i+e];n[i+e]=n[r+e],n[r+e]=o}return n}}function yt(t){if(!(i=t.length))return[];for(var n=-1,e=et(t,vt),r=new Array(e);++n<e;)for(var i,o=-1,a=r[n]=new Array(i);++o<i;)a[o]=t[o][n];return r}function vt(t){return t.length}function _t(t){return t instanceof InternSet?t:new InternSet(t)}function bt(t,n){const e=t[Symbol.iterator](),r=new Set;for(const t of n){const n=mt(t);if(r.has(n))continue;let i,o;for(;({value:i,done:o}=e.next());){if(o)return!1;const t=mt(i);if(r.add(t),Object.is(n,t))break}}return!0}function mt(t){return null!==t&&"object"==typeof t?t.valueOf():t}function xt(t){return t}var wt=1,Mt=2,Tt=3,At=4,St=1e-6;function Et(t){return"translate("+t+",0)"}function Nt(t){return"translate(0,"+t+")"}function kt(t){return n=>+t(n)}function Ct(t,n){return n=Math.max(0,t.bandwidth()-2*n)/2,t.round()&&(n=Math.round(n)),e=>+t(e)+n}function Pt(){return!this.__axis}function zt(t,n){var e=[],r=null,i=null,o=6,a=6,u=3,c="undefined"!=typeof window&&window.devicePixelRatio>1?0:.5,f=t===wt||t===At?-1:1,s=t===At||t===Mt?"x":"y",l=t===wt||t===Tt?Et:Nt;function h(h){var d=null==r?n.ticks?n.ticks.apply(n,e):n.domain():r,p=null==i?n.tickFormat?n.tickFormat.apply(n,e):xt:i,g=Math.max(o,0)+u,y=n.range(),v=+y[0]+c,_=+y[y.length-1]+c,b=(n.bandwidth?Ct:kt)(n.copy(),c),m=h.selection?h.selection():h,x=m.selectAll(".domain").data([null]),w=m.selectAll(".tick").data(d,n).order(),M=w.exit(),T=w.enter().append("g").attr("class","tick"),A=w.select("line"),S=w.select("text");x=x.merge(x.enter().insert("path",".tick").attr("class","domain").attr("stroke","currentColor")),w=w.merge(T),A=A.merge(T.append("line").attr("stroke","currentColor").attr(s+"2",f*o)),S=S.merge(T.append("text").attr("fill","currentColor").attr(s,f*g).attr("dy",t===wt?"0em":t===Tt?"0.71em":"0.32em")),h!==m&&(x=x.transition(h),w=w.transition(h),A=A.transition(h),S=S.transition(h),M=M.transition(h).attr("opacity",St).attr("transform",(function(t){return isFinite(t=b(t))?l(t+c):this.getAttribute("transform")})),T.attr("opacity",St).attr("transform",(function(t){var n=this.parentNode.__axis;return l((n&&isFinite(n=n(t))?n:b(t))+c)}))),M.remove(),x.attr("d",t===At||t===Mt?a?"M"+f*a+","+v+"H"+c+"V"+_+"H"+f*a:"M"+c+","+v+"V"+_:a?"M"+v+","+f*a+"V"+c+"H"+_+"V"+f*a:"M"+v+","+c+"H"+_),w.attr("opacity",1).attr("transform",(function(t){return l(b(t)+c)})),A.attr(s+"2",f*o),S.attr(s,f*g).text(p),m.filter(Pt).attr("fill","none").attr("font-size",10).attr("font-family","sans-serif").attr("text-anchor",t===Mt?"start":t===At?"end":"middle"),m.each((function(){this.__axis=b}))}return h.scale=function(t){return arguments.length?(n=t,h):n},h.ticks=function(){return e=Array.from(arguments),h},h.tickArguments=function(t){return arguments.length?(e=null==t?[]:Array.from(t),h):e.slice()},h.tickValues=function(t){return arguments.length?(r=null==t?null:Array.from(t),h):r&&r.slice()},h.tickFormat=function(t){return arguments.length?(i=t,h):i},h.tickSize=function(t){return arguments.length?(o=a=+t,h):o},h.tickSizeInner=function(t){return arguments.length?(o=+t,h):o},h.tickSizeOuter=function(t){return arguments.length?(a=+t,h):a},h.tickPadding=function(t){return arguments.length?(u=+t,h):u},h.offset=function(t){return arguments.length?(c=+t,h):c},h}var $t={value:()=>{}};function Dt(){for(var t,n=0,e=arguments.length,r={};n<e;++n){if(!(t=arguments[n]+"")||t in r||/[\s.]/.test(t))throw new Error("illegal type: "+t);r[t]=[]}return new Rt(r)}function Rt(t){this._=t}function Ft(t,n){for(var e,r=0,i=t.length;r<i;++r)if((e=t[r]).name===n)return e.value}function qt(t,n,e){for(var r=0,i=t.length;r<i;++r)if(t[r].name===n){t[r]=$t,t=t.slice(0,r).concat(t.slice(r+1));break}return null!=e&&t.push({name:n,value:e}),t}Rt.prototype=Dt.prototype={constructor:Rt,on:function(t,n){var e,r,i=this._,o=(r=i,(t+"").trim().split(/^|\s+/).map((function(t){var n="",e=t.indexOf(".");if(e>=0&&(n=t.slice(e+1),t=t.slice(0,e)),t&&!r.hasOwnProperty(t))throw new Error("unknown type: "+t);return{type:t,name:n}}))),a=-1,u=o.length;if(!(arguments.length<2)){if(null!=n&&"function"!=typeof n)throw new Error("invalid callback: "+n);for(;++a<u;)if(e=(t=o[a]).type)i[e]=qt(i[e],t.name,n);else if(null==n)for(e in i)i[e]=qt(i[e],t.name,null);return this}for(;++a<u;)if((e=(t=o[a]).type)&&(e=Ft(i[e],t.name)))return e},copy:function(){var t={},n=this._;for(var e in n)t[e]=n[e].slice();return new Rt(t)},call:function(t,n){if((e=arguments.length-2)>0)for(var e,r,i=new Array(e),o=0;o<e;++o)i[o]=arguments[o+2];if(!this._.hasOwnProperty(t))throw new Error("unknown type: "+t);for(o=0,e=(r=this._[t]).length;o<e;++o)r[o].value.apply(n,i)},apply:function(t,n,e){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(n,e)}};var Ut="http://www.w3.org/1999/xhtml",It={svg:"http://www.w3.org/2000/svg",xhtml:Ut,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};function Ot(t){var n=t+="",e=n.indexOf(":");return e>=0&&"xmlns"!==(n=t.slice(0,e))&&(t=t.slice(e+1)),It.hasOwnProperty(n)?{space:It[n],local:t}:t}function Bt(t){return function(){var n=this.ownerDocument,e=this.namespaceURI;return e===Ut&&n.documentElement.namespaceURI===Ut?n.createElement(t):n.createElementNS(e,t)}}function Yt(t){return function(){return this.ownerDocument.createElementNS(t.space,t.local)}}function Lt(t){var n=Ot(t);return(n.local?Yt:Bt)(n)}function jt(){}function Ht(t){return null==t?jt:function(){return this.querySelector(t)}}function Xt(t){return null==t?[]:Array.isArray(t)?t:Array.from(t)}function Gt(){return[]}function Vt(t){return null==t?Gt:function(){return this.querySelectorAll(t)}}function Wt(t){return function(){return this.matches(t)}}function Zt(t){return function(n){return n.matches(t)}}var Kt=Array.prototype.find;function Qt(){return this.firstElementChild}var Jt=Array.prototype.filter;function tn(){return Array.from(this.children)}function nn(t){return new Array(t.length)}function en(t,n){this.ownerDocument=t.ownerDocument,this.namespaceURI=t.namespaceURI,this._next=null,this._parent=t,this.__data__=n}function rn(t,n,e,r,i,o){for(var a,u=0,c=n.length,f=o.length;u<f;++u)(a=n[u])?(a.__data__=o[u],r[u]=a):e[u]=new en(t,o[u]);for(;u<c;++u)(a=n[u])&&(i[u]=a)}function on(t,n,e,r,i,o,a){var u,c,f,s=new Map,l=n.length,h=o.length,d=new Array(l);for(u=0;u<l;++u)(c=n[u])&&(d[u]=f=a.call(c,c.__data__,u,n)+"",s.has(f)?i[u]=c:s.set(f,c));for(u=0;u<h;++u)f=a.call(t,o[u],u,o)+"",(c=s.get(f))?(r[u]=c,c.__data__=o[u],s.delete(f)):e[u]=new en(t,o[u]);for(u=0;u<l;++u)(c=n[u])&&s.get(d[u])===c&&(i[u]=c)}function an(t){return t.__data__}function un(t){return"object"==typeof t&&"length"in t?t:Array.from(t)}function cn(t,n){return t<n?-1:t>n?1:t>=n?0:NaN}function fn(t){return function(){this.removeAttribute(t)}}function sn(t){return function(){this.removeAttributeNS(t.space,t.local)}}function ln(t,n){return function(){this.setAttribute(t,n)}}function hn(t,n){return function(){this.setAttributeNS(t.space,t.local,n)}}function dn(t,n){return function(){var e=n.apply(this,arguments);null==e?this.removeAttribute(t):this.setAttribute(t,e)}}function pn(t,n){return function(){var e=n.apply(this,arguments);null==e?this.removeAttributeNS(t.space,t.local):this.setAttributeNS(t.space,t.local,e)}}function gn(t){return t.ownerDocument&&t.ownerDocument.defaultView||t.document&&t||t.defaultView}function yn(t){return function(){this.style.removeProperty(t)}}function vn(t,n,e){return function(){this.style.setProperty(t,n,e)}}function _n(t,n,e){return function(){var r=n.apply(this,arguments);null==r?this.style.removeProperty(t):this.style.setProperty(t,r,e)}}function bn(t,n){return t.style.getPropertyValue(n)||gn(t).getComputedStyle(t,null).getPropertyValue(n)}function mn(t){return function(){delete this[t]}}function xn(t,n){return function(){this[t]=n}}function wn(t,n){return function(){var e=n.apply(this,arguments);null==e?delete this[t]:this[t]=e}}function Mn(t){return t.trim().split(/^|\s+/)}function Tn(t){return t.classList||new An(t)}function An(t){this._node=t,this._names=Mn(t.getAttribute("class")||"")}function Sn(t,n){for(var e=Tn(t),r=-1,i=n.length;++r<i;)e.add(n[r])}function En(t,n){for(var e=Tn(t),r=-1,i=n.length;++r<i;)e.remove(n[r])}function Nn(t){return function(){Sn(this,t)}}function kn(t){return function(){En(this,t)}}function Cn(t,n){return function(){(n.apply(this,arguments)?Sn:En)(this,t)}}function Pn(){this.textContent=""}function zn(t){return function(){this.textContent=t}}function $n(t){return function(){var n=t.apply(this,arguments);this.textContent=null==n?"":n}}function Dn(){this.innerHTML=""}function Rn(t){return function(){this.innerHTML=t}}function Fn(t){return function(){var n=t.apply(this,arguments);this.innerHTML=null==n?"":n}}function qn(){this.nextSibling&&this.parentNode.appendChild(this)}function Un(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function In(){return null}function On(){var t=this.parentNode;t&&t.removeChild(this)}function Bn(){var t=this.cloneNode(!1),n=this.parentNode;return n?n.insertBefore(t,this.nextSibling):t}function Yn(){var t=this.cloneNode(!0),n=this.parentNode;return n?n.insertBefore(t,this.nextSibling):t}function Ln(t){return function(){var n=this.__on;if(n){for(var e,r=0,i=-1,o=n.length;r<o;++r)e=n[r],t.type&&e.type!==t.type||e.name!==t.name?n[++i]=e:this.removeEventListener(e.type,e.listener,e.options);++i?n.length=i:delete this.__on}}}function jn(t,n,e){return function(){var r,i=this.__on,o=function(t){return function(n){t.call(this,n,this.__data__)}}(n);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=e),void(r.value=n);this.addEventListener(t.type,o,e),r={type:t.type,name:t.name,value:n,listener:o,options:e},i?i.push(r):this.__on=[r]}}function Hn(t,n,e){var r=gn(t),i=r.CustomEvent;"function"==typeof i?i=new i(n,e):(i=r.document.createEvent("Event"),e?(i.initEvent(n,e.bubbles,e.cancelable),i.detail=e.detail):i.initEvent(n,!1,!1)),t.dispatchEvent(i)}function Xn(t,n){return function(){return Hn(this,t,n)}}function Gn(t,n){return function(){return Hn(this,t,n.apply(this,arguments))}}en.prototype={constructor:en,appendChild:function(t){return this._parent.insertBefore(t,this._next)},insertBefore:function(t,n){return this._parent.insertBefore(t,n)},querySelector:function(t){return this._parent.querySelector(t)},querySelectorAll:function(t){return this._parent.querySelectorAll(t)}},An.prototype={add:function(t){this._names.indexOf(t)<0&&(this._names.push(t),this._node.setAttribute("class",this._names.join(" ")))},remove:function(t){var n=this._names.indexOf(t);n>=0&&(this._names.splice(n,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(t){return this._names.indexOf(t)>=0}};var Vn=[null];function Wn(t,n){this._groups=t,this._parents=n}function Zn(){return new Wn([[document.documentElement]],Vn)}function Kn(t){return"string"==typeof t?new Wn([[document.querySelector(t)]],[document.documentElement]):new Wn([[t]],Vn)}Wn.prototype=Zn.prototype={constructor:Wn,select:function(t){"function"!=typeof t&&(t=Ht(t));for(var n=this._groups,e=n.length,r=new Array(e),i=0;i<e;++i)for(var o,a,u=n[i],c=u.length,f=r[i]=new Array(c),s=0;s<c;++s)(o=u[s])&&(a=t.call(o,o.__data__,s,u))&&("__data__"in o&&(a.__data__=o.__data__),f[s]=a);return new Wn(r,this._parents)},selectAll:function(t){t="function"==typeof t?function(t){return function(){return Xt(t.apply(this,arguments))}}(t):Vt(t);for(var n=this._groups,e=n.length,r=[],i=[],o=0;o<e;++o)for(var a,u=n[o],c=u.length,f=0;f<c;++f)(a=u[f])&&(r.push(t.call(a,a.__data__,f,u)),i.push(a));return new Wn(r,i)},selectChild:function(t){return this.select(null==t?Qt:function(t){return function(){return Kt.call(this.children,t)}}("function"==typeof t?t:Zt(t)))},selectChildren:function(t){return this.selectAll(null==t?tn:function(t){return function(){return Jt.call(this.children,t)}}("function"==typeof t?t:Zt(t)))},filter:function(t){"function"!=typeof t&&(t=Wt(t));for(var n=this._groups,e=n.length,r=new Array(e),i=0;i<e;++i)for(var o,a=n[i],u=a.length,c=r[i]=[],f=0;f<u;++f)(o=a[f])&&t.call(o,o.__data__,f,a)&&c.push(o);return new Wn(r,this._parents)},data:function(t,n){if(!arguments.length)return Array.from(this,an);var e=n?on:rn,r=this._parents,i=this._groups;"function"!=typeof t&&(t=function(t){return function(){return t}}(t));for(var o=i.length,a=new Array(o),u=new Array(o),c=new Array(o),f=0;f<o;++f){var s=r[f],l=i[f],h=l.length,d=un(t.call(s,s&&s.__data__,f,r)),p=d.length,g=u[f]=new Array(p),y=a[f]=new Array(p);e(s,l,g,y,c[f]=new Array(h),d,n);for(var v,_,b=0,m=0;b<p;++b)if(v=g[b]){for(b>=m&&(m=b+1);!(_=y[m])&&++m<p;);v._next=_||null}}return(a=new Wn(a,r))._enter=u,a._exit=c,a},enter:function(){return new Wn(this._enter||this._groups.map(nn),this._parents)},exit:function(){return new Wn(this._exit||this._groups.map(nn),this._parents)},join:function(t,n,e){var r=this.enter(),i=this,o=this.exit();return"function"==typeof t?(r=t(r))&&(r=r.selection()):r=r.append(t+""),null!=n&&(i=n(i))&&(i=i.selection()),null==e?o.remove():e(o),r&&i?r.merge(i).order():i},merge:function(t){for(var n=t.selection?t.selection():t,e=this._groups,r=n._groups,i=e.length,o=r.length,a=Math.min(i,o),u=new Array(i),c=0;c<a;++c)for(var f,s=e[c],l=r[c],h=s.length,d=u[c]=new Array(h),p=0;p<h;++p)(f=s[p]||l[p])&&(d[p]=f);for(;c<i;++c)u[c]=e[c];return new Wn(u,this._parents)},selection:function(){return this},order:function(){for(var t=this._groups,n=-1,e=t.length;++n<e;)for(var r,i=t[n],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 n(n,e){return n&&e?t(n.__data__,e.__data__):!n-!e}t||(t=cn);for(var e=this._groups,r=e.length,i=new Array(r),o=0;o<r;++o){for(var a,u=e[o],c=u.length,f=i[o]=new Array(c),s=0;s<c;++s)(a=u[s])&&(f[s]=a);f.sort(n)}return new Wn(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,n=0,e=t.length;n<e;++n)for(var r=t[n],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 n of this)++t;return t},empty:function(){return!this.node()},each:function(t){for(var n=this._groups,e=0,r=n.length;e<r;++e)for(var i,o=n[e],a=0,u=o.length;a<u;++a)(i=o[a])&&t.call(i,i.__data__,a,o);return this},attr:function(t,n){var e=Ot(t);if(arguments.length<2){var r=this.node();return e.local?r.getAttributeNS(e.space,e.local):r.getAttribute(e)}return this.each((null==n?e.local?sn:fn:"function"==typeof n?e.local?pn:dn:e.local?hn:ln)(e,n))},style:function(t,n,e){return arguments.length>1?this.each((null==n?yn:"function"==typeof n?_n:vn)(t,n,null==e?"":e)):bn(this.node(),t)},property:function(t,n){return arguments.length>1?this.each((null==n?mn:"function"==typeof n?wn:xn)(t,n)):this.node()[t]},classed:function(t,n){var e=Mn(t+"");if(arguments.length<2){for(var r=Tn(this.node()),i=-1,o=e.length;++i<o;)if(!r.contains(e[i]))return!1;return!0}return this.each(("function"==typeof n?Cn:n?Nn:kn)(e,n))},text:function(t){return arguments.length?this.each(null==t?Pn:("function"==typeof t?$n:zn)(t)):this.node().textContent},html:function(t){return arguments.length?this.each(null==t?Dn:("function"==typeof t?Fn:Rn)(t)):this.node().innerHTML},raise:function(){return this.each(qn)},lower:function(){return this.each(Un)},append:function(t){var n="function"==typeof t?t:Lt(t);return this.select((function(){return this.appendChild(n.apply(this,arguments))}))},insert:function(t,n){var e="function"==typeof t?t:Lt(t),r=null==n?In:"function"==typeof n?n:Ht(n);return this.select((function(){return this.insertBefore(e.apply(this,arguments),r.apply(this,arguments)||null)}))},remove:function(){return this.each(On)},clone:function(t){return this.select(t?Yn:Bn)},datum:function(t){return arguments.length?this.property("__data__",t):this.node().__data__},on:function(t,n,e){var r,i,o=function(t){return t.trim().split(/^|\s+/).map((function(t){var n="",e=t.indexOf(".");return e>=0&&(n=t.slice(e+1),t=t.slice(0,e)),{type:t,name:n}}))}(t+""),a=o.length;if(!(arguments.length<2)){for(u=n?jn:Ln,r=0;r<a;++r)this.each(u(o[r],n,e));return this}var u=this.node().__on;if(u)for(var c,f=0,s=u.length;f<s;++f)for(r=0,c=u[f];r<a;++r)if((i=o[r]).type===c.type&&i.name===c.name)return c.value},dispatch:function(t,n){return this.each(("function"==typeof n?Gn:Xn)(t,n))},[Symbol.iterator]:function*(){for(var t=this._groups,n=0,e=t.length;n<e;++n)for(var r,i=t[n],o=0,a=i.length;o<a;++o)(r=i[o])&&(yield r)}};var Qn=0;function Jn(){return new te}function te(){this._="@"+(++Qn).toString(36)}function ne(t){let n;for(;n=t.sourceEvent;)t=n;return t}function ee(t,n){if(t=ne(t),void 0===n&&(n=t.currentTarget),n){var e=n.ownerSVGElement||n;if(e.createSVGPoint){var r=e.createSVGPoint();return r.x=t.clientX,r.y=t.clientY,[(r=r.matrixTransform(n.getScreenCTM().inverse())).x,r.y]}if(n.getBoundingClientRect){var i=n.getBoundingClientRect();return[t.clientX-i.left-n.clientLeft,t.clientY-i.top-n.clientTop]}}return[t.pageX,t.pageY]}te.prototype=Jn.prototype={constructor:te,get:function(t){for(var n=this._;!(n in t);)if(!(t=t.parentNode))return;return t[n]},set:function(t,n){return t[this._]=n},remove:function(t){return this._ in t&&delete t[this._]},toString:function(){return this._}};const re={passive:!1},ie={capture:!0,passive:!1};function oe(t){t.stopImmediatePropagation()}function ae(t){t.preventDefault(),t.stopImmediatePropagation()}function ue(t){var n=t.document.documentElement,e=Kn(t).on("dragstart.drag",ae,ie);"onselectstart"in n?e.on("selectstart.drag",ae,ie):(n.__noselect=n.style.MozUserSelect,n.style.MozUserSelect="none")}function ce(t,n){var e=t.document.documentElement,r=Kn(t).on("dragstart.drag",null);n&&(r.on("click.drag",ae,ie),setTimeout((function(){r.on("click.drag",null)}),0)),"onselectstart"in e?r.on("selectstart.drag",null):(e.style.MozUserSelect=e.__noselect,delete e.__noselect)}var fe=t=>()=>t;function se(t,{sourceEvent:n,subject:e,target:r,identifier:i,active:o,x:a,y:u,dx:c,dy:f,dispatch:s}){Object.defineProperties(this,{type:{value:t,enumerable:!0,configurable:!0},sourceEvent:{value:n,enumerable:!0,configurable:!0},subject:{value:e,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:f,enumerable:!0,configurable:!0},_:{value:s}})}function le(t){return!t.ctrlKey&&!t.button}function he(){return this.parentNode}function de(t,n){return null==n?{x:t.x,y:t.y}:n}function pe(){return navigator.maxTouchPoints||"ontouchstart"in this}function ge(t,n,e){t.prototype=n.prototype=e,e.constructor=t}function ye(t,n){var e=Object.create(t.prototype);for(var r in n)e[r]=n[r];return e}function ve(){}se.prototype.on=function(){var t=this._.on.apply(this._,arguments);return t===this._?this:t};var _e=.7,be=1/_e,me="\\s*([+-]?\\d+)\\s*",xe="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",we="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",Me=/^#([0-9a-f]{3,8})$/,Te=new RegExp(`^rgb\\(${me},${me},${me}\\)$`),Ae=new RegExp(`^rgb\\(${we},${we},${we}\\)$`),Se=new RegExp(`^rgba\\(${me},${me},${me},${xe}\\)$`),Ee=new RegExp(`^rgba\\(${we},${we},${we},${xe}\\)$`),Ne=new RegExp(`^hsl\\(${xe},${we},${we}\\)$`),ke=new RegExp(`^hsla\\(${xe},${we},${we},${xe}\\)$`),Ce={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 Pe(){return this.rgb().formatHex()}function ze(){return this.rgb().formatRgb()}function $e(t){var n,e;return t=(t+"").trim().toLowerCase(),(n=Me.exec(t))?(e=n[1].length,n=parseInt(n[1],16),6===e?De(n):3===e?new Ue(n>>8&15|n>>4&240,n>>4&15|240&n,(15&n)<<4|15&n,1):8===e?Re(n>>24&255,n>>16&255,n>>8&255,(255&n)/255):4===e?Re(n>>12&15|n>>8&240,n>>8&15|n>>4&240,n>>4&15|240&n,((15&n)<<4|15&n)/255):null):(n=Te.exec(t))?new Ue(n[1],n[2],n[3],1):(n=Ae.exec(t))?new Ue(255*n[1]/100,255*n[2]/100,255*n[3]/100,1):(n=Se.exec(t))?Re(n[1],n[2],n[3],n[4]):(n=Ee.exec(t))?Re(255*n[1]/100,255*n[2]/100,255*n[3]/100,n[4]):(n=Ne.exec(t))?je(n[1],n[2]/100,n[3]/100,1):(n=ke.exec(t))?je(n[1],n[2]/100,n[3]/100,n[4]):Ce.hasOwnProperty(t)?De(Ce[t]):"transparent"===t?new Ue(NaN,NaN,NaN,0):null}function De(t){return new Ue(t>>16&255,t>>8&255,255&t,1)}function Re(t,n,e,r){return r<=0&&(t=n=e=NaN),new Ue(t,n,e,r)}function Fe(t){return t instanceof ve||(t=$e(t)),t?new Ue((t=t.rgb()).r,t.g,t.b,t.opacity):new Ue}function qe(t,n,e,r){return 1===arguments.length?Fe(t):new Ue(t,n,e,null==r?1:r)}function Ue(t,n,e,r){this.r=+t,this.g=+n,this.b=+e,this.opacity=+r}function Ie(){return`#${Le(this.r)}${Le(this.g)}${Le(this.b)}`}function Oe(){const t=Be(this.opacity);return`${1===t?"rgb(":"rgba("}${Ye(this.r)}, ${Ye(this.g)}, ${Ye(this.b)}${1===t?")":`, ${t})`}`}function Be(t){return isNaN(t)?1:Math.max(0,Math.min(1,t))}function Ye(t){return Math.max(0,Math.min(255,Math.round(t)||0))}function Le(t){return((t=Ye(t))<16?"0":"")+t.toString(16)}function je(t,n,e,r){return r<=0?t=n=e=NaN:e<=0||e>=1?t=n=NaN:n<=0&&(t=NaN),new Ge(t,n,e,r)}function He(t){if(t instanceof Ge)return new Ge(t.h,t.s,t.l,t.opacity);if(t instanceof ve||(t=$e(t)),!t)return new Ge;if(t instanceof Ge)return t;var n=(t=t.rgb()).r/255,e=t.g/255,r=t.b/255,i=Math.min(n,e,r),o=Math.max(n,e,r),a=NaN,u=o-i,c=(o+i)/2;return u?(a=n===o?(e-r)/u+6*(e<r):e===o?(r-n)/u+2:(n-e)/u+4,u/=c<.5?o+i:2-o-i,a*=60):u=c>0&&c<1?0:a,new Ge(a,u,c,t.opacity)}function Xe(t,n,e,r){return 1===arguments.length?He(t):new Ge(t,n,e,null==r?1:r)}function Ge(t,n,e,r){this.h=+t,this.s=+n,this.l=+e,this.opacity=+r}function Ve(t){return(t=(t||0)%360)<0?t+360:t}function We(t){return Math.max(0,Math.min(1,t||0))}function Ze(t,n,e){return 255*(t<60?n+(e-n)*t/60:t<180?e:t<240?n+(e-n)*(240-t)/60:n)}ge(ve,$e,{copy(t){return Object.assign(new this.constructor,this,t)},displayable(){return this.rgb().displayable()},hex:Pe,formatHex:Pe,formatHex8:function(){return this.rgb().formatHex8()},formatHsl:function(){return He(this).formatHsl()},formatRgb:ze,toString:ze}),ge(Ue,qe,ye(ve,{brighter(t){return t=null==t?be:Math.pow(be,t),new Ue(this.r*t,this.g*t,this.b*t,this.opacity)},darker(t){return t=null==t?_e:Math.pow(_e,t),new Ue(this.r*t,this.g*t,this.b*t,this.opacity)},rgb(){return this},clamp(){return new Ue(Ye(this.r),Ye(this.g),Ye(this.b),Be(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:Ie,formatHex:Ie,formatHex8:function(){return`#${Le(this.r)}${Le(this.g)}${Le(this.b)}${Le(255*(isNaN(this.opacity)?1:this.opacity))}`},formatRgb:Oe,toString:Oe})),ge(Ge,Xe,ye(ve,{brighter(t){return t=null==t?be:Math.pow(be,t),new Ge(this.h,this.s,this.l*t,this.opacity)},darker(t){return t=null==t?_e:Math.pow(_e,t),new Ge(this.h,this.s,this.l*t,this.opacity)},rgb(){var t=this.h%360+360*(this.h<0),n=isNaN(t)||isNaN(this.s)?0:this.s,e=this.l,r=e+(e<.5?e:1-e)*n,i=2*e-r;return new Ue(Ze(t>=240?t-240:t+120,i,r),Ze(t,i,r),Ze(t<120?t+240:t-120,i,r),this.opacity)},clamp(){return new Ge(Ve(this.h),We(this.s),We(this.l),Be(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){const t=Be(this.opacity);return`${1===t?"hsl(":"hsla("}${Ve(this.h)}, ${100*We(this.s)}%, ${100*We(this.l)}%${1===t?")":`, ${t})`}`}}));const Ke=Math.PI/180,Qe=180/Math.PI,Je=.96422,tr=1,nr=.82521,er=4/29,rr=6/29,ir=3*rr*rr,or=rr*rr*rr;function ar(t){if(t instanceof cr)return new cr(t.l,t.a,t.b,t.opacity);if(t instanceof gr)return yr(t);t instanceof Ue||(t=Fe(t));var n,e,r=hr(t.r),i=hr(t.g),o=hr(t.b),a=fr((.2225045*r+.7168786*i+.0606169*o)/tr);return r===i&&i===o?n=e=a:(n=fr((.4360747*r+.3850649*i+.1430804*o)/Je),e=fr((.0139322*r+.0971045*i+.7141733*o)/nr)),new cr(116*a-16,500*(n-a),200*(a-e),t.opacity)}function ur(t,n,e,r){return 1===arguments.length?ar(t):new cr(t,n,e,null==r?1:r)}function cr(t,n,e,r){this.l=+t,this.a=+n,this.b=+e,this.opacity=+r}function fr(t){return t>or?Math.pow(t,1/3):t/ir+er}function sr(t){return t>rr?t*t*t:ir*(t-er)}function lr(t){return 255*(t<=.0031308?12.92*t:1.055*Math.pow(t,1/2.4)-.055)}function hr(t){return(t/=255)<=.04045?t/12.92:Math.pow((t+.055)/1.055,2.4)}function dr(t){if(t instanceof gr)return new gr(t.h,t.c,t.l,t.opacity);if(t instanceof cr||(t=ar(t)),0===t.a&&0===t.b)return new gr(NaN,0<t.l&&t.l<100?0:NaN,t.l,t.opacity);var n=Math.atan2(t.b,t.a)*Qe;return new gr(n<0?n+360:n,Math.sqrt(t.a*t.a+t.b*t.b),t.l,t.opacity)}function pr(t,n,e,r){return 1===arguments.length?dr(t):new gr(t,n,e,null==r?1:r)}function gr(t,n,e,r){this.h=+t,this.c=+n,this.l=+e,this.opacity=+r}function yr(t){if(isNaN(t.h))return new cr(t.l,0,0,t.opacity);var n=t.h*Ke;return new cr(t.l,Math.cos(n)*t.c,Math.sin(n)*t.c,t.opacity)}ge(cr,ur,ye(ve,{brighter(t){return new cr(this.l+18*(null==t?1:t),this.a,this.b,this.opacity)},darker(t){return new cr(this.l-18*(null==t?1:t),this.a,this.b,this.opacity)},rgb(){var t=(this.l+16)/116,n=isNaN(this.a)?t:t+this.a/500,e=isNaN(this.b)?t:t-this.b/200;return new Ue(lr(3.1338561*(n=Je*sr(n))-1.6168667*(t=tr*sr(t))-.4906146*(e=nr*sr(e))),lr(-.9787684*n+1.9161415*t+.033454*e),lr(.0719453*n-.2289914*t+1.4052427*e),this.opacity)}})),ge(gr,pr,ye(ve,{brighter(t){return new gr(this.h,this.c,this.l+18*(null==t?1:t),this.opacity)},darker(t){return new gr(this.h,this.c,this.l-18*(null==t?1:t),this.opacity)},rgb(){return yr(this).rgb()}}));var vr=-.14861,_r=1.78277,br=-.29227,mr=-.90649,xr=1.97294,wr=xr*mr,Mr=xr*_r,Tr=_r*br-mr*vr;function Ar(t,n,e,r){return 1===arguments.length?function(t){if(t instanceof Sr)return new Sr(t.h,t.s,t.l,t.opacity);t instanceof Ue||(t=Fe(t));var n=t.r/255,e=t.g/255,r=t.b/255,i=(Tr*r+wr*n-Mr*e)/(Tr+wr-Mr),o=r-i,a=(xr*(e-i)-br*o)/mr,u=Math.sqrt(a*a+o*o)/(xr*i*(1-i)),c=u?Math.atan2(a,o)*Qe-120:NaN;return new Sr(c<0?c+360:c,u,i,t.opacity)}(t):new Sr(t,n,e,null==r?1:r)}function Sr(t,n,e,r){this.h=+t,this.s=+n,this.l=+e,this.opacity=+r}function Er(t,n,e,r,i){var o=t*t,a=o*t;return((1-3*t+3*o-a)*n+(4-6*o+3*a)*e+(1+3*t+3*o-3*a)*r+a*i)/6}function Nr(t){var n=t.length-1;return function(e){var r=e<=0?e=0:e>=1?(e=1,n-1):Math.floor(e*n),i=t[r],o=t[r+1],a=r>0?t[r-1]:2*i-o,u=r<n-1?t[r+2]:2*o-i;return Er((e-r/n)*n,a,i,o,u)}}function kr(t){var n=t.length;return function(e){var r=Math.floor(((e%=1)<0?++e:e)*n),i=t[(r+n-1)%n],o=t[r%n],a=t[(r+1)%n],u=t[(r+2)%n];return Er((e-r/n)*n,i,o,a,u)}}ge(Sr,Ar,ye(ve,{brighter(t){return t=null==t?be:Math.pow(be,t),new Sr(this.h,this.s,this.l*t,this.opacity)},darker(t){return t=null==t?_e:Math.pow(_e,t),new Sr(this.h,this.s,this.l*t,this.opacity)},rgb(){var t=isNaN(this.h)?0:(this.h+120)*Ke,n=+this.l,e=isNaN(this.s)?0:this.s*n*(1-n),r=Math.cos(t),i=Math.sin(t);return new Ue(255*(n+e*(vr*r+_r*i)),255*(n+e*(br*r+mr*i)),255*(n+e*(xr*r)),this.opacity)}}));var Cr=t=>()=>t;function Pr(t,n){return function(e){return t+e*n}}function zr(t,n){var e=n-t;return e?Pr(t,e>180||e<-180?e-360*Math.round(e/360):e):Cr(isNaN(t)?n:t)}function $r(t){return 1==(t=+t)?Dr:function(n,e){return e-n?function(t,n,e){return t=Math.pow(t,e),n=Math.pow(n,e)-t,e=1/e,function(r){return Math.pow(t+r*n,e)}}(n,e,t):Cr(isNaN(n)?e:n)}}function Dr(t,n){var e=n-t;return e?Pr(t,e):Cr(isNaN(t)?n:t)}var Rr=function t(n){var e=$r(n);function r(t,n){var r=e((t=qe(t)).r,(n=qe(n)).r),i=e(t.g,n.g),o=e(t.b,n.b),a=Dr(t.opacity,n.opacity);return function(n){return t.r=r(n),t.g=i(n),t.b=o(n),t.opacity=a(n),t+""}}return r.gamma=t,r}(1);function Fr(t){return function(n){var e,r,i=n.length,o=new Array(i),a=new Array(i),u=new Array(i);for(e=0;e<i;++e)r=qe(n[e]),o[e]=r.r||0,a[e]=r.g||0,u[e]=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+""}}}var qr=Fr(Nr),Ur=Fr(kr);function Ir(t,n){n||(n=[]);var e,r=t?Math.min(n.length,t.length):0,i=n.slice();return function(o){for(e=0;e<r;++e)i[e]=t[e]*(1-o)+n[e]*o;return i}}function Or(t){return ArrayBuffer.isView(t)&&!(t instanceof DataView)}function Br(t,n){var e,r=n?n.length:0,i=t?Math.min(r,t.length):0,o=new Array(i),a=new Array(r);for(e=0;e<i;++e)o[e]=Vr(t[e],n[e]);for(;e<r;++e)a[e]=n[e];return function(t){for(e=0;e<i;++e)a[e]=o[e](t);return a}}function Yr(t,n){var e=new Date;return t=+t,n=+n,function(r){return e.setTime(t*(1-r)+n*r),e}}function Lr(t,n){return t=+t,n=+n,function(e){return t*(1-e)+n*e}}function jr(t,n){var e,r={},i={};for(e in null!==t&&"object"==typeof t||(t={}),null!==n&&"object"==typeof n||(n={}),n)e in t?r[e]=Vr(t[e],n[e]):i[e]=n[e];return function(t){for(e in r)i[e]=r[e](t);return i}}var Hr=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,Xr=new RegExp(Hr.source,"g");function Gr(t,n){var e,r,i,o=Hr.lastIndex=Xr.lastIndex=0,a=-1,u=[],c=[];for(t+="",n+="";(e=Hr.exec(t))&&(r=Xr.exec(n));)(i=r.index)>o&&(i=n.slice(o,i),u[a]?u[a]+=i:u[++a]=i),(e=e[0])===(r=r[0])?u[a]?u[a]+=r:u[++a]=r:(u[++a]=null,c.push({i:a,x:Lr(e,r)})),o=Xr.lastIndex;return o<n.length&&(i=n.slice(o),u[a]?u[a]+=i:u[++a]=i),u.length<2?c[0]?function(t){return function(n){return t(n)+""}}(c[0].x):function(t){return function(){return t}}(n):(n=c.length,function(t){for(var e,r=0;r<n;++r)u[(e=c[r]).i]=e.x(t);return u.join("")})}function Vr(t,n){var e,r=typeof n;return null==n||"boolean"===r?Cr(n):("number"===r?Lr:"string"===r?(e=$e(n))?(n=e,Rr):Gr:n instanceof $e?Rr:n instanceof Date?Yr:Or(n)?Ir:Array.isArray(n)?Br:"function"!=typeof n.valueOf&&"function"!=typeof n.toString||isNaN(n)?jr:Lr)(t,n)}function Wr(t,n){return t=+t,n=+n,function(e){return Math.round(t*(1-e)+n*e)}}var Zr,Kr=180/Math.PI,Qr={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function Jr(t,n,e,r,i,o){var a,u,c;return(a=Math.sqrt(t*t+n*n))&&(t/=a,n/=a),(c=t*e+n*r)&&(e-=t*c,r-=n*c),(u=Math.sqrt(e*e+r*r))&&(e/=u,r/=u,c/=u),t*r<n*e&&(t=-t,n=-n,c=-c,a=-a),{translateX:i,translateY:o,rotate:Math.atan2(n,t)*Kr,skewX:Math.atan(c)*Kr,scaleX:a,scaleY:u}}function ti(t,n,e,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,n,null,e);u.push({i:c-4,x:Lr(t,i)},{i:c-2,x:Lr(r,o)})}else(i||o)&&a.push("translate("+i+n+o+e)}(o.translateX,o.translateY,a.translateX,a.translateY,u,c),function(t,n,e,o){t!==n?(t-n>180?n+=360:n-t>180&&(t+=360),o.push({i:e.push(i(e)+"rotate(",null,r)-2,x:Lr(t,n)})):n&&e.push(i(e)+"rotate("+n+r)}(o.rotate,a.rotate,u,c),function(t,n,e,o){t!==n?o.push({i:e.push(i(e)+"skewX(",null,r)-2,x:Lr(t,n)}):n&&e.push(i(e)+"skewX("+n+r)}(o.skewX,a.skewX,u,c),function(t,n,e,r,o,a){if(t!==e||n!==r){var u=o.push(i(o)+"scale(",null,",",null,")");a.push({i:u-4,x:Lr(t,e)},{i:u-2,x:Lr(n,r)})}else 1===e&&1===r||o.push(i(o)+"scale("+e+","+r+")")}(o.scaleX,o.scaleY,a.scaleX,a.scaleY,u,c),o=a=null,function(t){for(var n,e=-1,r=c.length;++e<r;)u[(n=c[e]).i]=n.x(t);return u.join("")}}}var ni=ti((function(t){const n=new("function"==typeof DOMMatrix?DOMMatrix:WebKitCSSMatrix)(t+"");return n.isIdentity?Qr:Jr(n.a,n.b,n.c,n.d,n.e,n.f)}),"px, ","px)","deg)"),ei=ti((function(t){return null==t?Qr:(Zr||(Zr=document.createElementNS("http://www.w3.org/2000/svg","g")),Zr.setAttribute("transform",t),(t=Zr.transform.baseVal.consolidate())?Jr((t=t.matrix).a,t.b,t.c,t.d,t.e,t.f):Qr)}),", ",")",")");function ri(t){return((t=Math.exp(t))+1/t)/2}var ii=function t(n,e,r){function i(t,i){var o,a,u=t[0],c=t[1],f=t[2],s=i[0],l=i[1],h=i[2],d=s-u,p=l-c,g=d*d+p*p;if(g<1e-12)a=Math.log(h/f)/n,o=function(t){return[u+t*d,c+t*p,f*Math.exp(n*t*a)]};else{var y=Math.sqrt(g),v=(h*h-f*f+r*g)/(2*f*e*y),_=(h*h-f*f-r*g)/(2*h*e*y),b=Math.log(Math.sqrt(v*v+1)-v),m=Math.log(Math.sqrt(_*_+1)-_);a=(m-b)/n,o=function(t){var r=t*a,i=ri(b),o=f/(e*y)*(i*function(t){return((t=Math.exp(2*t))-1)/(t+1)}(n*r+b)-function(t){return((t=Math.exp(t))-1/t)/2}(b));return[u+o*d,c+o*p,f*i/ri(n*r+b)]}}return o.duration=1e3*a*n/Math.SQRT2,o}return i.rho=function(n){var e=Math.max(.001,+n),r=e*e;return t(e,r,r*r)},i}(Math.SQRT2,2,4);function oi(t){return function(n,e){var r=t((n=Xe(n)).h,(e=Xe(e)).h),i=Dr(n.s,e.s),o=Dr(n.l,e.l),a=Dr(n.opacity,e.opacity);return function(t){return n.h=r(t),n.s=i(t),n.l=o(t),n.opacity=a(t),n+""}}}var ai=oi(zr),ui=oi(Dr);function ci(t){return function(n,e){var r=t((n=pr(n)).h,(e=pr(e)).h),i=Dr(n.c,e.c),o=Dr(n.l,e.l),a=Dr(n.opacity,e.opacity);return function(t){return n.h=r(t),n.c=i(t),n.l=o(t),n.opacity=a(t),n+""}}}var fi=ci(zr),si=ci(Dr);function li(t){return function n(e){function r(n,r){var i=t((n=Ar(n)).h,(r=Ar(r)).h),o=Dr(n.s,r.s),a=Dr(n.l,r.l),u=Dr(n.opacity,r.opacity);return function(t){return n.h=i(t),n.s=o(t),n.l=a(Math.pow(t,e)),n.opacity=u(t),n+""}}return e=+e,r.gamma=n,r}(1)}var hi=li(zr),di=li(Dr);function pi(t,n){void 0===n&&(n=t,t=Vr);for(var e=0,r=n.length-1,i=n[0],o=new Array(r<0?0:r);e<r;)o[e]=t(i,i=n[++e]);return function(t){var n=Math.max(0,Math.min(r-1,Math.floor(t*=r)));return o[n](t-n)}}var gi,yi,vi=0,_i=0,bi=0,mi=1e3,xi=0,wi=0,Mi=0,Ti="object"==typeof performance&&performance.now?performance:Date,Ai="object"==typeof window&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(t){setTimeout(t,17)};function Si(){return wi||(Ai(Ei),wi=Ti.now()+Mi)}function Ei(){wi=0}function Ni(){this._call=this._time=this._next=null}function ki(t,n,e){var r=new Ni;return r.restart(t,n,e),r}function Ci(){Si(),++vi;for(var t,n=gi;n;)(t=wi-n._time)>=0&&n._call.call(void 0,t),n=n._next;--vi}function Pi(){wi=(xi=Ti.now())+Mi,vi=_i=0;try{Ci()}finally{vi=0,function(){var t,n,e=gi,r=1/0;for(;e;)e._call?(r>e._time&&(r=e._time),t=e,e=e._next):(n=e._next,e._next=null,e=t?t._next=n:gi=n);yi=t,$i(r)}(),wi=0}}function zi(){var t=Ti.now(),n=t-xi;n>mi&&(Mi-=n,xi=t)}function $i(t){vi||(_i&&(_i=clearTimeout(_i)),t-wi>24?(t<1/0&&(_i=setTimeout(Pi,t-Ti.now()-Mi)),bi&&(bi=clearInterval(bi))):(bi||(xi=Ti.now(),bi=setInterval(zi,mi)),vi=1,Ai(Pi)))}function Di(t,n,e){var r=new Ni;return n=null==n?0:+n,r.restart((e=>{r.stop(),t(e+n)}),n,e),r}Ni.prototype=ki.prototype={constructor:Ni,restart:function(t,n,e){if("function"!=typeof t)throw new TypeError("callback is not a function");e=(null==e?Si():+e)+(null==n?0:+n),this._next||yi===this||(yi?yi._next=this:gi=this,yi=this),this._call=t,this._time=e,$i()},stop:function(){this._call&&(this._call=null,this._time=1/0,$i())}};var Ri=Dt("start","end","cancel","interrupt"),Fi=[],qi=0,Ui=1,Ii=2,Oi=3,Bi=4,Yi=5,Li=6;function ji(t,n,e,r,i,o){var a=t.__transition;if(a){if(e in a)return}else t.__transition={};!function(t,n,e){var r,i=t.__transition;function o(t){e.state=Ui,e.timer.restart(a,e.delay,e.time),e.delay<=t&&a(t-e.delay)}function a(o){var f,s,l,h;if(e.state!==Ui)return c();for(f in i)if((h=i[f]).name===e.name){if(h.state===Oi)return Di(a);h.state===Bi?(h.state=Li,h.timer.stop(),h.on.call("interrupt",t,t.__data__,h.index,h.group),delete i[f]):+f<n&&(h.state=Li,h.timer.stop(),h.on.call("cancel",t,t.__data__,h.index,h.group),delete i[f])}if(Di((function(){e.state===Oi&&(e.state=Bi,e.timer.restart(u,e.delay,e.time),u(o))})),e.state=Ii,e.on.call("start",t,t.__data__,e.index,e.group),e.state===Ii){for(e.state=Oi,r=new Array(l=e.tween.length),f=0,s=-1;f<l;++f)(h=e.tween[f].value.call(t,t.__data__,e.index,e.group))&&(r[++s]=h);r.length=s+1}}function u(n){for(var i=n<e.duration?e.ease.call(null,n/e.duration):(e.timer.restart(c),e.state=Yi,1),o=-1,a=r.length;++o<a;)r[o].call(t,i);e.state===Yi&&(e.on.call("end",t,t.__data__,e.index,e.group),c())}function c(){for(var r in e.state=Li,e.timer.stop(),delete i[n],i)return;delete t.__transition}i[n]=e,e.timer=ki(o,0,e.time)}(t,e,{name:n,index:r,group:i,on:Ri,tween:Fi,time:o.time,delay:o.delay,duration:o.duration,ease:o.ease,timer:null,state:qi})}function Hi(t,n){var e=Gi(t,n);if(e.state>qi)throw new Error("too late; already scheduled");return e}function Xi(t,n){var e=Gi(t,n);if(e.state>Oi)throw new Error("too late; already running");return e}function Gi(t,n){var e=t.__transition;if(!e||!(e=e[n]))throw new Error("transition not found");return e}function Vi(t,n){var e,r,i,o=t.__transition,a=!0;if(o){for(i in n=null==n?null:n+"",o)(e=o[i]).name===n?(r=e.state>Ii&&e.state<Yi,e.state=Li,e.timer.stop(),e.on.call(r?"interrupt":"cancel",t,t.__data__,e.index,e.group),delete o[i]):a=!1;a&&delete t.__transition}}function Wi(t,n){var e,r;return function(){var i=Xi(this,t),o=i.tween;if(o!==e)for(var a=0,u=(r=e=o).length;a<u;++a)if(r[a].name===n){(r=r.slice()).splice(a,1);break}i.tween=r}}function Zi(t,n,e){var r,i;if("function"!=typeof e)throw new Error;return function(){var o=Xi(this,t),a=o.tween;if(a!==r){i=(r=a).slice();for(var u={name:n,value:e},c=0,f=i.length;c<f;++c)if(i[c].name===n){i[c]=u;break}c===f&&i.push(u)}o.tween=i}}function Ki(t,n,e){var r=t._id;return t.each((function(){var t=Xi(this,r);(t.value||(t.value={}))[n]=e.apply(this,arguments)})),function(t){return Gi(t,r).value[n]}}function Qi(t,n){var e;return("number"==typeof n?Lr:n instanceof $e?Rr:(e=$e(n))?(n=e,Rr):Gr)(t,n)}function Ji(t){return function(){this.removeAttribute(t)}}function to(t){return function(){this.removeAttributeNS(t.space,t.local)}}function no(t,n,e){var r,i,o=e+"";return function(){var a=this.getAttribute(t);return a===o?null:a===r?i:i=n(r=a,e)}}function eo(t,n,e){var r,i,o=e+"";return function(){var a=this.getAttributeNS(t.space,t.local);return a===o?null:a===r?i:i=n(r=a,e)}}function ro(t,n,e){var r,i,o;return function(){var a,u,c=e(this);if(null!=c)return(a=this.getAttribute(t))===(u=c+"")?null:a===r&&u===i?o:(i=u,o=n(r=a,c));this.removeAttribute(t)}}function io(t,n,e){var r,i,o;return function(){var a,u,c=e(this);if(null!=c)return(a=this.getAttributeNS(t.space,t.local))===(u=c+"")?null:a===r&&u===i?o:(i=u,o=n(r=a,c));this.removeAttributeNS(t.space,t.local)}}function oo(t,n){var e,r;function i(){var i=n.apply(this,arguments);return i!==r&&(e=(r=i)&&function(t,n){return function(e){this.setAttributeNS(t.space,t.local,n.call(this,e))}}(t,i)),e}return i._value=n,i}function ao(t,n){var e,r;function i(){var i=n.apply(this,arguments);return i!==r&&(e=(r=i)&&function(t,n){return function(e){this.setAttribute(t,n.call(this,e))}}(t,i)),e}return i._value=n,i}function uo(t,n){return function(){Hi(this,t).delay=+n.apply(this,arguments)}}function co(t,n){return n=+n,function(){Hi(this,t).delay=n}}function fo(t,n){return function(){Xi(this,t).duration=+n.apply(this,arguments)}}function so(t,n){return n=+n,function(){Xi(this,t).duration=n}}var lo=Zn.prototype.constructor;function ho(t){return function(){this.style.removeProperty(t)}}var po=0;function go(t,n,e,r){this._groups=t,this._parents=n,this._name=e,this._id=r}function yo(t){return Zn().transition(t)}function vo(){return++po}var _o=Zn.prototype;go.prototype=yo.prototype={constructor:go,select:function(t){var n=this._name,e=this._id;"function"!=typeof t&&(t=Ht(t));for(var r=this._groups,i=r.length,o=new Array(i),a=0;a<i;++a)for(var u,c,f=r[a],s=f.length,l=o[a]=new Array(s),h=0;h<s;++h)(u=f[h])&&(c=t.call(u,u.__data__,h,f))&&("__data__"in u&&(c.__data__=u.__data__),l[h]=c,ji(l[h],n,e,h,l,Gi(u,e)));return new go(o,this._parents,n,e)},selectAll:function(t){var n=this._name,e=this._id;"function"!=typeof t&&(t=Vt(t));for(var r=this._groups,i=r.length,o=[],a=[],u=0;u<i;++u)for(var c,f=r[u],s=f.length,l=0;l<s;++l)if(c=f[l]){for(var h,d=t.call(c,c.__data__,l,f),p=Gi(c,e),g=0,y=d.length;g<y;++g)(h=d[g])&&ji(h,n,e,g,d,p);o.push(d),a.push(c)}return new go(o,a,n,e)},selectChild:_o.selectChild,selectChildren:_o.selectChildren,filter:function(t){"function"!=typeof t&&(t=Wt(t));for(var n=this._groups,e=n.length,r=new Array(e),i=0;i<e;++i)for(var o,a=n[i],u=a.length,c=r[i]=[],f=0;f<u;++f)(o=a[f])&&t.call(o,o.__data__,f,a)&&c.push(o);return new go(r,this._parents,this._name,this._id)},merge:function(t){if(t._id!==this._id)throw new Error;for(var n=this._groups,e=t._groups,r=n.length,i=e.length,o=Math.min(r,i),a=new Array(r),u=0;u<o;++u)for(var c,f=n[u],s=e[u],l=f.length,h=a[u]=new Array(l),d=0;d<l;++d)(c=f[d]||s[d])&&(h[d]=c);for(;u<r;++u)a[u]=n[u];return new go(a,this._parents,this._name,this._id)},selection:function(){return new lo(this._groups,this._parents)},transition:function(){for(var t=this._name,n=this._id,e=vo(),r=this._groups,i=r.length,o=0;o<i;++o)for(var a,u=r[o],c=u.length,f=0;f<c;++f)if(a=u[f]){var s=Gi(a,n);ji(a,t,e,f,u,{time:s.time+s.delay+s.duration,delay:0,duration:s.duration,ease:s.ease})}return new go(r,this._parents,t,e)},call:_o.call,nodes:_o.nodes,node:_o.node,size:_o.size,empty:_o.empty,each:_o.each,on:function(t,n){var e=this._id;return arguments.length<2?Gi(this.node(),e).on.on(t):this.each(function(t,n,e){var r,i,o=function(t){return(t+"").trim().split(/^|\s+/).every((function(t){var n=t.indexOf(".");return n>=0&&(t=t.slice(0,n)),!t||"start"===t}))}(n)?Hi:Xi;return function(){var a=o(this,t),u=a.on;u!==r&&(i=(r=u).copy()).on(n,e),a.on=i}}(e,t,n))},attr:function(t,n){var e=Ot(t),r="transform"===e?ei:Qi;return this.attrTween(t,"function"==typeof n?(e.local?io:ro)(e,r,Ki(this,"attr."+t,n)):null==n?(e.local?to:Ji)(e):(e.local?eo:no)(e,r,n))},attrTween:function(t,n){var e="attr."+t;if(arguments.length<2)return(e=this.tween(e))&&e._value;if(null==n)return this.tween(e,null);if("function"!=typeof n)throw new Error;var r=Ot(t);return this.tween(e,(r.local?oo:ao)(r,n))},style:function(t,n,e){var r="transform"==(t+="")?ni:Qi;return null==n?this.styleTween(t,function(t,n){var e,r,i;return function(){var o=bn(this,t),a=(this.style.removeProperty(t),bn(this,t));return o===a?null:o===e&&a===r?i:i=n(e=o,r=a)}}(t,r)).on("end.style."+t,ho(t)):"function"==typeof n?this.styleTween(t,function(t,n,e){var r,i,o;return function(){var a=bn(this,t),u=e(this),c=u+"";return null==u&&(this.style.removeProperty(t),c=u=bn(this,t)),a===c?null:a===r&&c===i?o:(i=c,o=n(r=a,u))}}(t,r,Ki(this,"style."+t,n))).each(function(t,n){var e,r,i,o,a="style."+n,u="end."+a;return function(){var c=Xi(this,t),f=c.on,s=null==c.value[a]?o||(o=ho(n)):void 0;f===e&&i===s||(r=(e=f).copy()).on(u,i=s),c.on=r}}(this._id,t)):this.styleTween(t,function(t,n,e){var r,i,o=e+"";return function(){var a=bn(this,t);return a===o?null:a===r?i:i=n(r=a,e)}}(t,r,n),e).on("end.style."+t,null)},styleTween:function(t,n,e){var r="style."+(t+="");if(arguments.length<2)return(r=this.tween(r))&&r._value;if(null==n)return this.tween(r,null);if("function"!=typeof n)throw new Error;return this.tween(r,function(t,n,e){var r,i;function o(){var o=n.apply(this,arguments);return o!==i&&(r=(i=o)&&function(t,n,e){return function(r){this.style.setProperty(t,n.call(this,r),e)}}(t,o,e)),r}return o._value=n,o}(t,n,null==e?"":e))},text:function(t){return this.tween("text","function"==typeof t?function(t){return function(){var n=t(this);this.textContent=null==n?"":n}}(Ki(this,"text",t)):function(t){return function(){this.textContent=t}}(null==t?"":t+""))},textTween:function(t){var n="text";if(arguments.length<1)return(n=this.tween(n))&&n._value;if(null==t)return this.tween(n,null);if("function"!=typeof t)throw new Error;return this.tween(n,function(t){var n,e;function r(){var r=t.apply(this,arguments);return r!==e&&(n=(e=r)&&function(t){return function(n){this.textContent=t.call(this,n)}}(r)),n}return r._value=t,r}(t))},remove:function(){return this.on("end.remove",function(t){return function(){var n=this.parentNode;for(var e in this.__transition)if(+e!==t)return;n&&n.removeChild(this)}}(this._id))},tween:function(t,n){var e=this._id;if(t+="",arguments.length<2){for(var r,i=Gi(this.node(),e).tween,o=0,a=i.length;o<a;++o)if((r=i[o]).name===t)return r.value;return null}return this.each((null==n?Wi:Zi)(e,t,n))},delay:function(t){var n=this._id;return arguments.length?this.each(("function"==typeof t?uo:co)(n,t)):Gi(this.node(),n).delay},duration:function(t){var n=this._id;return arguments.length?this.each(("function"==typeof t?fo:so)(n,t)):Gi(this.node(),n).duration},ease:function(t){var n=this._id;return arguments.length?this.each(function(t,n){if("function"!=typeof n)throw new Error;return function(){Xi(this,t).ease=n}}(n,t)):Gi(this.node(),n).ease},easeVarying:function(t){if("function"!=typeof t)throw new Error;return this.each(function(t,n){return function(){var e=n.apply(this,arguments);if("function"!=typeof e)throw new Error;Xi(this,t).ease=e}}(this._id,t))},end:function(){var t,n,e=this,r=e._id,i=e.size();return new Promise((function(o,a){var u={value:a},c={value:function(){0==--i&&o()}};e.each((function(){var e=Xi(this,r),i=e.on;i!==t&&((n=(t=i).copy())._.cancel.push(u),n._.interrupt.push(u),n._.end.push(c)),e.on=n})),0===i&&o()}))},[Symbol.iterator]:_o[Symbol.iterator]};function bo(t){return((t*=2)<=1?t*t:--t*(2-t)+1)/2}function mo(t){return((t*=2)<=1?t*t*t:(t-=2)*t*t+2)/2}var xo=function t(n){function e(t){return Math.pow(t,n)}return n=+n,e.exponent=t,e}(3),wo=function t(n){function e(t){return 1-Math.pow(1-t,n)}return n=+n,e.exponent=t,e}(3),Mo=function t(n){function e(t){return((t*=2)<=1?Math.pow(t,n):2-Math.pow(2-t,n))/2}return n=+n,e.exponent=t,e}(3),To=Math.PI,Ao=To/2;function So(t){return(1-Math.cos(To*t))/2}function Eo(t){return 1.0009775171065494*(Math.pow(2,-10*t)-.0009765625)}function No(t){return((t*=2)<=1?Eo(1-t):2-Eo(t-1))/2}function ko(t){return((t*=2)<=1?1-Math.sqrt(1-t*t):Math.sqrt(1-(t-=2)*t)+1)/2}var Co=4/11,Po=6/11,zo=8/11,$o=3/4,Do=9/11,Ro=10/11,Fo=15/16,qo=21/22,Uo=63/64,Io=1/Co/Co;function Oo(t){return(t=+t)<Co?Io*t*t:t<zo?Io*(t-=Po)*t+$o:t<Ro?Io*(t-=Do)*t+Fo:Io*(t-=qo)*t+Uo}var Bo=1.70158,Yo=function t(n){function e(t){return(t=+t)*t*(n*(t-1)+t)}return n=+n,e.overshoot=t,e}(Bo),Lo=function t(n){function e(t){return--t*t*((t+1)*n+t)+1}return n=+n,e.overshoot=t,e}(Bo),jo=function t(n){function e(t){return((t*=2)<1?t*t*((n+1)*t-n):(t-=2)*t*((n+1)*t+n)+2)/2}return n=+n,e.overshoot=t,e}(Bo),Ho=2*Math.PI,Xo=function t(n,e){var r=Math.asin(1/(n=Math.max(1,n)))*(e/=Ho);function i(t){return n*Eo(- --t)*Math.sin((r-t)/e)}return i.amplitude=function(n){return t(n,e*Ho)},i.period=function(e){return t(n,e)},i}(1,.3),Go=function t(n,e){var r=Math.asin(1/(n=Math.max(1,n)))*(e/=Ho);function i(t){return 1-n*Eo(t=+t)*Math.sin((t+r)/e)}return i.amplitude=function(n){return t(n,e*Ho)},i.period=function(e){return t(n,e)},i}(1,.3),Vo=function t(n,e){var r=Math.asin(1/(n=Math.max(1,n)))*(e/=Ho);function i(t){return((t=2*t-1)<0?n*Eo(-t)*Math.sin((r-t)/e):2-n*Eo(t)*Math.sin((r+t)/e))/2}return i.amplitude=function(n){return t(n,e*Ho)},i.period=function(e){return t(n,e)},i}(1,.3),Wo={time:null,delay:0,duration:250,ease:mo};function Zo(t,n){for(var e;!(e=t.__transition)||!(e=e[n]);)if(!(t=t.parentNode))throw new Error(`transition ${n} not found`);return e}Zn.prototype.interrupt=function(t){return this.each((function(){Vi(this,t)}))},Zn.prototype.transition=function(t){var n,e;t instanceof go?(n=t._id,t=t._name):(n=vo(),(e=Wo).time=Si(),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,f=0;f<c;++f)(a=u[f])&&ji(a,t,n,f,u,e||Zo(a,n));return new go(r,this._parents,t,n)};var Ko=[null];var Qo=t=>()=>t;function Jo(t,{sourceEvent:n,target:e,selection:r,mode:i,dispatch:o}){Object.defineProperties(this,{type:{value:t,enumerable:!0,configurable:!0},sourceEvent:{value:n,enumerable:!0,configurable:!0},target:{value:e,enumerable:!0,configurable:!0},selection:{value:r,enumerable:!0,configurable:!0},mode:{value:i,enumerable:!0,configurable:!0},_:{value:o}})}function ta(t){t.preventDefault(),t.stopImmediatePropagation()}var na={name:"drag"},ea={name:"space"},ra={name:"handle"},ia={name:"center"};const{abs:oa,max:aa,min:ua}=Math;function ca(t){return[+t[0],+t[1]]}function fa(t){return[ca(t[0]),ca(t[1])]}var sa={name:"x",handles:["w","e"].map(_a),input:function(t,n){return null==t?null:[[+t[0],n[0][1]],[+t[1],n[1][1]]]},output:function(t){return t&&[t[0][0],t[1][0]]}},la={name:"y",handles:["n","s"].map(_a),input:function(t,n){return null==t?null:[[n[0][0],+t[0]],[n[1][0],+t[1]]]},output:function(t){return t&&[t[0][1],t[1][1]]}},ha={name:"xy",handles:["n","w","e","s","nw","ne","sw","se"].map(_a),input:function(t){return null==t?null:fa(t)},output:function(t){return t}},da={overlay:"crosshair",selection:"move",n:"ns-resize",e:"ew-resize",s:"ns-resize",w:"ew-resize",nw:"nwse-resize",ne:"nesw-resize",se:"nwse-resize",sw:"nesw-resize"},pa={e:"w",w:"e",nw:"ne",ne:"nw",se:"sw",sw:"se"},ga={n:"s",s:"n",nw:"sw",ne:"se",se:"ne",sw:"nw"},ya={overlay:1,selection:1,n:null,e:1,s:null,w:-1,nw:-1,ne:1,se:1,sw:-1},va={overlay:1,selection:1,n:-1,e:null,s:1,w:null,nw:-1,ne:-1,se:1,sw:1};function _a(t){return{type:t}}function ba(t){return!t.ctrlKey&&!t.button}function ma(){var t=this.ownerSVGElement||this;return 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]]}function xa(){return navigator.maxTouchPoints||"ontouchstart"in this}function wa(t){for(;!t.__brush;)if(!(t=t.parentNode))return;return t.__brush}function Ma(t){var n,e=ma,r=ba,i=xa,o=!0,a=Dt("start","brush","end"),u=6;function c(n){var e=n.property("__brush",g).selectAll(".overlay").data([_a("overlay")]);e.enter().append("rect").attr("class","overlay").attr("pointer-events","all").attr("cursor",da.overlay).merge(e).each((function(){var t=wa(this).extent;Kn(this).attr("x",t[0][0]).attr("y",t[0][1]).attr("width",t[1][0]-t[0][0]).attr("height",t[1][1]-t[0][1])})),n.selectAll(".selection").data([_a("selection")]).enter().append("rect").attr("class","selection").attr("cursor",da.selection).attr("fill","#777").attr("fill-opacity",.3).attr("stroke","#fff").attr("shape-rendering","crispEdges");var r=n.selectAll(".handle").data(t.handles,(function(t){return t.type}));r.exit().remove(),r.enter().append("rect").attr("class",(function(t){return"handle handle--"+t.type})).attr("cursor",(function(t){return da[t.type]})),n.each(f).attr("fill","none").attr("pointer-events","all").on("mousedown.brush",h).filter(i).on("touchstart.brush",h).on("touchmove.brush",d).on("touchend.brush touchcancel.brush",p).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function f(){var t=Kn(this),n=wa(this).selection;n?(t.selectAll(".selection").style("display",null).attr("x",n[0][0]).attr("y",n[0][1]).attr("width",n[1][0]-n[0][0]).attr("height",n[1][1]-n[0][1]),t.selectAll(".handle").style("display",null).attr("x",(function(t){return"e"===t.type[t.type.length-1]?n[1][0]-u/2:n[0][0]-u/2})).attr("y",(function(t){return"s"===t.type[0]?n[1][1]-u/2:n[0][1]-u/2})).attr("width",(function(t){return"n"===t.type||"s"===t.type?n[1][0]-n[0][0]+u:u})).attr("height",(function(t){return"e"===t.type||"w"===t.type?n[1][1]-n[0][1]+u:u}))):t.selectAll(".selection,.handle").style("display","none").attr("x",null).attr("y",null).attr("width",null).attr("height",null)}function s(t,n,e){var r=t.__brush.emitter;return!r||e&&r.clean?new l(t,n,e):r}function l(t,n,e){this.that=t,this.args=n,this.state=t.__brush,this.active=0,this.clean=e}function h(e){if((!n||e.touches)&&r.apply(this,arguments)){var i,a,u,c,l,h,d,p,g,y,v,_=this,b=e.target.__data__.type,m="selection"===(o&&e.metaKey?b="overlay":b)?na:o&&e.altKey?ia:ra,x=t===la?null:ya[b],w=t===sa?null:va[b],M=wa(_),T=M.extent,A=M.selection,S=T[0][0],E=T[0][1],N=T[1][0],k=T[1][1],C=0,P=0,z=x&&w&&o&&e.shiftKey,$=Array.from(e.touches||[e],(t=>{const n=t.identifier;return(t=ee(t,_)).point0=t.slice(),t.identifier=n,t}));Vi(_);var D=s(_,arguments,!0).beforestart();if("overlay"===b){A&&(g=!0);const n=[$[0],$[1]||$[0]];M.selection=A=[[i=t===la?S:ua(n[0][0],n[1][0]),u=t===sa?E:ua(n[0][1],n[1][1])],[l=t===la?N:aa(n[0][0],n[1][0]),d=t===sa?k:aa(n[0][1],n[1][1])]],$.length>1&&I(e)}else i=A[0][0],u=A[0][1],l=A[1][0],d=A[1][1];a=i,c=u,h=l,p=d;var R=Kn(_).attr("pointer-events","none"),F=R.selectAll(".overlay").attr("cursor",da[b]);if(e.touches)D.moved=U,D.ended=O;else{var q=Kn(e.view).on("mousemove.brush",U,!0).on("mouseup.brush",O,!0);o&&q.on("keydown.brush",(function(t){switch(t.keyCode){case 16:z=x&&w;break;case 18:m===ra&&(x&&(l=h-C*x,i=a+C*x),w&&(d=p-P*w,u=c+P*w),m=ia,I(t));break;case 32:m!==ra&&m!==ia||(x<0?l=h-C:x>0&&(i=a-C),w<0?d=p-P:w>0&&(u=c-P),m=ea,F.attr("cursor",da.selection),I(t));break;default:return}ta(t)}),!0).on("keyup.brush",(function(t){switch(t.keyCode){case 16:z&&(y=v=z=!1,I(t));break;case 18:m===ia&&(x<0?l=h:x>0&&(i=a),w<0?d=p:w>0&&(u=c),m=ra,I(t));break;case 32:m===ea&&(t.altKey?(x&&(l=h-C*x,i=a+C*x),w&&(d=p-P*w,u=c+P*w),m=ia):(x<0?l=h:x>0&&(i=a),w<0?d=p:w>0&&(u=c),m=ra),F.attr("cursor",da[b]),I(t));break;default:return}ta(t)}),!0),ue(e.view)}f.call(_),D.start(e,m.name)}function U(t){for(const n of t.changedTouches||[t])for(const t of $)t.identifier===n.identifier&&(t.cur=ee(n,_));if(z&&!y&&!v&&1===$.length){const t=$[0];oa(t.cur[0]-t[0])>oa(t.cur[1]-t[1])?v=!0:y=!0}for(const t of $)t.cur&&(t[0]=t.cur[0],t[1]=t.cur[1]);g=!0,ta(t),I(t)}function I(t){const n=$[0],e=n.point0;var r;switch(C=n[0]-e[0],P=n[1]-e[1],m){case ea:case na:x&&(C=aa(S-i,ua(N-l,C)),a=i+C,h=l+C),w&&(P=aa(E-u,ua(k-d,P)),c=u+P,p=d+P);break;case ra:$[1]?(x&&(a=aa(S,ua(N,$[0][0])),h=aa(S,ua(N,$[1][0])),x=1),w&&(c=aa(E,ua(k,$[0][1])),p=aa(E,ua(k,$[1][1])),w=1)):(x<0?(C=aa(S-i,ua(N-i,C)),a=i+C,h=l):x>0&&(C=aa(S-l,ua(N-l,C)),a=i,h=l+C),w<0?(P=aa(E-u,ua(k-u,P)),c=u+P,p=d):w>0&&(P=aa(E-d,ua(k-d,P)),c=u,p=d+P));break;case ia:x&&(a=aa(S,ua(N,i-C*x)),h=aa(S,ua(N,l+C*x))),w&&(c=aa(E,ua(k,u-P*w)),p=aa(E,ua(k,d+P*w)))}h<a&&(x*=-1,r=i,i=l,l=r,r=a,a=h,h=r,b in pa&&F.attr("cursor",da[b=pa[b]])),p<c&&(w*=-1,r=u,u=d,d=r,r=c,c=p,p=r,b in ga&&F.attr("cursor",da[b=ga[b]])),M.selection&&(A=M.selection),y&&(a=A[0][0],h=A[1][0]),v&&(c=A[0][1],p=A[1][1]),A[0][0]===a&&A[0][1]===c&&A[1][0]===h&&A[1][1]===p||(M.selection=[[a,c],[h,p]],f.call(_),D.brush(t,m.name))}function O(t){if(function(t){t.stopImmediatePropagation()}(t),t.touches){if(t.touches.length)return;n&&clearTimeout(n),n=setTimeout((function(){n=null}),500)}else ce(t.view,g),q.on("keydown.brush keyup.brush mousemove.brush mouseup.brush",null);R.attr("pointer-events","all"),F.attr("cursor",da.overlay),M.selection&&(A=M.selection),function(t){return t[0][0]===t[1][0]||t[0][1]===t[1][1]}(A)&&(M.selection=null,f.call(_)),D.end(t,m.name)}}function d(t){s(this,arguments).moved(t)}function p(t){s(this,arguments).ended(t)}function g(){var n=this.__brush||{selection:null};return n.extent=fa(e.apply(this,arguments)),n.dim=t,n}return c.move=function(n,e,r){n.tween?n.on("start.brush",(function(t){s(this,arguments).beforestart().start(t)})).on("interrupt.brush end.brush",(function(t){s(this,arguments).end(t)})).tween("brush",(function(){var n=this,r=n.__brush,i=s(n,arguments),o=r.selection,a=t.input("function"==typeof e?e.apply(this,arguments):e,r.extent),u=Vr(o,a);function c(t){r.selection=1===t&&null===a?null:u(t),f.call(n),i.brush()}return null!==o&&null!==a?c:c(1)})):n.each((function(){var n=this,i=arguments,o=n.__brush,a=t.input("function"==typeof e?e.apply(n,i):e,o.extent),u=s(n,i).beforestart();Vi(n),o.selection=null===a?null:a,f.call(n),u.start(r).brush(r).end(r)}))},c.clear=function(t,n){c.move(t,null,n)},l.prototype={beforestart:function(){return 1==++this.active&&(this.state.emitter=this,this.starting=!0),this},start:function(t,n){return this.starting?(this.starting=!1,this.emit("start",t,n)):this.emit("brush",t),this},brush:function(t,n){return this.emit("brush",t,n),this},end:function(t,n){return 0==--this.active&&(delete this.state.emitter,this.emit("end",t,n)),this},emit:function(n,e,r){var i=Kn(this.that).datum();a.call(n,this.that,new Jo(n,{sourceEvent:e,target:c,selection:t.output(this.state.selection),mode:r,dispatch:a}),i)}},c.extent=function(t){return arguments.length?(e="function"==typeof t?t:Qo(fa(t)),c):e},c.filter=function(t){return arguments.length?(r="function"==typeof t?t:Qo(!!t),c):r},c.touchable=function(t){return arguments.length?(i="function"==typeof t?t:Qo(!!t),c):i},c.handleSize=function(t){return arguments.length?(u=+t,c):u},c.keyModifiers=function(t){return arguments.length?(o=!!t,c):o},c.on=function(){var t=a.on.apply(a,arguments);return t===a?c:t},c}var Ta=Math.abs,Aa=Math.cos,Sa=Math.sin,Ea=Math.PI,Na=Ea/2,ka=2*Ea,Ca=Math.max,Pa=1e-12;function za(t,n){return Array.from({length:n-t},((n,e)=>t+e))}function $a(t,n){var e=0,r=null,i=null,o=null;function a(a){var u,c=a.length,f=new Array(c),s=za(0,c),l=new Array(c*c),h=new Array(c),d=0;a=Float64Array.from({length:c*c},n?(t,n)=>a[n%c][n/c|0]:(t,n)=>a[n/c|0][n%c]);for(let n=0;n<c;++n){let e=0;for(let r=0;r<c;++r)e+=a[n*c+r]+t*a[r*c+n];d+=f[n]=e}u=(d=Ca(0,ka-e*c)/d)?e:ka/c;{let n=0;r&&s.sort(((t,n)=>r(f[t],f[n])));for(const e of s){const r=n;if(t){const t=za(1+~c,c).filter((t=>t<0?a[~t*c+e]:a[e*c+t]));i&&t.sort(((t,n)=>i(t<0?-a[~t*c+e]:a[e*c+t],n<0?-a[~n*c+e]:a[e*c+n])));for(const r of t)if(r<0){(l[~r*c+e]||(l[~r*c+e]={source:null,target:null})).target={index:e,startAngle:n,endAngle:n+=a[~r*c+e]*d,value:a[~r*c+e]}}else{(l[e*c+r]||(l[e*c+r]={source:null,target:null})).source={index:e,startAngle:n,endAngle:n+=a[e*c+r]*d,value:a[e*c+r]}}h[e]={index:e,startAngle:r,endAngle:n,value:f[e]}}else{const t=za(0,c).filter((t=>a[e*c+t]||a[t*c+e]));i&&t.sort(((t,n)=>i(a[e*c+t],a[e*c+n])));for(const r of t){let t;if(e<r?(t=l[e*c+r]||(l[e*c+r]={source:null,target:null}),t.source={index:e,startAngle:n,endAngle:n+=a[e*c+r]*d,value:a[e*c+r]}):(t=l[r*c+e]||(l[r*c+e]={source:null,target:null}),t.target={index:e,startAngle:n,endAngle:n+=a[e*c+r]*d,value:a[e*c+r]},e===r&&(t.source=t.target)),t.source&&t.target&&t.source.value<t.target.value){const n=t.source;t.source=t.target,t.target=n}}h[e]={index:e,startAngle:r,endAngle:n,value:f[e]}}n+=u}}return(l=Object.values(l)).groups=h,o?l.sort(o):l}return a.padAngle=function(t){return arguments.length?(e=Ca(0,t),a):e},a.sortGroups=function(t){return arguments.length?(r=t,a):r},a.sortSubgroups=function(t){return arguments.length?(i=t,a):i},a.sortChords=function(t){return arguments.length?(null==t?o=null:(n=t,o=function(t,e){return n(t.source.value+t.target.value,e.source.value+e.target.value)})._=t,a):o&&o._;var n},a}const Da=Math.PI,Ra=2*Da,Fa=1e-6,qa=Ra-Fa;function Ua(t){this._+=t[0];for(let n=1,e=t.length;n<e;++n)this._+=arguments[n]+t[n]}let Ia=class{constructor(t){this._x0=this._y0=this._x1=this._y1=null,this._="",this._append=null==t?Ua:function(t){let n=Math.floor(t);if(!(n>=0))throw new Error(`invalid digits: ${t}`);if(n>15)return Ua;const e=10**n;return function(t){this._+=t[0];for(let n=1,r=t.length;n<r;++n)this._+=Math.round(arguments[n]*e)/e+t[n]}}(t)}moveTo(t,n){this._append`M${this._x0=this._x1=+t},${this._y0=this._y1=+n}`}closePath(){null!==this._x1&&(this._x1=this._x0,this._y1=this._y0,this._append`Z`)}lineTo(t,n){this._append`L${this._x1=+t},${this._y1=+n}`}quadraticCurveTo(t,n,e,r){this._append`Q${+t},${+n},${this._x1=+e},${this._y1=+r}`}bezierCurveTo(t,n,e,r,i,o){this._append`C${+t},${+n},${+e},${+r},${this._x1=+i},${this._y1=+o}`}arcTo(t,n,e,r,i){if(t=+t,n=+n,e=+e,r=+r,(i=+i)<0)throw new Error(`negative radius: ${i}`);let o=this._x1,a=this._y1,u=e-t,c=r-n,f=o-t,s=a-n,l=f*f+s*s;if(null===this._x1)this._append`M${this._x1=t},${this._y1=n}`;else if(l>Fa)if(Math.abs(s*u-c*f)>Fa&&i){let h=e-o,d=r-a,p=u*u+c*c,g=h*h+d*d,y=Math.sqrt(p),v=Math.sqrt(l),_=i*Math.tan((Da-Math.acos((p+l-g)/(2*y*v)))/2),b=_/v,m=_/y;Math.abs(b-1)>Fa&&this._append`L${t+b*f},${n+b*s}`,this._append`A${i},${i},0,0,${+(s*h>f*d)},${this._x1=t+m*u},${this._y1=n+m*c}`}else this._append`L${this._x1=t},${this._y1=n}`;else;}arc(t,n,e,r,i,o){if(t=+t,n=+n,o=!!o,(e=+e)<0)throw new Error(`negative radius: ${e}`);let a=e*Math.cos(r),u=e*Math.sin(r),c=t+a,f=n+u,s=1^o,l=o?r-i:i-r;null===this._x1?this._append`M${c},${f}`:(Math.abs(this._x1-c)>Fa||Math.abs(this._y1-f)>Fa)&&this._append`L${c},${f}`,e&&(l<0&&(l=l%Ra+Ra),l>qa?this._append`A${e},${e},0,1,${s},${t-a},${n-u}A${e},${e},0,1,${s},${this._x1=c},${this._y1=f}`:l>Fa&&this._append`A${e},${e},0,${+(l>=Da)},${s},${this._x1=t+e*Math.cos(i)},${this._y1=n+e*Math.sin(i)}`)}rect(t,n,e,r){this._append`M${this._x0=this._x1=+t},${this._y0=this._y1=+n}h${e=+e}v${+r}h${-e}Z`}toString(){return this._}};function Oa(){return new Ia}Oa.prototype=Ia.prototype;var Ba=Array.prototype.slice;function Ya(t){return function(){return t}}function La(t){return t.source}function ja(t){return t.target}function Ha(t){return t.radius}function Xa(t){return t.startAngle}function Ga(t){return t.endAngle}function Va(){return 0}function Wa(){return 10}function Za(t){var n=La,e=ja,r=Ha,i=Ha,o=Xa,a=Ga,u=Va,c=null;function f(){var f,s=n.apply(this,arguments),l=e.apply(this,arguments),h=u.apply(this,arguments)/2,d=Ba.call(arguments),p=+r.apply(this,(d[0]=s,d)),g=o.apply(this,d)-Na,y=a.apply(this,d)-Na,v=+i.apply(this,(d[0]=l,d)),_=o.apply(this,d)-Na,b=a.apply(this,d)-Na;if(c||(c=f=Oa()),h>Pa&&(Ta(y-g)>2*h+Pa?y>g?(g+=h,y-=h):(g-=h,y+=h):g=y=(g+y)/2,Ta(b-_)>2*h+Pa?b>_?(_+=h,b-=h):(_-=h,b+=h):_=b=(_+b)/2),c.moveTo(p*Aa(g),p*Sa(g)),c.arc(0,0,p,g,y),g!==_||y!==b)if(t){var m=v-+t.apply(this,arguments),x=(_+b)/2;c.quadraticCurveTo(0,0,m*Aa(_),m*Sa(_)),c.lineTo(v*Aa(x),v*Sa(x)),c.lineTo(m*Aa(b),m*Sa(b))}else c.quadraticCurveTo(0,0,v*Aa(_),v*Sa(_)),c.arc(0,0,v,_,b);if(c.quadraticCurveTo(0,0,p*Aa(g),p*Sa(g)),c.closePath(),f)return c=null,f+""||null}return t&&(f.headRadius=function(n){return arguments.length?(t="function"==typeof n?n:Ya(+n),f):t}),f.radius=function(t){return arguments.length?(r=i="function"==typeof t?t:Ya(+t),f):r},f.sourceRadius=function(t){return arguments.length?(r="function"==typeof t?t:Ya(+t),f):r},f.targetRadius=function(t){return arguments.length?(i="function"==typeof t?t:Ya(+t),f):i},f.startAngle=function(t){return arguments.length?(o="function"==typeof t?t:Ya(+t),f):o},f.endAngle=function(t){return arguments.length?(a="function"==typeof t?t:Ya(+t),f):a},f.padAngle=function(t){return arguments.length?(u="function"==typeof t?t:Ya(+t),f):u},f.source=function(t){return arguments.length?(n=t,f):n},f.target=function(t){return arguments.length?(e=t,f):e},f.context=function(t){return arguments.length?(c=null==t?null:t,f):c},f}var Ka=Array.prototype.slice;function Qa(t,n){return t-n}var Ja=t=>()=>t;function tu(t,n){for(var e,r=-1,i=n.length;++r<i;)if(e=nu(t,n[r]))return e;return 0}function nu(t,n){for(var e=n[0],r=n[1],i=-1,o=0,a=t.length,u=a-1;o<a;u=o++){var c=t[o],f=c[0],s=c[1],l=t[u],h=l[0],d=l[1];if(eu(c,l,n))return 0;s>r!=d>r&&e<(h-f)*(r-s)/(d-s)+f&&(i=-i)}return i}function eu(t,n,e){var r,i,o,a;return function(t,n,e){return(n[0]-t[0])*(e[1]-t[1])==(e[0]-t[0])*(n[1]-t[1])}(t,n,e)&&(i=t[r=+(t[0]===n[0])],o=e[r],a=n[r],i<=o&&o<=a||a<=o&&o<=i)}function ru(){}var iu=[[],[[[1,1.5],[.5,1]]],[[[1.5,1],[1,1.5]]],[[[1.5,1],[.5,1]]],[[[1,.5],[1.5,1]]],[[[1,1.5],[.5,1]],[[1,.5],[1.5,1]]],[[[1,.5],[1,1.5]]],[[[1,.5],[.5,1]]],[[[.5,1],[1,.5]]],[[[1,1.5],[1,.5]]],[[[.5,1],[1,.5]],[[1.5,1],[1,1.5]]],[[[1.5,1],[1,.5]]],[[[.5,1],[1.5,1]]],[[[1,1.5],[1.5,1]]],[[[.5,1],[1,1.5]]],[]];function ou(){var t=1,n=1,e=Q,r=u;function i(t){var n=e(t);if(Array.isArray(n))n=n.slice().sort(Qa);else{const e=T(t,au);for(n=V(...K(e[0],e[1],n),n);n[n.length-1]>=e[1];)n.pop();for(;n[1]<e[0];)n.shift()}return n.map((n=>o(t,n)))}function o(e,i){const o=null==i?NaN:+i;if(isNaN(o))throw new Error(`invalid value: ${i}`);var u=[],c=[];return function(e,r,i){var o,u,c,f,s,l,h=new Array,d=new Array;o=u=-1,f=uu(e[0],r),iu[f<<1].forEach(p);for(;++o<t-1;)c=f,f=uu(e[o+1],r),iu[c|f<<1].forEach(p);iu[f<<0].forEach(p);for(;++u<n-1;){for(o=-1,f=uu(e[u*t+t],r),s=uu(e[u*t],r),iu[f<<1|s<<2].forEach(p);++o<t-1;)c=f,f=uu(e[u*t+t+o+1],r),l=s,s=uu(e[u*t+o+1],r),iu[c|f<<1|s<<2|l<<3].forEach(p);iu[f|s<<3].forEach(p)}o=-1,s=e[u*t]>=r,iu[s<<2].forEach(p);for(;++o<t-1;)l=s,s=uu(e[u*t+o+1],r),iu[s<<2|l<<3].forEach(p);function p(t){var n,e,r=[t[0][0]+o,t[0][1]+u],c=[t[1][0]+o,t[1][1]+u],f=a(r),s=a(c);(n=d[f])?(e=h[s])?(delete d[n.end],delete h[e.start],n===e?(n.ring.push(c),i(n.ring)):h[n.start]=d[e.end]={start:n.start,end:e.end,ring:n.ring.concat(e.ring)}):(delete d[n.end],n.ring.push(c),d[n.end=s]=n):(n=h[s])?(e=d[f])?(delete h[n.start],delete d[e.end],n===e?(n.ring.push(c),i(n.ring)):h[e.start]=d[n.end]={start:e.start,end:n.end,ring:e.ring.concat(n.ring)}):(delete h[n.start],n.ring.unshift(r),h[n.start=f]=n):h[f]=d[s]={start:f,end:s,ring:[r,c]}}iu[s<<3].forEach(p)}(e,o,(function(t){r(t,e,o),function(t){for(var n=0,e=t.length,r=t[e-1][1]*t[0][0]-t[e-1][0]*t[0][1];++n<e;)r+=t[n-1][1]*t[n][0]-t[n-1][0]*t[n][1];return r}(t)>0?u.push([t]):c.push(t)})),c.forEach((function(t){for(var n,e=0,r=u.length;e<r;++e)if(-1!==tu((n=u[e])[0],t))return void n.push(t)})),{type:"MultiPolygon",value:i,coordinates:u}}function a(n){return 2*n[0]+n[1]*(t+1)*4}function u(e,r,i){e.forEach((function(e){var o=e[0],a=e[1],u=0|o,c=0|a,f=cu(r[c*t+u]);o>0&&o<t&&u===o&&(e[0]=fu(o,cu(r[c*t+u-1]),f,i)),a>0&&a<n&&c===a&&(e[1]=fu(a,cu(r[(c-1)*t+u]),f,i))}))}return i.contour=o,i.size=function(e){if(!arguments.length)return[t,n];var r=Math.floor(e[0]),o=Math.floor(e[1]);if(!(r>=0&&o>=0))throw new Error("invalid size");return t=r,n=o,i},i.thresholds=function(t){return arguments.length?(e="function"==typeof t?t:Array.isArray(t)?Ja(Ka.call(t)):Ja(t),i):e},i.smooth=function(t){return arguments.length?(r=t?u:ru,i):r===u},i}function au(t){return isFinite(t)?t:NaN}function uu(t,n){return null!=t&&+t>=n}function cu(t){return null==t||isNaN(t=+t)?-1/0:t}function fu(t,n,e,r){const i=r-n,o=e-n,a=isFinite(i)||isFinite(o)?i/o:Math.sign(i)/Math.sign(o);return isNaN(a)?t:t+a-.5}function su(t){return t[0]}function lu(t){return t[1]}function hu(){return 1}const du=134217729,pu=33306690738754706e-32;function gu(t,n,e,r,i){let o,a,u,c,f=n[0],s=r[0],l=0,h=0;s>f==s>-f?(o=f,f=n[++l]):(o=s,s=r[++h]);let d=0;if(l<t&&h<e)for(s>f==s>-f?(a=f+o,u=o-(a-f),f=n[++l]):(a=s+o,u=o-(a-s),s=r[++h]),o=a,0!==u&&(i[d++]=u);l<t&&h<e;)s>f==s>-f?(a=o+f,c=a-o,u=o-(a-c)+(f-c),f=n[++l]):(a=o+s,c=a-o,u=o-(a-c)+(s-c),s=r[++h]),o=a,0!==u&&(i[d++]=u);for(;l<t;)a=o+f,c=a-o,u=o-(a-c)+(f-c),f=n[++l],o=a,0!==u&&(i[d++]=u);for(;h<e;)a=o+s,c=a-o,u=o-(a-c)+(s-c),s=r[++h],o=a,0!==u&&(i[d++]=u);return 0===o&&0!==d||(i[d++]=o),d}function yu(t){return new Float64Array(t)}const vu=22204460492503146e-32,_u=11093356479670487e-47,bu=yu(4),mu=yu(8),xu=yu(12),wu=yu(16),Mu=yu(4);function Tu(t,n,e,r,i,o){const a=(n-o)*(e-i),u=(t-i)*(r-o),c=a-u;if(0===a||0===u||a>0!=u>0)return c;const f=Math.abs(a+u);return Math.abs(c)>=33306690738754716e-32*f?c:-function(t,n,e,r,i,o,a){let u,c,f,s,l,h,d,p,g,y,v,_,b,m,x,w,M,T;const A=t-i,S=e-i,E=n-o,N=r-o;m=A*N,h=du*A,d=h-(h-A),p=A-d,h=du*N,g=h-(h-N),y=N-g,x=p*y-(m-d*g-p*g-d*y),w=E*S,h=du*E,d=h-(h-E),p=E-d,h=du*S,g=h-(h-S),y=S-g,M=p*y-(w-d*g-p*g-d*y),v=x-M,l=x-v,bu[0]=x-(v+l)+(l-M),_=m+v,l=_-m,b=m-(_-l)+(v-l),v=b-w,l=b-v,bu[1]=b-(v+l)+(l-w),T=_+v,l=T-_,bu[2]=_-(T-l)+(v-l),bu[3]=T;let k=function(t,n){let e=n[0];for(let r=1;r<t;r++)e+=n[r];return e}(4,bu),C=vu*a;if(k>=C||-k>=C)return k;if(l=t-A,u=t-(A+l)+(l-i),l=e-S,f=e-(S+l)+(l-i),l=n-E,c=n-(E+l)+(l-o),l=r-N,s=r-(N+l)+(l-o),0===u&&0===c&&0===f&&0===s)return k;if(C=_u*a+pu*Math.abs(k),k+=A*s+N*u-(E*f+S*c),k>=C||-k>=C)return k;m=u*N,h=du*u,d=h-(h-u),p=u-d,h=du*N,g=h-(h-N),y=N-g,x=p*y-(m-d*g-p*g-d*y),w=c*S,h=du*c,d=h-(h-c),p=c-d,h=du*S,g=h-(h-S),y=S-g,M=p*y-(w-d*g-p*g-d*y),v=x-M,l=x-v,Mu[0]=x-(v+l)+(l-M),_=m+v,l=_-m,b=m-(_-l)+(v-l),v=b-w,l=b-v,Mu[1]=b-(v+l)+(l-w),T=_+v,l=T-_,Mu[2]=_-(T-l)+(v-l),Mu[3]=T;const P=gu(4,bu,4,Mu,mu);m=A*s,h=du*A,d=h-(h-A),p=A-d,h=du*s,g=h-(h-s),y=s-g,x=p*y-(m-d*g-p*g-d*y),w=E*f,h=du*E,d=h-(h-E),p=E-d,h=du*f,g=h-(h-f),y=f-g,M=p*y-(w-d*g-p*g-d*y),v=x-M,l=x-v,Mu[0]=x-(v+l)+(l-M),_=m+v,l=_-m,b=m-(_-l)+(v-l),v=b-w,l=b-v,Mu[1]=b-(v+l)+(l-w),T=_+v,l=T-_,Mu[2]=_-(T-l)+(v-l),Mu[3]=T;const z=gu(P,mu,4,Mu,xu);m=u*s,h=du*u,d=h-(h-u),p=u-d,h=du*s,g=h-(h-s),y=s-g,x=p*y-(m-d*g-p*g-d*y),w=c*f,h=du*c,d=h-(h-c),p=c-d,h=du*f,g=h-(h-f),y=f-g,M=p*y-(w-d*g-p*g-d*y),v=x-M,l=x-v,Mu[0]=x-(v+l)+(l-M),_=m+v,l=_-m,b=m-(_-l)+(v-l),v=b-w,l=b-v,Mu[1]=b-(v+l)+(l-w),T=_+v,l=T-_,Mu[2]=_-(T-l)+(v-l),Mu[3]=T;const $=gu(z,xu,4,Mu,wu);return wu[$-1]}(t,n,e,r,i,o,f)}const Au=Math.pow(2,-52),Su=new Uint32Array(512);class Eu{static from(t,n=$u,e=Du){const r=t.length,i=new Float64Array(2*r);for(let o=0;o<r;o++){const r=t[o];i[2*o]=n(r),i[2*o+1]=e(r)}return new Eu(i)}constructor(t){const n=t.length>>1;if(n>0&&"number"!=typeof t[0])throw new Error("Expected coords to contain numbers.");this.coords=t;const e=Math.max(2*n-5,0);this._triangles=new Uint32Array(3*e),this._halfedges=new Int32Array(3*e),this._hashSize=Math.ceil(Math.sqrt(n)),this._hullPrev=new Uint32Array(n),this._hullNext=new Uint32Array(n),this._hullTri=new Uint32Array(n),this._hullHash=new Int32Array(this._hashSize).fill(-1),this._ids=new Uint32Array(n),this._dists=new Float64Array(n),this.update()}update(){const{coords:t,_hullPrev:n,_hullNext:e,_hullTri:r,_hullHash:i}=this,o=t.length>>1;let a=1/0,u=1/0,c=-1/0,f=-1/0;for(let n=0;n<o;n++){const e=t[2*n],r=t[2*n+1];e<a&&(a=e),r<u&&(u=r),e>c&&(c=e),r>f&&(f=r),this._ids[n]=n}const s=(a+c)/2,l=(u+f)/2;let h,d,p,g=1/0;for(let n=0;n<o;n++){const e=Nu(s,l,t[2*n],t[2*n+1]);e<g&&(h=n,g=e)}const y=t[2*h],v=t[2*h+1];g=1/0;for(let n=0;n<o;n++){if(n===h)continue;const e=Nu(y,v,t[2*n],t[2*n+1]);e<g&&e>0&&(d=n,g=e)}let _=t[2*d],b=t[2*d+1],m=1/0;for(let n=0;n<o;n++){if(n===h||n===d)continue;const e=Cu(y,v,_,b,t[2*n],t[2*n+1]);e<m&&(p=n,m=e)}let x=t[2*p],w=t[2*p+1];if(m===1/0){for(let n=0;n<o;n++)this._dists[n]=t[2*n]-t[0]||t[2*n+1]-t[1];Pu(this._ids,this._dists,0,o-1);const n=new Uint32Array(o);let e=0;for(let t=0,r=-1/0;t<o;t++){const i=this._ids[t];this._dists[i]>r&&(n[e++]=i,r=this._dists[i])}return this.hull=n.subarray(0,e),this.triangles=new Uint32Array(0),void(this.halfedges=new Uint32Array(0))}if(Tu(y,v,_,b,x,w)<0){const t=d,n=_,e=b;d=p,_=x,b=w,p=t,x=n,w=e}const M=function(t,n,e,r,i,o){const a=e-t,u=r-n,c=i-t,f=o-n,s=a*a+u*u,l=c*c+f*f,h=.5/(a*f-u*c),d=t+(f*s-u*l)*h,p=n+(a*l-c*s)*h;return{x:d,y:p}}(y,v,_,b,x,w);this._cx=M.x,this._cy=M.y;for(let n=0;n<o;n++)this._dists[n]=Nu(t[2*n],t[2*n+1],M.x,M.y);Pu(this._ids,this._dists,0,o-1),this._hullStart=h;let T=3;e[h]=n[p]=d,e[d]=n[h]=p,e[p]=n[d]=h,r[h]=0,r[d]=1,r[p]=2,i.fill(-1),i[this._hashKey(y,v)]=h,i[this._hashKey(_,b)]=d,i[this._hashKey(x,w)]=p,this.trianglesLen=0,this._addTriangle(h,d,p,-1,-1,-1);for(let o,a,u=0;u<this._ids.length;u++){const c=this._ids[u],f=t[2*c],s=t[2*c+1];if(u>0&&Math.abs(f-o)<=Au&&Math.abs(s-a)<=Au)continue;if(o=f,a=s,c===h||c===d||c===p)continue;let l=0;for(let t=0,n=this._hashKey(f,s);t<this._hashSize&&(l=i[(n+t)%this._hashSize],-1===l||l===e[l]);t++);l=n[l];let g,y=l;for(;g=e[y],Tu(f,s,t[2*y],t[2*y+1],t[2*g],t[2*g+1])>=0;)if(y=g,y===l){y=-1;break}if(-1===y)continue;let v=this._addTriangle(y,c,e[y],-1,-1,r[y]);r[c]=this._legalize(v+2),r[y]=v,T++;let _=e[y];for(;g=e[_],Tu(f,s,t[2*_],t[2*_+1],t[2*g],t[2*g+1])<0;)v=this._addTriangle(_,c,g,r[c],-1,r[_]),r[c]=this._legalize(v+2),e[_]=_,T--,_=g;if(y===l)for(;g=n[y],Tu(f,s,t[2*g],t[2*g+1],t[2*y],t[2*y+1])<0;)v=this._addTriangle(g,c,y,-1,r[y],r[g]),this._legalize(v+2),r[g]=v,e[y]=y,T--,y=g;this._hullStart=n[c]=y,e[y]=n[_]=c,e[c]=_,i[this._hashKey(f,s)]=c,i[this._hashKey(t[2*y],t[2*y+1])]=y}this.hull=new Uint32Array(T);for(let t=0,n=this._hullStart;t<T;t++)this.hull[t]=n,n=e[n];this.triangles=this._triangles.subarray(0,this.trianglesLen),this.halfedges=this._halfedges.subarray(0,this.trianglesLen)}_hashKey(t,n){return Math.floor(function(t,n){const e=t/(Math.abs(t)+Math.abs(n));return(n>0?3-e:1+e)/4}(t-this._cx,n-this._cy)*this._hashSize)%this._hashSize}_legalize(t){const{_triangles:n,_halfedges:e,coords:r}=this;let i=0,o=0;for(;;){const a=e[t],u=t-t%3;if(o=u+(t+2)%3,-1===a){if(0===i)break;t=Su[--i];continue}const c=a-a%3,f=u+(t+1)%3,s=c+(a+2)%3,l=n[o],h=n[t],d=n[f],p=n[s];if(ku(r[2*l],r[2*l+1],r[2*h],r[2*h+1],r[2*d],r[2*d+1],r[2*p],r[2*p+1])){n[t]=p,n[a]=l;const r=e[s];if(-1===r){let n=this._hullStart;do{if(this._hullTri[n]===s){this._hullTri[n]=t;break}n=this._hullPrev[n]}while(n!==this._hullStart)}this._link(t,r),this._link(a,e[o]),this._link(o,s);const u=c+(a+1)%3;i<Su.length&&(Su[i++]=u)}else{if(0===i)break;t=Su[--i]}}return o}_link(t,n){this._halfedges[t]=n,-1!==n&&(this._halfedges[n]=t)}_addTriangle(t,n,e,r,i,o){const a=this.trianglesLen;return this._triangles[a]=t,this._triangles[a+1]=n,this._triangles[a+2]=e,this._link(a,r),this._link(a+1,i),this._link(a+2,o),this.trianglesLen+=3,a}}function Nu(t,n,e,r){const i=t-e,o=n-r;return i*i+o*o}function ku(t,n,e,r,i,o,a,u){const c=t-a,f=n-u,s=e-a,l=r-u,h=i-a,d=o-u,p=s*s+l*l,g=h*h+d*d;return c*(l*g-p*d)-f*(s*g-p*h)+(c*c+f*f)*(s*d-l*h)<0}function Cu(t,n,e,r,i,o){const a=e-t,u=r-n,c=i-t,f=o-n,s=a*a+u*u,l=c*c+f*f,h=.5/(a*f-u*c),d=(f*s-u*l)*h,p=(a*l-c*s)*h;return d*d+p*p}function Pu(t,n,e,r){if(r-e<=20)for(let i=e+1;i<=r;i++){const r=t[i],o=n[r];let a=i-1;for(;a>=e&&n[t[a]]>o;)t[a+1]=t[a--];t[a+1]=r}else{let i=e+1,o=r;zu(t,e+r>>1,i),n[t[e]]>n[t[r]]&&zu(t,e,r),n[t[i]]>n[t[r]]&&zu(t,i,r),n[t[e]]>n[t[i]]&&zu(t,e,i);const a=t[i],u=n[a];for(;;){do{i++}while(n[t[i]]<u);do{o--}while(n[t[o]]>u);if(o<i)break;zu(t,i,o)}t[e+1]=t[o],t[o]=a,r-i+1>=o-e?(Pu(t,n,i,r),Pu(t,n,e,o-1)):(Pu(t,n,e,o-1),Pu(t,n,i,r))}}function zu(t,n,e){const r=t[n];t[n]=t[e],t[e]=r}function $u(t){return t[0]}function Du(t){return t[1]}const Ru=1e-6;class Fu{constructor(){this._x0=this._y0=this._x1=this._y1=null,this._=""}moveTo(t,n){this._+=`M${this._x0=this._x1=+t},${this._y0=this._y1=+n}`}closePath(){null!==this._x1&&(this._x1=this._x0,this._y1=this._y0,this._+="Z")}lineTo(t,n){this._+=`L${this._x1=+t},${this._y1=+n}`}arc(t,n,e){const r=(t=+t)+(e=+e),i=n=+n;if(e<0)throw new Error("negative radius");null===this._x1?this._+=`M${r},${i}`:(Math.abs(this._x1-r)>Ru||Math.abs(this._y1-i)>Ru)&&(this._+="L"+r+","+i),e&&(this._+=`A${e},${e},0,1,1,${t-e},${n}A${e},${e},0,1,1,${this._x1=r},${this._y1=i}`)}rect(t,n,e,r){this._+=`M${this._x0=this._x1=+t},${this._y0=this._y1=+n}h${+e}v${+r}h${-e}Z`}value(){return this._||null}}class qu{constructor(){this._=[]}moveTo(t,n){this._.push([t,n])}closePath(){this._.push(this._[0].slice())}lineTo(t,n){this._.push([t,n])}value(){return this._.length?this._:null}}class Uu{constructor(t,[n,e,r,i]=[0,0,960,500]){if(!((r=+r)>=(n=+n)&&(i=+i)>=(e=+e)))throw new Error("invalid bounds");this.delaunay=t,this._circumcenters=new Float64Array(2*t.points.length),this.vectors=new Float64Array(2*t.points.length),this.xmax=r,this.xmin=n,this.ymax=i,this.ymin=e,this._init()}update(){return this.delaunay.update(),this._init(),this}_init(){const{delaunay:{points:t,hull:n,triangles:e},vectors:r}=this;let i,o;const a=this.circumcenters=this._circumcenters.subarray(0,e.length/3*2);for(let r,u,c=0,f=0,s=e.length;c<s;c+=3,f+=2){const s=2*e[c],l=2*e[c+1],h=2*e[c+2],d=t[s],p=t[s+1],g=t[l],y=t[l+1],v=t[h],_=t[h+1],b=g-d,m=y-p,x=v-d,w=_-p,M=2*(b*w-m*x);if(Math.abs(M)<1e-9){if(void 0===i){i=o=0;for(const e of n)i+=t[2*e],o+=t[2*e+1];i/=n.length,o/=n.length}const e=1e9*Math.sign((i-d)*w-(o-p)*x);r=(d+v)/2-e*w,u=(p+_)/2+e*x}else{const t=1/M,n=b*b+m*m,e=x*x+w*w;r=d+(w*n-m*e)*t,u=p+(b*e-x*n)*t}a[f]=r,a[f+1]=u}let u,c,f,s=n[n.length-1],l=4*s,h=t[2*s],d=t[2*s+1];r.fill(0);for(let e=0;e<n.length;++e)s=n[e],u=l,c=h,f=d,l=4*s,h=t[2*s],d=t[2*s+1],r[u+2]=r[l]=f-d,r[u+3]=r[l+1]=h-c}render(t){const n=null==t?t=new Fu:void 0,{delaunay:{halfedges:e,inedges:r,hull:i},circumcenters:o,vectors:a}=this;if(i.length<=1)return null;for(let n=0,r=e.length;n<r;++n){const r=e[n];if(r<n)continue;const i=2*Math.floor(n/3),a=2*Math.floor(r/3),u=o[i],c=o[i+1],f=o[a],s=o[a+1];this._renderSegment(u,c,f,s,t)}let u,c=i[i.length-1];for(let n=0;n<i.length;++n){u=c,c=i[n];const e=2*Math.floor(r[c]/3),f=o[e],s=o[e+1],l=4*u,h=this._project(f,s,a[l+2],a[l+3]);h&&this._renderSegment(f,s,h[0],h[1],t)}return n&&n.value()}renderBounds(t){const n=null==t?t=new Fu:void 0;return t.rect(this.xmin,this.ymin,this.xmax-this.xmin,this.ymax-this.ymin),n&&n.value()}renderCell(t,n){const e=null==n?n=new Fu:void 0,r=this._clip(t);if(null===r||!r.length)return;n.moveTo(r[0],r[1]);let i=r.length;for(;r[0]===r[i-2]&&r[1]===r[i-1]&&i>1;)i-=2;for(let t=2;t<i;t+=2)r[t]===r[t-2]&&r[t+1]===r[t-1]||n.lineTo(r[t],r[t+1]);return n.closePath(),e&&e.value()}*cellPolygons(){const{delaunay:{points:t}}=this;for(let n=0,e=t.length/2;n<e;++n){const t=this.cellPolygon(n);t&&(t.index=n,yield t)}}cellPolygon(t){const n=new qu;return this.renderCell(t,n),n.value()}_renderSegment(t,n,e,r,i){let o;const a=this._regioncode(t,n),u=this._regioncode(e,r);0===a&&0===u?(i.moveTo(t,n),i.lineTo(e,r)):(o=this._clipSegment(t,n,e,r,a,u))&&(i.moveTo(o[0],o[1]),i.lineTo(o[2],o[3]))}contains(t,n,e){return(n=+n)==n&&(e=+e)==e&&this.delaunay._step(t,n,e)===t}*neighbors(t){const n=this._clip(t);if(n)for(const e of this.delaunay.neighbors(t)){const t=this._clip(e);if(t)t:for(let r=0,i=n.length;r<i;r+=2)for(let o=0,a=t.length;o<a;o+=2)if(n[r]===t[o]&&n[r+1]===t[o+1]&&n[(r+2)%i]===t[(o+a-2)%a]&&n[(r+3)%i]===t[(o+a-1)%a]){yield e;break t}}}_cell(t){const{circumcenters:n,delaunay:{inedges:e,halfedges:r,triangles:i}}=this,o=e[t];if(-1===o)return null;const a=[];let u=o;do{const e=Math.floor(u/3);if(a.push(n[2*e],n[2*e+1]),u=u%3==2?u-2:u+1,i[u]!==t)break;u=r[u]}while(u!==o&&-1!==u);return a}_clip(t){if(0===t&&1===this.delaunay.hull.length)return[this.xmax,this.ymin,this.xmax,this.ymax,this.xmin,this.ymax,this.xmin,this.ymin];const n=this._cell(t);if(null===n)return null;const{vectors:e}=this,r=4*t;return this._simplify(e[r]||e[r+1]?this._clipInfinite(t,n,e[r],e[r+1],e[r+2],e[r+3]):this._clipFinite(t,n))}_clipFinite(t,n){const e=n.length;let r,i,o,a,u=null,c=n[e-2],f=n[e-1],s=this._regioncode(c,f),l=0;for(let h=0;h<e;h+=2)if(r=c,i=f,c=n[h],f=n[h+1],o=s,s=this._regioncode(c,f),0===o&&0===s)a=l,l=0,u?u.push(c,f):u=[c,f];else{let n,e,h,d,p;if(0===o){if(null===(n=this._clipSegment(r,i,c,f,o,s)))continue;[e,h,d,p]=n}else{if(null===(n=this._clipSegment(c,f,r,i,s,o)))continue;[d,p,e,h]=n,a=l,l=this._edgecode(e,h),a&&l&&this._edge(t,a,l,u,u.length),u?u.push(e,h):u=[e,h]}a=l,l=this._edgecode(d,p),a&&l&&this._edge(t,a,l,u,u.length),u?u.push(d,p):u=[d,p]}if(u)a=l,l=this._edgecode(u[0],u[1]),a&&l&&this._edge(t,a,l,u,u.length);else if(this.contains(t,(this.xmin+this.xmax)/2,(this.ymin+this.ymax)/2))return[this.xmax,this.ymin,this.xmax,this.ymax,this.xmin,this.ymax,this.xmin,this.ymin];return u}_clipSegment(t,n,e,r,i,o){const a=i<o;for(a&&([t,n,e,r,i,o]=[e,r,t,n,o,i]);;){if(0===i&&0===o)return a?[e,r,t,n]:[t,n,e,r];if(i&o)return null;let u,c,f=i||o;8&f?(u=t+(e-t)*(this.ymax-n)/(r-n),c=this.ymax):4&f?(u=t+(e-t)*(this.ymin-n)/(r-n),c=this.ymin):2&f?(c=n+(r-n)*(this.xmax-t)/(e-t),u=this.xmax):(c=n+(r-n)*(this.xmin-t)/(e-t),u=this.xmin),i?(t=u,n=c,i=this._regioncode(t,n)):(e=u,r=c,o=this._regioncode(e,r))}}_clipInfinite(t,n,e,r,i,o){let a,u=Array.from(n);if((a=this._project(u[0],u[1],e,r))&&u.unshift(a[0],a[1]),(a=this._project(u[u.length-2],u[u.length-1],i,o))&&u.push(a[0],a[1]),u=this._clipFinite(t,u))for(let n,e=0,r=u.length,i=this._edgecode(u[r-2],u[r-1]);e<r;e+=2)n=i,i=this._edgecode(u[e],u[e+1]),n&&i&&(e=this._edge(t,n,i,u,e),r=u.length);else this.contains(t,(this.xmin+this.xmax)/2,(this.ymin+this.ymax)/2)&&(u=[this.xmin,this.ymin,this.xmax,this.ymin,this.xmax,this.ymax,this.xmin,this.ymax]);return u}_edge(t,n,e,r,i){for(;n!==e;){let e,o;switch(n){case 5:n=4;continue;case 4:n=6,e=this.xmax,o=this.ymin;break;case 6:n=2;continue;case 2:n=10,e=this.xmax,o=this.ymax;break;case 10:n=8;continue;case 8:n=9,e=this.xmin,o=this.ymax;break;case 9:n=1;continue;case 1:n=5,e=this.xmin,o=this.ymin}r[i]===e&&r[i+1]===o||!this.contains(t,e,o)||(r.splice(i,0,e,o),i+=2)}return i}_project(t,n,e,r){let i,o,a,u=1/0;if(r<0){if(n<=this.ymin)return null;(i=(this.ymin-n)/r)<u&&(a=this.ymin,o=t+(u=i)*e)}else if(r>0){if(n>=this.ymax)return null;(i=(this.ymax-n)/r)<u&&(a=this.ymax,o=t+(u=i)*e)}if(e>0){if(t>=this.xmax)return null;(i=(this.xmax-t)/e)<u&&(o=this.xmax,a=n+(u=i)*r)}else if(e<0){if(t<=this.xmin)return null;(i=(this.xmin-t)/e)<u&&(o=this.xmin,a=n+(u=i)*r)}return[o,a]}_edgecode(t,n){return(t===this.xmin?1:t===this.xmax?2:0)|(n===this.ymin?4:n===this.ymax?8:0)}_regioncode(t,n){return(t<this.xmin?1:t>this.xmax?2:0)|(n<this.ymin?4:n>this.ymax?8:0)}_simplify(t){if(t&&t.length>4){for(let n=0;n<t.length;n+=2){const e=(n+2)%t.length,r=(n+4)%t.length;(t[n]===t[e]&&t[e]===t[r]||t[n+1]===t[e+1]&&t[e+1]===t[r+1])&&(t.splice(e,2),n-=2)}t.length||(t=null)}return t}}const Iu=2*Math.PI,Ou=Math.pow;function Bu(t){return t[0]}function Yu(t){return t[1]}function Lu(t,n,e){return[t+Math.sin(t+n)*e,n+Math.cos(t-n)*e]}class ju{static from(t,n=Bu,e=Yu,r){return new ju("length"in t?function(t,n,e,r){const i=t.length,o=new Float64Array(2*i);for(let a=0;a<i;++a){const i=t[a];o[2*a]=n.call(r,i,a,t),o[2*a+1]=e.call(r,i,a,t)}return o}(t,n,e,r):Float64Array.from(function*(t,n,e,r){let i=0;for(const o of t)yield n.call(r,o,i,t),yield e.call(r,o,i,t),++i}(t,n,e,r)))}constructor(t){this._delaunator=new Eu(t),this.inedges=new Int32Array(t.length/2),this._hullIndex=new Int32Array(t.length/2),this.points=this._delaunator.coords,this._init()}update(){return this._delaunator.update(),this._init(),this}_init(){const t=this._delaunator,n=this.points;if(t.hull&&t.hull.length>2&&function(t){const{triangles:n,coords:e}=t;for(let t=0;t<n.length;t+=3){const r=2*n[t],i=2*n[t+1],o=2*n[t+2];if((e[o]-e[r])*(e[i+1]-e[r+1])-(e[i]-e[r])*(e[o+1]-e[r+1])>1e-10)return!1}return!0}(t)){this.collinear=Int32Array.from({length:n.length/2},((t,n)=>n)).sort(((t,e)=>n[2*t]-n[2*e]||n[2*t+1]-n[2*e+1]));const t=this.collinear[0],e=this.collinear[this.collinear.length-1],r=[n[2*t],n[2*t+1],n[2*e],n[2*e+1]],i=1e-8*Math.hypot(r[3]-r[1],r[2]-r[0]);for(let t=0,e=n.length/2;t<e;++t){const e=Lu(n[2*t],n[2*t+1],i);n[2*t]=e[0],n[2*t+1]=e[1]}this._delaunator=new Eu(n)}else delete this.collinear;const e=this.halfedges=this._delaunator.halfedges,r=this.hull=this._delaunator.hull,i=this.triangles=this._delaunator.triangles,o=this.inedges.fill(-1),a=this._hullIndex.fill(-1);for(let t=0,n=e.length;t<n;++t){const n=i[t%3==2?t-2:t+1];-1!==e[t]&&-1!==o[n]||(o[n]=t)}for(let t=0,n=r.length;t<n;++t)a[r[t]]=t;r.length<=2&&r.length>0&&(this.triangles=new Int32Array(3).fill(-1),this.halfedges=new Int32Array(3).fill(-1),this.triangles[0]=r[0],o[r[0]]=1,2===r.length&&(o[r[1]]=0,this.triangles[1]=r[1],this.triangles[2]=r[1]))}voronoi(t){return new Uu(this,t)}*neighbors(t){const{inedges:n,hull:e,_hullIndex:r,halfedges:i,triangles:o,collinear:a}=this;if(a){const n=a.indexOf(t);return n>0&&(yield a[n-1]),void(n<a.length-1&&(yield a[n+1]))}const u=n[t];if(-1===u)return;let c=u,f=-1;do{if(yield f=o[c],c=c%3==2?c-2:c+1,o[c]!==t)return;if(c=i[c],-1===c){const n=e[(r[t]+1)%e.length];return void(n!==f&&(yield n))}}while(c!==u)}find(t,n,e=0){if((t=+t)!=t||(n=+n)!=n)return-1;const r=e;let i;for(;(i=this._step(e,t,n))>=0&&i!==e&&i!==r;)e=i;return i}_step(t,n,e){const{inedges:r,hull:i,_hullIndex:o,halfedges:a,triangles:u,points:c}=this;if(-1===r[t]||!c.length)return(t+1)%(c.length>>1);let f=t,s=Ou(n-c[2*t],2)+Ou(e-c[2*t+1],2);const l=r[t];let h=l;do{let r=u[h];const l=Ou(n-c[2*r],2)+Ou(e-c[2*r+1],2);if(l<s&&(s=l,f=r),h=h%3==2?h-2:h+1,u[h]!==t)break;if(h=a[h],-1===h){if(h=i[(o[t]+1)%i.length],h!==r&&Ou(n-c[2*h],2)+Ou(e-c[2*h+1],2)<s)return h;break}}while(h!==l);return f}render(t){const n=null==t?t=new Fu:void 0,{points:e,halfedges:r,triangles:i}=this;for(let n=0,o=r.length;n<o;++n){const o=r[n];if(o<n)continue;const a=2*i[n],u=2*i[o];t.moveTo(e[a],e[a+1]),t.lineTo(e[u],e[u+1])}return this.renderHull(t),n&&n.value()}renderPoints(t,n){void 0!==n||t&&"function"==typeof t.moveTo||(n=t,t=null),n=null==n?2:+n;const e=null==t?t=new Fu:void 0,{points:r}=this;for(let e=0,i=r.length;e<i;e+=2){const i=r[e],o=r[e+1];t.moveTo(i+n,o),t.arc(i,o,n,0,Iu)}return e&&e.value()}renderHull(t){const n=null==t?t=new Fu:void 0,{hull:e,points:r}=this,i=2*e[0],o=e.length;t.moveTo(r[i],r[i+1]);for(let n=1;n<o;++n){const i=2*e[n];t.lineTo(r[i],r[i+1])}return t.closePath(),n&&n.value()}hullPolygon(){const t=new qu;return this.renderHull(t),t.value()}renderTriangle(t,n){const e=null==n?n=new Fu:void 0,{points:r,triangles:i}=this,o=2*i[t*=3],a=2*i[t+1],u=2*i[t+2];return n.moveTo(r[o],r[o+1]),n.lineTo(r[a],r[a+1]),n.lineTo(r[u],r[u+1]),n.closePath(),e&&e.value()}*trianglePolygons(){const{triangles:t}=this;for(let n=0,e=t.length/3;n<e;++n)yield this.trianglePolygon(n)}trianglePolygon(t){const n=new qu;return this.renderTriangle(t,n),n.value()}}var Hu={},Xu={},Gu=34,Vu=10,Wu=13;function Zu(t){return new Function("d","return {"+t.map((function(t,n){return JSON.stringify(t)+": d["+n+'] || ""'})).join(",")+"}")}function Ku(t){var n=Object.create(null),e=[];return t.forEach((function(t){for(var r in t)r in n||e.push(n[r]=r)})),e}function Qu(t,n){var e=t+"",r=e.length;return r<n?new Array(n-r+1).join(0)+e:e}function Ju(t){var n,e=t.getUTCHours(),r=t.getUTCMinutes(),i=t.getUTCSeconds(),o=t.getUTCMilliseconds();return isNaN(t)?"Invalid Date":((n=t.getUTCFullYear())<0?"-"+Qu(-n,6):n>9999?"+"+Qu(n,6):Qu(n,4))+"-"+Qu(t.getUTCMonth()+1,2)+"-"+Qu(t.getUTCDate(),2)+(o?"T"+Qu(e,2)+":"+Qu(r,2)+":"+Qu(i,2)+"."+Qu(o,3)+"Z":i?"T"+Qu(e,2)+":"+Qu(r,2)+":"+Qu(i,2)+"Z":r||e?"T"+Qu(e,2)+":"+Qu(r,2)+"Z":"")}function tc(t){var n=new RegExp('["'+t+"\n\r]"),e=t.charCodeAt(0);function r(t,n){var r,i=[],o=t.length,a=0,u=0,c=o<=0,f=!1;function s(){if(c)return Xu;if(f)return f=!1,Hu;var n,r,i=a;if(t.charCodeAt(i)===Gu){for(;a++<o&&t.charCodeAt(a)!==Gu||t.charCodeAt(++a)===Gu;);return(n=a)>=o?c=!0:(r=t.charCodeAt(a++))===Vu?f=!0:r===Wu&&(f=!0,t.charCodeAt(a)===Vu&&++a),t.slice(i+1,n-1).replace(/""/g,'"')}for(;a<o;){if((r=t.charCodeAt(n=a++))===Vu)f=!0;else if(r===Wu)f=!0,t.charCodeAt(a)===Vu&&++a;else if(r!==e)continue;return t.slice(i,n)}return c=!0,t.slice(i,o)}for(t.charCodeAt(o-1)===Vu&&--o,t.charCodeAt(o-1)===Wu&&--o;(r=s())!==Xu;){for(var l=[];r!==Hu&&r!==Xu;)l.push(r),r=s();n&&null==(l=n(l,u++))||i.push(l)}return i}function i(n,e){return n.map((function(n){return e.map((function(t){return a(n[t])})).join(t)}))}function o(n){return n.map(a).join(t)}function a(t){return null==t?"":t instanceof Date?Ju(t):n.test(t+="")?'"'+t.replace(/"/g,'""')+'"':t}return{parse:function(t,n){var e,i,o=r(t,(function(t,r){if(e)return e(t,r-1);i=t,e=n?function(t,n){var e=Zu(t);return function(r,i){return n(e(r),i,t)}}(t,n):Zu(t)}));return o.columns=i||[],o},parseRows:r,format:function(n,e){return null==e&&(e=Ku(n)),[e.map(a).join(t)].concat(i(n,e)).join("\n")},formatBody:function(t,n){return null==n&&(n=Ku(t)),i(t,n).join("\n")},formatRows:function(t){return t.map(o).join("\n")},formatRow:o,formatValue:a}}var nc=tc(","),ec=nc.parse,rc=nc.parseRows,ic=nc.format,oc=nc.formatBody,ac=nc.formatRows,uc=nc.formatRow,cc=nc.formatValue,fc=tc("\t"),sc=fc.parse,lc=fc.parseRows,hc=fc.format,dc=fc.formatBody,pc=fc.formatRows,gc=fc.formatRow,yc=fc.formatValue;const vc=new Date("2019-01-01T00:00").getHours()||new Date("2019-07-01T00:00").getHours();function _c(t){if(!t.ok)throw new Error(t.status+" "+t.statusText);return t.blob()}function bc(t){if(!t.ok)throw new Error(t.status+" "+t.statusText);return t.arrayBuffer()}function mc(t){if(!t.ok)throw new Error(t.status+" "+t.statusText);return t.text()}function xc(t,n){return fetch(t,n).then(mc)}function wc(t){return function(n,e,r){return 2===arguments.length&&"function"==typeof e&&(r=e,e=void 0),xc(n,e).then((function(n){return t(n,r)}))}}var Mc=wc(ec),Tc=wc(sc);function Ac(t){if(!t.ok)throw new Error(t.status+" "+t.statusText);if(204!==t.status&&205!==t.status)return t.json()}function Sc(t){return(n,e)=>xc(n,e).then((n=>(new DOMParser).parseFromString(n,t)))}var Ec=Sc("application/xml"),Nc=Sc("text/html"),kc=Sc("image/svg+xml");function Cc(t,n,e,r){if(isNaN(n)||isNaN(e))return t;var i,o,a,u,c,f,s,l,h,d=t._root,p={data:r},g=t._x0,y=t._y0,v=t._x1,_=t._y1;if(!d)return t._root=p,t;for(;d.length;)if((f=n>=(o=(g+v)/2))?g=o:v=o,(s=e>=(a=(y+_)/2))?y=a:_=a,i=d,!(d=d[l=s<<1|f]))return i[l]=p,t;if(u=+t._x.call(null,d.data),c=+t._y.call(null,d.data),n===u&&e===c)return p.next=d,i?i[l]=p:t._root=p,t;do{i=i?i[l]=new Array(4):t._root=new Array(4),(f=n>=(o=(g+v)/2))?g=o:v=o,(s=e>=(a=(y+_)/2))?y=a:_=a}while((l=s<<1|f)==(h=(c>=a)<<1|u>=o));return i[h]=d,i[l]=p,t}function Pc(t,n,e,r,i){this.node=t,this.x0=n,this.y0=e,this.x1=r,this.y1=i}function zc(t){return t[0]}function $c(t){return t[1]}function Dc(t,n,e){var r=new Rc(null==n?zc:n,null==e?$c:e,NaN,NaN,NaN,NaN);return null==t?r:r.addAll(t)}function Rc(t,n,e,r,i,o){this._x=t,this._y=n,this._x0=e,this._y0=r,this._x1=i,this._y1=o,this._root=void 0}function Fc(t){for(var n={data:t.data},e=n;t=t.next;)e=e.next={data:t.data};return n}var qc=Dc.prototype=Rc.prototype;function Uc(t){return function(){return t}}function Ic(t){return 1e-6*(t()-.5)}function Oc(t){return t.x+t.vx}function Bc(t){return t.y+t.vy}function Yc(t){return t.index}function Lc(t,n){var e=t.get(n);if(!e)throw new Error("node not found: "+n);return e}qc.copy=function(){var t,n,e=new Rc(this._x,this._y,this._x0,this._y0,this._x1,this._y1),r=this._root;if(!r)return e;if(!r.length)return e._root=Fc(r),e;for(t=[{source:r,target:e._root=new Array(4)}];r=t.pop();)for(var i=0;i<4;++i)(n=r.source[i])&&(n.length?t.push({source:n,target:r.target[i]=new Array(4)}):r.target[i]=Fc(n));return e},qc.add=function(t){const n=+this._x.call(null,t),e=+this._y.call(null,t);return Cc(this.cover(n,e),n,e,t)},qc.addAll=function(t){var n,e,r,i,o=t.length,a=new Array(o),u=new Array(o),c=1/0,f=1/0,s=-1/0,l=-1/0;for(e=0;e<o;++e)isNaN(r=+this._x.call(null,n=t[e]))||isNaN(i=+this._y.call(null,n))||(a[e]=r,u[e]=i,r<c&&(c=r),r>s&&(s=r),i<f&&(f=i),i>l&&(l=i));if(c>s||f>l)return this;for(this.cover(c,f).cover(s,l),e=0;e<o;++e)Cc(this,a[e],u[e],t[e]);return this},qc.cover=function(t,n){if(isNaN(t=+t)||isNaN(n=+n))return this;var e=this._x0,r=this._y0,i=this._x1,o=this._y1;if(isNaN(e))i=(e=Math.floor(t))+1,o=(r=Math.floor(n))+1;else{for(var a,u,c=i-e||1,f=this._root;e>t||t>=i||r>n||n>=o;)switch(u=(n<r)<<1|t<e,(a=new Array(4))[u]=f,f=a,c*=2,u){case 0:i=e+c,o=r+c;break;case 1:e=i-c,o=r+c;break;case 2:i=e+c,r=o-c;break;case 3:e=i-c,r=o-c}this._root&&this._root.length&&(this._root=f)}return this._x0=e,this._y0=r,this._x1=i,this._y1=o,this},qc.data=function(){var t=[];return this.visit((function(n){if(!n.length)do{t.push(n.data)}while(n=n.next)})),t},qc.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]]},qc.find=function(t,n,e){var r,i,o,a,u,c,f,s=this._x0,l=this._y0,h=this._x1,d=this._y1,p=[],g=this._root;for(g&&p.push(new Pc(g,s,l,h,d)),null==e?e=1/0:(s=t-e,l=n-e,h=t+e,d=n+e,e*=e);c=p.pop();)if(!(!(g=c.node)||(i=c.x0)>h||(o=c.y0)>d||(a=c.x1)<s||(u=c.y1)<l))if(g.length){var y=(i+a)/2,v=(o+u)/2;p.push(new Pc(g[3],y,v,a,u),new Pc(g[2],i,v,y,u),new Pc(g[1],y,o,a,v),new Pc(g[0],i,o,y,v)),(f=(n>=v)<<1|t>=y)&&(c=p[p.length-1],p[p.length-1]=p[p.length-1-f],p[p.length-1-f]=c)}else{var _=t-+this._x.call(null,g.data),b=n-+this._y.call(null,g.data),m=_*_+b*b;if(m<e){var x=Math.sqrt(e=m);s=t-x,l=n-x,h=t+x,d=n+x,r=g.data}}return r},qc.remove=function(t){if(isNaN(o=+this._x.call(null,t))||isNaN(a=+this._y.call(null,t)))return this;var n,e,r,i,o,a,u,c,f,s,l,h,d=this._root,p=this._x0,g=this._y0,y=this._x1,v=this._y1;if(!d)return this;if(d.length)for(;;){if((f=o>=(u=(p+y)/2))?p=u:y=u,(s=a>=(c=(g+v)/2))?g=c:v=c,n=d,!(d=d[l=s<<1|f]))return this;if(!d.length)break;(n[l+1&3]||n[l+2&3]||n[l+3&3])&&(e=n,h=l)}for(;d.data!==t;)if(r=d,!(d=d.next))return this;return(i=d.next)&&delete d.next,r?(i?r.next=i:delete r.next,this):n?(i?n[l]=i:delete n[l],(d=n[0]||n[1]||n[2]||n[3])&&d===(n[3]||n[2]||n[1]||n[0])&&!d.length&&(e?e[h]=d:this._root=d),this):(this._root=i,this)},qc.removeAll=function(t){for(var n=0,e=t.length;n<e;++n)this.remove(t[n]);return this},qc.root=function(){return this._root},qc.size=function(){var t=0;return this.visit((function(n){if(!n.length)do{++t}while(n=n.next)})),t},qc.visit=function(t){var n,e,r,i,o,a,u=[],c=this._root;for(c&&u.push(new Pc(c,this._x0,this._y0,this._x1,this._y1));n=u.pop();)if(!t(c=n.node,r=n.x0,i=n.y0,o=n.x1,a=n.y1)&&c.length){var f=(r+o)/2,s=(i+a)/2;(e=c[3])&&u.push(new Pc(e,f,s,o,a)),(e=c[2])&&u.push(new Pc(e,r,s,f,a)),(e=c[1])&&u.push(new Pc(e,f,i,o,s)),(e=c[0])&&u.push(new Pc(e,r,i,f,s))}return this},qc.visitAfter=function(t){var n,e=[],r=[];for(this._root&&e.push(new Pc(this._root,this._x0,this._y0,this._x1,this._y1));n=e.pop();){var i=n.node;if(i.length){var o,a=n.x0,u=n.y0,c=n.x1,f=n.y1,s=(a+c)/2,l=(u+f)/2;(o=i[0])&&e.push(new Pc(o,a,u,s,l)),(o=i[1])&&e.push(new Pc(o,s,u,c,l)),(o=i[2])&&e.push(new Pc(o,a,l,s,f)),(o=i[3])&&e.push(new Pc(o,s,l,c,f))}r.push(n)}for(;n=r.pop();)t(n.node,n.x0,n.y0,n.x1,n.y1);return this},qc.x=function(t){return arguments.length?(this._x=t,this):this._x},qc.y=function(t){return arguments.length?(this._y=t,this):this._y};const jc=1664525,Hc=1013904223,Xc=4294967296;function Gc(t){return t.x}function Vc(t){return t.y}var Wc=Math.PI*(3-Math.sqrt(5));function Zc(t,n){if((e=(t=n?t.toExponential(n-1):t.toExponential()).indexOf("e"))<0)return null;var e,r=t.slice(0,e);return[r.length>1?r[0]+r.slice(2):r,+t.slice(e+1)]}function Kc(t){return(t=Zc(Math.abs(t)))?t[1]:NaN}var Qc,Jc=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function tf(t){if(!(n=Jc.exec(t)))throw new Error("invalid format: "+t);var n;return new nf({fill:n[1],align:n[2],sign:n[3],symbol:n[4],zero:n[5],width:n[6],comma:n[7],precision:n[8]&&n[8].slice(1),trim:n[9],type:n[10]})}function nf(t){this.fill=void 0===t.fill?" ":t.fill+"",this.align=void 0===t.align?">":t.align+"",this.sign=void 0===t.sign?"-":t.sign+"",this.symbol=void 0===t.symbol?"":t.symbol+"",this.zero=!!t.zero,this.width=void 0===t.width?void 0:+t.width,this.comma=!!t.comma,this.precision=void 0===t.precision?void 0:+t.precision,this.trim=!!t.trim,this.type=void 0===t.type?"":t.type+""}function ef(t,n){var e=Zc(t,n);if(!e)return t+"";var r=e[0],i=e[1];return i<0?"0."+new Array(-i).join("0")+r:r.length>i+1?r.slice(0,i+1)+"."+r.slice(i+1):r+new Array(i-r.length+2).join("0")}tf.prototype=nf.prototype,nf.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(void 0===this.width?"":Math.max(1,0|this.width))+(this.comma?",":"")+(void 0===this.precision?"":"."+Math.max(0,0|this.precision))+(this.trim?"~":"")+this.type};var rf={"%":(t,n)=>(100*t).toFixed(n),b:t=>Math.round(t).toString(2),c:t=>t+"",d:function(t){return Math.abs(t=Math.round(t))>=1e21?t.toLocaleString("en").replace(/,/g,""):t.toString(10)},e:(t,n)=>t.toExponential(n),f:(t,n)=>t.toFixed(n),g:(t,n)=>t.toPrecision(n),o:t=>Math.round(t).toString(8),p:(t,n)=>ef(100*t,n),r:ef,s:function(t,n){var e=Zc(t,n);if(!e)return t+"";var r=e[0],i=e[1],o=i-(Qc=3*Math.max(-8,Math.min(8,Math.floor(i/3))))+1,a=r.length;return o===a?r:o>a?r+new Array(o-a+1).join("0"):o>0?r.slice(0,o)+"."+r.slice(o):"0."+new Array(1-o).join("0")+Zc(t,Math.max(0,n+o-1))[0]},X:t=>Math.round(t).toString(16).toUpperCase(),x:t=>Math.round(t).toString(16)};function of(t){return t}var af,uf=Array.prototype.map,cf=["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"];function ff(t){var n,e,r=void 0===t.grouping||void 0===t.thousands?of:(n=uf.call(t.grouping,Number),e=t.thousands+"",function(t,r){for(var i=t.length,o=[],a=0,u=n[0],c=0;i>0&&u>0&&(c+u+1>r&&(u=Math.max(1,r-c)),o.push(t.substring(i-=u,i+u)),!((c+=u+1)>r));)u=n[a=(a+1)%n.length];return o.reverse().join(e)}),i=void 0===t.currency?"":t.currency[0]+"",o=void 0===t.currency?"":t.currency[1]+"",a=void 0===t.decimal?".":t.decimal+"",u=void 0===t.numerals?of:function(t){return function(n){return n.replace(/[0-9]/g,(function(n){return t[+n]}))}}(uf.call(t.numerals,String)),c=void 0===t.percent?"%":t.percent+"",f=void 0===t.minus?"−":t.minus+"",s=void 0===t.nan?"NaN":t.nan+"";function l(t){var n=(t=tf(t)).fill,e=t.align,l=t.sign,h=t.symbol,d=t.zero,p=t.width,g=t.comma,y=t.precision,v=t.trim,_=t.type;"n"===_?(g=!0,_="g"):rf[_]||(void 0===y&&(y=12),v=!0,_="g"),(d||"0"===n&&"="===e)&&(d=!0,n="0",e="=");var b="$"===h?i:"#"===h&&/[boxX]/.test(_)?"0"+_.toLowerCase():"",m="$"===h?o:/[%p]/.test(_)?c:"",x=rf[_],w=/[defgprs%]/.test(_);function M(t){var i,o,c,h=b,M=m;if("c"===_)M=x(t)+M,t="";else{var T=(t=+t)<0||1/t<0;if(t=isNaN(t)?s:x(Math.abs(t),y),v&&(t=function(t){t:for(var n,e=t.length,r=1,i=-1;r<e;++r)switch(t[r]){case".":i=n=r;break;case"0":0===i&&(i=r),n=r;break;default:if(!+t[r])break t;i>0&&(i=0)}return i>0?t.slice(0,i)+t.slice(n+1):t}(t)),T&&0==+t&&"+"!==l&&(T=!1),h=(T?"("===l?l:f:"-"===l||"("===l?"":l)+h,M=("s"===_?cf[8+Qc/3]:"")+M+(T&&"("===l?")":""),w)for(i=-1,o=t.length;++i<o;)if(48>(c=t.charCodeAt(i))||c>57){M=(46===c?a+t.slice(i+1):t.slice(i))+M,t=t.slice(0,i);break}}g&&!d&&(t=r(t,1/0));var A=h.length+t.length+M.length,S=A<p?new Array(p-A+1).join(n):"";switch(g&&d&&(t=r(S+t,S.length?p-M.length:1/0),S=""),e){case"<":t=h+t+M+S;break;case"=":t=h+S+t+M;break;case"^":t=S.slice(0,A=S.length>>1)+h+t+M+S.slice(A);break;default:t=S+h+t+M}return u(t)}return y=void 0===y?6:/[gprs]/.test(_)?Math.max(1,Math.min(21,y)):Math.max(0,Math.min(20,y)),M.toString=function(){return t+""},M}return{format:l,formatPrefix:function(t,n){var e=l(((t=tf(t)).type="f",t)),r=3*Math.max(-8,Math.min(8,Math.floor(Kc(n)/3))),i=Math.pow(10,-r),o=cf[8+r/3];return function(t){return e(i*t)+o}}}}function sf(n){return af=ff(n),t.format=af.format,t.formatPrefix=af.formatPrefix,af}function lf(t){return Math.max(0,-Kc(Math.abs(t)))}function hf(t,n){return Math.max(0,3*Math.max(-8,Math.min(8,Math.floor(Kc(n)/3)))-Kc(Math.abs(t)))}function df(t,n){return t=Math.abs(t),n=Math.abs(n)-t,Math.max(0,Kc(n)-Kc(t))+1}t.format=void 0,t.formatPrefix=void 0,sf({thousands:",",grouping:[3],currency:["$",""]});var pf=1e-6,gf=1e-12,yf=Math.PI,vf=yf/2,_f=yf/4,bf=2*yf,mf=180/yf,xf=yf/180,wf=Math.abs,Mf=Math.atan,Tf=Math.atan2,Af=Math.cos,Sf=Math.ceil,Ef=Math.exp,Nf=Math.hypot,kf=Math.log,Cf=Math.pow,Pf=Math.sin,zf=Math.sign||function(t){return t>0?1:t<0?-1:0},$f=Math.sqrt,Df=Math.tan;function Rf(t){return t>1?0:t<-1?yf:Math.acos(t)}function Ff(t){return t>1?vf:t<-1?-vf:Math.asin(t)}function qf(t){return(t=Pf(t/2))*t}function Uf(){}function If(t,n){t&&Bf.hasOwnProperty(t.type)&&Bf[t.type](t,n)}var Of={Feature:function(t,n){If(t.geometry,n)},FeatureCollection:function(t,n){for(var e=t.features,r=-1,i=e.length;++r<i;)If(e[r].geometry,n)}},Bf={Sphere:function(t,n){n.sphere()},Point:function(t,n){t=t.coordinates,n.point(t[0],t[1],t[2])},MultiPoint:function(t,n){for(var e=t.coordinates,r=-1,i=e.length;++r<i;)t=e[r],n.point(t[0],t[1],t[2])},LineString:function(t,n){Yf(t.coordinates,n,0)},MultiLineString:function(t,n){for(var e=t.coordinates,r=-1,i=e.length;++r<i;)Yf(e[r],n,0)},Polygon:function(t,n){Lf(t.coordinates,n)},MultiPolygon:function(t,n){for(var e=t.coordinates,r=-1,i=e.length;++r<i;)Lf(e[r],n)},GeometryCollection:function(t,n){for(var e=t.geometries,r=-1,i=e.length;++r<i;)If(e[r],n)}};function Yf(t,n,e){var r,i=-1,o=t.length-e;for(n.lineStart();++i<o;)r=t[i],n.point(r[0],r[1],r[2]);n.lineEnd()}function Lf(t,n){var e=-1,r=t.length;for(n.polygonStart();++e<r;)Yf(t[e],n,1);n.polygonEnd()}function jf(t,n){t&&Of.hasOwnProperty(t.type)?Of[t.type](t,n):If(t,n)}var Hf,Xf,Gf,Vf,Wf,Zf,Kf,Qf,Jf,ts,ns,es,rs,is,os,as,us=new A,cs=new A,fs={point:Uf,lineStart:Uf,lineEnd:Uf,polygonStart:function(){us=new A,fs.lineStart=ss,fs.lineEnd=ls},polygonEnd:function(){var t=+us;cs.add(t<0?bf+t:t),this.lineStart=this.lineEnd=this.point=Uf},sphere:function(){cs.add(bf)}};function ss(){fs.point=hs}function ls(){ds(Hf,Xf)}function hs(t,n){fs.point=ds,Hf=t,Xf=n,Gf=t*=xf,Vf=Af(n=(n*=xf)/2+_f),Wf=Pf(n)}function ds(t,n){var e=(t*=xf)-Gf,r=e>=0?1:-1,i=r*e,o=Af(n=(n*=xf)/2+_f),a=Pf(n),u=Wf*a,c=Vf*o+u*Af(i),f=u*r*Pf(i);us.add(Tf(f,c)),Gf=t,Vf=o,Wf=a}function ps(t){return[Tf(t[1],t[0]),Ff(t[2])]}function gs(t){var n=t[0],e=t[1],r=Af(e);return[r*Af(n),r*Pf(n),Pf(e)]}function ys(t,n){return t[0]*n[0]+t[1]*n[1]+t[2]*n[2]}function vs(t,n){return[t[1]*n[2]-t[2]*n[1],t[2]*n[0]-t[0]*n[2],t[0]*n[1]-t[1]*n[0]]}function _s(t,n){t[0]+=n[0],t[1]+=n[1],t[2]+=n[2]}function bs(t,n){return[t[0]*n,t[1]*n,t[2]*n]}function ms(t){var n=$f(t[0]*t[0]+t[1]*t[1]+t[2]*t[2]);t[0]/=n,t[1]/=n,t[2]/=n}var xs,ws,Ms,Ts,As,Ss,Es,Ns,ks,Cs,Ps,zs,$s,Ds,Rs,Fs,qs={point:Us,lineStart:Os,lineEnd:Bs,polygonStart:function(){qs.point=Ys,qs.lineStart=Ls,qs.lineEnd=js,is=new A,fs.polygonStart()},polygonEnd:function(){fs.polygonEnd(),qs.point=Us,qs.lineStart=Os,qs.lineEnd=Bs,us<0?(Zf=-(Qf=180),Kf=-(Jf=90)):is>pf?Jf=90:is<-pf&&(Kf=-90),as[0]=Zf,as[1]=Qf},sphere:function(){Zf=-(Qf=180),Kf=-(Jf=90)}};function Us(t,n){os.push(as=[Zf=t,Qf=t]),n<Kf&&(Kf=n),n>Jf&&(Jf=n)}function Is(t,n){var e=gs([t*xf,n*xf]);if(rs){var r=vs(rs,e),i=vs([r[1],-r[0],0],r);ms(i),i=ps(i);var o,a=t-ts,u=a>0?1:-1,c=i[0]*mf*u,f=wf(a)>180;f^(u*ts<c&&c<u*t)?(o=i[1]*mf)>Jf&&(Jf=o):f^(u*ts<(c=(c+360)%360-180)&&c<u*t)?(o=-i[1]*mf)<Kf&&(Kf=o):(n<Kf&&(Kf=n),n>Jf&&(Jf=n)),f?t<ts?Hs(Zf,t)>Hs(Zf,Qf)&&(Qf=t):Hs(t,Qf)>Hs(Zf,Qf)&&(Zf=t):Qf>=Zf?(t<Zf&&(Zf=t),t>Qf&&(Qf=t)):t>ts?Hs(Zf,t)>Hs(Zf,Qf)&&(Qf=t):Hs(t,Qf)>Hs(Zf,Qf)&&(Zf=t)}else os.push(as=[Zf=t,Qf=t]);n<Kf&&(Kf=n),n>Jf&&(Jf=n),rs=e,ts=t}function Os(){qs.point=Is}function Bs(){as[0]=Zf,as[1]=Qf,qs.point=Us,rs=null}function Ys(t,n){if(rs){var e=t-ts;is.add(wf(e)>180?e+(e>0?360:-360):e)}else ns=t,es=n;fs.point(t,n),Is(t,n)}function Ls(){fs.lineStart()}function js(){Ys(ns,es),fs.lineEnd(),wf(is)>pf&&(Zf=-(Qf=180)),as[0]=Zf,as[1]=Qf,rs=null}function Hs(t,n){return(n-=t)<0?n+360:n}function Xs(t,n){return t[0]-n[0]}function Gs(t,n){return t[0]<=t[1]?t[0]<=n&&n<=t[1]:n<t[0]||t[1]<n}var Vs={sphere:Uf,point:Ws,lineStart:Ks,lineEnd:tl,polygonStart:function(){Vs.lineStart=nl,Vs.lineEnd=el},polygonEnd:function(){Vs.lineStart=Ks,Vs.lineEnd=tl}};function Ws(t,n){t*=xf;var e=Af(n*=xf);Zs(e*Af(t),e*Pf(t),Pf(n))}function Zs(t,n,e){++xs,Ms+=(t-Ms)/xs,Ts+=(n-Ts)/xs,As+=(e-As)/xs}function Ks(){Vs.point=Qs}function Qs(t,n){t*=xf;var e=Af(n*=xf);Ds=e*Af(t),Rs=e*Pf(t),Fs=Pf(n),Vs.point=Js,Zs(Ds,Rs,Fs)}function Js(t,n){t*=xf;var e=Af(n*=xf),r=e*Af(t),i=e*Pf(t),o=Pf(n),a=Tf($f((a=Rs*o-Fs*i)*a+(a=Fs*r-Ds*o)*a+(a=Ds*i-Rs*r)*a),Ds*r+Rs*i+Fs*o);ws+=a,Ss+=a*(Ds+(Ds=r)),Es+=a*(Rs+(Rs=i)),Ns+=a*(Fs+(Fs=o)),Zs(Ds,Rs,Fs)}function tl(){Vs.point=Ws}function nl(){Vs.point=rl}function el(){il(zs,$s),Vs.point=Ws}function rl(t,n){zs=t,$s=n,t*=xf,n*=xf,Vs.point=il;var e=Af(n);Ds=e*Af(t),Rs=e*Pf(t),Fs=Pf(n),Zs(Ds,Rs,Fs)}function il(t,n){t*=xf;var e=Af(n*=xf),r=e*Af(t),i=e*Pf(t),o=Pf(n),a=Rs*o-Fs*i,u=Fs*r-Ds*o,c=Ds*i-Rs*r,f=Nf(a,u,c),s=Ff(f),l=f&&-s/f;ks.add(l*a),Cs.add(l*u),Ps.add(l*c),ws+=s,Ss+=s*(Ds+(Ds=r)),Es+=s*(Rs+(Rs=i)),Ns+=s*(Fs+(Fs=o)),Zs(Ds,Rs,Fs)}function ol(t){return function(){return t}}function al(t,n){function e(e,r){return e=t(e,r),n(e[0],e[1])}return t.invert&&n.invert&&(e.invert=function(e,r){return(e=n.invert(e,r))&&t.invert(e[0],e[1])}),e}function ul(t,n){return wf(t)>yf&&(t-=Math.round(t/bf)*bf),[t,n]}function cl(t,n,e){return(t%=bf)?n||e?al(sl(t),ll(n,e)):sl(t):n||e?ll(n,e):ul}function fl(t){return function(n,e){return wf(n+=t)>yf&&(n-=Math.round(n/bf)*bf),[n,e]}}function sl(t){var n=fl(t);return n.invert=fl(-t),n}function ll(t,n){var e=Af(t),r=Pf(t),i=Af(n),o=Pf(n);function a(t,n){var a=Af(n),u=Af(t)*a,c=Pf(t)*a,f=Pf(n),s=f*e+u*r;return[Tf(c*i-s*o,u*e-f*r),Ff(s*i+c*o)]}return a.invert=function(t,n){var a=Af(n),u=Af(t)*a,c=Pf(t)*a,f=Pf(n),s=f*i-c*o;return[Tf(c*i+f*o,u*e+s*r),Ff(s*e-u*r)]},a}function hl(t){function n(n){return(n=t(n[0]*xf,n[1]*xf))[0]*=mf,n[1]*=mf,n}return t=cl(t[0]*xf,t[1]*xf,t.length>2?t[2]*xf:0),n.invert=function(n){return(n=t.invert(n[0]*xf,n[1]*xf))[0]*=mf,n[1]*=mf,n},n}function dl(t,n,e,r,i,o){if(e){var a=Af(n),u=Pf(n),c=r*e;null==i?(i=n+r*bf,o=n-c/2):(i=pl(a,i),o=pl(a,o),(r>0?i<o:i>o)&&(i+=r*bf));for(var f,s=i;r>0?s>o:s<o;s-=c)f=ps([a,-u*Af(s),-u*Pf(s)]),t.point(f[0],f[1])}}function pl(t,n){(n=gs(n))[0]-=t,ms(n);var e=Rf(-n[1]);return((-n[2]<0?-e:e)+bf-pf)%bf}function gl(){var t,n=[];return{point:function(n,e,r){t.push([n,e,r])},lineStart:function(){n.push(t=[])},lineEnd:Uf,rejoin:function(){n.length>1&&n.push(n.pop().concat(n.shift()))},result:function(){var e=n;return n=[],t=null,e}}}function yl(t,n){return wf(t[0]-n[0])<pf&&wf(t[1]-n[1])<pf}function vl(t,n,e,r){this.x=t,this.z=n,this.o=e,this.e=r,this.v=!1,this.n=this.p=null}function _l(t,n,e,r,i){var o,a,u=[],c=[];if(t.forEach((function(t){if(!((n=t.length-1)<=0)){var n,e,r=t[0],a=t[n];if(yl(r,a)){if(!r[2]&&!a[2]){for(i.lineStart(),o=0;o<n;++o)i.point((r=t[o])[0],r[1]);return void i.lineEnd()}a[0]+=2*pf}u.push(e=new vl(r,t,null,!0)),c.push(e.o=new vl(r,null,e,!1)),u.push(e=new vl(a,t,null,!1)),c.push(e.o=new vl(a,null,e,!0))}})),u.length){for(c.sort(n),bl(u),bl(c),o=0,a=c.length;o<a;++o)c[o].e=e=!e;for(var f,s,l=u[0];;){for(var h=l,d=!0;h.v;)if((h=h.n)===l)return;f=h.z,i.lineStart();do{if(h.v=h.o.v=!0,h.e){if(d)for(o=0,a=f.length;o<a;++o)i.point((s=f[o])[0],s[1]);else r(h.x,h.n.x,1,i);h=h.n}else{if(d)for(f=h.p.z,o=f.length-1;o>=0;--o)i.point((s=f[o])[0],s[1]);else r(h.x,h.p.x,-1,i);h=h.p}f=(h=h.o).z,d=!d}while(!h.v);i.lineEnd()}}}function bl(t){if(n=t.length){for(var n,e,r=0,i=t[0];++r<n;)i.n=e=t[r],e.p=i,i=e;i.n=e=t[0],e.p=i}}function ml(t){return wf(t[0])<=yf?t[0]:zf(t[0])*((wf(t[0])+yf)%bf-yf)}function xl(t,n){var e=ml(n),r=n[1],i=Pf(r),o=[Pf(e),-Af(e),0],a=0,u=0,c=new A;1===i?r=vf+pf:-1===i&&(r=-vf-pf);for(var f=0,s=t.length;f<s;++f)if(h=(l=t[f]).length)for(var l,h,d=l[h-1],p=ml(d),g=d[1]/2+_f,y=Pf(g),v=Af(g),_=0;_<h;++_,p=m,y=w,v=M,d=b){var b=l[_],m=ml(b),x=b[1]/2+_f,w=Pf(x),M=Af(x),T=m-p,S=T>=0?1:-1,E=S*T,N=E>yf,k=y*w;if(c.add(Tf(k*S*Pf(E),v*M+k*Af(E))),a+=N?T+S*bf:T,N^p>=e^m>=e){var C=vs(gs(d),gs(b));ms(C);var P=vs(o,C);ms(P);var z=(N^T>=0?-1:1)*Ff(P[2]);(r>z||r===z&&(C[0]||C[1]))&&(u+=N^T>=0?1:-1)}}return(a<-pf||a<pf&&c<-gf)^1&u}function wl(t,n,e,r){return function(i){var o,a,u,c=n(i),f=gl(),s=n(f),l=!1,h={point:d,lineStart:g,lineEnd:y,polygonStart:function(){h.point=v,h.lineStart=_,h.lineEnd=b,a=[],o=[]},polygonEnd:function(){h.point=d,h.lineStart=g,h.lineEnd=y,a=st(a);var t=xl(o,r);a.length?(l||(i.polygonStart(),l=!0),_l(a,Tl,t,e,i)):t&&(l||(i.polygonStart(),l=!0),i.lineStart(),e(null,null,1,i),i.lineEnd()),l&&(i.polygonEnd(),l=!1),a=o=null},sphere:function(){i.polygonStart(),i.lineStart(),e(null,null,1,i),i.lineEnd(),i.polygonEnd()}};function d(n,e){t(n,e)&&i.point(n,e)}function p(t,n){c.point(t,n)}function g(){h.point=p,c.lineStart()}function y(){h.point=d,c.lineEnd()}function v(t,n){u.push([t,n]),s.point(t,n)}function _(){s.lineStart(),u=[]}function b(){v(u[0][0],u[0][1]),s.lineEnd();var t,n,e,r,c=s.clean(),h=f.result(),d=h.length;if(u.pop(),o.push(u),u=null,d)if(1&c){if((n=(e=h[0]).length-1)>0){for(l||(i.polygonStart(),l=!0),i.lineStart(),t=0;t<n;++t)i.point((r=e[t])[0],r[1]);i.lineEnd()}}else d>1&&2&c&&h.push(h.pop().concat(h.shift())),a.push(h.filter(Ml))}return h}}function Ml(t){return t.length>1}function Tl(t,n){return((t=t.x)[0]<0?t[1]-vf-pf:vf-t[1])-((n=n.x)[0]<0?n[1]-vf-pf:vf-n[1])}ul.invert=ul;var Al=wl((function(){return!0}),(function(t){var n,e=NaN,r=NaN,i=NaN;return{lineStart:function(){t.lineStart(),n=1},point:function(o,a){var u=o>0?yf:-yf,c=wf(o-e);wf(c-yf)<pf?(t.point(e,r=(r+a)/2>0?vf:-vf),t.point(i,r),t.lineEnd(),t.lineStart(),t.point(u,r),t.point(o,r),n=0):i!==u&&c>=yf&&(wf(e-i)<pf&&(e-=i*pf),wf(o-u)<pf&&(o-=u*pf),r=function(t,n,e,r){var i,o,a=Pf(t-e);return wf(a)>pf?Mf((Pf(n)*(o=Af(r))*Pf(e)-Pf(r)*(i=Af(n))*Pf(t))/(i*o*a)):(n+r)/2}(e,r,o,a),t.point(i,r),t.lineEnd(),t.lineStart(),t.point(u,r),n=0),t.point(e=o,r=a),i=u},lineEnd:function(){t.lineEnd(),e=r=NaN},clean:function(){return 2-n}}}),(function(t,n,e,r){var i;if(null==t)i=e*vf,r.point(-yf,i),r.point(0,i),r.point(yf,i),r.point(yf,0),r.point(yf,-i),r.point(0,-i),r.point(-yf,-i),r.point(-yf,0),r.point(-yf,i);else if(wf(t[0]-n[0])>pf){var o=t[0]<n[0]?yf:-yf;i=e*o/2,r.point(-o,i),r.point(0,i),r.point(o,i)}else r.point(n[0],n[1])}),[-yf,-vf]);function Sl(t){var n=Af(t),e=6*xf,r=n>0,i=wf(n)>pf;function o(t,e){return Af(t)*Af(e)>n}function a(t,e,r){var i=[1,0,0],o=vs(gs(t),gs(e)),a=ys(o,o),u=o[0],c=a-u*u;if(!c)return!r&&t;var f=n*a/c,s=-n*u/c,l=vs(i,o),h=bs(i,f);_s(h,bs(o,s));var d=l,p=ys(h,d),g=ys(d,d),y=p*p-g*(ys(h,h)-1);if(!(y<0)){var v=$f(y),_=bs(d,(-p-v)/g);if(_s(_,h),_=ps(_),!r)return _;var b,m=t[0],x=e[0],w=t[1],M=e[1];x<m&&(b=m,m=x,x=b);var T=x-m,A=wf(T-yf)<pf;if(!A&&M<w&&(b=w,w=M,M=b),A||T<pf?A?w+M>0^_[1]<(wf(_[0]-m)<pf?w:M):w<=_[1]&&_[1]<=M:T>yf^(m<=_[0]&&_[0]<=x)){var S=bs(d,(-p+v)/g);return _s(S,h),[_,ps(S)]}}}function u(n,e){var i=r?t:yf-t,o=0;return n<-i?o|=1:n>i&&(o|=2),e<-i?o|=4:e>i&&(o|=8),o}return wl(o,(function(t){var n,e,c,f,s;return{lineStart:function(){f=c=!1,s=1},point:function(l,h){var d,p=[l,h],g=o(l,h),y=r?g?0:u(l,h):g?u(l+(l<0?yf:-yf),h):0;if(!n&&(f=c=g)&&t.lineStart(),g!==c&&(!(d=a(n,p))||yl(n,d)||yl(p,d))&&(p[2]=1),g!==c)s=0,g?(t.lineStart(),d=a(p,n),t.point(d[0],d[1])):(d=a(n,p),t.point(d[0],d[1],2),t.lineEnd()),n=d;else if(i&&n&&r^g){var v;y&e||!(v=a(p,n,!0))||(s=0,r?(t.lineStart(),t.point(v[0][0],v[0][1]),t.point(v[1][0],v[1][1]),t.lineEnd()):(t.point(v[1][0],v[1][1]),t.lineEnd(),t.lineStart(),t.point(v[0][0],v[0][1],3)))}!g||n&&yl(n,p)||t.point(p[0],p[1]),n=p,c=g,e=y},lineEnd:function(){c&&t.lineEnd(),n=null},clean:function(){return s|(f&&c)<<1}}}),(function(n,r,i,o){dl(o,t,e,i,n,r)}),r?[0,-t]:[-yf,t-yf])}var El,Nl,kl,Cl,Pl=1e9,zl=-Pl;function $l(t,n,e,r){function i(i,o){return t<=i&&i<=e&&n<=o&&o<=r}function o(i,o,u,f){var s=0,l=0;if(null==i||(s=a(i,u))!==(l=a(o,u))||c(i,o)<0^u>0)do{f.point(0===s||3===s?t:e,s>1?r:n)}while((s=(s+u+4)%4)!==l);else f.point(o[0],o[1])}function a(r,i){return wf(r[0]-t)<pf?i>0?0:3:wf(r[0]-e)<pf?i>0?2:1:wf(r[1]-n)<pf?i>0?1:0:i>0?3:2}function u(t,n){return c(t.x,n.x)}function c(t,n){var e=a(t,1),r=a(n,1);return e!==r?e-r:0===e?n[1]-t[1]:1===e?t[0]-n[0]:2===e?t[1]-n[1]:n[0]-t[0]}return function(a){var c,f,s,l,h,d,p,g,y,v,_,b=a,m=gl(),x={point:w,lineStart:function(){x.point=M,f&&f.push(s=[]);v=!0,y=!1,p=g=NaN},lineEnd:function(){c&&(M(l,h),d&&y&&m.rejoin(),c.push(m.result()));x.point=w,y&&b.lineEnd()},polygonStart:function(){b=m,c=[],f=[],_=!0},polygonEnd:function(){var n=function(){for(var n=0,e=0,i=f.length;e<i;++e)for(var o,a,u=f[e],c=1,s=u.length,l=u[0],h=l[0],d=l[1];c<s;++c)o=h,a=d,h=(l=u[c])[0],d=l[1],a<=r?d>r&&(h-o)*(r-a)>(d-a)*(t-o)&&++n:d<=r&&(h-o)*(r-a)<(d-a)*(t-o)&&--n;return n}(),e=_&&n,i=(c=st(c)).length;(e||i)&&(a.polygonStart(),e&&(a.lineStart(),o(null,null,1,a),a.lineEnd()),i&&_l(c,u,n,o,a),a.polygonEnd());b=a,c=f=s=null}};function w(t,n){i(t,n)&&b.point(t,n)}function M(o,a){var u=i(o,a);if(f&&s.push([o,a]),v)l=o,h=a,d=u,v=!1,u&&(b.lineStart(),b.point(o,a));else if(u&&y)b.point(o,a);else{var c=[p=Math.max(zl,Math.min(Pl,p)),g=Math.max(zl,Math.min(Pl,g))],m=[o=Math.max(zl,Math.min(Pl,o)),a=Math.max(zl,Math.min(Pl,a))];!function(t,n,e,r,i,o){var a,u=t[0],c=t[1],f=0,s=1,l=n[0]-u,h=n[1]-c;if(a=e-u,l||!(a>0)){if(a/=l,l<0){if(a<f)return;a<s&&(s=a)}else if(l>0){if(a>s)return;a>f&&(f=a)}if(a=i-u,l||!(a<0)){if(a/=l,l<0){if(a>s)return;a>f&&(f=a)}else if(l>0){if(a<f)return;a<s&&(s=a)}if(a=r-c,h||!(a>0)){if(a/=h,h<0){if(a<f)return;a<s&&(s=a)}else if(h>0){if(a>s)return;a>f&&(f=a)}if(a=o-c,h||!(a<0)){if(a/=h,h<0){if(a>s)return;a>f&&(f=a)}else if(h>0){if(a<f)return;a<s&&(s=a)}return f>0&&(t[0]=u+f*l,t[1]=c+f*h),s<1&&(n[0]=u+s*l,n[1]=c+s*h),!0}}}}}(c,m,t,n,e,r)?u&&(b.lineStart(),b.point(o,a),_=!1):(y||(b.lineStart(),b.point(c[0],c[1])),b.point(m[0],m[1]),u||b.lineEnd(),_=!1)}p=o,g=a,y=u}return x}}var Dl={sphere:Uf,point:Uf,lineStart:function(){Dl.point=Fl,Dl.lineEnd=Rl},lineEnd:Uf,polygonStart:Uf,polygonEnd:Uf};function Rl(){Dl.point=Dl.lineEnd=Uf}function Fl(t,n){Nl=t*=xf,kl=Pf(n*=xf),Cl=Af(n),Dl.point=ql}function ql(t,n){t*=xf;var e=Pf(n*=xf),r=Af(n),i=wf(t-Nl),o=Af(i),a=r*Pf(i),u=Cl*e-kl*r*o,c=kl*e+Cl*r*o;El.add(Tf($f(a*a+u*u),c)),Nl=t,kl=e,Cl=r}function Ul(t){return El=new A,jf(t,Dl),+El}var Il=[null,null],Ol={type:"LineString",coordinates:Il};function Bl(t,n){return Il[0]=t,Il[1]=n,Ul(Ol)}var Yl={Feature:function(t,n){return jl(t.geometry,n)},FeatureCollection:function(t,n){for(var e=t.features,r=-1,i=e.length;++r<i;)if(jl(e[r].geometry,n))return!0;return!1}},Ll={Sphere:function(){return!0},Point:function(t,n){return Hl(t.coordinates,n)},MultiPoint:function(t,n){for(var e=t.coordinates,r=-1,i=e.length;++r<i;)if(Hl(e[r],n))return!0;return!1},LineString:function(t,n){return Xl(t.coordinates,n)},MultiLineString:function(t,n){for(var e=t.coordinates,r=-1,i=e.length;++r<i;)if(Xl(e[r],n))return!0;return!1},Polygon:function(t,n){return Gl(t.coordinates,n)},MultiPolygon:function(t,n){for(var e=t.coordinates,r=-1,i=e.length;++r<i;)if(Gl(e[r],n))return!0;return!1},GeometryCollection:function(t,n){for(var e=t.geometries,r=-1,i=e.length;++r<i;)if(jl(e[r],n))return!0;return!1}};function jl(t,n){return!(!t||!Ll.hasOwnProperty(t.type))&&Ll[t.type](t,n)}function Hl(t,n){return 0===Bl(t,n)}function Xl(t,n){for(var e,r,i,o=0,a=t.length;o<a;o++){if(0===(r=Bl(t[o],n)))return!0;if(o>0&&(i=Bl(t[o],t[o-1]))>0&&e<=i&&r<=i&&(e+r-i)*(1-Math.pow((e-r)/i,2))<gf*i)return!0;e=r}return!1}function Gl(t,n){return!!xl(t.map(Vl),Wl(n))}function Vl(t){return(t=t.map(Wl)).pop(),t}function Wl(t){return[t[0]*xf,t[1]*xf]}function Zl(t,n,e){var r=ht(t,n-pf,e).concat(n);return function(t){return r.map((function(n){return[t,n]}))}}function Kl(t,n,e){var r=ht(t,n-pf,e).concat(n);return function(t){return r.map((function(n){return[n,t]}))}}function Ql(){var t,n,e,r,i,o,a,u,c,f,s,l,h=10,d=h,p=90,g=360,y=2.5;function v(){return{type:"MultiLineString",coordinates:_()}}function _(){return ht(Sf(r/p)*p,e,p).map(s).concat(ht(Sf(u/g)*g,a,g).map(l)).concat(ht(Sf(n/h)*h,t,h).filter((function(t){return wf(t%p)>pf})).map(c)).concat(ht(Sf(o/d)*d,i,d).filter((function(t){return wf(t%g)>pf})).map(f))}return v.lines=function(){return _().map((function(t){return{type:"LineString",coordinates:t}}))},v.outline=function(){return{type:"Polygon",coordinates:[s(r).concat(l(a).slice(1),s(e).reverse().slice(1),l(u).reverse().slice(1))]}},v.extent=function(t){return arguments.length?v.extentMajor(t).extentMinor(t):v.extentMinor()},v.extentMajor=function(t){return arguments.length?(r=+t[0][0],e=+t[1][0],u=+t[0][1],a=+t[1][1],r>e&&(t=r,r=e,e=t),u>a&&(t=u,u=a,a=t),v.precision(y)):[[r,u],[e,a]]},v.extentMinor=function(e){return arguments.length?(n=+e[0][0],t=+e[1][0],o=+e[0][1],i=+e[1][1],n>t&&(e=n,n=t,t=e),o>i&&(e=o,o=i,i=e),v.precision(y)):[[n,o],[t,i]]},v.step=function(t){return arguments.length?v.stepMajor(t).stepMinor(t):v.stepMinor()},v.stepMajor=function(t){return arguments.length?(p=+t[0],g=+t[1],v):[p,g]},v.stepMinor=function(t){return arguments.length?(h=+t[0],d=+t[1],v):[h,d]},v.precision=function(h){return arguments.length?(y=+h,c=Zl(o,i,90),f=Kl(n,t,y),s=Zl(u,a,90),l=Kl(r,e,y),v):y},v.extentMajor([[-180,-90+pf],[180,90-pf]]).extentMinor([[-180,-80-pf],[180,80+pf]])}var Jl,th,nh,eh,rh=t=>t,ih=new A,oh=new A,ah={point:Uf,lineStart:Uf,lineEnd:Uf,polygonStart:function(){ah.lineStart=uh,ah.lineEnd=sh},polygonEnd:function(){ah.lineStart=ah.lineEnd=ah.point=Uf,ih.add(wf(oh)),oh=new A},result:function(){var t=ih/2;return ih=new A,t}};function uh(){ah.point=ch}function ch(t,n){ah.point=fh,Jl=nh=t,th=eh=n}function fh(t,n){oh.add(eh*t-nh*n),nh=t,eh=n}function sh(){fh(Jl,th)}var lh=ah,hh=1/0,dh=hh,ph=-hh,gh=ph,yh={point:function(t,n){t<hh&&(hh=t);t>ph&&(ph=t);n<dh&&(dh=n);n>gh&&(gh=n)},lineStart:Uf,lineEnd:Uf,polygonStart:Uf,polygonEnd:Uf,result:function(){var t=[[hh,dh],[ph,gh]];return ph=gh=-(dh=hh=1/0),t}};var vh,_h,bh,mh,xh=yh,wh=0,Mh=0,Th=0,Ah=0,Sh=0,Eh=0,Nh=0,kh=0,Ch=0,Ph={point:zh,lineStart:$h,lineEnd:Fh,polygonStart:function(){Ph.lineStart=qh,Ph.lineEnd=Uh},polygonEnd:function(){Ph.point=zh,Ph.lineStart=$h,Ph.lineEnd=Fh},result:function(){var t=Ch?[Nh/Ch,kh/Ch]:Eh?[Ah/Eh,Sh/Eh]:Th?[wh/Th,Mh/Th]:[NaN,NaN];return wh=Mh=Th=Ah=Sh=Eh=Nh=kh=Ch=0,t}};function zh(t,n){wh+=t,Mh+=n,++Th}function $h(){Ph.point=Dh}function Dh(t,n){Ph.point=Rh,zh(bh=t,mh=n)}function Rh(t,n){var e=t-bh,r=n-mh,i=$f(e*e+r*r);Ah+=i*(bh+t)/2,Sh+=i*(mh+n)/2,Eh+=i,zh(bh=t,mh=n)}function Fh(){Ph.point=zh}function qh(){Ph.point=Ih}function Uh(){Oh(vh,_h)}function Ih(t,n){Ph.point=Oh,zh(vh=bh=t,_h=mh=n)}function Oh(t,n){var e=t-bh,r=n-mh,i=$f(e*e+r*r);Ah+=i*(bh+t)/2,Sh+=i*(mh+n)/2,Eh+=i,Nh+=(i=mh*t-bh*n)*(bh+t),kh+=i*(mh+n),Ch+=3*i,zh(bh=t,mh=n)}var Bh=Ph;function Yh(t){this._context=t}Yh.prototype={_radius:4.5,pointRadius:function(t){return this._radius=t,this},polygonStart:function(){this._line=0},polygonEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){0===this._line&&this._context.closePath(),this._point=NaN},point:function(t,n){switch(this._point){case 0:this._context.moveTo(t,n),this._point=1;break;case 1:this._context.lineTo(t,n);break;default:this._context.moveTo(t+this._radius,n),this._context.arc(t,n,this._radius,0,bf)}},result:Uf};var Lh,jh,Hh,Xh,Gh,Vh=new A,Wh={point:Uf,lineStart:function(){Wh.point=Zh},lineEnd:function(){Lh&&Kh(jh,Hh),Wh.point=Uf},polygonStart:function(){Lh=!0},polygonEnd:function(){Lh=null},result:function(){var t=+Vh;return Vh=new A,t}};function Zh(t,n){Wh.point=Kh,jh=Xh=t,Hh=Gh=n}function Kh(t,n){Xh-=t,Gh-=n,Vh.add($f(Xh*Xh+Gh*Gh)),Xh=t,Gh=n}var Qh=Wh;let Jh,td,nd,ed;class rd{constructor(t){this._append=null==t?id:function(t){const n=Math.floor(t);if(!(n>=0))throw new RangeError(`invalid digits: ${t}`);if(n>15)return id;if(n!==Jh){const t=10**n;Jh=n,td=function(n){let e=1;this._+=n[0];for(const r=n.length;e<r;++e)this._+=Math.round(arguments[e]*t)/t+n[e]}}return td}(t),this._radius=4.5,this._=""}pointRadius(t){return this._radius=+t,this}polygonStart(){this._line=0}polygonEnd(){this._line=NaN}lineStart(){this._point=0}lineEnd(){0===this._line&&(this._+="Z"),this._point=NaN}point(t,n){switch(this._point){case 0:this._append`M${t},${n}`,this._point=1;break;case 1:this._append`L${t},${n}`;break;default:if(this._append`M${t},${n}`,this._radius!==nd||this._append!==td){const t=this._radius,n=this._;this._="",this._append`m0,${t}a${t},${t} 0 1,1 0,${-2*t}a${t},${t} 0 1,1 0,${2*t}z`,nd=t,td=this._append,ed=this._,this._=n}this._+=ed}}result(){const t=this._;return this._="",t.length?t:null}}function id(t){let n=1;this._+=t[0];for(const e=t.length;n<e;++n)this._+=arguments[n]+t[n]}function od(t){return function(n){var e=new ad;for(var r in t)e[r]=t[r];return e.stream=n,e}}function ad(){}function ud(t,n,e){var r=t.clipExtent&&t.clipExtent();return t.scale(150).translate([0,0]),null!=r&&t.clipExtent(null),jf(e,t.stream(xh)),n(xh.result()),null!=r&&t.clipExtent(r),t}function cd(t,n,e){return ud(t,(function(e){var r=n[1][0]-n[0][0],i=n[1][1]-n[0][1],o=Math.min(r/(e[1][0]-e[0][0]),i/(e[1][1]-e[0][1])),a=+n[0][0]+(r-o*(e[1][0]+e[0][0]))/2,u=+n[0][1]+(i-o*(e[1][1]+e[0][1]))/2;t.scale(150*o).translate([a,u])}),e)}function fd(t,n,e){return cd(t,[[0,0],n],e)}function sd(t,n,e){return ud(t,(function(e){var r=+n,i=r/(e[1][0]-e[0][0]),o=(r-i*(e[1][0]+e[0][0]))/2,a=-i*e[0][1];t.scale(150*i).translate([o,a])}),e)}function ld(t,n,e){return ud(t,(function(e){var r=+n,i=r/(e[1][1]-e[0][1]),o=-i*e[0][0],a=(r-i*(e[1][1]+e[0][1]))/2;t.scale(150*i).translate([o,a])}),e)}ad.prototype={constructor:ad,point:function(t,n){this.stream.point(t,n)},sphere:function(){this.stream.sphere()},lineStart:function(){this.stream.lineStart()},lineEnd:function(){this.stream.lineEnd()},polygonStart:function(){this.stream.polygonStart()},polygonEnd:function(){this.stream.polygonEnd()}};var hd=16,dd=Af(30*xf);function pd(t,n){return+n?function(t,n){function e(r,i,o,a,u,c,f,s,l,h,d,p,g,y){var v=f-r,_=s-i,b=v*v+_*_;if(b>4*n&&g--){var m=a+h,x=u+d,w=c+p,M=$f(m*m+x*x+w*w),T=Ff(w/=M),A=wf(wf(w)-1)<pf||wf(o-l)<pf?(o+l)/2:Tf(x,m),S=t(A,T),E=S[0],N=S[1],k=E-r,C=N-i,P=_*k-v*C;(P*P/b>n||wf((v*k+_*C)/b-.5)>.3||a*h+u*d+c*p<dd)&&(e(r,i,o,a,u,c,E,N,A,m/=M,x/=M,w,g,y),y.point(E,N),e(E,N,A,m,x,w,f,s,l,h,d,p,g,y))}}return function(n){var r,i,o,a,u,c,f,s,l,h,d,p,g={point:y,lineStart:v,lineEnd:b,polygonStart:function(){n.polygonStart(),g.lineStart=m},polygonEnd:function(){n.polygonEnd(),g.lineStart=v}};function y(e,r){e=t(e,r),n.point(e[0],e[1])}function v(){s=NaN,g.point=_,n.lineStart()}function _(r,i){var o=gs([r,i]),a=t(r,i);e(s,l,f,h,d,p,s=a[0],l=a[1],f=r,h=o[0],d=o[1],p=o[2],hd,n),n.point(s,l)}function b(){g.point=y,n.lineEnd()}function m(){v(),g.point=x,g.lineEnd=w}function x(t,n){_(r=t,n),i=s,o=l,a=h,u=d,c=p,g.point=_}function w(){e(s,l,f,h,d,p,i,o,r,a,u,c,hd,n),g.lineEnd=b,b()}return g}}(t,n):function(t){return od({point:function(n,e){n=t(n,e),this.stream.point(n[0],n[1])}})}(t)}var gd=od({point:function(t,n){this.stream.point(t*xf,n*xf)}});function yd(t,n,e,r,i,o){if(!o)return function(t,n,e,r,i){function o(o,a){return[n+t*(o*=r),e-t*(a*=i)]}return o.invert=function(o,a){return[(o-n)/t*r,(e-a)/t*i]},o}(t,n,e,r,i);var a=Af(o),u=Pf(o),c=a*t,f=u*t,s=a/t,l=u/t,h=(u*e-a*n)/t,d=(u*n+a*e)/t;function p(t,o){return[c*(t*=r)-f*(o*=i)+n,e-f*t-c*o]}return p.invert=function(t,n){return[r*(s*t-l*n+h),i*(d-l*t-s*n)]},p}function vd(t){return _d((function(){return t}))()}function _d(t){var n,e,r,i,o,a,u,c,f,s,l=150,h=480,d=250,p=0,g=0,y=0,v=0,_=0,b=0,m=1,x=1,w=null,M=Al,T=null,A=rh,S=.5;function E(t){return c(t[0]*xf,t[1]*xf)}function N(t){return(t=c.invert(t[0],t[1]))&&[t[0]*mf,t[1]*mf]}function k(){var t=yd(l,0,0,m,x,b).apply(null,n(p,g)),r=yd(l,h-t[0],d-t[1],m,x,b);return e=cl(y,v,_),u=al(n,r),c=al(e,u),a=pd(u,S),C()}function C(){return f=s=null,E}return E.stream=function(t){return f&&s===t?f:f=gd(function(t){return od({point:function(n,e){var r=t(n,e);return this.stream.point(r[0],r[1])}})}(e)(M(a(A(s=t)))))},E.preclip=function(t){return arguments.length?(M=t,w=void 0,C()):M},E.postclip=function(t){return arguments.length?(A=t,T=r=i=o=null,C()):A},E.clipAngle=function(t){return arguments.length?(M=+t?Sl(w=t*xf):(w=null,Al),C()):w*mf},E.clipExtent=function(t){return arguments.length?(A=null==t?(T=r=i=o=null,rh):$l(T=+t[0][0],r=+t[0][1],i=+t[1][0],o=+t[1][1]),C()):null==T?null:[[T,r],[i,o]]},E.scale=function(t){return arguments.length?(l=+t,k()):l},E.translate=function(t){return arguments.length?(h=+t[0],d=+t[1],k()):[h,d]},E.center=function(t){return arguments.length?(p=t[0]%360*xf,g=t[1]%360*xf,k()):[p*mf,g*mf]},E.rotate=function(t){return arguments.length?(y=t[0]%360*xf,v=t[1]%360*xf,_=t.length>2?t[2]%360*xf:0,k()):[y*mf,v*mf,_*mf]},E.angle=function(t){return arguments.length?(b=t%360*xf,k()):b*mf},E.reflectX=function(t){return arguments.length?(m=t?-1:1,k()):m<0},E.reflectY=function(t){return arguments.length?(x=t?-1:1,k()):x<0},E.precision=function(t){return arguments.length?(a=pd(u,S=t*t),C()):$f(S)},E.fitExtent=function(t,n){return cd(E,t,n)},E.fitSize=function(t,n){return fd(E,t,n)},E.fitWidth=function(t,n){return sd(E,t,n)},E.fitHeight=function(t,n){return ld(E,t,n)},function(){return n=t.apply(this,arguments),E.invert=n.invert&&N,k()}}function bd(t){var n=0,e=yf/3,r=_d(t),i=r(n,e);return i.parallels=function(t){return arguments.length?r(n=t[0]*xf,e=t[1]*xf):[n*mf,e*mf]},i}function md(t,n){var e=Pf(t),r=(e+Pf(n))/2;if(wf(r)<pf)return function(t){var n=Af(t);function e(t,e){return[t*n,Pf(e)/n]}return e.invert=function(t,e){return[t/n,Ff(e*n)]},e}(t);var i=1+e*(2*r-e),o=$f(i)/r;function a(t,n){var e=$f(i-2*r*Pf(n))/r;return[e*Pf(t*=r),o-e*Af(t)]}return a.invert=function(t,n){var e=o-n,a=Tf(t,wf(e))*zf(e);return e*r<0&&(a-=yf*zf(t)*zf(e)),[a/r,Ff((i-(t*t+e*e)*r*r)/(2*r))]},a}function xd(){return bd(md).scale(155.424).center([0,33.6442])}function wd(){return xd().parallels([29.5,45.5]).scale(1070).translate([480,250]).rotate([96,0]).center([-.6,38.7])}function Md(t){return function(n,e){var r=Af(n),i=Af(e),o=t(r*i);return o===1/0?[2,0]:[o*i*Pf(n),o*Pf(e)]}}function Td(t){return function(n,e){var r=$f(n*n+e*e),i=t(r),o=Pf(i),a=Af(i);return[Tf(n*o,r*a),Ff(r&&e*o/r)]}}var Ad=Md((function(t){return $f(2/(1+t))}));Ad.invert=Td((function(t){return 2*Ff(t/2)}));var Sd=Md((function(t){return(t=Rf(t))&&t/Pf(t)}));function Ed(t,n){return[t,kf(Df((vf+n)/2))]}function Nd(t){var n,e,r,i=vd(t),o=i.center,a=i.scale,u=i.translate,c=i.clipExtent,f=null;function s(){var o=yf*a(),u=i(hl(i.rotate()).invert([0,0]));return c(null==f?[[u[0]-o,u[1]-o],[u[0]+o,u[1]+o]]:t===Ed?[[Math.max(u[0]-o,f),n],[Math.min(u[0]+o,e),r]]:[[f,Math.max(u[1]-o,n)],[e,Math.min(u[1]+o,r)]])}return i.scale=function(t){return arguments.length?(a(t),s()):a()},i.translate=function(t){return arguments.length?(u(t),s()):u()},i.center=function(t){return arguments.length?(o(t),s()):o()},i.clipExtent=function(t){return arguments.length?(null==t?f=n=e=r=null:(f=+t[0][0],n=+t[0][1],e=+t[1][0],r=+t[1][1]),s()):null==f?null:[[f,n],[e,r]]},s()}function kd(t){return Df((vf+t)/2)}function Cd(t,n){var e=Af(t),r=t===n?Pf(t):kf(e/Af(n))/kf(kd(n)/kd(t)),i=e*Cf(kd(t),r)/r;if(!r)return Ed;function o(t,n){i>0?n<-vf+pf&&(n=-vf+pf):n>vf-pf&&(n=vf-pf);var e=i/Cf(kd(n),r);return[e*Pf(r*t),i-e*Af(r*t)]}return o.invert=function(t,n){var e=i-n,o=zf(r)*$f(t*t+e*e),a=Tf(t,wf(e))*zf(e);return e*r<0&&(a-=yf*zf(t)*zf(e)),[a/r,2*Mf(Cf(i/o,1/r))-vf]},o}function Pd(t,n){return[t,n]}function zd(t,n){var e=Af(t),r=t===n?Pf(t):(e-Af(n))/(n-t),i=e/r+t;if(wf(r)<pf)return Pd;function o(t,n){var e=i-n,o=r*t;return[e*Pf(o),i-e*Af(o)]}return o.invert=function(t,n){var e=i-n,o=Tf(t,wf(e))*zf(e);return e*r<0&&(o-=yf*zf(t)*zf(e)),[o/r,i-zf(r)*$f(t*t+e*e)]},o}Sd.invert=Td((function(t){return t})),Ed.invert=function(t,n){return[t,2*Mf(Ef(n))-vf]},Pd.invert=Pd;var $d=1.340264,Dd=-.081106,Rd=893e-6,Fd=.003796,qd=$f(3)/2;function Ud(t,n){var e=Ff(qd*Pf(n)),r=e*e,i=r*r*r;return[t*Af(e)/(qd*($d+3*Dd*r+i*(7*Rd+9*Fd*r))),e*($d+Dd*r+i*(Rd+Fd*r))]}function Id(t,n){var e=Af(n),r=Af(t)*e;return[e*Pf(t)/r,Pf(n)/r]}function Od(t,n){var e=n*n,r=e*e;return[t*(.8707-.131979*e+r*(r*(.003971*e-.001529*r)-.013791)),n*(1.007226+e*(.015085+r*(.028874*e-.044475-.005916*r)))]}function Bd(t,n){return[Af(n)*Pf(t),Pf(n)]}function Yd(t,n){var e=Af(n),r=1+Af(t)*e;return[e*Pf(t)/r,Pf(n)/r]}function Ld(t,n){return[kf(Df((vf+n)/2)),-t]}function jd(t,n){return t.parent===n.parent?1:2}function Hd(t,n){return t+n.x}function Xd(t,n){return Math.max(t,n.y)}function Gd(t){var n=0,e=t.children,r=e&&e.length;if(r)for(;--r>=0;)n+=e[r].value;else n=1;t.value=n}function Vd(t,n){t instanceof Map?(t=[void 0,t],void 0===n&&(n=Zd)):void 0===n&&(n=Wd);for(var e,r,i,o,a,u=new Jd(t),c=[u];e=c.pop();)if((i=n(e.data))&&(a=(i=Array.from(i)).length))for(e.children=i,o=a-1;o>=0;--o)c.push(r=i[o]=new Jd(i[o])),r.parent=e,r.depth=e.depth+1;return u.eachBefore(Qd)}function Wd(t){return t.children}function Zd(t){return Array.isArray(t)?t[1]:null}function Kd(t){void 0!==t.data.value&&(t.value=t.data.value),t.data=t.data.data}function Qd(t){var n=0;do{t.height=n}while((t=t.parent)&&t.height<++n)}function Jd(t){this.data=t,this.depth=this.height=0,this.parent=null}function tp(t){return null==t?null:np(t)}function np(t){if("function"!=typeof t)throw new Error;return t}function ep(){return 0}function rp(t){return function(){return t}}Ud.invert=function(t,n){for(var e,r=n,i=r*r,o=i*i*i,a=0;a<12&&(o=(i=(r-=e=(r*($d+Dd*i+o*(Rd+Fd*i))-n)/($d+3*Dd*i+o*(7*Rd+9*Fd*i)))*r)*i*i,!(wf(e)<gf));++a);return[qd*t*($d+3*Dd*i+o*(7*Rd+9*Fd*i))/Af(r),Ff(Pf(r)/qd)]},Id.invert=Td(Mf),Od.invert=function(t,n){var e,r=n,i=25;do{var o=r*r,a=o*o;r-=e=(r*(1.007226+o*(.015085+a*(.028874*o-.044475-.005916*a)))-n)/(1.007226+o*(.045255+a*(.259866*o-.311325-.005916*11*a)))}while(wf(e)>pf&&--i>0);return[t/(.8707+(o=r*r)*(o*(o*o*o*(.003971-.001529*o)-.013791)-.131979)),r]},Bd.invert=Td(Ff),Yd.invert=Td((function(t){return 2*Mf(t)})),Ld.invert=function(t,n){return[-n,2*Mf(Ef(t))-vf]},Jd.prototype=Vd.prototype={constructor:Jd,count:function(){return this.eachAfter(Gd)},each:function(t,n){let e=-1;for(const r of this)t.call(n,r,++e,this);return this},eachAfter:function(t,n){for(var e,r,i,o=this,a=[o],u=[],c=-1;o=a.pop();)if(u.push(o),e=o.children)for(r=0,i=e.length;r<i;++r)a.push(e[r]);for(;o=u.pop();)t.call(n,o,++c,this);return this},eachBefore:function(t,n){for(var e,r,i=this,o=[i],a=-1;i=o.pop();)if(t.call(n,i,++a,this),e=i.children)for(r=e.length-1;r>=0;--r)o.push(e[r]);return this},find:function(t,n){let e=-1;for(const r of this)if(t.call(n,r,++e,this))return r},sum:function(t){return this.eachAfter((function(n){for(var e=+t(n.data)||0,r=n.children,i=r&&r.length;--i>=0;)e+=r[i].value;n.value=e}))},sort:function(t){return this.eachBefore((function(n){n.children&&n.children.sort(t)}))},path:function(t){for(var n=this,e=function(t,n){if(t===n)return t;var e=t.ancestors(),r=n.ancestors(),i=null;t=e.pop(),n=r.pop();for(;t===n;)i=t,t=e.pop(),n=r.pop();return i}(n,t),r=[n];n!==e;)n=n.parent,r.push(n);for(var i=r.length;t!==e;)r.splice(i,0,t),t=t.parent;return r},ancestors:function(){for(var t=this,n=[t];t=t.parent;)n.push(t);return n},descendants:function(){return Array.from(this)},leaves:function(){var t=[];return this.eachBefore((function(n){n.children||t.push(n)})),t},links:function(){var t=this,n=[];return t.each((function(e){e!==t&&n.push({source:e.parent,target:e})})),n},copy:function(){return Vd(this).eachBefore(Kd)},[Symbol.iterator]:function*(){var t,n,e,r,i=this,o=[i];do{for(t=o.reverse(),o=[];i=t.pop();)if(yield i,n=i.children)for(e=0,r=n.length;e<r;++e)o.push(n[e])}while(o.length)}};const ip=1664525,op=1013904223,ap=4294967296;function up(){let t=1;return()=>(t=(ip*t+op)%ap)/ap}function cp(t,n){for(var e,r,i=0,o=(t=function(t,n){let e,r,i=t.length;for(;i;)r=n()*i--|0,e=t[i],t[i]=t[r],t[r]=e;return t}(Array.from(t),n)).length,a=[];i<o;)e=t[i],r&&lp(r,e)?++i:(r=dp(a=fp(a,e)),i=0);return r}function fp(t,n){var e,r;if(hp(n,t))return[n];for(e=0;e<t.length;++e)if(sp(n,t[e])&&hp(pp(t[e],n),t))return[t[e],n];for(e=0;e<t.length-1;++e)for(r=e+1;r<t.length;++r)if(sp(pp(t[e],t[r]),n)&&sp(pp(t[e],n),t[r])&&sp(pp(t[r],n),t[e])&&hp(gp(t[e],t[r],n),t))return[t[e],t[r],n];throw new Error}function sp(t,n){var e=t.r-n.r,r=n.x-t.x,i=n.y-t.y;return e<0||e*e<r*r+i*i}function lp(t,n){var e=t.r-n.r+1e-9*Math.max(t.r,n.r,1),r=n.x-t.x,i=n.y-t.y;return e>0&&e*e>r*r+i*i}function hp(t,n){for(var e=0;e<n.length;++e)if(!lp(t,n[e]))return!1;return!0}function dp(t){switch(t.length){case 1:return function(t){return{x:t.x,y:t.y,r:t.r}}(t[0]);case 2:return pp(t[0],t[1]);case 3:return gp(t[0],t[1],t[2])}}function pp(t,n){var e=t.x,r=t.y,i=t.r,o=n.x,a=n.y,u=n.r,c=o-e,f=a-r,s=u-i,l=Math.sqrt(c*c+f*f);return{x:(e+o+c/l*s)/2,y:(r+a+f/l*s)/2,r:(l+i+u)/2}}function gp(t,n,e){var r=t.x,i=t.y,o=t.r,a=n.x,u=n.y,c=n.r,f=e.x,s=e.y,l=e.r,h=r-a,d=r-f,p=i-u,g=i-s,y=c-o,v=l-o,_=r*r+i*i-o*o,b=_-a*a-u*u+c*c,m=_-f*f-s*s+l*l,x=d*p-h*g,w=(p*m-g*b)/(2*x)-r,M=(g*y-p*v)/x,T=(d*b-h*m)/(2*x)-i,A=(h*v-d*y)/x,S=M*M+A*A-1,E=2*(o+w*M+T*A),N=w*w+T*T-o*o,k=-(Math.abs(S)>1e-6?(E+Math.sqrt(E*E-4*S*N))/(2*S):N/E);return{x:r+w+M*k,y:i+T+A*k,r:k}}function yp(t,n,e){var r,i,o,a,u=t.x-n.x,c=t.y-n.y,f=u*u+c*c;f?(i=n.r+e.r,i*=i,a=t.r+e.r,i>(a*=a)?(r=(f+a-i)/(2*f),o=Math.sqrt(Math.max(0,a/f-r*r)),e.x=t.x-r*u-o*c,e.y=t.y-r*c+o*u):(r=(f+i-a)/(2*f),o=Math.sqrt(Math.max(0,i/f-r*r)),e.x=n.x+r*u-o*c,e.y=n.y+r*c+o*u)):(e.x=n.x+e.r,e.y=n.y)}function vp(t,n){var e=t.r+n.r-1e-6,r=n.x-t.x,i=n.y-t.y;return e>0&&e*e>r*r+i*i}function _p(t){var n=t._,e=t.next._,r=n.r+e.r,i=(n.x*e.r+e.x*n.r)/r,o=(n.y*e.r+e.y*n.r)/r;return i*i+o*o}function bp(t){this._=t,this.next=null,this.previous=null}function mp(t,n){if(!(o=(t=function(t){return"object"==typeof t&&"length"in t?t:Array.from(t)}(t)).length))return 0;var e,r,i,o,a,u,c,f,s,l,h;if((e=t[0]).x=0,e.y=0,!(o>1))return e.r;if(r=t[1],e.x=-r.r,r.x=e.r,r.y=0,!(o>2))return e.r+r.r;yp(r,e,i=t[2]),e=new bp(e),r=new bp(r),i=new bp(i),e.next=i.previous=r,r.next=e.previous=i,i.next=r.previous=e;t:for(c=3;c<o;++c){yp(e._,r._,i=t[c]),i=new bp(i),f=r.next,s=e.previous,l=r._.r,h=e._.r;do{if(l<=h){if(vp(f._,i._)){r=f,e.next=r,r.previous=e,--c;continue t}l+=f._.r,f=f.next}else{if(vp(s._,i._)){(e=s).next=r,r.previous=e,--c;continue t}h+=s._.r,s=s.previous}}while(f!==s.next);for(i.previous=e,i.next=r,e.next=r.previous=r=i,a=_p(e);(i=i.next)!==r;)(u=_p(i))<a&&(e=i,a=u);r=e.next}for(e=[r._],i=r;(i=i.next)!==r;)e.push(i._);for(i=cp(e,n),c=0;c<o;++c)(e=t[c]).x-=i.x,e.y-=i.y;return i.r}function xp(t){return Math.sqrt(t.value)}function wp(t){return function(n){n.children||(n.r=Math.max(0,+t(n)||0))}}function Mp(t,n,e){return function(r){if(i=r.children){var i,o,a,u=i.length,c=t(r)*n||0;if(c)for(o=0;o<u;++o)i[o].r+=c;if(a=mp(i,e),c)for(o=0;o<u;++o)i[o].r-=c;r.r=a+c}}}function Tp(t){return function(n){var e=n.parent;n.r*=t,e&&(n.x=e.x+t*n.x,n.y=e.y+t*n.y)}}function Ap(t){t.x0=Math.round(t.x0),t.y0=Math.round(t.y0),t.x1=Math.round(t.x1),t.y1=Math.round(t.y1)}function Sp(t,n,e,r,i){for(var o,a=t.children,u=-1,c=a.length,f=t.value&&(r-n)/t.value;++u<c;)(o=a[u]).y0=e,o.y1=i,o.x0=n,o.x1=n+=o.value*f}var Ep={depth:-1},Np={},kp={};function Cp(t){return t.id}function Pp(t){return t.parentId}function zp(t){let n=t.length;if(n<2)return"";for(;--n>1&&!$p(t,n););return t.slice(0,n)}function $p(t,n){if("/"===t[n]){let e=0;for(;n>0&&"\\"===t[--n];)++e;if(0==(1&e))return!0}return!1}function Dp(t,n){return t.parent===n.parent?1:2}function Rp(t){var n=t.children;return n?n[0]:t.t}function Fp(t){var n=t.children;return n?n[n.length-1]:t.t}function qp(t,n,e){var r=e/(n.i-t.i);n.c-=r,n.s+=e,t.c+=r,n.z+=e,n.m+=e}function Up(t,n,e){return t.a.parent===n.parent?t.a:e}function Ip(t,n){this._=t,this.parent=null,this.children=null,this.A=null,this.a=this,this.z=0,this.m=0,this.c=0,this.s=0,this.t=null,this.i=n}function Op(t,n,e,r,i){for(var o,a=t.children,u=-1,c=a.length,f=t.value&&(i-e)/t.value;++u<c;)(o=a[u]).x0=n,o.x1=r,o.y0=e,o.y1=e+=o.value*f}Ip.prototype=Object.create(Jd.prototype);var Bp=(1+Math.sqrt(5))/2;function Yp(t,n,e,r,i,o){for(var a,u,c,f,s,l,h,d,p,g,y,v=[],_=n.children,b=0,m=0,x=_.length,w=n.value;b<x;){c=i-e,f=o-r;do{s=_[m++].value}while(!s&&m<x);for(l=h=s,y=s*s*(g=Math.max(f/c,c/f)/(w*t)),p=Math.max(h/y,y/l);m<x;++m){if(s+=u=_[m].value,u<l&&(l=u),u>h&&(h=u),y=s*s*g,(d=Math.max(h/y,y/l))>p){s-=u;break}p=d}v.push(a={value:s,dice:c<f,children:_.slice(b,m)}),a.dice?Sp(a,e,r,i,w?r+=f*s/w:o):Op(a,e,r,w?e+=c*s/w:i,o),w-=s,b=m}return v}var Lp=function t(n){function e(t,e,r,i,o){Yp(n,t,e,r,i,o)}return e.ratio=function(n){return t((n=+n)>1?n:1)},e}(Bp);var jp=function t(n){function e(t,e,r,i,o){if((a=t._squarify)&&a.ratio===n)for(var a,u,c,f,s,l=-1,h=a.length,d=t.value;++l<h;){for(c=(u=a[l]).children,f=u.value=0,s=c.length;f<s;++f)u.value+=c[f].value;u.dice?Sp(u,e,r,i,d?r+=(o-r)*u.value/d:o):Op(u,e,r,d?e+=(i-e)*u.value/d:i,o),d-=u.value}else t._squarify=a=Yp(n,t,e,r,i,o),a.ratio=n}return e.ratio=function(n){return t((n=+n)>1?n:1)},e}(Bp);function Hp(t,n,e){return(n[0]-t[0])*(e[1]-t[1])-(n[1]-t[1])*(e[0]-t[0])}function Xp(t,n){return t[0]-n[0]||t[1]-n[1]}function Gp(t){const n=t.length,e=[0,1];let r,i=2;for(r=2;r<n;++r){for(;i>1&&Hp(t[e[i-2]],t[e[i-1]],t[r])<=0;)--i;e[i++]=r}return e.slice(0,i)}var Vp=Math.random,Wp=function t(n){function e(t,e){return t=null==t?0:+t,e=null==e?1:+e,1===arguments.length?(e=t,t=0):e-=t,function(){return n()*e+t}}return e.source=t,e}(Vp),Zp=function t(n){function e(t,e){return arguments.length<2&&(e=t,t=0),t=Math.floor(t),e=Math.floor(e)-t,function(){return Math.floor(n()*e+t)}}return e.source=t,e}(Vp),Kp=function t(n){function e(t,e){var r,i;return t=null==t?0:+t,e=null==e?1:+e,function(){var o;if(null!=r)o=r,r=null;else do{r=2*n()-1,o=2*n()-1,i=r*r+o*o}while(!i||i>1);return t+e*o*Math.sqrt(-2*Math.log(i)/i)}}return e.source=t,e}(Vp),Qp=function t(n){var e=Kp.source(n);function r(){var t=e.apply(this,arguments);return function(){return Math.exp(t())}}return r.source=t,r}(Vp),Jp=function t(n){function e(t){return(t=+t)<=0?()=>0:function(){for(var e=0,r=t;r>1;--r)e+=n();return e+r*n()}}return e.source=t,e}(Vp),tg=function t(n){var e=Jp.source(n);function r(t){if(0==(t=+t))return n;var r=e(t);return function(){return r()/t}}return r.source=t,r}(Vp),ng=function t(n){function e(t){return function(){return-Math.log1p(-n())/t}}return e.source=t,e}(Vp),eg=function t(n){function e(t){if((t=+t)<0)throw new RangeError("invalid alpha");return t=1/-t,function(){return Math.pow(1-n(),t)}}return e.source=t,e}(Vp),rg=function t(n){function e(t){if((t=+t)<0||t>1)throw new RangeError("invalid p");return function(){return Math.floor(n()+t)}}return e.source=t,e}(Vp),ig=function t(n){function e(t){if((t=+t)<0||t>1)throw new RangeError("invalid p");return 0===t?()=>1/0:1===t?()=>1:(t=Math.log1p(-t),function(){return 1+Math.floor(Math.log1p(-n())/t)})}return e.source=t,e}(Vp),og=function t(n){var e=Kp.source(n)();function r(t,r){if((t=+t)<0)throw new RangeError("invalid k");if(0===t)return()=>0;if(r=null==r?1:+r,1===t)return()=>-Math.log1p(-n())*r;var i=(t<1?t+1:t)-1/3,o=1/(3*Math.sqrt(i)),a=t<1?()=>Math.pow(n(),1/t):()=>1;return function(){do{do{var t=e(),u=1+o*t}while(u<=0);u*=u*u;var c=1-n()}while(c>=1-.0331*t*t*t*t&&Math.log(c)>=.5*t*t+i*(1-u+Math.log(u)));return i*u*a()*r}}return r.source=t,r}(Vp),ag=function t(n){var e=og.source(n);function r(t,n){var r=e(t),i=e(n);return function(){var t=r();return 0===t?0:t/(t+i())}}return r.source=t,r}(Vp),ug=function t(n){var e=ig.source(n),r=ag.source(n);function i(t,n){return t=+t,(n=+n)>=1?()=>t:n<=0?()=>0:function(){for(var i=0,o=t,a=n;o*a>16&&o*(1-a)>16;){var u=Math.floor((o+1)*a),c=r(u,o-u+1)();c<=a?(i+=u,o-=u,a=(a-c)/(1-c)):(o=u-1,a/=c)}for(var f=a<.5,s=e(f?a:1-a),l=s(),h=0;l<=o;++h)l+=s();return i+(f?h:o-h)}}return i.source=t,i}(Vp),cg=function t(n){function e(t,e,r){var i;return 0==(t=+t)?i=t=>-Math.log(t):(t=1/t,i=n=>Math.pow(n,t)),e=null==e?0:+e,r=null==r?1:+r,function(){return e+r*i(-Math.log1p(-n()))}}return e.source=t,e}(Vp),fg=function t(n){function e(t,e){return t=null==t?0:+t,e=null==e?1:+e,function(){return t+e*Math.tan(Math.PI*n())}}return e.source=t,e}(Vp),sg=function t(n){function e(t,e){return t=null==t?0:+t,e=null==e?1:+e,function(){var r=n();return t+e*Math.log(r/(1-r))}}return e.source=t,e}(Vp),lg=function t(n){var e=og.source(n),r=ug.source(n);function i(t){return function(){for(var i=0,o=t;o>16;){var a=Math.floor(.875*o),u=e(a)();if(u>o)return i+r(a-1,o/u)();i+=a,o-=u}for(var c=-Math.log1p(-n()),f=0;c<=o;++f)c-=Math.log1p(-n());return i+f}}return i.source=t,i}(Vp);const hg=1/4294967296;function dg(t,n){switch(arguments.length){case 0:break;case 1:this.range(t);break;default:this.range(n).domain(t)}return this}function pg(t,n){switch(arguments.length){case 0:break;case 1:"function"==typeof t?this.interpolator(t):this.range(t);break;default:this.domain(t),"function"==typeof n?this.interpolator(n):this.range(n)}return this}const gg=Symbol("implicit");function yg(){var t=new InternMap,n=[],e=[],r=gg;function i(i){let o=t.get(i);if(void 0===o){if(r!==gg)return r;t.set(i,o=n.push(i)-1)}return e[o%e.length]}return i.domain=function(e){if(!arguments.length)return n.slice();n=[],t=new InternMap;for(const r of e)t.has(r)||t.set(r,n.push(r)-1);return i},i.range=function(t){return arguments.length?(e=Array.from(t),i):e.slice()},i.unknown=function(t){return arguments.length?(r=t,i):r},i.copy=function(){return yg(n,e).unknown(r)},dg.apply(i,arguments),i}function vg(){var t,n,e=yg().unknown(void 0),r=e.domain,i=e.range,o=0,a=1,u=!1,c=0,f=0,s=.5;function l(){var e=r().length,l=a<o,h=l?a:o,d=l?o:a;t=(d-h)/Math.max(1,e-c+2*f),u&&(t=Math.floor(t)),h+=(d-h-t*(e-c))*s,n=t*(1-c),u&&(h=Math.round(h),n=Math.round(n));var p=ht(e).map((function(n){return h+t*n}));return i(l?p.reverse():p)}return delete e.unknown,e.domain=function(t){return arguments.length?(r(t),l()):r()},e.range=function(t){return arguments.length?([o,a]=t,o=+o,a=+a,l()):[o,a]},e.rangeRound=function(t){return[o,a]=t,o=+o,a=+a,u=!0,l()},e.bandwidth=function(){return n},e.step=function(){return t},e.round=function(t){return arguments.length?(u=!!t,l()):u},e.padding=function(t){return arguments.length?(c=Math.min(1,f=+t),l()):c},e.paddingInner=function(t){return arguments.length?(c=Math.min(1,t),l()):c},e.paddingOuter=function(t){return arguments.length?(f=+t,l()):f},e.align=function(t){return arguments.length?(s=Math.max(0,Math.min(1,t)),l()):s},e.copy=function(){return vg(r(),[o,a]).round(u).paddingInner(c).paddingOuter(f).align(s)},dg.apply(l(),arguments)}function _g(t){var n=t.copy;return t.padding=t.paddingOuter,delete t.paddingInner,delete t.paddingOuter,t.copy=function(){return _g(n())},t}function bg(t){return+t}var mg=[0,1];function xg(t){return t}function wg(t,n){return(n-=t=+t)?function(e){return(e-t)/n}:function(t){return function(){return t}}(isNaN(n)?NaN:.5)}function Mg(t,n,e){var r=t[0],i=t[1],o=n[0],a=n[1];return i<r?(r=wg(i,r),o=e(a,o)):(r=wg(r,i),o=e(o,a)),function(t){return o(r(t))}}function Tg(t,n,e){var r=Math.min(t.length,n.length)-1,i=new Array(r),o=new Array(r),a=-1;for(t[r]<t[0]&&(t=t.slice().reverse(),n=n.slice().reverse());++a<r;)i[a]=wg(t[a],t[a+1]),o[a]=e(n[a],n[a+1]);return function(n){var e=l(t,n,1,r)-1;return o[e](i[e](n))}}function Ag(t,n){return n.domain(t.domain()).range(t.range()).interpolate(t.interpolate()).clamp(t.clamp()).unknown(t.unknown())}function Sg(){var t,n,e,r,i,o,a=mg,u=mg,c=Vr,f=xg;function s(){var t=Math.min(a.length,u.length);return f!==xg&&(f=function(t,n){var e;return t>n&&(e=t,t=n,n=e),function(e){return Math.max(t,Math.min(n,e))}}(a[0],a[t-1])),r=t>2?Tg:Mg,i=o=null,l}function l(n){return null==n||isNaN(n=+n)?e:(i||(i=r(a.map(t),u,c)))(t(f(n)))}return l.invert=function(e){return f(n((o||(o=r(u,a.map(t),Lr)))(e)))},l.domain=function(t){return arguments.length?(a=Array.from(t,bg),s()):a.slice()},l.range=function(t){return arguments.length?(u=Array.from(t),s()):u.slice()},l.rangeRound=function(t){return u=Array.from(t),c=Wr,s()},l.clamp=function(t){return arguments.length?(f=!!t||xg,s()):f!==xg},l.interpolate=function(t){return arguments.length?(c=t,s()):c},l.unknown=function(t){return arguments.length?(e=t,l):e},function(e,r){return t=e,n=r,s()}}function Eg(){return Sg()(xg,xg)}function Ng(n,e,r,i){var o,a=Z(n,e,r);switch((i=tf(null==i?",f":i)).type){case"s":var u=Math.max(Math.abs(n),Math.abs(e));return null!=i.precision||isNaN(o=hf(a,u))||(i.precision=o),t.formatPrefix(i,u);case"":case"e":case"g":case"p":case"r":null!=i.precision||isNaN(o=df(a,Math.max(Math.abs(n),Math.abs(e))))||(i.precision=o-("e"===i.type));break;case"f":case"%":null!=i.precision||isNaN(o=lf(a))||(i.precision=o-2*("%"===i.type))}return t.format(i)}function kg(t){var n=t.domain;return t.ticks=function(t){var e=n();return V(e[0],e[e.length-1],null==t?10:t)},t.tickFormat=function(t,e){var r=n();return Ng(r[0],r[r.length-1],null==t?10:t,e)},t.nice=function(e){null==e&&(e=10);var r,i,o=n(),a=0,u=o.length-1,c=o[a],f=o[u],s=10;for(f<c&&(i=c,c=f,f=i,i=a,a=u,u=i);s-- >0;){if((i=W(c,f,e))===r)return o[a]=c,o[u]=f,n(o);if(i>0)c=Math.floor(c/i)*i,f=Math.ceil(f/i)*i;else{if(!(i<0))break;c=Math.ceil(c*i)/i,f=Math.floor(f*i)/i}r=i}return t},t}function Cg(t,n){var e,r=0,i=(t=t.slice()).length-1,o=t[r],a=t[i];return a<o&&(e=r,r=i,i=e,e=o,o=a,a=e),t[r]=n.floor(o),t[i]=n.ceil(a),t}function Pg(t){return Math.log(t)}function zg(t){return Math.exp(t)}function $g(t){return-Math.log(-t)}function Dg(t){return-Math.exp(-t)}function Rg(t){return isFinite(t)?+("1e"+t):t<0?0:t}function Fg(t){return(n,e)=>-t(-n,e)}function qg(n){const e=n(Pg,zg),r=e.domain;let i,o,a=10;function u(){return i=function(t){return t===Math.E?Math.log:10===t&&Math.log10||2===t&&Math.log2||(t=Math.log(t),n=>Math.log(n)/t)}(a),o=function(t){return 10===t?Rg:t===Math.E?Math.exp:n=>Math.pow(t,n)}(a),r()[0]<0?(i=Fg(i),o=Fg(o),n($g,Dg)):n(Pg,zg),e}return e.base=function(t){return arguments.length?(a=+t,u()):a},e.domain=function(t){return arguments.length?(r(t),u()):r()},e.ticks=t=>{const n=r();let e=n[0],u=n[n.length-1];const c=u<e;c&&([e,u]=[u,e]);let f,s,l=i(e),h=i(u);const d=null==t?10:+t;let p=[];if(!(a%1)&&h-l<d){if(l=Math.floor(l),h=Math.ceil(h),e>0){for(;l<=h;++l)for(f=1;f<a;++f)if(s=l<0?f/o(-l):f*o(l),!(s<e)){if(s>u)break;p.push(s)}}else for(;l<=h;++l)for(f=a-1;f>=1;--f)if(s=l>0?f/o(-l):f*o(l),!(s<e)){if(s>u)break;p.push(s)}2*p.length<d&&(p=V(e,u,d))}else p=V(l,h,Math.min(h-l,d)).map(o);return c?p.reverse():p},e.tickFormat=(n,r)=>{if(null==n&&(n=10),null==r&&(r=10===a?"s":","),"function"!=typeof r&&(a%1||null!=(r=tf(r)).precision||(r.trim=!0),r=t.format(r)),n===1/0)return r;const u=Math.max(1,a*n/e.ticks().length);return t=>{let n=t/o(Math.round(i(t)));return n*a<a-.5&&(n*=a),n<=u?r(t):""}},e.nice=()=>r(Cg(r(),{floor:t=>o(Math.floor(i(t))),ceil:t=>o(Math.ceil(i(t)))})),e}function Ug(t){return function(n){return Math.sign(n)*Math.log1p(Math.abs(n/t))}}function Ig(t){return function(n){return Math.sign(n)*Math.expm1(Math.abs(n))*t}}function Og(t){var n=1,e=t(Ug(n),Ig(n));return e.constant=function(e){return arguments.length?t(Ug(n=+e),Ig(n)):n},kg(e)}function Bg(t){return function(n){return n<0?-Math.pow(-n,t):Math.pow(n,t)}}function Yg(t){return t<0?-Math.sqrt(-t):Math.sqrt(t)}function Lg(t){return t<0?-t*t:t*t}function jg(t){var n=t(xg,xg),e=1;return n.exponent=function(n){return arguments.length?1===(e=+n)?t(xg,xg):.5===e?t(Yg,Lg):t(Bg(e),Bg(1/e)):e},kg(n)}function Hg(){var t=jg(Sg());return t.copy=function(){return Ag(t,Hg()).exponent(t.exponent())},dg.apply(t,arguments),t}function Xg(t){return Math.sign(t)*t*t}const Gg=new Date,Vg=new Date;function Wg(t,n,e,r){function i(n){return t(n=0===arguments.length?new Date:new Date(+n)),n}return i.floor=n=>(t(n=new Date(+n)),n),i.ceil=e=>(t(e=new Date(e-1)),n(e,1),t(e),e),i.round=t=>{const n=i(t),e=i.ceil(t);return t-n<e-t?n:e},i.offset=(t,e)=>(n(t=new Date(+t),null==e?1:Math.floor(e)),t),i.range=(e,r,o)=>{const a=[];if(e=i.ceil(e),o=null==o?1:Math.floor(o),!(e<r&&o>0))return a;let u;do{a.push(u=new Date(+e)),n(e,o),t(e)}while(u<e&&e<r);return a},i.filter=e=>Wg((n=>{if(n>=n)for(;t(n),!e(n);)n.setTime(n-1)}),((t,r)=>{if(t>=t)if(r<0)for(;++r<=0;)for(;n(t,-1),!e(t););else for(;--r>=0;)for(;n(t,1),!e(t););})),e&&(i.count=(n,r)=>(Gg.setTime(+n),Vg.setTime(+r),t(Gg),t(Vg),Math.floor(e(Gg,Vg))),i.every=t=>(t=Math.floor(t),isFinite(t)&&t>0?t>1?i.filter(r?n=>r(n)%t==0:n=>i.count(0,n)%t==0):i:null)),i}const Zg=Wg((()=>{}),((t,n)=>{t.setTime(+t+n)}),((t,n)=>n-t));Zg.every=t=>(t=Math.floor(t),isFinite(t)&&t>0?t>1?Wg((n=>{n.setTime(Math.floor(n/t)*t)}),((n,e)=>{n.setTime(+n+e*t)}),((n,e)=>(e-n)/t)):Zg:null);const Kg=Zg.range,Qg=1e3,Jg=6e4,ty=60*Jg,ny=24*ty,ey=7*ny,ry=30*ny,iy=365*ny,oy=Wg((t=>{t.setTime(t-t.getMilliseconds())}),((t,n)=>{t.setTime(+t+n*Qg)}),((t,n)=>(n-t)/Qg),(t=>t.getUTCSeconds())),ay=oy.range,uy=Wg((t=>{t.setTime(t-t.getMilliseconds()-t.getSeconds()*Qg)}),((t,n)=>{t.setTime(+t+n*Jg)}),((t,n)=>(n-t)/Jg),(t=>t.getMinutes())),cy=uy.range,fy=Wg((t=>{t.setUTCSeconds(0,0)}),((t,n)=>{t.setTime(+t+n*Jg)}),((t,n)=>(n-t)/Jg),(t=>t.getUTCMinutes())),sy=fy.range,ly=Wg((t=>{t.setTime(t-t.getMilliseconds()-t.getSeconds()*Qg-t.getMinutes()*Jg)}),((t,n)=>{t.setTime(+t+n*ty)}),((t,n)=>(n-t)/ty),(t=>t.getHours())),hy=ly.range,dy=Wg((t=>{t.setUTCMinutes(0,0,0)}),((t,n)=>{t.setTime(+t+n*ty)}),((t,n)=>(n-t)/ty),(t=>t.getUTCHours())),py=dy.range,gy=Wg((t=>t.setHours(0,0,0,0)),((t,n)=>t.setDate(t.getDate()+n)),((t,n)=>(n-t-(n.getTimezoneOffset()-t.getTimezoneOffset())*Jg)/ny),(t=>t.getDate()-1)),yy=gy.range,vy=Wg((t=>{t.setUTCHours(0,0,0,0)}),((t,n)=>{t.setUTCDate(t.getUTCDate()+n)}),((t,n)=>(n-t)/ny),(t=>t.getUTCDate()-1)),_y=vy.range,by=Wg((t=>{t.setUTCHours(0,0,0,0)}),((t,n)=>{t.setUTCDate(t.getUTCDate()+n)}),((t,n)=>(n-t)/ny),(t=>Math.floor(t/ny))),my=by.range;function xy(t){return Wg((n=>{n.setDate(n.getDate()-(n.getDay()+7-t)%7),n.setHours(0,0,0,0)}),((t,n)=>{t.setDate(t.getDate()+7*n)}),((t,n)=>(n-t-(n.getTimezoneOffset()-t.getTimezoneOffset())*Jg)/ey))}const wy=xy(0),My=xy(1),Ty=xy(2),Ay=xy(3),Sy=xy(4),Ey=xy(5),Ny=xy(6),ky=wy.range,Cy=My.range,Py=Ty.range,zy=Ay.range,$y=Sy.range,Dy=Ey.range,Ry=Ny.range;function Fy(t){return Wg((n=>{n.setUTCDate(n.getUTCDate()-(n.getUTCDay()+7-t)%7),n.setUTCHours(0,0,0,0)}),((t,n)=>{t.setUTCDate(t.getUTCDate()+7*n)}),((t,n)=>(n-t)/ey))}const qy=Fy(0),Uy=Fy(1),Iy=Fy(2),Oy=Fy(3),By=Fy(4),Yy=Fy(5),Ly=Fy(6),jy=qy.range,Hy=Uy.range,Xy=Iy.range,Gy=Oy.range,Vy=By.range,Wy=Yy.range,Zy=Ly.range,Ky=Wg((t=>{t.setDate(1),t.setHours(0,0,0,0)}),((t,n)=>{t.setMonth(t.getMonth()+n)}),((t,n)=>n.getMonth()-t.getMonth()+12*(n.getFullYear()-t.getFullYear())),(t=>t.getMonth())),Qy=Ky.range,Jy=Wg((t=>{t.setUTCDate(1),t.setUTCHours(0,0,0,0)}),((t,n)=>{t.setUTCMonth(t.getUTCMonth()+n)}),((t,n)=>n.getUTCMonth()-t.getUTCMonth()+12*(n.getUTCFullYear()-t.getUTCFullYear())),(t=>t.getUTCMonth())),tv=Jy.range,nv=Wg((t=>{t.setMonth(0,1),t.setHours(0,0,0,0)}),((t,n)=>{t.setFullYear(t.getFullYear()+n)}),((t,n)=>n.getFullYear()-t.getFullYear()),(t=>t.getFullYear()));nv.every=t=>isFinite(t=Math.floor(t))&&t>0?Wg((n=>{n.setFullYear(Math.floor(n.getFullYear()/t)*t),n.setMonth(0,1),n.setHours(0,0,0,0)}),((n,e)=>{n.setFullYear(n.getFullYear()+e*t)})):null;const ev=nv.range,rv=Wg((t=>{t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)}),((t,n)=>{t.setUTCFullYear(t.getUTCFullYear()+n)}),((t,n)=>n.getUTCFullYear()-t.getUTCFullYear()),(t=>t.getUTCFullYear()));rv.every=t=>isFinite(t=Math.floor(t))&&t>0?Wg((n=>{n.setUTCFullYear(Math.floor(n.getUTCFullYear()/t)*t),n.setUTCMonth(0,1),n.setUTCHours(0,0,0,0)}),((n,e)=>{n.setUTCFullYear(n.getUTCFullYear()+e*t)})):null;const iv=rv.range;function ov(t,n,e,i,o,a){const u=[[oy,1,Qg],[oy,5,5e3],[oy,15,15e3],[oy,30,3e4],[a,1,Jg],[a,5,5*Jg],[a,15,15*Jg],[a,30,30*Jg],[o,1,ty],[o,3,3*ty],[o,6,6*ty],[o,12,12*ty],[i,1,ny],[i,2,2*ny],[e,1,ey],[n,1,ry],[n,3,3*ry],[t,1,iy]];function c(n,e,i){const o=Math.abs(e-n)/i,a=r((([,,t])=>t)).right(u,o);if(a===u.length)return t.every(Z(n/iy,e/iy,i));if(0===a)return Zg.every(Math.max(Z(n,e,i),1));const[c,f]=u[o/u[a-1][2]<u[a][2]/o?a-1:a];return c.every(f)}return[function(t,n,e){const r=n<t;r&&([t,n]=[n,t]);const i=e&&"function"==typeof e.range?e:c(t,n,e),o=i?i.range(t,+n+1):[];return r?o.reverse():o},c]}const[av,uv]=ov(rv,Jy,qy,by,dy,fy),[cv,fv]=ov(nv,Ky,wy,gy,ly,uy);function sv(t){if(0<=t.y&&t.y<100){var n=new Date(-1,t.m,t.d,t.H,t.M,t.S,t.L);return n.setFullYear(t.y),n}return new Date(t.y,t.m,t.d,t.H,t.M,t.S,t.L)}function lv(t){if(0<=t.y&&t.y<100){var n=new Date(Date.UTC(-1,t.m,t.d,t.H,t.M,t.S,t.L));return n.setUTCFullYear(t.y),n}return new Date(Date.UTC(t.y,t.m,t.d,t.H,t.M,t.S,t.L))}function hv(t,n,e){return{y:t,m:n,d:e,H:0,M:0,S:0,L:0}}function dv(t){var n=t.dateTime,e=t.date,r=t.time,i=t.periods,o=t.days,a=t.shortDays,u=t.months,c=t.shortMonths,f=xv(i),s=wv(i),l=xv(o),h=wv(o),d=xv(a),p=wv(a),g=xv(u),y=wv(u),v=xv(c),_=wv(c),b={a:function(t){return a[t.getDay()]},A:function(t){return o[t.getDay()]},b:function(t){return c[t.getMonth()]},B:function(t){return u[t.getMonth()]},c:null,d:Lv,e:Lv,f:Vv,g:o_,G:u_,H:jv,I:Hv,j:Xv,L:Gv,m:Wv,M:Zv,p:function(t){return i[+(t.getHours()>=12)]},q:function(t){return 1+~~(t.getMonth()/3)},Q:C_,s:P_,S:Kv,u:Qv,U:Jv,V:n_,w:e_,W:r_,x:null,X:null,y:i_,Y:a_,Z:c_,"%":k_},m={a:function(t){return a[t.getUTCDay()]},A:function(t){return o[t.getUTCDay()]},b:function(t){return c[t.getUTCMonth()]},B:function(t){return u[t.getUTCMonth()]},c:null,d:f_,e:f_,f:p_,g:A_,G:E_,H:s_,I:l_,j:h_,L:d_,m:g_,M:y_,p:function(t){return i[+(t.getUTCHours()>=12)]},q:function(t){return 1+~~(t.getUTCMonth()/3)},Q:C_,s:P_,S:v_,u:__,U:b_,V:x_,w:w_,W:M_,x:null,X:null,y:T_,Y:S_,Z:N_,"%":k_},x={a:function(t,n,e){var r=d.exec(n.slice(e));return r?(t.w=p.get(r[0].toLowerCase()),e+r[0].length):-1},A:function(t,n,e){var r=l.exec(n.slice(e));return r?(t.w=h.get(r[0].toLowerCase()),e+r[0].length):-1},b:function(t,n,e){var r=v.exec(n.slice(e));return r?(t.m=_.get(r[0].toLowerCase()),e+r[0].length):-1},B:function(t,n,e){var r=g.exec(n.slice(e));return r?(t.m=y.get(r[0].toLowerCase()),e+r[0].length):-1},c:function(t,e,r){return T(t,n,e,r)},d:$v,e:$v,f:Iv,g:kv,G:Nv,H:Rv,I:Rv,j:Dv,L:Uv,m:zv,M:Fv,p:function(t,n,e){var r=f.exec(n.slice(e));return r?(t.p=s.get(r[0].toLowerCase()),e+r[0].length):-1},q:Pv,Q:Bv,s:Yv,S:qv,u:Tv,U:Av,V:Sv,w:Mv,W:Ev,x:function(t,n,r){return T(t,e,n,r)},X:function(t,n,e){return T(t,r,n,e)},y:kv,Y:Nv,Z:Cv,"%":Ov};function w(t,n){return function(e){var r,i,o,a=[],u=-1,c=0,f=t.length;for(e instanceof Date||(e=new Date(+e));++u<f;)37===t.charCodeAt(u)&&(a.push(t.slice(c,u)),null!=(i=gv[r=t.charAt(++u)])?r=t.charAt(++u):i="e"===r?" ":"0",(o=n[r])&&(r=o(e,i)),a.push(r),c=u+1);return a.push(t.slice(c,u)),a.join("")}}function M(t,n){return function(e){var r,i,o=hv(1900,void 0,1);if(T(o,t,e+="",0)!=e.length)return null;if("Q"in o)return new Date(o.Q);if("s"in o)return new Date(1e3*o.s+("L"in o?o.L:0));if(n&&!("Z"in o)&&(o.Z=0),"p"in o&&(o.H=o.H%12+12*o.p),void 0===o.m&&(o.m="q"in o?o.q:0),"V"in o){if(o.V<1||o.V>53)return null;"w"in o||(o.w=1),"Z"in o?(i=(r=lv(hv(o.y,0,1))).getUTCDay(),r=i>4||0===i?Uy.ceil(r):Uy(r),r=vy.offset(r,7*(o.V-1)),o.y=r.getUTCFullYear(),o.m=r.getUTCMonth(),o.d=r.getUTCDate()+(o.w+6)%7):(i=(r=sv(hv(o.y,0,1))).getDay(),r=i>4||0===i?My.ceil(r):My(r),r=gy.offset(r,7*(o.V-1)),o.y=r.getFullYear(),o.m=r.getMonth(),o.d=r.getDate()+(o.w+6)%7)}else("W"in o||"U"in o)&&("w"in o||(o.w="u"in o?o.u%7:"W"in o?1:0),i="Z"in o?lv(hv(o.y,0,1)).getUTCDay():sv(hv(o.y,0,1)).getDay(),o.m=0,o.d="W"in o?(o.w+6)%7+7*o.W-(i+5)%7:o.w+7*o.U-(i+6)%7);return"Z"in o?(o.H+=o.Z/100|0,o.M+=o.Z%100,lv(o)):sv(o)}}function T(t,n,e,r){for(var i,o,a=0,u=n.length,c=e.length;a<u;){if(r>=c)return-1;if(37===(i=n.charCodeAt(a++))){if(i=n.charAt(a++),!(o=x[i in gv?n.charAt(a++):i])||(r=o(t,e,r))<0)return-1}else if(i!=e.charCodeAt(r++))return-1}return r}return b.x=w(e,b),b.X=w(r,b),b.c=w(n,b),m.x=w(e,m),m.X=w(r,m),m.c=w(n,m),{format:function(t){var n=w(t+="",b);return n.toString=function(){return t},n},parse:function(t){var n=M(t+="",!1);return n.toString=function(){return t},n},utcFormat:function(t){var n=w(t+="",m);return n.toString=function(){return t},n},utcParse:function(t){var n=M(t+="",!0);return n.toString=function(){return t},n}}}var pv,gv={"-":"",_:" ",0:"0"},yv=/^\s*\d+/,vv=/^%/,_v=/[\\^$*+?|[\]().{}]/g;function bv(t,n,e){var r=t<0?"-":"",i=(r?-t:t)+"",o=i.length;return r+(o<e?new Array(e-o+1).join(n)+i:i)}function mv(t){return t.replace(_v,"\\$&")}function xv(t){return new RegExp("^(?:"+t.map(mv).join("|")+")","i")}function wv(t){return new Map(t.map(((t,n)=>[t.toLowerCase(),n])))}function Mv(t,n,e){var r=yv.exec(n.slice(e,e+1));return r?(t.w=+r[0],e+r[0].length):-1}function Tv(t,n,e){var r=yv.exec(n.slice(e,e+1));return r?(t.u=+r[0],e+r[0].length):-1}function Av(t,n,e){var r=yv.exec(n.slice(e,e+2));return r?(t.U=+r[0],e+r[0].length):-1}function Sv(t,n,e){var r=yv.exec(n.slice(e,e+2));return r?(t.V=+r[0],e+r[0].length):-1}function Ev(t,n,e){var r=yv.exec(n.slice(e,e+2));return r?(t.W=+r[0],e+r[0].length):-1}function Nv(t,n,e){var r=yv.exec(n.slice(e,e+4));return r?(t.y=+r[0],e+r[0].length):-1}function kv(t,n,e){var r=yv.exec(n.slice(e,e+2));return r?(t.y=+r[0]+(+r[0]>68?1900:2e3),e+r[0].length):-1}function Cv(t,n,e){var r=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(n.slice(e,e+6));return r?(t.Z=r[1]?0:-(r[2]+(r[3]||"00")),e+r[0].length):-1}function Pv(t,n,e){var r=yv.exec(n.slice(e,e+1));return r?(t.q=3*r[0]-3,e+r[0].length):-1}function zv(t,n,e){var r=yv.exec(n.slice(e,e+2));return r?(t.m=r[0]-1,e+r[0].length):-1}function $v(t,n,e){var r=yv.exec(n.slice(e,e+2));return r?(t.d=+r[0],e+r[0].length):-1}function Dv(t,n,e){var r=yv.exec(n.slice(e,e+3));return r?(t.m=0,t.d=+r[0],e+r[0].length):-1}function Rv(t,n,e){var r=yv.exec(n.slice(e,e+2));return r?(t.H=+r[0],e+r[0].length):-1}function Fv(t,n,e){var r=yv.exec(n.slice(e,e+2));return r?(t.M=+r[0],e+r[0].length):-1}function qv(t,n,e){var r=yv.exec(n.slice(e,e+2));return r?(t.S=+r[0],e+r[0].length):-1}function Uv(t,n,e){var r=yv.exec(n.slice(e,e+3));return r?(t.L=+r[0],e+r[0].length):-1}function Iv(t,n,e){var r=yv.exec(n.slice(e,e+6));return r?(t.L=Math.floor(r[0]/1e3),e+r[0].length):-1}function Ov(t,n,e){var r=vv.exec(n.slice(e,e+1));return r?e+r[0].length:-1}function Bv(t,n,e){var r=yv.exec(n.slice(e));return r?(t.Q=+r[0],e+r[0].length):-1}function Yv(t,n,e){var r=yv.exec(n.slice(e));return r?(t.s=+r[0],e+r[0].length):-1}function Lv(t,n){return bv(t.getDate(),n,2)}function jv(t,n){return bv(t.getHours(),n,2)}function Hv(t,n){return bv(t.getHours()%12||12,n,2)}function Xv(t,n){return bv(1+gy.count(nv(t),t),n,3)}function Gv(t,n){return bv(t.getMilliseconds(),n,3)}function Vv(t,n){return Gv(t,n)+"000"}function Wv(t,n){return bv(t.getMonth()+1,n,2)}function Zv(t,n){return bv(t.getMinutes(),n,2)}function Kv(t,n){return bv(t.getSeconds(),n,2)}function Qv(t){var n=t.getDay();return 0===n?7:n}function Jv(t,n){return bv(wy.count(nv(t)-1,t),n,2)}function t_(t){var n=t.getDay();return n>=4||0===n?Sy(t):Sy.ceil(t)}function n_(t,n){return t=t_(t),bv(Sy.count(nv(t),t)+(4===nv(t).getDay()),n,2)}function e_(t){return t.getDay()}function r_(t,n){return bv(My.count(nv(t)-1,t),n,2)}function i_(t,n){return bv(t.getFullYear()%100,n,2)}function o_(t,n){return bv((t=t_(t)).getFullYear()%100,n,2)}function a_(t,n){return bv(t.getFullYear()%1e4,n,4)}function u_(t,n){var e=t.getDay();return bv((t=e>=4||0===e?Sy(t):Sy.ceil(t)).getFullYear()%1e4,n,4)}function c_(t){var n=t.getTimezoneOffset();return(n>0?"-":(n*=-1,"+"))+bv(n/60|0,"0",2)+bv(n%60,"0",2)}function f_(t,n){return bv(t.getUTCDate(),n,2)}function s_(t,n){return bv(t.getUTCHours(),n,2)}function l_(t,n){return bv(t.getUTCHours()%12||12,n,2)}function h_(t,n){return bv(1+vy.count(rv(t),t),n,3)}function d_(t,n){return bv(t.getUTCMilliseconds(),n,3)}function p_(t,n){return d_(t,n)+"000"}function g_(t,n){return bv(t.getUTCMonth()+1,n,2)}function y_(t,n){return bv(t.getUTCMinutes(),n,2)}function v_(t,n){return bv(t.getUTCSeconds(),n,2)}function __(t){var n=t.getUTCDay();return 0===n?7:n}function b_(t,n){return bv(qy.count(rv(t)-1,t),n,2)}function m_(t){var n=t.getUTCDay();return n>=4||0===n?By(t):By.ceil(t)}function x_(t,n){return t=m_(t),bv(By.count(rv(t),t)+(4===rv(t).getUTCDay()),n,2)}function w_(t){return t.getUTCDay()}function M_(t,n){return bv(Uy.count(rv(t)-1,t),n,2)}function T_(t,n){return bv(t.getUTCFullYear()%100,n,2)}function A_(t,n){return bv((t=m_(t)).getUTCFullYear()%100,n,2)}function S_(t,n){return bv(t.getUTCFullYear()%1e4,n,4)}function E_(t,n){var e=t.getUTCDay();return bv((t=e>=4||0===e?By(t):By.ceil(t)).getUTCFullYear()%1e4,n,4)}function N_(){return"+0000"}function k_(){return"%"}function C_(t){return+t}function P_(t){return Math.floor(+t/1e3)}function z_(n){return pv=dv(n),t.timeFormat=pv.format,t.timeParse=pv.parse,t.utcFormat=pv.utcFormat,t.utcParse=pv.utcParse,pv}t.timeFormat=void 0,t.timeParse=void 0,t.utcFormat=void 0,t.utcParse=void 0,z_({dateTime:"%x, %X",date:"%-m/%-d/%Y",time:"%-I:%M:%S %p",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});var $_="%Y-%m-%dT%H:%M:%S.%LZ";var D_=Date.prototype.toISOString?function(t){return t.toISOString()}:t.utcFormat($_),R_=D_;var F_=+new Date("2000-01-01T00:00:00.000Z")?function(t){var n=new Date(t);return isNaN(n)?null:n}:t.utcParse($_),q_=F_;function U_(t){return new Date(t)}function I_(t){return t instanceof Date?+t:+new Date(+t)}function O_(t,n,e,r,i,o,a,u,c,f){var s=Eg(),l=s.invert,h=s.domain,d=f(".%L"),p=f(":%S"),g=f("%I:%M"),y=f("%I %p"),v=f("%a %d"),_=f("%b %d"),b=f("%B"),m=f("%Y");function x(t){return(c(t)<t?d:u(t)<t?p:a(t)<t?g:o(t)<t?y:r(t)<t?i(t)<t?v:_:e(t)<t?b:m)(t)}return s.invert=function(t){return new Date(l(t))},s.domain=function(t){return arguments.length?h(Array.from(t,I_)):h().map(U_)},s.ticks=function(n){var e=h();return t(e[0],e[e.length-1],null==n?10:n)},s.tickFormat=function(t,n){return null==n?x:f(n)},s.nice=function(t){var e=h();return t&&"function"==typeof t.range||(t=n(e[0],e[e.length-1],null==t?10:t)),t?h(Cg(e,t)):s},s.copy=function(){return Ag(s,O_(t,n,e,r,i,o,a,u,c,f))},s}function B_(){var t,n,e,r,i,o=0,a=1,u=xg,c=!1;function f(n){return null==n||isNaN(n=+n)?i:u(0===e?.5:(n=(r(n)-t)*e,c?Math.max(0,Math.min(1,n)):n))}function s(t){return function(n){var e,r;return arguments.length?([e,r]=n,u=t(e,r),f):[u(0),u(1)]}}return f.domain=function(i){return arguments.length?([o,a]=i,t=r(o=+o),n=r(a=+a),e=t===n?0:1/(n-t),f):[o,a]},f.clamp=function(t){return arguments.length?(c=!!t,f):c},f.interpolator=function(t){return arguments.length?(u=t,f):u},f.range=s(Vr),f.rangeRound=s(Wr),f.unknown=function(t){return arguments.length?(i=t,f):i},function(i){return r=i,t=i(o),n=i(a),e=t===n?0:1/(n-t),f}}function Y_(t,n){return n.domain(t.domain()).interpolator(t.interpolator()).clamp(t.clamp()).unknown(t.unknown())}function L_(){var t=jg(B_());return t.copy=function(){return Y_(t,L_()).exponent(t.exponent())},pg.apply(t,arguments)}function j_(){var t,n,e,r,i,o,a,u=0,c=.5,f=1,s=1,l=xg,h=!1;function d(t){return isNaN(t=+t)?a:(t=.5+((t=+o(t))-n)*(s*t<s*n?r:i),l(h?Math.max(0,Math.min(1,t)):t))}function p(t){return function(n){var e,r,i;return arguments.length?([e,r,i]=n,l=pi(t,[e,r,i]),d):[l(0),l(.5),l(1)]}}return d.domain=function(a){return arguments.length?([u,c,f]=a,t=o(u=+u),n=o(c=+c),e=o(f=+f),r=t===n?0:.5/(n-t),i=n===e?0:.5/(e-n),s=n<t?-1:1,d):[u,c,f]},d.clamp=function(t){return arguments.length?(h=!!t,d):h},d.interpolator=function(t){return arguments.length?(l=t,d):l},d.range=p(Vr),d.rangeRound=p(Wr),d.unknown=function(t){return arguments.length?(a=t,d):a},function(a){return o=a,t=a(u),n=a(c),e=a(f),r=t===n?0:.5/(n-t),i=n===e?0:.5/(e-n),s=n<t?-1:1,d}}function H_(){var t=jg(j_());return t.copy=function(){return Y_(t,H_()).exponent(t.exponent())},pg.apply(t,arguments)}function X_(t){for(var n=t.length/6|0,e=new Array(n),r=0;r<n;)e[r]="#"+t.slice(6*r,6*++r);return e}var G_=X_("1f77b4ff7f0e2ca02cd627289467bd8c564be377c27f7f7fbcbd2217becf"),V_=X_("7fc97fbeaed4fdc086ffff99386cb0f0027fbf5b17666666"),W_=X_("1b9e77d95f027570b3e7298a66a61ee6ab02a6761d666666"),Z_=X_("a6cee31f78b4b2df8a33a02cfb9a99e31a1cfdbf6fff7f00cab2d66a3d9affff99b15928"),K_=X_("fbb4aeb3cde3ccebc5decbe4fed9a6ffffcce5d8bdfddaecf2f2f2"),Q_=X_("b3e2cdfdcdaccbd5e8f4cae4e6f5c9fff2aef1e2cccccccc"),J_=X_("e41a1c377eb84daf4a984ea3ff7f00ffff33a65628f781bf999999"),tb=X_("66c2a5fc8d628da0cbe78ac3a6d854ffd92fe5c494b3b3b3"),nb=X_("8dd3c7ffffb3bebadafb807280b1d3fdb462b3de69fccde5d9d9d9bc80bdccebc5ffed6f"),eb=X_("4e79a7f28e2ce1575976b7b259a14fedc949af7aa1ff9da79c755fbab0ab"),rb=t=>qr(t[t.length-1]),ib=new Array(3).concat("d8b365f5f5f55ab4ac","a6611adfc27d80cdc1018571","a6611adfc27df5f5f580cdc1018571","8c510ad8b365f6e8c3c7eae55ab4ac01665e","8c510ad8b365f6e8c3f5f5f5c7eae55ab4ac01665e","8c510abf812ddfc27df6e8c3c7eae580cdc135978f01665e","8c510abf812ddfc27df6e8c3f5f5f5c7eae580cdc135978f01665e","5430058c510abf812ddfc27df6e8c3c7eae580cdc135978f01665e003c30","5430058c510abf812ddfc27df6e8c3f5f5f5c7eae580cdc135978f01665e003c30").map(X_),ob=rb(ib),ab=new Array(3).concat("af8dc3f7f7f77fbf7b","7b3294c2a5cfa6dba0008837","7b3294c2a5cff7f7f7a6dba0008837","762a83af8dc3e7d4e8d9f0d37fbf7b1b7837","762a83af8dc3e7d4e8f7f7f7d9f0d37fbf7b1b7837","762a839970abc2a5cfe7d4e8d9f0d3a6dba05aae611b7837","762a839970abc2a5cfe7d4e8f7f7f7d9f0d3a6dba05aae611b7837","40004b762a839970abc2a5cfe7d4e8d9f0d3a6dba05aae611b783700441b","40004b762a839970abc2a5cfe7d4e8f7f7f7d9f0d3a6dba05aae611b783700441b").map(X_),ub=rb(ab),cb=new Array(3).concat("e9a3c9f7f7f7a1d76a","d01c8bf1b6dab8e1864dac26","d01c8bf1b6daf7f7f7b8e1864dac26","c51b7de9a3c9fde0efe6f5d0a1d76a4d9221","c51b7de9a3c9fde0eff7f7f7e6f5d0a1d76a4d9221","c51b7dde77aef1b6dafde0efe6f5d0b8e1867fbc414d9221","c51b7dde77aef1b6dafde0eff7f7f7e6f5d0b8e1867fbc414d9221","8e0152c51b7dde77aef1b6dafde0efe6f5d0b8e1867fbc414d9221276419","8e0152c51b7dde77aef1b6dafde0eff7f7f7e6f5d0b8e1867fbc414d9221276419").map(X_),fb=rb(cb),sb=new Array(3).concat("998ec3f7f7f7f1a340","5e3c99b2abd2fdb863e66101","5e3c99b2abd2f7f7f7fdb863e66101","542788998ec3d8daebfee0b6f1a340b35806","542788998ec3d8daebf7f7f7fee0b6f1a340b35806","5427888073acb2abd2d8daebfee0b6fdb863e08214b35806","5427888073acb2abd2d8daebf7f7f7fee0b6fdb863e08214b35806","2d004b5427888073acb2abd2d8daebfee0b6fdb863e08214b358067f3b08","2d004b5427888073acb2abd2d8daebf7f7f7fee0b6fdb863e08214b358067f3b08").map(X_),lb=rb(sb),hb=new Array(3).concat("ef8a62f7f7f767a9cf","ca0020f4a58292c5de0571b0","ca0020f4a582f7f7f792c5de0571b0","b2182bef8a62fddbc7d1e5f067a9cf2166ac","b2182bef8a62fddbc7f7f7f7d1e5f067a9cf2166ac","b2182bd6604df4a582fddbc7d1e5f092c5de4393c32166ac","b2182bd6604df4a582fddbc7f7f7f7d1e5f092c5de4393c32166ac","67001fb2182bd6604df4a582fddbc7d1e5f092c5de4393c32166ac053061","67001fb2182bd6604df4a582fddbc7f7f7f7d1e5f092c5de4393c32166ac053061").map(X_),db=rb(hb),pb=new Array(3).concat("ef8a62ffffff999999","ca0020f4a582bababa404040","ca0020f4a582ffffffbababa404040","b2182bef8a62fddbc7e0e0e09999994d4d4d","b2182bef8a62fddbc7ffffffe0e0e09999994d4d4d","b2182bd6604df4a582fddbc7e0e0e0bababa8787874d4d4d","b2182bd6604df4a582fddbc7ffffffe0e0e0bababa8787874d4d4d","67001fb2182bd6604df4a582fddbc7e0e0e0bababa8787874d4d4d1a1a1a","67001fb2182bd6604df4a582fddbc7ffffffe0e0e0bababa8787874d4d4d1a1a1a").map(X_),gb=rb(pb),yb=new Array(3).concat("fc8d59ffffbf91bfdb","d7191cfdae61abd9e92c7bb6","d7191cfdae61ffffbfabd9e92c7bb6","d73027fc8d59fee090e0f3f891bfdb4575b4","d73027fc8d59fee090ffffbfe0f3f891bfdb4575b4","d73027f46d43fdae61fee090e0f3f8abd9e974add14575b4","d73027f46d43fdae61fee090ffffbfe0f3f8abd9e974add14575b4","a50026d73027f46d43fdae61fee090e0f3f8abd9e974add14575b4313695","a50026d73027f46d43fdae61fee090ffffbfe0f3f8abd9e974add14575b4313695").map(X_),vb=rb(yb),_b=new Array(3).concat("fc8d59ffffbf91cf60","d7191cfdae61a6d96a1a9641","d7191cfdae61ffffbfa6d96a1a9641","d73027fc8d59fee08bd9ef8b91cf601a9850","d73027fc8d59fee08bffffbfd9ef8b91cf601a9850","d73027f46d43fdae61fee08bd9ef8ba6d96a66bd631a9850","d73027f46d43fdae61fee08bffffbfd9ef8ba6d96a66bd631a9850","a50026d73027f46d43fdae61fee08bd9ef8ba6d96a66bd631a9850006837","a50026d73027f46d43fdae61fee08bffffbfd9ef8ba6d96a66bd631a9850006837").map(X_),bb=rb(_b),mb=new Array(3).concat("fc8d59ffffbf99d594","d7191cfdae61abdda42b83ba","d7191cfdae61ffffbfabdda42b83ba","d53e4ffc8d59fee08be6f59899d5943288bd","d53e4ffc8d59fee08bffffbfe6f59899d5943288bd","d53e4ff46d43fdae61fee08be6f598abdda466c2a53288bd","d53e4ff46d43fdae61fee08bffffbfe6f598abdda466c2a53288bd","9e0142d53e4ff46d43fdae61fee08be6f598abdda466c2a53288bd5e4fa2","9e0142d53e4ff46d43fdae61fee08bffffbfe6f598abdda466c2a53288bd5e4fa2").map(X_),xb=rb(mb),wb=new Array(3).concat("e5f5f999d8c92ca25f","edf8fbb2e2e266c2a4238b45","edf8fbb2e2e266c2a42ca25f006d2c","edf8fbccece699d8c966c2a42ca25f006d2c","edf8fbccece699d8c966c2a441ae76238b45005824","f7fcfde5f5f9ccece699d8c966c2a441ae76238b45005824","f7fcfde5f5f9ccece699d8c966c2a441ae76238b45006d2c00441b").map(X_),Mb=rb(wb),Tb=new Array(3).concat("e0ecf49ebcda8856a7","edf8fbb3cde38c96c688419d","edf8fbb3cde38c96c68856a7810f7c","edf8fbbfd3e69ebcda8c96c68856a7810f7c","edf8fbbfd3e69ebcda8c96c68c6bb188419d6e016b","f7fcfde0ecf4bfd3e69ebcda8c96c68c6bb188419d6e016b","f7fcfde0ecf4bfd3e69ebcda8c96c68c6bb188419d810f7c4d004b").map(X_),Ab=rb(Tb),Sb=new Array(3).concat("e0f3dba8ddb543a2ca","f0f9e8bae4bc7bccc42b8cbe","f0f9e8bae4bc7bccc443a2ca0868ac","f0f9e8ccebc5a8ddb57bccc443a2ca0868ac","f0f9e8ccebc5a8ddb57bccc44eb3d32b8cbe08589e","f7fcf0e0f3dbccebc5a8ddb57bccc44eb3d32b8cbe08589e","f7fcf0e0f3dbccebc5a8ddb57bccc44eb3d32b8cbe0868ac084081").map(X_),Eb=rb(Sb),Nb=new Array(3).concat("fee8c8fdbb84e34a33","fef0d9fdcc8afc8d59d7301f","fef0d9fdcc8afc8d59e34a33b30000","fef0d9fdd49efdbb84fc8d59e34a33b30000","fef0d9fdd49efdbb84fc8d59ef6548d7301f990000","fff7ecfee8c8fdd49efdbb84fc8d59ef6548d7301f990000","fff7ecfee8c8fdd49efdbb84fc8d59ef6548d7301fb300007f0000").map(X_),kb=rb(Nb),Cb=new Array(3).concat("ece2f0a6bddb1c9099","f6eff7bdc9e167a9cf02818a","f6eff7bdc9e167a9cf1c9099016c59","f6eff7d0d1e6a6bddb67a9cf1c9099016c59","f6eff7d0d1e6a6bddb67a9cf3690c002818a016450","fff7fbece2f0d0d1e6a6bddb67a9cf3690c002818a016450","fff7fbece2f0d0d1e6a6bddb67a9cf3690c002818a016c59014636").map(X_),Pb=rb(Cb),zb=new Array(3).concat("ece7f2a6bddb2b8cbe","f1eef6bdc9e174a9cf0570b0","f1eef6bdc9e174a9cf2b8cbe045a8d","f1eef6d0d1e6a6bddb74a9cf2b8cbe045a8d","f1eef6d0d1e6a6bddb74a9cf3690c00570b0034e7b","fff7fbece7f2d0d1e6a6bddb74a9cf3690c00570b0034e7b","fff7fbece7f2d0d1e6a6bddb74a9cf3690c00570b0045a8d023858").map(X_),$b=rb(zb),Db=new Array(3).concat("e7e1efc994c7dd1c77","f1eef6d7b5d8df65b0ce1256","f1eef6d7b5d8df65b0dd1c77980043","f1eef6d4b9dac994c7df65b0dd1c77980043","f1eef6d4b9dac994c7df65b0e7298ace125691003f","f7f4f9e7e1efd4b9dac994c7df65b0e7298ace125691003f","f7f4f9e7e1efd4b9dac994c7df65b0e7298ace125698004367001f").map(X_),Rb=rb(Db),Fb=new Array(3).concat("fde0ddfa9fb5c51b8a","feebe2fbb4b9f768a1ae017e","feebe2fbb4b9f768a1c51b8a7a0177","feebe2fcc5c0fa9fb5f768a1c51b8a7a0177","feebe2fcc5c0fa9fb5f768a1dd3497ae017e7a0177","fff7f3fde0ddfcc5c0fa9fb5f768a1dd3497ae017e7a0177","fff7f3fde0ddfcc5c0fa9fb5f768a1dd3497ae017e7a017749006a").map(X_),qb=rb(Fb),Ub=new Array(3).concat("edf8b17fcdbb2c7fb8","ffffcca1dab441b6c4225ea8","ffffcca1dab441b6c42c7fb8253494","ffffccc7e9b47fcdbb41b6c42c7fb8253494","ffffccc7e9b47fcdbb41b6c41d91c0225ea80c2c84","ffffd9edf8b1c7e9b47fcdbb41b6c41d91c0225ea80c2c84","ffffd9edf8b1c7e9b47fcdbb41b6c41d91c0225ea8253494081d58").map(X_),Ib=rb(Ub),Ob=new Array(3).concat("f7fcb9addd8e31a354","ffffccc2e69978c679238443","ffffccc2e69978c67931a354006837","ffffccd9f0a3addd8e78c67931a354006837","ffffccd9f0a3addd8e78c67941ab5d238443005a32","ffffe5f7fcb9d9f0a3addd8e78c67941ab5d238443005a32","ffffe5f7fcb9d9f0a3addd8e78c67941ab5d238443006837004529").map(X_),Bb=rb(Ob),Yb=new Array(3).concat("fff7bcfec44fd95f0e","ffffd4fed98efe9929cc4c02","ffffd4fed98efe9929d95f0e993404","ffffd4fee391fec44ffe9929d95f0e993404","ffffd4fee391fec44ffe9929ec7014cc4c028c2d04","ffffe5fff7bcfee391fec44ffe9929ec7014cc4c028c2d04","ffffe5fff7bcfee391fec44ffe9929ec7014cc4c02993404662506").map(X_),Lb=rb(Yb),jb=new Array(3).concat("ffeda0feb24cf03b20","ffffb2fecc5cfd8d3ce31a1c","ffffb2fecc5cfd8d3cf03b20bd0026","ffffb2fed976feb24cfd8d3cf03b20bd0026","ffffb2fed976feb24cfd8d3cfc4e2ae31a1cb10026","ffffccffeda0fed976feb24cfd8d3cfc4e2ae31a1cb10026","ffffccffeda0fed976feb24cfd8d3cfc4e2ae31a1cbd0026800026").map(X_),Hb=rb(jb),Xb=new Array(3).concat("deebf79ecae13182bd","eff3ffbdd7e76baed62171b5","eff3ffbdd7e76baed63182bd08519c","eff3ffc6dbef9ecae16baed63182bd08519c","eff3ffc6dbef9ecae16baed64292c62171b5084594","f7fbffdeebf7c6dbef9ecae16baed64292c62171b5084594","f7fbffdeebf7c6dbef9ecae16baed64292c62171b508519c08306b").map(X_),Gb=rb(Xb),Vb=new Array(3).concat("e5f5e0a1d99b31a354","edf8e9bae4b374c476238b45","edf8e9bae4b374c47631a354006d2c","edf8e9c7e9c0a1d99b74c47631a354006d2c","edf8e9c7e9c0a1d99b74c47641ab5d238b45005a32","f7fcf5e5f5e0c7e9c0a1d99b74c47641ab5d238b45005a32","f7fcf5e5f5e0c7e9c0a1d99b74c47641ab5d238b45006d2c00441b").map(X_),Wb=rb(Vb),Zb=new Array(3).concat("f0f0f0bdbdbd636363","f7f7f7cccccc969696525252","f7f7f7cccccc969696636363252525","f7f7f7d9d9d9bdbdbd969696636363252525","f7f7f7d9d9d9bdbdbd969696737373525252252525","fffffff0f0f0d9d9d9bdbdbd969696737373525252252525","fffffff0f0f0d9d9d9bdbdbd969696737373525252252525000000").map(X_),Kb=rb(Zb),Qb=new Array(3).concat("efedf5bcbddc756bb1","f2f0f7cbc9e29e9ac86a51a3","f2f0f7cbc9e29e9ac8756bb154278f","f2f0f7dadaebbcbddc9e9ac8756bb154278f","f2f0f7dadaebbcbddc9e9ac8807dba6a51a34a1486","fcfbfdefedf5dadaebbcbddc9e9ac8807dba6a51a34a1486","fcfbfdefedf5dadaebbcbddc9e9ac8807dba6a51a354278f3f007d").map(X_),Jb=rb(Qb),tm=new Array(3).concat("fee0d2fc9272de2d26","fee5d9fcae91fb6a4acb181d","fee5d9fcae91fb6a4ade2d26a50f15","fee5d9fcbba1fc9272fb6a4ade2d26a50f15","fee5d9fcbba1fc9272fb6a4aef3b2ccb181d99000d","fff5f0fee0d2fcbba1fc9272fb6a4aef3b2ccb181d99000d","fff5f0fee0d2fcbba1fc9272fb6a4aef3b2ccb181da50f1567000d").map(X_),nm=rb(tm),em=new Array(3).concat("fee6cefdae6be6550d","feeddefdbe85fd8d3cd94701","feeddefdbe85fd8d3ce6550da63603","feeddefdd0a2fdae6bfd8d3ce6550da63603","feeddefdd0a2fdae6bfd8d3cf16913d948018c2d04","fff5ebfee6cefdd0a2fdae6bfd8d3cf16913d948018c2d04","fff5ebfee6cefdd0a2fdae6bfd8d3cf16913d94801a636037f2704").map(X_),rm=rb(em);var im=di(Ar(300,.5,0),Ar(-240,.5,1)),om=di(Ar(-100,.75,.35),Ar(80,1.5,.8)),am=di(Ar(260,.75,.35),Ar(80,1.5,.8)),um=Ar();var cm=qe(),fm=Math.PI/3,sm=2*Math.PI/3;function lm(t){var n=t.length;return function(e){return t[Math.max(0,Math.min(n-1,Math.floor(e*n)))]}}var hm=lm(X_("44015444025645045745055946075a46085c460a5d460b5e470d60470e6147106347116447136548146748166848176948186a481a6c481b6d481c6e481d6f481f70482071482173482374482475482576482677482878482979472a7a472c7a472d7b472e7c472f7d46307e46327e46337f463480453581453781453882443983443a83443b84433d84433e85423f854240864241864142874144874045884046883f47883f48893e49893e4a893e4c8a3d4d8a3d4e8a3c4f8a3c508b3b518b3b528b3a538b3a548c39558c39568c38588c38598c375a8c375b8d365c8d365d8d355e8d355f8d34608d34618d33628d33638d32648e32658e31668e31678e31688e30698e306a8e2f6b8e2f6c8e2e6d8e2e6e8e2e6f8e2d708e2d718e2c718e2c728e2c738e2b748e2b758e2a768e2a778e2a788e29798e297a8e297b8e287c8e287d8e277e8e277f8e27808e26818e26828e26828e25838e25848e25858e24868e24878e23888e23898e238a8d228b8d228c8d228d8d218e8d218f8d21908d21918c20928c20928c20938c1f948c1f958b1f968b1f978b1f988b1f998a1f9a8a1e9b8a1e9c891e9d891f9e891f9f881fa0881fa1881fa1871fa28720a38620a48621a58521a68522a78522a88423a98324aa8325ab8225ac8226ad8127ad8128ae8029af7f2ab07f2cb17e2db27d2eb37c2fb47c31b57b32b67a34b67935b77937b87838b9773aba763bbb753dbc743fbc7340bd7242be7144bf7046c06f48c16e4ac16d4cc26c4ec36b50c46a52c56954c56856c66758c7655ac8645cc8635ec96260ca6063cb5f65cb5e67cc5c69cd5b6ccd5a6ece5870cf5773d05675d05477d1537ad1517cd2507fd34e81d34d84d44b86d54989d5488bd6468ed64590d74393d74195d84098d83e9bd93c9dd93ba0da39a2da37a5db36a8db34aadc32addc30b0dd2fb2dd2db5de2bb8de29bade28bddf26c0df25c2df23c5e021c8e020cae11fcde11dd0e11cd2e21bd5e21ad8e219dae319dde318dfe318e2e418e5e419e7e419eae51aece51befe51cf1e51df4e61ef6e620f8e621fbe723fde725")),dm=lm(X_("00000401000501010601010802010902020b02020d03030f03031204041405041606051806051a07061c08071e0907200a08220b09240c09260d0a290e0b2b100b2d110c2f120d31130d34140e36150e38160f3b180f3d19103f1a10421c10441d11471e114920114b21114e22115024125325125527125829115a2a115c2c115f2d11612f116331116533106734106936106b38106c390f6e3b0f703d0f713f0f72400f74420f75440f764510774710784910784a10794c117a4e117b4f127b51127c52137c54137d56147d57157e59157e5a167e5c167f5d177f5f187f601880621980641a80651a80671b80681c816a1c816b1d816d1d816e1e81701f81721f817320817521817621817822817922827b23827c23827e24828025828125818326818426818627818827818928818b29818c29818e2a81902a81912b81932b80942c80962c80982d80992d809b2e7f9c2e7f9e2f7fa02f7fa1307ea3307ea5317ea6317da8327daa337dab337cad347cae347bb0357bb2357bb3367ab5367ab73779b83779ba3878bc3978bd3977bf3a77c03a76c23b75c43c75c53c74c73d73c83e73ca3e72cc3f71cd4071cf4070d0416fd2426fd3436ed5446dd6456cd8456cd9466bdb476adc4869de4968df4a68e04c67e24d66e34e65e44f64e55064e75263e85362e95462ea5661eb5760ec5860ed5a5fee5b5eef5d5ef05f5ef1605df2625df2645cf3655cf4675cf4695cf56b5cf66c5cf66e5cf7705cf7725cf8745cf8765cf9785df9795df97b5dfa7d5efa7f5efa815ffb835ffb8560fb8761fc8961fc8a62fc8c63fc8e64fc9065fd9266fd9467fd9668fd9869fd9a6afd9b6bfe9d6cfe9f6dfea16efea36ffea571fea772fea973feaa74feac76feae77feb078feb27afeb47bfeb67cfeb77efeb97ffebb81febd82febf84fec185fec287fec488fec68afec88cfeca8dfecc8ffecd90fecf92fed194fed395fed597fed799fed89afdda9cfddc9efddea0fde0a1fde2a3fde3a5fde5a7fde7a9fde9aafdebacfcecaefceeb0fcf0b2fcf2b4fcf4b6fcf6b8fcf7b9fcf9bbfcfbbdfcfdbf")),pm=lm(X_("00000401000501010601010802010a02020c02020e03021004031204031405041706041907051b08051d09061f0a07220b07240c08260d08290e092b10092d110a30120a32140b34150b37160b39180c3c190c3e1b0c411c0c431e0c451f0c48210c4a230c4c240c4f260c51280b53290b552b0b572d0b592f0a5b310a5c320a5e340a5f3609613809623909633b09643d09653e0966400a67420a68440a68450a69470b6a490b6a4a0c6b4c0c6b4d0d6c4f0d6c510e6c520e6d540f6d550f6d57106e59106e5a116e5c126e5d126e5f136e61136e62146e64156e65156e67166e69166e6a176e6c186e6d186e6f196e71196e721a6e741a6e751b6e771c6d781c6d7a1d6d7c1d6d7d1e6d7f1e6c801f6c82206c84206b85216b87216b88226a8a226a8c23698d23698f24699025689225689326679526679727669827669a28659b29649d29649f2a63a02a63a22b62a32c61a52c60a62d60a82e5fa92e5eab2f5ead305dae305cb0315bb1325ab3325ab43359b63458b73557b93556ba3655bc3754bd3853bf3952c03a51c13a50c33b4fc43c4ec63d4dc73e4cc83f4bca404acb4149cc4248ce4347cf4446d04545d24644d34743d44842d54a41d74b3fd84c3ed94d3dda4e3cdb503bdd513ade5238df5337e05536e15635e25734e35933e45a31e55c30e65d2fe75e2ee8602de9612bea632aeb6429eb6628ec6726ed6925ee6a24ef6c23ef6e21f06f20f1711ff1731df2741cf3761bf37819f47918f57b17f57d15f67e14f68013f78212f78410f8850ff8870ef8890cf98b0bf98c0af98e09fa9008fa9207fa9407fb9606fb9706fb9906fb9b06fb9d07fc9f07fca108fca309fca50afca60cfca80dfcaa0ffcac11fcae12fcb014fcb216fcb418fbb61afbb81dfbba1ffbbc21fbbe23fac026fac228fac42afac62df9c72ff9c932f9cb35f8cd37f8cf3af7d13df7d340f6d543f6d746f5d949f5db4cf4dd4ff4df53f4e156f3e35af3e55df2e661f2e865f2ea69f1ec6df1ed71f1ef75f1f179f2f27df2f482f3f586f3f68af4f88ef5f992f6fa96f8fb9af9fc9dfafda1fcffa4")),gm=lm(X_("0d088710078813078916078a19068c1b068d1d068e20068f2206902406912605912805922a05932c05942e05952f059631059733059735049837049938049a3a049a3c049b3e049c3f049c41049d43039e44039e46039f48039f4903a04b03a14c02a14e02a25002a25102a35302a35502a45601a45801a45901a55b01a55c01a65e01a66001a66100a76300a76400a76600a76700a86900a86a00a86c00a86e00a86f00a87100a87201a87401a87501a87701a87801a87a02a87b02a87d03a87e03a88004a88104a78305a78405a78606a68707a68808a68a09a58b0aa58d0ba58e0ca48f0da4910ea3920fa39410a29511a19613a19814a099159f9a169f9c179e9d189d9e199da01a9ca11b9ba21d9aa31e9aa51f99a62098a72197a82296aa2395ab2494ac2694ad2793ae2892b02991b12a90b22b8fb32c8eb42e8db52f8cb6308bb7318ab83289ba3388bb3488bc3587bd3786be3885bf3984c03a83c13b82c23c81c33d80c43e7fc5407ec6417dc7427cc8437bc9447aca457acb4679cc4778cc4977cd4a76ce4b75cf4c74d04d73d14e72d24f71d35171d45270d5536fd5546ed6556dd7566cd8576bd9586ada5a6ada5b69db5c68dc5d67dd5e66de5f65de6164df6263e06363e16462e26561e26660e3685fe4695ee56a5de56b5de66c5ce76e5be76f5ae87059e97158e97257ea7457eb7556eb7655ec7754ed7953ed7a52ee7b51ef7c51ef7e50f07f4ff0804ef1814df1834cf2844bf3854bf3874af48849f48948f58b47f58c46f68d45f68f44f79044f79143f79342f89441f89540f9973ff9983ef99a3efa9b3dfa9c3cfa9e3bfb9f3afba139fba238fca338fca537fca636fca835fca934fdab33fdac33fdae32fdaf31fdb130fdb22ffdb42ffdb52efeb72dfeb82cfeba2cfebb2bfebd2afebe2afec029fdc229fdc328fdc527fdc627fdc827fdca26fdcb26fccd25fcce25fcd025fcd225fbd324fbd524fbd724fad824fada24f9dc24f9dd25f8df25f8e125f7e225f7e425f6e626f6e826f5e926f5eb27f4ed27f3ee27f3f027f2f227f1f426f1f525f0f724f0f921"));function ym(t){return function(){return t}}const vm=Math.abs,_m=Math.atan2,bm=Math.cos,mm=Math.max,xm=Math.min,wm=Math.sin,Mm=Math.sqrt,Tm=1e-12,Am=Math.PI,Sm=Am/2,Em=2*Am;function Nm(t){return t>=1?Sm:t<=-1?-Sm:Math.asin(t)}function km(t){let n=3;return t.digits=function(e){if(!arguments.length)return n;if(null==e)n=null;else{const t=Math.floor(e);if(!(t>=0))throw new RangeError(`invalid digits: ${e}`);n=t}return t},()=>new Ia(n)}function Cm(t){return t.innerRadius}function Pm(t){return t.outerRadius}function zm(t){return t.startAngle}function $m(t){return t.endAngle}function Dm(t){return t&&t.padAngle}function Rm(t,n,e,r,i,o,a){var u=t-e,c=n-r,f=(a?o:-o)/Mm(u*u+c*c),s=f*c,l=-f*u,h=t+s,d=n+l,p=e+s,g=r+l,y=(h+p)/2,v=(d+g)/2,_=p-h,b=g-d,m=_*_+b*b,x=i-o,w=h*g-p*d,M=(b<0?-1:1)*Mm(mm(0,x*x*m-w*w)),T=(w*b-_*M)/m,A=(-w*_-b*M)/m,S=(w*b+_*M)/m,E=(-w*_+b*M)/m,N=T-y,k=A-v,C=S-y,P=E-v;return N*N+k*k>C*C+P*P&&(T=S,A=E),{cx:T,cy:A,x01:-s,y01:-l,x11:T*(i/x-1),y11:A*(i/x-1)}}var Fm=Array.prototype.slice;function qm(t){return"object"==typeof t&&"length"in t?t:Array.from(t)}function Um(t){this._context=t}function Im(t){return new Um(t)}function Om(t){return t[0]}function Bm(t){return t[1]}function Ym(t,n){var e=ym(!0),r=null,i=Im,o=null,a=km(u);function u(u){var c,f,s,l=(u=qm(u)).length,h=!1;for(null==r&&(o=i(s=a())),c=0;c<=l;++c)!(c<l&&e(f=u[c],c,u))===h&&((h=!h)?o.lineStart():o.lineEnd()),h&&o.point(+t(f,c,u),+n(f,c,u));if(s)return o=null,s+""||null}return t="function"==typeof t?t:void 0===t?Om:ym(t),n="function"==typeof n?n:void 0===n?Bm:ym(n),u.x=function(n){return arguments.length?(t="function"==typeof n?n:ym(+n),u):t},u.y=function(t){return arguments.length?(n="function"==typeof t?t:ym(+t),u):n},u.defined=function(t){return arguments.length?(e="function"==typeof t?t:ym(!!t),u):e},u.curve=function(t){return arguments.length?(i=t,null!=r&&(o=i(r)),u):i},u.context=function(t){return arguments.length?(null==t?r=o=null:o=i(r=t),u):r},u}function Lm(t,n,e){var r=null,i=ym(!0),o=null,a=Im,u=null,c=km(f);function f(f){var s,l,h,d,p,g=(f=qm(f)).length,y=!1,v=new Array(g),_=new Array(g);for(null==o&&(u=a(p=c())),s=0;s<=g;++s){if(!(s<g&&i(d=f[s],s,f))===y)if(y=!y)l=s,u.areaStart(),u.lineStart();else{for(u.lineEnd(),u.lineStart(),h=s-1;h>=l;--h)u.point(v[h],_[h]);u.lineEnd(),u.areaEnd()}y&&(v[s]=+t(d,s,f),_[s]=+n(d,s,f),u.point(r?+r(d,s,f):v[s],e?+e(d,s,f):_[s]))}if(p)return u=null,p+""||null}function s(){return Ym().defined(i).curve(a).context(o)}return t="function"==typeof t?t:void 0===t?Om:ym(+t),n="function"==typeof n?n:ym(void 0===n?0:+n),e="function"==typeof e?e:void 0===e?Bm:ym(+e),f.x=function(n){return arguments.length?(t="function"==typeof n?n:ym(+n),r=null,f):t},f.x0=function(n){return arguments.length?(t="function"==typeof n?n:ym(+n),f):t},f.x1=function(t){return arguments.length?(r=null==t?null:"function"==typeof t?t:ym(+t),f):r},f.y=function(t){return arguments.length?(n="function"==typeof t?t:ym(+t),e=null,f):n},f.y0=function(t){return arguments.length?(n="function"==typeof t?t:ym(+t),f):n},f.y1=function(t){return arguments.length?(e=null==t?null:"function"==typeof t?t:ym(+t),f):e},f.lineX0=f.lineY0=function(){return s().x(t).y(n)},f.lineY1=function(){return s().x(t).y(e)},f.lineX1=function(){return s().x(r).y(n)},f.defined=function(t){return arguments.length?(i="function"==typeof t?t:ym(!!t),f):i},f.curve=function(t){return arguments.length?(a=t,null!=o&&(u=a(o)),f):a},f.context=function(t){return arguments.length?(null==t?o=u=null:u=a(o=t),f):o},f}function jm(t,n){return n<t?-1:n>t?1:n>=t?0:NaN}function Hm(t){return t}Um.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,n){switch(t=+t,n=+n,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,n):this._context.moveTo(t,n);break;case 1:this._point=2;default:this._context.lineTo(t,n)}}};var Xm=Vm(Im);function Gm(t){this._curve=t}function Vm(t){function n(n){return new Gm(t(n))}return n._curve=t,n}function Wm(t){var n=t.curve;return t.angle=t.x,delete t.x,t.radius=t.y,delete t.y,t.curve=function(t){return arguments.length?n(Vm(t)):n()._curve},t}function Zm(){return Wm(Ym().curve(Xm))}function Km(){var t=Lm().curve(Xm),n=t.curve,e=t.lineX0,r=t.lineX1,i=t.lineY0,o=t.lineY1;return t.angle=t.x,delete t.x,t.startAngle=t.x0,delete t.x0,t.endAngle=t.x1,delete t.x1,t.radius=t.y,delete t.y,t.innerRadius=t.y0,delete t.y0,t.outerRadius=t.y1,delete t.y1,t.lineStartAngle=function(){return Wm(e())},delete t.lineX0,t.lineEndAngle=function(){return Wm(r())},delete t.lineX1,t.lineInnerRadius=function(){return Wm(i())},delete t.lineY0,t.lineOuterRadius=function(){return Wm(o())},delete t.lineY1,t.curve=function(t){return arguments.length?n(Vm(t)):n()._curve},t}function Qm(t,n){return[(n=+n)*Math.cos(t-=Math.PI/2),n*Math.sin(t)]}Gm.prototype={areaStart:function(){this._curve.areaStart()},areaEnd:function(){this._curve.areaEnd()},lineStart:function(){this._curve.lineStart()},lineEnd:function(){this._curve.lineEnd()},point:function(t,n){this._curve.point(n*Math.sin(t),n*-Math.cos(t))}};class Jm{constructor(t,n){this._context=t,this._x=n}areaStart(){this._line=0}areaEnd(){this._line=NaN}lineStart(){this._point=0}lineEnd(){(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line}point(t,n){switch(t=+t,n=+n,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,n):this._context.moveTo(t,n);break;case 1:this._point=2;default:this._x?this._context.bezierCurveTo(this._x0=(this._x0+t)/2,this._y0,this._x0,n,t,n):this._context.bezierCurveTo(this._x0,this._y0=(this._y0+n)/2,t,this._y0,t,n)}this._x0=t,this._y0=n}}class tx{constructor(t){this._context=t}lineStart(){this._point=0}lineEnd(){}point(t,n){if(t=+t,n=+n,0===this._point)this._point=1;else{const e=Qm(this._x0,this._y0),r=Qm(this._x0,this._y0=(this._y0+n)/2),i=Qm(t,this._y0),o=Qm(t,n);this._context.moveTo(...e),this._context.bezierCurveTo(...r,...i,...o)}this._x0=t,this._y0=n}}function nx(t){return new Jm(t,!0)}function ex(t){return new Jm(t,!1)}function rx(t){return new tx(t)}function ix(t){return t.source}function ox(t){return t.target}function ax(t){let n=ix,e=ox,r=Om,i=Bm,o=null,a=null,u=km(c);function c(){let c;const f=Fm.call(arguments),s=n.apply(this,f),l=e.apply(this,f);if(null==o&&(a=t(c=u())),a.lineStart(),f[0]=s,a.point(+r.apply(this,f),+i.apply(this,f)),f[0]=l,a.point(+r.apply(this,f),+i.apply(this,f)),a.lineEnd(),c)return a=null,c+""||null}return c.source=function(t){return arguments.length?(n=t,c):n},c.target=function(t){return arguments.length?(e=t,c):e},c.x=function(t){return arguments.length?(r="function"==typeof t?t:ym(+t),c):r},c.y=function(t){return arguments.length?(i="function"==typeof t?t:ym(+t),c):i},c.context=function(n){return arguments.length?(null==n?o=a=null:a=t(o=n),c):o},c}const ux=Mm(3);var cx={draw(t,n){const e=.59436*Mm(n+xm(n/28,.75)),r=e/2,i=r*ux;t.moveTo(0,e),t.lineTo(0,-e),t.moveTo(-i,-r),t.lineTo(i,r),t.moveTo(-i,r),t.lineTo(i,-r)}},fx={draw(t,n){const e=Mm(n/Am);t.moveTo(e,0),t.arc(0,0,e,0,Em)}},sx={draw(t,n){const e=Mm(n/5)/2;t.moveTo(-3*e,-e),t.lineTo(-e,-e),t.lineTo(-e,-3*e),t.lineTo(e,-3*e),t.lineTo(e,-e),t.lineTo(3*e,-e),t.lineTo(3*e,e),t.lineTo(e,e),t.lineTo(e,3*e),t.lineTo(-e,3*e),t.lineTo(-e,e),t.lineTo(-3*e,e),t.closePath()}};const lx=Mm(1/3),hx=2*lx;var dx={draw(t,n){const e=Mm(n/hx),r=e*lx;t.moveTo(0,-e),t.lineTo(r,0),t.lineTo(0,e),t.lineTo(-r,0),t.closePath()}},px={draw(t,n){const e=.62625*Mm(n);t.moveTo(0,-e),t.lineTo(e,0),t.lineTo(0,e),t.lineTo(-e,0),t.closePath()}},gx={draw(t,n){const e=.87559*Mm(n-xm(n/7,2));t.moveTo(-e,0),t.lineTo(e,0),t.moveTo(0,e),t.lineTo(0,-e)}},yx={draw(t,n){const e=Mm(n),r=-e/2;t.rect(r,r,e,e)}},vx={draw(t,n){const e=.4431*Mm(n);t.moveTo(e,e),t.lineTo(e,-e),t.lineTo(-e,-e),t.lineTo(-e,e),t.closePath()}};const _x=wm(Am/10)/wm(7*Am/10),bx=wm(Em/10)*_x,mx=-bm(Em/10)*_x;var xx={draw(t,n){const e=Mm(.8908130915292852*n),r=bx*e,i=mx*e;t.moveTo(0,-e),t.lineTo(r,i);for(let n=1;n<5;++n){const o=Em*n/5,a=bm(o),u=wm(o);t.lineTo(u*e,-a*e),t.lineTo(a*r-u*i,u*r+a*i)}t.closePath()}};const wx=Mm(3);var Mx={draw(t,n){const e=-Mm(n/(3*wx));t.moveTo(0,2*e),t.lineTo(-wx*e,-e),t.lineTo(wx*e,-e),t.closePath()}};const Tx=Mm(3);var Ax={draw(t,n){const e=.6824*Mm(n),r=e/2,i=e*Tx/2;t.moveTo(0,-e),t.lineTo(i,r),t.lineTo(-i,r),t.closePath()}};const Sx=-.5,Ex=Mm(3)/2,Nx=1/Mm(12),kx=3*(Nx/2+1);var Cx={draw(t,n){const e=Mm(n/kx),r=e/2,i=e*Nx,o=r,a=e*Nx+e,u=-o,c=a;t.moveTo(r,i),t.lineTo(o,a),t.lineTo(u,c),t.lineTo(Sx*r-Ex*i,Ex*r+Sx*i),t.lineTo(Sx*o-Ex*a,Ex*o+Sx*a),t.lineTo(Sx*u-Ex*c,Ex*u+Sx*c),t.lineTo(Sx*r+Ex*i,Sx*i-Ex*r),t.lineTo(Sx*o+Ex*a,Sx*a-Ex*o),t.lineTo(Sx*u+Ex*c,Sx*c-Ex*u),t.closePath()}},Px={draw(t,n){const e=.6189*Mm(n-xm(n/6,1.7));t.moveTo(-e,-e),t.lineTo(e,e),t.moveTo(-e,e),t.lineTo(e,-e)}};const zx=[fx,sx,dx,yx,xx,Mx,Cx],$x=[fx,gx,Px,Ax,cx,vx,px];function Dx(){}function Rx(t,n,e){t._context.bezierCurveTo((2*t._x0+t._x1)/3,(2*t._y0+t._y1)/3,(t._x0+2*t._x1)/3,(t._y0+2*t._y1)/3,(t._x0+4*t._x1+n)/6,(t._y0+4*t._y1+e)/6)}function Fx(t){this._context=t}function qx(t){this._context=t}function Ux(t){this._context=t}function Ix(t,n){this._basis=new Fx(t),this._beta=n}Fx.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){switch(this._point){case 3:Rx(this,this._x1,this._y1);case 2:this._context.lineTo(this._x1,this._y1)}(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,n){switch(t=+t,n=+n,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,n):this._context.moveTo(t,n);break;case 1:this._point=2;break;case 2:this._point=3,this._context.lineTo((5*this._x0+this._x1)/6,(5*this._y0+this._y1)/6);default:Rx(this,t,n)}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=n}},qx.prototype={areaStart:Dx,areaEnd:Dx,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._y0=this._y1=this._y2=this._y3=this._y4=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:this._context.moveTo(this._x2,this._y2),this._context.closePath();break;case 2:this._context.moveTo((this._x2+2*this._x3)/3,(this._y2+2*this._y3)/3),this._context.lineTo((this._x3+2*this._x2)/3,(this._y3+2*this._y2)/3),this._context.closePath();break;case 3:this.point(this._x2,this._y2),this.point(this._x3,this._y3),this.point(this._x4,this._y4)}},point:function(t,n){switch(t=+t,n=+n,this._point){case 0:this._point=1,this._x2=t,this._y2=n;break;case 1:this._point=2,this._x3=t,this._y3=n;break;case 2:this._point=3,this._x4=t,this._y4=n,this._context.moveTo((this._x0+4*this._x1+t)/6,(this._y0+4*this._y1+n)/6);break;default:Rx(this,t,n)}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=n}},Ux.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){(this._line||0!==this._line&&3===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,n){switch(t=+t,n=+n,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3;var e=(this._x0+4*this._x1+t)/6,r=(this._y0+4*this._y1+n)/6;this._line?this._context.lineTo(e,r):this._context.moveTo(e,r);break;case 3:this._point=4;default:Rx(this,t,n)}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=n}},Ix.prototype={lineStart:function(){this._x=[],this._y=[],this._basis.lineStart()},lineEnd:function(){var t=this._x,n=this._y,e=t.length-1;if(e>0)for(var r,i=t[0],o=n[0],a=t[e]-i,u=n[e]-o,c=-1;++c<=e;)r=c/e,this._basis.point(this._beta*t[c]+(1-this._beta)*(i+r*a),this._beta*n[c]+(1-this._beta)*(o+r*u));this._x=this._y=null,this._basis.lineEnd()},point:function(t,n){this._x.push(+t),this._y.push(+n)}};var Ox=function t(n){function e(t){return 1===n?new Fx(t):new Ix(t,n)}return e.beta=function(n){return t(+n)},e}(.85);function Bx(t,n,e){t._context.bezierCurveTo(t._x1+t._k*(t._x2-t._x0),t._y1+t._k*(t._y2-t._y0),t._x2+t._k*(t._x1-n),t._y2+t._k*(t._y1-e),t._x2,t._y2)}function Yx(t,n){this._context=t,this._k=(1-n)/6}Yx.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x2,this._y2);break;case 3:Bx(this,this._x1,this._y1)}(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,n){switch(t=+t,n=+n,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,n):this._context.moveTo(t,n);break;case 1:this._point=2,this._x1=t,this._y1=n;break;case 2:this._point=3;default:Bx(this,t,n)}this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=n}};var Lx=function t(n){function e(t){return new Yx(t,n)}return e.tension=function(n){return t(+n)},e}(0);function jx(t,n){this._context=t,this._k=(1-n)/6}jx.prototype={areaStart:Dx,areaEnd:Dx,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._x5=this._y0=this._y1=this._y2=this._y3=this._y4=this._y5=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:this._context.moveTo(this._x3,this._y3),this._context.closePath();break;case 2:this._context.lineTo(this._x3,this._y3),this._context.closePath();break;case 3:this.point(this._x3,this._y3),this.point(this._x4,this._y4),this.point(this._x5,this._y5)}},point:function(t,n){switch(t=+t,n=+n,this._point){case 0:this._point=1,this._x3=t,this._y3=n;break;case 1:this._point=2,this._context.moveTo(this._x4=t,this._y4=n);break;case 2:this._point=3,this._x5=t,this._y5=n;break;default:Bx(this,t,n)}this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=n}};var Hx=function t(n){function e(t){return new jx(t,n)}return e.tension=function(n){return t(+n)},e}(0);function Xx(t,n){this._context=t,this._k=(1-n)/6}Xx.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._point=0},lineEnd:function(){(this._line||0!==this._line&&3===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,n){switch(t=+t,n=+n,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3,this._line?this._context.lineTo(this._x2,this._y2):this._context.moveTo(this._x2,this._y2);break;case 3:this._point=4;default:Bx(this,t,n)}this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=n}};var Gx=function t(n){function e(t){return new Xx(t,n)}return e.tension=function(n){return t(+n)},e}(0);function Vx(t,n,e){var r=t._x1,i=t._y1,o=t._x2,a=t._y2;if(t._l01_a>Tm){var u=2*t._l01_2a+3*t._l01_a*t._l12_a+t._l12_2a,c=3*t._l01_a*(t._l01_a+t._l12_a);r=(r*u-t._x0*t._l12_2a+t._x2*t._l01_2a)/c,i=(i*u-t._y0*t._l12_2a+t._y2*t._l01_2a)/c}if(t._l23_a>Tm){var f=2*t._l23_2a+3*t._l23_a*t._l12_a+t._l12_2a,s=3*t._l23_a*(t._l23_a+t._l12_a);o=(o*f+t._x1*t._l23_2a-n*t._l12_2a)/s,a=(a*f+t._y1*t._l23_2a-e*t._l12_2a)/s}t._context.bezierCurveTo(r,i,o,a,t._x2,t._y2)}function Wx(t,n){this._context=t,this._alpha=n}Wx.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x2,this._y2);break;case 3:this.point(this._x2,this._y2)}(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,n){if(t=+t,n=+n,this._point){var e=this._x2-t,r=this._y2-n;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(e*e+r*r,this._alpha))}switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(t,n):this._context.moveTo(t,n);break;case 1:this._point=2;break;case 2:this._point=3;default:Vx(this,t,n)}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=n}};var Zx=function t(n){function e(t){return n?new Wx(t,n):new Yx(t,0)}return e.alpha=function(n){return t(+n)},e}(.5);function Kx(t,n){this._context=t,this._alpha=n}Kx.prototype={areaStart:Dx,areaEnd:Dx,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._x5=this._y0=this._y1=this._y2=this._y3=this._y4=this._y5=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){switch(this._point){case 1:this._context.moveTo(this._x3,this._y3),this._context.closePath();break;case 2:this._context.lineTo(this._x3,this._y3),this._context.closePath();break;case 3:this.point(this._x3,this._y3),this.point(this._x4,this._y4),this.point(this._x5,this._y5)}},point:function(t,n){if(t=+t,n=+n,this._point){var e=this._x2-t,r=this._y2-n;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(e*e+r*r,this._alpha))}switch(this._point){case 0:this._point=1,this._x3=t,this._y3=n;break;case 1:this._point=2,this._context.moveTo(this._x4=t,this._y4=n);break;case 2:this._point=3,this._x5=t,this._y5=n;break;default:Vx(this,t,n)}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=n}};var Qx=function t(n){function e(t){return n?new Kx(t,n):new jx(t,0)}return e.alpha=function(n){return t(+n)},e}(.5);function Jx(t,n){this._context=t,this._alpha=n}Jx.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){(this._line||0!==this._line&&3===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,n){if(t=+t,n=+n,this._point){var e=this._x2-t,r=this._y2-n;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(e*e+r*r,this._alpha))}switch(this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3,this._line?this._context.lineTo(this._x2,this._y2):this._context.moveTo(this._x2,this._y2);break;case 3:this._point=4;default:Vx(this,t,n)}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=n}};var tw=function t(n){function e(t){return n?new Jx(t,n):new Xx(t,0)}return e.alpha=function(n){return t(+n)},e}(.5);function nw(t){this._context=t}function ew(t){return t<0?-1:1}function rw(t,n,e){var r=t._x1-t._x0,i=n-t._x1,o=(t._y1-t._y0)/(r||i<0&&-0),a=(e-t._y1)/(i||r<0&&-0),u=(o*i+a*r)/(r+i);return(ew(o)+ew(a))*Math.min(Math.abs(o),Math.abs(a),.5*Math.abs(u))||0}function iw(t,n){var e=t._x1-t._x0;return e?(3*(t._y1-t._y0)/e-n)/2:n}function ow(t,n,e){var r=t._x0,i=t._y0,o=t._x1,a=t._y1,u=(o-r)/3;t._context.bezierCurveTo(r+u,i+u*n,o-u,a-u*e,o,a)}function aw(t){this._context=t}function uw(t){this._context=new cw(t)}function cw(t){this._context=t}function fw(t){this._context=t}function sw(t){var n,e,r=t.length-1,i=new Array(r),o=new Array(r),a=new Array(r);for(i[0]=0,o[0]=2,a[0]=t[0]+2*t[1],n=1;n<r-1;++n)i[n]=1,o[n]=4,a[n]=4*t[n]+2*t[n+1];for(i[r-1]=2,o[r-1]=7,a[r-1]=8*t[r-1]+t[r],n=1;n<r;++n)e=i[n]/o[n-1],o[n]-=e,a[n]-=e*a[n-1];for(i[r-1]=a[r-1]/o[r-1],n=r-2;n>=0;--n)i[n]=(a[n]-i[n+1])/o[n];for(o[r-1]=(t[r]+i[r-1])/2,n=0;n<r-1;++n)o[n]=2*t[n+1]-i[n+1];return[i,o]}function lw(t,n){this._context=t,this._t=n}function hw(t,n){if((i=t.length)>1)for(var e,r,i,o=1,a=t[n[0]],u=a.length;o<i;++o)for(r=a,a=t[n[o]],e=0;e<u;++e)a[e][1]+=a[e][0]=isNaN(r[e][1])?r[e][0]:r[e][1]}function dw(t){for(var n=t.length,e=new Array(n);--n>=0;)e[n]=n;return e}function pw(t,n){return t[n]}function gw(t){const n=[];return n.key=t,n}function yw(t){var n=t.map(vw);return dw(t).sort((function(t,e){return n[t]-n[e]}))}function vw(t){for(var n,e=-1,r=0,i=t.length,o=-1/0;++e<i;)(n=+t[e][1])>o&&(o=n,r=e);return r}function _w(t){var n=t.map(bw);return dw(t).sort((function(t,e){return n[t]-n[e]}))}function bw(t){for(var n,e=0,r=-1,i=t.length;++r<i;)(n=+t[r][1])&&(e+=n);return e}nw.prototype={areaStart:Dx,areaEnd:Dx,lineStart:function(){this._point=0},lineEnd:function(){this._point&&this._context.closePath()},point:function(t,n){t=+t,n=+n,this._point?this._context.lineTo(t,n):(this._point=1,this._context.moveTo(t,n))}},aw.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=this._t0=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x1,this._y1);break;case 3:ow(this,this._t0,iw(this,this._t0))}(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,n){var e=NaN;if(n=+n,(t=+t)!==this._x1||n!==this._y1){switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(t,n):this._context.moveTo(t,n);break;case 1:this._point=2;break;case 2:this._point=3,ow(this,iw(this,e=rw(this,t,n)),e);break;default:ow(this,this._t0,e=rw(this,t,n))}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=n,this._t0=e}}},(uw.prototype=Object.create(aw.prototype)).point=function(t,n){aw.prototype.point.call(this,n,t)},cw.prototype={moveTo:function(t,n){this._context.moveTo(n,t)},closePath:function(){this._context.closePath()},lineTo:function(t,n){this._context.lineTo(n,t)},bezierCurveTo:function(t,n,e,r,i,o){this._context.bezierCurveTo(n,t,r,e,o,i)}},fw.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x=[],this._y=[]},lineEnd:function(){var t=this._x,n=this._y,e=t.length;if(e)if(this._line?this._context.lineTo(t[0],n[0]):this._context.moveTo(t[0],n[0]),2===e)this._context.lineTo(t[1],n[1]);else for(var r=sw(t),i=sw(n),o=0,a=1;a<e;++o,++a)this._context.bezierCurveTo(r[0][o],i[0][o],r[1][o],i[1][o],t[a],n[a]);(this._line||0!==this._line&&1===e)&&this._context.closePath(),this._line=1-this._line,this._x=this._y=null},point:function(t,n){this._x.push(+t),this._y.push(+n)}},lw.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x=this._y=NaN,this._point=0},lineEnd:function(){0<this._t&&this._t<1&&2===this._point&&this._context.lineTo(this._x,this._y),(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line>=0&&(this._t=1-this._t,this._line=1-this._line)},point:function(t,n){switch(t=+t,n=+n,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,n):this._context.moveTo(t,n);break;case 1:this._point=2;default:if(this._t<=0)this._context.lineTo(this._x,n),this._context.lineTo(t,n);else{var e=this._x*(1-this._t)+t*this._t;this._context.lineTo(e,this._y),this._context.lineTo(e,n)}}this._x=t,this._y=n}};var mw=t=>()=>t;function xw(t,{sourceEvent:n,target:e,transform:r,dispatch:i}){Object.defineProperties(this,{type:{value:t,enumerable:!0,configurable:!0},sourceEvent:{value:n,enumerable:!0,configurable:!0},target:{value:e,enumerable:!0,configurable:!0},transform:{value:r,enumerable:!0,configurable:!0},_:{value:i}})}function ww(t,n,e){this.k=t,this.x=n,this.y=e}ww.prototype={constructor:ww,scale:function(t){return 1===t?this:new ww(this.k*t,this.x,this.y)},translate:function(t,n){return 0===t&0===n?this:new ww(this.k,this.x+this.k*t,this.y+this.k*n)},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 Mw=new ww(1,0,0);function Tw(t){for(;!t.__zoom;)if(!(t=t.parentNode))return Mw;return t.__zoom}function Aw(t){t.stopImmediatePropagation()}function Sw(t){t.preventDefault(),t.stopImmediatePropagation()}function Ew(t){return!(t.ctrlKey&&"wheel"!==t.type||t.button)}function Nw(){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 kw(){return this.__zoom||Mw}function Cw(t){return-t.deltaY*(1===t.deltaMode?.05:t.deltaMode?1:.002)*(t.ctrlKey?10:1)}function Pw(){return navigator.maxTouchPoints||"ontouchstart"in this}function zw(t,n,e){var r=t.invertX(n[0][0])-e[0][0],i=t.invertX(n[1][0])-e[1][0],o=t.invertY(n[0][1])-e[0][1],a=t.invertY(n[1][1])-e[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))}Tw.prototype=ww.prototype,t.Adder=A,t.Delaunay=ju,t.FormatSpecifier=nf,t.InternMap=InternMap,t.InternSet=InternSet,t.Node=Jd,t.Path=Ia,t.Voronoi=Uu,t.ZoomTransform=ww,t.active=function(t,n){var e,r,i=t.__transition;if(i)for(r in n=null==n?null:n+"",i)if((e=i[r]).state>Ui&&e.name===n)return new go([[t]],Ko,n,+r);return null},t.arc=function(){var t=Cm,n=Pm,e=ym(0),r=null,i=zm,o=$m,a=Dm,u=null,c=km(f);function f(){var f,s,l=+t.apply(this,arguments),h=+n.apply(this,arguments),d=i.apply(this,arguments)-Sm,p=o.apply(this,arguments)-Sm,g=vm(p-d),y=p>d;if(u||(u=f=c()),h<l&&(s=h,h=l,l=s),h>Tm)if(g>Em-Tm)u.moveTo(h*bm(d),h*wm(d)),u.arc(0,0,h,d,p,!y),l>Tm&&(u.moveTo(l*bm(p),l*wm(p)),u.arc(0,0,l,p,d,y));else{var v,_,b=d,m=p,x=d,w=p,M=g,T=g,A=a.apply(this,arguments)/2,S=A>Tm&&(r?+r.apply(this,arguments):Mm(l*l+h*h)),E=xm(vm(h-l)/2,+e.apply(this,arguments)),N=E,k=E;if(S>Tm){var C=Nm(S/l*wm(A)),P=Nm(S/h*wm(A));(M-=2*C)>Tm?(x+=C*=y?1:-1,w-=C):(M=0,x=w=(d+p)/2),(T-=2*P)>Tm?(b+=P*=y?1:-1,m-=P):(T=0,b=m=(d+p)/2)}var z=h*bm(b),$=h*wm(b),D=l*bm(w),R=l*wm(w);if(E>Tm){var F,q=h*bm(m),U=h*wm(m),I=l*bm(x),O=l*wm(x);if(g<Am)if(F=function(t,n,e,r,i,o,a,u){var c=e-t,f=r-n,s=a-i,l=u-o,h=l*c-s*f;if(!(h*h<Tm))return[t+(h=(s*(n-o)-l*(t-i))/h)*c,n+h*f]}(z,$,I,O,q,U,D,R)){var B=z-F[0],Y=$-F[1],L=q-F[0],j=U-F[1],H=1/wm(function(t){return t>1?0:t<-1?Am:Math.acos(t)}((B*L+Y*j)/(Mm(B*B+Y*Y)*Mm(L*L+j*j)))/2),X=Mm(F[0]*F[0]+F[1]*F[1]);N=xm(E,(l-X)/(H-1)),k=xm(E,(h-X)/(H+1))}else N=k=0}T>Tm?k>Tm?(v=Rm(I,O,z,$,h,k,y),_=Rm(q,U,D,R,h,k,y),u.moveTo(v.cx+v.x01,v.cy+v.y01),k<E?u.arc(v.cx,v.cy,k,_m(v.y01,v.x01),_m(_.y01,_.x01),!y):(u.arc(v.cx,v.cy,k,_m(v.y01,v.x01),_m(v.y11,v.x11),!y),u.arc(0,0,h,_m(v.cy+v.y11,v.cx+v.x11),_m(_.cy+_.y11,_.cx+_.x11),!y),u.arc(_.cx,_.cy,k,_m(_.y11,_.x11),_m(_.y01,_.x01),!y))):(u.moveTo(z,$),u.arc(0,0,h,b,m,!y)):u.moveTo(z,$),l>Tm&&M>Tm?N>Tm?(v=Rm(D,R,q,U,l,-N,y),_=Rm(z,$,I,O,l,-N,y),u.lineTo(v.cx+v.x01,v.cy+v.y01),N<E?u.arc(v.cx,v.cy,N,_m(v.y01,v.x01),_m(_.y01,_.x01),!y):(u.arc(v.cx,v.cy,N,_m(v.y01,v.x01),_m(v.y11,v.x11),!y),u.arc(0,0,l,_m(v.cy+v.y11,v.cx+v.x11),_m(_.cy+_.y11,_.cx+_.x11),y),u.arc(_.cx,_.cy,N,_m(_.y11,_.x11),_m(_.y01,_.x01),!y))):u.arc(0,0,l,w,x,y):u.lineTo(D,R)}else u.moveTo(0,0);if(u.closePath(),f)return u=null,f+""||null}return f.centroid=function(){var e=(+t.apply(this,arguments)+ +n.apply(this,arguments))/2,r=(+i.apply(this,arguments)+ +o.apply(this,arguments))/2-Am/2;return[bm(r)*e,wm(r)*e]},f.innerRadius=function(n){return arguments.length?(t="function"==typeof n?n:ym(+n),f):t},f.outerRadius=function(t){return arguments.length?(n="function"==typeof t?t:ym(+t),f):n},f.cornerRadius=function(t){return arguments.length?(e="function"==typeof t?t:ym(+t),f):e},f.padRadius=function(t){return arguments.length?(r=null==t?null:"function"==typeof t?t:ym(+t),f):r},f.startAngle=function(t){return arguments.length?(i="function"==typeof t?t:ym(+t),f):i},f.endAngle=function(t){return arguments.length?(o="function"==typeof t?t:ym(+t),f):o},f.padAngle=function(t){return arguments.length?(a="function"==typeof t?t:ym(+t),f):a},f.context=function(t){return arguments.length?(u=null==t?null:t,f):u},f},t.area=Lm,t.areaRadial=Km,t.ascending=n,t.autoType=function(t){for(var n in t){var e,r,i=t[n].trim();if(i)if("true"===i)i=!0;else if("false"===i)i=!1;else if("NaN"===i)i=NaN;else if(isNaN(e=+i)){if(!(r=i.match(/^([-+]\d{2})?\d{4}(-\d{2}(-\d{2})?)?(T\d{2}:\d{2}(:\d{2}(\.\d{3})?)?(Z|[-+]\d{2}:\d{2})?)?$/)))continue;vc&&r[4]&&!r[7]&&(i=i.replace(/-/g,"/").replace(/T/," ")),i=new Date(i)}else i=e;else i=null;t[n]=i}return t},t.axisBottom=function(t){return zt(Tt,t)},t.axisLeft=function(t){return zt(At,t)},t.axisRight=function(t){return zt(Mt,t)},t.axisTop=function(t){return zt(wt,t)},t.bin=J,t.bisect=l,t.bisectCenter=s,t.bisectLeft=f,t.bisectRight=c,t.bisector=r,t.blob=function(t,n){return fetch(t,n).then(_c)},t.blur=function(t,n){if(!((n=+n)>=0))throw new RangeError("invalid r");let e=t.length;if(!((e=Math.floor(e))>=0))throw new RangeError("invalid length");if(!e||!n)return t;const r=v(n),i=t.slice();return r(t,i,0,e,1),r(i,t,0,e,1),r(t,i,0,e,1),t},t.blur2=h,t.blurImage=d,t.brush=function(){return Ma(ha)},t.brushSelection=function(t){var n=t.__brush;return n?n.dim.output(n.selection):null},t.brushX=function(){return Ma(sa)},t.brushY=function(){return Ma(la)},t.buffer=function(t,n){return fetch(t,n).then(bc)},t.chord=function(){return $a(!1,!1)},t.chordDirected=function(){return $a(!0,!1)},t.chordTranspose=function(){return $a(!1,!0)},t.cluster=function(){var t=jd,n=1,e=1,r=!1;function i(i){var o,a=0;i.eachAfter((function(n){var e=n.children;e?(n.x=function(t){return t.reduce(Hd,0)/t.length}(e),n.y=function(t){return 1+t.reduce(Xd,0)}(e)):(n.x=o?a+=t(n,o):0,n.y=0,o=n)}));var u=function(t){for(var n;n=t.children;)t=n[0];return t}(i),c=function(t){for(var n;n=t.children;)t=n[n.length-1];return t}(i),f=u.x-t(u,c)/2,s=c.x+t(c,u)/2;return i.eachAfter(r?function(t){t.x=(t.x-i.x)*n,t.y=(i.y-t.y)*e}:function(t){t.x=(t.x-f)/(s-f)*n,t.y=(1-(i.y?t.y/i.y:1))*e})}return i.separation=function(n){return arguments.length?(t=n,i):t},i.size=function(t){return arguments.length?(r=!1,n=+t[0],e=+t[1],i):r?null:[n,e]},i.nodeSize=function(t){return arguments.length?(r=!0,n=+t[0],e=+t[1],i):r?[n,e]:null},i},t.color=$e,t.contourDensity=function(){var t=su,n=lu,e=hu,r=960,i=500,o=20,a=2,u=3*o,c=r+2*u>>a,f=i+2*u>>a,s=Ja(20);function l(r){var i=new Float32Array(c*f),s=Math.pow(2,-a),l=-1;for(const o of r){var d=(t(o,++l,r)+u)*s,p=(n(o,l,r)+u)*s,g=+e(o,l,r);if(g&&d>=0&&d<c&&p>=0&&p<f){var y=Math.floor(d),v=Math.floor(p),_=d-y-.5,b=p-v-.5;i[y+v*c]+=(1-_)*(1-b)*g,i[y+1+v*c]+=_*(1-b)*g,i[y+1+(v+1)*c]+=_*b*g,i[y+(v+1)*c]+=(1-_)*b*g}}return h({data:i,width:c,height:f},o*s),i}function d(t){var n=l(t),e=s(n),r=Math.pow(2,2*a);return Array.isArray(e)||(e=V(Number.MIN_VALUE,tt(n)/r,e)),ou().size([c,f]).thresholds(e.map((t=>t*r)))(n).map(((t,n)=>(t.value=+e[n],p(t))))}function p(t){return t.coordinates.forEach(g),t}function g(t){t.forEach(y)}function y(t){t.forEach(v)}function v(t){t[0]=t[0]*Math.pow(2,a)-u,t[1]=t[1]*Math.pow(2,a)-u}function _(){return c=r+2*(u=3*o)>>a,f=i+2*u>>a,d}return d.contours=function(t){var n=l(t),e=ou().size([c,f]),r=Math.pow(2,2*a),i=t=>{t=+t;var i=p(e.contour(n,t*r));return i.value=t,i};return Object.defineProperty(i,"max",{get:()=>tt(n)/r}),i},d.x=function(n){return arguments.length?(t="function"==typeof n?n:Ja(+n),d):t},d.y=function(t){return arguments.length?(n="function"==typeof t?t:Ja(+t),d):n},d.weight=function(t){return arguments.length?(e="function"==typeof t?t:Ja(+t),d):e},d.size=function(t){if(!arguments.length)return[r,i];var n=+t[0],e=+t[1];if(!(n>=0&&e>=0))throw new Error("invalid size");return r=n,i=e,_()},d.cellSize=function(t){if(!arguments.length)return 1<<a;if(!((t=+t)>=1))throw new Error("invalid cell size");return a=Math.floor(Math.log(t)/Math.LN2),_()},d.thresholds=function(t){return arguments.length?(s="function"==typeof t?t:Array.isArray(t)?Ja(Ka.call(t)):Ja(t),d):s},d.bandwidth=function(t){if(!arguments.length)return Math.sqrt(o*(o+1));if(!((t=+t)>=0))throw new Error("invalid bandwidth");return o=(Math.sqrt(4*t*t+1)-1)/2,_()},d},t.contours=ou,t.count=_,t.create=function(t){return Kn(Lt(t).call(document.documentElement))},t.creator=Lt,t.cross=function(...t){const n="function"==typeof t[t.length-1]&&function(t){return n=>t(...n)}(t.pop()),e=(t=t.map(x)).map(b),r=t.length-1,i=new Array(r+1).fill(0),o=[];if(r<0||e.some(m))return o;for(;;){o.push(i.map(((n,e)=>t[e][n])));let a=r;for(;++i[a]===e[a];){if(0===a)return n?o.map(n):o;i[a--]=0}}},t.csv=Mc,t.csvFormat=ic,t.csvFormatBody=oc,t.csvFormatRow=uc,t.csvFormatRows=ac,t.csvFormatValue=cc,t.csvParse=ec,t.csvParseRows=rc,t.cubehelix=Ar,t.cumsum=function(t,n){var e=0,r=0;return Float64Array.from(t,void 0===n?t=>e+=+t||0:i=>e+=+n(i,r++,t)||0)},t.curveBasis=function(t){return new Fx(t)},t.curveBasisClosed=function(t){return new qx(t)},t.curveBasisOpen=function(t){return new Ux(t)},t.curveBumpX=nx,t.curveBumpY=ex,t.curveBundle=Ox,t.curveCardinal=Lx,t.curveCardinalClosed=Hx,t.curveCardinalOpen=Gx,t.curveCatmullRom=Zx,t.curveCatmullRomClosed=Qx,t.curveCatmullRomOpen=tw,t.curveLinear=Im,t.curveLinearClosed=function(t){return new nw(t)},t.curveMonotoneX=function(t){return new aw(t)},t.curveMonotoneY=function(t){return new uw(t)},t.curveNatural=function(t){return new fw(t)},t.curveStep=function(t){return new lw(t,.5)},t.curveStepAfter=function(t){return new lw(t,1)},t.curveStepBefore=function(t){return new lw(t,0)},t.descending=e,t.deviation=M,t.difference=function(t,...n){t=new InternSet(t);for(const e of n)for(const n of e)t.delete(n);return t},t.disjoint=function(t,n){const e=n[Symbol.iterator](),r=new InternSet;for(const n of t){if(r.has(n))return!1;let t,i;for(;({value:t,done:i}=e.next())&&!i;){if(Object.is(n,t))return!1;r.add(t)}}return!0},t.dispatch=Dt,t.drag=function(){var t,n,e,r,i=le,o=he,a=de,u=pe,c={},f=Dt("start","drag","end"),s=0,l=0;function h(t){t.on("mousedown.drag",d).filter(u).on("touchstart.drag",y).on("touchmove.drag",v,re).on("touchend.drag touchcancel.drag",_).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function d(a,u){if(!r&&i.call(this,a,u)){var c=b(this,o.call(this,a,u),a,u,"mouse");c&&(Kn(a.view).on("mousemove.drag",p,ie).on("mouseup.drag",g,ie),ue(a.view),oe(a),e=!1,t=a.clientX,n=a.clientY,c("start",a))}}function p(r){if(ae(r),!e){var i=r.clientX-t,o=r.clientY-n;e=i*i+o*o>l}c.mouse("drag",r)}function g(t){Kn(t.view).on("mousemove.drag mouseup.drag",null),ce(t.view,e),ae(t),c.mouse("end",t)}function y(t,n){if(i.call(this,t,n)){var e,r,a=t.changedTouches,u=o.call(this,t,n),c=a.length;for(e=0;e<c;++e)(r=b(this,u,t,n,a[e].identifier,a[e]))&&(oe(t),r("start",t,a[e]))}}function v(t){var n,e,r=t.changedTouches,i=r.length;for(n=0;n<i;++n)(e=c[r[n].identifier])&&(ae(t),e("drag",t,r[n]))}function _(t){var n,e,i=t.changedTouches,o=i.length;for(r&&clearTimeout(r),r=setTimeout((function(){r=null}),500),n=0;n<o;++n)(e=c[i[n].identifier])&&(oe(t),e("end",t,i[n]))}function b(t,n,e,r,i,o){var u,l,d,p=f.copy(),g=ee(o||e,n);if(null!=(d=a.call(t,new se("beforestart",{sourceEvent:e,target:h,identifier:i,active:s,x:g[0],y:g[1],dx:0,dy:0,dispatch:p}),r)))return u=d.x-g[0]||0,l=d.y-g[1]||0,function e(o,a,f){var y,v=g;switch(o){case"start":c[i]=e,y=s++;break;case"end":delete c[i],--s;case"drag":g=ee(f||a,n),y=s}p.call(o,t,new se(o,{sourceEvent:a,subject:d,target:h,identifier:i,active:y,x:g[0]+u,y:g[1]+l,dx:g[0]-v[0],dy:g[1]-v[1],dispatch:p}),r)}}return h.filter=function(t){return arguments.length?(i="function"==typeof t?t:fe(!!t),h):i},h.container=function(t){return arguments.length?(o="function"==typeof t?t:fe(t),h):o},h.subject=function(t){return arguments.length?(a="function"==typeof t?t:fe(t),h):a},h.touchable=function(t){return arguments.length?(u="function"==typeof t?t:fe(!!t),h):u},h.on=function(){var t=f.on.apply(f,arguments);return t===f?h:t},h.clickDistance=function(t){return arguments.length?(l=(t=+t)*t,h):Math.sqrt(l)},h},t.dragDisable=ue,t.dragEnable=ce,t.dsv=function(t,n,e,r){3===arguments.length&&"function"==typeof e&&(r=e,e=void 0);var i=tc(t);return xc(n,e).then((function(t){return i.parse(t,r)}))},t.dsvFormat=tc,t.easeBack=jo,t.easeBackIn=Yo,t.easeBackInOut=jo,t.easeBackOut=Lo,t.easeBounce=Oo,t.easeBounceIn=function(t){return 1-Oo(1-t)},t.easeBounceInOut=function(t){return((t*=2)<=1?1-Oo(1-t):Oo(t-1)+1)/2},t.easeBounceOut=Oo,t.easeCircle=ko,t.easeCircleIn=function(t){return 1-Math.sqrt(1-t*t)},t.easeCircleInOut=ko,t.easeCircleOut=function(t){return Math.sqrt(1- --t*t)},t.easeCubic=mo,t.easeCubicIn=function(t){return t*t*t},t.easeCubicInOut=mo,t.easeCubicOut=function(t){return--t*t*t+1},t.easeElastic=Go,t.easeElasticIn=Xo,t.easeElasticInOut=Vo,t.easeElasticOut=Go,t.easeExp=No,t.easeExpIn=function(t){return Eo(1-+t)},t.easeExpInOut=No,t.easeExpOut=function(t){return 1-Eo(t)},t.easeLinear=t=>+t,t.easePoly=Mo,t.easePolyIn=xo,t.easePolyInOut=Mo,t.easePolyOut=wo,t.easeQuad=bo,t.easeQuadIn=function(t){return t*t},t.easeQuadInOut=bo,t.easeQuadOut=function(t){return t*(2-t)},t.easeSin=So,t.easeSinIn=function(t){return 1==+t?1:1-Math.cos(t*Ao)},t.easeSinInOut=So,t.easeSinOut=function(t){return Math.sin(t*Ao)},t.every=function(t,n){if("function"!=typeof n)throw new TypeError("test is not a function");let e=-1;for(const r of t)if(!n(r,++e,t))return!1;return!0},t.extent=T,t.fcumsum=function(t,n){const e=new A;let r=-1;return Float64Array.from(t,void 0===n?t=>e.add(+t||0):i=>e.add(+n(i,++r,t)||0))},t.filter=function(t,n){if("function"!=typeof n)throw new TypeError("test is not a function");const e=[];let r=-1;for(const i of t)n(i,++r,t)&&e.push(i);return e},t.flatGroup=function(t,...n){return $(z(t,...n),n)},t.flatRollup=function(t,n,...e){return $(R(t,n,...e),e)},t.forceCenter=function(t,n){var e,r=1;function i(){var i,o,a=e.length,u=0,c=0;for(i=0;i<a;++i)u+=(o=e[i]).x,c+=o.y;for(u=(u/a-t)*r,c=(c/a-n)*r,i=0;i<a;++i)(o=e[i]).x-=u,o.y-=c}return null==t&&(t=0),null==n&&(n=0),i.initialize=function(t){e=t},i.x=function(n){return arguments.length?(t=+n,i):t},i.y=function(t){return arguments.length?(n=+t,i):n},i.strength=function(t){return arguments.length?(r=+t,i):r},i},t.forceCollide=function(t){var n,e,r,i=1,o=1;function a(){for(var t,a,c,f,s,l,h,d=n.length,p=0;p<o;++p)for(a=Dc(n,Oc,Bc).visitAfter(u),t=0;t<d;++t)c=n[t],l=e[c.index],h=l*l,f=c.x+c.vx,s=c.y+c.vy,a.visit(g);function g(t,n,e,o,a){var u=t.data,d=t.r,p=l+d;if(!u)return n>f+p||o<f-p||e>s+p||a<s-p;if(u.index>c.index){var g=f-u.x-u.vx,y=s-u.y-u.vy,v=g*g+y*y;v<p*p&&(0===g&&(v+=(g=Ic(r))*g),0===y&&(v+=(y=Ic(r))*y),v=(p-(v=Math.sqrt(v)))/v*i,c.vx+=(g*=v)*(p=(d*=d)/(h+d)),c.vy+=(y*=v)*p,u.vx-=g*(p=1-p),u.vy-=y*p)}}}function u(t){if(t.data)return t.r=e[t.data.index];for(var n=t.r=0;n<4;++n)t[n]&&t[n].r>t.r&&(t.r=t[n].r)}function c(){if(n){var r,i,o=n.length;for(e=new Array(o),r=0;r<o;++r)i=n[r],e[i.index]=+t(i,r,n)}}return"function"!=typeof t&&(t=Uc(null==t?1:+t)),a.initialize=function(t,e){n=t,r=e,c()},a.iterations=function(t){return arguments.length?(o=+t,a):o},a.strength=function(t){return arguments.length?(i=+t,a):i},a.radius=function(n){return arguments.length?(t="function"==typeof n?n:Uc(+n),c(),a):t},a},t.forceLink=function(t){var n,e,r,i,o,a,u=Yc,c=function(t){return 1/Math.min(i[t.source.index],i[t.target.index])},f=Uc(30),s=1;function l(r){for(var i=0,u=t.length;i<s;++i)for(var c,f,l,h,d,p,g,y=0;y<u;++y)f=(c=t[y]).source,h=(l=c.target).x+l.vx-f.x-f.vx||Ic(a),d=l.y+l.vy-f.y-f.vy||Ic(a),h*=p=((p=Math.sqrt(h*h+d*d))-e[y])/p*r*n[y],d*=p,l.vx-=h*(g=o[y]),l.vy-=d*g,f.vx+=h*(g=1-g),f.vy+=d*g}function h(){if(r){var a,c,f=r.length,s=t.length,l=new Map(r.map(((t,n)=>[u(t,n,r),t])));for(a=0,i=new Array(f);a<s;++a)(c=t[a]).index=a,"object"!=typeof c.source&&(c.source=Lc(l,c.source)),"object"!=typeof c.target&&(c.target=Lc(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(s);a<s;++a)c=t[a],o[a]=i[c.source.index]/(i[c.source.index]+i[c.target.index]);n=new Array(s),d(),e=new Array(s),p()}}function d(){if(r)for(var e=0,i=t.length;e<i;++e)n[e]=+c(t[e],e,t)}function p(){if(r)for(var n=0,i=t.length;n<i;++n)e[n]=+f(t[n],n,t)}return null==t&&(t=[]),l.initialize=function(t,n){r=t,a=n,h()},l.links=function(n){return arguments.length?(t=n,h(),l):t},l.id=function(t){return arguments.length?(u=t,l):u},l.iterations=function(t){return arguments.length?(s=+t,l):s},l.strength=function(t){return arguments.length?(c="function"==typeof t?t:Uc(+t),d(),l):c},l.distance=function(t){return arguments.length?(f="function"==typeof t?t:Uc(+t),p(),l):f},l},t.forceManyBody=function(){var t,n,e,r,i,o=Uc(-30),a=1,u=1/0,c=.81;function f(e){var i,o=t.length,a=Dc(t,Gc,Vc).visitAfter(l);for(r=e,i=0;i<o;++i)n=t[i],a.visit(h)}function s(){if(t){var n,e,r=t.length;for(i=new Array(r),n=0;n<r;++n)e=t[n],i[e.index]=+o(e,n,t)}}function l(t){var n,e,r,o,a,u=0,c=0;if(t.length){for(r=o=a=0;a<4;++a)(n=t[a])&&(e=Math.abs(n.value))&&(u+=n.value,c+=e,r+=e*n.x,o+=e*n.y);t.x=r/c,t.y=o/c}else{(n=t).x=n.data.x,n.y=n.data.y;do{u+=i[n.data.index]}while(n=n.next)}t.value=u}function h(t,o,f,s){if(!t.value)return!0;var l=t.x-n.x,h=t.y-n.y,d=s-o,p=l*l+h*h;if(d*d/c<p)return p<u&&(0===l&&(p+=(l=Ic(e))*l),0===h&&(p+=(h=Ic(e))*h),p<a&&(p=Math.sqrt(a*p)),n.vx+=l*t.value*r/p,n.vy+=h*t.value*r/p),!0;if(!(t.length||p>=u)){(t.data!==n||t.next)&&(0===l&&(p+=(l=Ic(e))*l),0===h&&(p+=(h=Ic(e))*h),p<a&&(p=Math.sqrt(a*p)));do{t.data!==n&&(d=i[t.data.index]*r/p,n.vx+=l*d,n.vy+=h*d)}while(t=t.next)}}return f.initialize=function(n,r){t=n,e=r,s()},f.strength=function(t){return arguments.length?(o="function"==typeof t?t:Uc(+t),s(),f):o},f.distanceMin=function(t){return arguments.length?(a=t*t,f):Math.sqrt(a)},f.distanceMax=function(t){return arguments.length?(u=t*t,f):Math.sqrt(u)},f.theta=function(t){return arguments.length?(c=t*t,f):Math.sqrt(c)},f},t.forceRadial=function(t,n,e){var r,i,o,a=Uc(.1);function u(t){for(var a=0,u=r.length;a<u;++a){var c=r[a],f=c.x-n||1e-6,s=c.y-e||1e-6,l=Math.sqrt(f*f+s*s),h=(o[a]-l)*i[a]*t/l;c.vx+=f*h,c.vy+=s*h}}function c(){if(r){var n,e=r.length;for(i=new Array(e),o=new Array(e),n=0;n<e;++n)o[n]=+t(r[n],n,r),i[n]=isNaN(o[n])?0:+a(r[n],n,r)}}return"function"!=typeof t&&(t=Uc(+t)),null==n&&(n=0),null==e&&(e=0),u.initialize=function(t){r=t,c()},u.strength=function(t){return arguments.length?(a="function"==typeof t?t:Uc(+t),c(),u):a},u.radius=function(n){return arguments.length?(t="function"==typeof n?n:Uc(+n),c(),u):t},u.x=function(t){return arguments.length?(n=+t,u):n},u.y=function(t){return arguments.length?(e=+t,u):e},u},t.forceSimulation=function(t){var n,e=1,r=.001,i=1-Math.pow(r,1/300),o=0,a=.6,u=new Map,c=ki(l),f=Dt("tick","end"),s=function(){let t=1;return()=>(t=(jc*t+Hc)%Xc)/Xc}();function l(){h(),f.call("tick",n),e<r&&(c.stop(),f.call("end",n))}function h(r){var c,f,s=t.length;void 0===r&&(r=1);for(var l=0;l<r;++l)for(e+=(o-e)*i,u.forEach((function(t){t(e)})),c=0;c<s;++c)null==(f=t[c]).fx?f.x+=f.vx*=a:(f.x=f.fx,f.vx=0),null==f.fy?f.y+=f.vy*=a:(f.y=f.fy,f.vy=0);return n}function d(){for(var n,e=0,r=t.length;e<r;++e){if((n=t[e]).index=e,null!=n.fx&&(n.x=n.fx),null!=n.fy&&(n.y=n.fy),isNaN(n.x)||isNaN(n.y)){var i=10*Math.sqrt(.5+e),o=e*Wc;n.x=i*Math.cos(o),n.y=i*Math.sin(o)}(isNaN(n.vx)||isNaN(n.vy))&&(n.vx=n.vy=0)}}function p(n){return n.initialize&&n.initialize(t,s),n}return null==t&&(t=[]),d(),n={tick:h,restart:function(){return c.restart(l),n},stop:function(){return c.stop(),n},nodes:function(e){return arguments.length?(t=e,d(),u.forEach(p),n):t},alpha:function(t){return arguments.length?(e=+t,n):e},alphaMin:function(t){return arguments.length?(r=+t,n):r},alphaDecay:function(t){return arguments.length?(i=+t,n):+i},alphaTarget:function(t){return arguments.length?(o=+t,n):o},velocityDecay:function(t){return arguments.length?(a=1-t,n):1-a},randomSource:function(t){return arguments.length?(s=t,u.forEach(p),n):s},force:function(t,e){return arguments.length>1?(null==e?u.delete(t):u.set(t,p(e)),n):u.get(t)},find:function(n,e,r){var i,o,a,u,c,f=0,s=t.length;for(null==r?r=1/0:r*=r,f=0;f<s;++f)(a=(i=n-(u=t[f]).x)*i+(o=e-u.y)*o)<r&&(c=u,r=a);return c},on:function(t,e){return arguments.length>1?(f.on(t,e),n):f.on(t)}}},t.forceX=function(t){var n,e,r,i=Uc(.1);function o(t){for(var i,o=0,a=n.length;o<a;++o)(i=n[o]).vx+=(r[o]-i.x)*e[o]*t}function a(){if(n){var o,a=n.length;for(e=new Array(a),r=new Array(a),o=0;o<a;++o)e[o]=isNaN(r[o]=+t(n[o],o,n))?0:+i(n[o],o,n)}}return"function"!=typeof t&&(t=Uc(null==t?0:+t)),o.initialize=function(t){n=t,a()},o.strength=function(t){return arguments.length?(i="function"==typeof t?t:Uc(+t),a(),o):i},o.x=function(n){return arguments.length?(t="function"==typeof n?n:Uc(+n),a(),o):t},o},t.forceY=function(t){var n,e,r,i=Uc(.1);function o(t){for(var i,o=0,a=n.length;o<a;++o)(i=n[o]).vy+=(r[o]-i.y)*e[o]*t}function a(){if(n){var o,a=n.length;for(e=new Array(a),r=new Array(a),o=0;o<a;++o)e[o]=isNaN(r[o]=+t(n[o],o,n))?0:+i(n[o],o,n)}}return"function"!=typeof t&&(t=Uc(null==t?0:+t)),o.initialize=function(t){n=t,a()},o.strength=function(t){return arguments.length?(i="function"==typeof t?t:Uc(+t),a(),o):i},o.y=function(n){return arguments.length?(t="function"==typeof n?n:Uc(+n),a(),o):t},o},t.formatDefaultLocale=sf,t.formatLocale=ff,t.formatSpecifier=tf,t.fsum=function(t,n){const e=new A;if(void 0===n)for(let n of t)(n=+n)&&e.add(n);else{let r=-1;for(let i of t)(i=+n(i,++r,t))&&e.add(i)}return+e},t.geoAlbers=wd,t.geoAlbersUsa=function(){var t,n,e,r,i,o,a=wd(),u=xd().rotate([154,0]).center([-2,58.5]).parallels([55,65]),c=xd().rotate([157,0]).center([-3,19.9]).parallels([8,18]),f={point:function(t,n){o=[t,n]}};function s(t){var n=t[0],a=t[1];return o=null,e.point(n,a),o||(r.point(n,a),o)||(i.point(n,a),o)}function l(){return t=n=null,s}return s.invert=function(t){var n=a.scale(),e=a.translate(),r=(t[0]-e[0])/n,i=(t[1]-e[1])/n;return(i>=.12&&i<.234&&r>=-.425&&r<-.214?u:i>=.166&&i<.234&&r>=-.214&&r<-.115?c:a).invert(t)},s.stream=function(e){return t&&n===e?t:(r=[a.stream(n=e),u.stream(e),c.stream(e)],i=r.length,t={point:function(t,n){for(var e=-1;++e<i;)r[e].point(t,n)},sphere:function(){for(var t=-1;++t<i;)r[t].sphere()},lineStart:function(){for(var t=-1;++t<i;)r[t].lineStart()},lineEnd:function(){for(var t=-1;++t<i;)r[t].lineEnd()},polygonStart:function(){for(var t=-1;++t<i;)r[t].polygonStart()},polygonEnd:function(){for(var t=-1;++t<i;)r[t].polygonEnd()}});var r,i},s.precision=function(t){return arguments.length?(a.precision(t),u.precision(t),c.precision(t),l()):a.precision()},s.scale=function(t){return arguments.length?(a.scale(t),u.scale(.35*t),c.scale(t),s.translate(a.translate())):a.scale()},s.translate=function(t){if(!arguments.length)return a.translate();var n=a.scale(),o=+t[0],s=+t[1];return e=a.translate(t).clipExtent([[o-.455*n,s-.238*n],[o+.455*n,s+.238*n]]).stream(f),r=u.translate([o-.307*n,s+.201*n]).clipExtent([[o-.425*n+pf,s+.12*n+pf],[o-.214*n-pf,s+.234*n-pf]]).stream(f),i=c.translate([o-.205*n,s+.212*n]).clipExtent([[o-.214*n+pf,s+.166*n+pf],[o-.115*n-pf,s+.234*n-pf]]).stream(f),l()},s.fitExtent=function(t,n){return cd(s,t,n)},s.fitSize=function(t,n){return fd(s,t,n)},s.fitWidth=function(t,n){return sd(s,t,n)},s.fitHeight=function(t,n){return ld(s,t,n)},s.scale(1070)},t.geoArea=function(t){return cs=new A,jf(t,fs),2*cs},t.geoAzimuthalEqualArea=function(){return vd(Ad).scale(124.75).clipAngle(179.999)},t.geoAzimuthalEqualAreaRaw=Ad,t.geoAzimuthalEquidistant=function(){return vd(Sd).scale(79.4188).clipAngle(179.999)},t.geoAzimuthalEquidistantRaw=Sd,t.geoBounds=function(t){var n,e,r,i,o,a,u;if(Jf=Qf=-(Zf=Kf=1/0),os=[],jf(t,qs),e=os.length){for(os.sort(Xs),n=1,o=[r=os[0]];n<e;++n)Gs(r,(i=os[n])[0])||Gs(r,i[1])?(Hs(r[0],i[1])>Hs(r[0],r[1])&&(r[1]=i[1]),Hs(i[0],r[1])>Hs(r[0],r[1])&&(r[0]=i[0])):o.push(r=i);for(a=-1/0,n=0,r=o[e=o.length-1];n<=e;r=i,++n)i=o[n],(u=Hs(r[1],i[0]))>a&&(a=u,Zf=i[0],Qf=r[1])}return os=as=null,Zf===1/0||Kf===1/0?[[NaN,NaN],[NaN,NaN]]:[[Zf,Kf],[Qf,Jf]]},t.geoCentroid=function(t){xs=ws=Ms=Ts=As=Ss=Es=Ns=0,ks=new A,Cs=new A,Ps=new A,jf(t,Vs);var n=+ks,e=+Cs,r=+Ps,i=Nf(n,e,r);return i<gf&&(n=Ss,e=Es,r=Ns,ws<pf&&(n=Ms,e=Ts,r=As),(i=Nf(n,e,r))<gf)?[NaN,NaN]:[Tf(e,n)*mf,Ff(r/i)*mf]},t.geoCircle=function(){var t,n,e=ol([0,0]),r=ol(90),i=ol(6),o={point:function(e,r){t.push(e=n(e,r)),e[0]*=mf,e[1]*=mf}};function a(){var a=e.apply(this,arguments),u=r.apply(this,arguments)*xf,c=i.apply(this,arguments)*xf;return t=[],n=cl(-a[0]*xf,-a[1]*xf,0).invert,dl(o,u,c,1),a={type:"Polygon",coordinates:[t]},t=n=null,a}return a.center=function(t){return arguments.length?(e="function"==typeof t?t:ol([+t[0],+t[1]]),a):e},a.radius=function(t){return arguments.length?(r="function"==typeof t?t:ol(+t),a):r},a.precision=function(t){return arguments.length?(i="function"==typeof t?t:ol(+t),a):i},a},t.geoClipAntimeridian=Al,t.geoClipCircle=Sl,t.geoClipExtent=function(){var t,n,e,r=0,i=0,o=960,a=500;return e={stream:function(e){return t&&n===e?t:t=$l(r,i,o,a)(n=e)},extent:function(u){return arguments.length?(r=+u[0][0],i=+u[0][1],o=+u[1][0],a=+u[1][1],t=n=null,e):[[r,i],[o,a]]}}},t.geoClipRectangle=$l,t.geoConicConformal=function(){return bd(Cd).scale(109.5).parallels([30,30])},t.geoConicConformalRaw=Cd,t.geoConicEqualArea=xd,t.geoConicEqualAreaRaw=md,t.geoConicEquidistant=function(){return bd(zd).scale(131.154).center([0,13.9389])},t.geoConicEquidistantRaw=zd,t.geoContains=function(t,n){return(t&&Yl.hasOwnProperty(t.type)?Yl[t.type]:jl)(t,n)},t.geoDistance=Bl,t.geoEqualEarth=function(){return vd(Ud).scale(177.158)},t.geoEqualEarthRaw=Ud,t.geoEquirectangular=function(){return vd(Pd).scale(152.63)},t.geoEquirectangularRaw=Pd,t.geoGnomonic=function(){return vd(Id).scale(144.049).clipAngle(60)},t.geoGnomonicRaw=Id,t.geoGraticule=Ql,t.geoGraticule10=function(){return Ql()()},t.geoIdentity=function(){var t,n,e,r,i,o,a,u=1,c=0,f=0,s=1,l=1,h=0,d=null,p=1,g=1,y=od({point:function(t,n){var e=b([t,n]);this.stream.point(e[0],e[1])}}),v=rh;function _(){return p=u*s,g=u*l,o=a=null,b}function b(e){var r=e[0]*p,i=e[1]*g;if(h){var o=i*t-r*n;r=r*t+i*n,i=o}return[r+c,i+f]}return b.invert=function(e){var r=e[0]-c,i=e[1]-f;if(h){var o=i*t+r*n;r=r*t-i*n,i=o}return[r/p,i/g]},b.stream=function(t){return o&&a===t?o:o=y(v(a=t))},b.postclip=function(t){return arguments.length?(v=t,d=e=r=i=null,_()):v},b.clipExtent=function(t){return arguments.length?(v=null==t?(d=e=r=i=null,rh):$l(d=+t[0][0],e=+t[0][1],r=+t[1][0],i=+t[1][1]),_()):null==d?null:[[d,e],[r,i]]},b.scale=function(t){return arguments.length?(u=+t,_()):u},b.translate=function(t){return arguments.length?(c=+t[0],f=+t[1],_()):[c,f]},b.angle=function(e){return arguments.length?(n=Pf(h=e%360*xf),t=Af(h),_()):h*mf},b.reflectX=function(t){return arguments.length?(s=t?-1:1,_()):s<0},b.reflectY=function(t){return arguments.length?(l=t?-1:1,_()):l<0},b.fitExtent=function(t,n){return cd(b,t,n)},b.fitSize=function(t,n){return fd(b,t,n)},b.fitWidth=function(t,n){return sd(b,t,n)},b.fitHeight=function(t,n){return ld(b,t,n)},b},t.geoInterpolate=function(t,n){var e=t[0]*xf,r=t[1]*xf,i=n[0]*xf,o=n[1]*xf,a=Af(r),u=Pf(r),c=Af(o),f=Pf(o),s=a*Af(e),l=a*Pf(e),h=c*Af(i),d=c*Pf(i),p=2*Ff($f(qf(o-r)+a*c*qf(i-e))),g=Pf(p),y=p?function(t){var n=Pf(t*=p)/g,e=Pf(p-t)/g,r=e*s+n*h,i=e*l+n*d,o=e*u+n*f;return[Tf(i,r)*mf,Tf(o,$f(r*r+i*i))*mf]}:function(){return[e*mf,r*mf]};return y.distance=p,y},t.geoLength=Ul,t.geoMercator=function(){return Nd(Ed).scale(961/bf)},t.geoMercatorRaw=Ed,t.geoNaturalEarth1=function(){return vd(Od).scale(175.295)},t.geoNaturalEarth1Raw=Od,t.geoOrthographic=function(){return vd(Bd).scale(249.5).clipAngle(90+pf)},t.geoOrthographicRaw=Bd,t.geoPath=function(t,n){let e,r,i=3,o=4.5;function a(t){return t&&("function"==typeof o&&r.pointRadius(+o.apply(this,arguments)),jf(t,e(r))),r.result()}return a.area=function(t){return jf(t,e(lh)),lh.result()},a.measure=function(t){return jf(t,e(Qh)),Qh.result()},a.bounds=function(t){return jf(t,e(xh)),xh.result()},a.centroid=function(t){return jf(t,e(Bh)),Bh.result()},a.projection=function(n){return arguments.length?(e=null==n?(t=null,rh):(t=n).stream,a):t},a.context=function(t){return arguments.length?(r=null==t?(n=null,new rd(i)):new Yh(n=t),"function"!=typeof o&&r.pointRadius(o),a):n},a.pointRadius=function(t){return arguments.length?(o="function"==typeof t?t:(r.pointRadius(+t),+t),a):o},a.digits=function(t){if(!arguments.length)return i;if(null==t)i=null;else{const n=Math.floor(t);if(!(n>=0))throw new RangeError(`invalid digits: ${t}`);i=n}return null===n&&(r=new rd(i)),a},a.projection(t).digits(i).context(n)},t.geoProjection=vd,t.geoProjectionMutator=_d,t.geoRotation=hl,t.geoStereographic=function(){return vd(Yd).scale(250).clipAngle(142)},t.geoStereographicRaw=Yd,t.geoStream=jf,t.geoTransform=function(t){return{stream:od(t)}},t.geoTransverseMercator=function(){var t=Nd(Ld),n=t.center,e=t.rotate;return t.center=function(t){return arguments.length?n([-t[1],t[0]]):[(t=n())[1],-t[0]]},t.rotate=function(t){return arguments.length?e([t[0],t[1],t.length>2?t[2]+90:90]):[(t=e())[0],t[1],t[2]-90]},e([0,0,90]).scale(159.155)},t.geoTransverseMercatorRaw=Ld,t.gray=function(t,n){return new cr(t,0,0,null==n?1:n)},t.greatest=at,t.greatestIndex=function(t,e=n){if(1===e.length)return nt(t,e);let r,i=-1,o=-1;for(const n of t)++o,(i<0?0===e(n,n):e(n,r)>0)&&(r=n,i=o);return i},t.group=P,t.groupSort=function(t,e,r){return(2!==e.length?I(D(t,e,r),(([t,e],[r,i])=>n(e,i)||n(t,r))):I(P(t,r),(([t,r],[i,o])=>e(r,o)||n(t,i)))).map((([t])=>t))},t.groups=z,t.hcl=pr,t.hierarchy=Vd,t.histogram=J,t.hsl=Xe,t.html=Nc,t.image=function(t,n){return new Promise((function(e,r){var i=new Image;for(var o in n)i[o]=n[o];i.onerror=r,i.onload=function(){e(i)},i.src=t}))},t.index=function(t,...n){return q(t,C,F,n)},t.indexes=function(t,...n){return q(t,Array.from,F,n)},t.interpolate=Vr,t.interpolateArray=function(t,n){return(Or(n)?Ir:Br)(t,n)},t.interpolateBasis=Nr,t.interpolateBasisClosed=kr,t.interpolateBlues=Gb,t.interpolateBrBG=ob,t.interpolateBuGn=Mb,t.interpolateBuPu=Ab,t.interpolateCividis=function(t){return t=Math.max(0,Math.min(1,t)),"rgb("+Math.max(0,Math.min(255,Math.round(-4.54-t*(35.34-t*(2381.73-t*(6402.7-t*(7024.72-2710.57*t)))))))+", "+Math.max(0,Math.min(255,Math.round(32.49+t*(170.73+t*(52.82-t*(131.46-t*(176.58-67.37*t)))))))+", "+Math.max(0,Math.min(255,Math.round(81.24+t*(442.36-t*(2482.43-t*(6167.24-t*(6614.94-2475.67*t)))))))+")"},t.interpolateCool=am,t.interpolateCubehelix=hi,t.interpolateCubehelixDefault=im,t.interpolateCubehelixLong=di,t.interpolateDate=Yr,t.interpolateDiscrete=function(t){var n=t.length;return function(e){return t[Math.max(0,Math.min(n-1,Math.floor(e*n)))]}},t.interpolateGnBu=Eb,t.interpolateGreens=Wb,t.interpolateGreys=Kb,t.interpolateHcl=fi,t.interpolateHclLong=si,t.interpolateHsl=ai,t.interpolateHslLong=ui,t.interpolateHue=function(t,n){var e=zr(+t,+n);return function(t){var n=e(t);return n-360*Math.floor(n/360)}},t.interpolateInferno=pm,t.interpolateLab=function(t,n){var e=Dr((t=ur(t)).l,(n=ur(n)).l),r=Dr(t.a,n.a),i=Dr(t.b,n.b),o=Dr(t.opacity,n.opacity);return function(n){return t.l=e(n),t.a=r(n),t.b=i(n),t.opacity=o(n),t+""}},t.interpolateMagma=dm,t.interpolateNumber=Lr,t.interpolateNumberArray=Ir,t.interpolateObject=jr,t.interpolateOrRd=kb,t.interpolateOranges=rm,t.interpolatePRGn=ub,t.interpolatePiYG=fb,t.interpolatePlasma=gm,t.interpolatePuBu=$b,t.interpolatePuBuGn=Pb,t.interpolatePuOr=lb,t.interpolatePuRd=Rb,t.interpolatePurples=Jb,t.interpolateRainbow=function(t){(t<0||t>1)&&(t-=Math.floor(t));var n=Math.abs(t-.5);return um.h=360*t-100,um.s=1.5-1.5*n,um.l=.8-.9*n,um+""},t.interpolateRdBu=db,t.interpolateRdGy=gb,t.interpolateRdPu=qb,t.interpolateRdYlBu=vb,t.interpolateRdYlGn=bb,t.interpolateReds=nm,t.interpolateRgb=Rr,t.interpolateRgbBasis=qr,t.interpolateRgbBasisClosed=Ur,t.interpolateRound=Wr,t.interpolateSinebow=function(t){var n;return t=(.5-t)*Math.PI,cm.r=255*(n=Math.sin(t))*n,cm.g=255*(n=Math.sin(t+fm))*n,cm.b=255*(n=Math.sin(t+sm))*n,cm+""},t.interpolateSpectral=xb,t.interpolateString=Gr,t.interpolateTransformCss=ni,t.interpolateTransformSvg=ei,t.interpolateTurbo=function(t){return t=Math.max(0,Math.min(1,t)),"rgb("+Math.max(0,Math.min(255,Math.round(34.61+t*(1172.33-t*(10793.56-t*(33300.12-t*(38394.49-14825.05*t)))))))+", "+Math.max(0,Math.min(255,Math.round(23.31+t*(557.33+t*(1225.33-t*(3574.96-t*(1073.77+707.56*t)))))))+", "+Math.max(0,Math.min(255,Math.round(27.2+t*(3211.1-t*(15327.97-t*(27814-t*(22569.18-6838.66*t)))))))+")"},t.interpolateViridis=hm,t.interpolateWarm=om,t.interpolateYlGn=Bb,t.interpolateYlGnBu=Ib,t.interpolateYlOrBr=Lb,t.interpolateYlOrRd=Hb,t.interpolateZoom=ii,t.interrupt=Vi,t.intersection=function(t,...n){t=new InternSet(t),n=n.map(_t);t:for(const e of t)for(const r of n)if(!r.has(e)){t.delete(e);continue t}return t},t.interval=function(t,n,e){var r=new Ni,i=n;return null==n?(r.restart(t,n,e),r):(r._restart=r.restart,r.restart=function(t,n,e){n=+n,e=null==e?Si():+e,r._restart((function o(a){a+=i,r._restart(o,i+=n,e),t(a)}),n,e)},r.restart(t,n,e),r)},t.isoFormat=R_,t.isoParse=q_,t.json=function(t,n){return fetch(t,n).then(Ac)},t.lab=ur,t.lch=function(t,n,e,r){return 1===arguments.length?dr(t):new gr(e,n,t,null==r?1:r)},t.least=function(t,e=n){let r,i=!1;if(1===e.length){let o;for(const a of t){const t=e(a);(i?n(t,o)<0:0===n(t,t))&&(r=a,o=t,i=!0)}}else for(const n of t)(i?e(n,r)<0:0===e(n,n))&&(r=n,i=!0);return r},t.leastIndex=dt,t.line=Ym,t.lineRadial=Zm,t.link=ax,t.linkHorizontal=function(){return ax(nx)},t.linkRadial=function(){const t=ax(rx);return t.angle=t.x,delete t.x,t.radius=t.y,delete t.y,t},t.linkVertical=function(){return ax(ex)},t.local=Jn,t.map=function(t,n){if("function"!=typeof t[Symbol.iterator])throw new TypeError("values is not iterable");if("function"!=typeof n)throw new TypeError("mapper is not a function");return Array.from(t,((e,r)=>n(e,r,t)))},t.matcher=Wt,t.max=tt,t.maxIndex=nt,t.mean=function(t,n){let e=0,r=0;if(void 0===n)for(let n of t)null!=n&&(n=+n)>=n&&(++e,r+=n);else{let i=-1;for(let o of t)null!=(o=n(o,++i,t))&&(o=+o)>=o&&(++e,r+=o)}if(e)return r/e},t.median=function(t,n){return ut(t,.5,n)},t.medianIndex=function(t,n){return ft(t,.5,n)},t.merge=st,t.min=et,t.minIndex=rt,t.mode=function(t,n){const e=new InternMap;if(void 0===n)for(let n of t)null!=n&&n>=n&&e.set(n,(e.get(n)||0)+1);else{let r=-1;for(let i of t)null!=(i=n(i,++r,t))&&i>=i&&e.set(i,(e.get(i)||0)+1)}let r,i=0;for(const[t,n]of e)n>i&&(i=n,r=t);return r},t.namespace=Ot,t.namespaces=It,t.nice=K,t.now=Si,t.pack=function(){var t=null,n=1,e=1,r=ep;function i(i){const o=up();return i.x=n/2,i.y=e/2,t?i.eachBefore(wp(t)).eachAfter(Mp(r,.5,o)).eachBefore(Tp(1)):i.eachBefore(wp(xp)).eachAfter(Mp(ep,1,o)).eachAfter(Mp(r,i.r/Math.min(n,e),o)).eachBefore(Tp(Math.min(n,e)/(2*i.r))),i}return i.radius=function(n){return arguments.length?(t=tp(n),i):t},i.size=function(t){return arguments.length?(n=+t[0],e=+t[1],i):[n,e]},i.padding=function(t){return arguments.length?(r="function"==typeof t?t:rp(+t),i):r},i},t.packEnclose=function(t){return cp(t,up())},t.packSiblings=function(t){return mp(t,up()),t},t.pairs=function(t,n=lt){const e=[];let r,i=!1;for(const o of t)i&&e.push(n(r,o)),r=o,i=!0;return e},t.partition=function(){var t=1,n=1,e=0,r=!1;function i(i){var o=i.height+1;return i.x0=i.y0=e,i.x1=t,i.y1=n/o,i.eachBefore(function(t,n){return function(r){r.children&&Sp(r,r.x0,t*(r.depth+1)/n,r.x1,t*(r.depth+2)/n);var i=r.x0,o=r.y0,a=r.x1-e,u=r.y1-e;a<i&&(i=a=(i+a)/2),u<o&&(o=u=(o+u)/2),r.x0=i,r.y0=o,r.x1=a,r.y1=u}}(n,o)),r&&i.eachBefore(Ap),i}return i.round=function(t){return arguments.length?(r=!!t,i):r},i.size=function(e){return arguments.length?(t=+e[0],n=+e[1],i):[t,n]},i.padding=function(t){return arguments.length?(e=+t,i):e},i},t.path=Oa,t.pathRound=function(t=3){return new Ia(+t)},t.permute=U,t.pie=function(){var t=Hm,n=jm,e=null,r=ym(0),i=ym(Em),o=ym(0);function a(a){var u,c,f,s,l,h=(a=qm(a)).length,d=0,p=new Array(h),g=new Array(h),y=+r.apply(this,arguments),v=Math.min(Em,Math.max(-Em,i.apply(this,arguments)-y)),_=Math.min(Math.abs(v)/h,o.apply(this,arguments)),b=_*(v<0?-1:1);for(u=0;u<h;++u)(l=g[p[u]=u]=+t(a[u],u,a))>0&&(d+=l);for(null!=n?p.sort((function(t,e){return n(g[t],g[e])})):null!=e&&p.sort((function(t,n){return e(a[t],a[n])})),u=0,f=d?(v-h*b)/d:0;u<h;++u,y=s)c=p[u],s=y+((l=g[c])>0?l*f:0)+b,g[c]={data:a[c],index:u,value:l,startAngle:y,endAngle:s,padAngle:_};return g}return a.value=function(n){return arguments.length?(t="function"==typeof n?n:ym(+n),a):t},a.sortValues=function(t){return arguments.length?(n=t,e=null,a):n},a.sort=function(t){return arguments.length?(e=t,n=null,a):e},a.startAngle=function(t){return arguments.length?(r="function"==typeof t?t:ym(+t),a):r},a.endAngle=function(t){return arguments.length?(i="function"==typeof t?t:ym(+t),a):i},a.padAngle=function(t){return arguments.length?(o="function"==typeof t?t:ym(+t),a):o},a},t.piecewise=pi,t.pointRadial=Qm,t.pointer=ee,t.pointers=function(t,n){return t.target&&(t=ne(t),void 0===n&&(n=t.currentTarget),t=t.touches||[t]),Array.from(t,(t=>ee(t,n)))},t.polygonArea=function(t){for(var n,e=-1,r=t.length,i=t[r-1],o=0;++e<r;)n=i,i=t[e],o+=n[1]*i[0]-n[0]*i[1];return o/2},t.polygonCentroid=function(t){for(var n,e,r=-1,i=t.length,o=0,a=0,u=t[i-1],c=0;++r<i;)n=u,u=t[r],c+=e=n[0]*u[1]-u[0]*n[1],o+=(n[0]+u[0])*e,a+=(n[1]+u[1])*e;return[o/(c*=3),a/c]},t.polygonContains=function(t,n){for(var e,r,i=t.length,o=t[i-1],a=n[0],u=n[1],c=o[0],f=o[1],s=!1,l=0;l<i;++l)e=(o=t[l])[0],(r=o[1])>u!=f>u&&a<(c-e)*(u-r)/(f-r)+e&&(s=!s),c=e,f=r;return s},t.polygonHull=function(t){if((e=t.length)<3)return null;var n,e,r=new Array(e),i=new Array(e);for(n=0;n<e;++n)r[n]=[+t[n][0],+t[n][1],n];for(r.sort(Xp),n=0;n<e;++n)i[n]=[r[n][0],-r[n][1]];var o=Gp(r),a=Gp(i),u=a[0]===o[0],c=a[a.length-1]===o[o.length-1],f=[];for(n=o.length-1;n>=0;--n)f.push(t[r[o[n]][2]]);for(n=+u;n<a.length-c;++n)f.push(t[r[a[n]][2]]);return f},t.polygonLength=function(t){for(var n,e,r=-1,i=t.length,o=t[i-1],a=o[0],u=o[1],c=0;++r<i;)n=a,e=u,n-=a=(o=t[r])[0],e-=u=o[1],c+=Math.hypot(n,e);return c},t.precisionFixed=lf,t.precisionPrefix=hf,t.precisionRound=df,t.quadtree=Dc,t.quantile=ut,t.quantileIndex=ft,t.quantileSorted=ct,t.quantize=function(t,n){for(var e=new Array(n),r=0;r<n;++r)e[r]=t(r/(n-1));return e},t.quickselect=it,t.radialArea=Km,t.radialLine=Zm,t.randomBates=tg,t.randomBernoulli=rg,t.randomBeta=ag,t.randomBinomial=ug,t.randomCauchy=fg,t.randomExponential=ng,t.randomGamma=og,t.randomGeometric=ig,t.randomInt=Zp,t.randomIrwinHall=Jp,t.randomLcg=function(t=Math.random()){let n=0|(0<=t&&t<1?t/hg:Math.abs(t));return()=>(n=1664525*n+1013904223|0,hg*(n>>>0))},t.randomLogNormal=Qp,t.randomLogistic=sg,t.randomNormal=Kp,t.randomPareto=eg,t.randomPoisson=lg,t.randomUniform=Wp,t.randomWeibull=cg,t.range=ht,t.rank=function(t,e=n){if("function"!=typeof t[Symbol.iterator])throw new TypeError("values is not iterable");let r=Array.from(t);const i=new Float64Array(r.length);2!==e.length&&(r=r.map(e),e=n);const o=(t,n)=>e(r[t],r[n]);let a,u;return(t=Uint32Array.from(r,((t,n)=>n))).sort(e===n?(t,n)=>B(r[t],r[n]):O(o)),t.forEach(((t,n)=>{const e=o(t,void 0===a?t:a);e>=0?((void 0===a||e>0)&&(a=t,u=n),i[t]=u):i[t]=NaN})),i},t.reduce=function(t,n,e){if("function"!=typeof n)throw new TypeError("reducer is not a function");const r=t[Symbol.iterator]();let i,o,a=-1;if(arguments.length<3){if(({done:i,value:e}=r.next()),i)return;++a}for(;({done:i,value:o}=r.next()),!i;)e=n(e,o,++a,t);return e},t.reverse=function(t){if("function"!=typeof t[Symbol.iterator])throw new TypeError("values is not iterable");return Array.from(t).reverse()},t.rgb=qe,t.ribbon=function(){return Za()},t.ribbonArrow=function(){return Za(Wa)},t.rollup=D,t.rollups=R,t.scaleBand=vg,t.scaleDiverging=function t(){var n=kg(j_()(xg));return n.copy=function(){return Y_(n,t())},pg.apply(n,arguments)},t.scaleDivergingLog=function t(){var n=qg(j_()).domain([.1,1,10]);return n.copy=function(){return Y_(n,t()).base(n.base())},pg.apply(n,arguments)},t.scaleDivergingPow=H_,t.scaleDivergingSqrt=function(){return H_.apply(null,arguments).exponent(.5)},t.scaleDivergingSymlog=function t(){var n=Og(j_());return n.copy=function(){return Y_(n,t()).constant(n.constant())},pg.apply(n,arguments)},t.scaleIdentity=function t(n){var e;function r(t){return null==t||isNaN(t=+t)?e:t}return r.invert=r,r.domain=r.range=function(t){return arguments.length?(n=Array.from(t,bg),r):n.slice()},r.unknown=function(t){return arguments.length?(e=t,r):e},r.copy=function(){return t(n).unknown(e)},n=arguments.length?Array.from(n,bg):[0,1],kg(r)},t.scaleImplicit=gg,t.scaleLinear=function t(){var n=Eg();return n.copy=function(){return Ag(n,t())},dg.apply(n,arguments),kg(n)},t.scaleLog=function t(){const n=qg(Sg()).domain([1,10]);return n.copy=()=>Ag(n,t()).base(n.base()),dg.apply(n,arguments),n},t.scaleOrdinal=yg,t.scalePoint=function(){return _g(vg.apply(null,arguments).paddingInner(1))},t.scalePow=Hg,t.scaleQuantile=function t(){var e,r=[],i=[],o=[];function a(){var t=0,n=Math.max(1,i.length);for(o=new Array(n-1);++t<n;)o[t-1]=ct(r,t/n);return u}function u(t){return null==t||isNaN(t=+t)?e:i[l(o,t)]}return u.invertExtent=function(t){var n=i.indexOf(t);return n<0?[NaN,NaN]:[n>0?o[n-1]:r[0],n<o.length?o[n]:r[r.length-1]]},u.domain=function(t){if(!arguments.length)return r.slice();r=[];for(let n of t)null==n||isNaN(n=+n)||r.push(n);return r.sort(n),a()},u.range=function(t){return arguments.length?(i=Array.from(t),a()):i.slice()},u.unknown=function(t){return arguments.length?(e=t,u):e},u.quantiles=function(){return o.slice()},u.copy=function(){return t().domain(r).range(i).unknown(e)},dg.apply(u,arguments)},t.scaleQuantize=function t(){var n,e=0,r=1,i=1,o=[.5],a=[0,1];function u(t){return null!=t&&t<=t?a[l(o,t,0,i)]:n}function c(){var t=-1;for(o=new Array(i);++t<i;)o[t]=((t+1)*r-(t-i)*e)/(i+1);return u}return u.domain=function(t){return arguments.length?([e,r]=t,e=+e,r=+r,c()):[e,r]},u.range=function(t){return arguments.length?(i=(a=Array.from(t)).length-1,c()):a.slice()},u.invertExtent=function(t){var n=a.indexOf(t);return n<0?[NaN,NaN]:n<1?[e,o[0]]:n>=i?[o[i-1],r]:[o[n-1],o[n]]},u.unknown=function(t){return arguments.length?(n=t,u):u},u.thresholds=function(){return o.slice()},u.copy=function(){return t().domain([e,r]).range(a).unknown(n)},dg.apply(kg(u),arguments)},t.scaleRadial=function t(){var n,e=Eg(),r=[0,1],i=!1;function o(t){var r=function(t){return Math.sign(t)*Math.sqrt(Math.abs(t))}(e(t));return isNaN(r)?n:i?Math.round(r):r}return o.invert=function(t){return e.invert(Xg(t))},o.domain=function(t){return arguments.length?(e.domain(t),o):e.domain()},o.range=function(t){return arguments.length?(e.range((r=Array.from(t,bg)).map(Xg)),o):r.slice()},o.rangeRound=function(t){return o.range(t).round(!0)},o.round=function(t){return arguments.length?(i=!!t,o):i},o.clamp=function(t){return arguments.length?(e.clamp(t),o):e.clamp()},o.unknown=function(t){return arguments.length?(n=t,o):n},o.copy=function(){return t(e.domain(),r).round(i).clamp(e.clamp()).unknown(n)},dg.apply(o,arguments),kg(o)},t.scaleSequential=function t(){var n=kg(B_()(xg));return n.copy=function(){return Y_(n,t())},pg.apply(n,arguments)},t.scaleSequentialLog=function t(){var n=qg(B_()).domain([1,10]);return n.copy=function(){return Y_(n,t()).base(n.base())},pg.apply(n,arguments)},t.scaleSequentialPow=L_,t.scaleSequentialQuantile=function t(){var e=[],r=xg;function i(t){if(null!=t&&!isNaN(t=+t))return r((l(e,t,1)-1)/(e.length-1))}return i.domain=function(t){if(!arguments.length)return e.slice();e=[];for(let n of t)null==n||isNaN(n=+n)||e.push(n);return e.sort(n),i},i.interpolator=function(t){return arguments.length?(r=t,i):r},i.range=function(){return e.map(((t,n)=>r(n/(e.length-1))))},i.quantiles=function(t){return Array.from({length:t+1},((n,r)=>ut(e,r/t)))},i.copy=function(){return t(r).domain(e)},pg.apply(i,arguments)},t.scaleSequentialSqrt=function(){return L_.apply(null,arguments).exponent(.5)},t.scaleSequentialSymlog=function t(){var n=Og(B_());return n.copy=function(){return Y_(n,t()).constant(n.constant())},pg.apply(n,arguments)},t.scaleSqrt=function(){return Hg.apply(null,arguments).exponent(.5)},t.scaleSymlog=function t(){var n=Og(Sg());return n.copy=function(){return Ag(n,t()).constant(n.constant())},dg.apply(n,arguments)},t.scaleThreshold=function t(){var n,e=[.5],r=[0,1],i=1;function o(t){return null!=t&&t<=t?r[l(e,t,0,i)]:n}return o.domain=function(t){return arguments.length?(e=Array.from(t),i=Math.min(e.length,r.length-1),o):e.slice()},o.range=function(t){return arguments.length?(r=Array.from(t),i=Math.min(e.length,r.length-1),o):r.slice()},o.invertExtent=function(t){var n=r.indexOf(t);return[e[n-1],e[n]]},o.unknown=function(t){return arguments.length?(n=t,o):n},o.copy=function(){return t().domain(e).range(r).unknown(n)},dg.apply(o,arguments)},t.scaleTime=function(){return dg.apply(O_(cv,fv,nv,Ky,wy,gy,ly,uy,oy,t.timeFormat).domain([new Date(2e3,0,1),new Date(2e3,0,2)]),arguments)},t.scaleUtc=function(){return dg.apply(O_(av,uv,rv,Jy,qy,vy,dy,fy,oy,t.utcFormat).domain([Date.UTC(2e3,0,1),Date.UTC(2e3,0,2)]),arguments)},t.scan=function(t,n){const e=dt(t,n);return e<0?void 0:e},t.schemeAccent=V_,t.schemeBlues=Xb,t.schemeBrBG=ib,t.schemeBuGn=wb,t.schemeBuPu=Tb,t.schemeCategory10=G_,t.schemeDark2=W_,t.schemeGnBu=Sb,t.schemeGreens=Vb,t.schemeGreys=Zb,t.schemeOrRd=Nb,t.schemeOranges=em,t.schemePRGn=ab,t.schemePaired=Z_,t.schemePastel1=K_,t.schemePastel2=Q_,t.schemePiYG=cb,t.schemePuBu=zb,t.schemePuBuGn=Cb,t.schemePuOr=sb,t.schemePuRd=Db,t.schemePurples=Qb,t.schemeRdBu=hb,t.schemeRdGy=pb,t.schemeRdPu=Fb,t.schemeRdYlBu=yb,t.schemeRdYlGn=_b,t.schemeReds=tm,t.schemeSet1=J_,t.schemeSet2=tb,t.schemeSet3=nb,t.schemeSpectral=mb,t.schemeTableau10=eb,t.schemeYlGn=Ob,t.schemeYlGnBu=Ub,t.schemeYlOrBr=Yb,t.schemeYlOrRd=jb,t.select=Kn,t.selectAll=function(t){return"string"==typeof t?new Wn([document.querySelectorAll(t)],[document.documentElement]):new Wn([Xt(t)],Vn)},t.selection=Zn,t.selector=Ht,t.selectorAll=Vt,t.shuffle=pt,t.shuffler=gt,t.some=function(t,n){if("function"!=typeof n)throw new TypeError("test is not a function");let e=-1;for(const r of t)if(n(r,++e,t))return!0;return!1},t.sort=I,t.stack=function(){var t=ym([]),n=dw,e=hw,r=pw;function i(i){var o,a,u=Array.from(t.apply(this,arguments),gw),c=u.length,f=-1;for(const t of i)for(o=0,++f;o<c;++o)(u[o][f]=[0,+r(t,u[o].key,f,i)]).data=t;for(o=0,a=qm(n(u));o<c;++o)u[a[o]].index=o;return e(u,a),u}return i.keys=function(n){return arguments.length?(t="function"==typeof n?n:ym(Array.from(n)),i):t},i.value=function(t){return arguments.length?(r="function"==typeof t?t:ym(+t),i):r},i.order=function(t){return arguments.length?(n=null==t?dw:"function"==typeof t?t:ym(Array.from(t)),i):n},i.offset=function(t){return arguments.length?(e=null==t?hw:t,i):e},i},t.stackOffsetDiverging=function(t,n){if((u=t.length)>0)for(var e,r,i,o,a,u,c=0,f=t[n[0]].length;c<f;++c)for(o=a=0,e=0;e<u;++e)(i=(r=t[n[e]][c])[1]-r[0])>0?(r[0]=o,r[1]=o+=i):i<0?(r[1]=a,r[0]=a+=i):(r[0]=0,r[1]=i)},t.stackOffsetExpand=function(t,n){if((r=t.length)>0){for(var e,r,i,o=0,a=t[0].length;o<a;++o){for(i=e=0;e<r;++e)i+=t[e][o][1]||0;if(i)for(e=0;e<r;++e)t[e][o][1]/=i}hw(t,n)}},t.stackOffsetNone=hw,t.stackOffsetSilhouette=function(t,n){if((e=t.length)>0){for(var e,r=0,i=t[n[0]],o=i.length;r<o;++r){for(var a=0,u=0;a<e;++a)u+=t[a][r][1]||0;i[r][1]+=i[r][0]=-u/2}hw(t,n)}},t.stackOffsetWiggle=function(t,n){if((i=t.length)>0&&(r=(e=t[n[0]]).length)>0){for(var e,r,i,o=0,a=1;a<r;++a){for(var u=0,c=0,f=0;u<i;++u){for(var s=t[n[u]],l=s[a][1]||0,h=(l-(s[a-1][1]||0))/2,d=0;d<u;++d){var p=t[n[d]];h+=(p[a][1]||0)-(p[a-1][1]||0)}c+=l,f+=h*l}e[a-1][1]+=e[a-1][0]=o,c&&(o-=f/c)}e[a-1][1]+=e[a-1][0]=o,hw(t,n)}},t.stackOrderAppearance=yw,t.stackOrderAscending=_w,t.stackOrderDescending=function(t){return _w(t).reverse()},t.stackOrderInsideOut=function(t){var n,e,r=t.length,i=t.map(bw),o=yw(t),a=0,u=0,c=[],f=[];for(n=0;n<r;++n)e=o[n],a<u?(a+=i[e],c.push(e)):(u+=i[e],f.push(e));return f.reverse().concat(c)},t.stackOrderNone=dw,t.stackOrderReverse=function(t){return dw(t).reverse()},t.stratify=function(){var t,n=Cp,e=Pp;function r(r){var i,o,a,u,c,f,s,l,h=Array.from(r),d=n,p=e,g=new Map;if(null!=t){const n=h.map(((n,e)=>function(t){t=`${t}`;let n=t.length;$p(t,n-1)&&!$p(t,n-2)&&(t=t.slice(0,-1));return"/"===t[0]?t:`/${t}`}(t(n,e,r)))),e=n.map(zp),i=new Set(n).add("");for(const t of e)i.has(t)||(i.add(t),n.push(t),e.push(zp(t)),h.push(kp));d=(t,e)=>n[e],p=(t,n)=>e[n]}for(a=0,i=h.length;a<i;++a)o=h[a],f=h[a]=new Jd(o),null!=(s=d(o,a,r))&&(s+="")&&(l=f.id=s,g.set(l,g.has(l)?Np:f)),null!=(s=p(o,a,r))&&(s+="")&&(f.parent=s);for(a=0;a<i;++a)if(s=(f=h[a]).parent){if(!(c=g.get(s)))throw new Error("missing: "+s);if(c===Np)throw new Error("ambiguous: "+s);c.children?c.children.push(f):c.children=[f],f.parent=c}else{if(u)throw new Error("multiple roots");u=f}if(!u)throw new Error("no root");if(null!=t){for(;u.data===kp&&1===u.children.length;)u=u.children[0],--i;for(let t=h.length-1;t>=0&&(f=h[t]).data===kp;--t)f.data=null}if(u.parent=Ep,u.eachBefore((function(t){t.depth=t.parent.depth+1,--i})).eachBefore(Qd),u.parent=null,i>0)throw new Error("cycle");return u}return r.id=function(t){return arguments.length?(n=tp(t),r):n},r.parentId=function(t){return arguments.length?(e=tp(t),r):e},r.path=function(n){return arguments.length?(t=tp(n),r):t},r},t.style=bn,t.subset=function(t,n){return bt(n,t)},t.sum=function(t,n){let e=0;if(void 0===n)for(let n of t)(n=+n)&&(e+=n);else{let r=-1;for(let i of t)(i=+n(i,++r,t))&&(e+=i)}return e},t.superset=bt,t.svg=kc,t.symbol=function(t,n){let e=null,r=km(i);function i(){let i;if(e||(e=i=r()),t.apply(this,arguments).draw(e,+n.apply(this,arguments)),i)return e=null,i+""||null}return t="function"==typeof t?t:ym(t||fx),n="function"==typeof n?n:ym(void 0===n?64:+n),i.type=function(n){return arguments.length?(t="function"==typeof n?n:ym(n),i):t},i.size=function(t){return arguments.length?(n="function"==typeof t?t:ym(+t),i):n},i.context=function(t){return arguments.length?(e=null==t?null:t,i):e},i},t.symbolAsterisk=cx,t.symbolCircle=fx,t.symbolCross=sx,t.symbolDiamond=dx,t.symbolDiamond2=px,t.symbolPlus=gx,t.symbolSquare=yx,t.symbolSquare2=vx,t.symbolStar=xx,t.symbolTimes=Px,t.symbolTriangle=Mx,t.symbolTriangle2=Ax,t.symbolWye=Cx,t.symbolX=Px,t.symbols=zx,t.symbolsFill=zx,t.symbolsStroke=$x,t.text=xc,t.thresholdFreedmanDiaconis=function(t,n,e){const r=_(t),i=ut(t,.75)-ut(t,.25);return r&&i?Math.ceil((e-n)/(2*i*Math.pow(r,-1/3))):1},t.thresholdScott=function(t,n,e){const r=_(t),i=M(t);return r&&i?Math.ceil((e-n)*Math.cbrt(r)/(3.49*i)):1},t.thresholdSturges=Q,t.tickFormat=Ng,t.tickIncrement=W,t.tickStep=Z,t.ticks=V,t.timeDay=gy,t.timeDays=yy,t.timeFormatDefaultLocale=z_,t.timeFormatLocale=dv,t.timeFriday=Ey,t.timeFridays=Dy,t.timeHour=ly,t.timeHours=hy,t.timeInterval=Wg,t.timeMillisecond=Zg,t.timeMilliseconds=Kg,t.timeMinute=uy,t.timeMinutes=cy,t.timeMonday=My,t.timeMondays=Cy,t.timeMonth=Ky,t.timeMonths=Qy,t.timeSaturday=Ny,t.timeSaturdays=Ry,t.timeSecond=oy,t.timeSeconds=ay,t.timeSunday=wy,t.timeSundays=ky,t.timeThursday=Sy,t.timeThursdays=$y,t.timeTickInterval=fv,t.timeTicks=cv,t.timeTuesday=Ty,t.timeTuesdays=Py,t.timeWednesday=Ay,t.timeWednesdays=zy,t.timeWeek=wy,t.timeWeeks=ky,t.timeYear=nv,t.timeYears=ev,t.timeout=Di,t.timer=ki,t.timerFlush=Ci,t.transition=yo,t.transpose=yt,t.tree=function(){var t=Dp,n=1,e=1,r=null;function i(i){var c=function(t){for(var n,e,r,i,o,a=new Ip(t,0),u=[a];n=u.pop();)if(r=n._.children)for(n.children=new Array(o=r.length),i=o-1;i>=0;--i)u.push(e=n.children[i]=new Ip(r[i],i)),e.parent=n;return(a.parent=new Ip(null,0)).children=[a],a}(i);if(c.eachAfter(o),c.parent.m=-c.z,c.eachBefore(a),r)i.eachBefore(u);else{var f=i,s=i,l=i;i.eachBefore((function(t){t.x<f.x&&(f=t),t.x>s.x&&(s=t),t.depth>l.depth&&(l=t)}));var h=f===s?1:t(f,s)/2,d=h-f.x,p=n/(s.x+h+d),g=e/(l.depth||1);i.eachBefore((function(t){t.x=(t.x+d)*p,t.y=t.depth*g}))}return i}function o(n){var e=n.children,r=n.parent.children,i=n.i?r[n.i-1]:null;if(e){!function(t){for(var n,e=0,r=0,i=t.children,o=i.length;--o>=0;)(n=i[o]).z+=e,n.m+=e,e+=n.s+(r+=n.c)}(n);var o=(e[0].z+e[e.length-1].z)/2;i?(n.z=i.z+t(n._,i._),n.m=n.z-o):n.z=o}else i&&(n.z=i.z+t(n._,i._));n.parent.A=function(n,e,r){if(e){for(var i,o=n,a=n,u=e,c=o.parent.children[0],f=o.m,s=a.m,l=u.m,h=c.m;u=Fp(u),o=Rp(o),u&&o;)c=Rp(c),(a=Fp(a)).a=n,(i=u.z+l-o.z-f+t(u._,o._))>0&&(qp(Up(u,n,r),n,i),f+=i,s+=i),l+=u.m,f+=o.m,h+=c.m,s+=a.m;u&&!Fp(a)&&(a.t=u,a.m+=l-s),o&&!Rp(c)&&(c.t=o,c.m+=f-h,r=n)}return r}(n,i,n.parent.A||r[0])}function a(t){t._.x=t.z+t.parent.m,t.m+=t.parent.m}function u(t){t.x*=n,t.y=t.depth*e}return i.separation=function(n){return arguments.length?(t=n,i):t},i.size=function(t){return arguments.length?(r=!1,n=+t[0],e=+t[1],i):r?null:[n,e]},i.nodeSize=function(t){return arguments.length?(r=!0,n=+t[0],e=+t[1],i):r?[n,e]:null},i},t.treemap=function(){var t=Lp,n=!1,e=1,r=1,i=[0],o=ep,a=ep,u=ep,c=ep,f=ep;function s(t){return t.x0=t.y0=0,t.x1=e,t.y1=r,t.eachBefore(l),i=[0],n&&t.eachBefore(Ap),t}function l(n){var e=i[n.depth],r=n.x0+e,s=n.y0+e,l=n.x1-e,h=n.y1-e;l<r&&(r=l=(r+l)/2),h<s&&(s=h=(s+h)/2),n.x0=r,n.y0=s,n.x1=l,n.y1=h,n.children&&(e=i[n.depth+1]=o(n)/2,r+=f(n)-e,s+=a(n)-e,(l-=u(n)-e)<r&&(r=l=(r+l)/2),(h-=c(n)-e)<s&&(s=h=(s+h)/2),t(n,r,s,l,h))}return s.round=function(t){return arguments.length?(n=!!t,s):n},s.size=function(t){return arguments.length?(e=+t[0],r=+t[1],s):[e,r]},s.tile=function(n){return arguments.length?(t=np(n),s):t},s.padding=function(t){return arguments.length?s.paddingInner(t).paddingOuter(t):s.paddingInner()},s.paddingInner=function(t){return arguments.length?(o="function"==typeof t?t:rp(+t),s):o},s.paddingOuter=function(t){return arguments.length?s.paddingTop(t).paddingRight(t).paddingBottom(t).paddingLeft(t):s.paddingTop()},s.paddingTop=function(t){return arguments.length?(a="function"==typeof t?t:rp(+t),s):a},s.paddingRight=function(t){return arguments.length?(u="function"==typeof t?t:rp(+t),s):u},s.paddingBottom=function(t){return arguments.length?(c="function"==typeof t?t:rp(+t),s):c},s.paddingLeft=function(t){return arguments.length?(f="function"==typeof t?t:rp(+t),s):f},s},t.treemapBinary=function(t,n,e,r,i){var o,a,u=t.children,c=u.length,f=new Array(c+1);for(f[0]=a=o=0;o<c;++o)f[o+1]=a+=u[o].value;!function t(n,e,r,i,o,a,c){if(n>=e-1){var s=u[n];return s.x0=i,s.y0=o,s.x1=a,void(s.y1=c)}var l=f[n],h=r/2+l,d=n+1,p=e-1;for(;d<p;){var g=d+p>>>1;f[g]<h?d=g+1:p=g}h-f[d-1]<f[d]-h&&n+1<d&&--d;var y=f[d]-l,v=r-y;if(a-i>c-o){var _=r?(i*v+a*y)/r:a;t(n,d,y,i,o,_,c),t(d,e,v,_,o,a,c)}else{var b=r?(o*v+c*y)/r:c;t(n,d,y,i,o,a,b),t(d,e,v,i,b,a,c)}}(0,c,t.value,n,e,r,i)},t.treemapDice=Sp,t.treemapResquarify=jp,t.treemapSlice=Op,t.treemapSliceDice=function(t,n,e,r,i){(1&t.depth?Op:Sp)(t,n,e,r,i)},t.treemapSquarify=Lp,t.tsv=Tc,t.tsvFormat=hc,t.tsvFormatBody=dc,t.tsvFormatRow=gc,t.tsvFormatRows=pc,t.tsvFormatValue=yc,t.tsvParse=sc,t.tsvParseRows=lc,t.union=function(...t){const n=new InternSet;for(const e of t)for(const t of e)n.add(t);return n},t.unixDay=by,t.unixDays=my,t.utcDay=vy,t.utcDays=_y,t.utcFriday=Yy,t.utcFridays=Wy,t.utcHour=dy,t.utcHours=py,t.utcMillisecond=Zg,t.utcMilliseconds=Kg,t.utcMinute=fy,t.utcMinutes=sy,t.utcMonday=Uy,t.utcMondays=Hy,t.utcMonth=Jy,t.utcMonths=tv,t.utcSaturday=Ly,t.utcSaturdays=Zy,t.utcSecond=oy,t.utcSeconds=ay,t.utcSunday=qy,t.utcSundays=jy,t.utcThursday=By,t.utcThursdays=Vy,t.utcTickInterval=uv,t.utcTicks=av,t.utcTuesday=Iy,t.utcTuesdays=Xy,t.utcWednesday=Oy,t.utcWednesdays=Gy,t.utcWeek=qy,t.utcWeeks=jy,t.utcYear=rv,t.utcYears=iv,t.variance=w,t.version="7.8.4",t.window=gn,t.xml=Ec,t.zip=function(){return yt(arguments)},t.zoom=function(){var t,n,e,r=Ew,i=Nw,o=zw,a=Cw,u=Pw,c=[0,1/0],f=[[-1/0,-1/0],[1/0,1/0]],s=250,l=ii,h=Dt("start","zoom","end"),d=500,p=150,g=0,y=10;function v(t){t.property("__zoom",kw).on("wheel.zoom",T,{passive:!1}).on("mousedown.zoom",A).on("dblclick.zoom",S).filter(u).on("touchstart.zoom",E).on("touchmove.zoom",N).on("touchend.zoom touchcancel.zoom",k).style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function _(t,n){return(n=Math.max(c[0],Math.min(c[1],n)))===t.k?t:new ww(n,t.x,t.y)}function b(t,n,e){var r=n[0]-e[0]*t.k,i=n[1]-e[1]*t.k;return r===t.x&&i===t.y?t:new ww(t.k,r,i)}function m(t){return[(+t[0][0]+ +t[1][0])/2,(+t[0][1]+ +t[1][1])/2]}function x(t,n,e,r){t.on("start.zoom",(function(){w(this,arguments).event(r).start()})).on("interrupt.zoom end.zoom",(function(){w(this,arguments).event(r).end()})).tween("zoom",(function(){var t=this,o=arguments,a=w(t,o).event(r),u=i.apply(t,o),c=null==e?m(u):"function"==typeof e?e.apply(t,o):e,f=Math.max(u[1][0]-u[0][0],u[1][1]-u[0][1]),s=t.__zoom,h="function"==typeof n?n.apply(t,o):n,d=l(s.invert(c).concat(f/s.k),h.invert(c).concat(f/h.k));return function(t){if(1===t)t=h;else{var n=d(t),e=f/n[2];t=new ww(e,c[0]-n[0]*e,c[1]-n[1]*e)}a.zoom(null,t)}}))}function w(t,n,e){return!e&&t.__zooming||new M(t,n)}function M(t,n){this.that=t,this.args=n,this.active=0,this.sourceEvent=null,this.extent=i.apply(t,n),this.taps=0}function T(t,...n){if(r.apply(this,arguments)){var e=w(this,n).event(t),i=this.__zoom,u=Math.max(c[0],Math.min(c[1],i.k*Math.pow(2,a.apply(this,arguments)))),s=ee(t);if(e.wheel)e.mouse[0][0]===s[0]&&e.mouse[0][1]===s[1]||(e.mouse[1]=i.invert(e.mouse[0]=s)),clearTimeout(e.wheel);else{if(i.k===u)return;e.mouse=[s,i.invert(s)],Vi(this),e.start()}Sw(t),e.wheel=setTimeout((function(){e.wheel=null,e.end()}),p),e.zoom("mouse",o(b(_(i,u),e.mouse[0],e.mouse[1]),e.extent,f))}}function A(t,...n){if(!e&&r.apply(this,arguments)){var i=t.currentTarget,a=w(this,n,!0).event(t),u=Kn(t.view).on("mousemove.zoom",(function(t){if(Sw(t),!a.moved){var n=t.clientX-s,e=t.clientY-l;a.moved=n*n+e*e>g}a.event(t).zoom("mouse",o(b(a.that.__zoom,a.mouse[0]=ee(t,i),a.mouse[1]),a.extent,f))}),!0).on("mouseup.zoom",(function(t){u.on("mousemove.zoom mouseup.zoom",null),ce(t.view,a.moved),Sw(t),a.event(t).end()}),!0),c=ee(t,i),s=t.clientX,l=t.clientY;ue(t.view),Aw(t),a.mouse=[c,this.__zoom.invert(c)],Vi(this),a.start()}}function S(t,...n){if(r.apply(this,arguments)){var e=this.__zoom,a=ee(t.changedTouches?t.changedTouches[0]:t,this),u=e.invert(a),c=e.k*(t.shiftKey?.5:2),l=o(b(_(e,c),a,u),i.apply(this,n),f);Sw(t),s>0?Kn(this).transition().duration(s).call(x,l,a,t):Kn(this).call(v.transform,l,a,t)}}function E(e,...i){if(r.apply(this,arguments)){var o,a,u,c,f=e.touches,s=f.length,l=w(this,i,e.changedTouches.length===s).event(e);for(Aw(e),a=0;a<s;++a)c=[c=ee(u=f[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&&(n=c[0],t=setTimeout((function(){t=null}),d)),Vi(this),l.start())}}function N(t,...n){if(this.__zooming){var e,r,i,a,u=w(this,n).event(t),c=t.changedTouches,s=c.length;for(Sw(t),e=0;e<s;++e)i=ee(r=c[e],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],h=u.touch0[1],d=u.touch1[0],p=u.touch1[1],g=(g=d[0]-l[0])*g+(g=d[1]-l[1])*g,y=(y=p[0]-h[0])*y+(y=p[1]-h[1])*y;r=_(r,Math.sqrt(g/y)),i=[(l[0]+d[0])/2,(l[1]+d[1])/2],a=[(h[0]+p[0])/2,(h[1]+p[1])/2]}else{if(!u.touch0)return;i=u.touch0[0],a=u.touch0[1]}u.zoom("touch",o(b(r,i,a),u.extent,f))}}function k(t,...r){if(this.__zooming){var i,o,a=w(this,r).event(t),u=t.changedTouches,c=u.length;for(Aw(t),e&&clearTimeout(e),e=setTimeout((function(){e=null}),d),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=ee(o,this),Math.hypot(n[0]-o[0],n[1]-o[1])<y)){var f=Kn(this).on("dblclick.zoom");f&&f.apply(this,arguments)}}}return v.transform=function(t,n,e,r){var i=t.selection?t.selection():t;i.property("__zoom",kw),t!==i?x(t,n,e,r):i.interrupt().each((function(){w(this,arguments).event(r).start().zoom(null,"function"==typeof n?n.apply(this,arguments):n).end()}))},v.scaleBy=function(t,n,e,r){v.scaleTo(t,(function(){return this.__zoom.k*("function"==typeof n?n.apply(this,arguments):n)}),e,r)},v.scaleTo=function(t,n,e,r){v.transform(t,(function(){var t=i.apply(this,arguments),r=this.__zoom,a=null==e?m(t):"function"==typeof e?e.apply(this,arguments):e,u=r.invert(a),c="function"==typeof n?n.apply(this,arguments):n;return o(b(_(r,c),a,u),t,f)}),e,r)},v.translateBy=function(t,n,e,r){v.transform(t,(function(){return o(this.__zoom.translate("function"==typeof n?n.apply(this,arguments):n,"function"==typeof e?e.apply(this,arguments):e),i.apply(this,arguments),f)}),null,r)},v.translateTo=function(t,n,e,r,a){v.transform(t,(function(){var t=i.apply(this,arguments),a=this.__zoom,u=null==r?m(t):"function"==typeof r?r.apply(this,arguments):r;return o(Mw.translate(u[0],u[1]).scale(a.k).translate("function"==typeof n?-n.apply(this,arguments):-n,"function"==typeof e?-e.apply(this,arguments):-e),t,f)}),r,a)},M.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,n){return this.mouse&&"mouse"!==t&&(this.mouse[1]=n.invert(this.mouse[0])),this.touch0&&"touch"!==t&&(this.touch0[1]=n.invert(this.touch0[0])),this.touch1&&"touch"!==t&&(this.touch1[1]=n.invert(this.touch1[0])),this.that.__zoom=n,this.emit("zoom"),this},end:function(){return 0==--this.active&&(delete this.that.__zooming,this.emit("end")),this},emit:function(t){var n=Kn(this.that).datum();h.call(t,this.that,new xw(t,{sourceEvent:this.sourceEvent,target:v,type:t,transform:this.that.__zoom,dispatch:h}),n)}},v.wheelDelta=function(t){return arguments.length?(a="function"==typeof t?t:mw(+t),v):a},v.filter=function(t){return arguments.length?(r="function"==typeof t?t:mw(!!t),v):r},v.touchable=function(t){return arguments.length?(u="function"==typeof t?t:mw(!!t),v):u},v.extent=function(t){return arguments.length?(i="function"==typeof t?t:mw([[+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?(f[0][0]=+t[0][0],f[1][0]=+t[1][0],f[0][1]=+t[0][1],f[1][1]=+t[1][1],v):[[f[0][0],f[0][1]],[f[1][0],f[1][1]]]},v.constrain=function(t){return arguments.length?(o=t,v):o},v.duration=function(t){return arguments.length?(s=+t,v):s},v.interpolate=function(t){return arguments.length?(l=t,v):l},v.on=function(){var t=h.on.apply(h,arguments);return t===h?v:t},v.clickDistance=function(t){return arguments.length?(g=(t=+t)*t,v):Math.sqrt(g)},v.tapDistance=function(t){return arguments.length?(y=+t,v):y},v},t.zoomIdentity=Mw,t.zoomTransform=Tw}));
diff --git a/godev/third_party/d3@7.8.4/package.json b/godev/third_party/d3@7.8.4/package.json
new file mode 100644
index 0000000..66cfd45
--- /dev/null
+++ b/godev/third_party/d3@7.8.4/package.json
@@ -0,0 +1,84 @@
+{
+  "name": "d3",
+  "version": "7.8.4",
+  "description": "Data-Driven Documents",
+  "homepage": "https://d3js.org",
+  "repository": {
+    "type": "git",
+    "url": "https://github.com/d3/d3.git"
+  },
+  "keywords": [
+    "d3",
+    "dom",
+    "visualization",
+    "svg",
+    "animation",
+    "canvas"
+  ],
+  "license": "ISC",
+  "author": {
+    "name": "Mike Bostock",
+    "url": "https://bost.ocks.org/mike"
+  },
+  "type": "module",
+  "files": [
+    "dist/**/*.js",
+    "src/**/*.js"
+  ],
+  "module": "src/index.js",
+  "main": "src/index.js",
+  "jsdelivr": "dist/d3.min.js",
+  "unpkg": "dist/d3.min.js",
+  "exports": {
+    "umd": "./dist/d3.min.js",
+    "default": "./src/index.js"
+  },
+  "dependencies": {
+    "d3-array": "3",
+    "d3-axis": "3",
+    "d3-brush": "3",
+    "d3-chord": "3",
+    "d3-color": "3",
+    "d3-contour": "4",
+    "d3-delaunay": "6",
+    "d3-dispatch": "3",
+    "d3-drag": "3",
+    "d3-dsv": "3",
+    "d3-ease": "3",
+    "d3-fetch": "3",
+    "d3-force": "3",
+    "d3-format": "3",
+    "d3-geo": "3",
+    "d3-hierarchy": "3",
+    "d3-interpolate": "3",
+    "d3-path": "3",
+    "d3-polygon": "3",
+    "d3-quadtree": "3",
+    "d3-random": "3",
+    "d3-scale": "4",
+    "d3-scale-chromatic": "3",
+    "d3-selection": "3",
+    "d3-shape": "3",
+    "d3-time": "3",
+    "d3-time-format": "4",
+    "d3-timer": "3",
+    "d3-transition": "3",
+    "d3-zoom": "3"
+  },
+  "devDependencies": {
+    "@rollup/plugin-json": "6",
+    "@rollup/plugin-node-resolve": "15",
+    "eslint": "8",
+    "mocha": "10",
+    "rollup": "3",
+    "rollup-plugin-terser": "7"
+  },
+  "scripts": {
+    "test": "mocha 'test/**/*-test.js' && eslint src test",
+    "prepublishOnly": "rm -rf dist && rollup -c",
+    "postpublish": "git push && git push --tags && cd ../d3.github.com && git pull && cp ../d3/dist/d3.js d3.v${npm_package_version%%.*}.js && cp ../d3/dist/d3.min.js d3.v${npm_package_version%%.*}.min.js && git add d3.v${npm_package_version%%.*}.js d3.v${npm_package_version%%.*}.min.js && git commit -m \"d3 ${npm_package_version}\" && git push && cd -"
+  },
+  "engines": {
+    "node": ">=12"
+  }
+}