From 8a94a513dba8e8a7242be98c763dd877fb20dae0 Mon Sep 17 00:00:00 2001 From: NebulaOnion Date: Wed, 21 Dec 2022 15:51:05 +0000 Subject: [PATCH 001/169] Add contributing section to readme --- README.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 6233f37..89a2e6d 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,11 @@ -Contribute at https://git.anonymousland.org/anonymousland/anonymousland +## Contributing + +Thank you very much for reading this. Contributions are very welcome, to contribute, just fork the repository, do the changes and open a pull request. + +You can contribute either on our own [Git](https://git.anonymousland.org/anonymousland/anonymousland) or on any other mirror like our [GitHub](https://github.com/anonyland/anonymousland) and [Codeberg](https://codeberg.org/anonymousland/anonymousland). ## Contact From 3c9137a7aa4208ceb3dc8994d464d263c5fbef96 Mon Sep 17 00:00:00 2001 From: NebulaOnion Date: Wed, 21 Dec 2022 15:57:58 +0000 Subject: [PATCH 002/169] Add license section --- README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/README.md b/README.md index 89a2e6d..8fe3b9f 100644 --- a/README.md +++ b/README.md @@ -12,6 +12,10 @@ Thank you very much for reading this. Contributions are very welcome, to contrib You can contribute either on our own [Git](https://git.anonymousland.org/anonymousland/anonymousland) or on any other mirror like our [GitHub](https://github.com/anonyland/anonymousland) and [Codeberg](https://codeberg.org/anonymousland/anonymousland). +## License + +All content produced by us is licensed under public domain using the [CC0 license](https://creativecommons.org/share-your-work/public-domain/cc0/). + ## Contact Click [here](https://matrix.to/#/#lounge:anonymousland.org) to join our Matrix Chatroom and [here](https://matrix.to/#/#anonymousland:anonymousland.org) to join our Matrix space. \ No newline at end of file From a24e27080f9825d7ba0fd61f15c9f1472e61a0ce Mon Sep 17 00:00:00 2001 From: NebulaOnion Date: Wed, 21 Dec 2022 16:02:11 +0000 Subject: [PATCH 003/169] Improve contributing section --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 8fe3b9f..6567f22 100644 --- a/README.md +++ b/README.md @@ -12,6 +12,8 @@ Thank you very much for reading this. Contributions are very welcome, to contrib You can contribute either on our own [Git](https://git.anonymousland.org/anonymousland/anonymousland) or on any other mirror like our [GitHub](https://github.com/anonyland/anonymousland) and [Codeberg](https://codeberg.org/anonymousland/anonymousland). +If you do not know where to start, take a look at the [issues](https://git.anonymousland.org/anonymousland/anonymousland/issues) for this repository, you can also take a look at our site-wide [issues list](https://git.anonymousland.org/anonymousland/anonymousland-suggestions-issues). + ## License All content produced by us is licensed under public domain using the [CC0 license](https://creativecommons.org/share-your-work/public-domain/cc0/). From c61e595b277ed6508eb57e2a86eef655b5875475 Mon Sep 17 00:00:00 2001 From: NebulaOnion Date: Wed, 21 Dec 2022 16:11:49 +0000 Subject: [PATCH 004/169] Utilize bold and italics --- README.md | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 6567f22..8914067 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,7 @@ # **[Anonymousland](https://anonymousland.org)** v1.08 +> Anonymity, Privacy, Security +
[![Build Status](https://drone.anonymousland.org/api/badges/anonymousland/anonymousland/status.svg)](https://drone.anonymousland.org/anonymousland/anonymousland) @@ -8,16 +10,16 @@ ## Contributing -Thank you very much for reading this. Contributions are very welcome, to contribute, just fork the repository, do the changes and open a pull request. +**Thank you very much for reading this.** Contributions are very welcome, to contribute, just fork the repository, do the changes and open a pull request. You can contribute either on our own [Git](https://git.anonymousland.org/anonymousland/anonymousland) or on any other mirror like our [GitHub](https://github.com/anonyland/anonymousland) and [Codeberg](https://codeberg.org/anonymousland/anonymousland). -If you do not know where to start, take a look at the [issues](https://git.anonymousland.org/anonymousland/anonymousland/issues) for this repository, you can also take a look at our site-wide [issues list](https://git.anonymousland.org/anonymousland/anonymousland-suggestions-issues). +If you do not know where to start, take a look at the [issues](https://git.anonymousland.org/anonymousland/anonymousland/issues) for this repository, you can also take a look at our *site-wide* [issues list](https://git.anonymousland.org/anonymousland/anonymousland-suggestions-issues). ## License -All content produced by us is licensed under public domain using the [CC0 license](https://creativecommons.org/share-your-work/public-domain/cc0/). +All content produced by us is licensed under *public domain* using the [CC0 license](https://creativecommons.org/share-your-work/public-domain/cc0/). ## Contact -Click [here](https://matrix.to/#/#lounge:anonymousland.org) to join our Matrix Chatroom and [here](https://matrix.to/#/#anonymousland:anonymousland.org) to join our Matrix space. \ No newline at end of file +Click [here](https://matrix.to/#/#lounge:anonymousland.org) to join our Matrix *chatroom* and [here](https://matrix.to/#/#anonymousland:anonymousland.org) to join our Matrix *space.* \ No newline at end of file From 1d9062978a04d3b1f948f21f3ebc9754b9649d95 Mon Sep 17 00:00:00 2001 From: NebulaOnion Date: Wed, 21 Dec 2022 16:21:00 +0000 Subject: [PATCH 005/169] Add CC0 logo --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 8914067..e83ee87 100644 --- a/README.md +++ b/README.md @@ -18,6 +18,8 @@ If you do not know where to start, take a look at the [issues](https://git.anony ## License +![CC0 Logo](https://upload.wikimedia.org/wikipedia/commons/6/69/CC0_button.svg) + All content produced by us is licensed under *public domain* using the [CC0 license](https://creativecommons.org/share-your-work/public-domain/cc0/). ## Contact From 56670f9115e44487fa60b767463d36b7fe24f9f6 Mon Sep 17 00:00:00 2001 From: NebulaOnion Date: Wed, 21 Dec 2022 16:26:44 +0000 Subject: [PATCH 006/169] Add mirrors section --- README.md | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index e83ee87..2b7e7ab 100644 --- a/README.md +++ b/README.md @@ -8,11 +8,21 @@
+## Mirrors + +Here are the place where you can view and contribute to our repositories: + +- [Main (Self-hosted Gitea)](https://git.anonymousland.org/anonymousland/anonymousland) +- [GitHub mirror](https://github.com/anonyland/anonymousland) +- [Codeberg mirror](https://codeberg.org/anonymousland/anonymousland) + +*All of the mirrors are both read and write and you can contribute on either place.* + ## Contributing **Thank you very much for reading this.** Contributions are very welcome, to contribute, just fork the repository, do the changes and open a pull request. -You can contribute either on our own [Git](https://git.anonymousland.org/anonymousland/anonymousland) or on any other mirror like our [GitHub](https://github.com/anonyland/anonymousland) and [Codeberg](https://codeberg.org/anonymousland/anonymousland). +You can contribute either on our own [Git](https://git.anonymousland.org/anonymousland/anonymousland) or on any other mirror listed above. If you do not know where to start, take a look at the [issues](https://git.anonymousland.org/anonymousland/anonymousland/issues) for this repository, you can also take a look at our *site-wide* [issues list](https://git.anonymousland.org/anonymousland/anonymousland-suggestions-issues). From fa8d32c6b3c20d171f9f9352f993aeb43b6eec19 Mon Sep 17 00:00:00 2001 From: NebulaOnion Date: Fri, 23 Dec 2022 14:25:53 +0000 Subject: [PATCH 007/169] Add changelog --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 2b7e7ab..26f7860 100644 --- a/README.md +++ b/README.md @@ -2,6 +2,8 @@ > Anonymity, Privacy, Security +[Changelog](https://anonymousland.org/changelog) +
[![Build Status](https://drone.anonymousland.org/api/badges/anonymousland/anonymousland/status.svg)](https://drone.anonymousland.org/anonymousland/anonymousland) From b7309bffdf7534e465d4f77461df9413dea7e634 Mon Sep 17 00:00:00 2001 From: NebulaOnion Date: Fri, 23 Dec 2022 14:28:11 +0000 Subject: [PATCH 008/169] Fix version on README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 26f7860..294f1fb 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# **[Anonymousland](https://anonymousland.org)** v1.08 +# **[Anonymousland](https://anonymousland.org)** v1.09 > Anonymity, Privacy, Security From 392d38795ce39c3a5ca3edfe210a3c2bac3de582 Mon Sep 17 00:00:00 2001 From: NebulaOnion Date: Fri, 23 Dec 2022 14:40:55 +0000 Subject: [PATCH 009/169] Add website badge --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 294f1fb..f8c38d8 100644 --- a/README.md +++ b/README.md @@ -7,6 +7,7 @@
[![Build Status](https://drone.anonymousland.org/api/badges/anonymousland/anonymousland/status.svg)](https://drone.anonymousland.org/anonymousland/anonymousland) +![Website](https://img.shields.io/website?down_color=red&down_message=down&style=flat-square&up_color=green&up_message=up&url=https%3A%2F%2Fanonymousland.org%2F)
From 49f4ad748aab8a1ddf33737f3c1e67fdf019a0e2 Mon Sep 17 00:00:00 2001 From: NebulaOnion Date: Fri, 23 Dec 2022 14:43:11 +0000 Subject: [PATCH 010/169] Add security headers badge --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index f8c38d8..9f21212 100644 --- a/README.md +++ b/README.md @@ -8,6 +8,7 @@ [![Build Status](https://drone.anonymousland.org/api/badges/anonymousland/anonymousland/status.svg)](https://drone.anonymousland.org/anonymousland/anonymousland) ![Website](https://img.shields.io/website?down_color=red&down_message=down&style=flat-square&up_color=green&up_message=up&url=https%3A%2F%2Fanonymousland.org%2F) +![Security Headers](https://img.shields.io/security-headers?style=flat-square&url=https%3A%2F%2Fanonymousland.org%2F)
From d2e2fb7a854259fbc597ee4031b136ae0437b88c Mon Sep 17 00:00:00 2001 From: NebulaOnion Date: Fri, 23 Dec 2022 14:53:30 +0000 Subject: [PATCH 011/169] Add more badges and move them above --- README.md | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 9f21212..ba90841 100644 --- a/README.md +++ b/README.md @@ -1,17 +1,21 @@ # **[Anonymousland](https://anonymousland.org)** v1.09 -> Anonymity, Privacy, Security - -[Changelog](https://anonymousland.org/changelog) -
[![Build Status](https://drone.anonymousland.org/api/badges/anonymousland/anonymousland/status.svg)](https://drone.anonymousland.org/anonymousland/anonymousland) ![Website](https://img.shields.io/website?down_color=red&down_message=down&style=flat-square&up_color=green&up_message=up&url=https%3A%2F%2Fanonymousland.org%2F) ![Security Headers](https://img.shields.io/security-headers?style=flat-square&url=https%3A%2F%2Fanonymousland.org%2F) +![GitHub contributors](https://img.shields.io/github/contributors/anonyland/anonymousland?label=GitHub%20contributors&style=flat-square) +![GitHub commit activity](https://img.shields.io/github/commit-activity/m/anonyland/anonymousland?label=GitHub%20commit%20activity&style=flat-square) +![GitHub](https://img.shields.io/github/license/anonyland/anonymousland?style=flat-square) +![Maintenance](https://img.shields.io/maintenance/yes/2023?style=flat-square)
+> Anonymity, Privacy, Security + +[Changelog](https://anonymousland.org/changelog) + ## Mirrors Here are the place where you can view and contribute to our repositories: From 5f72cf230e63db57218a3ffda1d85ce2b50cc7a8 Mon Sep 17 00:00:00 2001 From: NebulaOnion Date: Fri, 23 Dec 2022 14:55:38 +0000 Subject: [PATCH 012/169] Add GitHub stars badge --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index ba90841..07c48bb 100644 --- a/README.md +++ b/README.md @@ -8,6 +8,7 @@ ![GitHub contributors](https://img.shields.io/github/contributors/anonyland/anonymousland?label=GitHub%20contributors&style=flat-square) ![GitHub commit activity](https://img.shields.io/github/commit-activity/m/anonyland/anonymousland?label=GitHub%20commit%20activity&style=flat-square) ![GitHub](https://img.shields.io/github/license/anonyland/anonymousland?style=flat-square) +![GitHub Repo stars](https://img.shields.io/github/stars/anonyland/anonymousland?label=GitHub%20stars&style=flat-square) ![Maintenance](https://img.shields.io/maintenance/yes/2023?style=flat-square) From f1531c022b0c667e0e78a52a21055c82e2235fb4 Mon Sep 17 00:00:00 2001 From: NebulaOnion Date: Fri, 23 Dec 2022 15:03:20 +0000 Subject: [PATCH 013/169] Add donation section --- README.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/README.md b/README.md index 07c48bb..81e99ee 100644 --- a/README.md +++ b/README.md @@ -35,6 +35,12 @@ You can contribute either on our own [Git](https://git.anonymousland.org/anonymo If you do not know where to start, take a look at the [issues](https://git.anonymousland.org/anonymousland/anonymousland/issues) for this repository, you can also take a look at our *site-wide* [issues list](https://git.anonymousland.org/anonymousland/anonymousland-suggestions-issues). +## Donations + +Running these services and properly maintaining them takes time and money. *We would be extremely grateful to get donations*, we only ask for 5$, that's all. + +To donate, you can visit our [donation page](https://anonymousland.org/donate) or contribute directly to our Monero wallet[(4B4kUhGXkMhic8W9NXVMTsi8cLidFAuyW3p5cWd9jG3tTT9ADCPHcrYZ8hkvA8s8TNTmSDohb9CeqJZFGqKddR8qDF1okZp)](monero:4B4kUhGXkMhic8W9NXVMTsi8cLidFAuyW3p5cWd9jG3tTT9ADCPHcrYZ8hkvA8s8TNTmSDohb9CeqJZFGqKddR8qDF1okZp) + ## License ![CC0 Logo](https://upload.wikimedia.org/wikipedia/commons/6/69/CC0_button.svg) From 8443b466ed26279503edf6334453e5b3d525f882 Mon Sep 17 00:00:00 2001 From: NebulaOnion Date: Fri, 23 Dec 2022 16:31:00 +0000 Subject: [PATCH 014/169] Fix wallet address --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 81e99ee..3932268 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,7 @@ # **[Anonymousland](https://anonymousland.org)** v1.09 +> Anonymity, Privacy, Security +
[![Build Status](https://drone.anonymousland.org/api/badges/anonymousland/anonymousland/status.svg)](https://drone.anonymousland.org/anonymousland/anonymousland) @@ -13,8 +15,6 @@
-> Anonymity, Privacy, Security - [Changelog](https://anonymousland.org/changelog) ## Mirrors @@ -39,7 +39,7 @@ If you do not know where to start, take a look at the [issues](https://git.anony Running these services and properly maintaining them takes time and money. *We would be extremely grateful to get donations*, we only ask for 5$, that's all. -To donate, you can visit our [donation page](https://anonymousland.org/donate) or contribute directly to our Monero wallet[(4B4kUhGXkMhic8W9NXVMTsi8cLidFAuyW3p5cWd9jG3tTT9ADCPHcrYZ8hkvA8s8TNTmSDohb9CeqJZFGqKddR8qDF1okZp)](monero:4B4kUhGXkMhic8W9NXVMTsi8cLidFAuyW3p5cWd9jG3tTT9ADCPHcrYZ8hkvA8s8TNTmSDohb9CeqJZFGqKddR8qDF1okZp) +To donate, you can visit our [donation page](https://anonymousland.org/donate) or contribute directly to our Monero wallet.[4B4kUhGXkMhic8W9NXVMTsi8cLidFAuyW3p5cWd9jG3tTT9ADCPHcrYZ8hkvA8s8TNTmSDohb9CeqJZFGqKddR8qDF1okZp](monero:4B4kUhGXkMhic8W9NXVMTsi8cLidFAuyW3p5cWd9jG3tTT9ADCPHcrYZ8hkvA8s8TNTmSDohb9CeqJZFGqKddR8qDF1okZp) ## License From f5ec12b79d729dbec9c8ea09639b4ebfd51822a8 Mon Sep 17 00:00:00 2001 From: NebulaOnion Date: Fri, 23 Dec 2022 16:32:06 +0000 Subject: [PATCH 015/169] Remove wallet link (doesnt work) --- README.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 3932268..e716b2b 100644 --- a/README.md +++ b/README.md @@ -39,7 +39,9 @@ If you do not know where to start, take a look at the [issues](https://git.anony Running these services and properly maintaining them takes time and money. *We would be extremely grateful to get donations*, we only ask for 5$, that's all. -To donate, you can visit our [donation page](https://anonymousland.org/donate) or contribute directly to our Monero wallet.[4B4kUhGXkMhic8W9NXVMTsi8cLidFAuyW3p5cWd9jG3tTT9ADCPHcrYZ8hkvA8s8TNTmSDohb9CeqJZFGqKddR8qDF1okZp](monero:4B4kUhGXkMhic8W9NXVMTsi8cLidFAuyW3p5cWd9jG3tTT9ADCPHcrYZ8hkvA8s8TNTmSDohb9CeqJZFGqKddR8qDF1okZp) +To donate, you can visit our [donation page](https://anonymousland.org/donate) or contribute directly to our Monero wallet. + +**4B4kUhGXkMhic8W9NXVMTsi8cLidFAuyW3p5cWd9jG3tTT9ADCPHcrYZ8hkvA8s8TNTmSDohb9CeqJZFGqKddR8qDF1okZp** ## License From 45dd5006220f4eda92c6dcf600d3dbbcb2fce726 Mon Sep 17 00:00:00 2001 From: deathrow Date: Tue, 27 Dec 2022 12:49:17 -0500 Subject: [PATCH 016/169] Update XMR Address --- README.md | 2 +- _items/Donate.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index e716b2b..1f06701 100644 --- a/README.md +++ b/README.md @@ -41,7 +41,7 @@ Running these services and properly maintaining them takes time and money. *We w To donate, you can visit our [donation page](https://anonymousland.org/donate) or contribute directly to our Monero wallet. -**4B4kUhGXkMhic8W9NXVMTsi8cLidFAuyW3p5cWd9jG3tTT9ADCPHcrYZ8hkvA8s8TNTmSDohb9CeqJZFGqKddR8qDF1okZp** +``47teQv7uWPv9EALRDv9je6ckC83UYJiisHpmhNKHyPPTXinPJNRtvW8PcpEoLxex9ierqWvD89v9mVyGf77uLtS3RnGUk8K`` ## License diff --git a/_items/Donate.md b/_items/Donate.md index 5f07dd3..00cc03d 100644 --- a/_items/Donate.md +++ b/_items/Donate.md @@ -17,4 +17,4 @@ People often times utilize emotional reactions to get people to buy things, so h Monero: -```4B4kUhGXkMhic8W9NXVMTsi8cLidFAuyW3p5cWd9jG3tTT9ADCPHcrYZ8hkvA8s8TNTmSDohb9CeqJZFGqKddR8qDF1okZp``` \ No newline at end of file +```47teQv7uWPv9EALRDv9je6ckC83UYJiisHpmhNKHyPPTXinPJNRtvW8PcpEoLxex9ierqWvD89v9mVyGf77uLtS3RnGUk8K``` \ No newline at end of file From a91d745892e319d0115d5107a628a8bfd9800cc8 Mon Sep 17 00:00:00 2001 From: NebulaOnion Date: Wed, 28 Dec 2022 19:43:31 +0000 Subject: [PATCH 017/169] Changed repo name --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 1f06701..ac1cdaf 100644 --- a/README.md +++ b/README.md @@ -33,13 +33,13 @@ Here are the place where you can view and contribute to our repositories: You can contribute either on our own [Git](https://git.anonymousland.org/anonymousland/anonymousland) or on any other mirror listed above. -If you do not know where to start, take a look at the [issues](https://git.anonymousland.org/anonymousland/anonymousland/issues) for this repository, you can also take a look at our *site-wide* [issues list](https://git.anonymousland.org/anonymousland/anonymousland-suggestions-issues). +If you do not know where to start, take a look at the [issues](https://git.anonymousland.org/anonymousland/anonymousland/issues) for this repository, you can also take a look at our *site-wide* [issues list](https://git.anonymousland.org/anonymousland/main). ## Donations Running these services and properly maintaining them takes time and money. *We would be extremely grateful to get donations*, we only ask for 5$, that's all. -To donate, you can visit our [donation page](https://anonymousland.org/donate) or contribute directly to our Monero wallet. +To donate, you can visit our [donation page](https://anonymousland.org/donate) or contribute directly to our [Monero](https://www.getmonero.org/) wallet. ``47teQv7uWPv9EALRDv9je6ckC83UYJiisHpmhNKHyPPTXinPJNRtvW8PcpEoLxex9ierqWvD89v9mVyGf77uLtS3RnGUk8K`` From 572e03e64a8413069242b8ed86e603c974ca03d9 Mon Sep 17 00:00:00 2001 From: deathrow Date: Wed, 28 Dec 2022 18:36:43 -0500 Subject: [PATCH 018/169] Update docker --- docker.sh | 3 ++- docker-update.sh => update.sh | 0 2 files changed, 2 insertions(+), 1 deletion(-) rename docker-update.sh => update.sh (100%) diff --git a/docker.sh b/docker.sh index b0a372f..7fb2531 100644 --- a/docker.sh +++ b/docker.sh @@ -3,8 +3,9 @@ docker run --rm \ --name=site \ --network=site \ + --restart=always \ --volume="$PWD:/srv/jekyll:Z" \ --volume="$PWD/vendor/bundle:/usr/local/bundle:Z" \ --detach \ -it jekyll/jekyll \ - jekyll serve + jekyll serve \ No newline at end of file diff --git a/docker-update.sh b/update.sh similarity index 100% rename from docker-update.sh rename to update.sh From 0cf94826e72f37ec4610d5b19a5974d62929a85c Mon Sep 17 00:00:00 2001 From: deathrow Date: Wed, 28 Dec 2022 18:37:23 -0500 Subject: [PATCH 019/169] Update Matrix wording --- _items/Guide.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_items/Guide.md b/_items/Guide.md index ac9bc82..be193f2 100644 --- a/_items/Guide.md +++ b/_items/Guide.md @@ -972,7 +972,7 @@ Here's a list of "great" messengers and services that you'll be able to use. A fork of Signal without the phone-number requirement. Session has built-in onion-routing. -- [Matrix](https://matrix.org) Matrix provides a federated platform, which allows for anyone to host their own server, meaning that it is resistent to censorship as it does not rely on a single server. +- [Matrix](https://matrix.org) Matrix provides a federated platform, which allows for anyone to host their own server, meaning that it is resistent to censorship as the network does not rely on a single server. - [Briar](https://briarproject.org) A P2P messenger app which is designed for extreme threat models. Allows for Bluetooth communication along with routing communications over Tor network. From 76780c5df8beb57bf6f0872fa86ef9665f9bdb7a Mon Sep 17 00:00:00 2001 From: deathrow Date: Wed, 28 Dec 2022 18:41:57 -0500 Subject: [PATCH 020/169] Remove "Recent Posts" section --- _layouts/default1.html | 15 --------------- 1 file changed, 15 deletions(-) diff --git a/_layouts/default1.html b/_layouts/default1.html index 6170ae6..fab691d 100644 --- a/_layouts/default1.html +++ b/_layouts/default1.html @@ -64,21 +64,6 @@ {% endif %} - {% if site.blog == true %} -
- -

Recent Posts:

-
-
    - {% for i in (1..site.recent_posts) %} - {% assign post = site.posts[i] %} -
  • - {{ post.title }} -
  • - {% endfor %} -
-
- {% endif %} From ed373b81b9d27cdca939b751e1b38151f7d44ae4 Mon Sep 17 00:00:00 2001 From: deathrow Date: Wed, 28 Dec 2022 18:42:08 -0500 Subject: [PATCH 021/169] Update QubesOS page --- _information/Qubes-OS.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/_information/Qubes-OS.md b/_information/Qubes-OS.md index 877fb59..e1b4b77 100644 --- a/_information/Qubes-OS.md +++ b/_information/Qubes-OS.md @@ -1,6 +1,6 @@ --- layout: default1 -description: For Qubes OS +description: A page containing various information related to QubesOS title: Qubes OS permalink: /qubes --- @@ -54,6 +54,10 @@ Website: [https://qubes-os.org](https://qubes-os.org) +
+
+ + +

From 745e8ed27961ecfa937e7fa3d695434913ad26f2 Mon Sep 17 00:00:00 2001 From: deathrow Date: Wed, 28 Dec 2022 23:10:34 -0500 Subject: [PATCH 024/169] Update drone --- .drone.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.drone.yml b/.drone.yml index 4d5e77e..71385da 100644 --- a/.drone.yml +++ b/.drone.yml @@ -10,4 +10,4 @@ steps: commands: - gem install bundler - bundle install - - bundle exec jekyll build \ No newline at end of file + - bundle exec jekyll build --trace \ No newline at end of file From 21843048d43e14b40c593a158dcfecdd736be339 Mon Sep 17 00:00:00 2001 From: deathrow Date: Wed, 28 Dec 2022 23:14:29 -0500 Subject: [PATCH 025/169] Update Gemfile --- .drone.yml | 2 -- Gemfile | 2 +- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/.drone.yml b/.drone.yml index 71385da..3fa1e91 100644 --- a/.drone.yml +++ b/.drone.yml @@ -2,9 +2,7 @@ kind: pipeline name: Jekyll build type: docker - steps: - - name: build image: ruby commands: diff --git a/Gemfile b/Gemfile index cc99210..bf9fa35 100644 --- a/Gemfile +++ b/Gemfile @@ -6,4 +6,4 @@ gem 'jekyll-feed' gem 'jekyll-seo-tag' gem "bundler" gem "kramdown-parser-gfm" -gem "webrick", "~> 1.7" +gem "webrick" From bcb5f09d3cbb0cca119a23c27af7eb13116e4804 Mon Sep 17 00:00:00 2001 From: deathrow Date: Wed, 28 Dec 2022 23:16:21 -0500 Subject: [PATCH 026/169] Update drone --- .drone.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.drone.yml b/.drone.yml index 3fa1e91..dacdaf5 100644 --- a/.drone.yml +++ b/.drone.yml @@ -8,4 +8,5 @@ steps: commands: - gem install bundler - bundle install + - bundle update - bundle exec jekyll build --trace \ No newline at end of file From da88820cc1ddbf6fce8da1f6ec8ffb0af7a9ac48 Mon Sep 17 00:00:00 2001 From: deathrow Date: Wed, 28 Dec 2022 23:21:17 -0500 Subject: [PATCH 027/169] Update config --- _config.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_config.yml b/_config.yml index 11d38fe..51d96a0 100644 --- a/_config.yml +++ b/_config.yml @@ -19,7 +19,7 @@ collections: information: output: true exclude: - - Gemfile +# - Gemfile - Gemfile.lock plugins: - jekyll-feed From c6f40b3854711e6ee8bd9d38470b74c95e0af5e9 Mon Sep 17 00:00:00 2001 From: deathrow Date: Wed, 28 Dec 2022 23:40:36 -0500 Subject: [PATCH 028/169] Fix Qubes naming + Initial DNA section --- _items/Guide.md | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/_items/Guide.md b/_items/Guide.md index be193f2..82f5976 100644 --- a/_items/Guide.md +++ b/_items/Guide.md @@ -69,7 +69,7 @@ _Disclaimer: This is for education / research._ -\>> [Email](#email)
-\>> [Desktop](#desktop)
-- -\>> [Qubes OS](#qubesos)
+- -\>> [Qubes OS](#qubes-os)
- -\>> _[Installation](#installation)_
- -\>> _[Template Setup](#template-setup)_
- -\>> _[Onionizing Repositories](#onionizing-repositories)_
@@ -1135,6 +1135,13 @@ You can be tracked physically with a wide array of technologies including but no
+#### DNA + +Your DNA is a unique identifier to oneself. +You leave behind DNA traces with anything you touch, and it you leave behind DNA without even realizing it. + +
+ ### Falsifying Information (Plausible Deniability) Certain situations will require you exchange information. From b9b95920e6437a191fa034d0c8d372e4dc860bd4 Mon Sep 17 00:00:00 2001 From: deathrow Date: Wed, 28 Dec 2022 23:53:54 -0500 Subject: [PATCH 029/169] Plausible Deniability --- _items/Guide.md | 16 ++++++++++++++++ _items/Tools.md | 8 ++++++++ 2 files changed, 24 insertions(+) diff --git a/_items/Guide.md b/_items/Guide.md index 82f5976..0e92bb9 100644 --- a/_items/Guide.md +++ b/_items/Guide.md @@ -88,6 +88,7 @@ _Disclaimer: This is for education / research._ -\>> [Physical](#physical)
-\>> [Secure Communications](#secure-communications)
-\>> [Secure Hardware](#secure-hardware)
+-\>> [Plausible Deniability](#plausible-deniability)
-\>> [TLDR](#tldr)
--- @@ -1249,6 +1250,21 @@ For additional products that may not be as "realistic" to have with you at all t
+--- + +## **Plausible Deniability** + +Plausible deniability is where you can safely deny something and it can be believed to be true. +For instance, a [hidden Veracrypt volume](https://veracrypt.fr/en/Plausible%20Deniability.html) is an example of this. +An adversary cannot prove that the hidden volume exists, therefore you can deny its existence as it cannot be proven. + +Plausible deniability is extremely important, and in some cases should be implemented as much as possible. +An *easy* method of implementing plausible deniability is to utilize [Hidden VMs](https://github.com/aforensics/HiddenVM) - — Use any desktop OS without leaving a trace. + +
+ +--- + ## TLDR Don't use the internet. diff --git a/_items/Tools.md b/_items/Tools.md index 7a935fe..bf1b591 100644 --- a/_items/Tools.md +++ b/_items/Tools.md @@ -30,6 +30,7 @@ This is up to you to decide which services if any you decide to use and how to u \>> [File Sharing](#file-sharing)
\>> [Frontends & Social Media](#frontends--social-media)
\>> [Email Providers](#email-providers)
+->> [Plausible Deniability](#plausible-deniability)
\>> [Messengers](#messengers)
\>> [Operating System](#operating-system)
\>> [Password Managers](#password-managers)
@@ -193,6 +194,13 @@ This is extremely useful especially if you are worried about your email being le
+### __Plausible Deniability__ + +Tools to help with plausible deniability + +- [HiddenVM](https://github.com/aforensics/HiddenVM) +- [Veracrypt](https://veracrypt.fr/en/Plausible%20Deniability.html) + ### __Messengers__ Your messages must be secure as they reveal a lot about you. From 6d82344cb3a51c40e6ceacb1d1930e52db70a7da Mon Sep 17 00:00:00 2001 From: NebulaOnion <84784521+nebulaonion@users.noreply.github.com> Date: Thu, 29 Dec 2022 14:42:31 +0000 Subject: [PATCH 030/169] Self hosted resources --- _includes/head.html | 10 +++++----- assets/css/animate.min.css | 11 +++++++++++ assets/js/bootstrap.min.js | 7 +++++++ assets/js/d3.min.js | 8 ++++++++ assets/js/jquery.min.js | 4 ++++ 5 files changed, 35 insertions(+), 5 deletions(-) create mode 100644 assets/css/animate.min.css create mode 100644 assets/js/bootstrap.min.js create mode 100644 assets/js/d3.min.js create mode 100644 assets/js/jquery.min.js diff --git a/_includes/head.html b/_includes/head.html index 07536d6..1c723c5 100644 --- a/_includes/head.html +++ b/_includes/head.html @@ -20,13 +20,13 @@ - - + + - - - + + + \ No newline at end of file diff --git a/assets/css/animate.min.css b/assets/css/animate.min.css new file mode 100644 index 0000000..b6f6129 --- /dev/null +++ b/assets/css/animate.min.css @@ -0,0 +1,11 @@ +@charset "UTF-8"; + +/*! + * animate.css -http://daneden.me/animate + * Version - 3.5.1 + * Licensed under the MIT license - http://opensource.org/licenses/MIT + * + * Copyright (c) 2016 Daniel Eden + */ + +.animated{-webkit-animation-duration:1s;animation-duration:1s;-webkit-animation-fill-mode:both;animation-fill-mode:both}.animated.infinite{-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite}.animated.hinge{-webkit-animation-duration:2s;animation-duration:2s}.animated.bounceIn,.animated.bounceOut,.animated.flipOutX,.animated.flipOutY{-webkit-animation-duration:.75s;animation-duration:.75s}@-webkit-keyframes bounce{0%,20%,53%,80%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1);-webkit-transform:translateZ(0);transform:translateZ(0)}40%,43%{-webkit-transform:translate3d(0,-30px,0);transform:translate3d(0,-30px,0)}40%,43%,70%{-webkit-animation-timing-function:cubic-bezier(.755,.05,.855,.06);animation-timing-function:cubic-bezier(.755,.05,.855,.06)}70%{-webkit-transform:translate3d(0,-15px,0);transform:translate3d(0,-15px,0)}90%{-webkit-transform:translate3d(0,-4px,0);transform:translate3d(0,-4px,0)}}@keyframes bounce{0%,20%,53%,80%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1);-webkit-transform:translateZ(0);transform:translateZ(0)}40%,43%{-webkit-transform:translate3d(0,-30px,0);transform:translate3d(0,-30px,0)}40%,43%,70%{-webkit-animation-timing-function:cubic-bezier(.755,.05,.855,.06);animation-timing-function:cubic-bezier(.755,.05,.855,.06)}70%{-webkit-transform:translate3d(0,-15px,0);transform:translate3d(0,-15px,0)}90%{-webkit-transform:translate3d(0,-4px,0);transform:translate3d(0,-4px,0)}}.bounce{-webkit-animation-name:bounce;animation-name:bounce;-webkit-transform-origin:center bottom;transform-origin:center bottom}@-webkit-keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}@keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}.flash{-webkit-animation-name:flash;animation-name:flash}@-webkit-keyframes pulse{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}50%{-webkit-transform:scale3d(1.05,1.05,1.05);transform:scale3d(1.05,1.05,1.05)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes pulse{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}50%{-webkit-transform:scale3d(1.05,1.05,1.05);transform:scale3d(1.05,1.05,1.05)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}.pulse{-webkit-animation-name:pulse;animation-name:pulse}@-webkit-keyframes rubberBand{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}30%{-webkit-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}40%{-webkit-transform:scale3d(.75,1.25,1);transform:scale3d(.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,.85,1);transform:scale3d(1.15,.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes rubberBand{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}30%{-webkit-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}40%{-webkit-transform:scale3d(.75,1.25,1);transform:scale3d(.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,.85,1);transform:scale3d(1.15,.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}.rubberBand{-webkit-animation-name:rubberBand;animation-name:rubberBand}@-webkit-keyframes shake{0%,to{-webkit-transform:translateZ(0);transform:translateZ(0)}10%,30%,50%,70%,90%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}20%,40%,60%,80%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}}@keyframes shake{0%,to{-webkit-transform:translateZ(0);transform:translateZ(0)}10%,30%,50%,70%,90%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}20%,40%,60%,80%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}}.shake{-webkit-animation-name:shake;animation-name:shake}@-webkit-keyframes headShake{0%{-webkit-transform:translateX(0);transform:translateX(0)}6.5%{-webkit-transform:translateX(-6px) rotateY(-9deg);transform:translateX(-6px) rotateY(-9deg)}18.5%{-webkit-transform:translateX(5px) rotateY(7deg);transform:translateX(5px) rotateY(7deg)}31.5%{-webkit-transform:translateX(-3px) rotateY(-5deg);transform:translateX(-3px) rotateY(-5deg)}43.5%{-webkit-transform:translateX(2px) rotateY(3deg);transform:translateX(2px) rotateY(3deg)}50%{-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes headShake{0%{-webkit-transform:translateX(0);transform:translateX(0)}6.5%{-webkit-transform:translateX(-6px) rotateY(-9deg);transform:translateX(-6px) rotateY(-9deg)}18.5%{-webkit-transform:translateX(5px) rotateY(7deg);transform:translateX(5px) rotateY(7deg)}31.5%{-webkit-transform:translateX(-3px) rotateY(-5deg);transform:translateX(-3px) rotateY(-5deg)}43.5%{-webkit-transform:translateX(2px) rotateY(3deg);transform:translateX(2px) rotateY(3deg)}50%{-webkit-transform:translateX(0);transform:translateX(0)}}.headShake{-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;-webkit-animation-name:headShake;animation-name:headShake}@-webkit-keyframes swing{20%{-webkit-transform:rotate(15deg);transform:rotate(15deg)}40%{-webkit-transform:rotate(-10deg);transform:rotate(-10deg)}60%{-webkit-transform:rotate(5deg);transform:rotate(5deg)}80%{-webkit-transform:rotate(-5deg);transform:rotate(-5deg)}to{-webkit-transform:rotate(0deg);transform:rotate(0deg)}}@keyframes swing{20%{-webkit-transform:rotate(15deg);transform:rotate(15deg)}40%{-webkit-transform:rotate(-10deg);transform:rotate(-10deg)}60%{-webkit-transform:rotate(5deg);transform:rotate(5deg)}80%{-webkit-transform:rotate(-5deg);transform:rotate(-5deg)}to{-webkit-transform:rotate(0deg);transform:rotate(0deg)}}.swing{-webkit-transform-origin:top center;transform-origin:top center;-webkit-animation-name:swing;animation-name:swing}@-webkit-keyframes tada{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}10%,20%{-webkit-transform:scale3d(.9,.9,.9) rotate(-3deg);transform:scale3d(.9,.9,.9) rotate(-3deg)}30%,50%,70%,90%{-webkit-transform:scale3d(1.1,1.1,1.1) rotate(3deg);transform:scale3d(1.1,1.1,1.1) rotate(3deg)}40%,60%,80%{-webkit-transform:scale3d(1.1,1.1,1.1) rotate(-3deg);transform:scale3d(1.1,1.1,1.1) rotate(-3deg)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes tada{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}10%,20%{-webkit-transform:scale3d(.9,.9,.9) rotate(-3deg);transform:scale3d(.9,.9,.9) rotate(-3deg)}30%,50%,70%,90%{-webkit-transform:scale3d(1.1,1.1,1.1) rotate(3deg);transform:scale3d(1.1,1.1,1.1) rotate(3deg)}40%,60%,80%{-webkit-transform:scale3d(1.1,1.1,1.1) rotate(-3deg);transform:scale3d(1.1,1.1,1.1) rotate(-3deg)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}.tada{-webkit-animation-name:tada;animation-name:tada}@-webkit-keyframes wobble{0%{-webkit-transform:none;transform:none}15%{-webkit-transform:translate3d(-25%,0,0) rotate(-5deg);transform:translate3d(-25%,0,0) rotate(-5deg)}30%{-webkit-transform:translate3d(20%,0,0) rotate(3deg);transform:translate3d(20%,0,0) rotate(3deg)}45%{-webkit-transform:translate3d(-15%,0,0) rotate(-3deg);transform:translate3d(-15%,0,0) rotate(-3deg)}60%{-webkit-transform:translate3d(10%,0,0) rotate(2deg);transform:translate3d(10%,0,0) rotate(2deg)}75%{-webkit-transform:translate3d(-5%,0,0) rotate(-1deg);transform:translate3d(-5%,0,0) rotate(-1deg)}to{-webkit-transform:none;transform:none}}@keyframes wobble{0%{-webkit-transform:none;transform:none}15%{-webkit-transform:translate3d(-25%,0,0) rotate(-5deg);transform:translate3d(-25%,0,0) rotate(-5deg)}30%{-webkit-transform:translate3d(20%,0,0) rotate(3deg);transform:translate3d(20%,0,0) rotate(3deg)}45%{-webkit-transform:translate3d(-15%,0,0) rotate(-3deg);transform:translate3d(-15%,0,0) rotate(-3deg)}60%{-webkit-transform:translate3d(10%,0,0) rotate(2deg);transform:translate3d(10%,0,0) rotate(2deg)}75%{-webkit-transform:translate3d(-5%,0,0) rotate(-1deg);transform:translate3d(-5%,0,0) rotate(-1deg)}to{-webkit-transform:none;transform:none}}.wobble{-webkit-animation-name:wobble;animation-name:wobble}@-webkit-keyframes jello{0%,11.1%,to{-webkit-transform:none;transform:none}22.2%{-webkit-transform:skewX(-12.5deg) skewY(-12.5deg);transform:skewX(-12.5deg) skewY(-12.5deg)}33.3%{-webkit-transform:skewX(6.25deg) skewY(6.25deg);transform:skewX(6.25deg) skewY(6.25deg)}44.4%{-webkit-transform:skewX(-3.125deg) skewY(-3.125deg);transform:skewX(-3.125deg) skewY(-3.125deg)}55.5%{-webkit-transform:skewX(1.5625deg) skewY(1.5625deg);transform:skewX(1.5625deg) skewY(1.5625deg)}66.6%{-webkit-transform:skewX(-.78125deg) skewY(-.78125deg);transform:skewX(-.78125deg) skewY(-.78125deg)}77.7%{-webkit-transform:skewX(.390625deg) skewY(.390625deg);transform:skewX(.390625deg) skewY(.390625deg)}88.8%{-webkit-transform:skewX(-.1953125deg) skewY(-.1953125deg);transform:skewX(-.1953125deg) skewY(-.1953125deg)}}@keyframes jello{0%,11.1%,to{-webkit-transform:none;transform:none}22.2%{-webkit-transform:skewX(-12.5deg) skewY(-12.5deg);transform:skewX(-12.5deg) skewY(-12.5deg)}33.3%{-webkit-transform:skewX(6.25deg) skewY(6.25deg);transform:skewX(6.25deg) skewY(6.25deg)}44.4%{-webkit-transform:skewX(-3.125deg) skewY(-3.125deg);transform:skewX(-3.125deg) skewY(-3.125deg)}55.5%{-webkit-transform:skewX(1.5625deg) skewY(1.5625deg);transform:skewX(1.5625deg) skewY(1.5625deg)}66.6%{-webkit-transform:skewX(-.78125deg) skewY(-.78125deg);transform:skewX(-.78125deg) skewY(-.78125deg)}77.7%{-webkit-transform:skewX(.390625deg) skewY(.390625deg);transform:skewX(.390625deg) skewY(.390625deg)}88.8%{-webkit-transform:skewX(-.1953125deg) skewY(-.1953125deg);transform:skewX(-.1953125deg) skewY(-.1953125deg)}}.jello{-webkit-animation-name:jello;animation-name:jello;-webkit-transform-origin:center;transform-origin:center}@-webkit-keyframes bounceIn{0%,20%,40%,60%,80%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes bounceIn{0%,20%,40%,60%,80%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}.bounceIn{-webkit-animation-name:bounceIn;animation-name:bounceIn}@-webkit-keyframes bounceInDown{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(0,-3000px,0);transform:translate3d(0,-3000px,0)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0);transform:translate3d(0,25px,0)}75%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}90%{-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}to{-webkit-transform:none;transform:none}}@keyframes bounceInDown{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(0,-3000px,0);transform:translate3d(0,-3000px,0)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0);transform:translate3d(0,25px,0)}75%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}90%{-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}to{-webkit-transform:none;transform:none}}.bounceInDown{-webkit-animation-name:bounceInDown;animation-name:bounceInDown}@-webkit-keyframes bounceInLeft{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(-3000px,0,0);transform:translate3d(-3000px,0,0)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0);transform:translate3d(25px,0,0)}75%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}90%{-webkit-transform:translate3d(5px,0,0);transform:translate3d(5px,0,0)}to{-webkit-transform:none;transform:none}}@keyframes bounceInLeft{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(-3000px,0,0);transform:translate3d(-3000px,0,0)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0);transform:translate3d(25px,0,0)}75%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}90%{-webkit-transform:translate3d(5px,0,0);transform:translate3d(5px,0,0)}to{-webkit-transform:none;transform:none}}.bounceInLeft{-webkit-animation-name:bounceInLeft;animation-name:bounceInLeft}@-webkit-keyframes bounceInRight{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(3000px,0,0);transform:translate3d(3000px,0,0)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0);transform:translate3d(-25px,0,0)}75%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}90%{-webkit-transform:translate3d(-5px,0,0);transform:translate3d(-5px,0,0)}to{-webkit-transform:none;transform:none}}@keyframes bounceInRight{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(3000px,0,0);transform:translate3d(3000px,0,0)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0);transform:translate3d(-25px,0,0)}75%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}90%{-webkit-transform:translate3d(-5px,0,0);transform:translate3d(-5px,0,0)}to{-webkit-transform:none;transform:none}}.bounceInRight{-webkit-animation-name:bounceInRight;animation-name:bounceInRight}@-webkit-keyframes bounceInUp{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(0,3000px,0);transform:translate3d(0,3000px,0)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}75%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}90%{-webkit-transform:translate3d(0,-5px,0);transform:translate3d(0,-5px,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes bounceInUp{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(0,3000px,0);transform:translate3d(0,3000px,0)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}75%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}90%{-webkit-transform:translate3d(0,-5px,0);transform:translate3d(0,-5px,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.bounceInUp{-webkit-animation-name:bounceInUp;animation-name:bounceInUp}@-webkit-keyframes bounceOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}to{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}@keyframes bounceOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}to{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}.bounceOut{-webkit-animation-name:bounceOut;animation-name:bounceOut}@-webkit-keyframes bounceOutDown{20%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}@keyframes bounceOutDown{20%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}.bounceOutDown{-webkit-animation-name:bounceOutDown;animation-name:bounceOutDown}@-webkit-keyframes bounceOutLeft{20%{opacity:1;-webkit-transform:translate3d(20px,0,0);transform:translate3d(20px,0,0)}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}@keyframes bounceOutLeft{20%{opacity:1;-webkit-transform:translate3d(20px,0,0);transform:translate3d(20px,0,0)}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}.bounceOutLeft{-webkit-animation-name:bounceOutLeft;animation-name:bounceOutLeft}@-webkit-keyframes bounceOutRight{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0);transform:translate3d(-20px,0,0)}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}@keyframes bounceOutRight{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0);transform:translate3d(-20px,0,0)}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}.bounceOutRight{-webkit-animation-name:bounceOutRight;animation-name:bounceOutRight}@-webkit-keyframes bounceOutUp{20%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0)}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@keyframes bounceOutUp{20%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0)}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}.bounceOutUp{-webkit-animation-name:bounceOutUp;animation-name:bounceOutUp}@-webkit-keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.fadeIn{-webkit-animation-name:fadeIn;animation-name:fadeIn}@-webkit-keyframes fadeInDown{0%{opacity:0;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}to{opacity:1;-webkit-transform:none;transform:none}}@keyframes fadeInDown{0%{opacity:0;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}to{opacity:1;-webkit-transform:none;transform:none}}.fadeInDown{-webkit-animation-name:fadeInDown;animation-name:fadeInDown}@-webkit-keyframes fadeInDownBig{0%{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}to{opacity:1;-webkit-transform:none;transform:none}}@keyframes fadeInDownBig{0%{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}to{opacity:1;-webkit-transform:none;transform:none}}.fadeInDownBig{-webkit-animation-name:fadeInDownBig;animation-name:fadeInDownBig}@-webkit-keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}to{opacity:1;-webkit-transform:none;transform:none}}@keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}to{opacity:1;-webkit-transform:none;transform:none}}.fadeInLeft{-webkit-animation-name:fadeInLeft;animation-name:fadeInLeft}@-webkit-keyframes fadeInLeftBig{0%{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}to{opacity:1;-webkit-transform:none;transform:none}}@keyframes fadeInLeftBig{0%{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}to{opacity:1;-webkit-transform:none;transform:none}}.fadeInLeftBig{-webkit-animation-name:fadeInLeftBig;animation-name:fadeInLeftBig}@-webkit-keyframes fadeInRight{0%{opacity:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}to{opacity:1;-webkit-transform:none;transform:none}}@keyframes fadeInRight{0%{opacity:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}to{opacity:1;-webkit-transform:none;transform:none}}.fadeInRight{-webkit-animation-name:fadeInRight;animation-name:fadeInRight}@-webkit-keyframes fadeInRightBig{0%{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}to{opacity:1;-webkit-transform:none;transform:none}}@keyframes fadeInRightBig{0%{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}to{opacity:1;-webkit-transform:none;transform:none}}.fadeInRightBig{-webkit-animation-name:fadeInRightBig;animation-name:fadeInRightBig}@-webkit-keyframes fadeInUp{0%{opacity:0;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}to{opacity:1;-webkit-transform:none;transform:none}}@keyframes fadeInUp{0%{opacity:0;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}to{opacity:1;-webkit-transform:none;transform:none}}.fadeInUp{-webkit-animation-name:fadeInUp;animation-name:fadeInUp}@-webkit-keyframes fadeInUpBig{0%{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}to{opacity:1;-webkit-transform:none;transform:none}}@keyframes fadeInUpBig{0%{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}to{opacity:1;-webkit-transform:none;transform:none}}.fadeInUpBig{-webkit-animation-name:fadeInUpBig;animation-name:fadeInUpBig}@-webkit-keyframes fadeOut{0%{opacity:1}to{opacity:0}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}.fadeOut{-webkit-animation-name:fadeOut;animation-name:fadeOut}@-webkit-keyframes fadeOutDown{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}}@keyframes fadeOutDown{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}}.fadeOutDown{-webkit-animation-name:fadeOutDown;animation-name:fadeOutDown}@-webkit-keyframes fadeOutDownBig{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}@keyframes fadeOutDownBig{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}.fadeOutDownBig{-webkit-animation-name:fadeOutDownBig;animation-name:fadeOutDownBig}@-webkit-keyframes fadeOutLeft{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}}@keyframes fadeOutLeft{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}}.fadeOutLeft{-webkit-animation-name:fadeOutLeft;animation-name:fadeOutLeft}@-webkit-keyframes fadeOutLeftBig{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}@keyframes fadeOutLeftBig{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}.fadeOutLeftBig{-webkit-animation-name:fadeOutLeftBig;animation-name:fadeOutLeftBig}@-webkit-keyframes fadeOutRight{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}}@keyframes fadeOutRight{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}}.fadeOutRight{-webkit-animation-name:fadeOutRight;animation-name:fadeOutRight}@-webkit-keyframes fadeOutRightBig{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}@keyframes fadeOutRightBig{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}.fadeOutRightBig{-webkit-animation-name:fadeOutRightBig;animation-name:fadeOutRightBig}@-webkit-keyframes fadeOutUp{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}}@keyframes fadeOutUp{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}}.fadeOutUp{-webkit-animation-name:fadeOutUp;animation-name:fadeOutUp}@-webkit-keyframes fadeOutUpBig{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@keyframes fadeOutUpBig{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}.fadeOutUpBig{-webkit-animation-name:fadeOutUpBig;animation-name:fadeOutUpBig}@-webkit-keyframes flip{0%{-webkit-transform:perspective(400px) rotateY(-1turn);transform:perspective(400px) rotateY(-1turn)}0%,40%{-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}40%{-webkit-transform:perspective(400px) translateZ(150px) rotateY(-190deg);transform:perspective(400px) translateZ(150px) rotateY(-190deg)}50%{-webkit-transform:perspective(400px) translateZ(150px) rotateY(-170deg);transform:perspective(400px) translateZ(150px) rotateY(-170deg)}50%,80%{-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}80%{-webkit-transform:perspective(400px) scale3d(.95,.95,.95);transform:perspective(400px) scale3d(.95,.95,.95)}to{-webkit-transform:perspective(400px);transform:perspective(400px);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}}@keyframes flip{0%{-webkit-transform:perspective(400px) rotateY(-1turn);transform:perspective(400px) rotateY(-1turn)}0%,40%{-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}40%{-webkit-transform:perspective(400px) translateZ(150px) rotateY(-190deg);transform:perspective(400px) translateZ(150px) rotateY(-190deg)}50%{-webkit-transform:perspective(400px) translateZ(150px) rotateY(-170deg);transform:perspective(400px) translateZ(150px) rotateY(-170deg)}50%,80%{-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}80%{-webkit-transform:perspective(400px) scale3d(.95,.95,.95);transform:perspective(400px) scale3d(.95,.95,.95)}to{-webkit-transform:perspective(400px);transform:perspective(400px);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}}.animated.flip{-webkit-backface-visibility:visible;backface-visibility:visible;-webkit-animation-name:flip;animation-name:flip}@-webkit-keyframes flipInX{0%{-webkit-transform:perspective(400px) rotateX(90deg);transform:perspective(400px) rotateX(90deg);opacity:0}0%,40%{-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}40%{-webkit-transform:perspective(400px) rotateX(-20deg);transform:perspective(400px) rotateX(-20deg)}60%{-webkit-transform:perspective(400px) rotateX(10deg);transform:perspective(400px) rotateX(10deg);opacity:1}80%{-webkit-transform:perspective(400px) rotateX(-5deg);transform:perspective(400px) rotateX(-5deg)}to{-webkit-transform:perspective(400px);transform:perspective(400px)}}@keyframes flipInX{0%{-webkit-transform:perspective(400px) rotateX(90deg);transform:perspective(400px) rotateX(90deg);opacity:0}0%,40%{-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}40%{-webkit-transform:perspective(400px) rotateX(-20deg);transform:perspective(400px) rotateX(-20deg)}60%{-webkit-transform:perspective(400px) rotateX(10deg);transform:perspective(400px) rotateX(10deg);opacity:1}80%{-webkit-transform:perspective(400px) rotateX(-5deg);transform:perspective(400px) rotateX(-5deg)}to{-webkit-transform:perspective(400px);transform:perspective(400px)}}.flipInX{-webkit-backface-visibility:visible!important;backface-visibility:visible!important;-webkit-animation-name:flipInX;animation-name:flipInX}@-webkit-keyframes flipInY{0%{-webkit-transform:perspective(400px) rotateY(90deg);transform:perspective(400px) rotateY(90deg);opacity:0}0%,40%{-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}40%{-webkit-transform:perspective(400px) rotateY(-20deg);transform:perspective(400px) rotateY(-20deg)}60%{-webkit-transform:perspective(400px) rotateY(10deg);transform:perspective(400px) rotateY(10deg);opacity:1}80%{-webkit-transform:perspective(400px) rotateY(-5deg);transform:perspective(400px) rotateY(-5deg)}to{-webkit-transform:perspective(400px);transform:perspective(400px)}}@keyframes flipInY{0%{-webkit-transform:perspective(400px) rotateY(90deg);transform:perspective(400px) rotateY(90deg);opacity:0}0%,40%{-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}40%{-webkit-transform:perspective(400px) rotateY(-20deg);transform:perspective(400px) rotateY(-20deg)}60%{-webkit-transform:perspective(400px) rotateY(10deg);transform:perspective(400px) rotateY(10deg);opacity:1}80%{-webkit-transform:perspective(400px) rotateY(-5deg);transform:perspective(400px) rotateY(-5deg)}to{-webkit-transform:perspective(400px);transform:perspective(400px)}}.flipInY{-webkit-backface-visibility:visible!important;backface-visibility:visible!important;-webkit-animation-name:flipInY;animation-name:flipInY}@-webkit-keyframes flipOutX{0%{-webkit-transform:perspective(400px);transform:perspective(400px)}30%{-webkit-transform:perspective(400px) rotateX(-20deg);transform:perspective(400px) rotateX(-20deg);opacity:1}to{-webkit-transform:perspective(400px) rotateX(90deg);transform:perspective(400px) rotateX(90deg);opacity:0}}@keyframes flipOutX{0%{-webkit-transform:perspective(400px);transform:perspective(400px)}30%{-webkit-transform:perspective(400px) rotateX(-20deg);transform:perspective(400px) rotateX(-20deg);opacity:1}to{-webkit-transform:perspective(400px) rotateX(90deg);transform:perspective(400px) rotateX(90deg);opacity:0}}.flipOutX{-webkit-animation-name:flipOutX;animation-name:flipOutX;-webkit-backface-visibility:visible!important;backface-visibility:visible!important}@-webkit-keyframes flipOutY{0%{-webkit-transform:perspective(400px);transform:perspective(400px)}30%{-webkit-transform:perspective(400px) rotateY(-15deg);transform:perspective(400px) rotateY(-15deg);opacity:1}to{-webkit-transform:perspective(400px) rotateY(90deg);transform:perspective(400px) rotateY(90deg);opacity:0}}@keyframes flipOutY{0%{-webkit-transform:perspective(400px);transform:perspective(400px)}30%{-webkit-transform:perspective(400px) rotateY(-15deg);transform:perspective(400px) rotateY(-15deg);opacity:1}to{-webkit-transform:perspective(400px) rotateY(90deg);transform:perspective(400px) rotateY(90deg);opacity:0}}.flipOutY{-webkit-backface-visibility:visible!important;backface-visibility:visible!important;-webkit-animation-name:flipOutY;animation-name:flipOutY}@-webkit-keyframes lightSpeedIn{0%{-webkit-transform:translate3d(100%,0,0) skewX(-30deg);transform:translate3d(100%,0,0) skewX(-30deg);opacity:0}60%{-webkit-transform:skewX(20deg);transform:skewX(20deg)}60%,80%{opacity:1}80%{-webkit-transform:skewX(-5deg);transform:skewX(-5deg)}to{-webkit-transform:none;transform:none;opacity:1}}@keyframes lightSpeedIn{0%{-webkit-transform:translate3d(100%,0,0) skewX(-30deg);transform:translate3d(100%,0,0) skewX(-30deg);opacity:0}60%{-webkit-transform:skewX(20deg);transform:skewX(20deg)}60%,80%{opacity:1}80%{-webkit-transform:skewX(-5deg);transform:skewX(-5deg)}to{-webkit-transform:none;transform:none;opacity:1}}.lightSpeedIn{-webkit-animation-name:lightSpeedIn;animation-name:lightSpeedIn;-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}@-webkit-keyframes lightSpeedOut{0%{opacity:1}to{-webkit-transform:translate3d(100%,0,0) skewX(30deg);transform:translate3d(100%,0,0) skewX(30deg);opacity:0}}@keyframes lightSpeedOut{0%{opacity:1}to{-webkit-transform:translate3d(100%,0,0) skewX(30deg);transform:translate3d(100%,0,0) skewX(30deg);opacity:0}}.lightSpeedOut{-webkit-animation-name:lightSpeedOut;animation-name:lightSpeedOut;-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}@-webkit-keyframes rotateIn{0%{transform-origin:center;-webkit-transform:rotate(-200deg);transform:rotate(-200deg);opacity:0}0%,to{-webkit-transform-origin:center}to{transform-origin:center;-webkit-transform:none;transform:none;opacity:1}}@keyframes rotateIn{0%{transform-origin:center;-webkit-transform:rotate(-200deg);transform:rotate(-200deg);opacity:0}0%,to{-webkit-transform-origin:center}to{transform-origin:center;-webkit-transform:none;transform:none;opacity:1}}.rotateIn{-webkit-animation-name:rotateIn;animation-name:rotateIn}@-webkit-keyframes rotateInDownLeft{0%{transform-origin:left bottom;-webkit-transform:rotate(-45deg);transform:rotate(-45deg);opacity:0}0%,to{-webkit-transform-origin:left bottom}to{transform-origin:left bottom;-webkit-transform:none;transform:none;opacity:1}}@keyframes rotateInDownLeft{0%{transform-origin:left bottom;-webkit-transform:rotate(-45deg);transform:rotate(-45deg);opacity:0}0%,to{-webkit-transform-origin:left bottom}to{transform-origin:left bottom;-webkit-transform:none;transform:none;opacity:1}}.rotateInDownLeft{-webkit-animation-name:rotateInDownLeft;animation-name:rotateInDownLeft}@-webkit-keyframes rotateInDownRight{0%{transform-origin:right bottom;-webkit-transform:rotate(45deg);transform:rotate(45deg);opacity:0}0%,to{-webkit-transform-origin:right bottom}to{transform-origin:right bottom;-webkit-transform:none;transform:none;opacity:1}}@keyframes rotateInDownRight{0%{transform-origin:right bottom;-webkit-transform:rotate(45deg);transform:rotate(45deg);opacity:0}0%,to{-webkit-transform-origin:right bottom}to{transform-origin:right bottom;-webkit-transform:none;transform:none;opacity:1}}.rotateInDownRight{-webkit-animation-name:rotateInDownRight;animation-name:rotateInDownRight}@-webkit-keyframes rotateInUpLeft{0%{transform-origin:left bottom;-webkit-transform:rotate(45deg);transform:rotate(45deg);opacity:0}0%,to{-webkit-transform-origin:left bottom}to{transform-origin:left bottom;-webkit-transform:none;transform:none;opacity:1}}@keyframes rotateInUpLeft{0%{transform-origin:left bottom;-webkit-transform:rotate(45deg);transform:rotate(45deg);opacity:0}0%,to{-webkit-transform-origin:left bottom}to{transform-origin:left bottom;-webkit-transform:none;transform:none;opacity:1}}.rotateInUpLeft{-webkit-animation-name:rotateInUpLeft;animation-name:rotateInUpLeft}@-webkit-keyframes rotateInUpRight{0%{transform-origin:right bottom;-webkit-transform:rotate(-90deg);transform:rotate(-90deg);opacity:0}0%,to{-webkit-transform-origin:right bottom}to{transform-origin:right bottom;-webkit-transform:none;transform:none;opacity:1}}@keyframes rotateInUpRight{0%{transform-origin:right bottom;-webkit-transform:rotate(-90deg);transform:rotate(-90deg);opacity:0}0%,to{-webkit-transform-origin:right bottom}to{transform-origin:right bottom;-webkit-transform:none;transform:none;opacity:1}}.rotateInUpRight{-webkit-animation-name:rotateInUpRight;animation-name:rotateInUpRight}@-webkit-keyframes rotateOut{0%{transform-origin:center;opacity:1}0%,to{-webkit-transform-origin:center}to{transform-origin:center;-webkit-transform:rotate(200deg);transform:rotate(200deg);opacity:0}}@keyframes rotateOut{0%{transform-origin:center;opacity:1}0%,to{-webkit-transform-origin:center}to{transform-origin:center;-webkit-transform:rotate(200deg);transform:rotate(200deg);opacity:0}}.rotateOut{-webkit-animation-name:rotateOut;animation-name:rotateOut}@-webkit-keyframes rotateOutDownLeft{0%{transform-origin:left bottom;opacity:1}0%,to{-webkit-transform-origin:left bottom}to{transform-origin:left bottom;-webkit-transform:rotate(45deg);transform:rotate(45deg);opacity:0}}@keyframes rotateOutDownLeft{0%{transform-origin:left bottom;opacity:1}0%,to{-webkit-transform-origin:left bottom}to{transform-origin:left bottom;-webkit-transform:rotate(45deg);transform:rotate(45deg);opacity:0}}.rotateOutDownLeft{-webkit-animation-name:rotateOutDownLeft;animation-name:rotateOutDownLeft}@-webkit-keyframes rotateOutDownRight{0%{transform-origin:right bottom;opacity:1}0%,to{-webkit-transform-origin:right bottom}to{transform-origin:right bottom;-webkit-transform:rotate(-45deg);transform:rotate(-45deg);opacity:0}}@keyframes rotateOutDownRight{0%{transform-origin:right bottom;opacity:1}0%,to{-webkit-transform-origin:right bottom}to{transform-origin:right bottom;-webkit-transform:rotate(-45deg);transform:rotate(-45deg);opacity:0}}.rotateOutDownRight{-webkit-animation-name:rotateOutDownRight;animation-name:rotateOutDownRight}@-webkit-keyframes rotateOutUpLeft{0%{transform-origin:left bottom;opacity:1}0%,to{-webkit-transform-origin:left bottom}to{transform-origin:left bottom;-webkit-transform:rotate(-45deg);transform:rotate(-45deg);opacity:0}}@keyframes rotateOutUpLeft{0%{transform-origin:left bottom;opacity:1}0%,to{-webkit-transform-origin:left bottom}to{transform-origin:left bottom;-webkit-transform:rotate(-45deg);transform:rotate(-45deg);opacity:0}}.rotateOutUpLeft{-webkit-animation-name:rotateOutUpLeft;animation-name:rotateOutUpLeft}@-webkit-keyframes rotateOutUpRight{0%{transform-origin:right bottom;opacity:1}0%,to{-webkit-transform-origin:right bottom}to{transform-origin:right bottom;-webkit-transform:rotate(90deg);transform:rotate(90deg);opacity:0}}@keyframes rotateOutUpRight{0%{transform-origin:right bottom;opacity:1}0%,to{-webkit-transform-origin:right bottom}to{transform-origin:right bottom;-webkit-transform:rotate(90deg);transform:rotate(90deg);opacity:0}}.rotateOutUpRight{-webkit-animation-name:rotateOutUpRight;animation-name:rotateOutUpRight}@-webkit-keyframes hinge{0%{transform-origin:top left}0%,20%,60%{-webkit-transform-origin:top left;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}20%,60%{-webkit-transform:rotate(80deg);transform:rotate(80deg);transform-origin:top left}40%,80%{-webkit-transform:rotate(60deg);transform:rotate(60deg);-webkit-transform-origin:top left;transform-origin:top left;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;opacity:1}to{-webkit-transform:translate3d(0,700px,0);transform:translate3d(0,700px,0);opacity:0}}@keyframes hinge{0%{transform-origin:top left}0%,20%,60%{-webkit-transform-origin:top left;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}20%,60%{-webkit-transform:rotate(80deg);transform:rotate(80deg);transform-origin:top left}40%,80%{-webkit-transform:rotate(60deg);transform:rotate(60deg);-webkit-transform-origin:top left;transform-origin:top left;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;opacity:1}to{-webkit-transform:translate3d(0,700px,0);transform:translate3d(0,700px,0);opacity:0}}.hinge{-webkit-animation-name:hinge;animation-name:hinge}@-webkit-keyframes rollIn{0%{opacity:0;-webkit-transform:translate3d(-100%,0,0) rotate(-120deg);transform:translate3d(-100%,0,0) rotate(-120deg)}to{opacity:1;-webkit-transform:none;transform:none}}@keyframes rollIn{0%{opacity:0;-webkit-transform:translate3d(-100%,0,0) rotate(-120deg);transform:translate3d(-100%,0,0) rotate(-120deg)}to{opacity:1;-webkit-transform:none;transform:none}}.rollIn{-webkit-animation-name:rollIn;animation-name:rollIn}@-webkit-keyframes rollOut{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(100%,0,0) rotate(120deg);transform:translate3d(100%,0,0) rotate(120deg)}}@keyframes rollOut{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(100%,0,0) rotate(120deg);transform:translate3d(100%,0,0) rotate(120deg)}}.rollOut{-webkit-animation-name:rollOut;animation-name:rollOut}@-webkit-keyframes zoomIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}50%{opacity:1}}@keyframes zoomIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}50%{opacity:1}}.zoomIn{-webkit-animation-name:zoomIn;animation-name:zoomIn}@-webkit-keyframes zoomInDown{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,-1000px,0);transform:scale3d(.1,.1,.1) translate3d(0,-1000px,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,60px,0);transform:scale3d(.475,.475,.475) translate3d(0,60px,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}@keyframes zoomInDown{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,-1000px,0);transform:scale3d(.1,.1,.1) translate3d(0,-1000px,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,60px,0);transform:scale3d(.475,.475,.475) translate3d(0,60px,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}.zoomInDown{-webkit-animation-name:zoomInDown;animation-name:zoomInDown}@-webkit-keyframes zoomInLeft{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(-1000px,0,0);transform:scale3d(.1,.1,.1) translate3d(-1000px,0,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(10px,0,0);transform:scale3d(.475,.475,.475) translate3d(10px,0,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}@keyframes zoomInLeft{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(-1000px,0,0);transform:scale3d(.1,.1,.1) translate3d(-1000px,0,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(10px,0,0);transform:scale3d(.475,.475,.475) translate3d(10px,0,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}.zoomInLeft{-webkit-animation-name:zoomInLeft;animation-name:zoomInLeft}@-webkit-keyframes zoomInRight{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(1000px,0,0);transform:scale3d(.1,.1,.1) translate3d(1000px,0,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(-10px,0,0);transform:scale3d(.475,.475,.475) translate3d(-10px,0,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}@keyframes zoomInRight{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(1000px,0,0);transform:scale3d(.1,.1,.1) translate3d(1000px,0,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(-10px,0,0);transform:scale3d(.475,.475,.475) translate3d(-10px,0,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}.zoomInRight{-webkit-animation-name:zoomInRight;animation-name:zoomInRight}@-webkit-keyframes zoomInUp{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,1000px,0);transform:scale3d(.1,.1,.1) translate3d(0,1000px,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}@keyframes zoomInUp{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,1000px,0);transform:scale3d(.1,.1,.1) translate3d(0,1000px,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}.zoomInUp{-webkit-animation-name:zoomInUp;animation-name:zoomInUp}@-webkit-keyframes zoomOut{0%{opacity:1}50%{-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}50%,to{opacity:0}}@keyframes zoomOut{0%{opacity:1}50%{-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}50%,to{opacity:0}}.zoomOut{-webkit-animation-name:zoomOut;animation-name:zoomOut}@-webkit-keyframes zoomOutDown{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}to{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,2000px,0);transform:scale3d(.1,.1,.1) translate3d(0,2000px,0);-webkit-transform-origin:center bottom;transform-origin:center bottom;-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}@keyframes zoomOutDown{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}to{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,2000px,0);transform:scale3d(.1,.1,.1) translate3d(0,2000px,0);-webkit-transform-origin:center bottom;transform-origin:center bottom;-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}.zoomOutDown{-webkit-animation-name:zoomOutDown;animation-name:zoomOutDown}@-webkit-keyframes zoomOutLeft{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(42px,0,0);transform:scale3d(.475,.475,.475) translate3d(42px,0,0)}to{opacity:0;-webkit-transform:scale(.1) translate3d(-2000px,0,0);transform:scale(.1) translate3d(-2000px,0,0);-webkit-transform-origin:left center;transform-origin:left center}}@keyframes zoomOutLeft{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(42px,0,0);transform:scale3d(.475,.475,.475) translate3d(42px,0,0)}to{opacity:0;-webkit-transform:scale(.1) translate3d(-2000px,0,0);transform:scale(.1) translate3d(-2000px,0,0);-webkit-transform-origin:left center;transform-origin:left center}}.zoomOutLeft{-webkit-animation-name:zoomOutLeft;animation-name:zoomOutLeft}@-webkit-keyframes zoomOutRight{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(-42px,0,0);transform:scale3d(.475,.475,.475) translate3d(-42px,0,0)}to{opacity:0;-webkit-transform:scale(.1) translate3d(2000px,0,0);transform:scale(.1) translate3d(2000px,0,0);-webkit-transform-origin:right center;transform-origin:right center}}@keyframes zoomOutRight{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(-42px,0,0);transform:scale3d(.475,.475,.475) translate3d(-42px,0,0)}to{opacity:0;-webkit-transform:scale(.1) translate3d(2000px,0,0);transform:scale(.1) translate3d(2000px,0,0);-webkit-transform-origin:right center;transform-origin:right center}}.zoomOutRight{-webkit-animation-name:zoomOutRight;animation-name:zoomOutRight}@-webkit-keyframes zoomOutUp{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,60px,0);transform:scale3d(.475,.475,.475) translate3d(0,60px,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}to{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,-2000px,0);transform:scale3d(.1,.1,.1) translate3d(0,-2000px,0);-webkit-transform-origin:center bottom;transform-origin:center bottom;-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}@keyframes zoomOutUp{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,60px,0);transform:scale3d(.475,.475,.475) translate3d(0,60px,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}to{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,-2000px,0);transform:scale3d(.1,.1,.1) translate3d(0,-2000px,0);-webkit-transform-origin:center bottom;transform-origin:center bottom;-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}.zoomOutUp{-webkit-animation-name:zoomOutUp;animation-name:zoomOutUp}@-webkit-keyframes slideInDown{0%{-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0);visibility:visible}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes slideInDown{0%{-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0);visibility:visible}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.slideInDown{-webkit-animation-name:slideInDown;animation-name:slideInDown}@-webkit-keyframes slideInLeft{0%{-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0);visibility:visible}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes slideInLeft{0%{-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0);visibility:visible}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.slideInLeft{-webkit-animation-name:slideInLeft;animation-name:slideInLeft}@-webkit-keyframes slideInRight{0%{-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0);visibility:visible}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes slideInRight{0%{-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0);visibility:visible}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.slideInRight{-webkit-animation-name:slideInRight;animation-name:slideInRight}@-webkit-keyframes slideInUp{0%{-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0);visibility:visible}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes slideInUp{0%{-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0);visibility:visible}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.slideInUp{-webkit-animation-name:slideInUp;animation-name:slideInUp}@-webkit-keyframes slideOutDown{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{visibility:hidden;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}}@keyframes slideOutDown{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{visibility:hidden;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}}.slideOutDown{-webkit-animation-name:slideOutDown;animation-name:slideOutDown}@-webkit-keyframes slideOutLeft{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{visibility:hidden;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}}@keyframes slideOutLeft{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{visibility:hidden;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}}.slideOutLeft{-webkit-animation-name:slideOutLeft;animation-name:slideOutLeft}@-webkit-keyframes slideOutRight{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{visibility:hidden;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}}@keyframes slideOutRight{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{visibility:hidden;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}}.slideOutRight{-webkit-animation-name:slideOutRight;animation-name:slideOutRight}@-webkit-keyframes slideOutUp{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{visibility:hidden;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}}@keyframes slideOutUp{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{visibility:hidden;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}}.slideOutUp{-webkit-animation-name:slideOutUp;animation-name:slideOutUp} \ No newline at end of file diff --git a/assets/js/bootstrap.min.js b/assets/js/bootstrap.min.js new file mode 100644 index 0000000..9bcd2fc --- /dev/null +++ b/assets/js/bootstrap.min.js @@ -0,0 +1,7 @@ +/*! + * Bootstrap v3.3.7 (http://getbootstrap.com) + * Copyright 2011-2016 Twitter, Inc. + * Licensed under the MIT license + */ +if("undefined"==typeof jQuery)throw new Error("Bootstrap's JavaScript requires jQuery");+function(a){"use strict";var b=a.fn.jquery.split(" ")[0].split(".");if(b[0]<2&&b[1]<9||1==b[0]&&9==b[1]&&b[2]<1||b[0]>3)throw new Error("Bootstrap's JavaScript requires jQuery version 1.9.1 or higher, but lower than version 4")}(jQuery),+function(a){"use strict";function b(){var a=document.createElement("bootstrap"),b={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"};for(var c in b)if(void 0!==a.style[c])return{end:b[c]};return!1}a.fn.emulateTransitionEnd=function(b){var c=!1,d=this;a(this).one("bsTransitionEnd",function(){c=!0});var e=function(){c||a(d).trigger(a.support.transition.end)};return setTimeout(e,b),this},a(function(){a.support.transition=b(),a.support.transition&&(a.event.special.bsTransitionEnd={bindType:a.support.transition.end,delegateType:a.support.transition.end,handle:function(b){if(a(b.target).is(this))return b.handleObj.handler.apply(this,arguments)}})})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var c=a(this),e=c.data("bs.alert");e||c.data("bs.alert",e=new d(this)),"string"==typeof b&&e[b].call(c)})}var c='[data-dismiss="alert"]',d=function(b){a(b).on("click",c,this.close)};d.VERSION="3.3.7",d.TRANSITION_DURATION=150,d.prototype.close=function(b){function c(){g.detach().trigger("closed.bs.alert").remove()}var e=a(this),f=e.attr("data-target");f||(f=e.attr("href"),f=f&&f.replace(/.*(?=#[^\s]*$)/,""));var g=a("#"===f?[]:f);b&&b.preventDefault(),g.length||(g=e.closest(".alert")),g.trigger(b=a.Event("close.bs.alert")),b.isDefaultPrevented()||(g.removeClass("in"),a.support.transition&&g.hasClass("fade")?g.one("bsTransitionEnd",c).emulateTransitionEnd(d.TRANSITION_DURATION):c())};var e=a.fn.alert;a.fn.alert=b,a.fn.alert.Constructor=d,a.fn.alert.noConflict=function(){return a.fn.alert=e,this},a(document).on("click.bs.alert.data-api",c,d.prototype.close)}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.button"),f="object"==typeof b&&b;e||d.data("bs.button",e=new c(this,f)),"toggle"==b?e.toggle():b&&e.setState(b)})}var c=function(b,d){this.$element=a(b),this.options=a.extend({},c.DEFAULTS,d),this.isLoading=!1};c.VERSION="3.3.7",c.DEFAULTS={loadingText:"loading..."},c.prototype.setState=function(b){var c="disabled",d=this.$element,e=d.is("input")?"val":"html",f=d.data();b+="Text",null==f.resetText&&d.data("resetText",d[e]()),setTimeout(a.proxy(function(){d[e](null==f[b]?this.options[b]:f[b]),"loadingText"==b?(this.isLoading=!0,d.addClass(c).attr(c,c).prop(c,!0)):this.isLoading&&(this.isLoading=!1,d.removeClass(c).removeAttr(c).prop(c,!1))},this),0)},c.prototype.toggle=function(){var a=!0,b=this.$element.closest('[data-toggle="buttons"]');if(b.length){var c=this.$element.find("input");"radio"==c.prop("type")?(c.prop("checked")&&(a=!1),b.find(".active").removeClass("active"),this.$element.addClass("active")):"checkbox"==c.prop("type")&&(c.prop("checked")!==this.$element.hasClass("active")&&(a=!1),this.$element.toggleClass("active")),c.prop("checked",this.$element.hasClass("active")),a&&c.trigger("change")}else this.$element.attr("aria-pressed",!this.$element.hasClass("active")),this.$element.toggleClass("active")};var d=a.fn.button;a.fn.button=b,a.fn.button.Constructor=c,a.fn.button.noConflict=function(){return a.fn.button=d,this},a(document).on("click.bs.button.data-api",'[data-toggle^="button"]',function(c){var d=a(c.target).closest(".btn");b.call(d,"toggle"),a(c.target).is('input[type="radio"], input[type="checkbox"]')||(c.preventDefault(),d.is("input,button")?d.trigger("focus"):d.find("input:visible,button:visible").first().trigger("focus"))}).on("focus.bs.button.data-api blur.bs.button.data-api",'[data-toggle^="button"]',function(b){a(b.target).closest(".btn").toggleClass("focus",/^focus(in)?$/.test(b.type))})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.carousel"),f=a.extend({},c.DEFAULTS,d.data(),"object"==typeof b&&b),g="string"==typeof b?b:f.slide;e||d.data("bs.carousel",e=new c(this,f)),"number"==typeof b?e.to(b):g?e[g]():f.interval&&e.pause().cycle()})}var c=function(b,c){this.$element=a(b),this.$indicators=this.$element.find(".carousel-indicators"),this.options=c,this.paused=null,this.sliding=null,this.interval=null,this.$active=null,this.$items=null,this.options.keyboard&&this.$element.on("keydown.bs.carousel",a.proxy(this.keydown,this)),"hover"==this.options.pause&&!("ontouchstart"in document.documentElement)&&this.$element.on("mouseenter.bs.carousel",a.proxy(this.pause,this)).on("mouseleave.bs.carousel",a.proxy(this.cycle,this))};c.VERSION="3.3.7",c.TRANSITION_DURATION=600,c.DEFAULTS={interval:5e3,pause:"hover",wrap:!0,keyboard:!0},c.prototype.keydown=function(a){if(!/input|textarea/i.test(a.target.tagName)){switch(a.which){case 37:this.prev();break;case 39:this.next();break;default:return}a.preventDefault()}},c.prototype.cycle=function(b){return b||(this.paused=!1),this.interval&&clearInterval(this.interval),this.options.interval&&!this.paused&&(this.interval=setInterval(a.proxy(this.next,this),this.options.interval)),this},c.prototype.getItemIndex=function(a){return this.$items=a.parent().children(".item"),this.$items.index(a||this.$active)},c.prototype.getItemForDirection=function(a,b){var c=this.getItemIndex(b),d="prev"==a&&0===c||"next"==a&&c==this.$items.length-1;if(d&&!this.options.wrap)return b;var e="prev"==a?-1:1,f=(c+e)%this.$items.length;return this.$items.eq(f)},c.prototype.to=function(a){var b=this,c=this.getItemIndex(this.$active=this.$element.find(".item.active"));if(!(a>this.$items.length-1||a<0))return this.sliding?this.$element.one("slid.bs.carousel",function(){b.to(a)}):c==a?this.pause().cycle():this.slide(a>c?"next":"prev",this.$items.eq(a))},c.prototype.pause=function(b){return b||(this.paused=!0),this.$element.find(".next, .prev").length&&a.support.transition&&(this.$element.trigger(a.support.transition.end),this.cycle(!0)),this.interval=clearInterval(this.interval),this},c.prototype.next=function(){if(!this.sliding)return this.slide("next")},c.prototype.prev=function(){if(!this.sliding)return this.slide("prev")},c.prototype.slide=function(b,d){var e=this.$element.find(".item.active"),f=d||this.getItemForDirection(b,e),g=this.interval,h="next"==b?"left":"right",i=this;if(f.hasClass("active"))return this.sliding=!1;var j=f[0],k=a.Event("slide.bs.carousel",{relatedTarget:j,direction:h});if(this.$element.trigger(k),!k.isDefaultPrevented()){if(this.sliding=!0,g&&this.pause(),this.$indicators.length){this.$indicators.find(".active").removeClass("active");var l=a(this.$indicators.children()[this.getItemIndex(f)]);l&&l.addClass("active")}var m=a.Event("slid.bs.carousel",{relatedTarget:j,direction:h});return a.support.transition&&this.$element.hasClass("slide")?(f.addClass(b),f[0].offsetWidth,e.addClass(h),f.addClass(h),e.one("bsTransitionEnd",function(){f.removeClass([b,h].join(" ")).addClass("active"),e.removeClass(["active",h].join(" ")),i.sliding=!1,setTimeout(function(){i.$element.trigger(m)},0)}).emulateTransitionEnd(c.TRANSITION_DURATION)):(e.removeClass("active"),f.addClass("active"),this.sliding=!1,this.$element.trigger(m)),g&&this.cycle(),this}};var d=a.fn.carousel;a.fn.carousel=b,a.fn.carousel.Constructor=c,a.fn.carousel.noConflict=function(){return a.fn.carousel=d,this};var e=function(c){var d,e=a(this),f=a(e.attr("data-target")||(d=e.attr("href"))&&d.replace(/.*(?=#[^\s]+$)/,""));if(f.hasClass("carousel")){var g=a.extend({},f.data(),e.data()),h=e.attr("data-slide-to");h&&(g.interval=!1),b.call(f,g),h&&f.data("bs.carousel").to(h),c.preventDefault()}};a(document).on("click.bs.carousel.data-api","[data-slide]",e).on("click.bs.carousel.data-api","[data-slide-to]",e),a(window).on("load",function(){a('[data-ride="carousel"]').each(function(){var c=a(this);b.call(c,c.data())})})}(jQuery),+function(a){"use strict";function b(b){var c,d=b.attr("data-target")||(c=b.attr("href"))&&c.replace(/.*(?=#[^\s]+$)/,"");return a(d)}function c(b){return this.each(function(){var c=a(this),e=c.data("bs.collapse"),f=a.extend({},d.DEFAULTS,c.data(),"object"==typeof b&&b);!e&&f.toggle&&/show|hide/.test(b)&&(f.toggle=!1),e||c.data("bs.collapse",e=new d(this,f)),"string"==typeof b&&e[b]()})}var d=function(b,c){this.$element=a(b),this.options=a.extend({},d.DEFAULTS,c),this.$trigger=a('[data-toggle="collapse"][href="#'+b.id+'"],[data-toggle="collapse"][data-target="#'+b.id+'"]'),this.transitioning=null,this.options.parent?this.$parent=this.getParent():this.addAriaAndCollapsedClass(this.$element,this.$trigger),this.options.toggle&&this.toggle()};d.VERSION="3.3.7",d.TRANSITION_DURATION=350,d.DEFAULTS={toggle:!0},d.prototype.dimension=function(){var a=this.$element.hasClass("width");return a?"width":"height"},d.prototype.show=function(){if(!this.transitioning&&!this.$element.hasClass("in")){var b,e=this.$parent&&this.$parent.children(".panel").children(".in, .collapsing");if(!(e&&e.length&&(b=e.data("bs.collapse"),b&&b.transitioning))){var f=a.Event("show.bs.collapse");if(this.$element.trigger(f),!f.isDefaultPrevented()){e&&e.length&&(c.call(e,"hide"),b||e.data("bs.collapse",null));var g=this.dimension();this.$element.removeClass("collapse").addClass("collapsing")[g](0).attr("aria-expanded",!0),this.$trigger.removeClass("collapsed").attr("aria-expanded",!0),this.transitioning=1;var h=function(){this.$element.removeClass("collapsing").addClass("collapse in")[g](""),this.transitioning=0,this.$element.trigger("shown.bs.collapse")};if(!a.support.transition)return h.call(this);var i=a.camelCase(["scroll",g].join("-"));this.$element.one("bsTransitionEnd",a.proxy(h,this)).emulateTransitionEnd(d.TRANSITION_DURATION)[g](this.$element[0][i])}}}},d.prototype.hide=function(){if(!this.transitioning&&this.$element.hasClass("in")){var b=a.Event("hide.bs.collapse");if(this.$element.trigger(b),!b.isDefaultPrevented()){var c=this.dimension();this.$element[c](this.$element[c]())[0].offsetHeight,this.$element.addClass("collapsing").removeClass("collapse in").attr("aria-expanded",!1),this.$trigger.addClass("collapsed").attr("aria-expanded",!1),this.transitioning=1;var e=function(){this.transitioning=0,this.$element.removeClass("collapsing").addClass("collapse").trigger("hidden.bs.collapse")};return a.support.transition?void this.$element[c](0).one("bsTransitionEnd",a.proxy(e,this)).emulateTransitionEnd(d.TRANSITION_DURATION):e.call(this)}}},d.prototype.toggle=function(){this[this.$element.hasClass("in")?"hide":"show"]()},d.prototype.getParent=function(){return a(this.options.parent).find('[data-toggle="collapse"][data-parent="'+this.options.parent+'"]').each(a.proxy(function(c,d){var e=a(d);this.addAriaAndCollapsedClass(b(e),e)},this)).end()},d.prototype.addAriaAndCollapsedClass=function(a,b){var c=a.hasClass("in");a.attr("aria-expanded",c),b.toggleClass("collapsed",!c).attr("aria-expanded",c)};var e=a.fn.collapse;a.fn.collapse=c,a.fn.collapse.Constructor=d,a.fn.collapse.noConflict=function(){return a.fn.collapse=e,this},a(document).on("click.bs.collapse.data-api",'[data-toggle="collapse"]',function(d){var e=a(this);e.attr("data-target")||d.preventDefault();var f=b(e),g=f.data("bs.collapse"),h=g?"toggle":e.data();c.call(f,h)})}(jQuery),+function(a){"use strict";function b(b){var c=b.attr("data-target");c||(c=b.attr("href"),c=c&&/#[A-Za-z]/.test(c)&&c.replace(/.*(?=#[^\s]*$)/,""));var d=c&&a(c);return d&&d.length?d:b.parent()}function c(c){c&&3===c.which||(a(e).remove(),a(f).each(function(){var d=a(this),e=b(d),f={relatedTarget:this};e.hasClass("open")&&(c&&"click"==c.type&&/input|textarea/i.test(c.target.tagName)&&a.contains(e[0],c.target)||(e.trigger(c=a.Event("hide.bs.dropdown",f)),c.isDefaultPrevented()||(d.attr("aria-expanded","false"),e.removeClass("open").trigger(a.Event("hidden.bs.dropdown",f)))))}))}function d(b){return this.each(function(){var c=a(this),d=c.data("bs.dropdown");d||c.data("bs.dropdown",d=new g(this)),"string"==typeof b&&d[b].call(c)})}var e=".dropdown-backdrop",f='[data-toggle="dropdown"]',g=function(b){a(b).on("click.bs.dropdown",this.toggle)};g.VERSION="3.3.7",g.prototype.toggle=function(d){var e=a(this);if(!e.is(".disabled, :disabled")){var f=b(e),g=f.hasClass("open");if(c(),!g){"ontouchstart"in document.documentElement&&!f.closest(".navbar-nav").length&&a(document.createElement("div")).addClass("dropdown-backdrop").insertAfter(a(this)).on("click",c);var h={relatedTarget:this};if(f.trigger(d=a.Event("show.bs.dropdown",h)),d.isDefaultPrevented())return;e.trigger("focus").attr("aria-expanded","true"),f.toggleClass("open").trigger(a.Event("shown.bs.dropdown",h))}return!1}},g.prototype.keydown=function(c){if(/(38|40|27|32)/.test(c.which)&&!/input|textarea/i.test(c.target.tagName)){var d=a(this);if(c.preventDefault(),c.stopPropagation(),!d.is(".disabled, :disabled")){var e=b(d),g=e.hasClass("open");if(!g&&27!=c.which||g&&27==c.which)return 27==c.which&&e.find(f).trigger("focus"),d.trigger("click");var h=" li:not(.disabled):visible a",i=e.find(".dropdown-menu"+h);if(i.length){var j=i.index(c.target);38==c.which&&j>0&&j--,40==c.which&&jdocument.documentElement.clientHeight;this.$element.css({paddingLeft:!this.bodyIsOverflowing&&a?this.scrollbarWidth:"",paddingRight:this.bodyIsOverflowing&&!a?this.scrollbarWidth:""})},c.prototype.resetAdjustments=function(){this.$element.css({paddingLeft:"",paddingRight:""})},c.prototype.checkScrollbar=function(){var a=window.innerWidth;if(!a){var b=document.documentElement.getBoundingClientRect();a=b.right-Math.abs(b.left)}this.bodyIsOverflowing=document.body.clientWidth
',trigger:"hover focus",title:"",delay:0,html:!1,container:!1,viewport:{selector:"body",padding:0}},c.prototype.init=function(b,c,d){if(this.enabled=!0,this.type=b,this.$element=a(c),this.options=this.getOptions(d),this.$viewport=this.options.viewport&&a(a.isFunction(this.options.viewport)?this.options.viewport.call(this,this.$element):this.options.viewport.selector||this.options.viewport),this.inState={click:!1,hover:!1,focus:!1},this.$element[0]instanceof document.constructor&&!this.options.selector)throw new Error("`selector` option must be specified when initializing "+this.type+" on the window.document object!");for(var e=this.options.trigger.split(" "),f=e.length;f--;){var g=e[f];if("click"==g)this.$element.on("click."+this.type,this.options.selector,a.proxy(this.toggle,this));else if("manual"!=g){var h="hover"==g?"mouseenter":"focusin",i="hover"==g?"mouseleave":"focusout";this.$element.on(h+"."+this.type,this.options.selector,a.proxy(this.enter,this)),this.$element.on(i+"."+this.type,this.options.selector,a.proxy(this.leave,this))}}this.options.selector?this._options=a.extend({},this.options,{trigger:"manual",selector:""}):this.fixTitle()},c.prototype.getDefaults=function(){return c.DEFAULTS},c.prototype.getOptions=function(b){return b=a.extend({},this.getDefaults(),this.$element.data(),b),b.delay&&"number"==typeof b.delay&&(b.delay={show:b.delay,hide:b.delay}),b},c.prototype.getDelegateOptions=function(){var b={},c=this.getDefaults();return this._options&&a.each(this._options,function(a,d){c[a]!=d&&(b[a]=d)}),b},c.prototype.enter=function(b){var c=b instanceof this.constructor?b:a(b.currentTarget).data("bs."+this.type);return c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c)),b instanceof a.Event&&(c.inState["focusin"==b.type?"focus":"hover"]=!0),c.tip().hasClass("in")||"in"==c.hoverState?void(c.hoverState="in"):(clearTimeout(c.timeout),c.hoverState="in",c.options.delay&&c.options.delay.show?void(c.timeout=setTimeout(function(){"in"==c.hoverState&&c.show()},c.options.delay.show)):c.show())},c.prototype.isInStateTrue=function(){for(var a in this.inState)if(this.inState[a])return!0;return!1},c.prototype.leave=function(b){var c=b instanceof this.constructor?b:a(b.currentTarget).data("bs."+this.type);if(c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c)),b instanceof a.Event&&(c.inState["focusout"==b.type?"focus":"hover"]=!1),!c.isInStateTrue())return clearTimeout(c.timeout),c.hoverState="out",c.options.delay&&c.options.delay.hide?void(c.timeout=setTimeout(function(){"out"==c.hoverState&&c.hide()},c.options.delay.hide)):c.hide()},c.prototype.show=function(){var b=a.Event("show.bs."+this.type);if(this.hasContent()&&this.enabled){this.$element.trigger(b);var d=a.contains(this.$element[0].ownerDocument.documentElement,this.$element[0]);if(b.isDefaultPrevented()||!d)return;var e=this,f=this.tip(),g=this.getUID(this.type);this.setContent(),f.attr("id",g),this.$element.attr("aria-describedby",g),this.options.animation&&f.addClass("fade");var h="function"==typeof this.options.placement?this.options.placement.call(this,f[0],this.$element[0]):this.options.placement,i=/\s?auto?\s?/i,j=i.test(h);j&&(h=h.replace(i,"")||"top"),f.detach().css({top:0,left:0,display:"block"}).addClass(h).data("bs."+this.type,this),this.options.container?f.appendTo(this.options.container):f.insertAfter(this.$element),this.$element.trigger("inserted.bs."+this.type);var k=this.getPosition(),l=f[0].offsetWidth,m=f[0].offsetHeight;if(j){var n=h,o=this.getPosition(this.$viewport);h="bottom"==h&&k.bottom+m>o.bottom?"top":"top"==h&&k.top-mo.width?"left":"left"==h&&k.left-lg.top+g.height&&(e.top=g.top+g.height-i)}else{var j=b.left-f,k=b.left+f+c;jg.right&&(e.left=g.left+g.width-k)}return e},c.prototype.getTitle=function(){var a,b=this.$element,c=this.options;return a=b.attr("data-original-title")||("function"==typeof c.title?c.title.call(b[0]):c.title)},c.prototype.getUID=function(a){do a+=~~(1e6*Math.random());while(document.getElementById(a));return a},c.prototype.tip=function(){if(!this.$tip&&(this.$tip=a(this.options.template),1!=this.$tip.length))throw new Error(this.type+" `template` option must consist of exactly 1 top-level element!");return this.$tip},c.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".tooltip-arrow")},c.prototype.enable=function(){this.enabled=!0},c.prototype.disable=function(){this.enabled=!1},c.prototype.toggleEnabled=function(){this.enabled=!this.enabled},c.prototype.toggle=function(b){var c=this;b&&(c=a(b.currentTarget).data("bs."+this.type),c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c))),b?(c.inState.click=!c.inState.click,c.isInStateTrue()?c.enter(c):c.leave(c)):c.tip().hasClass("in")?c.leave(c):c.enter(c)},c.prototype.destroy=function(){var a=this;clearTimeout(this.timeout),this.hide(function(){a.$element.off("."+a.type).removeData("bs."+a.type),a.$tip&&a.$tip.detach(),a.$tip=null,a.$arrow=null,a.$viewport=null,a.$element=null})};var d=a.fn.tooltip;a.fn.tooltip=b,a.fn.tooltip.Constructor=c,a.fn.tooltip.noConflict=function(){return a.fn.tooltip=d,this}}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.popover"),f="object"==typeof b&&b;!e&&/destroy|hide/.test(b)||(e||d.data("bs.popover",e=new c(this,f)),"string"==typeof b&&e[b]())})}var c=function(a,b){this.init("popover",a,b)};if(!a.fn.tooltip)throw new Error("Popover requires tooltip.js");c.VERSION="3.3.7",c.DEFAULTS=a.extend({},a.fn.tooltip.Constructor.DEFAULTS,{placement:"right",trigger:"click",content:"",template:''}),c.prototype=a.extend({},a.fn.tooltip.Constructor.prototype),c.prototype.constructor=c,c.prototype.getDefaults=function(){return c.DEFAULTS},c.prototype.setContent=function(){var a=this.tip(),b=this.getTitle(),c=this.getContent();a.find(".popover-title")[this.options.html?"html":"text"](b),a.find(".popover-content").children().detach().end()[this.options.html?"string"==typeof c?"html":"append":"text"](c),a.removeClass("fade top bottom left right in"),a.find(".popover-title").html()||a.find(".popover-title").hide()},c.prototype.hasContent=function(){return this.getTitle()||this.getContent()},c.prototype.getContent=function(){var a=this.$element,b=this.options;return a.attr("data-content")||("function"==typeof b.content?b.content.call(a[0]):b.content)},c.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".arrow")};var d=a.fn.popover;a.fn.popover=b,a.fn.popover.Constructor=c,a.fn.popover.noConflict=function(){return a.fn.popover=d,this}}(jQuery),+function(a){"use strict";function b(c,d){this.$body=a(document.body),this.$scrollElement=a(a(c).is(document.body)?window:c),this.options=a.extend({},b.DEFAULTS,d),this.selector=(this.options.target||"")+" .nav li > a",this.offsets=[],this.targets=[],this.activeTarget=null,this.scrollHeight=0,this.$scrollElement.on("scroll.bs.scrollspy",a.proxy(this.process,this)),this.refresh(),this.process()}function c(c){return this.each(function(){var d=a(this),e=d.data("bs.scrollspy"),f="object"==typeof c&&c;e||d.data("bs.scrollspy",e=new b(this,f)),"string"==typeof c&&e[c]()})}b.VERSION="3.3.7",b.DEFAULTS={offset:10},b.prototype.getScrollHeight=function(){return this.$scrollElement[0].scrollHeight||Math.max(this.$body[0].scrollHeight,document.documentElement.scrollHeight)},b.prototype.refresh=function(){var b=this,c="offset",d=0;this.offsets=[],this.targets=[],this.scrollHeight=this.getScrollHeight(),a.isWindow(this.$scrollElement[0])||(c="position",d=this.$scrollElement.scrollTop()),this.$body.find(this.selector).map(function(){var b=a(this),e=b.data("target")||b.attr("href"),f=/^#./.test(e)&&a(e);return f&&f.length&&f.is(":visible")&&[[f[c]().top+d,e]]||null}).sort(function(a,b){return a[0]-b[0]}).each(function(){b.offsets.push(this[0]),b.targets.push(this[1])})},b.prototype.process=function(){var a,b=this.$scrollElement.scrollTop()+this.options.offset,c=this.getScrollHeight(),d=this.options.offset+c-this.$scrollElement.height(),e=this.offsets,f=this.targets,g=this.activeTarget;if(this.scrollHeight!=c&&this.refresh(),b>=d)return g!=(a=f[f.length-1])&&this.activate(a);if(g&&b=e[a]&&(void 0===e[a+1]||b .dropdown-menu > .active").removeClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded",!1),b.addClass("active").find('[data-toggle="tab"]').attr("aria-expanded",!0),h?(b[0].offsetWidth,b.addClass("in")):b.removeClass("fade"),b.parent(".dropdown-menu").length&&b.closest("li.dropdown").addClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded",!0),e&&e()}var g=d.find("> .active"),h=e&&a.support.transition&&(g.length&&g.hasClass("fade")||!!d.find("> .fade").length);g.length&&h?g.one("bsTransitionEnd",f).emulateTransitionEnd(c.TRANSITION_DURATION):f(),g.removeClass("in")};var d=a.fn.tab;a.fn.tab=b,a.fn.tab.Constructor=c,a.fn.tab.noConflict=function(){return a.fn.tab=d,this};var e=function(c){c.preventDefault(),b.call(a(this),"show")};a(document).on("click.bs.tab.data-api",'[data-toggle="tab"]',e).on("click.bs.tab.data-api",'[data-toggle="pill"]',e)}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.affix"),f="object"==typeof b&&b;e||d.data("bs.affix",e=new c(this,f)),"string"==typeof b&&e[b]()})}var c=function(b,d){this.options=a.extend({},c.DEFAULTS,d),this.$target=a(this.options.target).on("scroll.bs.affix.data-api",a.proxy(this.checkPosition,this)).on("click.bs.affix.data-api",a.proxy(this.checkPositionWithEventLoop,this)),this.$element=a(b),this.affixed=null,this.unpin=null,this.pinnedOffset=null,this.checkPosition()};c.VERSION="3.3.7",c.RESET="affix affix-top affix-bottom",c.DEFAULTS={offset:0,target:window},c.prototype.getState=function(a,b,c,d){var e=this.$target.scrollTop(),f=this.$element.offset(),g=this.$target.height();if(null!=c&&"top"==this.affixed)return e=a-d&&"bottom"},c.prototype.getPinnedOffset=function(){if(this.pinnedOffset)return this.pinnedOffset;this.$element.removeClass(c.RESET).addClass("affix");var a=this.$target.scrollTop(),b=this.$element.offset();return this.pinnedOffset=b.top-a},c.prototype.checkPositionWithEventLoop=function(){setTimeout(a.proxy(this.checkPosition,this),1)},c.prototype.checkPosition=function(){if(this.$element.is(":visible")){var b=this.$element.height(),d=this.options.offset,e=d.top,f=d.bottom,g=Math.max(a(document).height(),a(document.body).height());"object"!=typeof d&&(f=e=d),"function"==typeof e&&(e=d.top(this.$element)),"function"==typeof f&&(f=d.bottom(this.$element));var h=this.getState(g,b,e,f);if(this.affixed!=h){null!=this.unpin&&this.$element.css("top","");var i="affix"+(h?"-"+h:""),j=a.Event(i+".bs.affix");if(this.$element.trigger(j),j.isDefaultPrevented())return;this.affixed=h,this.unpin="bottom"==h?this.getPinnedOffset():null,this.$element.removeClass(c.RESET).addClass(i).trigger(i.replace("affix","affixed")+".bs.affix")}"bottom"==h&&this.$element.offset({top:g-b-f})}};var d=a.fn.affix;a.fn.affix=b,a.fn.affix.Constructor=c,a.fn.affix.noConflict=function(){return a.fn.affix=d,this},a(window).on("load",function(){a('[data-spy="affix"]').each(function(){var c=a(this),d=c.data();d.offset=d.offset||{},null!=d.offsetBottom&&(d.offset.bottom=d.offsetBottom),null!=d.offsetTop&&(d.offset.top=d.offsetTop),b.call(c,d)})})}(jQuery); \ No newline at end of file diff --git a/assets/js/d3.min.js b/assets/js/d3.min.js new file mode 100644 index 0000000..6a78c32 --- /dev/null +++ b/assets/js/d3.min.js @@ -0,0 +1,8 @@ +// https://d3js.org Version 4.3.0. Copyright 2016 Mike Bostock. +(function(t,n){"object"==typeof exports&&"undefined"!=typeof module?n(exports):"function"==typeof define&&define.amd?define(["exports"],n):n(t.d3=t.d3||{})})(this,function(t){"use strict";function n(t){return function(n,e){return Ms(t(n),e)}}function e(t,n,e){var r=Math.abs(n-t)/Math.max(0,e),i=Math.pow(10,Math.floor(Math.log(r)/Math.LN10)),o=r/i;return o>=Fs?i*=10:o>=Is?i*=5:o>=Ys&&(i*=2),n1&&Wf(t[e[r-2]],t[e[r-1]],t[i])<=0;)--r;e[r++]=i}return e.slice(0,r)}function q(){this._x0=this._y0=this._x1=this._y1=null,this._=[]}function L(){return new q}function R(t,n,e,r){if(isNaN(n)||isNaN(e))return t;var i,o,u,a,c,s,f,l,h,p=t._root,d={data:r},v=t._x0,_=t._y0,y=t._x1,g=t._y1;if(!p)return t._root=d,t;for(;p.length;)if((s=n>=(o=(v+y)/2))?v=o:y=o,(f=e>=(u=(_+g)/2))?_=u:g=u,i=p,!(p=p[l=f<<1|s]))return i[l]=d,t;if(a=+t._x.call(null,p.data),c=+t._y.call(null,p.data),n===a&&e===c)return d.next=p,i?i[l]=d:t._root=d,t;do i=i?i[l]=new Array(4):t._root=new Array(4),(s=n>=(o=(v+y)/2))?v=o:y=o,(f=e>=(u=(_+g)/2))?_=u:g=u;while((l=f<<1|s)===(h=(c>=u)<<1|a>=o));return i[h]=p,i[l]=d,t}function U(t){var n,e,r,i,o=t.length,u=new Array(o),a=new Array(o),c=1/0,s=1/0,f=-(1/0),l=-(1/0);for(e=0;ef&&(f=r),il&&(l=i));for(f=1))throw new Error;this._size=t,this._call=this._error=null,this._tasks=[],this._data=[],this._waiting=this._active=this._ended=this._start=0}function H(t){if(!t._start)try{X(t)}catch(n){if(t._tasks[t._ended+t._active-1])W(t,n);else if(!t._data)throw n}}function X(t){for(;t._start=t._waiting&&t._active=0;)if((e=t._tasks[r])&&(t._tasks[r]=null,e.abort))try{e.abort()}catch(t){}t._active=NaN,$(t)}function $(t){if(!t._active&&t._call){var n=t._data;t._data=void 0,t._call(t._error,n)}}function Z(t){return new j(arguments.length?+t:1/0)}function G(t){return t.innerRadius}function J(t){return t.outerRadius}function Q(t){return t.startAngle}function K(t){return t.endAngle}function tt(t){return t&&t.padAngle}function nt(t){return t>=1?xl:t<=-1?-xl:Math.asin(t)}function et(t,n,e,r,i,o,u,a){var c=e-t,s=r-n,f=u-i,l=a-o,h=(f*(n-o)-l*(t-i))/(l*c-f*s);return[t+h*c,n+h*s]}function rt(t,n,e,r,i,o,u){var a=t-e,c=n-r,s=(u?o:-o)/Math.sqrt(a*a+c*c),f=s*c,l=-s*a,h=t+f,p=n+l,d=e+f,v=r+l,_=(h+d)/2,y=(p+v)/2,g=d-h,m=v-p,x=g*g+m*m,b=i-o,w=h*v-d*p,M=(m<0?-1:1)*Math.sqrt(Math.max(0,b*b*x-w*w)),T=(w*m-g*M)/x,N=(-w*g-m*M)/x,k=(w*m+g*M)/x,S=(-w*g+m*M)/x,A=T-_,E=N-y,C=k-_,z=S-y;return A*A+E*E>C*C+z*z&&(T=k,N=S),{cx:T,cy:N,x01:-f,y01:-l,x11:T*(i/b-1),y11:N*(i/b-1)}}function it(t){this._context=t}function ot(t){return t[0]}function ut(t){return t[1]}function at(t){this._curve=t}function ct(t){function n(n){return new at(t(n))}return n._curve=t,n}function st(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(ct(t)):n()._curve},t}function ft(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 lt(t){this._context=t}function ht(t){this._context=t}function pt(t){this._context=t}function dt(t,n){this._basis=new lt(t),this._beta=n}function vt(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 _t(t,n){this._context=t,this._k=(1-n)/6}function yt(t,n){this._context=t,this._k=(1-n)/6}function gt(t,n){this._context=t,this._k=(1-n)/6}function mt(t,n,e){var r=t._x1,i=t._y1,o=t._x2,u=t._y2;if(t._l01_a>gl){var a=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*a-t._x0*t._l12_2a+t._x2*t._l01_2a)/c,i=(i*a-t._y0*t._l12_2a+t._y2*t._l01_2a)/c}if(t._l23_a>gl){var s=2*t._l23_2a+3*t._l23_a*t._l12_a+t._l12_2a,f=3*t._l23_a*(t._l23_a+t._l12_a);o=(o*s+t._x1*t._l23_2a-n*t._l12_2a)/f,u=(u*s+t._y1*t._l23_2a-e*t._l12_2a)/f}t._context.bezierCurveTo(r,i,o,u,t._x2,t._y2)}function xt(t,n){this._context=t,this._alpha=n}function bt(t,n){this._context=t,this._alpha=n}function wt(t,n){this._context=t,this._alpha=n}function Mt(t){this._context=t}function Tt(t){return t<0?-1:1}function Nt(t,n,e){var r=t._x1-t._x0,i=n-t._x1,o=(t._y1-t._y0)/(r||i<0&&-0),u=(e-t._y1)/(i||r<0&&-0),a=(o*i+u*r)/(r+i);return(Tt(o)+Tt(u))*Math.min(Math.abs(o),Math.abs(u),.5*Math.abs(a))||0}function kt(t,n){var e=t._x1-t._x0;return e?(3*(t._y1-t._y0)/e-n)/2:n}function St(t,n,e){var r=t._x0,i=t._y0,o=t._x1,u=t._y1,a=(o-r)/3;t._context.bezierCurveTo(r+a,i+a*n,o-a,u-a*e,o,u)}function At(t){this._context=t}function Et(t){this._context=new Ct(t)}function Ct(t){this._context=t}function zt(t){return new At(t)}function Pt(t){return new Et(t)}function qt(t){this._context=t}function Lt(t){var n,e,r=t.length-1,i=new Array(r),o=new Array(r),u=new Array(r);for(i[0]=0,o[0]=2,u[0]=t[0]+2*t[1],n=1;n=0;--n)i[n]=(u[n]-i[n+1])/o[n];for(o[r-1]=(t[r]+i[r-1])/2,n=0;n>8&15|n>>4&240,n>>4&15|240&n,(15&n)<<4|15&n,1)):(n=Sh.exec(t))?jt(parseInt(n[1],16)):(n=Ah.exec(t))?new Wt(n[1],n[2],n[3],1):(n=Eh.exec(t))?new Wt(255*n[1]/100,255*n[2]/100,255*n[3]/100,1):(n=Ch.exec(t))?Ht(n[1],n[2],n[3],n[4]):(n=zh.exec(t))?Ht(255*n[1]/100,255*n[2]/100,255*n[3]/100,n[4]):(n=Ph.exec(t))?$t(n[1],n[2]/100,n[3]/100,1):(n=qh.exec(t))?$t(n[1],n[2]/100,n[3]/100,n[4]):Lh.hasOwnProperty(t)?jt(Lh[t]):"transparent"===t?new Wt(NaN,NaN,NaN,0):null}function jt(t){return new Wt(t>>16&255,t>>8&255,255&t,1)}function Ht(t,n,e,r){return r<=0&&(t=n=e=NaN),new Wt(t,n,e,r)}function Xt(t){return t instanceof Yt||(t=Bt(t)),t?(t=t.rgb(),new Wt(t.r,t.g,t.b,t.opacity)):new Wt}function Vt(t,n,e,r){return 1===arguments.length?Xt(t):new Wt(t,n,e,null==r?1:r)}function Wt(t,n,e,r){this.r=+t,this.g=+n,this.b=+e,this.opacity=+r}function $t(t,n,e,r){return r<=0?t=n=e=NaN:e<=0||e>=1?t=n=NaN:n<=0&&(t=NaN),new Jt(t,n,e,r)}function Zt(t){if(t instanceof Jt)return new Jt(t.h,t.s,t.l,t.opacity);if(t instanceof Yt||(t=Bt(t)),!t)return new Jt;if(t instanceof Jt)return t;t=t.rgb();var n=t.r/255,e=t.g/255,r=t.b/255,i=Math.min(n,e,r),o=Math.max(n,e,r),u=NaN,a=o-i,c=(o+i)/2;return a?(u=n===o?(e-r)/a+6*(e0&&c<1?0:u,new Jt(u,a,c,t.opacity)}function Gt(t,n,e,r){return 1===arguments.length?Zt(t):new Jt(t,n,e,null==r?1:r)}function Jt(t,n,e,r){this.h=+t,this.s=+n,this.l=+e,this.opacity=+r}function Qt(t,n,e){return 255*(t<60?n+(e-n)*t/60:t<180?e:t<240?n+(e-n)*(240-t)/60:n)}function Kt(t){if(t instanceof nn)return new nn(t.l,t.a,t.b,t.opacity);if(t instanceof sn){var n=t.h*Rh;return new nn(t.l,Math.cos(n)*t.c,Math.sin(n)*t.c,t.opacity)}t instanceof Wt||(t=Xt(t));var e=un(t.r),r=un(t.g),i=un(t.b),o=en((.4124564*e+.3575761*r+.1804375*i)/Oh),u=en((.2126729*e+.7151522*r+.072175*i)/Fh),a=en((.0193339*e+.119192*r+.9503041*i)/Ih);return new nn(116*u-16,500*(o-u),200*(u-a),t.opacity)}function tn(t,n,e,r){return 1===arguments.length?Kt(t):new nn(t,n,e,null==r?1:r)}function nn(t,n,e,r){this.l=+t,this.a=+n,this.b=+e,this.opacity=+r}function en(t){return t>Hh?Math.pow(t,1/3):t/jh+Yh}function rn(t){return t>Bh?t*t*t:jh*(t-Yh)}function on(t){return 255*(t<=.0031308?12.92*t:1.055*Math.pow(t,1/2.4)-.055)}function un(t){return(t/=255)<=.04045?t/12.92:Math.pow((t+.055)/1.055,2.4)}function an(t){if(t instanceof sn)return new sn(t.h,t.c,t.l,t.opacity);t instanceof nn||(t=Kt(t));var n=Math.atan2(t.b,t.a)*Uh;return new sn(n<0?n+360:n,Math.sqrt(t.a*t.a+t.b*t.b),t.l,t.opacity)}function cn(t,n,e,r){return 1===arguments.length?an(t):new sn(t,n,e,null==r?1:r)}function sn(t,n,e,r){this.h=+t,this.c=+n,this.l=+e,this.opacity=+r}function fn(t){if(t instanceof hn)return new hn(t.h,t.s,t.l,t.opacity);t instanceof Wt||(t=Xt(t));var n=t.r/255,e=t.g/255,r=t.b/255,i=(Qh*r+Gh*n-Jh*e)/(Qh+Gh-Jh),o=r-i,u=(Zh*(e-i)-Wh*o)/$h,a=Math.sqrt(u*u+o*o)/(Zh*i*(1-i)),c=a?Math.atan2(u,o)*Uh-120:NaN;return new hn(c<0?c+360:c,a,i,t.opacity)}function ln(t,n,e,r){return 1===arguments.length?fn(t):new hn(t,n,e,null==r?1:r)}function hn(t,n,e,r){this.h=+t,this.s=+n,this.l=+e,this.opacity=+r}function pn(t,n,e,r,i){var o=t*t,u=o*t;return((1-3*t+3*o-u)*n+(4-6*o+3*u)*e+(1+3*t+3*o-3*u)*r+u*i)/6}function dn(t,n){return function(e){return t+e*n}}function vn(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)}}function _n(t,n){var e=n-t;return e?dn(t,e>180||e<-180?e-360*Math.round(e/360):e):op(isNaN(t)?n:t)}function yn(t){return 1===(t=+t)?gn:function(n,e){return e-n?vn(n,e,t):op(isNaN(n)?e:n)}}function gn(t,n){var e=n-t;return e?dn(t,e):op(isNaN(t)?n:t)}function mn(t){return function(n){var e,r,i=n.length,o=new Array(i),u=new Array(i),a=new Array(i);for(e=0;e180?n+=360:n-t>180&&(t+=360),o.push({i:e.push(i(e)+"rotate(",null,r)-2,x:lp(t,n)})):n&&e.push(i(e)+"rotate("+n+r)}function a(t,n,e,o){t!==n?o.push({i:e.push(i(e)+"skewX(",null,r)-2,x:lp(t,n)}):n&&e.push(i(e)+"skewX("+n+r)}function c(t,n,e,r,o,u){if(t!==e||n!==r){var a=o.push(i(o)+"scale(",null,",",null,")");u.push({i:a-4,x:lp(t,e)},{i:a-2,x:lp(n,r)})}else 1===e&&1===r||o.push(i(o)+"scale("+e+","+r+")")}return function(n,e){var r=[],i=[];return n=t(n),e=t(e),o(n.translateX,n.translateY,e.translateX,e.translateY,r,i),u(n.rotate,e.rotate,r,i),a(n.skewX,e.skewX,r,i),c(n.scaleX,n.scaleY,e.scaleX,e.scaleY,r,i),n=e=null,function(t){for(var n,e=-1,o=i.length;++e=0&&(e=t.slice(r+1),t=t.slice(0,r)),t&&!n.hasOwnProperty(t))throw new Error("unknown type: "+t);return{type:t,name:e}})}function Rn(t,n){for(var e,r=0,i=t.length;r=0&&n._call.call(null,t),n=n._next;--id}function $n(){sd=(cd=ld.now())+fd,id=od=0;try{Wn()}finally{id=0,Gn(),sd=0}}function Zn(){var t=ld.now(),n=t-cd;n>ad&&(fd-=n,cd=t)}function Gn(){for(var t,n,e=Up,r=1/0;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:Up=n);Dp=t,Jn(r)}function Jn(t){if(!id){od&&(od=clearTimeout(od));var n=t-sd;n>24?(t<1/0&&(od=setTimeout($n,n)),ud&&(ud=clearInterval(ud))):(ud||(ud=setInterval(Zn,ad)),id=1,hd($n))}}function Qn(t,n,e,r){function i(n){return t(n=new Date(+n)),n}return i.floor=i,i.ceil=function(e){return t(e=new Date(e-1)),n(e,1),t(e),e},i.round=function(t){var n=i(t),e=i.ceil(t);return t-n0))return u;do u.push(new Date(+e));while(n(e,o),t(e),e=n)for(;t(n),!e(n);)n.setTime(n-1)},function(t,r){if(t>=t)for(;--r>=0;)for(;n(t,1),!e(t););})},e&&(i.count=function(n,r){return vd.setTime(+n),_d.setTime(+r),t(vd),t(_d),Math.floor(e(vd,_d))},i.every=function(t){return t=Math.floor(t),isFinite(t)&&t>0?t>1?i.filter(r?function(n){return r(n)%t===0}:function(n){return i.count(0,n)%t===0}):i:null}),i}function Kn(t){return Qn(function(n){n.setDate(n.getDate()-(n.getDay()+7-t)%7),n.setHours(0,0,0,0)},function(t,n){t.setDate(t.getDate()+7*n)},function(t,n){return(n-t-(n.getTimezoneOffset()-t.getTimezoneOffset())*xd)/Md})}function te(t){return Qn(function(n){n.setUTCDate(n.getUTCDate()-(n.getUTCDay()+7-t)%7),n.setUTCHours(0,0,0,0)},function(t,n){t.setUTCDate(t.getUTCDate()+7*n)},function(t,n){return(n-t)/Md})}function ne(t){if(!(n=Av.exec(t)))throw new Error("invalid format: "+t);var n,e=n[1]||" ",r=n[2]||">",i=n[3]||"-",o=n[4]||"",u=!!n[5],a=n[6]&&+n[6],c=!!n[7],s=n[8]&&+n[8].slice(1),f=n[9]||"";"n"===f?(c=!0,f="g"):Sv[f]||(f=""),(u||"0"===e&&"="===r)&&(u=!0,e="0",r="="),this.fill=e,this.align=r,this.sign=i,this.symbol=o,this.zero=u,this.width=a,this.comma=c,this.precision=s,this.type=f}function ee(t){return t}function re(n){return Cv=Pv(n),t.format=Cv.format,t.formatPrefix=Cv.formatPrefix,Cv}function ie(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 oe(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 ue(t){return{y:t,m:0,d:1,H:0,M:0,S:0,L:0}}function ae(t){function n(t,n){return function(e){var r,i,o,u=[],a=-1,c=0,s=t.length;for(e instanceof Date||(e=new Date(+e));++a=c)return-1;if(i=n.charCodeAt(u++),37===i){if(i=n.charAt(u++),o=B[i in Dv?n.charAt(u++):i],!o||(r=o(t,e,r))<0)return-1}else if(i!=e.charCodeAt(r++))return-1}return r}function i(t,n,e){var r=C.exec(n.slice(e));return r?(t.p=z[r[0].toLowerCase()],e+r[0].length):-1}function o(t,n,e){var r=L.exec(n.slice(e));return r?(t.w=R[r[0].toLowerCase()],e+r[0].length):-1}function u(t,n,e){var r=P.exec(n.slice(e));return r?(t.w=q[r[0].toLowerCase()],e+r[0].length):-1}function a(t,n,e){var r=O.exec(n.slice(e));return r?(t.m=F[r[0].toLowerCase()],e+r[0].length):-1}function c(t,n,e){var r=U.exec(n.slice(e));return r?(t.m=D[r[0].toLowerCase()],e+r[0].length):-1}function s(t,n,e){return r(t,w,n,e)}function f(t,n,e){return r(t,M,n,e)}function l(t,n,e){return r(t,T,n,e)}function h(t){return S[t.getDay()]}function p(t){return k[t.getDay()]}function d(t){return E[t.getMonth()]}function v(t){return A[t.getMonth()]}function _(t){return N[+(t.getHours()>=12)]}function y(t){return S[t.getUTCDay()]}function g(t){return k[t.getUTCDay()]}function m(t){return E[t.getUTCMonth()]}function x(t){return A[t.getUTCMonth()]}function b(t){return N[+(t.getUTCHours()>=12)]}var w=t.dateTime,M=t.date,T=t.time,N=t.periods,k=t.days,S=t.shortDays,A=t.months,E=t.shortMonths,C=fe(N),z=le(N),P=fe(k),q=le(k),L=fe(S),R=le(S),U=fe(A),D=le(A),O=fe(E),F=le(E),I={a:h,A:p,b:d,B:v,c:null,d:ke,e:ke,H:Se,I:Ae,j:Ee,L:Ce,m:ze,M:Pe,p:_,S:qe,U:Le,w:Re,W:Ue,x:null,X:null,y:De,Y:Oe,Z:Fe,"%":tr},Y={a:y,A:g,b:m,B:x,c:null,d:Ie,e:Ie,H:Ye,I:Be,j:je,L:He,m:Xe,M:Ve,p:b,S:We,U:$e,w:Ze,W:Ge,x:null,X:null,y:Je,Y:Qe,Z:Ke,"%":tr},B={a:o,A:u,b:a,B:c,c:s,d:me,e:me,H:be,I:be,j:xe,L:Te,m:ge,M:we,p:i,S:Me,U:pe,w:he,W:de,x:f,X:l,y:_e,Y:ve,Z:ye,"%":Ne};return I.x=n(M,I),I.X=n(T,I),I.c=n(w,I),Y.x=n(M,Y),Y.X=n(T,Y),Y.c=n(w,Y),{format:function(t){var e=n(t+="",I);return e.toString=function(){return t},e},parse:function(t){var n=e(t+="",ie);return n.toString=function(){return t},n},utcFormat:function(t){var e=n(t+="",Y);return e.toString=function(){return t},e},utcParse:function(t){var n=e(t,oe);return n.toString=function(){return t},n}}}function ce(t,n,e){var r=t<0?"-":"",i=(r?-t:t)+"",o=i.length;return r+(o68?1900:2e3),e+r[0].length):-1}function ye(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 ge(t,n,e){var r=Ov.exec(n.slice(e,e+2));return r?(t.m=r[0]-1,e+r[0].length):-1}function me(t,n,e){var r=Ov.exec(n.slice(e,e+2));return r?(t.d=+r[0],e+r[0].length):-1}function xe(t,n,e){var r=Ov.exec(n.slice(e,e+3));return r?(t.m=0,t.d=+r[0],e+r[0].length):-1}function be(t,n,e){var r=Ov.exec(n.slice(e,e+2));return r?(t.H=+r[0],e+r[0].length):-1}function we(t,n,e){var r=Ov.exec(n.slice(e,e+2));return r?(t.M=+r[0],e+r[0].length):-1}function Me(t,n,e){var r=Ov.exec(n.slice(e,e+2));return r?(t.S=+r[0],e+r[0].length):-1}function Te(t,n,e){var r=Ov.exec(n.slice(e,e+3));return r?(t.L=+r[0],e+r[0].length):-1}function Ne(t,n,e){var r=Fv.exec(n.slice(e,e+1));return r?e+r[0].length:-1}function ke(t,n){return ce(t.getDate(),n,2)}function Se(t,n){return ce(t.getHours(),n,2)}function Ae(t,n){return ce(t.getHours()%12||12,n,2)}function Ee(t,n){return ce(1+Cd.count($d(t),t),n,3)}function Ce(t,n){return ce(t.getMilliseconds(),n,3)}function ze(t,n){return ce(t.getMonth()+1,n,2)}function Pe(t,n){return ce(t.getMinutes(),n,2)}function qe(t,n){return ce(t.getSeconds(),n,2)}function Le(t,n){return ce(Pd.count($d(t),t),n,2)}function Re(t){return t.getDay()}function Ue(t,n){return ce(qd.count($d(t),t),n,2)}function De(t,n){return ce(t.getFullYear()%100,n,2)}function Oe(t,n){return ce(t.getFullYear()%1e4,n,4)}function Fe(t){var n=t.getTimezoneOffset();return(n>0?"-":(n*=-1,"+"))+ce(n/60|0,"0",2)+ce(n%60,"0",2)}function Ie(t,n){return ce(t.getUTCDate(),n,2)}function Ye(t,n){return ce(t.getUTCHours(),n,2)}function Be(t,n){return ce(t.getUTCHours()%12||12,n,2)}function je(t,n){return ce(1+tv.count(gv(t),t),n,3)}function He(t,n){return ce(t.getUTCMilliseconds(),n,3)}function Xe(t,n){return ce(t.getUTCMonth()+1,n,2)}function Ve(t,n){return ce(t.getUTCMinutes(),n,2)}function We(t,n){return ce(t.getUTCSeconds(),n,2)}function $e(t,n){return ce(ev.count(gv(t),t),n,2)}function Ze(t){return t.getUTCDay()}function Ge(t,n){return ce(rv.count(gv(t),t),n,2)}function Je(t,n){return ce(t.getUTCFullYear()%100,n,2)}function Qe(t,n){return ce(t.getUTCFullYear()%1e4,n,4)}function Ke(){return"+0000"}function tr(){return"%"}function nr(n){return qv=ae(n),t.timeFormat=qv.format,t.timeParse=qv.parse,t.utcFormat=qv.utcFormat,t.utcParse=qv.utcParse,qv}function er(t){return t.toISOString()}function rr(t){var n=new Date(t);return isNaN(n)?null:n}function ir(t){function n(n){var o=n+"",u=e.get(o);if(!u){if(i!==Wv)return i;e.set(o,u=r.push(n))}return t[(u-1)%t.length]}var e=o(),r=[],i=Wv;return t=null==t?[]:Vv.call(t),n.domain=function(t){if(!arguments.length)return r.slice();r=[],e=o();for(var i,u,a=-1,c=t.length;++a=e?1:r(t)}}}function fr(t){return function(n,e){var r=t(n=+n,e=+e);return function(t){return t<=0?n:t>=1?e:r(t)}}}function lr(t,n,e,r){var i=t[0],o=t[1],u=n[0],a=n[1];return o2?hr:lr,o=u=null,r}function r(n){return(o||(o=i(a,c,f?sr(t):t,s)))(+n)}var i,o,u,a=Gv,c=Gv,s=_p,f=!1;return r.invert=function(t){return(u||(u=i(c,a,cr,f?fr(n):n)))(+t)},r.domain=function(t){return arguments.length?(a=Xv.call(t,Zv),e()):a.slice()},r.range=function(t){return arguments.length?(c=Vv.call(t),e()):c.slice()},r.rangeRound=function(t){return c=Vv.call(t),s=yp,e()},r.clamp=function(t){return arguments.length?(f=!!t,e()):f},r.interpolate=function(t){return arguments.length?(s=t,e()):s},e()}function vr(t){var n=t.domain;return t.ticks=function(t){var e=n();return Bs(e[0],e[e.length-1],null==t?10:t)},t.tickFormat=function(t,e){return Jv(n(),t,e)},t.nice=function(r){var i=n(),o=i.length-1,u=null==r?10:r,a=i[0],c=i[o],s=e(a,c,u);return s&&(s=e(Math.floor(a/s)*s,Math.ceil(c/s)*s,u),i[0]=Math.floor(a/s)*s,i[o]=Math.ceil(c/s)*s,n(i)),t},t}function _r(){var t=dr(cr,lp);return t.copy=function(){return pr(t,_r())},vr(t)}function yr(){function t(t){return+t}var n=[0,1];return t.invert=t,t.domain=t.range=function(e){return arguments.length?(n=Xv.call(e,Zv),t):n.slice()},t.copy=function(){return yr().domain(n)},vr(t)}function gr(t,n){return(n=Math.log(n/t))?function(e){return Math.log(e/t)/n}:$v(n)}function mr(t,n){return t<0?function(e){return-Math.pow(-n,e)*Math.pow(-t,1-e)}:function(e){return Math.pow(n,e)*Math.pow(t,1-e)}}function xr(t){return isFinite(t)?+("1e"+t):t<0?0:t}function br(t){return 10===t?xr:t===Math.E?Math.exp:function(n){return Math.pow(t,n)}}function wr(t){return t===Math.E?Math.log:10===t&&Math.log10||2===t&&Math.log2||(t=Math.log(t),function(n){return Math.log(n)/t})}function Mr(t){return function(n){return-t(-n)}}function Tr(){function n(){return o=wr(i),u=br(i),r()[0]<0&&(o=Mr(o),u=Mr(u)),e}var e=dr(gr,mr).domain([1,10]),r=e.domain,i=10,o=wr(10),u=br(10);return e.base=function(t){return arguments.length?(i=+t,n()):i},e.domain=function(t){return arguments.length?(r(t),n()):r()},e.ticks=function(t){var n,e=r(),a=e[0],c=e[e.length-1];(n=c0){for(;hc)break;v.push(l)}}else for(;h=1;--f)if(l=s*f,!(lc)break;v.push(l)}}else v=Bs(h,p,Math.min(p-h,d)).map(u);return n?v.reverse():v},e.tickFormat=function(n,r){if(null==r&&(r=10===i?".0e":","),"function"!=typeof r&&(r=t.format(r)),n===1/0)return r;null==n&&(n=10);var a=Math.max(1,i*n/e.ticks().length);return function(t){var n=t/u(Math.round(o(t)));return n*i0?i[n-1]:e[0],n=i?[o[i-1],r]:[o[n-1],o[n]]},t.copy=function(){return Er().domain([e,r]).range(u)},vr(t)}function Cr(){function t(t){if(t<=t)return e[ks(n,t,0,r)]}var n=[.5],e=[0,1],r=1;return t.domain=function(i){return arguments.length?(n=Vv.call(i),r=Math.min(n.length,e.length-1),t):n.slice()},t.range=function(i){return arguments.length?(e=Vv.call(i),r=Math.min(n.length,e.length-1),t):e.slice()},t.invertExtent=function(t){var r=e.indexOf(t);return[n[r-1],n[r]]},t.copy=function(){return Cr().domain(n).range(e)},t}function zr(t){return new Date(t); +}function Pr(t){return t instanceof Date?+t:+new Date(+t)}function qr(t,n,r,i,o,u,a,c,s){function f(e){return(a(e)=0&&(n=t.slice(e+1),t=t.slice(0,e)),{type:t,name:n}})}function jr(t){return function(){var n=this.__on;if(n){for(var e,r=0,i=-1,o=n.length;rn?1:t>=n?0:NaN}function Qr(t){return function(){this.removeAttribute(t)}}function Kr(t){return function(){this.removeAttributeNS(t.space,t.local)}}function ti(t,n){return function(){this.setAttribute(t,n)}}function ni(t,n){return function(){this.setAttributeNS(t.space,t.local,n)}}function ei(t,n){return function(){var e=n.apply(this,arguments);null==e?this.removeAttribute(t):this.setAttribute(t,e)}}function ri(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 ii(t){return function(){this.style.removeProperty(t)}}function oi(t,n,e){return function(){this.style.setProperty(t,n,e)}}function ui(t,n,e){return function(){var r=n.apply(this,arguments);null==r?this.style.removeProperty(t):this.style.setProperty(t,r,e)}}function ai(t){return function(){delete this[t]}}function ci(t,n){return function(){this[t]=n}}function si(t,n){return function(){var e=n.apply(this,arguments);null==e?delete this[t]:this[t]=e}}function fi(t){return t.trim().split(/^|\s+/)}function li(t){return t.classList||new hi(t)}function hi(t){this._node=t,this._names=fi(t.getAttribute("class")||"")}function pi(t,n){for(var e=li(t),r=-1,i=n.length;++rTy)throw new Error("too late");return e}function Li(t,n){var e=t.__transition;if(!e||!(e=e[n])||e.state>ky)throw new Error("too late");return e}function Ri(t,n){var e=t.__transition;if(!e||!(e=e[n]))throw new Error("too late");return e}function Ui(t,n,e){function r(t){e.state=Ny,e.timer.restart(i,e.delay,e.time),e.delay<=t&&i(t-e.delay)}function i(r){var s,f,l,h;if(e.state!==Ny)return u();for(s in c)if(h=c[s],h.name===e.name){if(h.state===Sy)return pd(i);h.state===Ay?(h.state=Cy,h.timer.stop(),h.on.call("interrupt",t,t.__data__,h.index,h.group),delete c[s]):+s=0&&(t=t.slice(0,n)),!t||"start"===t})}function to(t,n,e){var r,i,o=Ki(n)?qi:Li;return function(){var u=o(this,t),a=u.on;a!==r&&(i=(r=a).copy()).on(n,e),u.on=i}}function no(t){return function(){var n=this.parentNode;for(var e in this.__transition)if(+e!==t)return;n&&n.removeChild(this)}}function eo(t,n){var e,r,i;return function(){var o=iy(this).getComputedStyle(this,null),u=o.getPropertyValue(t),a=(this.style.removeProperty(t),o.getPropertyValue(t));return u===a?null:u===e&&a===r?i:i=n(e=u,r=a)}}function ro(t){return function(){this.style.removeProperty(t)}}function io(t,n,e){var r,i;return function(){var o=iy(this).getComputedStyle(this,null).getPropertyValue(t);return o===e?null:o===r?i:i=n(r=o,e)}}function oo(t,n,e){var r,i,o;return function(){var u=iy(this).getComputedStyle(this,null),a=u.getPropertyValue(t),c=e(this);return null==c&&(this.style.removeProperty(t),c=u.getPropertyValue(t)),a===c?null:a===r&&c===i?o:o=n(r=a,i=c)}}function uo(t,n,e){function r(){var r=this,i=n.apply(r,arguments);return i&&function(n){r.style.setProperty(t,i(n),e)}}return r._value=n,r}function ao(t){return function(){this.textContent=t}}function co(t){return function(){var n=t(this);this.textContent=null==n?"":n}}function so(t,n,e,r){this._groups=t,this._parents=n,this._name=e,this._id=r}function fo(t){return Pi().transition(t)}function lo(){return++Ky}function ho(t,n){for(var e;!(e=t.__transition)||!(e=e[n]);)if(!(t=t.parentNode))return ng.time=jn(),ng;return e}function po(t,n,e){var r=t(e);return"translate("+(isFinite(r)?r:n(e))+",0)"}function vo(t,n,e){var r=t(e);return"translate(0,"+(isFinite(r)?r:n(e))+")"}function _o(t){var n=t.bandwidth()/2;return t.round()&&(n=Math.round(n)),function(e){return t(e)+n}}function yo(){return!this.__axis}function go(t,n){function e(e){var s,f=null==i?n.ticks?n.ticks.apply(n,r):n.domain():i,l=null==o?n.tickFormat?n.tickFormat.apply(n,r):ug:o,h=Math.max(u,0)+c,p=t===ag||t===sg?po:vo,d=n.range(),v=d[0]+.5,_=d[d.length-1]+.5,y=(n.bandwidth?_o:ug)(n.copy()),g=e.selection?e.selection():e,m=g.selectAll(".domain").data([null]),x=g.selectAll(".tick").data(f,n).order(),b=x.exit(),w=x.enter().append("g").attr("class","tick"),M=x.select("line"),T=x.select("text"),N=t===ag||t===fg?-1:1,k=t===fg||t===cg?(s="x","y"):(s="y","x");m=m.merge(m.enter().insert("path",".tick").attr("class","domain").attr("stroke","#000")),x=x.merge(w),M=M.merge(w.append("line").attr("stroke","#000").attr(s+"2",N*u).attr(k+"1",.5).attr(k+"2",.5)),T=T.merge(w.append("text").attr("fill","#000").attr(s,N*h).attr(k,.5).attr("dy",t===ag?"0em":t===sg?"0.71em":"0.32em")),e!==g&&(m=m.transition(e),x=x.transition(e),M=M.transition(e),T=T.transition(e),b=b.transition(e).attr("opacity",lg).attr("transform",function(t){return p(y,this.parentNode.__axis||y,t)}),w.attr("opacity",lg).attr("transform",function(t){return p(this.parentNode.__axis||y,y,t)})),b.remove(),m.attr("d",t===fg||t==cg?"M"+N*a+","+v+"H0.5V"+_+"H"+N*a:"M"+v+","+N*a+"V0.5H"+_+"V"+N*a),x.attr("opacity",1).attr("transform",function(t){return p(y,y,t)}),M.attr(s+"2",N*u),T.attr(s,N*h).text(l),g.filter(yo).attr("fill","none").attr("font-size",10).attr("font-family","sans-serif").attr("text-anchor",t===cg?"start":t===fg?"end":"middle"),g.each(function(){this.__axis=y})}var r=[],i=null,o=null,u=6,a=6,c=3;return e.scale=function(t){return arguments.length?(n=t,e):n},e.ticks=function(){return r=og.call(arguments),e},e.tickArguments=function(t){return arguments.length?(r=null==t?[]:og.call(t),e):r.slice()},e.tickValues=function(t){return arguments.length?(i=null==t?null:og.call(t),e):i&&i.slice()},e.tickFormat=function(t){return arguments.length?(o=t,e):o},e.tickSize=function(t){return arguments.length?(u=a=+t,e):u},e.tickSizeInner=function(t){return arguments.length?(u=+t,e):u},e.tickSizeOuter=function(t){return arguments.length?(a=+t,e):a},e.tickPadding=function(t){return arguments.length?(c=+t,e):c},e}function mo(t){return go(ag,t)}function xo(t){return go(cg,t)}function bo(t){return go(sg,t)}function wo(t){return go(fg,t)}function Mo(t,n){return t.parent===n.parent?1:2}function To(t){return t.reduce(No,0)/t.length}function No(t,n){return t+n.x}function ko(t){return 1+t.reduce(So,0)}function So(t,n){return Math.max(t,n.y)}function Ao(t){for(var n;n=t.children;)t=n[0];return t}function Eo(t){for(var n;n=t.children;)t=n[n.length-1];return t}function Co(t,n){if(t===n)return t;var e=t.ancestors(),r=n.ancestors(),i=null;for(t=e.pop(),n=r.pop();t===n;)i=t,t=e.pop(),n=r.pop();return i}function zo(t,n){var e,r,i,o,u,a=new Uo(t),c=+t.value&&(a.value=t.value),s=[a];for(null==n&&(n=qo);e=s.pop();)if(c&&(e.value=+e.data.value),(i=n(e.data))&&(u=i.length))for(e.children=new Array(u),o=u-1;o>=0;--o)s.push(r=e.children[o]=new Uo(i[o])),r.parent=e,r.depth=e.depth+1;return a.eachBefore(Ro)}function Po(){return zo(this).eachBefore(Lo)}function qo(t){return t.children}function Lo(t){t.data=t.data.data}function Ro(t){var n=0;do t.height=n;while((t=t.parent)&&t.height<++n)}function Uo(t){this.data=t,this.depth=this.height=0,this.parent=null}function Do(t){this._=t,this.next=null}function Oo(t,n){var e=n.x-t.x,r=n.y-t.y,i=t.r-n.r;return i*i+1e-6>e*e+r*r}function Fo(t,n){var e,r,i,o=null,u=t.head;switch(n.length){case 1:e=Io(n[0]);break;case 2:e=Yo(n[0],n[1]);break;case 3:e=Bo(n[0],n[1],n[2])}for(;u;)i=u._,r=u.next,e&&Oo(e,i)?o=u:(o?(t.tail=o,o.next=null):t.head=t.tail=null,n.push(i),e=Fo(t,n),n.pop(),t.head?(u.next=t.head,t.head=u):(u.next=null,t.head=t.tail=u),o=t.tail,o.next=r),u=r;return t.tail=o,e}function Io(t){return{x:t.x,y:t.y,r:t.r}}function Yo(t,n){var e=t.x,r=t.y,i=t.r,o=n.x,u=n.y,a=n.r,c=o-e,s=u-r,f=a-i,l=Math.sqrt(c*c+s*s);return{x:(e+o+c/l*f)/2,y:(r+u+s/l*f)/2,r:(l+i+a)/2}}function Bo(t,n,e){var r=t.x,i=t.y,o=t.r,u=n.x,a=n.y,c=n.r,s=e.x,f=e.y,l=e.r,h=2*(r-u),p=2*(i-a),d=2*(c-o),v=r*r+i*i-o*o-u*u-a*a+c*c,_=2*(r-s),y=2*(i-f),g=2*(l-o),m=r*r+i*i-o*o-s*s-f*f+l*l,x=_*p-h*y,b=(p*m-y*v)/x-r,w=(y*d-p*g)/x,M=(_*v-h*m)/x-i,T=(h*g-_*d)/x,N=w*w+T*T-1,k=2*(b*w+M*T+o),S=b*b+M*M-o*o,A=(-k-Math.sqrt(k*k-4*N*S))/(2*N);return{x:b+w*A+r,y:M+T*A+i,r:A}}function jo(t,n,e){var r=t.x,i=t.y,o=n.r+e.r,u=t.r+e.r,a=n.x-r,c=n.y-i,s=a*a+c*c;if(s){var f=.5+((u*=u)-(o*=o))/(2*s),l=Math.sqrt(Math.max(0,2*o*(u+s)-(u-=s)*u-o*o))/(2*s);e.x=r+f*a+l*c,e.y=i+f*c-l*a}else e.x=r+u,e.y=i}function Ho(t,n){var e=n.x-t.x,r=n.y-t.y,i=t.r+n.r;return i*i>e*e+r*r}function Xo(t,n,e){var r=t.x-n,i=t.y-e;return r*r+i*i}function Vo(t){this._=t,this.next=null,this.previous=null}function Wo(t){if(!(i=t.length))return 0;var n,e,r,i;if(n=t[0],n.x=0,n.y=0,!(i>1))return n.r;if(e=t[1],n.x=-e.r,e.x=n.r,e.y=0,!(i>2))return n.r+e.r;jo(e,n,r=t[2]);var o,u,a,c,s,f,l,h=n.r*n.r,p=e.r*e.r,d=r.r*r.r,v=h+p+d,_=h*n.x+p*e.x+d*r.x,y=h*n.y+p*e.y+d*r.y;n=new Vo(n),e=new Vo(e),r=new Vo(r),n.next=r.previous=e,e.next=n.previous=r,r.next=e.previous=n;t:for(a=3;a=0;)n=i[o],n.z+=e,n.m+=e,e+=n.s+(r+=n.c)}function cu(t,n,e){return t.a.parent===n.parent?t.a:e}function su(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 fu(t){for(var n,e,r,i,o,u=new su(t,0),a=[u];n=a.pop();)if(r=n._.children)for(n.children=new Array(o=r.length),i=o-1;i>=0;--i)a.push(e=n.children[i]=new su(r[i],i)),e.parent=n;return(u.parent=new su(null,0)).children=[u],u}function lu(t,n,e,r,i,o){for(var u,a,c,s,f,l,h,p,d,v,_,y,g=[],m=n.children,x=0,b=m.length,w=n.value;xp&&(p=a),y=l*l*_,d=Math.max(p/y,y/h),d>v){l-=a;break}v=d}g.push(u={value:l,dice:s0)){if(o/=d,d<0){if(o0){if(o>p)return;o>h&&(h=o)}if(o=r-c,d||!(o<0)){if(o/=d,d<0){if(o>p)return;o>h&&(h=o)}else if(d>0){if(o0)){if(o/=v,v<0){if(o0){if(o>p)return;o>h&&(h=o)}if(o=i-s,v||!(o<0)){if(o/=v,v<0){if(o>p)return;o>h&&(h=o)}else if(v>0){if(o0||p<1)||(h>0&&(t[0]=[c+h*d,s+h*v]),p<1&&(t[1]=[c+p*d,s+p*v]),!0)}}}}}function Ru(t,n,e,r,i){var o=t[1];if(o)return!0;var u,a,c=t[0],s=t.left,f=t.right,l=s[0],h=s[1],p=f[0],d=f[1],v=(l+p)/2,_=(h+d)/2;if(d===h){if(v=r)return;if(l>p){if(c){if(c[1]>=i)return}else c=[v,e];o=[v,i]}else{if(c){if(c[1]1)if(l>p){if(c){if(c[1]>=i)return}else c=[(e-a)/u,e];o=[(i-a)/u,i]}else{if(c){if(c[1]=r)return}else c=[n,u*n+a];o=[r,u*r+a]}else{if(c){if(c[0]hm||Math.abs(i[0][1]-i[1][1])>hm)||delete sm[o]}function Du(t){return am[t.index]={site:t,halfedges:[]}}function Ou(t,n){var e=t.site,r=n.left,i=n.right;return e===i&&(i=r,r=e),i?Math.atan2(i[1]-r[1],i[0]-r[0]):(e===r?(r=n[1],i=n[0]):(r=n[0],i=n[1]),Math.atan2(r[0]-i[0],i[1]-r[1]))}function Fu(t,n){return n[+(n.left!==t.site)]}function Iu(t,n){return n[+(n.left===t.site)]}function Yu(){for(var t,n,e,r,i=0,o=am.length;ihm||Math.abs(v-h)>hm)&&(c.splice(a,0,sm.push(Pu(u,p,Math.abs(d-t)hm?[t,Math.abs(l-t)hm?[Math.abs(h-r)hm?[e,Math.abs(l-e)hm?[Math.abs(h-n)=-pm)){var p=c*c+s*s,d=f*f+l*l,v=(l*p-s*d)/h,_=(c*d-f*p)/h,y=fm.pop()||new ju;y.arc=t,y.site=i,y.x=v+u,y.y=(y.cy=_+a)+Math.sqrt(v*v+_*_),t.circle=y;for(var g=null,m=cm._;m;)if(y.yhm)a=a.L;else{if(i=o-Qu(a,u),!(i>hm)){r>-hm?(n=a.P,e=a):i>-hm?(n=a,e=a.N):n=e=a;break}if(!a.R){n=a;break}a=a.R}Du(t);var c=Wu(t);if(um.insert(n,c),n||e){if(n===e)return Xu(n),e=Wu(n.site),um.insert(c,e),c.edge=e.edge=zu(n.site,c.site),Hu(n),void Hu(e);if(!e)return void(c.edge=zu(n.site,c.site));Xu(n),Xu(e);var s=n.site,f=s[0],l=s[1],h=t[0]-f,p=t[1]-l,d=e.site,v=d[0]-f,_=d[1]-l,y=2*(h*_-p*v),g=h*h+p*p,m=v*v+_*_,x=[(_*g-p*m)/y+f,(h*m-v*g)/y+l];qu(e.edge,s,d,x),c.edge=zu(s,t,null,x),e.edge=zu(t,d,null,x),Hu(n),Hu(e)}}function Ju(t,n){var e=t.site,r=e[0],i=e[1],o=i-n;if(!o)return r;var u=t.P;if(!u)return-(1/0);e=u.site;var a=e[0],c=e[1],s=c-n;if(!s)return a;var f=a-r,l=1/o-1/s,h=f/s;return l?(-h+Math.sqrt(h*h-2*l*(f*f/(-2*s)-c+s/2+i-o/2)))/l+r:(r+a)/2}function Qu(t,n){var e=t.N;if(e)return Ju(e,n);var r=t.site;return r[1]===n?r[0]:1/0}function Ku(t,n,e){return(t[0]-e[0])*(n[1]-t[1])-(t[0]-n[0])*(e[1]-t[1])}function ta(t,n){return n[1]-t[1]||n[0]-t[0]}function na(t,n){var e,r,i,o=t.sort(ta).pop();for(sm=[],am=new Array(t.length),um=new ku,cm=new ku;;)if(i=om,o&&(!i||o[1]Math.abs(t[1]-O[1])?M=!0:w=!0),O=t,b=!0,bm(),o()}function o(){var t;switch(m=O[0]-D[0],x=O[1]-D[1],k){case Mm:case wm:S&&(m=Math.max(P-l,Math.min(L-v,m)),h=l+m,_=v+m),A&&(x=Math.max(q-p,Math.min(R-y,x)),d=p+x,g=y+x);break;case Tm:S<0?(m=Math.max(P-l,Math.min(L-l,m)),h=l+m,_=v):S>0&&(m=Math.max(P-v,Math.min(L-v,m)),h=l,_=v+m),A<0?(x=Math.max(q-p,Math.min(R-p,x)),d=p+x,g=y):A>0&&(x=Math.max(q-y,Math.min(R-y,x)),d=p,g=y+x);break;case Nm:S&&(h=Math.max(P,Math.min(L,l-m*S)),_=Math.max(P,Math.min(L,v+m*S))),A&&(d=Math.max(q,Math.min(R,p-x*A)),g=Math.max(q,Math.min(R,y+x*A)))}_0&&(l=h-m),A<0?y=g-x:A>0&&(p=d-x),k=Mm,Y.attr("cursor",Em.selection),o());break;default:return}bm()}function s(){switch(t.event.keyCode){case 16:U&&(w=M=U=!1,o());break;case 18:k===Nm&&(S<0?v=_:S>0&&(l=h),A<0?y=g:A>0&&(p=d),k=Tm,o());break;case 32:k===Mm&&(t.event.altKey?(S&&(v=_-m*S,l=h+m*S),A&&(y=g-x*A,p=d+x*A),k=Nm):(S<0?v=_:S>0&&(l=h),A<0?y=g:A>0&&(p=d),k=Tm),Y.attr("cursor",Em[N]),o());break;default:return}bm()}if(t.event.touches){if(t.event.changedTouches.length1?0:t<-1?kx:Math.acos(t)}function Aa(t){return t>1?Sx:t<-1?-Sx:Math.asin(t)}function Ea(t){return(t=Ix(t/2))*t}function Ca(){}function za(t,n){t&&Xx.hasOwnProperty(t.type)&&Xx[t.type](t,n)}function Pa(t,n,e){var r,i=-1,o=t.length-e;for(n.lineStart();++i=0?1:-1,i=r*e,o=Rx(n),u=Ix(n),a=Gm*u,c=Zm*o+a*Rx(i),s=a*r*Ix(i);Wx.add(Lx(s,c)),$m=t,Zm=o,Gm=u}function Oa(t){return[Lx(t[1],t[0]),Aa(t[2])]}function Fa(t){var n=t[0],e=t[1],r=Rx(e);return[r*Rx(n),r*Ix(n),Ix(e)]}function Ia(t,n){return t[0]*n[0]+t[1]*n[1]+t[2]*n[2]}function Ya(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 Ba(t,n){t[0]+=n[0],t[1]+=n[1],t[2]+=n[2]}function ja(t,n){return[t[0]*n,t[1]*n,t[2]*n]}function Ha(t){var n=Bx(t[0]*t[0]+t[1]*t[1]+t[2]*t[2]);t[0]/=n,t[1]/=n,t[2]/=n}function Xa(t,n){ox.push(ux=[Jm=t,Km=t]),ntx&&(tx=n)}function Va(t,n){var e=Fa([t*zx,n*zx]);if(ix){var r=Ya(ix,e),i=[r[1],-r[0],0],o=Ya(i,r);Ha(o),o=Oa(o);var u,a=t-nx,c=a>0?1:-1,s=o[0]*Cx*c,f=Px(a)>180;f^(c*nxtx&&(tx=u)):(s=(s+360)%360-180,f^(c*nxtx&&(tx=n))),f?tQa(Jm,Km)&&(Km=t):Qa(t,Km)>Qa(Jm,Km)&&(Jm=t):Km>=Jm?(tKm&&(Km=t)):t>nx?Qa(Jm,t)>Qa(Jm,Km)&&(Km=t):Qa(t,Km)>Qa(Jm,Km)&&(Jm=t)}else Xa(t,n);ix=e,nx=t}function Wa(){Qx.point=Va}function $a(){ux[0]=Jm,ux[1]=Km,Qx.point=Xa,ix=null}function Za(t,n){if(ix){var e=t-nx;Jx.add(Px(e)>180?e+(e>0?360:-360):e)}else ex=t,rx=n;Zx.point(t,n),Va(t,n)}function Ga(){Zx.lineStart()}function Ja(){Za(ex,rx),Zx.lineEnd(),Px(Jx)>Tx&&(Jm=-(Km=180)),ux[0]=Jm,ux[1]=Km,ix=null}function Qa(t,n){return(n-=t)<0?n+360:n}function Ka(t,n){return t[0]-n[0]}function tc(t,n){return t[0]<=t[1]?t[0]<=n&&n<=t[1]:nkx?t-Ex:t<-kx?t+Ex:t,n]}function hc(t,n,e){return(t%=Ex)?n||e?rb(dc(t),vc(n,e)):dc(t):n||e?vc(n,e):lc}function pc(t){return function(n,e){return n+=t,[n>kx?n-Ex:n<-kx?n+Ex:n,e]}}function dc(t){var n=pc(t);return n.invert=pc(-t),n}function vc(t,n){function e(t,n){var e=Rx(n),a=Rx(t)*e,c=Ix(t)*e,s=Ix(n),f=s*r+a*i;return[Lx(c*o-f*u,a*r-s*i),Aa(f*o+c*u)]}var r=Rx(t),i=Ix(t),o=Rx(n),u=Ix(n);return e.invert=function(t,n){var e=Rx(n),a=Rx(t)*e,c=Ix(t)*e,s=Ix(n),f=s*o-c*u;return[Lx(c*o+s*u,a*r+f*i),Aa(f*r-a*i)]},e}function _c(t,n,e,r,i,o){if(e){var u=Rx(n),a=Ix(n),c=r*e;null==i?(i=n+r*Ex,o=n-c/2):(i=yc(u,i),o=yc(u,o),(r>0?io)&&(i+=r*Ex));for(var s,f=i;r>0?f>o:f0){do s.point(0===f||3===f?t:e,f>1?r:n);while((f=(f+a+4)%4)!==l)}else s.point(o[0],o[1])}function u(r,i){return Px(r[0]-t)0?0:3:Px(r[0]-e)0?2:1:Px(r[1]-n)0?1:0:i>0?3:2}function a(t,n){return c(t.x,n.x)}function c(t,n){var e=u(t,1),r=u(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(u){function c(t,n){i(t,n)&&k.point(t,n)}function s(){for(var n=0,e=0,i=_.length;er&&(l-o)*(r-u)>(h-u)*(t-o)&&++n:h<=r&&(l-o)*(r-u)<(h-u)*(t-o)&&--n;return n}function f(){k=S,v=[],_=[],N=!0}function l(){var t=s(),n=N&&t,e=(v=Js(v)).length;(n||e)&&(u.polygonStart(),n&&(u.lineStart(),o(null,null,1,u),u.lineEnd()),e&&xb(v,a,t,o,u),u.polygonEnd()),k=u,v=_=y=null}function h(){A.point=d,_&&_.push(y=[]),T=!0,M=!1,b=w=NaN}function p(){v&&(d(g,m),x&&M&&S.rejoin(),v.push(S.result())),A.point=c,M&&k.lineEnd()}function d(o,u){var a=i(o,u);if(_&&y.push([o,u]),T)g=o,m=u,x=a,T=!1,a&&(k.lineStart(),k.point(o,u));else if(a&&M)k.point(o,u);else{var c=[b=Math.max(wb,Math.min(bb,b)),w=Math.max(wb,Math.min(bb,w))],s=[o=Math.max(wb,Math.min(bb,o)),u=Math.max(wb,Math.min(bb,u))];gb(c,s,t,n,e,r)?(M||(k.lineStart(),k.point(c[0],c[1])),k.point(s[0],s[1]),a||k.lineEnd(),N=!1):a&&(k.lineStart(),k.point(o,u),N=!1)}b=o,w=u,M=a}var v,_,y,g,m,x,b,w,M,T,N,k=u,S=yb(),A={point:c,lineStart:h,lineEnd:p,polygonStart:f,polygonEnd:l};return A}}function bc(){Nb.point=Mc,Nb.lineEnd=wc}function wc(){Nb.point=Nb.lineEnd=Ca}function Mc(t,n){t*=zx,n*=zx,ib=t,ob=Ix(n),ub=Rx(n),Nb.point=Tc}function Tc(t,n){t*=zx,n*=zx;var e=Ix(n),r=Rx(n),i=Px(t-ib),o=Rx(i),u=Ix(i),a=r*u,c=ub*e-ob*r*o,s=ob*e+ub*r*o;Tb.add(Lx(Bx(a*a+c*c),s)),ib=t,ob=e,ub=r}function Nc(t,n,e){var r=Os(t,n-Tx,e).concat(n);return function(t){return r.map(function(n){return[t,n]})}}function kc(t,n,e){var r=Os(t,n-Tx,e).concat(n);return function(t){return r.map(function(n){return[n,t]})}}function Sc(){function t(){return{type:"MultiLineString",coordinates:n()}}function n(){return Os(Ux(o/_)*_,i,_).map(h).concat(Os(Ux(s/y)*y,c,y).map(p)).concat(Os(Ux(r/d)*d,e,d).filter(function(t){return Px(t%_)>Tx}).map(f)).concat(Os(Ux(a/v)*v,u,v).filter(function(t){return Px(t%y)>Tx}).map(l))}var e,r,i,o,u,a,c,s,f,l,h,p,d=10,v=d,_=90,y=360,g=2.5;return t.lines=function(){return n().map(function(t){return{type:"LineString",coordinates:t}})},t.outline=function(){return{type:"Polygon",coordinates:[h(o).concat(p(c).slice(1),h(i).reverse().slice(1),p(s).reverse().slice(1))]}},t.extent=function(n){return arguments.length?t.extentMajor(n).extentMinor(n):t.extentMinor()},t.extentMajor=function(n){return arguments.length?(o=+n[0][0],i=+n[1][0],s=+n[0][1],c=+n[1][1],o>i&&(n=o,o=i,i=n),s>c&&(n=s,s=c,c=n),t.precision(g)):[[o,s],[i,c]]},t.extentMinor=function(n){return arguments.length?(r=+n[0][0],e=+n[1][0],a=+n[0][1],u=+n[1][1],r>e&&(n=r,r=e,e=n),a>u&&(n=a,a=u,u=n),t.precision(g)):[[r,a],[e,u]]},t.step=function(n){return arguments.length?t.stepMajor(n).stepMinor(n):t.stepMinor()},t.stepMajor=function(n){return arguments.length?(_=+n[0],y=+n[1],t):[_,y]},t.stepMinor=function(n){return arguments.length?(d=+n[0],v=+n[1],t):[d,v]},t.precision=function(n){return arguments.length?(g=+n,f=Nc(a,u,90),l=kc(r,e,g),h=Nc(s,c,90),p=kc(o,i,g),t):g},t.extentMajor([[-180,-90+Tx],[180,90-Tx]]).extentMinor([[-180,-80-Tx],[180,80+Tx]])}function Ac(){return Sc()()}function Ec(){Lb.point=Cc}function Cc(t,n){Lb.point=zc,ab=sb=t,cb=fb=n}function zc(t,n){qb.add(fb*t-sb*n),sb=t,fb=n}function Pc(){zc(ab,cb)}function qc(t,n){tDb&&(Db=t),nOb&&(Ob=n)}function Lc(t,n){Ib+=t,Yb+=n,++Bb}function Rc(){Zb.point=Uc}function Uc(t,n){Zb.point=Dc,Lc(pb=t,db=n)}function Dc(t,n){var e=t-pb,r=n-db,i=Bx(e*e+r*r);jb+=i*(pb+t)/2,Hb+=i*(db+n)/2,Xb+=i,Lc(pb=t,db=n)}function Oc(){Zb.point=Lc}function Fc(){Zb.point=Yc}function Ic(){Bc(lb,hb)}function Yc(t,n){Zb.point=Bc,Lc(lb=pb=t,hb=db=n)}function Bc(t,n){var e=t-pb,r=n-db,i=Bx(e*e+r*r);jb+=i*(pb+t)/2,Hb+=i*(db+n)/2,Xb+=i,i=db*t-pb*n,Vb+=i*(pb+t),Wb+=i*(db+n),$b+=3*i,Lc(pb=t,db=n)}function jc(t){this._context=t}function Hc(){this._string=[]}function Xc(t){return"m0,"+t+"a"+t+","+t+" 0 1,1 0,"+-2*t+"a"+t+","+t+" 0 1,1 0,"+2*t+"z"}function Vc(t){return t.length>1}function Wc(t,n){return((t=t.x)[0]<0?t[1]-Sx-Tx:Sx-t[1])-((n=n.x)[0]<0?n[1]-Sx-Tx:Sx-n[1])}function $c(t){var n,e=NaN,r=NaN,i=NaN;return{lineStart:function(){t.lineStart(),n=1},point:function(o,u){var a=o>0?kx:-kx,c=Px(o-e);Px(c-kx)0?Sx:-Sx),t.point(i,r),t.lineEnd(),t.lineStart(),t.point(a,r),t.point(o,r),n=0):i!==a&&c>=kx&&(Px(e-i)Tx?qx((Ix(n)*(o=Rx(r))*Ix(e)-Ix(r)*(i=Rx(n))*Ix(t))/(i*o*u)):(n+r)/2}function Gc(t,n,e,r){var i;if(null==t)i=e*Sx,r.point(-kx,i),r.point(0,i),r.point(kx,i),r.point(kx,0),r.point(kx,-i),r.point(0,-i),r.point(-kx,-i),r.point(-kx,0),r.point(-kx,i);else if(Px(t[0]-n[0])>Tx){var o=t[0]4*n&&v--){var x=u+h,b=a+p,w=c+d,M=Bx(x*x+b*b+w*w),T=Aa(w/=M),N=Px(Px(w)-1)n||Px((y*E+g*C)/m-.5)>.3||u*h+a*p+c*d2?t[2]%360*zx:0,i()):[b*Cx,w*Cx,M*Cx]},n.precision=function(t){return arguments.length?(E=ow(r,A=t*t),o()):Bx(A)},n.fitExtent=function(t,e){return Kc(n,t,e)},n.fitSize=function(t,e){return ts(n,t,e)},function(){return u=t.apply(this,arguments),n.invert=u.invert&&e,i()}}function os(t){var n=0,e=kx/3,r=is(t),i=r(n,e);return i.parallels=function(t){return arguments.length?r(n=t[0]*zx,e=t[1]*zx):[n*Cx,e*Cx]},i}function us(t){function n(t,n){return[t*e,Ix(n)/e]}var e=Rx(t);return n.invert=function(t,n){return[t/e,Aa(n*e)]},n}function as(t,n){function e(t,n){var e=Bx(o-2*i*Ix(n))/i;return[e*Ix(t*=i),u-e*Rx(t)]}var r=Ix(t),i=(r+Ix(n))/2;if(Px(i)0?n<-Sx+Tx&&(n=-Sx+Tx):n>Sx-Tx&&(n=Sx-Tx);var e=o/Fx(ps(n),i);return[e*Ix(i*t),o-e*Rx(i*t)]}var r=Rx(t),i=t===n?Ix(t):Ox(r/Rx(n))/Ox(ps(n)/ps(t)),o=r*Fx(ps(t),i)/i;return i?(e.invert=function(t,n){var e=o-n,r=Yx(i)*Bx(t*t+e*e);return[Lx(t,Px(e))/i*Yx(e),2*qx(Fx(o/r,1/i))-Sx]},e):ls}function vs(t,n){return[t,n]}function _s(t,n){function e(t,n){var e=o-n,r=i*t;return[e*Ix(r),o-e*Rx(r)]}var r=Rx(t),i=t===n?Ix(t):(r-Rx(n))/(n-t),o=r/i+t;return Px(i)n?1:t>=n?0:NaN},Ts=function(t){return 1===t.length&&(t=n(t)),{left:function(n,e,r,i){for(null==r&&(r=0),null==i&&(i=n.length);r>>1;t(n[o],e)<0?r=o+1:i=o}return r},right:function(n,e,r,i){for(null==r&&(r=0),null==i&&(i=n.length);r>>1;t(n[o],e)>0?i=o:r=o+1}return r}}},Ns=Ts(Ms),ks=Ns.right,Ss=Ns.left,As=function(t,n){return nt?1:n>=t?0:NaN},Es=function(t){return null===t?NaN:+t},Cs=function(t,n){var e,r,i=t.length,o=0,u=0,a=-1,c=0;if(null==n)for(;++a1)return u/(c-1)},zs=function(t,n){var e=Cs(t,n);return e?Math.sqrt(e):e},Ps=function(t,n){var e,r,i,o=-1,u=t.length;if(null==n){for(;++o=r){e=i=r;break}for(;++or&&(e=r),i=r){e=i=r;break}for(;++or&&(e=r),i=f;)l.pop(),--h;var p,d=new Array(h+1);for(i=0;i<=h;++i)p=d[i]=[],p.x0=i>0?l[i-1]:s,p.x1=i=1)return+e(t[r-1],r-1,t);var r,i=(r-1)*n,o=Math.floor(i),u=+e(t[o],o,t),a=+e(t[o+1],o+1,t);return u+(a-u)*(i-o)}},Vs=function(t,n,e){return t=Rs.call(t,Es).sort(Ms),Math.ceil((e-n)/(2*(Xs(t,.75)-Xs(t,.25))*Math.pow(t.length,-1/3)))},Ws=function(t,n,e){return Math.ceil((e-n)/(3.5*zs(t)*Math.pow(t.length,-1/3)))},$s=function(t,n){var e,r,i=-1,o=t.length;if(null==n){for(;++i=r){e=r;break}for(;++ie&&(e=r)}else{for(;++i=r){e=r;break}for(;++ie&&(e=r)}return e},Zs=function(t,n){var e,r=0,i=t.length,o=-1,u=i;if(null==n)for(;++o=0;)for(r=t[i],n=r.length;--n>=0;)e[--u]=r[n];return e},Qs=function(t,n){var e,r,i=-1,o=t.length;if(null==n){for(;++i=r){e=r;break}for(;++ir&&(e=r)}else{for(;++i=r){e=r;break}for(;++ir&&(e=r)}return e},Ks=function(t){for(var n=0,e=t.length-1,r=t[0],i=new Array(e<0?0:e);n=f.length)return null!=r?r(n):null!=e?n.sort(e):n;for(var c,s,l,h=-1,p=n.length,d=f[i++],v=o(),_=u();++hf.length)return t;var i,o=l[e-1];return null!=r&&e>=f.length?i=t.entries():(i=[],t.each(function(t,r){i.push({key:r,values:n(t,e)})})),null!=o?i.sort(function(t,n){return o(t.key,n.key)}):i}var e,r,i,f=[],l=[];return i={object:function(n){return t(n,0,u,a)},map:function(n){return t(n,0,c,s)},entries:function(e){return n(t(e,0,c,s),0)},key:function(t){return f.push(t),i},sortKeys:function(t){return l[f.length-1]=t,i},sortValues:function(t){return e=t,i},rollup:function(t){return r=t,i}}},sf=o.prototype;f.prototype=l.prototype={constructor:f,has:sf.has,add:function(t){return t+="",this[af+t]=t,this},remove:sf.remove,clear:sf.clear,values:sf.keys,size:sf.size,empty:sf.empty,each:sf.each};var ff=function(t){var n=[];for(var e in t)n.push(e);return n},lf=function(t){var n=[];for(var e in t)n.push(t[e]);return n},hf=function(t){var n=[];for(var e in t)n.push({key:e,value:t[e]});return n},pf=function(t,n){return t=null==t?0:+t,n=null==n?1:+n,1===arguments.length?(n=t,t=0):n-=t,function(){return Math.random()*n+t}},df=function(t,n){var e,r;return t=null==t?0:+t,n=null==n?1:+n,function(){var i;if(null!=e)i=e,e=null;else do e=2*Math.random()-1,i=2*Math.random()-1,r=e*e+i*i;while(!r||r>1);return t+n*i*Math.sqrt(-2*Math.log(r)/r)}},vf=function(){var t=df.apply(this,arguments);return function(){return Math.exp(t())}},_f=function(t){return function(){for(var n=0,e=0;e=0;--n)s.push(t[r[o[n]][2]]);for(n=+a;na!=s>a&&u<(c-e)*(a-r)/(s-r)+e&&(f=!f),c=e,s=r;return f},Gf=function(t){for(var n,e,r=-1,i=t.length,o=t[i-1],u=o[0],a=o[1],c=0;++rKf)if(Math.abs(f*a-c*s)>Kf&&i){var h=e-o,p=r-u,d=a*a+c*c,v=h*h+p*p,_=Math.sqrt(d),y=Math.sqrt(l),g=i*Math.tan((Jf-Math.acos((d+l-v)/(2*_*y)))/2),m=g/y,x=g/_;Math.abs(m-1)>Kf&&this._.push("L",t+m*s,",",n+m*f),this._.push("A",i,",",i,",0,0,",+(f*h>s*p),",",this._x1=t+x*a,",",this._y1=n+x*c)}else this._.push("L",this._x1=t,",",this._y1=n);else;},arc:function(t,n,e,r,i,o){t=+t,n=+n,e=+e;var u=e*Math.cos(r),a=e*Math.sin(r),c=t+u,s=n+a,f=1^o,l=o?r-i:i-r;if(e<0)throw new Error("negative radius: "+e);null===this._x1?this._.push("M",c,",",s):(Math.abs(this._x1-c)>Kf||Math.abs(this._y1-s)>Kf)&&this._.push("L",c,",",s),e&&(l>tl?this._.push("A",e,",",e,",0,1,",f,",",t-u,",",n-a,"A",e,",",e,",0,1,",f,",",this._x1=c,",",this._y1=s):(l<0&&(l=l%Qf+Qf),this._.push("A",e,",",e,",0,",+(l>=Jf),",",f,",",this._x1=t+e*Math.cos(i),",",this._y1=n+e*Math.sin(i))))},rect:function(t,n,e,r){this._.push("M",this._x0=this._x1=+t,",",this._y0=this._y1=+n,"h",+e,"v",+r,"h",-e,"Z")},toString:function(){return this._.join("")}};var nl=function(t){var n=+this._x.call(null,t),e=+this._y.call(null,t);return R(this.cover(n,e),n,e,t)},el=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{if(!(e>t||t>i||r>n||n>o))return this;var u,a,c=i-e,s=this._root;switch(a=(n<(r+o)/2)<<1|t<(e+i)/2){case 0:do u=new Array(4),u[a]=s,s=u;while(c*=2,i=e+c,o=r+c,t>i||n>o);break;case 1:do u=new Array(4),u[a]=s,s=u;while(c*=2,e=i-c,o=r+c,e>t||n>o);break;case 2:do u=new Array(4),u[a]=s,s=u;while(c*=2,i=e+c,r=o-c,t>i||r>n);break;case 3:do u=new Array(4),u[a]=s,s=u;while(c*=2,e=i-c,r=o-c,e>t||r>n)}this._root&&this._root.length&&(this._root=s)}return this._x0=e,this._y0=r,this._x1=i,this._y1=o,this},rl=function(){var t=[];return this.visit(function(n){if(!n.length)do t.push(n.data);while(n=n.next)}),t},il=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]]},ol=function(t,n,e,r,i){this.node=t,this.x0=n,this.y0=e,this.x1=r,this.y1=i},ul=function(t,n,e){var r,i,o,u,a,c,s,f=this._x0,l=this._y0,h=this._x1,p=this._y1,d=[],v=this._root;for(v&&d.push(new ol(v,f,l,h,p)),null==e?e=1/0:(f=t-e,l=n-e,h=t+e,p=n+e,e*=e);c=d.pop();)if(!(!(v=c.node)||(i=c.x0)>h||(o=c.y0)>p||(u=c.x1)=y)<<1|t>=_)&&(c=d[d.length-1],d[d.length-1]=d[d.length-1-s],d[d.length-1-s]=c)}else{var g=t-+this._x.call(null,v.data),m=n-+this._y.call(null,v.data),x=g*g+m*m;if(x=(a=(d+_)/2))?d=a:_=a,(f=u>=(c=(v+y)/2))?v=c:y=c,n=p,!(p=p[l=f<<1|s]))return this;if(!p.length)break;(n[l+1&3]||n[l+2&3]||n[l+3&3])&&(e=n,h=l)}for(;p.data!==t;)if(r=p,!(p=p.next))return this;return(i=p.next)&&delete p.next,r?(i?r.next=i:delete r.next,this):n?(i?n[l]=i:delete n[l],(p=n[0]||n[1]||n[2]||n[3])&&p===(n[3]||n[2]||n[1]||n[0])&&!p.length&&(e?e[h]=p:this._root=p),this):(this._root=i,this)},cl=function(){return this._root},sl=function(){var t=0;return this.visit(function(n){if(!n.length)do++t;while(n=n.next)}),t},fl=function(t){var n,e,r,i,o,u,a=[],c=this._root;for(c&&a.push(new ol(c,this._x0,this._y0,this._x1,this._y1));n=a.pop();)if(!t(c=n.node,r=n.x0,i=n.y0,o=n.x1,u=n.y1)&&c.length){var s=(r+o)/2,f=(i+u)/2;(e=c[3])&&a.push(new ol(e,s,f,o,u)),(e=c[2])&&a.push(new ol(e,r,f,s,u)),(e=c[1])&&a.push(new ol(e,s,i,o,f)),(e=c[0])&&a.push(new ol(e,r,i,s,f))}return this},ll=function(t){var n,e=[],r=[];for(this._root&&e.push(new ol(this._root,this._x0,this._y0,this._x1,this._y1));n=e.pop();){var i=n.node;if(i.length){var o,u=n.x0,a=n.y0,c=n.x1,s=n.y1,f=(u+c)/2,l=(a+s)/2;(o=i[0])&&e.push(new ol(o,u,a,f,l)),(o=i[1])&&e.push(new ol(o,f,a,c,l)),(o=i[2])&&e.push(new ol(o,u,l,f,s)),(o=i[3])&&e.push(new ol(o,f,l,c,s))}r.push(n)}for(;n=r.pop();)t(n.node,n.x0,n.y0,n.x1,n.y1);return this},hl=function(t){return arguments.length?(this._x=t,this):this._x},pl=function(t){return arguments.length?(this._y=t,this):this._y},dl=I.prototype=Y.prototype;dl.copy=function(){var t,n,e=new Y(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=B(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]=B(n));return e},dl.add=nl,dl.addAll=U,dl.cover=el,dl.data=rl,dl.extent=il,dl.find=ul,dl.remove=al,dl.removeAll=D,dl.root=cl,dl.size=sl,dl.visit=fl,dl.visitAfter=ll,dl.x=hl,dl.y=pl;var vl=[].slice,_l={};j.prototype=Z.prototype={constructor:j,defer:function(t){if("function"!=typeof t||this._call)throw new Error;if(null!=this._error)return this;var n=vl.call(arguments,1);return n.push(t),++this._waiting,this._tasks.push(n),H(this),this},abort:function(){return null==this._error&&W(this,new Error("abort")),this},await:function(t){if("function"!=typeof t||this._call)throw new Error;return this._call=function(n,e){t.apply(null,[n].concat(e))},$(this),this},awaitAll:function(t){if("function"!=typeof t||this._call)throw new Error;return this._call=t,$(this),this}};var yl=function(t){ +return function(){return t}},gl=1e-12,ml=Math.PI,xl=ml/2,bl=2*ml,wl=function(){function t(){var t,s,f=+n.apply(this,arguments),l=+e.apply(this,arguments),h=o.apply(this,arguments)-xl,p=u.apply(this,arguments)-xl,d=Math.abs(p-h),v=p>h;if(c||(c=t=L()),lgl)if(d>bl-gl)c.moveTo(l*Math.cos(h),l*Math.sin(h)),c.arc(0,0,l,h,p,!v),f>gl&&(c.moveTo(f*Math.cos(p),f*Math.sin(p)),c.arc(0,0,f,p,h,v));else{var _,y,g=h,m=p,x=h,b=p,w=d,M=d,T=a.apply(this,arguments)/2,N=T>gl&&(i?+i.apply(this,arguments):Math.sqrt(f*f+l*l)),k=Math.min(Math.abs(l-f)/2,+r.apply(this,arguments)),S=k,A=k;if(N>gl){var E=nt(N/f*Math.sin(T)),C=nt(N/l*Math.sin(T));(w-=2*E)>gl?(E*=v?1:-1,x+=E,b-=E):(w=0,x=b=(h+p)/2),(M-=2*C)>gl?(C*=v?1:-1,g+=C,m-=C):(M=0,g=m=(h+p)/2)}var z=l*Math.cos(g),P=l*Math.sin(g),q=f*Math.cos(b),R=f*Math.sin(b);if(k>gl){var U=l*Math.cos(m),D=l*Math.sin(m),O=f*Math.cos(x),F=f*Math.sin(x);if(dgl?et(z,P,O,F,U,D,q,R):[q,R],Y=z-I[0],B=P-I[1],j=U-I[0],H=D-I[1],X=1/Math.sin(Math.acos((Y*j+B*H)/(Math.sqrt(Y*Y+B*B)*Math.sqrt(j*j+H*H)))/2),V=Math.sqrt(I[0]*I[0]+I[1]*I[1]);S=Math.min(k,(f-V)/(X-1)),A=Math.min(k,(l-V)/(X+1))}}M>gl?A>gl?(_=rt(O,F,z,P,l,A,v),y=rt(U,D,q,R,l,A,v),c.moveTo(_.cx+_.x01,_.cy+_.y01),Agl&&w>gl?S>gl?(_=rt(q,R,U,D,f,-S,v),y=rt(z,P,O,F,f,-S,v),c.lineTo(_.cx+_.x01,_.cy+_.y01),S=f;--l)s.point(_[l],y[l]);s.lineEnd(),s.areaEnd()}v&&(_[n]=+e(h,n,t),y[n]=+i(h,n,t),s.point(r?+r(h,n,t):_[n],o?+o(h,n,t):y[n]))}if(p)return s=null,p+""||null}function n(){return Tl().defined(u).curve(c).context(a)}var e=ot,r=null,i=yl(0),o=ut,u=yl(!0),a=null,c=Ml,s=null;return t.x=function(n){return arguments.length?(e="function"==typeof n?n:yl(+n),r=null,t):e},t.x0=function(n){return arguments.length?(e="function"==typeof n?n:yl(+n),t):e},t.x1=function(n){return arguments.length?(r=null==n?null:"function"==typeof n?n:yl(+n),t):r},t.y=function(n){return arguments.length?(i="function"==typeof n?n:yl(+n),o=null,t):i},t.y0=function(n){return arguments.length?(i="function"==typeof n?n:yl(+n),t):i},t.y1=function(n){return arguments.length?(o=null==n?null:"function"==typeof n?n:yl(+n),t):o},t.lineX0=t.lineY0=function(){return n().x(e).y(i)},t.lineY1=function(){return n().x(e).y(o)},t.lineX1=function(){return n().x(r).y(i)},t.defined=function(n){return arguments.length?(u="function"==typeof n?n:yl(!!n),t):u},t.curve=function(n){return arguments.length?(c=n,null!=a&&(s=c(a)),t):c},t.context=function(n){return arguments.length?(null==n?a=s=null:s=c(a=n),t):a},t},kl=function(t,n){return nt?1:n>=t?0:NaN},Sl=function(t){return t},Al=function(){function t(t){var a,c,s,f,l,h=t.length,p=0,d=new Array(h),v=new Array(h),_=+i.apply(this,arguments),y=Math.min(bl,Math.max(-bl,o.apply(this,arguments)-_)),g=Math.min(Math.abs(y)/h,u.apply(this,arguments)),m=g*(y<0?-1:1);for(a=0;a0&&(p+=l);for(null!=e?d.sort(function(t,n){return e(v[t],v[n])}):null!=r&&d.sort(function(n,e){return r(t[n],t[e])}),a=0,s=p?(y-h*m)/p:0;a0?l*s:0)+m,v[c]={data:t[c],index:a,value:l,startAngle:_,endAngle:f,padAngle:g};return v}var n=Sl,e=kl,r=null,i=yl(0),o=yl(bl),u=yl(0);return t.value=function(e){return arguments.length?(n="function"==typeof e?e:yl(+e),t):n},t.sortValues=function(n){return arguments.length?(e=n,r=null,t):e},t.sort=function(n){return arguments.length?(r=n,e=null,t):r},t.startAngle=function(n){return arguments.length?(i="function"==typeof n?n:yl(+n),t):i},t.endAngle=function(n){return arguments.length?(o="function"==typeof n?n:yl(+n),t):o},t.padAngle=function(n){return arguments.length?(u="function"==typeof n?n:yl(+n),t):u},t},El=ct(Ml);at.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))}};var Cl=function(){return st(Tl().curve(El))},zl=function(){var t=Nl().curve(El),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 st(e())},delete t.lineX0,t.lineEndAngle=function(){return st(r())},delete t.lineX1,t.lineInnerRadius=function(){return st(i())},delete t.lineY0,t.lineOuterRadius=function(){return st(o())},delete t.lineY1,t.curve=function(t){return arguments.length?n(ct(t)):n()._curve},t},Pl={draw:function(t,n){var e=Math.sqrt(n/ml);t.moveTo(e,0),t.arc(0,0,e,0,bl)}},ql={draw:function(t,n){var e=Math.sqrt(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()}},Ll=Math.sqrt(1/3),Rl=2*Ll,Ul={draw:function(t,n){var e=Math.sqrt(n/Rl),r=e*Ll;t.moveTo(0,-e),t.lineTo(r,0),t.lineTo(0,e),t.lineTo(-r,0),t.closePath()}},Dl=.8908130915292852,Ol=Math.sin(ml/10)/Math.sin(7*ml/10),Fl=Math.sin(bl/10)*Ol,Il=-Math.cos(bl/10)*Ol,Yl={draw:function(t,n){var e=Math.sqrt(n*Dl),r=Fl*e,i=Il*e;t.moveTo(0,-e),t.lineTo(r,i);for(var o=1;o<5;++o){var u=bl*o/5,a=Math.cos(u),c=Math.sin(u);t.lineTo(c*e,-a*e),t.lineTo(a*r-c*i,c*r+a*i)}t.closePath()}},Bl={draw:function(t,n){var e=Math.sqrt(n),r=-e/2;t.rect(r,r,e,e)}},jl=Math.sqrt(3),Hl={draw:function(t,n){var e=-Math.sqrt(n/(3*jl));t.moveTo(0,2*e),t.lineTo(-jl*e,-e),t.lineTo(jl*e,-e),t.closePath()}},Xl=-.5,Vl=Math.sqrt(3)/2,Wl=1/Math.sqrt(12),$l=3*(Wl/2+1),Zl={draw:function(t,n){var e=Math.sqrt(n/$l),r=e/2,i=e*Wl,o=r,u=e*Wl+e,a=-o,c=u;t.moveTo(r,i),t.lineTo(o,u),t.lineTo(a,c),t.lineTo(Xl*r-Vl*i,Vl*r+Xl*i),t.lineTo(Xl*o-Vl*u,Vl*o+Xl*u),t.lineTo(Xl*a-Vl*c,Vl*a+Xl*c),t.lineTo(Xl*r+Vl*i,Xl*i-Vl*r),t.lineTo(Xl*o+Vl*u,Xl*u-Vl*o),t.lineTo(Xl*a+Vl*c,Xl*c-Vl*a),t.closePath()}},Gl=[Pl,ql,Ul,Bl,Yl,Hl,Zl],Jl=function(){function t(){var t;if(r||(r=t=L()),n.apply(this,arguments).draw(r,+e.apply(this,arguments)),t)return r=null,t+""||null}var n=yl(Pl),e=yl(64),r=null;return t.type=function(e){return arguments.length?(n="function"==typeof e?e:yl(e),t):n},t.size=function(n){return arguments.length?(e="function"==typeof n?n:yl(+n),t):e},t.context=function(n){return arguments.length?(r=null==n?null:n,t):r},t},Ql=function(){};lt.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:ft(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:ft(this,t,n)}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=n}};var Kl=function(t){return new lt(t)};ht.prototype={areaStart:Ql,areaEnd:Ql,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:ft(this,t,n)}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=n}};var th=function(t){return new ht(t)};pt.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:ft(this,t,n)}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=n}};var nh=function(t){return new pt(t)};dt.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],u=t[e]-i,a=n[e]-o,c=-1;++c<=e;)r=c/e,this._basis.point(this._beta*t[c]+(1-this._beta)*(i+r*u),this._beta*n[c]+(1-this._beta)*(o+r*a));this._x=this._y=null,this._basis.lineEnd()},point:function(t,n){this._x.push(+t),this._y.push(+n)}};var eh=function t(n){function e(t){return 1===n?new lt(t):new dt(t,n)}return e.beta=function(n){return t(+n)},e}(.85);_t.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:vt(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:vt(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 rh=function t(n){function e(t){return new _t(t,n)}return e.tension=function(n){return t(+n)},e}(0);yt.prototype={areaStart:Ql,areaEnd:Ql,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:vt(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 ih=function t(n){function e(t){return new yt(t,n)}return e.tension=function(n){return t(+n)},e}(0);gt.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:vt(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 oh=function t(n){function e(t){return new gt(t,n)}return e.tension=function(n){return t(+n)},e}(0);xt.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:mt(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 uh=function t(n){function e(t){return n?new xt(t,n):new _t(t,0)}return e.alpha=function(n){return t(+n)},e}(.5);bt.prototype={areaStart:Ql,areaEnd:Ql,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:mt(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 ah=function t(n){function e(t){return n?new bt(t,n):new yt(t,0)}return e.alpha=function(n){return t(+n)},e}(.5);wt.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:mt(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 ch=function t(n){function e(t){return n?new wt(t,n):new gt(t,0)}return e.alpha=function(n){return t(+n)},e}(.5);Mt.prototype={areaStart:Ql,areaEnd:Ql,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))}};var sh=function(t){return new Mt(t)};At.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:St(this,this._t0,kt(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(t=+t,n=+n,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,St(this,kt(this,e=Nt(this,t,n)),e);break;default:St(this,this._t0,e=Nt(this,t,n))}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=n,this._t0=e}}},(Et.prototype=Object.create(At.prototype)).point=function(t,n){At.prototype.point.call(this,n,t)},Ct.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)}},qt.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=Lt(t),i=Lt(n),o=0,u=1;u=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 lh=function(t){return new Rt(t,.5)},hh=Array.prototype.slice,ph=function(t,n){if((r=t.length)>1)for(var e,r,i=1,o=t[n[0]],u=o.length;i=0;)e[n]=n;return e},vh=function(){function t(t){var o,u,a=n.apply(this,arguments),c=t.length,s=a.length,f=new Array(s);for(o=0;o0){for(var e,r,i,o=0,u=t[0].length;o0){for(var e,r=0,i=t[n[0]],o=i.length;r0&&(r=(e=t[n[0]]).length)>0){for(var e,r,i,o=0,u=1;u=240?t-240:t+120,i,r),Qt(t,i,r),Qt(t<120?t+240:t-120,i,r),this.opacity)},displayable:function(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1}}));var Rh=Math.PI/180,Uh=180/Math.PI,Dh=18,Oh=.95047,Fh=1,Ih=1.08883,Yh=4/29,Bh=6/29,jh=3*Bh*Bh,Hh=Bh*Bh*Bh;Mh(nn,tn,It(Yt,{brighter:function(t){return new nn(this.l+Dh*(null==t?1:t),this.a,this.b,this.opacity)},darker:function(t){return new nn(this.l-Dh*(null==t?1:t),this.a,this.b,this.opacity)},rgb:function(){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 t=Fh*rn(t),n=Oh*rn(n),e=Ih*rn(e),new Wt(on(3.2404542*n-1.5371385*t-.4985314*e),on(-.969266*n+1.8760108*t+.041556*e),on(.0556434*n-.2040259*t+1.0572252*e),this.opacity)}})),Mh(sn,cn,It(Yt,{brighter:function(t){return new sn(this.h,this.c,this.l+Dh*(null==t?1:t),this.opacity)},darker:function(t){return new sn(this.h,this.c,this.l-Dh*(null==t?1:t),this.opacity)},rgb:function(){return Kt(this).rgb()}}));var Xh=-.14861,Vh=1.78277,Wh=-.29227,$h=-.90649,Zh=1.97294,Gh=Zh*$h,Jh=Zh*Vh,Qh=Vh*Wh-$h*Xh;Mh(hn,ln,It(Yt,{brighter:function(t){return t=null==t?Nh:Math.pow(Nh,t),new hn(this.h,this.s,this.l*t,this.opacity)},darker:function(t){return t=null==t?Th:Math.pow(Th,t),new hn(this.h,this.s,this.l*t,this.opacity)},rgb:function(){var t=isNaN(this.h)?0:(this.h+120)*Rh,n=+this.l,e=isNaN(this.s)?0:this.s*n*(1-n),r=Math.cos(t),i=Math.sin(t);return new Wt(255*(n+e*(Xh*r+Vh*i)),255*(n+e*(Wh*r+$h*i)),255*(n+e*(Zh*r)),this.opacity)}}));var Kh,tp,np,ep,rp=function(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],u=r>0?t[r-1]:2*i-o,a=ro&&(i=n.slice(o,i),a[u]?a[u]+=i:a[++u]=i),(e=e[0])===(r=r[0])?a[u]?a[u]+=r:a[++u]=r:(a[++u]=null,c.push({i:u,x:lp(e,r)})),o=dp.lastIndex;return o0)for(var e,r,i=new Array(e),o=0;o=s)return u;if(i)return i=!1,o;var n,e=f;if(34===t.charCodeAt(e)){for(var r=e;r++=200&&e<300||304===e){if(u)try{n=u.call(r,f)}catch(t){return void c.call("error",r,t)}else n=f;c.call("load",r,n)}else c.call("error",r,t)}var r,i,u,a,c=Pn("beforesend","progress","load","error"),s=o(),f=new XMLHttpRequest,l=null,h=null,p=0;if("undefined"==typeof XDomainRequest||"withCredentials"in f||!/^(http(s)?:)?\/\//.test(t)||(f=new XDomainRequest),"onload"in f?f.onload=f.onerror=f.ontimeout=e:f.onreadystatechange=function(t){f.readyState>3&&e(t)},f.onprogress=function(t){c.call("progress",r,t)},r={header:function(t,n){return t=(t+"").toLowerCase(),arguments.length<2?s.get(t):(null==n?s.remove(t):s.set(t,n+""),r)},mimeType:function(t){return arguments.length?(i=null==t?null:t+"",r):i},responseType:function(t){return arguments.length?(a=t,r):a},timeout:function(t){return arguments.length?(p=+t,r):p},user:function(t){return arguments.length<1?l:(l=null==t?null:t+"",r)},password:function(t){return arguments.length<1?h:(h=null==t?null:t+"",r)},response:function(t){return u=t,r},get:function(t,n){return r.send("GET",t,n)},post:function(t,n){return r.send("POST",t,n)},send:function(n,e,o){return f.open(n,t,!0,l,h),null==i||s.has("accept")||s.set("accept",i+",*/*"),f.setRequestHeader&&s.each(function(t,n){f.setRequestHeader(n,t)}),null!=i&&f.overrideMimeType&&f.overrideMimeType(i),null!=a&&(f.responseType=a),p>0&&(f.timeout=p),null==o&&"function"==typeof e&&(o=e,e=null),null!=o&&1===o.length&&(o=In(o)),null!=o&&r.on("error",o).on("load",function(t){o(null,t)}),c.call("beforesend",r,f),f.send(null==e?null:e),r},abort:function(){return f.abort(),r},on:function(){var t=c.on.apply(c,arguments);return t===c?r:t}},null!=n){if("function"!=typeof n)throw new Error("invalid callback: "+n);return r.get(n)}return r},Gp=function(t,n){return function(e,r){var i=Zp(e).mimeType(t).response(n);if(null!=r){if("function"!=typeof r)throw new Error("invalid callback: "+r);return i.get(r)}return i}},Jp=Gp("text/html",function(t){return document.createRange().createContextualFragment(t.responseText)}),Qp=Gp("application/json",function(t){return JSON.parse(t.responseText)}),Kp=Gp("text/plain",function(t){return t.responseText}),td=Gp("application/xml",function(t){var n=t.responseXML;if(!n)throw new Error("parse error");return n}),nd=function(t,n){return function(e,r,i){arguments.length<3&&(i=r,r=null);var o=Zp(e).mimeType(t);return o.row=function(t){return arguments.length?o.response(Bn(n,r=t)):r},o.row(r),i?o.get(i):o}},ed=nd("text/csv",Ip),rd=nd("text/tab-separated-values",Xp),id=0,od=0,ud=0,ad=1e3,cd=0,sd=0,fd=0,ld="object"==typeof performance&&performance.now?performance:Date,hd="function"==typeof requestAnimationFrame?requestAnimationFrame:function(t){setTimeout(t,17)};Xn.prototype=Vn.prototype={constructor:Xn,restart:function(t,n,e){if("function"!=typeof t)throw new TypeError("callback is not a function");e=(null==e?jn():+e)+(null==n?0:+n),this._next||Dp===this||(Dp?Dp._next=this:Up=this,Dp=this),this._call=t,this._time=e,Jn()},stop:function(){this._call&&(this._call=null,this._time=1/0,Jn())}};var pd=function(t,n,e){var r=new Xn;return n=null==n?0:+n,r.restart(function(e){r.stop(),t(e+n)},n,e),r},dd=function(t,n,e){var r=new Xn,i=n;return null==n?(r.restart(t,n,e),r):(n=+n,e=null==e?jn():+e,r.restart(function o(u){u+=i,r.restart(o,i+=n,e),t(u)},n,e),r)},vd=new Date,_d=new Date,yd=Qn(function(){},function(t,n){t.setTime(+t+n)},function(t,n){return n-t});yd.every=function(t){return t=Math.floor(t),isFinite(t)&&t>0?t>1?Qn(function(n){n.setTime(Math.floor(n/t)*t)},function(n,e){n.setTime(+n+e*t)},function(n,e){return(e-n)/t}):yd:null};var gd=yd.range,md=1e3,xd=6e4,bd=36e5,wd=864e5,Md=6048e5,Td=Qn(function(t){t.setTime(Math.floor(t/md)*md)},function(t,n){t.setTime(+t+n*md)},function(t,n){return(n-t)/md},function(t){return t.getUTCSeconds()}),Nd=Td.range,kd=Qn(function(t){t.setTime(Math.floor(t/xd)*xd)},function(t,n){t.setTime(+t+n*xd)},function(t,n){return(n-t)/xd},function(t){return t.getMinutes()}),Sd=kd.range,Ad=Qn(function(t){var n=t.getTimezoneOffset()*xd%bd;n<0&&(n+=bd),t.setTime(Math.floor((+t-n)/bd)*bd+n)},function(t,n){t.setTime(+t+n*bd)},function(t,n){return(n-t)/bd},function(t){return t.getHours()}),Ed=Ad.range,Cd=Qn(function(t){t.setHours(0,0,0,0)},function(t,n){t.setDate(t.getDate()+n)},function(t,n){return(n-t-(n.getTimezoneOffset()-t.getTimezoneOffset())*xd)/wd},function(t){return t.getDate()-1}),zd=Cd.range,Pd=Kn(0),qd=Kn(1),Ld=Kn(2),Rd=Kn(3),Ud=Kn(4),Dd=Kn(5),Od=Kn(6),Fd=Pd.range,Id=qd.range,Yd=Ld.range,Bd=Rd.range,jd=Ud.range,Hd=Dd.range,Xd=Od.range,Vd=Qn(function(t){t.setDate(1),t.setHours(0,0,0,0)},function(t,n){t.setMonth(t.getMonth()+n)},function(t,n){return n.getMonth()-t.getMonth()+12*(n.getFullYear()-t.getFullYear())},function(t){return t.getMonth()}),Wd=Vd.range,$d=Qn(function(t){t.setMonth(0,1),t.setHours(0,0,0,0)},function(t,n){t.setFullYear(t.getFullYear()+n)},function(t,n){return n.getFullYear()-t.getFullYear()},function(t){return t.getFullYear()});$d.every=function(t){return isFinite(t=Math.floor(t))&&t>0?Qn(function(n){n.setFullYear(Math.floor(n.getFullYear()/t)*t),n.setMonth(0,1),n.setHours(0,0,0,0)},function(n,e){n.setFullYear(n.getFullYear()+e*t)}):null};var Zd=$d.range,Gd=Qn(function(t){t.setUTCSeconds(0,0)},function(t,n){t.setTime(+t+n*xd)},function(t,n){return(n-t)/xd},function(t){return t.getUTCMinutes()}),Jd=Gd.range,Qd=Qn(function(t){t.setUTCMinutes(0,0,0)},function(t,n){t.setTime(+t+n*bd)},function(t,n){return(n-t)/bd},function(t){return t.getUTCHours()}),Kd=Qd.range,tv=Qn(function(t){t.setUTCHours(0,0,0,0)},function(t,n){t.setUTCDate(t.getUTCDate()+n)},function(t,n){return(n-t)/wd},function(t){return t.getUTCDate()-1}),nv=tv.range,ev=te(0),rv=te(1),iv=te(2),ov=te(3),uv=te(4),av=te(5),cv=te(6),sv=ev.range,fv=rv.range,lv=iv.range,hv=ov.range,pv=uv.range,dv=av.range,vv=cv.range,_v=Qn(function(t){t.setUTCDate(1),t.setUTCHours(0,0,0,0)},function(t,n){t.setUTCMonth(t.getUTCMonth()+n)},function(t,n){return n.getUTCMonth()-t.getUTCMonth()+12*(n.getUTCFullYear()-t.getUTCFullYear())},function(t){return t.getUTCMonth()}),yv=_v.range,gv=Qn(function(t){t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)},function(t,n){t.setUTCFullYear(t.getUTCFullYear()+n)},function(t,n){return n.getUTCFullYear()-t.getUTCFullYear()},function(t){return t.getUTCFullYear()});gv.every=function(t){return isFinite(t=Math.floor(t))&&t>0?Qn(function(n){n.setUTCFullYear(Math.floor(n.getUTCFullYear()/t)*t),n.setUTCMonth(0,1),n.setUTCHours(0,0,0,0)},function(n,e){n.setUTCFullYear(n.getUTCFullYear()+e*t)}):null};var mv,xv=gv.range,bv=function(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)]},wv=function(t){return t=bv(Math.abs(t)),t?t[1]:NaN},Mv=function(t,n){return function(e,r){for(var i=e.length,o=[],u=0,a=t[0],c=0;i>0&&a>0&&(c+a+1>r&&(a=Math.max(1,r-c)),o.push(e.substring(i-=a,i+a)),!((c+=a+1)>r));)a=t[u=(u+1)%t.length];return o.reverse().join(n)}},Tv=function(t,n){t=t.toPrecision(n);t:for(var e,r=t.length,i=1,o=-1;i0&&(o=0)}return o>0?t.slice(0,o)+t.slice(e+1):t},Nv=function(t,n){var e=bv(t,n);if(!e)return t+"";var r=e[0],i=e[1],o=i-(mv=3*Math.max(-8,Math.min(8,Math.floor(i/3))))+1,u=r.length;return o===u?r:o>u?r+new Array(o-u+1).join("0"):o>0?r.slice(0,o)+"."+r.slice(o):"0."+new Array(1-o).join("0")+bv(t,Math.max(0,n+o-1))[0]},kv=function(t,n){var e=bv(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")},Sv={"":Tv,"%":function(t,n){return(100*t).toFixed(n)},b:function(t){return Math.round(t).toString(2)},c:function(t){return t+""},d:function(t){return Math.round(t).toString(10)},e:function(t,n){return t.toExponential(n)},f:function(t,n){return t.toFixed(n)},g:function(t,n){return t.toPrecision(n)},o:function(t){return Math.round(t).toString(8)},p:function(t,n){return kv(100*t,n)},r:kv,s:Nv,X:function(t){return Math.round(t).toString(16).toUpperCase()},x:function(t){return Math.round(t).toString(16)}},Av=/^(?:(.)?([<>=^]))?([+\-\( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?([a-z%])?$/i,Ev=function(t){return new ne(t)};ne.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(null==this.width?"":Math.max(1,0|this.width))+(this.comma?",":"")+(null==this.precision?"":"."+Math.max(0,0|this.precision))+this.type};var Cv,zv=["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"],Pv=function(t){function n(t){function n(t){var n,i,c,g=d,m=v;if("c"===p)m=_(t)+m,t="";else{t=+t;var x=(t<0||1/t<0)&&(t*=-1,!0);if(t=_(t,h),x)for(n=-1,i=t.length,x=!1;++nc||c>57){m=(46===c?o+t.slice(n+1):t.slice(n))+m,t=t.slice(0,n);break}}l&&!s&&(t=r(t,1/0));var b=g.length+t.length+m.length,w=b>1)+g+t+m+w.slice(b)}return w+g+t+m}t=Ev(t);var e=t.fill,u=t.align,a=t.sign,c=t.symbol,s=t.zero,f=t.width,l=t.comma,h=t.precision,p=t.type,d="$"===c?i[0]:"#"===c&&/[boxX]/.test(p)?"0"+p.toLowerCase():"",v="$"===c?i[1]:/[%p]/.test(p)?"%":"",_=Sv[p],y=!p||/[defgprs%]/.test(p);return h=null==h?p?6:12:/[gprs]/.test(p)?Math.max(1,Math.min(21,h)):Math.max(0,Math.min(20,h)),n.toString=function(){return t+""},n}function e(t,e){var r=n((t=Ev(t),t.type="f",t)),i=3*Math.max(-8,Math.min(8,Math.floor(wv(e)/3))),o=Math.pow(10,-i),u=zv[8+i/3];return function(t){return r(o*t)+u}}var r=t.grouping&&t.thousands?Mv(t.grouping,t.thousands):ee,i=t.currency,o=t.decimal;return{format:n,formatPrefix:e}};re({decimal:".",thousands:",",grouping:[3],currency:["$",""]});var qv,Lv=function(t){return Math.max(0,-wv(Math.abs(t)))},Rv=function(t,n){return Math.max(0,3*Math.max(-8,Math.min(8,Math.floor(wv(n)/3)))-wv(Math.abs(t)))},Uv=function(t,n){return t=Math.abs(t),n=Math.abs(n)-t,Math.max(0,wv(n)-wv(t))+1},Dv={"-":"",_:" ",0:"0"},Ov=/^\s*\d+/,Fv=/^%/,Iv=/[\\\^\$\*\+\?\|\[\]\(\)\.\{\}]/g;nr({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 Yv="%Y-%m-%dT%H:%M:%S.%LZ",Bv=Date.prototype.toISOString?er:t.utcFormat(Yv),jv=+new Date("2000-01-01T00:00:00.000Z")?rr:t.utcParse(Yv),Hv=Array.prototype,Xv=Hv.map,Vv=Hv.slice,Wv={name:"implicit"},$v=function(t){return function(){return t}},Zv=function(t){return+t},Gv=[0,1],Jv=function(n,r,i){var o,u=n[0],a=n[n.length-1],c=e(u,a,null==r?10:r);switch(i=Ev(null==i?",f":i),i.type){case"s":var s=Math.max(Math.abs(u),Math.abs(a));return null!=i.precision||isNaN(o=Rv(c,s))||(i.precision=o),t.formatPrefix(i,s);case"":case"e":case"g":case"p":case"r":null!=i.precision||isNaN(o=Uv(c,Math.max(Math.abs(u),Math.abs(a))))||(i.precision=o-("e"===i.type));break;case"f":case"%":null!=i.precision||isNaN(o=Lv(c))||(i.precision=o-2*("%"===i.type))}return t.format(i)},Qv=function(t,n){t=t.slice();var e,r=0,i=t.length-1,o=t[r],u=t[i];return u1)&&(t-=Math.floor(t));var n=Math.abs(t-.5);return __.h=360*t-100,__.s=1.5-1.5*n,__.l=.8-.9*n,__+""},g_=Lr(c_("44015444025645045745055946075a46085c460a5d460b5e470d60470e6147106347116447136548146748166848176948186a481a6c481b6d481c6e481d6f481f70482071482173482374482475482576482677482878482979472a7a472c7a472d7b472e7c472f7d46307e46327e46337f463480453581453781453882443983443a83443b84433d84433e85423f854240864241864142874144874045884046883f47883f48893e49893e4a893e4c8a3d4d8a3d4e8a3c4f8a3c508b3b518b3b528b3a538b3a548c39558c39568c38588c38598c375a8c375b8d365c8d365d8d355e8d355f8d34608d34618d33628d33638d32648e32658e31668e31678e31688e30698e306a8e2f6b8e2f6c8e2e6d8e2e6e8e2e6f8e2d708e2d718e2c718e2c728e2c738e2b748e2b758e2a768e2a778e2a788e29798e297a8e297b8e287c8e287d8e277e8e277f8e27808e26818e26828e26828e25838e25848e25858e24868e24878e23888e23898e238a8d228b8d228c8d228d8d218e8d218f8d21908d21918c20928c20928c20938c1f948c1f958b1f968b1f978b1f988b1f998a1f9a8a1e9b8a1e9c891e9d891f9e891f9f881fa0881fa1881fa1871fa28720a38620a48621a58521a68522a78522a88423a98324aa8325ab8225ac8226ad8127ad8128ae8029af7f2ab07f2cb17e2db27d2eb37c2fb47c31b57b32b67a34b67935b77937b87838b9773aba763bbb753dbc743fbc7340bd7242be7144bf7046c06f48c16e4ac16d4cc26c4ec36b50c46a52c56954c56856c66758c7655ac8645cc8635ec96260ca6063cb5f65cb5e67cc5c69cd5b6ccd5a6ece5870cf5773d05675d05477d1537ad1517cd2507fd34e81d34d84d44b86d54989d5488bd6468ed64590d74393d74195d84098d83e9bd93c9dd93ba0da39a2da37a5db36a8db34aadc32addc30b0dd2fb2dd2db5de2bb8de29bade28bddf26c0df25c2df23c5e021c8e020cae11fcde11dd0e11cd2e21bd5e21ad8e219dae319dde318dfe318e2e418e5e419e7e419eae51aece51befe51cf1e51df4e61ef6e620f8e621fbe723fde725")),m_=Lr(c_("00000401000501010601010802010902020b02020d03030f03031204041405041606051806051a07061c08071e0907200a08220b09240c09260d0a290e0b2b100b2d110c2f120d31130d34140e36150e38160f3b180f3d19103f1a10421c10441d11471e114920114b21114e22115024125325125527125829115a2a115c2c115f2d11612f116331116533106734106936106b38106c390f6e3b0f703d0f713f0f72400f74420f75440f764510774710784910784a10794c117a4e117b4f127b51127c52137c54137d56147d57157e59157e5a167e5c167f5d177f5f187f601880621980641a80651a80671b80681c816a1c816b1d816d1d816e1e81701f81721f817320817521817621817822817922827b23827c23827e24828025828125818326818426818627818827818928818b29818c29818e2a81902a81912b81932b80942c80962c80982d80992d809b2e7f9c2e7f9e2f7fa02f7fa1307ea3307ea5317ea6317da8327daa337dab337cad347cae347bb0357bb2357bb3367ab5367ab73779b83779ba3878bc3978bd3977bf3a77c03a76c23b75c43c75c53c74c73d73c83e73ca3e72cc3f71cd4071cf4070d0416fd2426fd3436ed5446dd6456cd8456cd9466bdb476adc4869de4968df4a68e04c67e24d66e34e65e44f64e55064e75263e85362e95462ea5661eb5760ec5860ed5a5fee5b5eef5d5ef05f5ef1605df2625df2645cf3655cf4675cf4695cf56b5cf66c5cf66e5cf7705cf7725cf8745cf8765cf9785df9795df97b5dfa7d5efa7f5efa815ffb835ffb8560fb8761fc8961fc8a62fc8c63fc8e64fc9065fd9266fd9467fd9668fd9869fd9a6afd9b6bfe9d6cfe9f6dfea16efea36ffea571fea772fea973feaa74feac76feae77feb078feb27afeb47bfeb67cfeb77efeb97ffebb81febd82febf84fec185fec287fec488fec68afec88cfeca8dfecc8ffecd90fecf92fed194fed395fed597fed799fed89afdda9cfddc9efddea0fde0a1fde2a3fde3a5fde5a7fde7a9fde9aafdebacfcecaefceeb0fcf0b2fcf2b4fcf4b6fcf6b8fcf7b9fcf9bbfcfbbdfcfdbf")),x_=Lr(c_("00000401000501010601010802010a02020c02020e03021004031204031405041706041907051b08051d09061f0a07220b07240c08260d08290e092b10092d110a30120a32140b34150b37160b39180c3c190c3e1b0c411c0c431e0c451f0c48210c4a230c4c240c4f260c51280b53290b552b0b572d0b592f0a5b310a5c320a5e340a5f3609613809623909633b09643d09653e0966400a67420a68440a68450a69470b6a490b6a4a0c6b4c0c6b4d0d6c4f0d6c510e6c520e6d540f6d550f6d57106e59106e5a116e5c126e5d126e5f136e61136e62146e64156e65156e67166e69166e6a176e6c186e6d186e6f196e71196e721a6e741a6e751b6e771c6d781c6d7a1d6d7c1d6d7d1e6d7f1e6c801f6c82206c84206b85216b87216b88226a8a226a8c23698d23698f24699025689225689326679526679727669827669a28659b29649d29649f2a63a02a63a22b62a32c61a52c60a62d60a82e5fa92e5eab2f5ead305dae305cb0315bb1325ab3325ab43359b63458b73557b93556ba3655bc3754bd3853bf3952c03a51c13a50c33b4fc43c4ec63d4dc73e4cc83f4bca404acb4149cc4248ce4347cf4446d04545d24644d34743d44842d54a41d74b3fd84c3ed94d3dda4e3cdb503bdd513ade5238df5337e05536e15635e25734e35933e45a31e55c30e65d2fe75e2ee8602de9612bea632aeb6429eb6628ec6726ed6925ee6a24ef6c23ef6e21f06f20f1711ff1731df2741cf3761bf37819f47918f57b17f57d15f67e14f68013f78212f78410f8850ff8870ef8890cf98b0bf98c0af98e09fa9008fa9207fa9407fb9606fb9706fb9906fb9b06fb9d07fc9f07fca108fca309fca50afca60cfca80dfcaa0ffcac11fcae12fcb014fcb216fcb418fbb61afbb81dfbba1ffbbc21fbbe23fac026fac228fac42afac62df9c72ff9c932f9cb35f8cd37f8cf3af7d13df7d340f6d543f6d746f5d949f5db4cf4dd4ff4df53f4e156f3e35af3e55df2e661f2e865f2ea69f1ec6df1ed71f1ef75f1f179f2f27df2f482f3f586f3f68af4f88ef5f992f6fa96f8fb9af9fc9dfafda1fcffa4")),b_=Lr(c_("0d088710078813078916078a19068c1b068d1d068e20068f2206902406912605912805922a05932c05942e05952f059631059733059735049837049938049a3a049a3c049b3e049c3f049c41049d43039e44039e46039f48039f4903a04b03a14c02a14e02a25002a25102a35302a35502a45601a45801a45901a55b01a55c01a65e01a66001a66100a76300a76400a76600a76700a86900a86a00a86c00a86e00a86f00a87100a87201a87401a87501a87701a87801a87a02a87b02a87d03a87e03a88004a88104a78305a78405a78606a68707a68808a68a09a58b0aa58d0ba58e0ca48f0da4910ea3920fa39410a29511a19613a19814a099159f9a169f9c179e9d189d9e199da01a9ca11b9ba21d9aa31e9aa51f99a62098a72197a82296aa2395ab2494ac2694ad2793ae2892b02991b12a90b22b8fb32c8eb42e8db52f8cb6308bb7318ab83289ba3388bb3488bc3587bd3786be3885bf3984c03a83c13b82c23c81c33d80c43e7fc5407ec6417dc7427cc8437bc9447aca457acb4679cc4778cc4977cd4a76ce4b75cf4c74d04d73d14e72d24f71d35171d45270d5536fd5546ed6556dd7566cd8576bd9586ada5a6ada5b69db5c68dc5d67dd5e66de5f65de6164df6263e06363e16462e26561e26660e3685fe4695ee56a5de56b5de66c5ce76e5be76f5ae87059e97158e97257ea7457eb7556eb7655ec7754ed7953ed7a52ee7b51ef7c51ef7e50f07f4ff0804ef1814df1834cf2844bf3854bf3874af48849f48948f58b47f58c46f68d45f68f44f79044f79143f79342f89441f89540f9973ff9983ef99a3efa9b3dfa9c3cfa9e3bfb9f3afba139fba238fca338fca537fca636fca835fca934fdab33fdac33fdae32fdaf31fdb130fdb22ffdb42ffdb52efeb72dfeb82cfeba2cfebb2bfebd2afebe2afec029fdc229fdc328fdc527fdc627fdc827fdca26fdcb26fccd25fcce25fcd025fcd225fbd324fbd524fbd724fad824fada24f9dc24f9dd25f8df25f8e125f7e225f7e425f6e626f6e826f5e926f5eb27f4ed27f3ee27f3f027f2f227f1f426f1f525f0f724f0f921")),w_="http://www.w3.org/1999/xhtml",M_={svg:"http://www.w3.org/2000/svg",xhtml:w_,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"},T_=function(t){var n=t+="",e=n.indexOf(":");return e>=0&&"xmlns"!==(n=t.slice(0,e))&&(t=t.slice(e+1)),M_.hasOwnProperty(n)?{space:M_[n],local:t}:t},N_=function(t){var n=T_(t);return(n.local?Dr:Ur)(n)},k_=0;Fr.prototype=Or.prototype={constructor:Fr,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._}};var S_=function(t){return function(){return this.matches(t)}};if("undefined"!=typeof document){var A_=document.documentElement;if(!A_.matches){var E_=A_.webkitMatchesSelector||A_.msMatchesSelector||A_.mozMatchesSelector||A_.oMatchesSelector;S_=function(t){return function(){return E_.call(this,t)}}}}var C_=S_,z_={};if(t.event=null,"undefined"!=typeof document){var P_=document.documentElement;"onmouseenter"in P_||(z_={mouseenter:"mouseover",mouseleave:"mouseout"})}var q_=function(t,n,e){var r,i,o=Br(t+""),u=o.length;{if(!(arguments.length<2)){for(a=n?Hr:jr,null==e&&(e=!1),r=0;r=b&&(b=x+1);!(m=_[b])&&++b=0;)(r=i[o])&&(u&&u!==r.nextSibling&&u.parentNode.insertBefore(r,u),u=r);return this},G_=function(t){function n(n,e){return n&&e?t(n.__data__,e.__data__):!n-!e}t||(t=Jr);for(var e=this._groups,r=e.length,i=new Array(r),o=0;o1?this.each((null==n?ii:"function"==typeof n?ui:oi)(t,n,null==e?"":e)):iy(r=this.node()).getComputedStyle(r,null).getPropertyValue(t)},uy=function(t,n){return arguments.length>1?this.each((null==n?ai:"function"==typeof n?si:ci)(t,n)):this.node()[t]};hi.prototype={add:function(t){var n=this._names.indexOf(t);n<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 ay=function(t,n){var e=fi(t+"");if(arguments.length<2){for(var r=li(this.node()),i=-1,o=e.length;++iky&&e.stateNy&&e.name===n)return new so([[t]],rg,n,+r)}return null},og=Array.prototype.slice,ug=function(t){return t},ag=1,cg=2,sg=3,fg=4,lg=1e-6,hg=function(){function t(t){var o,u=0;t.eachAfter(function(t){var e=t.children;e?(t.x=To(e),t.y=ko(e)):(t.x=o?u+=n(t,o):0,t.y=0,o=t)});var a=Ao(t),c=Eo(t),s=a.x-n(a,c)/2,f=c.x+n(c,a)/2;return t.eachAfter(i?function(n){n.x=(n.x-t.x)*e,n.y=(t.y-n.y)*r}:function(n){n.x=(n.x-s)/(f-s)*e,n.y=(1-(t.y?n.y/t.y:1))*r})}var n=Mo,e=1,r=1,i=!1;return t.separation=function(e){return arguments.length?(n=e,t):n},t.size=function(n){return arguments.length?(i=!1,e=+n[0],r=+n[1],t):i?null:[e,r]},t.nodeSize=function(n){return arguments.length?(i=!0,e=+n[0],r=+n[1],t):i?[e,r]:null},t},pg=function(t){var n,e,r,i,o=this,u=[o];do for(n=u.reverse(),u=[];o=n.pop();)if(t(o),e=o.children)for(r=0,i=e.length;r=0;--e)i.push(n[e]);return this},vg=function(t){for(var n,e,r,i=this,o=[i],u=[];i=o.pop();)if(u.push(i),n=i.children)for(e=0,r=n.length;e=0;)e+=r[i].value;n.value=e})},yg=function(t){return this.eachBefore(function(n){n.children&&n.children.sort(t)})},gg=function(t){for(var n=this,e=Co(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},mg=function(){for(var t=this,n=[t];t=t.parent;)n.push(t);return n},xg=function(){var t=[];return this.each(function(n){t.push(n)}),t},bg=function(){var t=[];return this.eachBefore(function(n){n.children||t.push(n)}),t},wg=function(){var t=this,n=[];return t.each(function(e){e!==t&&n.push({source:e.parent,target:e})}),n};Uo.prototype=zo.prototype={constructor:Uo,each:pg,eachAfter:vg,eachBefore:dg,sum:_g,sort:yg,path:gg,ancestors:mg,descendants:xg,leaves:bg,links:wg,copy:Po};var Mg=function(t){for(var n,e=(t=t.slice()).length,r=null,i=r;e;){var o=new Do(t[e-1]);i=i?i.next=o:r=o,t[n]=t[--e]}return{head:r,tail:i}},Tg=function(t){return Fo(Mg(t),[])},Ng=function(t){return Wo(t),t},kg=function(t){return function(){return t}},Sg=function(){function t(t){return t.x=e/2,t.y=r/2,n?t.eachBefore(Qo(n)).eachAfter(Ko(i,.5)).eachBefore(tu(1)):t.eachBefore(Qo(Jo)).eachAfter(Ko(Go,1)).eachAfter(Ko(i,t.r/Math.min(e,r))).eachBefore(tu(Math.min(e,r)/(2*t.r))),t}var n=null,e=1,r=1,i=Go;return t.radius=function(e){return arguments.length?(n=$o(e),t):n},t.size=function(n){return arguments.length?(e=+n[0],r=+n[1],t):[e,r]},t.padding=function(n){return arguments.length?(i="function"==typeof n?n:kg(+n),t):i},t},Ag=function(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)},Eg=function(t,n,e,r,i){for(var o,u=t.children,a=-1,c=u.length,s=t.value&&(r-n)/t.value;++a0)throw new Error("cycle");return o}var n=nu,e=eu;return t.id=function(e){return arguments.length?(n=Zo(e),t):n},t.parentId=function(n){return arguments.length?(e=Zo(n),t):e},t};su.prototype=Object.create(Uo.prototype);var Rg=function(){function t(t){var r=fu(t);if(r.eachAfter(n),r.parent.m=-r.z,r.eachBefore(e),c)t.eachBefore(i);else{var s=t,f=t,l=t;t.eachBefore(function(t){t.xf.x&&(f=t),t.depth>l.depth&&(l=t)});var h=s===f?1:o(s,f)/2,p=h-s.x,d=u/(f.x+h+p),v=a/(l.depth||1);t.eachBefore(function(t){t.x=(t.x+p)*d,t.y=t.depth*v})}return t}function n(t){var n=t.children,e=t.parent.children,i=t.i?e[t.i-1]:null;if(n){au(t);var u=(n[0].z+n[n.length-1].z)/2;i?(t.z=i.z+o(t._,i._),t.m=t.z-u):t.z=u}else i&&(t.z=i.z+o(t._,i._));t.parent.A=r(t,i,t.parent.A||e[0])}function e(t){t._.x=t.z+t.parent.m,t.m+=t.parent.m}function r(t,n,e){if(n){for(var r,i=t,u=t,a=n,c=i.parent.children[0],s=i.m,f=u.m,l=a.m,h=c.m;a=ou(a),i=iu(i),a&&i;)c=iu(c),u=ou(u),u.a=t,r=a.z+l-i.z-s+o(a._,i._),r>0&&(uu(cu(a,t,e),t,r),s+=r,f+=r),l+=a.m,s+=i.m,h+=c.m,f+=u.m;a&&!ou(u)&&(u.t=a,u.m+=l-f),i&&!iu(c)&&(c.t=i,c.m+=s-h,e=t)}return e}function i(t){t.x*=u,t.y=t.depth*a}var o=ru,u=1,a=1,c=null;return t.separation=function(n){return arguments.length?(o=n,t):o},t.size=function(n){return arguments.length?(c=!1,u=+n[0],a=+n[1],t):c?null:[u,a]},t.nodeSize=function(n){return arguments.length?(c=!0,u=+n[0],a=+n[1],t):c?[u,a]:null},t},Ug=function(t,n,e,r,i){for(var o,u=t.children,a=-1,c=u.length,s=t.value&&(i-e)/t.value;++a1?n:1)},e}(Dg),Fg=function(){function t(t){return t.x0=t.y0=0,t.x1=i,t.y1=o,t.eachBefore(n),u=[0],r&&t.eachBefore(Ag),t}function n(t){var n=u[t.depth],r=t.x0+n,i=t.y0+n,o=t.x1-n,h=t.y1-n;o=n-1){var s=c[t];return s.x0=r,s.y0=i,s.x1=u,s.y1=a,void 0}for(var l=f[t],h=e/2+l,p=t+1,d=n-1;p>>1;f[v]u-r){var g=(i*y+a*_)/e;o(t,p,_,r,i,u,g),o(p,n,y,r,g,u,a)}else{var m=(r*y+u*_)/e;o(t,p,_,r,i,m,a),o(p,n,y,m,i,u,a)}}var u,a,c=t.children,s=c.length,f=new Array(s+1);for(f[0]=a=u=0;u1?n:1)},e}(Dg),jg=function(t,n){function e(){var e,i,o=r.length,u=0,a=0;for(e=0;es+d||if+d||on){var v=s-a.x-a.vx,_=f-a.y-a.vy,y=v*v+_*_;yt.r&&(t.r=t[n].r)}function r(){if(i){var n,e=i.length;for(o=new Array(e),n=0;n1?(null==n?h.remove(t):h.set(t,i(n)),u):h.get(t)},find:function(n,e,r){var i,o,u,a,c,s=0,f=t.length;for(null==r?r=1/0:r*=r,s=0;s1?(d.on(t,n),u):d.on(t)}}},Jg=function(){function t(t){var n,a=i.length,c=I(i,_u,yu).visitAfter(e);for(u=t,n=0;n=f)){(t.data!==o||t.next)&&(0===i&&(i=Xg(),p+=i*i),0===c&&(c=Xg(),p+=c*c),p0?gy(this).transition().duration(N).call(u,f,a):gy(this).call(n.transform,f)}}function h(){if(y.apply(this,arguments)){var n,e,r,i=a(this,arguments),o=t.event.changedTouches,u=o.length;for(oa(),n=0;n0?1:t<0?-1:0; +},Bx=Math.sqrt,jx=Math.tan,Hx={Feature:function(t,n){za(t.geometry,n)},FeatureCollection:function(t,n){for(var e=t.features,r=-1,i=e.length;++rTx?tx=90:Jx<-Tx&&(Qm=-90),ux[0]=Jm,ux[1]=Km}},Kx=function(t){var n,e,r,i,o,u,a;if(tx=Km=-(Jm=Qm=1/0),ox=[],Vx(t,Qx),e=ox.length){for(ox.sort(Ka),n=1,r=ox[0],o=[r];nQa(r[0],r[1])&&(r[1]=i[1]),Qa(i[0],r[1])>Qa(r[0],r[1])&&(r[0]=i[0])):o.push(r=i);for(u=-(1/0),e=o.length-1,n=0,r=o[e];n<=e;r=i,++n)i=o[n],(a=Qa(r[1],i[0]))>u&&(u=a,Jm=i[0],Km=r[1])}return ox=ux=null,Jm===1/0||Qm===1/0?[[NaN,NaN],[NaN,NaN]]:[[Jm,Qm],[Km,tx]]},tb={sphere:Ca,point:nc,lineStart:rc,lineEnd:uc,polygonStart:function(){tb.lineStart=ac,tb.lineEnd=cc},polygonEnd:function(){tb.lineStart=rc,tb.lineEnd=uc}},nb=function(t){ax=cx=sx=fx=lx=hx=px=dx=vx=_x=yx=0,Vx(t,tb);var n=vx,e=_x,r=yx,i=n*n+e*e+r*r;return i2?t[2]*zx:0),n.invert=function(n){return n=t.invert(n[0]*zx,n[1]*zx),n[0]*=Cx,n[1]*=Cx,n},n},_b=function(){function t(t,n){e.push(t=r(t,n)),t[0]*=Cx,t[1]*=Cx}function n(){var t=i.apply(this,arguments),n=o.apply(this,arguments)*zx,c=u.apply(this,arguments)*zx;return e=[],r=hc(-t[0]*zx,-t[1]*zx,0).invert,_c(a,n,c,1),t={type:"Polygon",coordinates:[e]},e=r=null,t}var e,r,i=eb([0,0]),o=eb(90),u=eb(6),a={point:t};return n.center=function(t){return arguments.length?(i="function"==typeof t?t:eb([+t[0],+t[1]]),n):i},n.radius=function(t){return arguments.length?(o="function"==typeof t?t:eb(+t),n):o},n.precision=function(t){return arguments.length?(u="function"==typeof t?t:eb(+t),n):u},n},yb=function(){var t,n=[];return{point:function(n,e){t.push([n,e])},lineStart:function(){n.push(t=[])},lineEnd:Ca,rejoin:function(){n.length>1&&n.push(n.pop().concat(n.shift()))},result:function(){var e=n;return n=[],t=null,e}}},gb=function(t,n,e,r,i,o){var u,a=t[0],c=t[1],s=n[0],f=n[1],l=0,h=1,p=s-a,d=f-c;if(u=e-a,p||!(u>0)){if(u/=p,p<0){if(u0){if(u>h)return;u>l&&(l=u)}if(u=i-a,p||!(u<0)){if(u/=p,p<0){if(u>h)return;u>l&&(l=u)}else if(p>0){if(u0)){if(u/=d,d<0){if(u0){if(u>h)return;u>l&&(l=u)}if(u=o-c,d||!(u<0)){if(u/=d,d<0){if(u>h)return;u>l&&(l=u)}else if(d>0){if(u0&&(t[0]=a+l*p,t[1]=c+l*d),h<1&&(n[0]=a+h*p,n[1]=c+h*d),!0}}}}},mb=function(t,n){return Px(t[0]-n[0])=0;--o)i.point((f=s[o])[0],f[1]);else r(h.x,h.p.x,-1,i);h=h.p}h=h.o,s=h.z,p=!p}while(!h.v);i.lineEnd()}}},bb=1e9,wb=-bb,Mb=function(){var t,n,e,r=0,i=0,o=960,u=500;return e={stream:function(e){return t&&n===e?t:t=xc(r,i,o,u)(n=e)},extent:function(a){return arguments.length?(r=+a[0][0],i=+a[0][1],o=+a[1][0],u=+a[1][1],t=n=null,e):[[r,i],[o,u]]}}},Tb=Xm(),Nb={sphere:Ca,point:Ca,lineStart:bc,lineEnd:Ca,polygonStart:Ca,polygonEnd:Ca},kb=function(t){return Tb.reset(),Vx(t,Nb),+Tb},Sb=[null,null],Ab={type:"LineString",coordinates:Sb},Eb=function(t,n){return Sb[0]=t,Sb[1]=n,kb(Ab)},Cb=function(t,n){var e=t[0]*zx,r=t[1]*zx,i=n[0]*zx,o=n[1]*zx,u=Rx(r),a=Ix(r),c=Rx(o),s=Ix(o),f=u*Rx(e),l=u*Ix(e),h=c*Rx(i),p=c*Ix(i),d=2*Aa(Bx(Ea(o-r)+u*c*Ea(i-e))),v=Ix(d),_=d?function(t){var n=Ix(t*=d)/v,e=Ix(d-t)/v,r=e*f+n*h,i=e*l+n*p,o=e*a+n*s;return[Lx(i,r)*Cx,Lx(o,Bx(r*r+i*i))*Cx]}:function(){return[e*Cx,r*Cx]};return _.distance=d,_},zb=function(t){return t},Pb=Xm(),qb=Xm(),Lb={point:Ca,lineStart:Ca,lineEnd:Ca,polygonStart:function(){Lb.lineStart=Ec,Lb.lineEnd=Pc},polygonEnd:function(){Lb.lineStart=Lb.lineEnd=Lb.point=Ca,Pb.add(Px(qb)),qb.reset()},result:function(){var t=Pb/2;return Pb.reset(),t}},Rb=1/0,Ub=Rb,Db=-Rb,Ob=Db,Fb={point:qc,lineStart:Ca,lineEnd:Ca,polygonStart:Ca,polygonEnd:Ca,result:function(){var t=[[Rb,Ub],[Db,Ob]];return Db=Ob=-(Ub=Rb=1/0),t}},Ib=0,Yb=0,Bb=0,jb=0,Hb=0,Xb=0,Vb=0,Wb=0,$b=0,Zb={point:Lc,lineStart:Rc,lineEnd:Oc,polygonStart:function(){Zb.lineStart=Fc,Zb.lineEnd=Ic},polygonEnd:function(){Zb.point=Lc,Zb.lineStart=Rc,Zb.lineEnd=Oc},result:function(){var t=$b?[Vb/$b,Wb/$b]:Xb?[jb/Xb,Hb/Xb]:Bb?[Ib/Bb,Yb/Bb]:[NaN,NaN];return Ib=Yb=Bb=jb=Hb=Xb=Vb=Wb=$b=0,t}};jc.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,Ex)}},result:Ca},Hc.prototype={_circle:Xc(4.5),pointRadius:function(t){return this._circle=Xc(t),this},polygonStart:function(){this._line=0},polygonEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){0===this._line&&this._string.push("Z"),this._point=NaN},point:function(t,n){switch(this._point){case 0:this._string.push("M",t,",",n),this._point=1;break;case 1:this._string.push("L",t,",",n);break;default:this._string.push("M",t,",",n,this._circle)}},result:function(){if(this._string.length){var t=this._string.join("");return this._string=[],t}}};var Gb=function(t,n){function e(t){return t&&("function"==typeof o&&i.pointRadius(+o.apply(this,arguments)),Vx(t,r(i))),i.result()}var r,i,o=4.5;return e.area=function(t){return Vx(t,r(Lb)),Lb.result()},e.bounds=function(t){return Vx(t,r(Fb)),Fb.result()},e.centroid=function(t){return Vx(t,r(Zb)),Zb.result()},e.projection=function(n){return arguments.length?(r=null==(t=n)?zb:n.stream,e):t},e.context=function(t){return arguments.length?(i=null==(n=t)?new Hc:new jc(t),"function"!=typeof o&&i.pointRadius(o),e):n},e.pointRadius=function(t){return arguments.length?(o="function"==typeof t?t:(i.pointRadius(+t),+t),e):o},e.projection(t).context(n)},Jb=Xm(),Qb=function(t,n){var e=n[0],r=n[1],i=[Ix(e),-Rx(e),0],o=0,u=0;Jb.reset();for(var a=0,c=t.length;a=0?1:-1,T=M*w,N=T>kx,k=d*x;if(Jb.add(Lx(k*M*Ix(T),v*b+k*Rx(T))),o+=N?w+M*Ex:w,N^h>=e^g>=e){var S=Ya(Fa(l),Fa(y));Ha(S);var A=Ya(i,S);Ha(A);var E=(N^w>=0?-1:1)*Aa(A[2]);(r>E||r===E&&(S[0]||S[1]))&&(u+=N^w>=0?1:-1)}}return(o<-Tx||o0){for(x||(o.polygonStart(),x=!0),o.lineStart(),t=0;t1&&2&i&&u.push(u.pop().concat(u.shift())),d.push(u.filter(Vc))}var p,d,v,_=n(o),y=i.invert(r[0],r[1]),g=yb(),m=n(g),x=!1,b={point:u,lineStart:c,lineEnd:s,polygonStart:function(){b.point=f,b.lineStart=l,b.lineEnd=h,d=[],p=[]},polygonEnd:function(){b.point=u,b.lineStart=c,b.lineEnd=s,d=Js(d);var t=Qb(p,y);d.length?(x||(o.polygonStart(),x=!0),xb(d,Wc,t,e,o)):t&&(x||(o.polygonStart(),x=!0),o.lineStart(),e(null,null,1,o),o.lineEnd()),x&&(o.polygonEnd(),x=!1),d=p=null},sphere:function(){o.polygonStart(),o.lineStart(),e(null,null,1,o),o.lineEnd(),o.polygonEnd()}};return b}},tw=Kb(function(){return!0},$c,Gc,[-kx,-Sx]),nw=function(t,n){function e(e,r,i,o){_c(o,t,n,i,e,r)}function r(t,n){return Rx(t)*Rx(n)>a}function i(t){var n,e,i,a,f;return{lineStart:function(){a=i=!1,f=1},point:function(l,h){var p,d=[l,h],v=r(l,h),_=c?v?0:u(l,h):v?u(l+(l<0?kx:-kx),h):0;if(!n&&(a=i=v)&&t.lineStart(),v!==i&&(p=o(n,d),(mb(n,p)||mb(d,p))&&(d[0]+=Tx,d[1]+=Tx,v=r(d[0],d[1]))),v!==i)f=0,v?(t.lineStart(),p=o(d,n),t.point(p[0],p[1])):(p=o(n,d),t.point(p[0],p[1]),t.lineEnd()),n=p;else if(s&&n&&c^v){var y;_&e||!(y=o(d,n,!0))||(f=0,c?(t.lineStart(),t.point(y[0][0],y[0][1]),t.point(y[1][0],y[1][1]),t.lineEnd()):(t.point(y[1][0],y[1][1]),t.lineEnd(),t.lineStart(),t.point(y[0][0],y[0][1])))}!v||n&&mb(n,d)||t.point(d[0],d[1]),n=d,i=v,e=_},lineEnd:function(){i&&t.lineEnd(),n=null},clean:function(){return f|(a&&i)<<1}}}function o(t,n,e){var r=Fa(t),i=Fa(n),o=[1,0,0],u=Ya(r,i),c=Ia(u,u),s=u[0],f=c-s*s;if(!f)return!e&&t;var l=a*c/f,h=-a*s/f,p=Ya(o,u),d=ja(o,l),v=ja(u,h);Ba(d,v);var _=p,y=Ia(d,_),g=Ia(_,_),m=y*y-g*(Ia(d,d)-1);if(!(m<0)){var x=Bx(m),b=ja(_,(-y-x)/g);if(Ba(b,d),b=Oa(b),!e)return b;var w,M=t[0],T=n[0],N=t[1],k=n[1];T0^b[1]<(Px(b[0]-M)kx^(M<=b[0]&&b[0]<=T)){var C=ja(_,(-y+x)/g);return Ba(C,d),[b,Oa(C)]}}}function u(n,e){var r=c?t:kx-t,i=0;return n<-r?i|=1:n>r&&(i|=2),e<-r?i|=4:e>r&&(i|=8),i}var a=Rx(t),c=a>0,s=Px(a)>Tx;return Kb(r,i,e,c?[0,-t]:[-kx,t-kx])},ew=function(t){return{stream:Jc(t)}};Qc.prototype={constructor:Qc,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 rw=16,iw=Rx(30*zx),ow=function(t,n){return+n?es(t,n):ns(t)},uw=Jc({point:function(t,n){this.stream.point(t*zx,n*zx)}}),aw=function(){return os(as).scale(155.424).center([0,33.6442])},cw=function(){return aw().parallels([29.5,45.5]).scale(1070).translate([480,250]).rotate([96,0]).center([-.6,38.7])},sw=function(){function t(t){var n=t[0],e=t[1];return a=null,i.point(n,e),a||(o.point(n,e),a)||(u.point(n,e),a)}function n(){return e=r=null,t}var e,r,i,o,u,a,c=cw(),s=aw().rotate([154,0]).center([-2,58.5]).parallels([55,65]),f=aw().rotate([157,0]).center([-3,19.9]).parallels([8,18]),l={point:function(t,n){a=[t,n]}};return t.invert=function(t){var n=c.scale(),e=c.translate(),r=(t[0]-e[0])/n,i=(t[1]-e[1])/n;return(i>=.12&&i<.234&&r>=-.425&&r<-.214?s:i>=.166&&i<.234&&r>=-.214&&r<-.115?f:c).invert(t)},t.stream=function(t){return e&&r===t?e:e=cs([c.stream(r=t),s.stream(t),f.stream(t)])},t.precision=function(t){return arguments.length?(c.precision(t),s.precision(t),f.precision(t),n()):c.precision()},t.scale=function(n){return arguments.length?(c.scale(n),s.scale(.35*n),f.scale(n),t.translate(c.translate())):c.scale()},t.translate=function(t){if(!arguments.length)return c.translate();var e=c.scale(),r=+t[0],a=+t[1];return i=c.translate(t).clipExtent([[r-.455*e,a-.238*e],[r+.455*e,a+.238*e]]).stream(l),o=s.translate([r-.307*e,a+.201*e]).clipExtent([[r-.425*e+Tx,a+.12*e+Tx],[r-.214*e-Tx,a+.234*e-Tx]]).stream(l),u=f.translate([r-.205*e,a+.212*e]).clipExtent([[r-.214*e+Tx,a+.166*e+Tx],[r-.115*e-Tx,a+.234*e-Tx]]).stream(l),n()},t.fitExtent=function(n,e){return Kc(t,n,e)},t.fitSize=function(n,e){return ts(t,n,e)},t.scale(1070)},fw=ss(function(t){return Bx(2/(1+t))});fw.invert=fs(function(t){return 2*Aa(t/2)});var lw=function(){return rs(fw).scale(124.75).clipAngle(179.999)},hw=ss(function(t){return(t=Sa(t))&&t/Ix(t)});hw.invert=fs(function(t){return t});var pw=function(){return rs(hw).scale(79.4188).clipAngle(179.999)};ls.invert=function(t,n){return[t,2*qx(Dx(n))-Sx]};var dw=function(){return hs(ls).scale(961/Ex)},vw=function(){return os(ds).scale(109.5).parallels([30,30])};vs.invert=vs;var _w=function(){return rs(vs).scale(152.63)},yw=function(){return os(_s).scale(131.154).center([0,13.9389])};ys.invert=fs(qx);var gw=function(){return rs(ys).scale(144.049).clipAngle(60)},mw=function(){function t(){return i=o=null,u}var n,e,r,i,o,u,a=1,c=0,s=0,f=zb,l=null,h=zb;return u={stream:function(t){return i&&o===t?i:i=f(h(o=t))},clipExtent:function(i){return arguments.length?(h=null==i?(l=n=e=r=null,zb):xc(l=+i[0][0],n=+i[0][1],e=+i[1][0],r=+i[1][1]),t()):null==l?null:[[l,n],[e,r]]},scale:function(n){return arguments.length?(f=gs(a=+n,c,s),t()):a},translate:function(n){return arguments.length?(f=gs(a,c=+n[0],s=+n[1]),t()):[c,s]},fitExtent:function(t,n){return Kc(u,t,n)},fitSize:function(t,n){return ts(u,t,n)}}};ms.invert=fs(Aa);var xw=function(){return rs(ms).scale(249.5).clipAngle(90+Tx)};xs.invert=fs(function(t){return 2*qx(t)});var bw=function(){return rs(xs).scale(250).clipAngle(142)};bs.invert=function(t,n){return[-n,2*qx(Dx(t))-Sx]};var ww=function(){var t=hs(bs),n=t.center,e=t.rotate;return t.center=function(t){return arguments.length?n([-t[1],t[0]]):(t=n(),[t[1],-t[0]])},t.rotate=function(t){return arguments.length?e([t[0],t[1],t.length>2?t[2]+90:90]):(t=e(),[t[0],t[1],t[2]-90])},e([0,0,90]).scale(159.155)};t.version=ws,t.bisect=ks,t.bisectRight=ks,t.bisectLeft=Ss,t.ascending=Ms,t.bisector=Ts,t.descending=As,t.deviation=zs,t.extent=Ps,t.histogram=Hs,t.thresholdFreedmanDiaconis=Vs,t.thresholdScott=Ws,t.thresholdSturges=js,t.max=$s,t.mean=Zs,t.median=Gs,t.merge=Js,t.min=Qs,t.pairs=Ks,t.permute=tf,t.quantile=Xs,t.range=Os,t.scan=nf,t.shuffle=ef,t.sum=rf,t.ticks=Bs,t.tickStep=e,t.transpose=of,t.variance=Cs,t.zip=uf,t.entries=hf,t.keys=ff,t.values=lf,t.map=o,t.set=l,t.nest=cf,t.randomUniform=pf,t.randomNormal=df,t.randomLogNormal=vf,t.randomBates=yf,t.randomIrwinHall=_f,t.randomExponential=gf,t.easeLinear=h,t.easeQuad=v,t.easeQuadIn=p,t.easeQuadOut=d,t.easeQuadInOut=v,t.easeCubic=g,t.easeCubicIn=_,t.easeCubicOut=y,t.easeCubicInOut=g,t.easePoly=wf,t.easePolyIn=xf,t.easePolyOut=bf,t.easePolyInOut=wf,t.easeSin=b,t.easeSinIn=m,t.easeSinOut=x,t.easeSinInOut=b,t.easeExp=T,t.easeExpIn=w,t.easeExpOut=M,t.easeExpInOut=T,t.easeCircle=S,t.easeCircleIn=N,t.easeCircleOut=k,t.easeCircleInOut=S,t.easeBounce=E,t.easeBounceIn=A,t.easeBounceOut=E,t.easeBounceInOut=C,t.easeBack=Of,t.easeBackIn=Uf,t.easeBackOut=Df,t.easeBackInOut=Of,t.easeElastic=jf,t.easeElasticIn=Bf,t.easeElasticOut=jf,t.easeElasticInOut=Hf,t.polygonArea=Xf,t.polygonCentroid=Vf,t.polygonHull=$f,t.polygonContains=Zf,t.polygonLength=Gf,t.path=L,t.quadtree=I,t.queue=Z,t.arc=wl,t.area=Nl,t.line=Tl,t.pie=Al,t.radialArea=zl,t.radialLine=Cl,t.symbol=Jl,t.symbols=Gl,t.symbolCircle=Pl,t.symbolCross=ql,t.symbolDiamond=Ul,t.symbolSquare=Bl,t.symbolStar=Yl,t.symbolTriangle=Hl,t.symbolWye=Zl,t.curveBasisClosed=th,t.curveBasisOpen=nh,t.curveBasis=Kl,t.curveBundle=eh,t.curveCardinalClosed=ih,t.curveCardinalOpen=oh,t.curveCardinal=rh,t.curveCatmullRomClosed=ah,t.curveCatmullRomOpen=ch,t.curveCatmullRom=uh,t.curveLinearClosed=sh,t.curveLinear=Ml,t.curveMonotoneX=zt,t.curveMonotoneY=Pt,t.curveNatural=fh,t.curveStep=lh,t.curveStepAfter=Dt,t.curveStepBefore=Ut,t.stack=vh,t.stackOffsetExpand=_h,t.stackOffsetNone=ph,t.stackOffsetSilhouette=yh,t.stackOffsetWiggle=gh,t.stackOrderAscending=mh,t.stackOrderDescending=xh,t.stackOrderInsideOut=bh,t.stackOrderNone=dh,t.stackOrderReverse=wh,t.color=Bt,t.rgb=Vt,t.hsl=Gt,t.lab=tn,t.hcl=cn,t.cubehelix=ln,t.interpolate=_p,t.interpolateArray=sp,t.interpolateDate=fp,t.interpolateNumber=lp,t.interpolateObject=hp,t.interpolateRound=yp,t.interpolateString=vp,t.interpolateTransformCss=bp,t.interpolateTransformSvg=wp,t.interpolateZoom=Sp,t.interpolateRgb=up,t.interpolateRgbBasis=ap,t.interpolateRgbBasisClosed=cp,t.interpolateHsl=Ap,t.interpolateHslLong=Ep,t.interpolateLab=En,t.interpolateHcl=Cp,t.interpolateHclLong=zp,t.interpolateCubehelix=Pp,t.interpolateCubehelixLong=qp,t.interpolateBasis=rp,t.interpolateBasisClosed=ip,t.quantize=Lp,t.dispatch=Pn,t.dsvFormat=Op,t.csvParse=Ip,t.csvParseRows=Yp,t.csvFormat=Bp,t.csvFormatRows=jp,t.tsvParse=Xp,t.tsvParseRows=Vp,t.tsvFormat=Wp,t.tsvFormatRows=$p,t.request=Zp,t.html=Jp,t.json=Qp,t.text=Kp,t.xml=td,t.csv=ed,t.tsv=rd,t.now=jn,t.timer=Vn,t.timerFlush=Wn,t.timeout=pd,t.interval=dd,t.timeInterval=Qn,t.timeMillisecond=yd,t.timeMilliseconds=gd,t.timeSecond=Td,t.timeSeconds=Nd,t.timeMinute=kd,t.timeMinutes=Sd,t.timeHour=Ad,t.timeHours=Ed,t.timeDay=Cd,t.timeDays=zd,t.timeWeek=Pd,t.timeWeeks=Fd,t.timeSunday=Pd,t.timeSundays=Fd,t.timeMonday=qd,t.timeMondays=Id,t.timeTuesday=Ld,t.timeTuesdays=Yd;t.timeWednesday=Rd;t.timeWednesdays=Bd,t.timeThursday=Ud,t.timeThursdays=jd,t.timeFriday=Dd,t.timeFridays=Hd,t.timeSaturday=Od,t.timeSaturdays=Xd,t.timeMonth=Vd,t.timeMonths=Wd,t.timeYear=$d,t.timeYears=Zd,t.utcMillisecond=yd,t.utcMilliseconds=gd,t.utcSecond=Td,t.utcSeconds=Nd,t.utcMinute=Gd,t.utcMinutes=Jd,t.utcHour=Qd,t.utcHours=Kd,t.utcDay=tv,t.utcDays=nv,t.utcWeek=ev,t.utcWeeks=sv,t.utcSunday=ev,t.utcSundays=sv,t.utcMonday=rv,t.utcMondays=fv,t.utcTuesday=iv,t.utcTuesdays=lv,t.utcWednesday=ov,t.utcWednesdays=hv,t.utcThursday=uv,t.utcThursdays=pv,t.utcFriday=av,t.utcFridays=dv,t.utcSaturday=cv,t.utcSaturdays=vv,t.utcMonth=_v,t.utcMonths=yv,t.utcYear=gv,t.utcYears=xv,t.formatLocale=Pv,t.formatDefaultLocale=re,t.formatSpecifier=Ev,t.precisionFixed=Lv,t.precisionPrefix=Rv,t.precisionRound=Uv,t.isoFormat=Bv,t.isoParse=jv,t.timeFormatLocale=ae,t.timeFormatDefaultLocale=nr,t.scaleBand=or,t.scalePoint=ar,t.scaleIdentity=yr,t.scaleLinear=_r,t.scaleLog=Tr,t.scaleOrdinal=ir,t.scaleImplicit=Wv,t.scalePow=kr,t.scaleSqrt=Sr,t.scaleQuantile=Ar,t.scaleQuantize=Er,t.scaleThreshold=Cr,t.scaleTime=u_,t.scaleUtc=a_,t.schemeCategory10=s_,t.schemeCategory20b=f_,t.schemeCategory20c=l_,t.schemeCategory20=h_,t.scaleSequential=Rr,t.interpolateCubehelixDefault=p_,t.interpolateRainbow=y_,t.interpolateWarm=d_,t.interpolateCool=v_,t.interpolateViridis=g_,t.interpolateMagma=m_,t.interpolateInferno=x_,t.interpolatePlasma=b_,t.creator=N_,t.customEvent=Xr,t.local=Or,t.matcher=C_,t.mouse=U_,t.namespace=T_,t.namespaces=M_,t.select=gy,t.selectAll=my,t.selection=Pi,t.selector=D_,t.selectorAll=F_,t.touch=xy,t.touches=by,t.window=iy,t.active=ig,t.interrupt=Py,t.transition=fo,t.axisTop=mo,t.axisRight=xo,t.axisBottom=bo,t.axisLeft=wo,t.cluster=hg,t.hierarchy=zo,t.pack=Sg,t.packSiblings=Ng,t.packEnclose=Tg,t.partition=Cg,t.stratify=Lg,t.tree=Rg,t.treemap=Fg,t.treemapBinary=Ig,t.treemapDice=Eg,t.treemapSlice=Ug,t.treemapSliceDice=Yg,t.treemapSquarify=Og,t.treemapResquarify=Bg,t.forceCenter=jg,t.forceCollide=Vg,t.forceLink=Wg,t.forceManyBody=Jg,t.forceSimulation=Gg,t.forceX=Qg,t.forceY=Kg,t.drag=rm,t.dragDisable=nm,t.dragEnable=mu,t.voronoi=dm,t.zoom=gm,t.zoomIdentity=_m,t.zoomTransform=ia,t.brush=Lm,t.brushX=_a,t.brushY=ya,t.brushSelection=va,t.chord=Ym,t.ribbon=Hm,t.geoAlbers=cw,t.geoAlbersUsa=sw,t.geoArea=Gx,t.geoAzimuthalEqualArea=lw,t.geoAzimuthalEqualAreaRaw=fw,t.geoAzimuthalEquidistant=pw,t.geoAzimuthalEquidistantRaw=hw,t.geoBounds=Kx,t.geoCentroid=nb,t.geoCircle=_b,t.geoClipExtent=Mb,t.geoConicConformal=vw,t.geoConicConformalRaw=ds,t.geoConicEqualArea=aw,t.geoConicEqualAreaRaw=as,t.geoConicEquidistant=yw,t.geoConicEquidistantRaw=_s,t.geoDistance=Eb,t.geoEquirectangular=_w,t.geoEquirectangularRaw=vs,t.geoGnomonic=gw,t.geoGnomonicRaw=ys,t.geoGraticule=Sc,t.geoGraticule10=Ac,t.geoIdentity=mw,t.geoInterpolate=Cb,t.geoLength=kb,t.geoMercator=dw,t.geoMercatorRaw=ls,t.geoOrthographic=xw,t.geoOrthographicRaw=ms,t.geoPath=Gb,t.geoProjection=rs,t.geoProjectionMutator=is,t.geoRotation=vb,t.geoStereographic=bw,t.geoStereographicRaw=xs,t.geoStream=Vx,t.geoTransform=ew,t.geoTransverseMercator=ww,t.geoTransverseMercatorRaw=bs,Object.defineProperty(t,"__esModule",{value:!0})}); \ No newline at end of file diff --git a/assets/js/jquery.min.js b/assets/js/jquery.min.js new file mode 100644 index 0000000..4c5be4c --- /dev/null +++ b/assets/js/jquery.min.js @@ -0,0 +1,4 @@ +/*! jQuery v3.1.1 | (c) jQuery Foundation | jquery.org/license */ +!function(a,b){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw new Error("jQuery requires a window with a document");return b(a)}:b(a)}("undefined"!=typeof window?window:this,function(a,b){"use strict";var c=[],d=a.document,e=Object.getPrototypeOf,f=c.slice,g=c.concat,h=c.push,i=c.indexOf,j={},k=j.toString,l=j.hasOwnProperty,m=l.toString,n=m.call(Object),o={};function p(a,b){b=b||d;var c=b.createElement("script");c.text=a,b.head.appendChild(c).parentNode.removeChild(c)}var q="3.1.1",r=function(a,b){return new r.fn.init(a,b)},s=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,t=/^-ms-/,u=/-([a-z])/g,v=function(a,b){return b.toUpperCase()};r.fn=r.prototype={jquery:q,constructor:r,length:0,toArray:function(){return f.call(this)},get:function(a){return null==a?f.call(this):a<0?this[a+this.length]:this[a]},pushStack:function(a){var b=r.merge(this.constructor(),a);return b.prevObject=this,b},each:function(a){return r.each(this,a)},map:function(a){return this.pushStack(r.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(f.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(a<0?b:0);return this.pushStack(c>=0&&c0&&b-1 in a)}var x=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u="sizzle"+1*new Date,v=a.document,w=0,x=0,y=ha(),z=ha(),A=ha(),B=function(a,b){return a===b&&(l=!0),0},C={}.hasOwnProperty,D=[],E=D.pop,F=D.push,G=D.push,H=D.slice,I=function(a,b){for(var c=0,d=a.length;c+~]|"+K+")"+K+"*"),S=new RegExp("="+K+"*([^\\]'\"]*?)"+K+"*\\]","g"),T=new RegExp(N),U=new RegExp("^"+L+"$"),V={ID:new RegExp("^#("+L+")"),CLASS:new RegExp("^\\.("+L+")"),TAG:new RegExp("^("+L+"|[*])"),ATTR:new RegExp("^"+M),PSEUDO:new RegExp("^"+N),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+K+"*(even|odd|(([+-]|)(\\d*)n|)"+K+"*(?:([+-]|)"+K+"*(\\d+)|))"+K+"*\\)|)","i"),bool:new RegExp("^(?:"+J+")$","i"),needsContext:new RegExp("^"+K+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+K+"*((?:-\\d)?\\d*)"+K+"*\\)|)(?=[^-]|$)","i")},W=/^(?:input|select|textarea|button)$/i,X=/^h\d$/i,Y=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,$=/[+~]/,_=new RegExp("\\\\([\\da-f]{1,6}"+K+"?|("+K+")|.)","ig"),aa=function(a,b,c){var d="0x"+b-65536;return d!==d||c?b:d<0?String.fromCharCode(d+65536):String.fromCharCode(d>>10|55296,1023&d|56320)},ba=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ca=function(a,b){return b?"\0"===a?"\ufffd":a.slice(0,-1)+"\\"+a.charCodeAt(a.length-1).toString(16)+" ":"\\"+a},da=function(){m()},ea=ta(function(a){return a.disabled===!0&&("form"in a||"label"in a)},{dir:"parentNode",next:"legend"});try{G.apply(D=H.call(v.childNodes),v.childNodes),D[v.childNodes.length].nodeType}catch(fa){G={apply:D.length?function(a,b){F.apply(a,H.call(b))}:function(a,b){var c=a.length,d=0;while(a[c++]=b[d++]);a.length=c-1}}}function ga(a,b,d,e){var f,h,j,k,l,o,r,s=b&&b.ownerDocument,w=b?b.nodeType:9;if(d=d||[],"string"!=typeof a||!a||1!==w&&9!==w&&11!==w)return d;if(!e&&((b?b.ownerDocument||b:v)!==n&&m(b),b=b||n,p)){if(11!==w&&(l=Z.exec(a)))if(f=l[1]){if(9===w){if(!(j=b.getElementById(f)))return d;if(j.id===f)return d.push(j),d}else if(s&&(j=s.getElementById(f))&&t(b,j)&&j.id===f)return d.push(j),d}else{if(l[2])return G.apply(d,b.getElementsByTagName(a)),d;if((f=l[3])&&c.getElementsByClassName&&b.getElementsByClassName)return G.apply(d,b.getElementsByClassName(f)),d}if(c.qsa&&!A[a+" "]&&(!q||!q.test(a))){if(1!==w)s=b,r=a;else if("object"!==b.nodeName.toLowerCase()){(k=b.getAttribute("id"))?k=k.replace(ba,ca):b.setAttribute("id",k=u),o=g(a),h=o.length;while(h--)o[h]="#"+k+" "+sa(o[h]);r=o.join(","),s=$.test(a)&&qa(b.parentNode)||b}if(r)try{return G.apply(d,s.querySelectorAll(r)),d}catch(x){}finally{k===u&&b.removeAttribute("id")}}}return i(a.replace(P,"$1"),b,d,e)}function ha(){var a=[];function b(c,e){return a.push(c+" ")>d.cacheLength&&delete b[a.shift()],b[c+" "]=e}return b}function ia(a){return a[u]=!0,a}function ja(a){var b=n.createElement("fieldset");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function ka(a,b){var c=a.split("|"),e=c.length;while(e--)d.attrHandle[c[e]]=b}function la(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&a.sourceIndex-b.sourceIndex;if(d)return d;if(c)while(c=c.nextSibling)if(c===b)return-1;return a?1:-1}function ma(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function na(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function oa(a){return function(b){return"form"in b?b.parentNode&&b.disabled===!1?"label"in b?"label"in b.parentNode?b.parentNode.disabled===a:b.disabled===a:b.isDisabled===a||b.isDisabled!==!a&&ea(b)===a:b.disabled===a:"label"in b&&b.disabled===a}}function pa(a){return ia(function(b){return b=+b,ia(function(c,d){var e,f=a([],c.length,b),g=f.length;while(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function qa(a){return a&&"undefined"!=typeof a.getElementsByTagName&&a}c=ga.support={},f=ga.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return!!b&&"HTML"!==b.nodeName},m=ga.setDocument=function(a){var b,e,g=a?a.ownerDocument||a:v;return g!==n&&9===g.nodeType&&g.documentElement?(n=g,o=n.documentElement,p=!f(n),v!==n&&(e=n.defaultView)&&e.top!==e&&(e.addEventListener?e.addEventListener("unload",da,!1):e.attachEvent&&e.attachEvent("onunload",da)),c.attributes=ja(function(a){return a.className="i",!a.getAttribute("className")}),c.getElementsByTagName=ja(function(a){return a.appendChild(n.createComment("")),!a.getElementsByTagName("*").length}),c.getElementsByClassName=Y.test(n.getElementsByClassName),c.getById=ja(function(a){return o.appendChild(a).id=u,!n.getElementsByName||!n.getElementsByName(u).length}),c.getById?(d.filter.ID=function(a){var b=a.replace(_,aa);return function(a){return a.getAttribute("id")===b}},d.find.ID=function(a,b){if("undefined"!=typeof b.getElementById&&p){var c=b.getElementById(a);return c?[c]:[]}}):(d.filter.ID=function(a){var b=a.replace(_,aa);return function(a){var c="undefined"!=typeof a.getAttributeNode&&a.getAttributeNode("id");return c&&c.value===b}},d.find.ID=function(a,b){if("undefined"!=typeof b.getElementById&&p){var c,d,e,f=b.getElementById(a);if(f){if(c=f.getAttributeNode("id"),c&&c.value===a)return[f];e=b.getElementsByName(a),d=0;while(f=e[d++])if(c=f.getAttributeNode("id"),c&&c.value===a)return[f]}return[]}}),d.find.TAG=c.getElementsByTagName?function(a,b){return"undefined"!=typeof b.getElementsByTagName?b.getElementsByTagName(a):c.qsa?b.querySelectorAll(a):void 0}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if("*"===a){while(c=f[e++])1===c.nodeType&&d.push(c);return d}return f},d.find.CLASS=c.getElementsByClassName&&function(a,b){if("undefined"!=typeof b.getElementsByClassName&&p)return b.getElementsByClassName(a)},r=[],q=[],(c.qsa=Y.test(n.querySelectorAll))&&(ja(function(a){o.appendChild(a).innerHTML="",a.querySelectorAll("[msallowcapture^='']").length&&q.push("[*^$]="+K+"*(?:''|\"\")"),a.querySelectorAll("[selected]").length||q.push("\\["+K+"*(?:value|"+J+")"),a.querySelectorAll("[id~="+u+"-]").length||q.push("~="),a.querySelectorAll(":checked").length||q.push(":checked"),a.querySelectorAll("a#"+u+"+*").length||q.push(".#.+[+~]")}),ja(function(a){a.innerHTML="";var b=n.createElement("input");b.setAttribute("type","hidden"),a.appendChild(b).setAttribute("name","D"),a.querySelectorAll("[name=d]").length&&q.push("name"+K+"*[*^$|!~]?="),2!==a.querySelectorAll(":enabled").length&&q.push(":enabled",":disabled"),o.appendChild(a).disabled=!0,2!==a.querySelectorAll(":disabled").length&&q.push(":enabled",":disabled"),a.querySelectorAll("*,:x"),q.push(",.*:")})),(c.matchesSelector=Y.test(s=o.matches||o.webkitMatchesSelector||o.mozMatchesSelector||o.oMatchesSelector||o.msMatchesSelector))&&ja(function(a){c.disconnectedMatch=s.call(a,"*"),s.call(a,"[s!='']:x"),r.push("!=",N)}),q=q.length&&new RegExp(q.join("|")),r=r.length&&new RegExp(r.join("|")),b=Y.test(o.compareDocumentPosition),t=b||Y.test(o.contains)?function(a,b){var c=9===a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a===d||!(!d||1!==d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)while(b=b.parentNode)if(b===a)return!0;return!1},B=b?function(a,b){if(a===b)return l=!0,0;var d=!a.compareDocumentPosition-!b.compareDocumentPosition;return d?d:(d=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&d||!c.sortDetached&&b.compareDocumentPosition(a)===d?a===n||a.ownerDocument===v&&t(v,a)?-1:b===n||b.ownerDocument===v&&t(v,b)?1:k?I(k,a)-I(k,b):0:4&d?-1:1)}:function(a,b){if(a===b)return l=!0,0;var c,d=0,e=a.parentNode,f=b.parentNode,g=[a],h=[b];if(!e||!f)return a===n?-1:b===n?1:e?-1:f?1:k?I(k,a)-I(k,b):0;if(e===f)return la(a,b);c=a;while(c=c.parentNode)g.unshift(c);c=b;while(c=c.parentNode)h.unshift(c);while(g[d]===h[d])d++;return d?la(g[d],h[d]):g[d]===v?-1:h[d]===v?1:0},n):n},ga.matches=function(a,b){return ga(a,null,null,b)},ga.matchesSelector=function(a,b){if((a.ownerDocument||a)!==n&&m(a),b=b.replace(S,"='$1']"),c.matchesSelector&&p&&!A[b+" "]&&(!r||!r.test(b))&&(!q||!q.test(b)))try{var d=s.call(a,b);if(d||c.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(e){}return ga(b,n,null,[a]).length>0},ga.contains=function(a,b){return(a.ownerDocument||a)!==n&&m(a),t(a,b)},ga.attr=function(a,b){(a.ownerDocument||a)!==n&&m(a);var e=d.attrHandle[b.toLowerCase()],f=e&&C.call(d.attrHandle,b.toLowerCase())?e(a,b,!p):void 0;return void 0!==f?f:c.attributes||!p?a.getAttribute(b):(f=a.getAttributeNode(b))&&f.specified?f.value:null},ga.escape=function(a){return(a+"").replace(ba,ca)},ga.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},ga.uniqueSort=function(a){var b,d=[],e=0,f=0;if(l=!c.detectDuplicates,k=!c.sortStable&&a.slice(0),a.sort(B),l){while(b=a[f++])b===a[f]&&(e=d.push(f));while(e--)a.splice(d[e],1)}return k=null,a},e=ga.getText=function(a){var b,c="",d=0,f=a.nodeType;if(f){if(1===f||9===f||11===f){if("string"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=e(a)}else if(3===f||4===f)return a.nodeValue}else while(b=a[d++])c+=e(b);return c},d=ga.selectors={cacheLength:50,createPseudo:ia,match:V,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(_,aa),a[3]=(a[3]||a[4]||a[5]||"").replace(_,aa),"~="===a[2]&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),"nth"===a[1].slice(0,3)?(a[3]||ga.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*("even"===a[3]||"odd"===a[3])),a[5]=+(a[7]+a[8]||"odd"===a[3])):a[3]&&ga.error(a[0]),a},PSEUDO:function(a){var b,c=!a[6]&&a[2];return V.CHILD.test(a[0])?null:(a[3]?a[2]=a[4]||a[5]||"":c&&T.test(c)&&(b=g(c,!0))&&(b=c.indexOf(")",c.length-b)-c.length)&&(a[0]=a[0].slice(0,b),a[2]=c.slice(0,b)),a.slice(0,3))}},filter:{TAG:function(a){var b=a.replace(_,aa).toLowerCase();return"*"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=y[a+" "];return b||(b=new RegExp("(^|"+K+")"+a+"("+K+"|$)"))&&y(a,function(a){return b.test("string"==typeof a.className&&a.className||"undefined"!=typeof a.getAttribute&&a.getAttribute("class")||"")})},ATTR:function(a,b,c){return function(d){var e=ga.attr(d,a);return null==e?"!="===b:!b||(e+="","="===b?e===c:"!="===b?e!==c:"^="===b?c&&0===e.indexOf(c):"*="===b?c&&e.indexOf(c)>-1:"$="===b?c&&e.slice(-c.length)===c:"~="===b?(" "+e.replace(O," ")+" ").indexOf(c)>-1:"|="===b&&(e===c||e.slice(0,c.length+1)===c+"-"))}},CHILD:function(a,b,c,d,e){var f="nth"!==a.slice(0,3),g="last"!==a.slice(-4),h="of-type"===b;return 1===d&&0===e?function(a){return!!a.parentNode}:function(b,c,i){var j,k,l,m,n,o,p=f!==g?"nextSibling":"previousSibling",q=b.parentNode,r=h&&b.nodeName.toLowerCase(),s=!i&&!h,t=!1;if(q){if(f){while(p){m=b;while(m=m[p])if(h?m.nodeName.toLowerCase()===r:1===m.nodeType)return!1;o=p="only"===a&&!o&&"nextSibling"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&s){m=q,l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),j=k[a]||[],n=j[0]===w&&j[1],t=n&&j[2],m=n&&q.childNodes[n];while(m=++n&&m&&m[p]||(t=n=0)||o.pop())if(1===m.nodeType&&++t&&m===b){k[a]=[w,n,t];break}}else if(s&&(m=b,l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),j=k[a]||[],n=j[0]===w&&j[1],t=n),t===!1)while(m=++n&&m&&m[p]||(t=n=0)||o.pop())if((h?m.nodeName.toLowerCase()===r:1===m.nodeType)&&++t&&(s&&(l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),k[a]=[w,t]),m===b))break;return t-=e,t===d||t%d===0&&t/d>=0}}},PSEUDO:function(a,b){var c,e=d.pseudos[a]||d.setFilters[a.toLowerCase()]||ga.error("unsupported pseudo: "+a);return e[u]?e(b):e.length>1?(c=[a,a,"",b],d.setFilters.hasOwnProperty(a.toLowerCase())?ia(function(a,c){var d,f=e(a,b),g=f.length;while(g--)d=I(a,f[g]),a[d]=!(c[d]=f[g])}):function(a){return e(a,0,c)}):e}},pseudos:{not:ia(function(a){var b=[],c=[],d=h(a.replace(P,"$1"));return d[u]?ia(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)(f=g[h])&&(a[h]=!(b[h]=f))}):function(a,e,f){return b[0]=a,d(b,null,f,c),b[0]=null,!c.pop()}}),has:ia(function(a){return function(b){return ga(a,b).length>0}}),contains:ia(function(a){return a=a.replace(_,aa),function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)>-1}}),lang:ia(function(a){return U.test(a||"")||ga.error("unsupported lang: "+a),a=a.replace(_,aa).toLowerCase(),function(b){var c;do if(c=p?b.lang:b.getAttribute("xml:lang")||b.getAttribute("lang"))return c=c.toLowerCase(),c===a||0===c.indexOf(a+"-");while((b=b.parentNode)&&1===b.nodeType);return!1}}),target:function(b){var c=a.location&&a.location.hash;return c&&c.slice(1)===b.id},root:function(a){return a===o},focus:function(a){return a===n.activeElement&&(!n.hasFocus||n.hasFocus())&&!!(a.type||a.href||~a.tabIndex)},enabled:oa(!1),disabled:oa(!0),checked:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&!!a.checked||"option"===b&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType<6)return!1;return!0},parent:function(a){return!d.pseudos.empty(a)},header:function(a){return X.test(a.nodeName)},input:function(a){return W.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&"button"===a.type||"button"===b},text:function(a){var b;return"input"===a.nodeName.toLowerCase()&&"text"===a.type&&(null==(b=a.getAttribute("type"))||"text"===b.toLowerCase())},first:pa(function(){return[0]}),last:pa(function(a,b){return[b-1]}),eq:pa(function(a,b,c){return[c<0?c+b:c]}),even:pa(function(a,b){for(var c=0;c=0;)a.push(d);return a}),gt:pa(function(a,b,c){for(var d=c<0?c+b:c;++d1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!1;return!0}:a[0]}function va(a,b,c){for(var d=0,e=b.length;d-1&&(f[j]=!(g[j]=l))}}else r=wa(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):G.apply(g,r)})}function ya(a){for(var b,c,e,f=a.length,g=d.relative[a[0].type],h=g||d.relative[" "],i=g?1:0,k=ta(function(a){return a===b},h,!0),l=ta(function(a){return I(b,a)>-1},h,!0),m=[function(a,c,d){var e=!g&&(d||c!==j)||((b=c).nodeType?k(a,c,d):l(a,c,d));return b=null,e}];i1&&ua(m),i>1&&sa(a.slice(0,i-1).concat({value:" "===a[i-2].type?"*":""})).replace(P,"$1"),c,i0,e=a.length>0,f=function(f,g,h,i,k){var l,o,q,r=0,s="0",t=f&&[],u=[],v=j,x=f||e&&d.find.TAG("*",k),y=w+=null==v?1:Math.random()||.1,z=x.length;for(k&&(j=g===n||g||k);s!==z&&null!=(l=x[s]);s++){if(e&&l){o=0,g||l.ownerDocument===n||(m(l),h=!p);while(q=a[o++])if(q(l,g||n,h)){i.push(l);break}k&&(w=y)}c&&((l=!q&&l)&&r--,f&&t.push(l))}if(r+=s,c&&s!==r){o=0;while(q=b[o++])q(t,u,g,h);if(f){if(r>0)while(s--)t[s]||u[s]||(u[s]=E.call(i));u=wa(u)}G.apply(i,u),k&&!f&&u.length>0&&r+b.length>1&&ga.uniqueSort(i)}return k&&(w=y,j=v),t};return c?ia(f):f}return h=ga.compile=function(a,b){var c,d=[],e=[],f=A[a+" "];if(!f){b||(b=g(a)),c=b.length;while(c--)f=ya(b[c]),f[u]?d.push(f):e.push(f);f=A(a,za(e,d)),f.selector=a}return f},i=ga.select=function(a,b,c,e){var f,i,j,k,l,m="function"==typeof a&&a,n=!e&&g(a=m.selector||a);if(c=c||[],1===n.length){if(i=n[0]=n[0].slice(0),i.length>2&&"ID"===(j=i[0]).type&&9===b.nodeType&&p&&d.relative[i[1].type]){if(b=(d.find.ID(j.matches[0].replace(_,aa),b)||[])[0],!b)return c;m&&(b=b.parentNode),a=a.slice(i.shift().value.length)}f=V.needsContext.test(a)?0:i.length;while(f--){if(j=i[f],d.relative[k=j.type])break;if((l=d.find[k])&&(e=l(j.matches[0].replace(_,aa),$.test(i[0].type)&&qa(b.parentNode)||b))){if(i.splice(f,1),a=e.length&&sa(i),!a)return G.apply(c,e),c;break}}}return(m||h(a,n))(e,b,!p,c,!b||$.test(a)&&qa(b.parentNode)||b),c},c.sortStable=u.split("").sort(B).join("")===u,c.detectDuplicates=!!l,m(),c.sortDetached=ja(function(a){return 1&a.compareDocumentPosition(n.createElement("fieldset"))}),ja(function(a){return a.innerHTML="","#"===a.firstChild.getAttribute("href")})||ka("type|href|height|width",function(a,b,c){if(!c)return a.getAttribute(b,"type"===b.toLowerCase()?1:2)}),c.attributes&&ja(function(a){return a.innerHTML="",a.firstChild.setAttribute("value",""),""===a.firstChild.getAttribute("value")})||ka("value",function(a,b,c){if(!c&&"input"===a.nodeName.toLowerCase())return a.defaultValue}),ja(function(a){return null==a.getAttribute("disabled")})||ka(J,function(a,b,c){var d;if(!c)return a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),ga}(a);r.find=x,r.expr=x.selectors,r.expr[":"]=r.expr.pseudos,r.uniqueSort=r.unique=x.uniqueSort,r.text=x.getText,r.isXMLDoc=x.isXML,r.contains=x.contains,r.escapeSelector=x.escape;var y=function(a,b,c){var d=[],e=void 0!==c;while((a=a[b])&&9!==a.nodeType)if(1===a.nodeType){if(e&&r(a).is(c))break;d.push(a)}return d},z=function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c},A=r.expr.match.needsContext,B=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i,C=/^.[^:#\[\.,]*$/;function D(a,b,c){return r.isFunction(b)?r.grep(a,function(a,d){return!!b.call(a,d,a)!==c}):b.nodeType?r.grep(a,function(a){return a===b!==c}):"string"!=typeof b?r.grep(a,function(a){return i.call(b,a)>-1!==c}):C.test(b)?r.filter(b,a,c):(b=r.filter(b,a),r.grep(a,function(a){return i.call(b,a)>-1!==c&&1===a.nodeType}))}r.filter=function(a,b,c){var d=b[0];return c&&(a=":not("+a+")"),1===b.length&&1===d.nodeType?r.find.matchesSelector(d,a)?[d]:[]:r.find.matches(a,r.grep(b,function(a){return 1===a.nodeType}))},r.fn.extend({find:function(a){var b,c,d=this.length,e=this;if("string"!=typeof a)return this.pushStack(r(a).filter(function(){for(b=0;b1?r.uniqueSort(c):c},filter:function(a){return this.pushStack(D(this,a||[],!1))},not:function(a){return this.pushStack(D(this,a||[],!0))},is:function(a){return!!D(this,"string"==typeof a&&A.test(a)?r(a):a||[],!1).length}});var E,F=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/,G=r.fn.init=function(a,b,c){var e,f;if(!a)return this;if(c=c||E,"string"==typeof a){if(e="<"===a[0]&&">"===a[a.length-1]&&a.length>=3?[null,a,null]:F.exec(a),!e||!e[1]&&b)return!b||b.jquery?(b||c).find(a):this.constructor(b).find(a);if(e[1]){if(b=b instanceof r?b[0]:b,r.merge(this,r.parseHTML(e[1],b&&b.nodeType?b.ownerDocument||b:d,!0)),B.test(e[1])&&r.isPlainObject(b))for(e in b)r.isFunction(this[e])?this[e](b[e]):this.attr(e,b[e]);return this}return f=d.getElementById(e[2]),f&&(this[0]=f,this.length=1),this}return a.nodeType?(this[0]=a,this.length=1,this):r.isFunction(a)?void 0!==c.ready?c.ready(a):a(r):r.makeArray(a,this)};G.prototype=r.fn,E=r(d);var H=/^(?:parents|prev(?:Until|All))/,I={children:!0,contents:!0,next:!0,prev:!0};r.fn.extend({has:function(a){var b=r(a,this),c=b.length;return this.filter(function(){for(var a=0;a-1:1===c.nodeType&&r.find.matchesSelector(c,a))){f.push(c);break}return this.pushStack(f.length>1?r.uniqueSort(f):f)},index:function(a){return a?"string"==typeof a?i.call(r(a),this[0]):i.call(this,a.jquery?a[0]:a):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){return this.pushStack(r.uniqueSort(r.merge(this.get(),r(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}});function J(a,b){while((a=a[b])&&1!==a.nodeType);return a}r.each({parent:function(a){var b=a.parentNode;return b&&11!==b.nodeType?b:null},parents:function(a){return y(a,"parentNode")},parentsUntil:function(a,b,c){return y(a,"parentNode",c)},next:function(a){return J(a,"nextSibling")},prev:function(a){return J(a,"previousSibling")},nextAll:function(a){return y(a,"nextSibling")},prevAll:function(a){return y(a,"previousSibling")},nextUntil:function(a,b,c){return y(a,"nextSibling",c)},prevUntil:function(a,b,c){return y(a,"previousSibling",c)},siblings:function(a){return z((a.parentNode||{}).firstChild,a)},children:function(a){return z(a.firstChild)},contents:function(a){return a.contentDocument||r.merge([],a.childNodes)}},function(a,b){r.fn[a]=function(c,d){var e=r.map(this,b,c);return"Until"!==a.slice(-5)&&(d=c),d&&"string"==typeof d&&(e=r.filter(d,e)),this.length>1&&(I[a]||r.uniqueSort(e),H.test(a)&&e.reverse()),this.pushStack(e)}});var K=/[^\x20\t\r\n\f]+/g;function L(a){var b={};return r.each(a.match(K)||[],function(a,c){b[c]=!0}),b}r.Callbacks=function(a){a="string"==typeof a?L(a):r.extend({},a);var b,c,d,e,f=[],g=[],h=-1,i=function(){for(e=a.once,d=b=!0;g.length;h=-1){c=g.shift();while(++h-1)f.splice(c,1),c<=h&&h--}),this},has:function(a){return a?r.inArray(a,f)>-1:f.length>0},empty:function(){return f&&(f=[]),this},disable:function(){return e=g=[],f=c="",this},disabled:function(){return!f},lock:function(){return e=g=[],c||b||(f=c=""),this},locked:function(){return!!e},fireWith:function(a,c){return e||(c=c||[],c=[a,c.slice?c.slice():c],g.push(c),b||i()),this},fire:function(){return j.fireWith(this,arguments),this},fired:function(){return!!d}};return j};function M(a){return a}function N(a){throw a}function O(a,b,c){var d;try{a&&r.isFunction(d=a.promise)?d.call(a).done(b).fail(c):a&&r.isFunction(d=a.then)?d.call(a,b,c):b.call(void 0,a)}catch(a){c.call(void 0,a)}}r.extend({Deferred:function(b){var c=[["notify","progress",r.Callbacks("memory"),r.Callbacks("memory"),2],["resolve","done",r.Callbacks("once memory"),r.Callbacks("once memory"),0,"resolved"],["reject","fail",r.Callbacks("once memory"),r.Callbacks("once memory"),1,"rejected"]],d="pending",e={state:function(){return d},always:function(){return f.done(arguments).fail(arguments),this},"catch":function(a){return e.then(null,a)},pipe:function(){var a=arguments;return r.Deferred(function(b){r.each(c,function(c,d){var e=r.isFunction(a[d[4]])&&a[d[4]];f[d[1]](function(){var a=e&&e.apply(this,arguments);a&&r.isFunction(a.promise)?a.promise().progress(b.notify).done(b.resolve).fail(b.reject):b[d[0]+"With"](this,e?[a]:arguments)})}),a=null}).promise()},then:function(b,d,e){var f=0;function g(b,c,d,e){return function(){var h=this,i=arguments,j=function(){var a,j;if(!(b=f&&(d!==N&&(h=void 0,i=[a]),c.rejectWith(h,i))}};b?k():(r.Deferred.getStackHook&&(k.stackTrace=r.Deferred.getStackHook()),a.setTimeout(k))}}return r.Deferred(function(a){c[0][3].add(g(0,a,r.isFunction(e)?e:M,a.notifyWith)),c[1][3].add(g(0,a,r.isFunction(b)?b:M)),c[2][3].add(g(0,a,r.isFunction(d)?d:N))}).promise()},promise:function(a){return null!=a?r.extend(a,e):e}},f={};return r.each(c,function(a,b){var g=b[2],h=b[5];e[b[1]]=g.add,h&&g.add(function(){d=h},c[3-a][2].disable,c[0][2].lock),g.add(b[3].fire),f[b[0]]=function(){return f[b[0]+"With"](this===f?void 0:this,arguments),this},f[b[0]+"With"]=g.fireWith}),e.promise(f),b&&b.call(f,f),f},when:function(a){var b=arguments.length,c=b,d=Array(c),e=f.call(arguments),g=r.Deferred(),h=function(a){return function(c){d[a]=this,e[a]=arguments.length>1?f.call(arguments):c,--b||g.resolveWith(d,e)}};if(b<=1&&(O(a,g.done(h(c)).resolve,g.reject),"pending"===g.state()||r.isFunction(e[c]&&e[c].then)))return g.then();while(c--)O(e[c],h(c),g.reject);return g.promise()}});var P=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;r.Deferred.exceptionHook=function(b,c){a.console&&a.console.warn&&b&&P.test(b.name)&&a.console.warn("jQuery.Deferred exception: "+b.message,b.stack,c)},r.readyException=function(b){a.setTimeout(function(){throw b})};var Q=r.Deferred();r.fn.ready=function(a){return Q.then(a)["catch"](function(a){r.readyException(a)}),this},r.extend({isReady:!1,readyWait:1,holdReady:function(a){a?r.readyWait++:r.ready(!0)},ready:function(a){(a===!0?--r.readyWait:r.isReady)||(r.isReady=!0,a!==!0&&--r.readyWait>0||Q.resolveWith(d,[r]))}}),r.ready.then=Q.then;function R(){d.removeEventListener("DOMContentLoaded",R), +a.removeEventListener("load",R),r.ready()}"complete"===d.readyState||"loading"!==d.readyState&&!d.documentElement.doScroll?a.setTimeout(r.ready):(d.addEventListener("DOMContentLoaded",R),a.addEventListener("load",R));var S=function(a,b,c,d,e,f,g){var h=0,i=a.length,j=null==c;if("object"===r.type(c)){e=!0;for(h in c)S(a,b,h,c[h],!0,f,g)}else if(void 0!==d&&(e=!0,r.isFunction(d)||(g=!0),j&&(g?(b.call(a,d),b=null):(j=b,b=function(a,b,c){return j.call(r(a),c)})),b))for(;h1,null,!0)},removeData:function(a){return this.each(function(){W.remove(this,a)})}}),r.extend({queue:function(a,b,c){var d;if(a)return b=(b||"fx")+"queue",d=V.get(a,b),c&&(!d||r.isArray(c)?d=V.access(a,b,r.makeArray(c)):d.push(c)),d||[]},dequeue:function(a,b){b=b||"fx";var c=r.queue(a,b),d=c.length,e=c.shift(),f=r._queueHooks(a,b),g=function(){r.dequeue(a,b)};"inprogress"===e&&(e=c.shift(),d--),e&&("fx"===b&&c.unshift("inprogress"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return V.get(a,c)||V.access(a,c,{empty:r.Callbacks("once memory").add(function(){V.remove(a,[b+"queue",c])})})}}),r.fn.extend({queue:function(a,b){var c=2;return"string"!=typeof a&&(b=a,a="fx",c--),arguments.length\x20\t\r\n\f]+)/i,ka=/^$|\/(?:java|ecma)script/i,la={option:[1,""],thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};la.optgroup=la.option,la.tbody=la.tfoot=la.colgroup=la.caption=la.thead,la.th=la.td;function ma(a,b){var c;return c="undefined"!=typeof a.getElementsByTagName?a.getElementsByTagName(b||"*"):"undefined"!=typeof a.querySelectorAll?a.querySelectorAll(b||"*"):[],void 0===b||b&&r.nodeName(a,b)?r.merge([a],c):c}function na(a,b){for(var c=0,d=a.length;c-1)e&&e.push(f);else if(j=r.contains(f.ownerDocument,f),g=ma(l.appendChild(f),"script"),j&&na(g),c){k=0;while(f=g[k++])ka.test(f.type||"")&&c.push(f)}return l}!function(){var a=d.createDocumentFragment(),b=a.appendChild(d.createElement("div")),c=d.createElement("input");c.setAttribute("type","radio"),c.setAttribute("checked","checked"),c.setAttribute("name","t"),b.appendChild(c),o.checkClone=b.cloneNode(!0).cloneNode(!0).lastChild.checked,b.innerHTML="",o.noCloneChecked=!!b.cloneNode(!0).lastChild.defaultValue}();var qa=d.documentElement,ra=/^key/,sa=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,ta=/^([^.]*)(?:\.(.+)|)/;function ua(){return!0}function va(){return!1}function wa(){try{return d.activeElement}catch(a){}}function xa(a,b,c,d,e,f){var g,h;if("object"==typeof b){"string"!=typeof c&&(d=d||c,c=void 0);for(h in b)xa(a,h,c,d,b[h],f);return a}if(null==d&&null==e?(e=c,d=c=void 0):null==e&&("string"==typeof c?(e=d,d=void 0):(e=d,d=c,c=void 0)),e===!1)e=va;else if(!e)return a;return 1===f&&(g=e,e=function(a){return r().off(a),g.apply(this,arguments)},e.guid=g.guid||(g.guid=r.guid++)),a.each(function(){r.event.add(this,b,e,d,c)})}r.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q=V.get(a);if(q){c.handler&&(f=c,c=f.handler,e=f.selector),e&&r.find.matchesSelector(qa,e),c.guid||(c.guid=r.guid++),(i=q.events)||(i=q.events={}),(g=q.handle)||(g=q.handle=function(b){return"undefined"!=typeof r&&r.event.triggered!==b.type?r.event.dispatch.apply(a,arguments):void 0}),b=(b||"").match(K)||[""],j=b.length;while(j--)h=ta.exec(b[j])||[],n=p=h[1],o=(h[2]||"").split(".").sort(),n&&(l=r.event.special[n]||{},n=(e?l.delegateType:l.bindType)||n,l=r.event.special[n]||{},k=r.extend({type:n,origType:p,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&r.expr.match.needsContext.test(e),namespace:o.join(".")},f),(m=i[n])||(m=i[n]=[],m.delegateCount=0,l.setup&&l.setup.call(a,d,o,g)!==!1||a.addEventListener&&a.addEventListener(n,g)),l.add&&(l.add.call(a,k),k.handler.guid||(k.handler.guid=c.guid)),e?m.splice(m.delegateCount++,0,k):m.push(k),r.event.global[n]=!0)}},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q=V.hasData(a)&&V.get(a);if(q&&(i=q.events)){b=(b||"").match(K)||[""],j=b.length;while(j--)if(h=ta.exec(b[j])||[],n=p=h[1],o=(h[2]||"").split(".").sort(),n){l=r.event.special[n]||{},n=(d?l.delegateType:l.bindType)||n,m=i[n]||[],h=h[2]&&new RegExp("(^|\\.)"+o.join("\\.(?:.*\\.|)")+"(\\.|$)"),g=f=m.length;while(f--)k=m[f],!e&&p!==k.origType||c&&c.guid!==k.guid||h&&!h.test(k.namespace)||d&&d!==k.selector&&("**"!==d||!k.selector)||(m.splice(f,1),k.selector&&m.delegateCount--,l.remove&&l.remove.call(a,k));g&&!m.length&&(l.teardown&&l.teardown.call(a,o,q.handle)!==!1||r.removeEvent(a,n,q.handle),delete i[n])}else for(n in i)r.event.remove(a,n+b[j],c,d,!0);r.isEmptyObject(i)&&V.remove(a,"handle events")}},dispatch:function(a){var b=r.event.fix(a),c,d,e,f,g,h,i=new Array(arguments.length),j=(V.get(this,"events")||{})[b.type]||[],k=r.event.special[b.type]||{};for(i[0]=b,c=1;c=1))for(;j!==this;j=j.parentNode||this)if(1===j.nodeType&&("click"!==a.type||j.disabled!==!0)){for(f=[],g={},c=0;c-1:r.find(e,this,null,[j]).length),g[e]&&f.push(d);f.length&&h.push({elem:j,handlers:f})}return j=this,i\x20\t\r\n\f]*)[^>]*)\/>/gi,za=/\s*$/g;function Da(a,b){return r.nodeName(a,"table")&&r.nodeName(11!==b.nodeType?b:b.firstChild,"tr")?a.getElementsByTagName("tbody")[0]||a:a}function Ea(a){return a.type=(null!==a.getAttribute("type"))+"/"+a.type,a}function Fa(a){var b=Ba.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function Ga(a,b){var c,d,e,f,g,h,i,j;if(1===b.nodeType){if(V.hasData(a)&&(f=V.access(a),g=V.set(b,f),j=f.events)){delete g.handle,g.events={};for(e in j)for(c=0,d=j[e].length;c1&&"string"==typeof q&&!o.checkClone&&Aa.test(q))return a.each(function(e){var f=a.eq(e);s&&(b[0]=q.call(this,e,f.html())),Ia(f,b,c,d)});if(m&&(e=pa(b,a[0].ownerDocument,!1,a,d),f=e.firstChild,1===e.childNodes.length&&(e=f),f||d)){for(h=r.map(ma(e,"script"),Ea),i=h.length;l")},clone:function(a,b,c){var d,e,f,g,h=a.cloneNode(!0),i=r.contains(a.ownerDocument,a);if(!(o.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||r.isXMLDoc(a)))for(g=ma(h),f=ma(a),d=0,e=f.length;d0&&na(g,!i&&ma(a,"script")),h},cleanData:function(a){for(var b,c,d,e=r.event.special,f=0;void 0!==(c=a[f]);f++)if(T(c)){if(b=c[V.expando]){if(b.events)for(d in b.events)e[d]?r.event.remove(c,d):r.removeEvent(c,d,b.handle);c[V.expando]=void 0}c[W.expando]&&(c[W.expando]=void 0)}}}),r.fn.extend({detach:function(a){return Ja(this,a,!0)},remove:function(a){return Ja(this,a)},text:function(a){return S(this,function(a){return void 0===a?r.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=a)})},null,a,arguments.length)},append:function(){return Ia(this,arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=Da(this,a);b.appendChild(a)}})},prepend:function(){return Ia(this,arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=Da(this,a);b.insertBefore(a,b.firstChild)}})},before:function(){return Ia(this,arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this)})},after:function(){return Ia(this,arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this.nextSibling)})},empty:function(){for(var a,b=0;null!=(a=this[b]);b++)1===a.nodeType&&(r.cleanData(ma(a,!1)),a.textContent="");return this},clone:function(a,b){return a=null!=a&&a,b=null==b?a:b,this.map(function(){return r.clone(this,a,b)})},html:function(a){return S(this,function(a){var b=this[0]||{},c=0,d=this.length;if(void 0===a&&1===b.nodeType)return b.innerHTML;if("string"==typeof a&&!za.test(a)&&!la[(ja.exec(a)||["",""])[1].toLowerCase()]){a=r.htmlPrefilter(a);try{for(;c1)}});function Ya(a,b,c,d,e){return new Ya.prototype.init(a,b,c,d,e)}r.Tween=Ya,Ya.prototype={constructor:Ya,init:function(a,b,c,d,e,f){this.elem=a,this.prop=c,this.easing=e||r.easing._default,this.options=b,this.start=this.now=this.cur(),this.end=d,this.unit=f||(r.cssNumber[c]?"":"px")},cur:function(){var a=Ya.propHooks[this.prop];return a&&a.get?a.get(this):Ya.propHooks._default.get(this)},run:function(a){var b,c=Ya.propHooks[this.prop];return this.options.duration?this.pos=b=r.easing[this.easing](a,this.options.duration*a,0,1,this.options.duration):this.pos=b=a,this.now=(this.end-this.start)*b+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),c&&c.set?c.set(this):Ya.propHooks._default.set(this),this}},Ya.prototype.init.prototype=Ya.prototype,Ya.propHooks={_default:{get:function(a){var b;return 1!==a.elem.nodeType||null!=a.elem[a.prop]&&null==a.elem.style[a.prop]?a.elem[a.prop]:(b=r.css(a.elem,a.prop,""),b&&"auto"!==b?b:0)},set:function(a){r.fx.step[a.prop]?r.fx.step[a.prop](a):1!==a.elem.nodeType||null==a.elem.style[r.cssProps[a.prop]]&&!r.cssHooks[a.prop]?a.elem[a.prop]=a.now:r.style(a.elem,a.prop,a.now+a.unit)}}},Ya.propHooks.scrollTop=Ya.propHooks.scrollLeft={set:function(a){a.elem.nodeType&&a.elem.parentNode&&(a.elem[a.prop]=a.now)}},r.easing={linear:function(a){return a},swing:function(a){return.5-Math.cos(a*Math.PI)/2},_default:"swing"},r.fx=Ya.prototype.init,r.fx.step={};var Za,$a,_a=/^(?:toggle|show|hide)$/,ab=/queueHooks$/;function bb(){$a&&(a.requestAnimationFrame(bb),r.fx.tick())}function cb(){return a.setTimeout(function(){Za=void 0}),Za=r.now()}function db(a,b){var c,d=0,e={height:a};for(b=b?1:0;d<4;d+=2-b)c=ba[d],e["margin"+c]=e["padding"+c]=a;return b&&(e.opacity=e.width=a),e}function eb(a,b,c){for(var d,e=(hb.tweeners[b]||[]).concat(hb.tweeners["*"]),f=0,g=e.length;f1)},removeAttr:function(a){return this.each(function(){r.removeAttr(this,a)})}}),r.extend({attr:function(a,b,c){var d,e,f=a.nodeType;if(3!==f&&8!==f&&2!==f)return"undefined"==typeof a.getAttribute?r.prop(a,b,c):(1===f&&r.isXMLDoc(a)||(e=r.attrHooks[b.toLowerCase()]||(r.expr.match.bool.test(b)?ib:void 0)), +void 0!==c?null===c?void r.removeAttr(a,b):e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:(a.setAttribute(b,c+""),c):e&&"get"in e&&null!==(d=e.get(a,b))?d:(d=r.find.attr(a,b),null==d?void 0:d))},attrHooks:{type:{set:function(a,b){if(!o.radioValue&&"radio"===b&&r.nodeName(a,"input")){var c=a.value;return a.setAttribute("type",b),c&&(a.value=c),b}}}},removeAttr:function(a,b){var c,d=0,e=b&&b.match(K);if(e&&1===a.nodeType)while(c=e[d++])a.removeAttribute(c)}}),ib={set:function(a,b,c){return b===!1?r.removeAttr(a,c):a.setAttribute(c,c),c}},r.each(r.expr.match.bool.source.match(/\w+/g),function(a,b){var c=jb[b]||r.find.attr;jb[b]=function(a,b,d){var e,f,g=b.toLowerCase();return d||(f=jb[g],jb[g]=e,e=null!=c(a,b,d)?g:null,jb[g]=f),e}});var kb=/^(?:input|select|textarea|button)$/i,lb=/^(?:a|area)$/i;r.fn.extend({prop:function(a,b){return S(this,r.prop,a,b,arguments.length>1)},removeProp:function(a){return this.each(function(){delete this[r.propFix[a]||a]})}}),r.extend({prop:function(a,b,c){var d,e,f=a.nodeType;if(3!==f&&8!==f&&2!==f)return 1===f&&r.isXMLDoc(a)||(b=r.propFix[b]||b,e=r.propHooks[b]),void 0!==c?e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:a[b]=c:e&&"get"in e&&null!==(d=e.get(a,b))?d:a[b]},propHooks:{tabIndex:{get:function(a){var b=r.find.attr(a,"tabindex");return b?parseInt(b,10):kb.test(a.nodeName)||lb.test(a.nodeName)&&a.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}}),o.optSelected||(r.propHooks.selected={get:function(a){var b=a.parentNode;return b&&b.parentNode&&b.parentNode.selectedIndex,null},set:function(a){var b=a.parentNode;b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex)}}),r.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){r.propFix[this.toLowerCase()]=this});function mb(a){var b=a.match(K)||[];return b.join(" ")}function nb(a){return a.getAttribute&&a.getAttribute("class")||""}r.fn.extend({addClass:function(a){var b,c,d,e,f,g,h,i=0;if(r.isFunction(a))return this.each(function(b){r(this).addClass(a.call(this,b,nb(this)))});if("string"==typeof a&&a){b=a.match(K)||[];while(c=this[i++])if(e=nb(c),d=1===c.nodeType&&" "+mb(e)+" "){g=0;while(f=b[g++])d.indexOf(" "+f+" ")<0&&(d+=f+" ");h=mb(d),e!==h&&c.setAttribute("class",h)}}return this},removeClass:function(a){var b,c,d,e,f,g,h,i=0;if(r.isFunction(a))return this.each(function(b){r(this).removeClass(a.call(this,b,nb(this)))});if(!arguments.length)return this.attr("class","");if("string"==typeof a&&a){b=a.match(K)||[];while(c=this[i++])if(e=nb(c),d=1===c.nodeType&&" "+mb(e)+" "){g=0;while(f=b[g++])while(d.indexOf(" "+f+" ")>-1)d=d.replace(" "+f+" "," ");h=mb(d),e!==h&&c.setAttribute("class",h)}}return this},toggleClass:function(a,b){var c=typeof a;return"boolean"==typeof b&&"string"===c?b?this.addClass(a):this.removeClass(a):r.isFunction(a)?this.each(function(c){r(this).toggleClass(a.call(this,c,nb(this),b),b)}):this.each(function(){var b,d,e,f;if("string"===c){d=0,e=r(this),f=a.match(K)||[];while(b=f[d++])e.hasClass(b)?e.removeClass(b):e.addClass(b)}else void 0!==a&&"boolean"!==c||(b=nb(this),b&&V.set(this,"__className__",b),this.setAttribute&&this.setAttribute("class",b||a===!1?"":V.get(this,"__className__")||""))})},hasClass:function(a){var b,c,d=0;b=" "+a+" ";while(c=this[d++])if(1===c.nodeType&&(" "+mb(nb(c))+" ").indexOf(b)>-1)return!0;return!1}});var ob=/\r/g;r.fn.extend({val:function(a){var b,c,d,e=this[0];{if(arguments.length)return d=r.isFunction(a),this.each(function(c){var e;1===this.nodeType&&(e=d?a.call(this,c,r(this).val()):a,null==e?e="":"number"==typeof e?e+="":r.isArray(e)&&(e=r.map(e,function(a){return null==a?"":a+""})),b=r.valHooks[this.type]||r.valHooks[this.nodeName.toLowerCase()],b&&"set"in b&&void 0!==b.set(this,e,"value")||(this.value=e))});if(e)return b=r.valHooks[e.type]||r.valHooks[e.nodeName.toLowerCase()],b&&"get"in b&&void 0!==(c=b.get(e,"value"))?c:(c=e.value,"string"==typeof c?c.replace(ob,""):null==c?"":c)}}}),r.extend({valHooks:{option:{get:function(a){var b=r.find.attr(a,"value");return null!=b?b:mb(r.text(a))}},select:{get:function(a){var b,c,d,e=a.options,f=a.selectedIndex,g="select-one"===a.type,h=g?null:[],i=g?f+1:e.length;for(d=f<0?i:g?f:0;d-1)&&(c=!0);return c||(a.selectedIndex=-1),f}}}}),r.each(["radio","checkbox"],function(){r.valHooks[this]={set:function(a,b){if(r.isArray(b))return a.checked=r.inArray(r(a).val(),b)>-1}},o.checkOn||(r.valHooks[this].get=function(a){return null===a.getAttribute("value")?"on":a.value})});var pb=/^(?:focusinfocus|focusoutblur)$/;r.extend(r.event,{trigger:function(b,c,e,f){var g,h,i,j,k,m,n,o=[e||d],p=l.call(b,"type")?b.type:b,q=l.call(b,"namespace")?b.namespace.split("."):[];if(h=i=e=e||d,3!==e.nodeType&&8!==e.nodeType&&!pb.test(p+r.event.triggered)&&(p.indexOf(".")>-1&&(q=p.split("."),p=q.shift(),q.sort()),k=p.indexOf(":")<0&&"on"+p,b=b[r.expando]?b:new r.Event(p,"object"==typeof b&&b),b.isTrigger=f?2:3,b.namespace=q.join("."),b.rnamespace=b.namespace?new RegExp("(^|\\.)"+q.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,b.result=void 0,b.target||(b.target=e),c=null==c?[b]:r.makeArray(c,[b]),n=r.event.special[p]||{},f||!n.trigger||n.trigger.apply(e,c)!==!1)){if(!f&&!n.noBubble&&!r.isWindow(e)){for(j=n.delegateType||p,pb.test(j+p)||(h=h.parentNode);h;h=h.parentNode)o.push(h),i=h;i===(e.ownerDocument||d)&&o.push(i.defaultView||i.parentWindow||a)}g=0;while((h=o[g++])&&!b.isPropagationStopped())b.type=g>1?j:n.bindType||p,m=(V.get(h,"events")||{})[b.type]&&V.get(h,"handle"),m&&m.apply(h,c),m=k&&h[k],m&&m.apply&&T(h)&&(b.result=m.apply(h,c),b.result===!1&&b.preventDefault());return b.type=p,f||b.isDefaultPrevented()||n._default&&n._default.apply(o.pop(),c)!==!1||!T(e)||k&&r.isFunction(e[p])&&!r.isWindow(e)&&(i=e[k],i&&(e[k]=null),r.event.triggered=p,e[p](),r.event.triggered=void 0,i&&(e[k]=i)),b.result}},simulate:function(a,b,c){var d=r.extend(new r.Event,c,{type:a,isSimulated:!0});r.event.trigger(d,null,b)}}),r.fn.extend({trigger:function(a,b){return this.each(function(){r.event.trigger(a,b,this)})},triggerHandler:function(a,b){var c=this[0];if(c)return r.event.trigger(a,b,c,!0)}}),r.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(a,b){r.fn[b]=function(a,c){return arguments.length>0?this.on(b,null,a,c):this.trigger(b)}}),r.fn.extend({hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}}),o.focusin="onfocusin"in a,o.focusin||r.each({focus:"focusin",blur:"focusout"},function(a,b){var c=function(a){r.event.simulate(b,a.target,r.event.fix(a))};r.event.special[b]={setup:function(){var d=this.ownerDocument||this,e=V.access(d,b);e||d.addEventListener(a,c,!0),V.access(d,b,(e||0)+1)},teardown:function(){var d=this.ownerDocument||this,e=V.access(d,b)-1;e?V.access(d,b,e):(d.removeEventListener(a,c,!0),V.remove(d,b))}}});var qb=a.location,rb=r.now(),sb=/\?/;r.parseXML=function(b){var c;if(!b||"string"!=typeof b)return null;try{c=(new a.DOMParser).parseFromString(b,"text/xml")}catch(d){c=void 0}return c&&!c.getElementsByTagName("parsererror").length||r.error("Invalid XML: "+b),c};var tb=/\[\]$/,ub=/\r?\n/g,vb=/^(?:submit|button|image|reset|file)$/i,wb=/^(?:input|select|textarea|keygen)/i;function xb(a,b,c,d){var e;if(r.isArray(b))r.each(b,function(b,e){c||tb.test(a)?d(a,e):xb(a+"["+("object"==typeof e&&null!=e?b:"")+"]",e,c,d)});else if(c||"object"!==r.type(b))d(a,b);else for(e in b)xb(a+"["+e+"]",b[e],c,d)}r.param=function(a,b){var c,d=[],e=function(a,b){var c=r.isFunction(b)?b():b;d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(null==c?"":c)};if(r.isArray(a)||a.jquery&&!r.isPlainObject(a))r.each(a,function(){e(this.name,this.value)});else for(c in a)xb(c,a[c],b,e);return d.join("&")},r.fn.extend({serialize:function(){return r.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var a=r.prop(this,"elements");return a?r.makeArray(a):this}).filter(function(){var a=this.type;return this.name&&!r(this).is(":disabled")&&wb.test(this.nodeName)&&!vb.test(a)&&(this.checked||!ia.test(a))}).map(function(a,b){var c=r(this).val();return null==c?null:r.isArray(c)?r.map(c,function(a){return{name:b.name,value:a.replace(ub,"\r\n")}}):{name:b.name,value:c.replace(ub,"\r\n")}}).get()}});var yb=/%20/g,zb=/#.*$/,Ab=/([?&])_=[^&]*/,Bb=/^(.*?):[ \t]*([^\r\n]*)$/gm,Cb=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Db=/^(?:GET|HEAD)$/,Eb=/^\/\//,Fb={},Gb={},Hb="*/".concat("*"),Ib=d.createElement("a");Ib.href=qb.href;function Jb(a){return function(b,c){"string"!=typeof b&&(c=b,b="*");var d,e=0,f=b.toLowerCase().match(K)||[];if(r.isFunction(c))while(d=f[e++])"+"===d[0]?(d=d.slice(1)||"*",(a[d]=a[d]||[]).unshift(c)):(a[d]=a[d]||[]).push(c)}}function Kb(a,b,c,d){var e={},f=a===Gb;function g(h){var i;return e[h]=!0,r.each(a[h]||[],function(a,h){var j=h(b,c,d);return"string"!=typeof j||f||e[j]?f?!(i=j):void 0:(b.dataTypes.unshift(j),g(j),!1)}),i}return g(b.dataTypes[0])||!e["*"]&&g("*")}function Lb(a,b){var c,d,e=r.ajaxSettings.flatOptions||{};for(c in b)void 0!==b[c]&&((e[c]?a:d||(d={}))[c]=b[c]);return d&&r.extend(!0,a,d),a}function Mb(a,b,c){var d,e,f,g,h=a.contents,i=a.dataTypes;while("*"===i[0])i.shift(),void 0===d&&(d=a.mimeType||b.getResponseHeader("Content-Type"));if(d)for(e in h)if(h[e]&&h[e].test(d)){i.unshift(e);break}if(i[0]in c)f=i[0];else{for(e in c){if(!i[0]||a.converters[e+" "+i[0]]){f=e;break}g||(g=e)}f=f||g}if(f)return f!==i[0]&&i.unshift(f),c[f]}function Nb(a,b,c,d){var e,f,g,h,i,j={},k=a.dataTypes.slice();if(k[1])for(g in a.converters)j[g.toLowerCase()]=a.converters[g];f=k.shift();while(f)if(a.responseFields[f]&&(c[a.responseFields[f]]=b),!i&&d&&a.dataFilter&&(b=a.dataFilter(b,a.dataType)),i=f,f=k.shift())if("*"===f)f=i;else if("*"!==i&&i!==f){if(g=j[i+" "+f]||j["* "+f],!g)for(e in j)if(h=e.split(" "),h[1]===f&&(g=j[i+" "+h[0]]||j["* "+h[0]])){g===!0?g=j[e]:j[e]!==!0&&(f=h[0],k.unshift(h[1]));break}if(g!==!0)if(g&&a["throws"])b=g(b);else try{b=g(b)}catch(l){return{state:"parsererror",error:g?l:"No conversion from "+i+" to "+f}}}return{state:"success",data:b}}r.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:qb.href,type:"GET",isLocal:Cb.test(qb.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Hb,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":r.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(a,b){return b?Lb(Lb(a,r.ajaxSettings),b):Lb(r.ajaxSettings,a)},ajaxPrefilter:Jb(Fb),ajaxTransport:Jb(Gb),ajax:function(b,c){"object"==typeof b&&(c=b,b=void 0),c=c||{};var e,f,g,h,i,j,k,l,m,n,o=r.ajaxSetup({},c),p=o.context||o,q=o.context&&(p.nodeType||p.jquery)?r(p):r.event,s=r.Deferred(),t=r.Callbacks("once memory"),u=o.statusCode||{},v={},w={},x="canceled",y={readyState:0,getResponseHeader:function(a){var b;if(k){if(!h){h={};while(b=Bb.exec(g))h[b[1].toLowerCase()]=b[2]}b=h[a.toLowerCase()]}return null==b?null:b},getAllResponseHeaders:function(){return k?g:null},setRequestHeader:function(a,b){return null==k&&(a=w[a.toLowerCase()]=w[a.toLowerCase()]||a,v[a]=b),this},overrideMimeType:function(a){return null==k&&(o.mimeType=a),this},statusCode:function(a){var b;if(a)if(k)y.always(a[y.status]);else for(b in a)u[b]=[u[b],a[b]];return this},abort:function(a){var b=a||x;return e&&e.abort(b),A(0,b),this}};if(s.promise(y),o.url=((b||o.url||qb.href)+"").replace(Eb,qb.protocol+"//"),o.type=c.method||c.type||o.method||o.type,o.dataTypes=(o.dataType||"*").toLowerCase().match(K)||[""],null==o.crossDomain){j=d.createElement("a");try{j.href=o.url,j.href=j.href,o.crossDomain=Ib.protocol+"//"+Ib.host!=j.protocol+"//"+j.host}catch(z){o.crossDomain=!0}}if(o.data&&o.processData&&"string"!=typeof o.data&&(o.data=r.param(o.data,o.traditional)),Kb(Fb,o,c,y),k)return y;l=r.event&&o.global,l&&0===r.active++&&r.event.trigger("ajaxStart"),o.type=o.type.toUpperCase(),o.hasContent=!Db.test(o.type),f=o.url.replace(zb,""),o.hasContent?o.data&&o.processData&&0===(o.contentType||"").indexOf("application/x-www-form-urlencoded")&&(o.data=o.data.replace(yb,"+")):(n=o.url.slice(f.length),o.data&&(f+=(sb.test(f)?"&":"?")+o.data,delete o.data),o.cache===!1&&(f=f.replace(Ab,"$1"),n=(sb.test(f)?"&":"?")+"_="+rb++ +n),o.url=f+n),o.ifModified&&(r.lastModified[f]&&y.setRequestHeader("If-Modified-Since",r.lastModified[f]),r.etag[f]&&y.setRequestHeader("If-None-Match",r.etag[f])),(o.data&&o.hasContent&&o.contentType!==!1||c.contentType)&&y.setRequestHeader("Content-Type",o.contentType),y.setRequestHeader("Accept",o.dataTypes[0]&&o.accepts[o.dataTypes[0]]?o.accepts[o.dataTypes[0]]+("*"!==o.dataTypes[0]?", "+Hb+"; q=0.01":""):o.accepts["*"]);for(m in o.headers)y.setRequestHeader(m,o.headers[m]);if(o.beforeSend&&(o.beforeSend.call(p,y,o)===!1||k))return y.abort();if(x="abort",t.add(o.complete),y.done(o.success),y.fail(o.error),e=Kb(Gb,o,c,y)){if(y.readyState=1,l&&q.trigger("ajaxSend",[y,o]),k)return y;o.async&&o.timeout>0&&(i=a.setTimeout(function(){y.abort("timeout")},o.timeout));try{k=!1,e.send(v,A)}catch(z){if(k)throw z;A(-1,z)}}else A(-1,"No Transport");function A(b,c,d,h){var j,m,n,v,w,x=c;k||(k=!0,i&&a.clearTimeout(i),e=void 0,g=h||"",y.readyState=b>0?4:0,j=b>=200&&b<300||304===b,d&&(v=Mb(o,y,d)),v=Nb(o,v,y,j),j?(o.ifModified&&(w=y.getResponseHeader("Last-Modified"),w&&(r.lastModified[f]=w),w=y.getResponseHeader("etag"),w&&(r.etag[f]=w)),204===b||"HEAD"===o.type?x="nocontent":304===b?x="notmodified":(x=v.state,m=v.data,n=v.error,j=!n)):(n=x,!b&&x||(x="error",b<0&&(b=0))),y.status=b,y.statusText=(c||x)+"",j?s.resolveWith(p,[m,x,y]):s.rejectWith(p,[y,x,n]),y.statusCode(u),u=void 0,l&&q.trigger(j?"ajaxSuccess":"ajaxError",[y,o,j?m:n]),t.fireWith(p,[y,x]),l&&(q.trigger("ajaxComplete",[y,o]),--r.active||r.event.trigger("ajaxStop")))}return y},getJSON:function(a,b,c){return r.get(a,b,c,"json")},getScript:function(a,b){return r.get(a,void 0,b,"script")}}),r.each(["get","post"],function(a,b){r[b]=function(a,c,d,e){return r.isFunction(c)&&(e=e||d,d=c,c=void 0),r.ajax(r.extend({url:a,type:b,dataType:e,data:c,success:d},r.isPlainObject(a)&&a))}}),r._evalUrl=function(a){return r.ajax({url:a,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,"throws":!0})},r.fn.extend({wrapAll:function(a){var b;return this[0]&&(r.isFunction(a)&&(a=a.call(this[0])),b=r(a,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstElementChild)a=a.firstElementChild;return a}).append(this)),this},wrapInner:function(a){return r.isFunction(a)?this.each(function(b){r(this).wrapInner(a.call(this,b))}):this.each(function(){var b=r(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=r.isFunction(a);return this.each(function(c){r(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(a){return this.parent(a).not("body").each(function(){r(this).replaceWith(this.childNodes)}),this}}),r.expr.pseudos.hidden=function(a){return!r.expr.pseudos.visible(a)},r.expr.pseudos.visible=function(a){return!!(a.offsetWidth||a.offsetHeight||a.getClientRects().length)},r.ajaxSettings.xhr=function(){try{return new a.XMLHttpRequest}catch(b){}};var Ob={0:200,1223:204},Pb=r.ajaxSettings.xhr();o.cors=!!Pb&&"withCredentials"in Pb,o.ajax=Pb=!!Pb,r.ajaxTransport(function(b){var c,d;if(o.cors||Pb&&!b.crossDomain)return{send:function(e,f){var g,h=b.xhr();if(h.open(b.type,b.url,b.async,b.username,b.password),b.xhrFields)for(g in b.xhrFields)h[g]=b.xhrFields[g];b.mimeType&&h.overrideMimeType&&h.overrideMimeType(b.mimeType),b.crossDomain||e["X-Requested-With"]||(e["X-Requested-With"]="XMLHttpRequest");for(g in e)h.setRequestHeader(g,e[g]);c=function(a){return function(){c&&(c=d=h.onload=h.onerror=h.onabort=h.onreadystatechange=null,"abort"===a?h.abort():"error"===a?"number"!=typeof h.status?f(0,"error"):f(h.status,h.statusText):f(Ob[h.status]||h.status,h.statusText,"text"!==(h.responseType||"text")||"string"!=typeof h.responseText?{binary:h.response}:{text:h.responseText},h.getAllResponseHeaders()))}},h.onload=c(),d=h.onerror=c("error"),void 0!==h.onabort?h.onabort=d:h.onreadystatechange=function(){4===h.readyState&&a.setTimeout(function(){c&&d()})},c=c("abort");try{h.send(b.hasContent&&b.data||null)}catch(i){if(c)throw i}},abort:function(){c&&c()}}}),r.ajaxPrefilter(function(a){a.crossDomain&&(a.contents.script=!1)}),r.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(a){return r.globalEval(a),a}}}),r.ajaxPrefilter("script",function(a){void 0===a.cache&&(a.cache=!1),a.crossDomain&&(a.type="GET")}),r.ajaxTransport("script",function(a){if(a.crossDomain){var b,c;return{send:function(e,f){b=r(" From 809b7b1b9da0c93976d6a6a6fe102c8cdcc7ada4 Mon Sep 17 00:00:00 2001 From: NebulaOnion Date: Wed, 28 Dec 2022 18:17:06 +0000 Subject: [PATCH 033/169] Add our logo asset --- assets/img/Anonymouslandrescalednobg.png | Bin 0 -> 19220 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 assets/img/Anonymouslandrescalednobg.png diff --git a/assets/img/Anonymouslandrescalednobg.png b/assets/img/Anonymouslandrescalednobg.png new file mode 100644 index 0000000000000000000000000000000000000000..4a109f4a9c0ce8a38b2aa469329b6c7a08cc3e5f GIT binary patch literal 19220 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

I|%9bk>cFQBe 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 l0t3Zu$;cWgj>FVU^SZ|L@`wufF^6CHp literal 0 HcmV?d00001 From cd130e556e9f54ee6642b91a96d5c1911d535598 Mon Sep 17 00:00:00 2001 From: NebulaOnion <84784521+nebulaonion@users.noreply.github.com> Date: Wed, 28 Dec 2022 19:52:08 +0000 Subject: [PATCH 034/169] Rename logo and add to README.md --- README.md | 4 ++++ ...slandrescalednobg.png => anonymousland_logo.png} | Bin 2 files changed, 4 insertions(+) rename assets/img/{Anonymouslandrescalednobg.png => anonymousland_logo.png} (100%) diff --git a/README.md b/README.md index ac1cdaf..be76886 100644 --- a/README.md +++ b/README.md @@ -4,6 +4,10 @@

+![Anonymousland logo](/assets/img/anonymousland_logo.png "Anonymousland logo") + +
+ [![Build Status](https://drone.anonymousland.org/api/badges/anonymousland/anonymousland/status.svg)](https://drone.anonymousland.org/anonymousland/anonymousland) ![Website](https://img.shields.io/website?down_color=red&down_message=down&style=flat-square&up_color=green&up_message=up&url=https%3A%2F%2Fanonymousland.org%2F) ![Security Headers](https://img.shields.io/security-headers?style=flat-square&url=https%3A%2F%2Fanonymousland.org%2F) diff --git a/assets/img/Anonymouslandrescalednobg.png b/assets/img/anonymousland_logo.png similarity index 100% rename from assets/img/Anonymouslandrescalednobg.png rename to assets/img/anonymousland_logo.png From e7610c3c96765b05706cf90dac0fbf2d02920b50 Mon Sep 17 00:00:00 2001 From: NebulaOnion <84784521+nebulaonion@users.noreply.github.com> Date: Wed, 28 Dec 2022 20:00:07 +0000 Subject: [PATCH 035/169] Resize logo --- assets/img/anonymousland_logo.png | Bin 19220 -> 6403 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/assets/img/anonymousland_logo.png b/assets/img/anonymousland_logo.png index 4a109f4a9c0ce8a38b2aa469329b6c7a08cc3e5f..b94e1c4cb9a51131067fe63bec71b6493b0bd4f4 100644 GIT binary patch delta 5664 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 literal 19220 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

I|%9bk>cFQBe zAdLPeIJHi8Ni-Q%3vAAq8lnh?619?5$3gT|u{^dLH62Dx^^X~!y(M_UmLG!f*|ygo z^L5A9FN^|1L~Sx}fK37@y)lKOf`ccG#b&4#2kGjX+5i;dQxvfUV4cn>sD|qmQ!NnW zDi|vSzI)oDEf;TvMir70f?twgitz-;&j#bL#|f(!)f9Ml^4(!_{FP#n;ULvaE6b+3 zna5XR$C50k>I5Gjg#ugZhI$gpMa$_gPP{++oWGwBiJI3$a^j+jh~w7l85Xhf82aa@ zot|^ssePMR=z0q>k|%pXl4v=CsJL1+j8sc-IPI=&BeO=~UiN91O}^Fd)9c{L$$9JS zVJUBARJ=XP!;uB14wLIsQ{6%`!wMl%mk;jrzMSX=-B*%pETNREo|2dijXr_$OBJ$K zp;l*GvaEJxrj7YiHBTSC6GQW&u>Z+O{cP@==d;+;A92{j>E?SACfIvS0X>tDN2)VK z4bOY83g+`T)bY@XUp7-U$0P=R7r%7;jzCX*wre{h{P9;E)<{%TS*FSlW9BfLR6phu ziR19+Kj*ATNDj_2@lpgywRyu;b-?rS!s8f=ZG$8o1>qE*sP`8<`}n7;idC;sDE*bb zW?ya+?2(eIGl4OjVkqgIbO@S$e%Q6!DbJJs@MOO|l_ps_Dv^6?|08eqkT{3r@BIDp zzG_V#-CZ9-+PI}X1@nr1)DJ7=8zlp)(QJte?-NtSlyfY1DD;_a?SIO~uR&>t>^aSdk8+cBPTWGt886 z(iy!VyCH+t<_zf)KG}cA4*%fjeiiI#%t?(z8>c6Y(%e_kE$6>J88BJXH8SJ0uuGvn zhyykK{gnNk$6bv?$q#pQQ7-?`bOt|O$Otn|P6d6rnKVb_Wn9l(YuD|a@Pk+FfjC zBc0EmIv)U83dYG}T*zh(RwjzlYzew}Vx_3mAt2PC-ad8{8V0O|BgaTU_u!F0FKjj= zTb@Y`6E&!vqmR{U*>O2vZf3Dbo=o3Zokoc6Dc6>7d!&}CfY*waz4~Gj9!E+Nbp&o` z4z|jx#5lQdmoL1z=C9T;_#%~mYo=D4hga|a(j{Wv?3K~VBNj);Q1eH`LpT4PiB5{9 z;i&l1$V_-^g~I9fQT=0kWoS2BB$io}w(teT&Hng{cVX_*OV0;ymw73uMa-U@vQm$ z(9Com+bOP&96_O!(ay1f_=!>KeBI^Ba6bQZc6N}Y;w@~XX`jVg!vhp55GBPEU@N7Uq2k4f1kw zurSnBlb2DJku=p&ceA$+5Age*oiQ@>`{Mj`VSc8p@VlRftM-TY9-r){CPuF=&;I;5 zZfUFy_Vv!QIvXPq^Xh`AG5l$czu1byR(sz6tAPKpeiRF z9U8d2ICpfor==(#5#+zJv~Y3pC;waKhqn^ztIJJw)ylF`3DFV51ATTMjn(C4v(uA( z-Carwa`*SP5bGSh6$j0XFEl@)#0S5t1NsodOH>uhVaGSWLd z*c~4oac7AqpbhMWo_eJg9TSu#pzV5Cy6(z=6 zs!_oKn;WZ*byXkrwc3BQSeqDVyoUowIX>F&`_=Ku(#-vntcdMef;G>>adScx6)<*I7oWz*O^|h7Q zh>*3_rKN?r?XC5+#Mp(o>G-JdnW>4Mt~PHMM|TI?&NisCjfIV=!RhH?VeVH`U5$+7 zgqf-F*oe@9{$Ig<-alKL+#PJ%q0P0GWqPU~es#9RMTRvu)Qk-eEHBN62l{=>NS&RY zD9X$3?QTzwjXpU(==j<4*~{HP{X>W!B=Jk+0)cySX+5=a=5d-SzTV-+ua6(!Msd|?BNj)`lR?y2@qMIgx@^_AOji6H$V^) zxfJ{X%~nd?0RS-Y@4rDnaw-u3Py*6#L_fGp@6CD2esKP|c|@MEPWDEE2U4<(#PE1^ zpK|5vBT?K^fewgNtoCQnGO3P3zAci4$M)EZuZ4-U(^bnO{bB^V_+Nc#zm`m^^^Dm6 zQfAYvCTVQ>HY7A9DRvrsbx>S9SIv~lXT#y}`_fYw#=)`CcW}PeG*Ie=1V{D%=NA+w zSq%x2IWCVCBRG*)`3wMgk~6g~ZiSj^17GW3!Ztez#*r!Goh~UNEKNLtXGuG*G=RN2 zmjxnj*RIwjosMA~@N<&|wsn(`lU?*!1lL)$TX%4eHX6vXcxj@Q$Fw;I8)=w#Fa|K`2(@f*IFS1v(<}_UAoS&uNhzCtQ4) z@LauGS%4DJ_Dc_sG1D^{bz_L(t}d-bj2k2lnYaDwwR+)dshSmpIyE?^y0_o71BCrP znsH}oi9sK7TkUS-`He~I5#prgj-&MWo{az{P*zE&X-tidQ;80`-oKOl)hSz`M*}{K zy-a>iy2jU)27-{MX;7tP#pfX*oSlfqSwUV})d2xReOj?*NZGJI$E$;r^`SM=fg-=UD}!=hyuy^**M|pLYA; zSAXHcRGX->=POe=`bG);YF;93pSe~dXDE&^?y#m)Lx#ziTUi1M&2LJ2i4vUWrCbMpyRCGie!-^^ie?C$oc3%pmxbY zRob|-0<>CZTmaX;t7gk%TVB0-$DLvB>TcfI6~Tf6HNRZuPx@ts@c5tMO21dSU$@T) zT0oRWcP@0&2U$1WOC_y^Lf@~4p{4E@gpjBUm$lco1DDeWZXM}rw~-j;8_sWh7H2#- zrD6Futqf-?veBba(D#j%y2lgtG7^7ieS&OUnzOFSdB3wS-i_7_3-;P za_b=vx!jLXTaO8UH$aZYEI!X@9FRf8ZY_zwK&V%sw9ykTytm=jG_y9)jy5E*Akk2M zOte6x7oUDo9RR!Rwg1tBqy56@4FR!I!R0)#GW@ngo_&Q+r~~DhRzaPnP12!} ze!eY(Bm&@P&g__c@^YZL)j9v{^c#Z>iMC34k`30x^Rifi1X{4kZHwMzGr52i*`QIFYo+e*^sC^BoFx9rW@u5y zV|Q5f9@!(r4+X-nI8?ditmJ%U5)%Ie%3i18l-aeJti-3y#gRU?^rrI*Eaay={X$M(nh;2`=VXAe9K|KDYZBpirX!$P+x$UMuX85|V z4qp#^UE%Sl*pg5YaA@p1T9V8+@qWc{UAyttC4%V9!WM-$L&Xc+)`iQvG|tjq&UuCm zz^= zaqY)4MFH_s)?wgtb2W-3lk&MdfSngZu(})&E|zjur}HoWB!xZZJuq9~$CtQml>dTY zu`(@(R|3)SfGOJRC5XOYng8Oghbo2~@!r$YUHtm{D41{YTlB#^*5N74i;>bx!hSJ< z#?|z^;R_?#6G-@N&fQQ=#pj_fWSHs31BG)XnPvjq`i888(#KX>e^{H=-_nSo)z~}9 z8eFtwF@6!WFDtVCE{!&P3KIe;y>NQ_L!-v`n?;xEe%*kBxSnhAIYro=Zgxw`rDzJd zuzX0EYMM-B83)LGr|#j-5Z`a`-rB?I}IyWNwTT2XAc`tQvui$$orZ&>m?p2HAz7FG@qli^*;vF&EnXW# zMK@Qq`EO}FMmxWy0>2MK;f7(lrP5nbSKK4I zH(6&uONeuz1#Pmc54Vl!I$~&c!elmaSm)QJC0eko z31hnblJuJZ)|uk1oj#nrow6w(bB1lVyIf57{yU0NT=O}*0h0}+Z;XAofhl^0Sg@ZC z{GGIQ+BI=w$MY>|g;rIaCrMP;=bAG&90f1IQG5TA&Pe)q~{uMv`jY}btWV)cfCx6j~*M;IW$3O)TF(9i9x?HXkxA8Sm zy34hj9bLcNS&TB;G^_HeoX`Kf4zUhPW##P(%($AHT6FvPu-l`{t!&@>U^?X@8CHa(hi` z$ua&W3=d7_MWmy^_sJ*jT-8wgK{+s31gP3y*a+yiXmLAS8a|BSGTc{T?zW%VrfrE4 zmR390#_)EjZ7eVO_;$;uT{1htnpibOBb^ZsK;!^eyw!iI5+sn+Z`+;c*!*<%m{OQd zuFPbl>dbXMOugB9^mMDb10S`CP25q=P=-G}b;{B7=PInJX=fd+txJnl-h7wyp~0QGlQ zX7Nf1wG}DwNd56?BA6SdJCAV~`bejc!G05bP%iEcJzN4a+bm(lci0GM@9#fAiQ zq5jC3*?w^dYB&U^5|gqv0=Rhw>UC=*b0%Vqyw5@KVJv`YTiRAPz@A#&&G749>@kEJ z%(_@9bN%QEF2E}UAc-UDMUndy+Q@yv2g)!OdHFxgqp0)OPRjvMW=N1Gut2vcaS@9O z25NwIOsF&Weq)9R040QEf}++oyDBrL?v9~IaLr{%nT)`~9@@=W#)=^-fC@ny&00DxC0rmLg$oTdP;-U$#Ow3fkoIBoKgC7v+82~y( z4aytWO0$T7B?y%m@}vu4UH-c_oLTsSC^(`;2=$B`N9D`bZW&Ynq=!KXfL!dXSxcy3 zZ{Jdb08QX^DiRU>x0CZfUa5L>)L_R4#kh$~5DFf|pFQK`W()=xaNR*fkOLbcDf2o9 zN~`b`Cb;>OdO%C0h}%L#n_**-qikkLD%=k6p&z+@rnJ7Q=}U?j!!$V%SOh>7IRqbi zB6_45>&jA$kD7cYMQwy*p#(&+puGeF2ZPhz+wzR|_cY)|fH2FL7NuKXU1l&_rz@}0 z0E;gnW*`?=Th>ddwkOmrWEH02Gw{+9%>+C}BU~-^nf+N2cyM;MAjjaA2B#I35Ry>Q z79lY2WO^C1FReLlhgqgJ^>R4lM!EkiE|7@U>A&v3sJ2_7nsujTwRFWT)(!^QqN&96ioNz z6?ZK5f=A8qlrItndrPH}w6=CaCu!sZ)r*pJ#+uO{Q%DNG)}&7ql_agT@re0aYc8fM zvNi%OrgZ6_0f-P_k^}IgAF!c@cMI$pq`@-dGEN@=VhF^yJm$?rO5CG`Pke@_uSP-q(_inBOp*r7_2VRs1!&%)0^D+Y?sK6wc68;t*q6icSyH~M{ zyr>NZz?9a&{&y@W2^j7d$O@P>@IDktAtwb0xRStwSKyFvfi6Tn8W5x$u%(K^1*yrx zXEcEb3@FOI!dYPUIb0zkw3O%{EoBjZwPgRD-o4)st_HFLAYwvwszKfNhB5(Q_?`fW z-cA;v#eKjl3~a&0aDhA|z5Hq54cvqWiF@6AAT=4_;RyiYvI5@6kKl6p2&`gO014ci zi*H39WHo``Xi%ZQcD;KbK?J@E5mSU81c2ar07Q5V_$_n4udNnP18>!U9l{~kU(;|w zdI4ofB7o&b_J5_}Y-uTyL!N{G1p)zhX@T1N5K*z=qXm@UzX2f1f9wN-9zz@o5Xz$A zYD*BG1Bmx!VKEU9xaVgXSub=O`1A+>|Emki2D(UvGldJlK#31*+iCz2{|hyg32w=~ z^e1EpBd7xv`WpT;35HAU-y<*1#s51EdZ2ewjptw3_d0QbEb!oWZXh4={>iTPFVF}K zk(Y2O_#dVUoI&XK%qi;SAuW18f+M}(>3>^8f6>DRsw;X0@H~vZ!+;LL>mZoY62QJ^ zAN&usV)4^J*n_cu9R@K3+iE)k5f4wPgpe*v5ClLagAi4NCg0v~fXfY7!x!Jj+u@nP zKN^dv;2ix#)_V*`H@F?<0FJs>?~f&tu?=uO*a=s~elKhbgp4BVA%Wm611U2c4&*=N zWvamRed#R&spY-`_~F)3!lM*2T{>{9`LN*#xa_SX@a$m%Zq69kSO%VHJq z4Id!F5FrJXmGh2))WqS?;G5is85kbzv8w-tFq}T3|FA)U=c)x*P&-P0xnPiOr*?ADJUQSuO-=VGqYNa&yXTrv%CKFq`Qm;a|9gmCzz8pJCFC-MBgw5OoK zO9DJ}#2(`FkQ9=IcyCJ=lAiEAOFTf=y<_V@MDPAOwrLvBq6Hpg?ze_GfCt4MW}vjy zAeWf`5K+QQsR#oI5)GibvOt|S5Es$!V+r0j2H;rWRUcD{6r%Q^0^T~;fbJb@2dcXtfyY+hGyp$s-7f|1XCA1BHUrp)s`uHzSzz}L7{904 z4#771K43{9Zhv!-8Q!V{!T)a^FCBpL*E(MDe>R(aXrgdlxNv+#_e0}k@B zpoI5B@H#g5PjiBl0Jba;N|1{beC0!noQdR)-Lty?BQG6g? z>3?mZ1pH9+*za}09isL(CZG=0pbM^l^@HJ=gbz6~zwe8b@IZbbK@S7Yh|7KY-FwvX zA;)guv_4GQLbU%2PcW+sF#S*Eh1UKz3_@U4wF2NR`R|JR?fF1NqW_|TGkp1#N? z;8Qi6a#ny44S)!zo*Bp~(7Iel!78NRG64chgfJi9@1;}h=0cO`RWRWEu$o(+Whsoen zDPY%wrc4vgGS1zz4*0#rOaU&$9IR)^W&UK!)B5my*^*c(aP&TlhZmo_gyaAEiDBr~pFWcH+->tdB zQ~Wx)&@H;T->2 zOZvtd`v?t!B{yh~WE%664Z2CT9(dyT0y8Ja8mz}Zb)-S);`cKR5O}P0dIB+)M}yp2 zBlZnfKnc)GPot)&AVcWXlvgi7Woe-r@jPEOx4djk0)cn*Sh@I!Q0uGhs+R|W2aHXl z`tZ@^IEfKO7EsxfeASWT7jsxIYT5bU;O4R-))1l*Lfjfr^pq2F*U}0P6>r$T6O}M( ze;|alToVgp7k!Fm*h*VRl`F~cCebmV6t zBX142^{GK+;W8u#3ndC}<&J%rqV%`i5UsJ-!0xkcd@GEdW*P?;Rxd6Z&5vZM&jBYk zjTK|fj|%84+zc^EROmS|KkUW8pt3-X;z&E)l23OVY$vaYB;x|&Y=l8&Nb;qf#@e%) zr}hWzEdB}y3M6Pta5F+@Al23dSPIjBVqPUaS(Z{EQIljxg6%qx->U)cAd`(P?J zH55r?0$NpjT#!o*n^{@)@274`Nd(|2_!|=qhNzG~6bPBF{KcwUxRk<}%(0dAZw;xO zQ9)%5(uP&cAN!1RCVFKIRf1LZn8()IMzsny{H{SW0zro+RS$( zjVGhG;ma7z2JcYUV$3?04rk?nqL-F2>qv4+4LDK}=|59(du2O7Dygr5A`fJ}k~2@v z4hP7wqY2_QQ2I&~K8O}|mSHog^!*})E(y=~qw+ioJ>xSVzFN7fl;@>tOL3GSu%x9j z-|Yd{@ZzfMjGB{JlR)>F_e7L;gn$JjI*14YnkPK5n(zLWEC*$OpO|`Ae~Z z%jTU5!M57lHJR46ls;t8oa#JE)SU=W7YJpr7%mUm|JcKl-2MS~G~))dRvYd+28_rp_4deH|2qK=(f5Kv z!YHYXXpp!!V>=A?E0}Al{kQ%}lm&iX60@%Gn8#kQ*A||x$`@IGA%ZD&Nu^McdX5Gv z`;7*{`6QUnlshxfE2RH4sCQsV|8j{0tVfV=nilUlFyJ*WYvKbbU+mE7v% zoEHtKEg|Yfwsg!qUfcNG#ew2KzPv$Jo+>aq1==j@xRE~?be5J-C~7TZMM88QS(ps9 zq6V^5Y+r9&PCkmvP%Y6zM%}lrXswhVXhx)Lj|4QnoiHYTS>1@^*GvR`o!POuu$q+x zUiTU>bd~3SpfY;8T zMTO>DLH>aSi%7lG6;&qE+wd6IVnj-#6BtG_ivC3E$@#Qq3eoMwSn2)+`R6$+M9McO z-ZPJyWw_@Supv#M<&g&;uI3P>(CvJPc5qkLy5KVqK5zJW==Zk(;o z+|e>`yl4%dmZF~v(`R$zLMV^Yc*^Rl7t3KhYQKZJF26-8VM; zB?kP=(d7|7O~nQt%!Rao&j*vuDGYT+vs!kJ_%Le3ZSL|DHoo4->`a6uE%V}{j#wA|UY{1(Df z-$&n-c}15`^!gXMH5eDDr#8T3>Ul|^3iPaX5v>u;zT%>G+`$FwwH#031;l^bv*6+< zreN#LS}jN}cdPyaBo^1VO{T{c-~-2^61j6VdT5 zP|%#i_)cEc^+ulA5Vb9eP1+pge4`Q-(wdTYCFdISw*6VPq-mt331VB~yjgYI_4pfb zX5D3L>95#GvT~Wdn}Npei_Z$w9_ErRmiQndt&Iq-T#x0%8_T$ZME8Ipj1?yt^R9~@ zZ^5jS3d4SF{jLE9eN|)TwY(CnPWk~31%a1YoM6_&PM11q)wj=!PQQB&%!O$sW{ck9 zGYi+K0|7|JcPu+RTU6WP_#Xyf3#``q4@m?S;#d$V@=NjhC3ul<-hBFK zFzAcGpUX8cC1ShAAEc;8MsXaG4e1kZzj6P<1<*;D$+u^$(_D`iZHix`Ku0|Lnnto@ z&I%T8zX<82K6{^Qo(PU^+qD&i#zFgF=M-Z}=foL;qh%+5_$3&?8}R|sWk+UUJsZXa1Pb@GX;c#4U#L!|^=gEYzZ2k^sZA&1Xko+&QoD zc5m1`1_oEtxltz_xM-^(-fD@M;VV++*`Wcxuul6aE7rj+R~tS^wOBvlL%hL=Kf1{1 z{zA&-)^x5o2TY$WF1t!L*uWwKla&ilRF{lTqS&9J!8xIbkIBvlq-UrR(L}WB>L-M) z$E(t3h!au2#Iwr{w4uWPl@>_fcTtjeciX9Dhv^T2!$vr{rZf120Zo}{*;_qzx|r%+ z58FE&QNc$p??-lBX1AT30Q(7(r*U$Xj5M_b^V!XH|S4YRHI zswNm>C$;aMgPg;2OV=<%gu^?nm{KQOoRs{0;T@uI)E1fPrx7QONWU>52eV!=wbswv z7A8IgtK_jM16+yZt)@IST#ZXA)Ge^PXwU+#OHjkUxeb z;mEfBWGH<8ZbY(M#t8FSZ2S|m6wb)=M)F6HUXS(Xn z-6ftDWmRadkQEecR#*Tk3yqH;Zd~cp1$G=EGcY}>8P2=wFEv$@?7(o}o{vl2kCDR{ z;S&@C`h7p%3U!ZPWPG~wEWHIsY2Zce5Dm`{P7ZwE2;)`jy^z)z$UZQyR0j&i-=V#! zYWh=6qN=TkwSuMM@JxE=bCo9h-eW-5*<0kPbz+v|iSB&8&k*uXz4x1wv`@MclQh8a zSTe-2tS-<@@QNkD%B1K=NPw9jIsKDV`Ep61Wg0rSow)K>pqAx<+fKLBk~k580w{!h`;Ox@+rD0qC&fj_W-SOS<6x zP{Y@rWn$g3n=Gi%p6Z0^s5+dWisU?y+d@z>L9&gg!0#pD$saWRf#96Ue(N20UKv4u zD+tV_6*`g|dqcZ@1;Zl7oA9Ep#tkfxL^O`fqRpHO$FBbDgTFF3N{Eh0ul7Z~@YZ-!=yToH-bCND zZ(BrbNIY~J&wzsiE3DbH5H$Yvk2-AW#F+Gx{crbBz^fIR3)DBgfWK!YAH>d80XtN1s{kR<` zau;OxyTx*kaaD(w8jZWUKU)yAMjh`@4=B_IA|3N!7zl-qws70Ko;|VLouMZu1tqx8 zQlW~BM{`k%Od*W#Jwocpe2e!y)4jbsU<7*L}n@W3~VHoA4 zW^TlZPX!(KJZT^BA&r!95O!D6BfNESexTWV=yRJk!FINGYQy162svc|Hy#~?T>3>c zd)MDQH$-`7Ymk+mvC!DWKqLt+k&@=&LAgM0PaS#192^ze#cIEZnSmL1dV|u3^HV}( zC#?}QKc!abSs3y8+@rs_)fQVY0jXzr5UPv6h;_(cC)^TSOy|{0%whW_*<`AK6y!5n zL#;eupMYi94pq;+2~D2^w)FC6T1FNGZ_*LHmVU0Yvr>k{T+s&4rcRpdZDlCKc%&!3gfEX%pc-Ag_dIELF75h>f-tA_ z?#ZS`ku)RmBU~Br`j&9W@es^>>@uTVKzV^(yUwYX&vS)Vg+69E7(+vBO`5 zCzusH1c3T~ji^F)12fdDg`sJeThBdZl&(=E!0n^uZx>RdV{+xH#&2{hZUTNMrv26@ z6H&WjPE0WVxNeF@`08wd?cKt7E19b=8xURGO1m|OL$qJrQw}3mzKZ`bk=}_4S&Z0D z6||q-6pXJs-WYnFhJkwtv7xAQk=sE05{e)C+G}PZU#K~Sb>^pg3?)m~7KIOSoWK0pM+wt<{Po&@X1;JN zrFgl`V+C5+*;MSz?fP`W6v_LF$9nT@>jsL{Sa{julaa(Pe;^^UU(+utM6*eL{ds!HZV-0m&&t~3)ZmCwzbZ{vyvuNiXu zX3udj3+xY`H#_u>*izBbo8GZB?F}_&RfLujy|-65_{>#7c3YOmw%B!dCO_uBu6t&6 z>3{I#Q0yT4wT^(AjkAUb4pQBSb?4TdE#v=mZ|3i89{?QAH;Ajs+O^_%o;Zf;<7kcO zv?O&Db#6sMS;K6m)M$iJA}CYR*y^ad!rCr%N2vP>b;i+26-C%W2rI2Ck}Ua7|BZeA zgZGE`xA*hI-V#)L5WB@0DpVe($wrA#TEA6`(>(&lo})-M>=J^PWmT;q+FHTHxM~Kh z5*>{q&@W576FQ7a%nykW3hb;cpWPeuNMw4;xMDC9CfU0)z4~*W`HAed<+3_4*RgeZ zO)P6UEzYk)P+;X&7l8&uNgxil1%AG4P!Yr<2TByNa8Bs7A|M!E-awh_#xo97H+&kv z-y!~-_5t!~==NrKnF!^;`h zGMaO>kYm?pEhlTwnh4cbbm``T;eh{u;krgbZe7k%F$q22JUBAc-W45N{I?%^yrAkD z1vwUjh-RbITxjILGdipcHf&ibO9Ov-Y$PHKTvkQT;vZ~*CRs~Q8uF7(`zPsnO9s6H&6qL$CiQ3s^i--Jr{Lb<)mV5x-`sRz z5(Bya4e!r=?+Gx#Oe|*~HNt=4?GE;Twz#K^WnOR)?C`~vI|Zdenc5J^+6=Q)I!bL} zOajUYAs-kJQ`BY4?=Ed=(TmK7kL8y}?Bb+f*TPmDL6xY*%Aw;M){RSQ!K=#NS(IO+do!7Nn%;yFIs4 l0t3Zu$;cWgj>FVU^SZ|L@`wufF^6CHp From 8fad3f9b7e018087a3fb0b56802a6d97a07611ce Mon Sep 17 00:00:00 2001 From: NebulaOnion Date: Wed, 28 Dec 2022 19:55:00 +0000 Subject: [PATCH 036/169] Add div closing tabs --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index be76886..5b17c25 100644 --- a/README.md +++ b/README.md @@ -6,6 +6,8 @@ ![Anonymousland logo](/assets/img/anonymousland_logo.png "Anonymousland logo") +

+
[![Build Status](https://drone.anonymousland.org/api/badges/anonymousland/anonymousland/status.svg)](https://drone.anonymousland.org/anonymousland/anonymousland) From b1880271a6a9b8a0db82d4de044740ce53e8939a Mon Sep 17 00:00:00 2001 From: NebulaOnion <84784521+nebulaonion@users.noreply.github.com> Date: Wed, 28 Dec 2022 20:03:17 +0000 Subject: [PATCH 037/169] Make logo smaller --- assets/img/anonymousland_logo.png | Bin 6403 -> 3240 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/assets/img/anonymousland_logo.png b/assets/img/anonymousland_logo.png index b94e1c4cb9a51131067fe63bec71b6493b0bd4f4..1f87588c86f79b40124ca900d5625ba426391632 100644 GIT binary patch delta 2050 zcmV+d2>thiGN>6LiBL{Q4GJ0x0000DNk~Le0001Z0001?2m=5B06U9|2eBc)1b+vz zNklPP3^f$lG%=*{4-%zjR%L}67AF`*{DcvhRpj(HvY$|9ya8b^()b=5-B8Kk&*2CQ7 zFl8&fW-MT=Zb0SURzBgM(SBfIP-jS2yL77D#?JP(rlv&{CTY@gx)lAv+e z?*+vz&2&48`!ou(FA=k>yMJR-a!!kniPQM^1Iz}K!U0!)#_s#>J$gL?030yN5+2?@ zW040msH*)NZIJ5#0D|cCYR?i22DhT&`JRS&c?gE)jE$ITL%5_&rVLU-4?o=bZ52ny z`a2A*TB+~ure&gv<&IYzzb3z;yull|5T2Lr> zhgzCJ^T=wD0f)wy=M`*mPE3!VuTDPRcGZFNR0PmqgOkVuL5W!A0!vBN%v$ zJ-7@qBlh|(BrsTAz`j5JQf9+m&j}6IO_5%U*k>CNvv&^_7<`;`g02!VdonD(4L%|) zxQGghh{s|$5RbmY^QLw{SnzYIV*LgzB*_gp^-*W+Ae1zw0$#wz3044ZgAPBOIOD4eX(G2}H9UZu2U%T~M?CfPFDXqT=U%8} zi;b&$ud)}x{#V2a*uNIW7$%tuY+Wd1m0KmbWn3y8QcGeVSO*xGVK=k<3VCmrz$yRP zOMj9bgAs#cf1F~M%Ke!*qxyndc;p~OV(=3vGO+8A*Ag^ZOq@x)6G-y(n$+Z2m(d8o zssmN*BGA|@ams88EVh~_WjhJ=so{bVTH8n7HcXO=N+ldj=G8>1a*&by@W8_r-r|(0 zWb$H(n&5i2CN=frQV<4M`GL<=s9B=+dw=O6iT4a-dAJ=75sVDI<1G?^QYeX=;&O;0 zJ_YGfyI39)*tFeeSKe}%QuSFQQF1Tk1_v7t`0iY4zN0R&D;(kCSxS)wFJ}Y>C!8Db zne&!MR5Jsb@FbIWD3M)JTWJ8W>f`r(1t|G1_fX!i!xd|$QymS~rC2z?s=Hf!hkqY> zXe+&dMxutErQBRn@cr9F9yB+e9n;bWVSj_A}Wm9dvcgx=7`?od$Xf z)pjwIZQ$xTTBez`v<@XOOluzD#-O*8N1oEMSiNR_x@S8r?nSz;2VBUYn7#DZw5~sG zMiMQuG@R_`Y;UMEj-Cg|Gd{%Lu75uIrvScv(?9oSPbFQ-FvOF%9cHN4OPqcrV}(w} z10W@j=`!YK8Mg@YFD^<5`pMn|j+Y|yPo4+J2PG&1MZmjD0&07*qoM6N<$f*@SR!2kdN delta 5238 zcmX9?c|6qL_eNw7Zy_nnm>FAk$}SAe_>476DEk_rvV<7R*s{-9#?siA7|S4gDTG0r zRCbXq8rgUHP2b-i_nv#sea<=0b6@wLdn@^)Zs0<0C@`qCdv*|q>^>Dz7H4SnU)5?8 zzrEqMYr95z9e-8!TC?Vsd9KB81>o+(wPdXZvJ*`kcA4Ayb8nn9KH{?DPpJBLsPVhI zkud|@WH+VYYLHLV*&$2uWDY?=;S}i}@)|wgcjul0>4NL4`uR-!L3k9BkZA+m-qtJYm zN9ri#B$CdGZT&;6!AgEBMIpeDL=H1(_lYO;;K>F zE?7jjxMbxFKa-BXLKv-daO6d`_SzA(Chmw?a9KoyKbwx3~QvK`djIrd74QWR| zSGwONSAP8FWK}JpDnh3W)ePYd&qk~yE5+>h{gqJ%qBnnad6QskDB3%no^pKG|M*wa zr7rz^QX^Sk?D@*4?B(8B>}Fxh48=NcUA*tFXWuc)L|N1%S+44l0 zSpPjZErcq%>v1Z+UzJL^Qlc7MRy1T|ldEN>+O%2|p9SmT0WbS4({PlZC=I8x+t=Y2%vkxwOSMkl^;yliXTAhG?<&5e}PEo(11fuqL-go~I~S72!*<-2X-)Z7l9Vm0Vv_fjnY zw9aG|f!DAPURS)6Hf_&z3ni^)0(BmzR+UmjZ{H(JwvPmyfvKZo<@ zlWKDmx^|uGv#t(4>E+e779S%t!`C~P)Z{iLeq8UpNF1N6AG9WlF5xk9WjujW`?gVtrg#zvTv~833zLcr$I7(Y*<8Rr zw^8uWouYEQ@ZoKB9bcK&jK||8fl(EO+savcsQGe{7>wYR*?=F_+&p|jgf6wiA0IMB z3cRajatB9R`6Y!CsvNFr&Y=NwqBil%C+&3%F~mcXJ-Nhnc3N0wU4)? zf7}-WPA9;ylagz+0M_5!RhCOEEtk3RL|)SDzv~$Nk6r_y7RA>H0J^CYhMkpN{`ro3C zd>HG-3>^z@e*l-82>=vOX2R;|Xb8lgwI>3M+ZOoSiRjuoJ3ho >RS{OBx%%XzB-#L zlH?z1$@WzAiFKSIikWSRJY+PU4`a+Snzm5ONXxKRQnlMc|85lWy{7T$uf_4|7<6+S z19IDQ+^M8oVj1yp7V=p-9+s1eJUG_D z_r@)VpujPu*P4+R903%VS0f1`*NlY8F~hi^hy3~@yk8&`JUxycj*UUeQiDm%xP!DS z89ZntH|#CM6!l249J%fUoQ3^IMaAQOzk^^AM$}64JiJukR5#TP>{lcQUqVX3(%F$b zupDlz7nRSJBsIMl!r=&+z{A?&k+KPQR#;F`RQneqD$883AOTCik)Q!UjOCaMN`k<~<3>LP8ux{W*%uAxqfYC-Oxa+6gG@vJ z7F8oYL)v}KojStG1cB;(A-3ITFmc0}bU(tx1O+sAQZPhT<1v&kip&^3{pb*@4w(wu z7Bzr@9JK6gr}gPICO@}5-1Dp)=T&9TiC{uRiS zM_76mG8jKnP06XHFHM|@EMfxsAx(GDtNhEALkbWzq+Pd_dL$*YeBpR|XK|YdRTA z9C>;<2Z|I`mU1_Xg!F=YEkvB56_TF$(78a^0!zylBHw+k%q-9IjuqWa@n!U)r~5Ky zp`g1>!X)z2gEBusW3cfnk-0NAu2CS{GtHvvR2n*73r!cxI2>XtUfsSH{=7q+r$2Cy&7Wl=_ z>*CW-q3MuLoy<0=WZS%mAQp6Ri$7E%uJ_s9bq9miOh}&Ymgc_D)wqkgPS(%z3yD81 zf%X_(y4F*+agsdwE@<(v_+c^;{`l+AE4{A-H34;iA`dJ65nN!Yn+X$MLXs8U) zlAcTxqI;t{rX}PJAMN#ZT5r)38i1niA4$2ePLc^j$nQ>xZ29WrOVOe`U?tqjlD&Uq zC{gghjj@i$2a%zcunBH2S72A%cM!n1Oug#}(I{OooFBVZKe(A3X@xY1c%lS)uI6g! z6b`C?I6m3079xbA&)5jz?k0#i17Qho#ue(UXFlf@LQWD>-mu9ZA$OpzbTLwL8_U`> zTr*=B;`=no1nbHabfsngrtg|=0!{cikq#L$4t@vT7$5W!qy@)DIL#D!N86@AvSM_= zqe@r*JUM4W-vo3S3z@!t=!){oTAcF?JZyU3k#QFhpAgVpmS4Tg|0OvQ8^PS&|Bx2S0a#fO z{6LfEpK>ZhVit}sD&aw_z`fdm>#q0XK7Oys1k=q+X~s8hUEA^p*OdTPw+8ul)pO~kle>n@@5Kx0o3rR%;#J92E<9j@9*G}LsK9te??x10sv zx?P;pOA1UKIQCKvJC2tA1$G$SU#!)eo2EGRMe~ygoWJzV*9BB(*IRoz0Kdq+dl?Bb ziDrP)lgP0PtlOh2wwt&J`vegYZ$LSr%yh?;30AKh{=eaJX_Q2HnYl*rIBQ@WI2 zy2N32d1GtebKtOxUR#eCRJQT$M^`)rL)Jc#}|GHUeEOmZTv3w@x$1IqASZ2lC) zbuuE?J^IxXRwh-;6{N;jOs-4Kg2V{A1wP2vjarX=b##$QyYLUuYfS4F4Kkf_o2X3yg@puB=!8#L3;JQKj&{I>+ zD)R+hV?RGhZfn4K*9bXFw@cO^D~lyEfKZoDQckOLnXvUWaiu){DAgk0AM|L@d!GZi z;_Dk`5V%cSFZ*%td�dY3w@r-Um1Kp9t`90k?*@6KWK98~9(_vgr_LJ+>i%>JHt; z-LFsV6SS0cHIT(c%fUhz&_=^R?mbsW7)XE6>OW#)?sf;)q`L4mmA>vc7Ok&wnQ)C< z&`a=M*22x%ZWl(!!FoZGryn|oMIhmD@9K;F787?uPnY5?AtqbPMPW;F9V|8u(|j+Z zb7IXW&OVg9z$2V=SRg%WH@GF6#`&Ob8}hx2Qt@@;v6m#Hqv2m4I3J#K!Q@*uMs_DZ z{e&>u&wb5_d>Ny`On>E_i5;gIP;#2TleYjEH-Ywou{Y_r@Oo3c0caU~uyAVc*7uqb zQP$CFH&!REE*3Z>Om(z*@Fnq68ve%muCq#C*g$M$+q?do7@#2ba$xGW+i!8Ld#5%( z`X{|VO6fn~%Z?r>OS?H86f$rX!tB-2-p|3glm~(9mNVXjM_;-a+?Na0dz)6Tt5v&K zQGD-c_}K)jH!YV@92fd!_Uuuanh6l-5mu!oJlr-Z-RpTN_h#?y@QX^~NV`^5VF0ad z&XD&dO<={r2)HHUdo;Ehq~|yCl;04M6aBvW9H`FKPW5 zeYXyQa-rgHO`@L$Iu0!(+CK8q9j-*5qAp3W?8;<6PD^a+5tbNn(yq<@Hp6s?>pPZY zNuSl;l;?yd2x${aJ?D)O9o9>Ta{h5MR_%+6&4O*O37spx<}2-Ar=)kd4c-e^jl^qO z6xV~{K|@*h8quFuuI@bIeDF)5=uh9t8eNds#IOWw$c=htxZ`i76-xVpObR3QO|l53 z_b4zYh-NeEGsi*DeHcd*l}FY)H{z!?_wmj({kS4|v@l zDLFezv=6*xZwP!{39{&q6#MvxUP3wj@9)&`An{QlzN}*OnxGnuOIoQ@WWRgE@#$}~ z^4Ej<0=RGck?M~wg=xSH1w>EBw4^%(L^te?G==l-eh{T6L~8}UlX_`IX=WN#UPjZZ zxay|7G1Mb}H9NB2SLrbQVaOJC(}zT&+n>)|BJlij&k6W>KC;R!ODJA+)|NpNs5uQP z(z~(rWIg^9x;pMrq=`!U4VBr)5Ep`tZ}_eK`rDIbQ9 z=e50;{<|&U&++kLD|4?8L260nE%&Oc@VCa{l>o!?8Z@IajiP{CsLhvxb;sm!a~@TX iiOns=toRQnT4sb;?#`P{F4V6?8l;{PyjI5{>i+;YFy& Date: Wed, 28 Dec 2022 20:08:23 +0000 Subject: [PATCH 038/169] Make the logo a link to our website --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 5b17c25..dd75921 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@
-![Anonymousland logo](/assets/img/anonymousland_logo.png "Anonymousland logo") +[![Anonymousland logo](/assets/img/anonymousland_logo.png "Anonymousland logo")](https://anonymousland.org)
From b9511fa7ecb4994336df2ff1db41b3e8357b2aca Mon Sep 17 00:00:00 2001 From: NebulaOnion <84784521+nebulaonion@users.noreply.github.com> Date: Thu, 29 Dec 2022 15:35:23 +0000 Subject: [PATCH 039/169] Bundle font-awesome fonts --- assets/fonts/fontawesome-webfont.eot | Bin 0 -> 60767 bytes assets/fonts/fontawesome-webfont.svg | 565 +++++++++++++++++++++++++ assets/fonts/fontawesome-webfont.ttf | Bin 0 -> 122092 bytes assets/fonts/fontawesome-webfont.woff | Bin 0 -> 71508 bytes assets/fonts/fontawesome-webfont.woff2 | Bin 0 -> 56780 bytes 5 files changed, 565 insertions(+) create mode 100644 assets/fonts/fontawesome-webfont.eot create mode 100644 assets/fonts/fontawesome-webfont.svg create mode 100644 assets/fonts/fontawesome-webfont.ttf create mode 100644 assets/fonts/fontawesome-webfont.woff create mode 100644 assets/fonts/fontawesome-webfont.woff2 diff --git a/assets/fonts/fontawesome-webfont.eot b/assets/fonts/fontawesome-webfont.eot new file mode 100644 index 0000000000000000000000000000000000000000..33b2bb80055cc480e797de704925acaba4ba7d7d GIT binary patch literal 60767 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%0DKehr}RFC`2XTB_?==0w^)u1m5PYii@6f)6_5Ydu zv+NIZ_(Rt}Q++LT5!n8!J4x!>sE&v_3*cXat{Zq5;17w;B6$epw}$Rg`0nFJg5D-L zYvw@(goc5TeJjM($AJAZxZHZN}RzBcP0=_>ZI6WVGU zO#Nk-YqZTa3{!84P0K~GsI#32<+_AsXU43wILwZS(8n%S9)lP!Dg$$e2$$9$E?^Nj zql4do#+a8qEP(bD2)DpP|$dp<`TZ#bY6^~7Xv_Lle)77^OsVhMOm(@ z??8O8kA%}ZWpR&2v!7qFSw@TF6d*=9YT^Rtk(n8p=CQWvt1Om=n&5uP;GiT6 zMRvbm39kbp*KB`qoVg12w52Z)T}`X41P>D|q_%K#zuhwb+BpEogY0E)KnSy#@+(m5 z20@LG@LUEvk`I|OIUV^^0_YtG9AElBS!Dsh%k^P9r0moJ25Lkm-gh#igwBDhAOj0!EF&8MxV^-m1U1MEd?H7} zL;r;tfFIT|ei3-Z@gyM=!%Ba7Pa626JRAA`V<2D<{RLRT@0o=bE)XF)nFtUL67`2L z{?_Qz_`Yy2t+I)?9&z#z__Q%L3pnhN}U z_rN#WU)kD59D4whbSYERHY01jM7id50EuI1ctl?<_IT=Y5vP>(sNNkB&U5&F&^kBhm5y{o!y!F+4wdxXoy;!4$W`?_nL(+bK_QDAMUV1O0AwZ| z6j)s}9YEZbY-C^Y)9Ej`aS&~{sXCG2SS3ce$EY;Yv-c8TlrD$C85ATlLZpGP_YWfi z`RQ?z1@zIfa{yqfsUDMEPpwuX%XHdO+ASb3EPi1fBPocvfgsC0xa^CG2SWBPWQ&GS zpCXPti8b>WkYbf#Vg%A?&_UwUsUQE_t4GX?7QqUpKJ2Iw#%)Q4Ft(`9Ja&Yk{C@38 z@%T`)#wWy(kKfEH;ZBQ(m*Iq&L=<)4D7tNO{SsA4Fp4D?(Ex6nQS&f3TK|atgj`fE z2|OX0(&(ZqxJd~IANX&dvX?U14_<~h2(lP6k^H8ep;2HW6oPo?U%v{M>|{sU~;p zLTv$OTx3H^4zNUn4wUfo>j{CEvTC@C+cw+cW*ABH6u@!M2EdBL?1GbL_#e;7YDBas zic?MTazk(khXSyPeDom_I~wkLv?Wr8<%egEfM!*M9^kl$>zsVzaP}S!gcD3;Czy#58RTm?`p)RTS8I<-sC3+*n{A)P*rU!@Npj`e{x9xsif2v zTW`{q3p^?A!Mk60Q{(FLt(&TVe9z z0-!PiOV02JcNeq?AbJaI+B9xC;LB=}Ho0vH(@;Qe0zq~-8ckOa!(u@Wou`p_TR|QT z38H`lJE$G{q1egUX@&v$x7wNLWD#j*!D58GLv^bT+jpdKBrK#SsQsWK(+RO40VA^w z0nA7MN1Y1Fc#5JkwD5TtHG1t;lo=i)U+kFG?1Jh11h9382!marrRE2eZh;JGh`wNO zQA_~n?%97HOKLA^#oG(5*bgSllS%rOc(S%Yj00cYR;!D9G_90{pfq7D4I*$k?byOV zR|epi%oIJ{ou`5zS!-_dnxOa{uNv)(luMo^5TCOItq}2}sxCztLEzBGS)Mf6dzaw< z!GweAgvFYJu&mH(Vl9HJBV%=Jz~~i%nDGIF9ncTET-AQ=fv{L11&K_;ei!iht(!De;ym|y7ksL|^5Ko~B-vSh80++s?unD}bZaYa@ zPH4M$&fw;xEGN3_H1vHW><%-+dg7dfW)F8$bB+h7sThoOtteO(v{&-+iK}r$%G))# z*Nhx^!ZMj1VeG?EkWg+0CYQSX1t96fV9^3c+9C393LU&CHsFCa1q99$`zTMsEWwLc zxsw1|A?k8-m8HCrk6;K7dhNDJN3R9iws%6vTq_}PtR2CZ8TG;ltZ4I}sU+^s8`P3F5QxrypG1-{ zGlr^7$Wsy(lo=xfC~BpKfg<2z4OEeEF@~x{Pi7O#CvqMJy+f+}=CB_$&IuEslB@s# J000000038FvZ??8 literal 0 HcmV?d00001 diff --git a/assets/fonts/fontawesome-webfont.svg b/assets/fonts/fontawesome-webfont.svg new file mode 100644 index 0000000..1ee89d4 --- /dev/null +++ b/assets/fonts/fontawesome-webfont.svg @@ -0,0 +1,565 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/assets/fonts/fontawesome-webfont.ttf b/assets/fonts/fontawesome-webfont.ttf new file mode 100644 index 0000000000000000000000000000000000000000..ed9372f8ea0fbaa04f42630a48887e4b38945345 GIT binary patch literal 122092 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 +|+&Vdls@0SAya!5R?! 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
6YuX1v{q9=vI}{pN+P4FW!CI?#11< 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 z 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 literal 0 HcmV?d00001 diff --git a/assets/fonts/fontawesome-webfont.woff b/assets/fonts/fontawesome-webfont.woff new file mode 100644 index 0000000000000000000000000000000000000000..8b280b98fa2fa261aa4b0f8fd061f772073ef83e GIT binary patch literal 71508 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 literal 0 HcmV?d00001 From f6d99876dd70cbca16fc95a07fea3ef0dfc92262 Mon Sep 17 00:00:00 2001 From: NebulaOnion Date: Thu, 29 Dec 2022 18:40:06 +0000 Subject: [PATCH 040/169] Create support file --- _.well-known/matrix/support | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 _.well-known/matrix/support diff --git a/_.well-known/matrix/support b/_.well-known/matrix/support new file mode 100644 index 0000000..a0f5a6c --- /dev/null +++ b/_.well-known/matrix/support @@ -0,0 +1,11 @@ +{ + admins: [{ + matrix_id: "@deathrow:anonymousland.org", + role: "admin" + }, + { + matrix_id: "@nebulaonion:anonymousland.org", + role: "admin" + }], + support_page: "https://anonymousland.org/services" +} \ No newline at end of file From 45a270fec5e4f83c93e1cd526a7b830174daa502 Mon Sep 17 00:00:00 2001 From: NebulaOnion Date: Thu, 29 Dec 2022 19:01:49 +0000 Subject: [PATCH 041/169] Update 'Gemfile' --- Gemfile | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Gemfile b/Gemfile index bf9fa35..f310840 100644 --- a/Gemfile +++ b/Gemfile @@ -1,9 +1,9 @@ # frozen_string_literal: true source "https://rubygems.org" -gem 'jekyll' +gem "jekyll" gem "jekyll-theme-potato-hacker" -gem 'jekyll-feed' -gem 'jekyll-seo-tag' +gem "jekyll-feed" +gem "jekyll-seo-tag" gem "bundler" gem "kramdown-parser-gfm" gem "webrick" From f02f3c5b0aacee83de9c721f9abf61238c65c164 Mon Sep 17 00:00:00 2001 From: NebulaOnion Date: Thu, 29 Dec 2022 19:05:53 +0000 Subject: [PATCH 042/169] Improve CI pipeline --- .drone.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.drone.yml b/.drone.yml index dacdaf5..c32d485 100644 --- a/.drone.yml +++ b/.drone.yml @@ -6,7 +6,8 @@ steps: - name: build image: ruby commands: + - gem update - gem install bundler - bundle install - bundle update - - bundle exec jekyll build --trace \ No newline at end of file + - bundle exec jekyll build \ No newline at end of file From 2c0674c33a1373f8c780c64f6b08abe8d2f9ec49 Mon Sep 17 00:00:00 2001 From: NebulaOnion Date: Thu, 29 Dec 2022 19:10:34 +0000 Subject: [PATCH 043/169] Specify minimum liquid version --- Gemfile | 1 + 1 file changed, 1 insertion(+) diff --git a/Gemfile b/Gemfile index f310840..3323804 100644 --- a/Gemfile +++ b/Gemfile @@ -7,3 +7,4 @@ gem "jekyll-seo-tag" gem "bundler" gem "kramdown-parser-gfm" gem "webrick" +gem "liquid" >= 5.0.0 \ No newline at end of file From 609bac34465738f176b389f98e5ad33f04991ddd Mon Sep 17 00:00:00 2001 From: NebulaOnion Date: Thu, 29 Dec 2022 19:12:36 +0000 Subject: [PATCH 044/169] Fix wrong syntax --- Gemfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile b/Gemfile index 3323804..735a124 100644 --- a/Gemfile +++ b/Gemfile @@ -7,4 +7,4 @@ gem "jekyll-seo-tag" gem "bundler" gem "kramdown-parser-gfm" gem "webrick" -gem "liquid" >= 5.0.0 \ No newline at end of file +gem "liquid", ">= 5.0.0" \ No newline at end of file From a4ed142410d329cf11d3e0669e2121af70052b59 Mon Sep 17 00:00:00 2001 From: NebulaOnion Date: Thu, 29 Dec 2022 19:14:55 +0000 Subject: [PATCH 045/169] Update 'Gemfile' --- Gemfile | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/Gemfile b/Gemfile index 735a124..177e09b 100644 --- a/Gemfile +++ b/Gemfile @@ -6,5 +6,4 @@ gem "jekyll-feed" gem "jekyll-seo-tag" gem "bundler" gem "kramdown-parser-gfm" -gem "webrick" -gem "liquid", ">= 5.0.0" \ No newline at end of file +gem "webrick" \ No newline at end of file From 022673ca30280b0cbb740f70aa96d7cffe926b36 Mon Sep 17 00:00:00 2001 From: NebulaOnion Date: Thu, 29 Dec 2022 19:17:15 +0000 Subject: [PATCH 046/169] Downgrade ruby version --- .drone.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.drone.yml b/.drone.yml index c32d485..5bf877a 100644 --- a/.drone.yml +++ b/.drone.yml @@ -4,7 +4,7 @@ type: docker steps: - name: build - image: ruby + image: ruby:3.1.3 commands: - gem update - gem install bundler From cf9edd3bac0722b3ae135db30cc7fdc6065fa288 Mon Sep 17 00:00:00 2001 From: deathrow Date: Thu, 29 Dec 2022 23:02:05 -0500 Subject: [PATCH 047/169] Removing bundle update --- .drone.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.drone.yml b/.drone.yml index 5bf877a..847dfe6 100644 --- a/.drone.yml +++ b/.drone.yml @@ -9,5 +9,4 @@ steps: - gem update - gem install bundler - bundle install - - bundle update - bundle exec jekyll build \ No newline at end of file From d130509bdd97b7a451f573670da688c1bdac40ba Mon Sep 17 00:00:00 2001 From: deathrow Date: Thu, 29 Dec 2022 23:09:48 -0500 Subject: [PATCH 048/169] Initial Tails section --- _items/Guide.md | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/_items/Guide.md b/_items/Guide.md index 0e92bb9..9429b18 100644 --- a/_items/Guide.md +++ b/_items/Guide.md @@ -89,6 +89,7 @@ _Disclaimer: This is for education / research._ -\>> [Secure Communications](#secure-communications)
-\>> [Secure Hardware](#secure-hardware)
-\>> [Plausible Deniability](#plausible-deniability)
+-\>> [Tails](#tails)
-\>> [TLDR](#tldr)
--- @@ -1265,6 +1266,17 @@ An *easy* method of implementing plausible deniability is to utilize [Hidden VMs --- +## **Tails** + +[Tails](https://tails.boum.org) is an amnesic operating system which runs in live mode. +The benefit to this is that after each session, all of the data is erased. +This makes it an extremely effective tool to protecting your privacy. +Tails is routed over Tor, which allows you to use it anonymously. + +
+ +--- + ## TLDR Don't use the internet. From 8b53cce898f862ac8d50c62c68d40e32085b3db3 Mon Sep 17 00:00:00 2001 From: NebulaOnion Date: Fri, 30 Dec 2022 13:57:23 +0000 Subject: [PATCH 049/169] Fix and harden HTTP headers (#57) Reviewed-on: https://git.anonymousland.org/anonymousland/anonymousland/pulls/57 --- _config.yml | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/_config.yml b/_config.yml index 51d96a0..5c5427f 100644 --- a/_config.yml +++ b/_config.yml @@ -34,4 +34,9 @@ markdown: kramdown highlighter: rouge kramdown: input: GFM - syntax_highlighter: rouge \ No newline at end of file + syntax_highlighter: rouge + +webrick: + headers: + Content-Security-Policy: default-src 'self'; + Strict-Transport-Security: max-age=31536000; includeSubDomains \ No newline at end of file From c9e7c6ae9354bd22de78afb2fc4a35b1a0d94800 Mon Sep 17 00:00:00 2001 From: NebulaOnion Date: Fri, 30 Dec 2022 14:01:34 +0000 Subject: [PATCH 050/169] revert 8b53cce898f862ac8d50c62c68d40e32085b3db3 revert Fix and harden HTTP headers (#57) Reviewed-on: https://git.anonymousland.org/anonymousland/anonymousland/pulls/57 --- _config.yml | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/_config.yml b/_config.yml index 5c5427f..51d96a0 100644 --- a/_config.yml +++ b/_config.yml @@ -34,9 +34,4 @@ markdown: kramdown highlighter: rouge kramdown: input: GFM - syntax_highlighter: rouge - -webrick: - headers: - Content-Security-Policy: default-src 'self'; - Strict-Transport-Security: max-age=31536000; includeSubDomains \ No newline at end of file + syntax_highlighter: rouge \ No newline at end of file From ecc9f800b1cf9470d8f020cc1cfeb90e838264cc Mon Sep 17 00:00:00 2001 From: NebulaOnion Date: Fri, 30 Dec 2022 17:37:29 +0000 Subject: [PATCH 051/169] Add my email and deathrow's to the contact file (#58) Reviewed-on: https://git.anonymousland.org/anonymousland/anonymousland/pulls/58 --- _.well-known/matrix/support | 2 ++ 1 file changed, 2 insertions(+) diff --git a/_.well-known/matrix/support b/_.well-known/matrix/support index a0f5a6c..5b9cff9 100644 --- a/_.well-known/matrix/support +++ b/_.well-known/matrix/support @@ -1,10 +1,12 @@ { admins: [{ matrix_id: "@deathrow:anonymousland.org", + email_address: "privatedeathrow@proton.me", role: "admin" }, { matrix_id: "@nebulaonion:anonymousland.org", + email_address: "nebulaonion@tutanota.com", role: "admin" }], support_page: "https://anonymousland.org/services" From 1ea18871785e91f48992a581136586b7b7dfb279 Mon Sep 17 00:00:00 2001 From: NebulaOnion Date: Fri, 30 Dec 2022 18:40:39 +0000 Subject: [PATCH 052/169] Add '_.well-known/matrix/client' --- _.well-known/matrix/client | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 _.well-known/matrix/client diff --git a/_.well-known/matrix/client b/_.well-known/matrix/client new file mode 100644 index 0000000..598bdf6 --- /dev/null +++ b/_.well-known/matrix/client @@ -0,0 +1,5 @@ +{ + "m.homeserver": { + "base_url": "https://matrix.anonymousland.org" + } +} \ No newline at end of file From 520ac11b067fd58ef0c1f29a6cfe24bc4562e446 Mon Sep 17 00:00:00 2001 From: deathrow Date: Fri, 30 Dec 2022 21:38:38 -0500 Subject: [PATCH 053/169] Room purge disclaimer --- _items/Services.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/_items/Services.md b/_items/Services.md index 6635465..caed10e 100644 --- a/_items/Services.md +++ b/_items/Services.md @@ -55,7 +55,9 @@ Your account *can* be suspended if you take part in any sort of malicious activi - `bcrypt_rounds` is set to `16` -- `MSC2285` is enabled +- `MSC2285` is enabled. + +- Rooms with 0 members are purged every 24 hours. The following nginx headers are set: From f793bb0d903beb65b160519ca3611c49392f9f7f Mon Sep 17 00:00:00 2001 From: deathrow Date: Sat, 31 Dec 2022 07:54:05 -0500 Subject: [PATCH 054/169] Explicit Port --- _.well-known/matrix/client | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_.well-known/matrix/client b/_.well-known/matrix/client index 598bdf6..e4832a6 100644 --- a/_.well-known/matrix/client +++ b/_.well-known/matrix/client @@ -1,5 +1,5 @@ { "m.homeserver": { - "base_url": "https://matrix.anonymousland.org" + "base_url": "https://matrix.anonymousland.org:443" } } \ No newline at end of file From 9f0ca52740b26638bc95d38725229299c98a0477 Mon Sep 17 00:00:00 2001 From: NebulaOnion Date: Sat, 31 Dec 2022 14:08:40 +0000 Subject: [PATCH 055/169] revert f793bb0d903beb65b160519ca3611c49392f9f7f revert Explicit Port @deathrow Our port 443 redirects to the Element instance, and this will end up confusing clients. The synapse docs don't specify the port number. Check https://matrix-org.github.io/synapse/latest/setup/installation.html#client-well-known-uri --- _.well-known/matrix/client | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_.well-known/matrix/client b/_.well-known/matrix/client index e4832a6..598bdf6 100644 --- a/_.well-known/matrix/client +++ b/_.well-known/matrix/client @@ -1,5 +1,5 @@ { "m.homeserver": { - "base_url": "https://matrix.anonymousland.org:443" + "base_url": "https://matrix.anonymousland.org" } } \ No newline at end of file From fe8767a0c92b588eeb37ad7165e205c40290f591 Mon Sep 17 00:00:00 2001 From: NebulaOnion Date: Sat, 31 Dec 2022 14:42:53 +0000 Subject: [PATCH 056/169] revert 9f0ca52740b26638bc95d38725229299c98a0477 revert revert f793bb0d903beb65b160519ca3611c49392f9f7f --- _.well-known/matrix/client | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_.well-known/matrix/client b/_.well-known/matrix/client index 598bdf6..e4832a6 100644 --- a/_.well-known/matrix/client +++ b/_.well-known/matrix/client @@ -1,5 +1,5 @@ { "m.homeserver": { - "base_url": "https://matrix.anonymousland.org" + "base_url": "https://matrix.anonymousland.org:443" } } \ No newline at end of file From c67778629dd19c363b3cd6beb9c35744177aaa70 Mon Sep 17 00:00:00 2001 From: deathrow Date: Sun, 1 Jan 2023 23:26:54 -0500 Subject: [PATCH 057/169] Update Transparency page --- _items/Transparency.md | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/_items/Transparency.md b/_items/Transparency.md index caea588..7b72b72 100644 --- a/_items/Transparency.md +++ b/_items/Transparency.md @@ -10,6 +10,28 @@ permalink: /transparency ## Servers +### 1984 + +4 Cores + +6GB RAM + +260 GB SSD + +
+ +### Njalla + +6 Cores + +9GB RAM + +90 GB SSD + +
+ +--- + Total Cost: €139/month Public Services: From db6318b5f7d3861dff4902d1a3ca58fd5ae8be70 Mon Sep 17 00:00:00 2001 From: deathrow Date: Sun, 1 Jan 2023 23:27:58 -0500 Subject: [PATCH 058/169] Add robots.txt --- robots.txt | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 robots.txt diff --git a/robots.txt b/robots.txt new file mode 100644 index 0000000..77470cb --- /dev/null +++ b/robots.txt @@ -0,0 +1,2 @@ +User-agent: * +Disallow: / \ No newline at end of file From ca3eceb2cf4fb51a404be84df21297306a3effab Mon Sep 17 00:00:00 2001 From: deathrow Date: Sun, 1 Jan 2023 23:32:57 -0500 Subject: [PATCH 059/169] Update incorrect RAM --- _items/Transparency.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_items/Transparency.md b/_items/Transparency.md index 7b72b72..3a41d7e 100644 --- a/_items/Transparency.md +++ b/_items/Transparency.md @@ -14,7 +14,7 @@ permalink: /transparency 4 Cores -6GB RAM +8GB RAM 260 GB SSD From cd17871dd9a088379759770079fc5504a9b487ab Mon Sep 17 00:00:00 2001 From: deathrow Date: Sun, 1 Jan 2023 23:36:54 -0500 Subject: [PATCH 060/169] update docker.sh --- docker.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker.sh b/docker.sh index 7fb2531..2e3c1bd 100644 --- a/docker.sh +++ b/docker.sh @@ -1,6 +1,6 @@ #!/bin/bash -docker run --rm \ +docker run \ --name=site \ --network=site \ --restart=always \ From 1cb3cd17d1a67578e986527e94d59b7dad8fdb3b Mon Sep 17 00:00:00 2001 From: NebulaOnion Date: Tue, 3 Jan 2023 18:04:15 +0000 Subject: [PATCH 061/169] Improve SEO (#62) Reviewed-on: https://git.anonymousland.org/anonymousland/anonymousland/pulls/62 --- Gemfile | 1 + _config.yml | 5 +++++ robots.txt | 4 +++- 3 files changed, 9 insertions(+), 1 deletion(-) diff --git a/Gemfile b/Gemfile index 177e09b..0f8945b 100644 --- a/Gemfile +++ b/Gemfile @@ -6,4 +6,5 @@ gem "jekyll-feed" gem "jekyll-seo-tag" gem "bundler" gem "kramdown-parser-gfm" +gem "jekyll-sitemap" gem "webrick" \ No newline at end of file diff --git a/_config.yml b/_config.yml index 51d96a0..1b9e4ed 100644 --- a/_config.yml +++ b/_config.yml @@ -2,6 +2,10 @@ repository: anonymousland/anonymousland theme: jekyll-theme-potato-hacker theme_base: "dark" theme_switch: off +title: Anonymousland +email: admin@anonymousland.org +url: https://anonymousland.org +github_username: "anonyland" blog: on highlighter_theme: monokai toolbar_priority: @@ -24,6 +28,7 @@ exclude: plugins: - jekyll-feed - jekyll-seo-tag + - jekyll-sitemap feed: collections: - changelog diff --git a/robots.txt b/robots.txt index 77470cb..80baa82 100644 --- a/robots.txt +++ b/robots.txt @@ -1,2 +1,4 @@ +Sitemap: https://anonymousland.org/sitemap.xml + User-agent: * -Disallow: / \ No newline at end of file +Allow: / \ No newline at end of file From 4a4b4007df214388fa682f27460edac9bf876e29 Mon Sep 17 00:00:00 2001 From: NebulaOnion Date: Tue, 3 Jan 2023 21:45:09 +0000 Subject: [PATCH 062/169] Speed improvements (#63) Reviewed-on: https://git.anonymousland.org/anonymousland/anonymousland/pulls/63 --- _includes/head.html | 10 +++++----- start.sh | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/_includes/head.html b/_includes/head.html index 4784b6c..15040a7 100644 --- a/_includes/head.html +++ b/_includes/head.html @@ -22,11 +22,11 @@ - + - - - - + + + + \ No newline at end of file diff --git a/start.sh b/start.sh index 038b838..fa00d66 100755 --- a/start.sh +++ b/start.sh @@ -1,3 +1,3 @@ #!/bin/bash bundle install -bundle exec jekyll serve +bundle exec jekyll serve \ No newline at end of file From 3193e7d550b18a0056dc22bc52e6859275cc45f8 Mon Sep 17 00:00:00 2001 From: NebulaOnion Date: Thu, 5 Jan 2023 17:57:32 +0000 Subject: [PATCH 063/169] Improve donation section in readme (#64) Reviewed-on: https://git.anonymousland.org/anonymousland/anonymousland/pulls/64 --- README.md | 18 ++++++++++++++++-- assets/img/xmr_donation_wallet.svg | Bin 0 -> 555 bytes 2 files changed, 16 insertions(+), 2 deletions(-) create mode 100644 assets/img/xmr_donation_wallet.svg diff --git a/README.md b/README.md index dd75921..3ba5714 100644 --- a/README.md +++ b/README.md @@ -21,6 +21,12 @@
+
+ +[![Monero wallet](https://img.shields.io/badge/XMR-47teQv7uWPv9EALRDv9je6ckC83UYJiisHpmhNKHyPPTXinPJNRtvW8PcpEoLxex9ierqWvD89v9mVyGf77uLtS3RnGUk8K-orange?logo=monero&style=flat-square)](https://anonymousland.org/donate) + +
+ [Changelog](https://anonymousland.org/changelog) ## Mirrors @@ -45,9 +51,17 @@ If you do not know where to start, take a look at the [issues](https://git.anony Running these services and properly maintaining them takes time and money. *We would be extremely grateful to get donations*, we only ask for 5$, that's all. -To donate, you can visit our [donation page](https://anonymousland.org/donate) or contribute directly to our [Monero](https://www.getmonero.org/) wallet. +To donate, you can visit our [donation page](https://anonymousland.org/donate), contribute directly to our [Monero](https://www.getmonero.org/) wallet or by scanning the folowing QR Code: -``47teQv7uWPv9EALRDv9je6ckC83UYJiisHpmhNKHyPPTXinPJNRtvW8PcpEoLxex9ierqWvD89v9mVyGf77uLtS3RnGUk8K`` +
+ +|![](/assets/img/xmr_donation_wallet.svg) | +|:--------------:| +| **Monero (XMR)** | + +
+ +_Monero wallet address:_ `47teQv7uWPv9EALRDv9je6ckC83UYJiisHpmhNKHyPPTXinPJNRtvW8PcpEoLxex9ierqWvD89v9mVyGf77uLtS3RnGUk8K` ## License diff --git a/assets/img/xmr_donation_wallet.svg b/assets/img/xmr_donation_wallet.svg new file mode 100644 index 0000000000000000000000000000000000000000..aea2d453bb26b458b193d29c5191586397f36061 GIT binary patch literal 555 zcmV+`0@VG9P)4 zma)z3AP|JtazN&50EsrpXvuEC_BCL)L`EByXaF(-mw4D2 zh9mxW(SJe`(d_hW`LvqI2ubET6&hUJOI=t@ydFu9N_PdnH^@wN3P)G!Ei&=Z`2)&t z5U!);-ADHNyNgSL`Ak8-pYOyj3089EBzgq%b?1^KTOXn45_hjVFD2Rc*&kgntI`i| zge0kBaNvA8vyqgX)Q0mcm}-Q0AxZ8aEYR`JPyJrxl4 zJp>OFH)S@*LXxPG<<(YlG=7qBO>%(jc)DW>$eWb3K;k{rS=G0L5^}bf)tQc^@Ylgh z!ljbJWDo#7y!S34!R*1n@h2mnMo6G`P%)Q2shCJgIKneA;9$Car{f2*?niZjjNnE}4o+_6AuP_aFr0z=}z`FJcby tY{kVw@|q7yHMTp~8X@_qe+9pb`~k-Zze}uFON#&i002ovPDHLkV1nd*^2h)H literal 0 HcmV?d00001 From 62805c9eea2a523aa72d832f4dc6e147ee3c7a25 Mon Sep 17 00:00:00 2001 From: deathrow Date: Thu, 5 Jan 2023 19:44:52 -0500 Subject: [PATCH 064/169] Schild Onion --- _items/Services.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/_items/Services.md b/_items/Services.md index caed10e..f586e4e 100644 --- a/_items/Services.md +++ b/_items/Services.md @@ -98,8 +98,7 @@ Incidents: `1` - [Cinny](https://cinny.anonymousland.org) - [Element](https://element.anonymousland.org) -- [Schild](https://schild.anonymousland.org) - +- [Schild](https://schild.anonymousland.org)
From c555f8fdfd0c42cd6fad8e2de2e3317336a02fa9 Mon Sep 17 00:00:00 2001 From: NebulaOnion Date: Sun, 8 Jan 2023 15:06:00 +0000 Subject: [PATCH 065/169] Combine CSS, convert to Sass and minify (#65) Co-authored-by: deathrow Co-authored-by: NebulaOnion <84784521+nebulaonion@users.noreply.github.com> Reviewed-on: https://git.anonymousland.org/anonymousland/anonymousland/pulls/65 --- _config.yml | 4 +- _includes/head.html | 6 +- _includes/links.html | 1 - _layouts/default1.html | 2 +- _sass/_base.scss | 150 ---- _sass/_bootstrap.scss | 56 -- _sass/_variables-dark.scss | 871 ------------------- _sass/_variables-light.scss | 871 ------------------- _sass/highlight/base16.scss | 173 ++++ _sass/highlight/colorful.scss | 281 ++++++ _sass/highlight/github.scss | 254 ++++++ _sass/highlight/gruvbox.scss | 188 ++++ _sass/highlight/molokai.scss | 241 +++++ _sass/highlight/monokai.scss | 250 ++++++ _sass/highlight/pastie.scss | 269 ++++++ _sass/highlight/thankful_eyes.scss | 296 +++++++ _sass/highlight/tulip.scss | 283 ++++++ _sass/main-dark.scss | 1111 ++++++++++++++++++++++++ assets/css/animate.min.css | 11 - assets/css/font-awesome.min.css | 4 - assets/css/google-fonts.css | 9 - assets/css/highlight/base16.css | 77 -- assets/css/highlight/colorful.css | 170 ---- assets/css/highlight/github.css | 209 ----- assets/css/highlight/gruvbox.css | 84 -- assets/css/highlight/molokai.css | 208 ----- assets/css/highlight/monokai.css | 210 ----- assets/css/highlight/pastie.css | 146 ---- assets/css/highlight/thankful_eyes.css | 173 ---- assets/css/highlight/tulip.css | 164 ---- assets/css/main-dark.scss | 8 - 31 files changed, 3351 insertions(+), 3429 deletions(-) delete mode 100644 _sass/_base.scss delete mode 100644 _sass/_bootstrap.scss delete mode 100644 _sass/_variables-dark.scss delete mode 100644 _sass/_variables-light.scss create mode 100644 _sass/highlight/base16.scss create mode 100644 _sass/highlight/colorful.scss create mode 100644 _sass/highlight/github.scss create mode 100644 _sass/highlight/gruvbox.scss create mode 100644 _sass/highlight/molokai.scss create mode 100644 _sass/highlight/monokai.scss create mode 100644 _sass/highlight/pastie.scss create mode 100644 _sass/highlight/thankful_eyes.scss create mode 100644 _sass/highlight/tulip.scss create mode 100644 _sass/main-dark.scss delete mode 100644 assets/css/animate.min.css delete mode 100644 assets/css/font-awesome.min.css delete mode 100644 assets/css/google-fonts.css delete mode 100644 assets/css/highlight/base16.css delete mode 100644 assets/css/highlight/colorful.css delete mode 100644 assets/css/highlight/github.css delete mode 100644 assets/css/highlight/gruvbox.css delete mode 100644 assets/css/highlight/molokai.css delete mode 100644 assets/css/highlight/monokai.css delete mode 100644 assets/css/highlight/pastie.css delete mode 100644 assets/css/highlight/thankful_eyes.css delete mode 100644 assets/css/highlight/tulip.css delete mode 100644 assets/css/main-dark.scss diff --git a/_config.yml b/_config.yml index 1b9e4ed..a26b07d 100644 --- a/_config.yml +++ b/_config.yml @@ -39,4 +39,6 @@ markdown: kramdown highlighter: rouge kramdown: input: GFM - syntax_highlighter: rouge \ No newline at end of file + syntax_highlighter: rouge +sass: + style: compressed \ No newline at end of file diff --git a/_includes/head.html b/_includes/head.html index 15040a7..9713a03 100644 --- a/_includes/head.html +++ b/_includes/head.html @@ -19,12 +19,8 @@ - - - - - + diff --git a/_includes/links.html b/_includes/links.html index 8649666..32a7cf6 100644 --- a/_includes/links.html +++ b/_includes/links.html @@ -1,4 +1,3 @@ - {% if site.github_username != null %} diff --git a/_layouts/default1.html b/_layouts/default1.html index fab691d..4457503 100644 --- a/_layouts/default1.html +++ b/_layouts/default1.html @@ -1,7 +1,7 @@ --- --- - + {% seo %} {% include head.html %} diff --git a/_sass/_base.scss b/_sass/_base.scss deleted file mode 100644 index d090654..0000000 --- a/_sass/_base.scss +++ /dev/null @@ -1,150 +0,0 @@ -// Custom SCSS -// General - -body { - background: linear-gradient($body-bg-header 10%, $body-bg 100%); - background-repeat: no-repeat; - background-attachment: fixed; - height: 100%; - width: 100%; - overflow-x: hidden; - text-shadow: 0 0 0.01em $shadow-color; -} - -a { - cursor: pointer; -} - -blockquote { - border-color: $gray; - border-width: 0 0 0 0.2em; - border-style: solid; -} - -h1 { - padding-top: 0.5em; - padding-bottom: 0.5em; -} - -h1 a, -h1 a:hover { - color: $brand-primary; -} - - -h1, -h2, -h3, -h4, -h5, -h6 { - color: $brand-danger; - text-decoration-color: $brand-danger; - border-bottom-color: $brand-danger; -} - -#background-div, -#background-svg { - width: 100%; - height: 100%; - position: fixed; - top: 0; - left: 0; - z-index: 0; -} - -#title { - margin-top: 0; -} - -// Social media hover colors colors -$icon-shadow: 0.1em; -$icons-list: github facebook twitter linkedin envelope; -$icons-colors: $github-color $facebook-color $twitter-color $linkedin-color $envelope-color; -@for $i from 1 through length($icons-list) { - .fa-#{nth($icons-list, $i)}:hover { - text-shadow: 0 0 $icon-shadow #{nth($icons-colors, $i)}; - } -} - -.bgColor1 { - stop-color: $bg-color1; -} - -.bgColor2 { - stop-color: $bg-color2; -} - -.page-footer { - margin-top: 8em; - - center div div a i { - color: $gray !important; - } -} - -.navbar-toggle:hover { - background-color: transparent !important; -} - -.navbar-icon:hover { - text-shadow: 0 0 $icon-shadow lighten($brand-primary, 20%); - color: $brand-primary !important; -} - -.navbar-icon { - color: $brand-primary !important; -} - -.navbar { - background-color: $navbar-bg; - transition: background-color 0.25s ease-in-out; - -webkit-transition: background-color 0.25s ease-in-out; -} - -nav:hover { - background-color: $navbar-default-bg; -} - -.post-title { - color: $brand-primary; -} - -.blog-post { - margin-bottom: 5em; -} - -$avatar-size: 10em; -.avatar-image { - height: auto; - width: auto; - max-height: $avatar-size; - max-width: $avatar-size; - border-radius: $avatar-size; - border-style: solid; - border-width: medium; - border-color: $gray-light; -} - -.avatar-description { - color: $gray-light; -} - -.hide { - display: none; -} - -.h1-overlay { - background: $h1-bg; - position: absolute; - width: 100%; - z-index: -1; - padding: 1em; -} - -.right-links { - a i { - font-size: 1.5em; - color: $gray !important; - } -} diff --git a/_sass/_bootstrap.scss b/_sass/_bootstrap.scss deleted file mode 100644 index e72d1de..0000000 --- a/_sass/_bootstrap.scss +++ /dev/null @@ -1,56 +0,0 @@ -/*! - * Bootstrap v3.3.7 (http://getbootstrap.com) - * Copyright 2011-2016 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - */ - -// Core variables and mixins -@import "bootstrap/variables"; -@import "bootstrap/mixins"; - -// Reset and dependencies -@import "bootstrap/normalize"; -@import "bootstrap/print"; -@import "bootstrap/glyphicons"; - -// Core CSS -@import "bootstrap/scaffolding"; -@import "bootstrap/type"; -@import "bootstrap/code"; -@import "bootstrap/grid"; -@import "bootstrap/tables"; -@import "bootstrap/forms"; -@import "bootstrap/buttons"; - -// Components -@import "bootstrap/component-animations"; -@import "bootstrap/dropdowns"; -@import "bootstrap/button-groups"; -@import "bootstrap/input-groups"; -@import "bootstrap/navs"; -@import "bootstrap/navbar"; -@import "bootstrap/breadcrumbs"; -@import "bootstrap/pagination"; -@import "bootstrap/pager"; -@import "bootstrap/labels"; -@import "bootstrap/badges"; -@import "bootstrap/jumbotron"; -@import "bootstrap/thumbnails"; -@import "bootstrap/alerts"; -@import "bootstrap/progress-bars"; -@import "bootstrap/media"; -@import "bootstrap/list-group"; -@import "bootstrap/panels"; -@import "bootstrap/responsive-embed"; -@import "bootstrap/wells"; -@import "bootstrap/close"; - -// Components w/ JavaScript -@import "bootstrap/modals"; -@import "bootstrap/tooltip"; -@import "bootstrap/popovers"; -@import "bootstrap/carousel"; - -// Utility classes -@import "bootstrap/utilities"; -@import "bootstrap/responsive-utilities"; diff --git a/_sass/_variables-dark.scss b/_sass/_variables-dark.scss deleted file mode 100644 index bf72660..0000000 --- a/_sass/_variables-dark.scss +++ /dev/null @@ -1,871 +0,0 @@ -// -// Variables -// -------------------------------------------------- - - -//== Colors -// -//## Gray and brand colors for use across Bootstrap. - -$gray-base: #000; -$gray-darker: lighten($gray-base, 13.5%); // #222 -$gray-darker-hover: darken($gray-darker, 5%); -$gray-dark: lighten($gray-base, 20%); // #333 -$gray: lighten($gray-base, 33.5%); // #555 -$gray-light: lighten($gray-base, 46.7%); // #777 -$gray-lighter: lighten($gray-base, 82.5%); -$gray-white: lighten($gray-base, 100%); // #fff - -$brand-primary: #1F7F1F; -$brand-success: #3F7F3F; -$brand-info: #3F7F7F; -$brand-warning: #7F6F3F; -$brand-danger: #7F3F3F; - -// Icons colors -$github-color: #666; -$facebook-color: #3b5998; -$twitter-color: #326ada; -$linkedin-color: #0077b5; -$envelope-color: #c71610; - -//== Scaffolding -// -//## Settings for some of the most global styles. - -//** Background color for ``. -$body-bg-header: $gray-base; -$body-bg: darken(desaturate($brand-primary, 50%), 15%); - -//** Global text color on ``. -$text-color: $gray-lighter; -$shadow-color: currentColor; -$h1-bg: rgba($body-bg-header, 0.2); -$bg-color1: $brand-primary; -$bg-color2: $brand-danger; - -//** Global textual link color. -$link-color: lighten($brand-primary, 15%); -//** Link hover color set via `darken()` function. -$link-hover-color: $link-color; -//** Link hover decoration. -$link-hover-decoration: underline; - - -//== Typography -// -//## Font, line-height, and color for body text, headings, and more. - -$font-family-sans-serif: "Source Code Pro", Helvetica, Arial, sans-serif; -$font-family-serif: Georgia, "Times New Roman", Times, serif; -//** Default monospace fonts for ``, ``, and `
`.
-$font-family-monospace:   "Source Code Pro", Menlo, Monaco, Consolas, "Courier New", monospace;
-$font-family-base:        $font-family-monospace;
-
-$font-size-base:          15px;
-$font-size-large:         ceil(($font-size-base * 1.25)); // ~18px
-$font-size-small:         ceil(($font-size-base * 0.85)); // ~12px
-
-$font-size-h1:            floor(($font-size-base * 2.6)); // ~36px
-$font-size-h2:            floor(($font-size-base * 2.15)); // ~30px
-$font-size-h3:            ceil(($font-size-base * 1.7)); // ~24px
-$font-size-h4:            ceil(($font-size-base * 1.25)); // ~18px
-$font-size-h5:            $font-size-base;
-$font-size-h6:            ceil(($font-size-base * 0.85)); // ~12px
-
-//** Unit-less `line-height` for use in components like buttons.
-$line-height-base:        1.428571429; // 20/14
-//** Computed "line-height" (`font-size` * `line-height`) for use with `margin`, `padding`, etc.
-$line-height-computed:    floor(($font-size-base * $line-height-base)); // ~20px
-
-//** By default, this inherits from the ``.
-$headings-font-family:    inherit;
-$headings-font-weight:    500;
-$headings-line-height:    1.1;
-$headings-color:          inherit;
-
-
-//== Iconography
-//
-//## Specify custom location and filename of the included Glyphicons icon font. Useful for those including Bootstrap via Bower.
-
-//** Load fonts from this directory.
-$icon-font-path:          "../fonts/";
-//** File name for all font files.
-$icon-font-name:          "glyphicons-halflings-regular";
-//** Element ID within SVG icon file.
-$icon-font-svg-id:        "glyphicons_halflingsregular";
-
-
-//== Components
-//
-//## Define common padding and border radius sizes and more. Values based on 14px text and 1.428 line-height (~20px to start).
-
-$padding-base-vertical:     6px;
-$padding-base-horizontal:   12px;
-
-$padding-large-vertical:    10px;
-$padding-large-horizontal:  16px;
-
-$padding-small-vertical:    5px;
-$padding-small-horizontal:  10px;
-
-$padding-xs-vertical:       1px;
-$padding-xs-horizontal:     5px;
-
-$line-height-large:         1.33;
-$line-height-small:         1.5;
-
-$border-radius-base:        4px;
-$border-radius-large:       6px;
-$border-radius-small:       3px;
-
-//** Global color for active items (e.g., navs or dropdowns).
-$component-active-color:    $gray-darker;
-//** Global background color for active items (e.g., navs or dropdowns).
-$component-active-bg:       $gray-darker;
-
-//** Width of the `border` for generating carets that indicator dropdowns.
-$caret-width-base:          4px;
-//** Carets increase slightly in size for larger components.
-$caret-width-large:         5px;
-
-
-//== Tables
-//
-//## Customizes the `.table` component with basic values, each used across all table variations.
-
-//** Padding for ``s and ``s.
-$table-cell-padding:            8px;
-//** Padding for cells in `.table-condensed`.
-$table-condensed-cell-padding:  5px;
-
-//** Default background color used for all tables.
-$table-bg:                      transparent;
-//** Background color used for `.table-striped`.
-$table-bg-accent:               $gray-dark;
-//** Background color used for `.table-hover`.
-$table-bg-hover:                $gray-darker-hover;
-$table-bg-active:               $table-bg-hover;
-
-//** Border color for table and cell borders.
-$table-border-color:            $gray;
-
-
-//== Buttons
-//
-//## For each of Bootstrap's buttons, define text, background and border color.
-
-$btn-font-weight:                normal;
-
-$btn-default-color:              $gray-lighter;
-$btn-default-bg:                 $gray-dark;
-$btn-default-border:             darken($btn-default-bg, 5%);
-
-$btn-primary-color:              $gray-lighter;
-$btn-primary-bg:                 $brand-primary;
-$btn-primary-border:             darken($btn-primary-bg, 5%);
-
-$btn-success-color:              $gray-lighter;
-$btn-success-bg:                 $brand-success;
-$btn-success-border:             darken($btn-success-bg, 5%);
-
-$btn-info-color:                 $gray-lighter;
-$btn-info-bg:                    $brand-info;
-$btn-info-border:                darken($btn-info-bg, 5%);
-
-$btn-warning-color:              $gray-lighter;
-$btn-warning-bg:                 $brand-warning;
-$btn-warning-border:             darken($btn-warning-bg, 5%);
-
-$btn-danger-color:               $gray-lighter;
-$btn-danger-bg:                  $brand-danger;
-$btn-danger-border:              darken($btn-danger-bg, 5%);
-
-$btn-link-disabled-color:        $gray-light;
-
-
-//== Forms
-//
-//##
-
-//** `` background color
-$input-bg:                       $gray-dark;
-//** `` background color
-$input-bg-disabled:              $gray;
-
-//** Text color for ``s
-$input-color:                    $gray-lighter;
-//** `` border color
-$input-border:                   $gray;
-
-// TODO: Rename `$input-border-radius` to `$input-border-radius-base` in v4
-//** Default `.form-control` border radius
-$input-border-radius:            $border-radius-base;
-//** Large `.form-control` border radius
-$input-border-radius-large:      $border-radius-large;
-//** Small `.form-control` border radius
-$input-border-radius-small:      $border-radius-small;
-
-//** Border color for inputs on focus
-$input-border-focus:             $brand-primary;
-
-//** Placeholder text color
-$input-color-placeholder:        $gray-light;
-
-//** Default `.form-control` height
-$input-height-base:              ($line-height-computed + ($padding-base-vertical * 2) + 2);
-//** Large `.form-control` height
-$input-height-large:             (ceil($font-size-large * $line-height-large) + ($padding-large-vertical * 2) + 2);
-//** Small `.form-control` height
-$input-height-small:             (floor($font-size-small * $line-height-small) + ($padding-small-vertical * 2) + 2);
-
-$legend-color:                   $gray-dark;
-$legend-border-color:            $brand-primary;
-
-//** Background color for textual input addons
-$input-group-addon-bg:           $gray-dark;
-//** Border color for textual input addons
-$input-group-addon-border-color: $input-border;
-
-//** Disabled cursor for form controls and buttons.
-$cursor-disabled:                not-allowed;
-
-
-//== Dropdowns
-//
-//## Dropdown menu container and contents.
-
-//** Background for the dropdown menu.
-$dropdown-bg:                    $gray-darker;
-//** Dropdown menu `border-color`.
-$dropdown-border:                rgba(0,0,0,.15);
-//** Dropdown menu `border-color` **for IE8**.
-$dropdown-fallback-border:       $gray-darker;
-//** Divider color for between dropdown items.
-$dropdown-divider-bg:            $gray-dark;
-
-//** Dropdown link text color.
-$dropdown-link-color:            $brand-primary;
-//** Hover color for dropdown links.
-$dropdown-link-hover-color:      darken($dropdown-link-color, 5%);
-//** Hover background for dropdown links.
-$dropdown-link-hover-bg:         $gray-darker-hover;
-
-//** Active dropdown menu item text color.
-$dropdown-link-active-color:     $component-active-color;
-//** Active dropdown menu item background color.
-$dropdown-link-active-bg:        $component-active-bg;
-
-//** Disabled dropdown menu item background color.
-$dropdown-link-disabled-color:   $gray-darker;
-
-//** Text color for headers within dropdown menus.
-$dropdown-header-color:          $gray-light;
-
-//** Deprecated `$dropdown-caret-color` as of v3.1.0
-$dropdown-caret-color:           $gray-base;
-
-
-//-- Z-index master list
-//
-// Warning: Avoid customizing these values. They're used for a bird's eye view
-// of components dependent on the z-axis and are designed to all work together.
-//
-// Note: These variables are not generated into the Customizer.
-
-$zindex-navbar:            1000;
-$zindex-dropdown:          1000;
-$zindex-popover:           1060;
-$zindex-tooltip:           1070;
-$zindex-navbar-fixed:      1030;
-$zindex-modal:             1040;
-
-
-//== Media queries breakpoints
-//
-//## Define the breakpoints at which your layout will change, adapting to different screen sizes.
-
-// Extra small screen / phone
-//** Deprecated `$screen-xs` as of v3.0.1
-$screen-xs:                  480px;
-//** Deprecated `$screen-xs-min` as of v3.2.0
-$screen-xs-min:              $screen-xs;
-//** Deprecated `$screen-phone` as of v3.0.1
-$screen-phone:               $screen-xs-min;
-
-// Small screen / tablet
-//** Deprecated `$screen-sm` as of v3.0.1
-$screen-sm:                  768px;
-$screen-sm-min:              $screen-sm;
-//** Deprecated `$screen-tablet` as of v3.0.1
-$screen-tablet:              $screen-sm-min;
-
-// Medium screen / desktop
-//** Deprecated `$screen-md` as of v3.0.1
-$screen-md:                  992px;
-$screen-md-min:              $screen-md;
-//** Deprecated `$screen-desktop` as of v3.0.1
-$screen-desktop:             $screen-md-min;
-
-// Large screen / wide desktop
-//** Deprecated `$screen-lg` as of v3.0.1
-$screen-lg:                  1200px;
-$screen-lg-min:              $screen-lg;
-//** Deprecated `$screen-lg-desktop` as of v3.0.1
-$screen-lg-desktop:          $screen-lg-min;
-
-// So media queries don't overlap when required, provide a maximum
-$screen-xs-max:              ($screen-sm-min - 1);
-$screen-sm-max:              ($screen-md-min - 1);
-$screen-md-max:              ($screen-lg-min - 1);
-
-
-//== Grid system
-//
-//## Define your custom responsive grid.
-
-//** Number of columns in the grid.
-$grid-columns:              12;
-//** Padding between columns. Gets divided in half for the left and right.
-$grid-gutter-width:         30px;
-// Navbar collapse
-//** Point at which the navbar becomes uncollapsed.
-$grid-float-breakpoint:     $screen-sm-min;
-//** Point at which the navbar begins collapsing.
-$grid-float-breakpoint-max: ($grid-float-breakpoint - 1);
-
-
-//== Container sizes
-//
-//## Define the maximum width of `.container` for different screen sizes.
-
-// Small screen / tablet
-$container-tablet:             (720px + $grid-gutter-width);
-//** For `$screen-sm-min` and up.
-$container-sm:                 $container-tablet;
-
-// Medium screen / desktop
-$container-desktop:            (940px + $grid-gutter-width);
-//** For `$screen-md-min` and up.
-$container-md:                 $container-desktop;
-
-// Large screen / wide desktop
-$container-large-desktop:      (1140px + $grid-gutter-width);
-//** For `$screen-lg-min` and up.
-$container-lg:                 $container-large-desktop;
-
-
-//== Navbar
-//
-//##
-
-// Basics of a navbar
-$navbar-height:                    50px;
-$navbar-margin-bottom:             $line-height-computed;
-$navbar-border-radius:             $border-radius-base;
-$navbar-padding-horizontal:        floor(($grid-gutter-width / 2));
-$navbar-padding-vertical:          (($navbar-height - $line-height-computed) / 2);
-$navbar-collapse-max-height:       340px;
-
-$navbar-default-color:             $gray-light;
-$navbar-default-bg:                $gray-base;
-$navbar-bg:                        rgba($body-bg-header, 0.7);
-$navbar-default-border:            transparent;
-
-// Navbar links
-$navbar-default-link-color:                $brand-primary;
-$navbar-default-link-hover-color:          $gray-light;
-$navbar-default-link-hover-bg:             opacity(0.5);
-$navbar-default-link-active-color:         $gray-light;
-$navbar-default-link-active-bg:            $gray-darker;
-$navbar-default-link-disabled-color:       $gray;
-$navbar-default-link-disabled-bg:          transparent;
-
-// Navbar brand label
-$navbar-default-brand-color:               $navbar-default-link-color;
-$navbar-default-brand-hover-color:         darken($navbar-default-brand-color, 10%);
-$navbar-default-brand-hover-bg:            transparent;
-
-// Navbar toggle
-$navbar-default-toggle-hover-bg:           #ddd;
-$navbar-default-toggle-icon-bar-bg:        #888;
-$navbar-default-toggle-border-color:       transparent;
-
-
-// Inverted navbar
-// Reset inverted navbar basics
-$navbar-inverse-color:                      lighten($gray-light, 15%);
-$navbar-inverse-bg:                         #222;
-$navbar-inverse-border:                     darken($navbar-inverse-bg, 10%);
-
-// Inverted navbar links
-$navbar-inverse-link-color:                 lighten($gray-light, 15%);
-$navbar-inverse-link-hover-color:           #fff;
-$navbar-inverse-link-hover-bg:              transparent;
-$navbar-inverse-link-active-color:          $navbar-inverse-link-hover-color;
-$navbar-inverse-link-active-bg:             darken($navbar-inverse-bg, 10%);
-$navbar-inverse-link-disabled-color:        #444;
-$navbar-inverse-link-disabled-bg:           transparent;
-
-// Inverted navbar brand label
-$navbar-inverse-brand-color:                $navbar-inverse-link-color;
-$navbar-inverse-brand-hover-color:          #fff;
-$navbar-inverse-brand-hover-bg:             transparent;
-
-// Inverted navbar toggle
-$navbar-inverse-toggle-hover-bg:            #333;
-$navbar-inverse-toggle-icon-bar-bg:         #fff;
-$navbar-inverse-toggle-border-color:        #333;
-
-
-//== Navs
-//
-//##
-
-//=== Shared nav styles
-$nav-link-padding:                          10px 15px;
-$nav-link-hover-bg:                         $gray-darker-hover;
-
-$nav-disabled-link-color:                   $gray-light;
-$nav-disabled-link-hover-color:             $gray-light;
-
-//== Tabs
-$nav-tabs-border-color:                     $gray;
-
-$nav-tabs-link-hover-border-color:          $gray;
-
-$nav-tabs-active-link-hover-bg:             $body-bg;
-$nav-tabs-active-link-hover-color:          $gray;
-$nav-tabs-active-link-hover-border-color:   $gray;
-
-$nav-tabs-justified-link-border-color:            $gray;
-$nav-tabs-justified-active-link-border-color:     $body-bg;
-
-//== Pills
-$nav-pills-border-radius:                   $border-radius-base;
-$nav-pills-active-link-hover-bg:            $component-active-bg;
-$nav-pills-active-link-hover-color:         $component-active-color;
-
-
-//== Pagination
-//
-//##
-
-$pagination-color:                     $link-color;
-$pagination-bg:                        $gray-darker;
-$pagination-border:                    $gray;
-
-$pagination-hover-color:               $link-hover-color;
-$pagination-hover-bg:                  $gray-darker-hover;
-$pagination-hover-border:              $gray;
-
-$pagination-active-color:              $gray-lighter;
-$pagination-active-bg:                 $brand-primary;
-$pagination-active-border:             $brand-primary;
-
-$pagination-disabled-color:            $gray-light;
-$pagination-disabled-bg:               $gray-dark;
-$pagination-disabled-border:           $gray;
-
-
-//== Pager
-//
-//##
-
-$pager-bg:                             $pagination-bg;
-$pager-border:                         $pagination-border;
-$pager-border-radius:                  15px;
-
-$pager-hover-bg:                       $pagination-hover-bg;
-
-$pager-active-bg:                      $pagination-active-bg;
-$pager-active-color:                   $pagination-active-color;
-
-$pager-disabled-color:                 $pagination-disabled-color;
-
-
-//== Jumbotron
-//
-//##
-
-$jumbotron-padding:              30px;
-$jumbotron-color:                inherit;
-$jumbotron-bg:                   $gray-darker-hover;
-$jumbotron-heading-color:        inherit;
-$jumbotron-font-size:            ceil(($font-size-base * 1.5));
-
-
-//== Form states and alerts
-//
-//## Define colors for form feedback states and, by default, alerts.
-
-$state-success-text:             lighten($brand-success, 50%);
-$state-success-bg:               $brand-success;
-// $state-success-border:           darken(spin($state-success-bg, -10), 5%);
-
-$state-info-text:                lighten($brand-info, 50%);
-$state-info-bg:                  $brand-info;
-// $state-info-border:              darken(spin($state-info-bg, -10), 7%);
-
-$state-warning-text:             lighten($brand-warning, 50%);
-$state-warning-bg:               $brand-warning;
-// $state-warning-border:           darken(spin($state-warning-bg, -10), 5%);
-
-$state-danger-text:              lighten($brand-danger, 50%);
-$state-danger-bg:                $brand-danger;
-// $state-danger-border:            darken(spin($state-danger-bg, -10), 5%);
-
-
-//== Tooltips
-//
-//##
-
-//** Tooltip max width
-$tooltip-max-width:           200px;
-//** Tooltip text color
-$tooltip-color:               #fff;
-//** Tooltip background color
-$tooltip-bg:                  #000;
-$tooltip-opacity:             .9;
-
-//** Tooltip arrow width
-$tooltip-arrow-width:         5px;
-//** Tooltip arrow color
-$tooltip-arrow-color:         $tooltip-bg;
-
-
-//== Popovers
-//
-//##
-
-//** Popover body background color
-$popover-bg:                          #fff;
-//** Popover maximum width
-$popover-max-width:                   276px;
-//** Popover border color
-$popover-border-color:                rgba(0,0,0,.2);
-//** Popover fallback border color
-$popover-fallback-border-color:       #ccc;
-
-//** Popover title background color
-$popover-title-bg:                    darken($popover-bg, 3%);
-
-//** Popover arrow width
-$popover-arrow-width:                 10px;
-//** Popover arrow color
-$popover-arrow-color:                 $popover-bg;
-
-//** Popover outer arrow width
-$popover-arrow-outer-width:           ($popover-arrow-width + 1);
-//** Popover outer arrow color
-$popover-arrow-outer-color:           fadein($popover-border-color, 5%);
-//** Popover outer arrow fallback color
-$popover-arrow-outer-fallback-color:  darken($popover-fallback-border-color, 20%);
-
-
-//== Labels
-//
-//##
-
-//** Default label background color
-$label-default-bg:            $gray-light;
-//** Primary label background color
-$label-primary-bg:            $brand-primary;
-//** Success label background color
-$label-success-bg:            $brand-success;
-//** Info label background color
-$label-info-bg:               $brand-info;
-//** Warning label background color
-$label-warning-bg:            $brand-warning;
-//** Danger label background color
-$label-danger-bg:             $brand-danger;
-
-//** Default label text color
-$label-color:                 #fff;
-//** Default text color of a linked label
-$label-link-hover-color:      #fff;
-
-
-//== Modals
-//
-//##
-
-//** Padding applied to the modal body
-$modal-inner-padding:         15px;
-
-//** Padding applied to the modal title
-$modal-title-padding:         15px;
-//** Modal title line-height
-$modal-title-line-height:     $line-height-base;
-
-//** Background color of modal content area
-$modal-content-bg:                             #fff;
-//** Modal content border color
-$modal-content-border-color:                   rgba(0,0,0,.2);
-//** Modal content border color **for IE8**
-$modal-content-fallback-border-color:          #999;
-
-//** Modal backdrop background color
-$modal-backdrop-bg:           #000;
-//** Modal backdrop opacity
-$modal-backdrop-opacity:      .5;
-//** Modal header border color
-$modal-header-border-color:   #e5e5e5;
-//** Modal footer border color
-$modal-footer-border-color:   $modal-header-border-color;
-
-$modal-lg:                    900px;
-$modal-md:                    600px;
-$modal-sm:                    300px;
-
-
-//== Alerts
-//
-//## Define alert colors, border radius, and padding.
-
-$alert-padding:               15px;
-$alert-border-radius:         $border-radius-base;
-$alert-link-font-weight:      bold;
-
-// $alert-success-bg:            $state-success-bg;
-// $alert-success-text:          $state-success-text;
-// $alert-success-border:        $state-success-border;
-//
-// $alert-info-bg:               $state-info-bg;
-// $alert-info-text:             $state-info-text;
-// $alert-info-border:           $state-info-border;
-//
-// $alert-warning-bg:            $state-warning-bg;
-// $alert-warning-text:          $state-warning-text;
-// $alert-warning-border:        $state-warning-border;
-//
-// $alert-danger-bg:             $state-danger-bg;
-// $alert-danger-text:           $state-danger-text;
-// $alert-danger-border:         $state-danger-border;
-//
-
-//== Progress bars
-//
-//##
-
-//** Background color of the whole progress component
-$progress-bg:                 $gray-darker-hover;
-//** Progress bar text color
-$progress-bar-color:          $gray-lighter;
-//** Variable for setting rounded corners on progress bar.
-$progress-border-radius:      $border-radius-base;
-
-//** Default progress bar color
-$progress-bar-bg:             $brand-primary;
-//** Success progress bar color
-$progress-bar-success-bg:     $brand-success;
-//** Warning progress bar color
-$progress-bar-warning-bg:     $brand-warning;
-//** Danger progress bar color
-$progress-bar-danger-bg:      $brand-danger;
-//** Info progress bar color
-$progress-bar-info-bg:        $brand-info;
-
-
-//== List group
-//
-//##
-
-//** Background color on `.list-group-item`
-$list-group-bg:                 $gray-darker;
-//** `.list-group-item` border color
-$list-group-border:             $gray;
-//** List group border radius
-$list-group-border-radius:      $border-radius-base;
-
-//** Background color of single list items on hover
-$list-group-hover-bg:           $gray-darker-hover;
-//** Text color of active list items
-$list-group-active-color:       $gray-light;
-//** Background color of active list items
-$list-group-active-bg:          $component-active-bg;
-//** Border color of active list elements
-$list-group-active-border:      $list-group-active-bg;
-//** Text color for content within active list items
-$list-group-active-text-color:  lighten($list-group-active-bg, 40%);
-
-//** Text color of disabled list items
-$list-group-disabled-color:      $gray-light;
-//** Background color of disabled list items
-$list-group-disabled-bg:         $gray-lighter;
-//** Text color for content within disabled list items
-$list-group-disabled-text-color: $list-group-disabled-color;
-
-$list-group-link-color:         $gray-light;
-$list-group-link-hover-color:   $list-group-link-color;
-$list-group-link-heading-color: $gray-light;
-
-
-//== Panels
-//
-//##
-
-$panel-bg:                    $gray-darker;
-$panel-body-padding:          15px;
-$panel-heading-padding:       10px 15px;
-$panel-footer-padding:        $panel-heading-padding;
-$panel-border-radius:         $border-radius-base;
-
-//** Border color for elements within panels
-$panel-inner-border:          $gray;
-$panel-footer-bg:             $gray-darker-hover;
-
-$panel-default-text:          $gray-light;
-$panel-default-border:        $gray;
-$panel-default-heading-bg:    $gray-darker-hover;
-
-$panel-primary-text:          $gray-lighter;
-$panel-primary-border:        $brand-primary;
-$panel-primary-heading-bg:    $brand-primary;
-
-$panel-success-text:          $state-success-text;
-// $panel-success-border:        $state-success-border;
-$panel-success-heading-bg:    $state-success-bg;
-
-$panel-info-text:             $state-info-text;
-// $panel-info-border:           $state-info-border;
-$panel-info-heading-bg:       $state-info-bg;
-
-$panel-warning-text:          $state-warning-text;
-// $panel-warning-border:        $state-warning-border;
-$panel-warning-heading-bg:    $state-warning-bg;
-
-$panel-danger-text:           $state-danger-text;
-// $panel-danger-border:         $state-danger-border;
-$panel-danger-heading-bg:     $state-danger-bg;
-
-
-//== Thumbnails
-//
-//##
-
-//** Padding around the thumbnail image
-$thumbnail-padding:           4px;
-//** Thumbnail background color
-$thumbnail-bg:                $body-bg;
-//** Thumbnail border color
-$thumbnail-border:            $gray;
-//** Thumbnail border radius
-$thumbnail-border-radius:     $border-radius-base;
-
-//** Custom text color for thumbnail captions
-$thumbnail-caption-color:     $text-color;
-//** Padding around the thumbnail caption
-$thumbnail-caption-padding:   9px;
-
-
-//== Wells
-//
-//##
-
-$well-bg:                     $gray-darker;
-$well-border:                 $gray;
-
-
-//== Badges
-//
-//##
-
-$badge-color:                 $gray-darker;
-//** Linked badge text color on hover
-$badge-link-hover-color:      $gray-darker-hover;
-$badge-bg:                    $gray-light;
-
-//** Badge text color in active nav link
-$badge-active-color:          $link-color;
-//** Badge background color in active nav link
-$badge-active-bg:             $gray-darker;
-
-$badge-font-weight:           bold;
-$badge-line-height:           1;
-$badge-border-radius:         10px;
-
-
-//== Breadcrumbs
-//
-//##
-
-$breadcrumb-padding-vertical:   8px;
-$breadcrumb-padding-horizontal: 15px;
-//** Breadcrumb background color
-$breadcrumb-bg:                 $gray-darker;
-//** Breadcrumb text color
-$breadcrumb-color:              $gray-light;
-//** Text color of current page in the breadcrumb
-$breadcrumb-active-color:       $gray-light;
-//** Textual separator for between breadcrumb elements
-$breadcrumb-separator:          "/";
-
-
-//== Carousel
-//
-//##
-
-$carousel-text-shadow:                        0 1px 2px rgba(0,0,0,.6);
-
-$carousel-control-color:                      #fff;
-$carousel-control-width:                      15%;
-$carousel-control-opacity:                    .5;
-$carousel-control-font-size:                  20px;
-
-$carousel-indicator-active-bg:                #fff;
-$carousel-indicator-border-color:             #fff;
-
-$carousel-caption-color:                      #fff;
-
-
-//== Close
-//
-//##
-
-$close-font-weight:           bold;
-$close-color:                 #000;
-$close-text-shadow:           0 1px 0 #fff;
-
-
-//== Code
-//
-//##
-
-$code-color:                  lighten($brand-danger, 25%);
-$code-bg:                     rgba($text-color, 0.01);
-
-$kbd-color:                   #fff;
-$kbd-bg:                      #333;
-
-$pre-bg:                      #f5f5f5;      // Useless, Overwritten in _base.scss
-$pre-color:                   $gray-dark;   // Useless, Overwritten in _base.scss
-$pre-border-color:            #ccc;
-$pre-scrollable-max-height:   340px;
-
-
-//== Type
-//
-//##
-
-//** Horizontal offset for forms and lists.
-$component-offset-horizontal: 180px;
-//** Text muted color
-$text-muted:                  $gray-light;
-//** Abbreviations and acronyms border color
-$abbr-border-color:           $gray-light;
-//** Headings small color
-$headings-small-color:        $gray-light;
-//** Blockquote small color
-$blockquote-small-color:      $gray-light;
-//** Blockquote font size
-$blockquote-font-size:        ($font-size-base * 1.25);
-//** Blockquote border color
-$blockquote-border-color:     $gray-lighter;
-//** Page header border color
-$page-header-border-color:    $gray-lighter;
-//** Width of horizontal description list titles
-$dl-horizontal-offset:        $component-offset-horizontal;
-//** Horizontal line color.
-$hr-border:                   $gray-lighter;
diff --git a/_sass/_variables-light.scss b/_sass/_variables-light.scss
deleted file mode 100644
index bc57667..0000000
--- a/_sass/_variables-light.scss
+++ /dev/null
@@ -1,871 +0,0 @@
-//
-// Variables
-// --------------------------------------------------
-@import "variables-dark";
-
-//== Colors
-//
-//## Gray and brand colors for use across Bootstrap.
-
-$gray-base:              $gray-base;
-$gray-darker:            $gray-darker;
-$gray-darker-hover: 	   $gray-darker-hover;
-$gray-dark:              $gray-dark;
-$gray:                   $gray;
-$gray-light:             $gray-light;
-$gray-lighter:           $gray-lighter;
-$gray-white:             $gray-white;
-
-$brand-primary:         darken($brand-primary, 5%);
-$brand-success:         darken($brand-success, 5%);
-$brand-info:            darken($brand-info, 5%);
-$brand-warning:         darken($brand-warning, 5%);
-$brand-danger:          darken($brand-danger, 5%);
-
-// Icons colors
-$github-color:          #666;
-$facebook-color:        #3b5998;
-$twitter-color:         #326ada;
-$linkedin-color:        #0077b5;
-$envelope-color:        #c71610;
-
-//== Scaffolding
-//
-//## Settings for some of the most global styles.
-
-//** Background color for ``.
-$body-bg-header:        $gray-white;
-$body-bg:               desaturate(lighten($brand-danger, 60%), 30%);
-
-//** Global text color on ``.
-$text-color:            $gray-darker;
-$shadow-color:          transparent;
-$h1-bg:                 rgba($gray-white, 0.5);
-$bg-color1:             $brand-primary;
-$bg-color2:             $brand-danger;
-
-//** Global textual link color.
-$link-color:            lighten($brand-primary, 15%);
-//** Link hover color set via `darken()` function.
-$link-hover-color:      $link-color;
-//** Link hover decoration.
-$link-hover-decoration: underline;
-
-
-//== Typography
-//
-//## Font, line-height, and color for body text, headings, and more.
-
-$font-family-sans-serif:  "Source Code Pro", Helvetica, Arial, sans-serif;
-$font-family-serif:       Georgia, "Times New Roman", Times, serif;
-//** Default monospace fonts for ``, ``, and `
`.
-$font-family-monospace:   "Source Code Pro", Menlo, Monaco, Consolas, "Courier New", monospace;
-$font-family-base:        $font-family-monospace;
-
-$font-size-base:          15px;
-$font-size-large:         ceil(($font-size-base * 1.25)); // ~18px
-$font-size-small:         ceil(($font-size-base * 0.85)); // ~12px
-
-$font-size-h1:            floor(($font-size-base * 2.6)); // ~36px
-$font-size-h2:            floor(($font-size-base * 2.15)); // ~30px
-$font-size-h3:            ceil(($font-size-base * 1.7)); // ~24px
-$font-size-h4:            ceil(($font-size-base * 1.25)); // ~18px
-$font-size-h5:            $font-size-base;
-$font-size-h6:            ceil(($font-size-base * 0.85)); // ~12px
-
-//** Unit-less `line-height` for use in components like buttons.
-$line-height-base:        1.428571429; // 20/14
-//** Computed "line-height" (`font-size` * `line-height`) for use with `margin`, `padding`, etc.
-$line-height-computed:    floor(($font-size-base * $line-height-base)); // ~20px
-
-//** By default, this inherits from the ``.
-$headings-font-family:    inherit;
-$headings-font-weight:    500;
-$headings-line-height:    1.1;
-$headings-color:          inherit;
-
-
-//== Iconography
-//
-//## Specify custom location and filename of the included Glyphicons icon font. Useful for those including Bootstrap via Bower.
-
-//** Load fonts from this directory.
-$icon-font-path:          "../fonts/";
-//** File name for all font files.
-$icon-font-name:          "glyphicons-halflings-regular";
-//** Element ID within SVG icon file.
-$icon-font-svg-id:        "glyphicons_halflingsregular";
-
-
-//== Components
-//
-//## Define common padding and border radius sizes and more. Values based on 14px text and 1.428 line-height (~20px to start).
-
-$padding-base-vertical:     6px;
-$padding-base-horizontal:   12px;
-
-$padding-large-vertical:    10px;
-$padding-large-horizontal:  16px;
-
-$padding-small-vertical:    5px;
-$padding-small-horizontal:  10px;
-
-$padding-xs-vertical:       1px;
-$padding-xs-horizontal:     5px;
-
-$line-height-large:         1.33;
-$line-height-small:         1.5;
-
-$border-radius-base:        4px;
-$border-radius-large:       6px;
-$border-radius-small:       3px;
-
-//** Global color for active items (e.g., navs or dropdowns).
-$component-active-color:    $gray-light;
-//** Global background color for active items (e.g., navs or dropdowns).
-$component-active-bg:       $gray-light;
-
-//** Width of the `border` for generating carets that indicator dropdowns.
-$caret-width-base:          4px;
-//** Carets increase slightly in size for larger components.
-$caret-width-large:         5px;
-
-
-//== Tables
-//
-//## Customizes the `.table` component with basic values, each used across all table variations.
-
-//** Padding for ``s and ``s.
-$table-cell-padding:            8px;
-//** Padding for cells in `.table-condensed`.
-$table-condensed-cell-padding:  5px;
-
-//** Default background color used for all tables.
-$table-bg:                      transparent;
-//** Background color used for `.table-striped`.
-$table-bg-accent:               lighten($gray-lighter, 10%);
-//** Background color used for `.table-hover`.
-$table-bg-hover:                $gray-lighter;
-$table-bg-active:               $table-bg-hover;
-
-//** Border color for table and cell borders.
-$table-border-color:            $gray;
-
-
-//== Buttons
-//
-//## For each of Bootstrap's buttons, define text, background and border color.
-
-$btn-font-weight:                normal;
-
-$btn-default-color:              $gray-white;
-$btn-default-bg:                 $gray-dark;
-$btn-default-border:             darken($btn-default-bg, 5%);
-
-$btn-primary-color:              $gray-white;
-$btn-primary-bg:                 $brand-primary;
-$btn-primary-border:             darken($btn-primary-bg, 5%);
-
-$btn-success-color:              $gray-white;
-$btn-success-bg:                 $brand-success;
-$btn-success-border:             darken($btn-success-bg, 5%);
-
-$btn-info-color:                 $gray-white;
-$btn-info-bg:                    $brand-info;
-$btn-info-border:                darken($btn-info-bg, 5%);
-
-$btn-warning-color:              $gray-white;
-$btn-warning-bg:                 $brand-warning;
-$btn-warning-border:             darken($btn-warning-bg, 5%);
-
-$btn-danger-color:               $gray-white;
-$btn-danger-bg:                  $brand-danger;
-$btn-danger-border:              darken($btn-danger-bg, 5%);
-
-$btn-link-disabled-color:        $gray-light;
-
-
-//== Forms
-//
-//##
-
-//** `` background color
-$input-bg:                       $gray-dark;
-//** `` background color
-$input-bg-disabled:              $gray;
-
-//** Text color for ``s
-$input-color:                    $gray-lighter;
-//** `` border color
-$input-border:                   $gray;
-
-// TODO: Rename `$input-border-radius` to `$input-border-radius-base` in v4
-//** Default `.form-control` border radius
-$input-border-radius:            $border-radius-base;
-//** Large `.form-control` border radius
-$input-border-radius-large:      $border-radius-large;
-//** Small `.form-control` border radius
-$input-border-radius-small:      $border-radius-small;
-
-//** Border color for inputs on focus
-$input-border-focus:             $brand-primary;
-
-//** Placeholder text color
-$input-color-placeholder:        $gray-light;
-
-//** Default `.form-control` height
-$input-height-base:              ($line-height-computed + ($padding-base-vertical * 2) + 2);
-//** Large `.form-control` height
-$input-height-large:             (ceil($font-size-large * $line-height-large) + ($padding-large-vertical * 2) + 2);
-//** Small `.form-control` height
-$input-height-small:             (floor($font-size-small * $line-height-small) + ($padding-small-vertical * 2) + 2);
-
-$legend-color:                   $gray-dark;
-$legend-border-color:            $brand-primary;
-
-//** Background color for textual input addons
-$input-group-addon-bg:           $gray-dark;
-//** Border color for textual input addons
-$input-group-addon-border-color: $input-border;
-
-//** Disabled cursor for form controls and buttons.
-$cursor-disabled:                not-allowed;
-
-
-//== Dropdowns
-//
-//## Dropdown menu container and contents.
-
-//** Background for the dropdown menu.
-$dropdown-bg:                    $gray-white;
-//** Dropdown menu `border-color`.
-$dropdown-border:                rgba(0,0,0,.15);
-//** Dropdown menu `border-color` **for IE8**.
-$dropdown-fallback-border:       $gray-darker;
-//** Divider color for between dropdown items.
-$dropdown-divider-bg:            $gray-dark;
-
-//** Dropdown link text color.
-$dropdown-link-color:            $brand-primary;
-//** Hover color for dropdown links.
-$dropdown-link-hover-color:      darken($dropdown-link-color, 5%);
-//** Hover background for dropdown links.
-$dropdown-link-hover-bg:         $gray-lighter;
-
-//** Active dropdown menu item text color.
-$dropdown-link-active-color:     $component-active-color;
-//** Active dropdown menu item background color.
-$dropdown-link-active-bg:        $component-active-bg;
-
-//** Disabled dropdown menu item background color.
-$dropdown-link-disabled-color:   $gray-darker;
-
-//** Text color for headers within dropdown menus.
-$dropdown-header-color:          $gray-light;
-
-//** Deprecated `$dropdown-caret-color` as of v3.1.0
-$dropdown-caret-color:           $gray-base;
-
-
-//-- Z-index master list
-//
-// Warning: Avoid customizing these values. They're used for a bird's eye view
-// of components dependent on the z-axis and are designed to all work together.
-//
-// Note: These variables are not generated into the Customizer.
-
-$zindex-navbar:            1000;
-$zindex-dropdown:          1000;
-$zindex-popover:           1060;
-$zindex-tooltip:           1070;
-$zindex-navbar-fixed:      1030;
-$zindex-modal:             1040;
-
-
-//== Media queries breakpoints
-//
-//## Define the breakpoints at which your layout will change, adapting to different screen sizes.
-
-// Extra small screen / phone
-//** Deprecated `$screen-xs` as of v3.0.1
-$screen-xs:                  480px;
-//** Deprecated `$screen-xs-min` as of v3.2.0
-$screen-xs-min:              $screen-xs;
-//** Deprecated `$screen-phone` as of v3.0.1
-$screen-phone:               $screen-xs-min;
-
-// Small screen / tablet
-//** Deprecated `$screen-sm` as of v3.0.1
-$screen-sm:                  768px;
-$screen-sm-min:              $screen-sm;
-//** Deprecated `$screen-tablet` as of v3.0.1
-$screen-tablet:              $screen-sm-min;
-
-// Medium screen / desktop
-//** Deprecated `$screen-md` as of v3.0.1
-$screen-md:                  992px;
-$screen-md-min:              $screen-md;
-//** Deprecated `$screen-desktop` as of v3.0.1
-$screen-desktop:             $screen-md-min;
-
-// Large screen / wide desktop
-//** Deprecated `$screen-lg` as of v3.0.1
-$screen-lg:                  1200px;
-$screen-lg-min:              $screen-lg;
-//** Deprecated `$screen-lg-desktop` as of v3.0.1
-$screen-lg-desktop:          $screen-lg-min;
-
-// So media queries don't overlap when required, provide a maximum
-$screen-xs-max:              ($screen-sm-min - 1);
-$screen-sm-max:              ($screen-md-min - 1);
-$screen-md-max:              ($screen-lg-min - 1);
-
-
-//== Grid system
-//
-//## Define your custom responsive grid.
-
-//** Number of columns in the grid.
-$grid-columns:              12;
-//** Padding between columns. Gets divided in half for the left and right.
-$grid-gutter-width:         30px;
-// Navbar collapse
-//** Point at which the navbar becomes uncollapsed.
-$grid-float-breakpoint:     $screen-sm-min;
-//** Point at which the navbar begins collapsing.
-$grid-float-breakpoint-max: ($grid-float-breakpoint - 1);
-
-
-//== Container sizes
-//
-//## Define the maximum width of `.container` for different screen sizes.
-
-// Small screen / tablet
-$container-tablet:             (720px + $grid-gutter-width);
-//** For `$screen-sm-min` and up.
-$container-sm:                 $container-tablet;
-
-// Medium screen / desktop
-$container-desktop:            (940px + $grid-gutter-width);
-//** For `$screen-md-min` and up.
-$container-md:                 $container-desktop;
-
-// Large screen / wide desktop
-$container-large-desktop:      (1140px + $grid-gutter-width);
-//** For `$screen-lg-min` and up.
-$container-lg:                 $container-large-desktop;
-
-
-//== Navbar
-//
-//##
-
-// Basics of a navbar
-$navbar-height:                    50px;
-$navbar-margin-bottom:             $line-height-computed;
-$navbar-border-radius:             $border-radius-base;
-$navbar-padding-horizontal:        floor(($grid-gutter-width / 2));
-$navbar-padding-vertical:          (($navbar-height - $line-height-computed) / 2);
-$navbar-collapse-max-height:       340px;
-
-$navbar-default-color:             $gray-light;
-$navbar-default-bg:                $gray-white;
-$navbar-bg:                        rgba($gray-white, 0.5);
-$navbar-default-border:            transparent;
-
-// Navbar links
-$navbar-default-link-color:                $brand-primary;
-$navbar-default-link-hover-color:          $brand-primary;
-$navbar-default-link-hover-bg:             opacity(0.5);
-$navbar-default-link-active-color:         $gray-darker;
-$navbar-default-link-active-bg:            $gray-light;
-$navbar-default-link-disabled-color:       $gray;
-$navbar-default-link-disabled-bg:          transparent;
-
-// Navbar brand label
-$navbar-default-brand-color:               $navbar-default-link-color;
-$navbar-default-brand-hover-color:         darken($navbar-default-brand-color, 10%);
-$navbar-default-brand-hover-bg:            transparent;
-
-// Navbar toggle
-$navbar-default-toggle-hover-bg:           #ddd;
-$navbar-default-toggle-icon-bar-bg:        #888;
-$navbar-default-toggle-border-color:       transparent;
-
-
-// Inverted navbar
-// Reset inverted navbar basics
-$navbar-inverse-color:                      lighten($gray-light, 15%);
-$navbar-inverse-bg:                         #222;
-$navbar-inverse-border:                     darken($navbar-inverse-bg, 10%);
-
-// Inverted navbar links
-$navbar-inverse-link-color:                 lighten($gray-light, 15%);
-$navbar-inverse-link-hover-color:           #fff;
-$navbar-inverse-link-hover-bg:              transparent;
-$navbar-inverse-link-active-color:          $navbar-inverse-link-hover-color;
-$navbar-inverse-link-active-bg:             darken($navbar-inverse-bg, 10%);
-$navbar-inverse-link-disabled-color:        #444;
-$navbar-inverse-link-disabled-bg:           transparent;
-
-// Inverted navbar brand label
-$navbar-inverse-brand-color:                $navbar-inverse-link-color;
-$navbar-inverse-brand-hover-color:          #fff;
-$navbar-inverse-brand-hover-bg:             transparent;
-
-// Inverted navbar toggle
-$navbar-inverse-toggle-hover-bg:            #333;
-$navbar-inverse-toggle-icon-bar-bg:         #fff;
-$navbar-inverse-toggle-border-color:        #333;
-
-
-//== Navs
-//
-//##
-
-//=== Shared nav styles
-$nav-link-padding:                          10px 15px;
-$nav-link-hover-bg:                         $gray-lighter;
-
-$nav-disabled-link-color:                   $gray-light;
-$nav-disabled-link-hover-color:             $gray-light;
-
-//== Tabs
-$nav-tabs-border-color:                     $gray;
-
-$nav-tabs-link-hover-border-color:          $gray;
-
-$nav-tabs-active-link-hover-bg:             $body-bg;
-$nav-tabs-active-link-hover-color:          $gray;
-$nav-tabs-active-link-hover-border-color:   $gray;
-
-$nav-tabs-justified-link-border-color:            $gray;
-$nav-tabs-justified-active-link-border-color:     $body-bg;
-
-//== Pills
-$nav-pills-border-radius:                   $border-radius-base;
-$nav-pills-active-link-hover-bg:            $component-active-bg;
-$nav-pills-active-link-hover-color:         $component-active-color;
-
-
-//== Pagination
-//
-//##
-
-$pagination-color:                     $link-color;
-$pagination-bg:                        $gray-darker;
-$pagination-border:                    $gray;
-
-$pagination-hover-color:               $link-hover-color;
-$pagination-hover-bg:                  $gray-darker-hover;
-$pagination-hover-border:              $gray;
-
-$pagination-active-color:              $gray-lighter;
-$pagination-active-bg:                 $brand-primary;
-$pagination-active-border:             $brand-primary;
-
-$pagination-disabled-color:            $gray-light;
-$pagination-disabled-bg:               $gray-dark;
-$pagination-disabled-border:           $gray;
-
-
-//== Pager
-//
-//##
-
-$pager-bg:                             $pagination-bg;
-$pager-border:                         $pagination-border;
-$pager-border-radius:                  15px;
-
-$pager-hover-bg:                       $pagination-hover-bg;
-
-$pager-active-bg:                      $pagination-active-bg;
-$pager-active-color:                   $pagination-active-color;
-
-$pager-disabled-color:                 $pagination-disabled-color;
-
-
-//== Jumbotron
-//
-//##
-
-$jumbotron-padding:              30px;
-$jumbotron-color:                inherit;
-$jumbotron-bg:                   $gray-lighter;
-$jumbotron-heading-color:        inherit;
-$jumbotron-font-size:            ceil(($font-size-base * 1.5));
-
-
-//== Form states and alerts
-//
-//## Define colors for form feedback states and, by default, alerts.
-
-$state-success-text:             lighten($brand-success, 60%);
-$state-success-bg:               $brand-success;
-// $state-success-border:           darken(spin($state-success-bg, -10), 5%);
-
-$state-info-text:                lighten($brand-info, 60%);
-$state-info-bg:                  $brand-info;
-// $state-info-border:              darken(spin($state-info-bg, -10), 7%);
-
-$state-warning-text:             lighten($brand-warning, 60%);
-$state-warning-bg:               $brand-warning;
-// $state-warning-border:           darken(spin($state-warning-bg, -10), 5%);
-
-$state-danger-text:              lighten($brand-danger, 60%);
-$state-danger-bg:                $brand-danger;
-// $state-danger-border:            darken(spin($state-danger-bg, -10), 5%);
-
-
-//== Tooltips
-//
-//##
-
-//** Tooltip max width
-$tooltip-max-width:           200px;
-//** Tooltip text color
-$tooltip-color:               #fff;
-//** Tooltip background color
-$tooltip-bg:                  #000;
-$tooltip-opacity:             .9;
-
-//** Tooltip arrow width
-$tooltip-arrow-width:         5px;
-//** Tooltip arrow color
-$tooltip-arrow-color:         $tooltip-bg;
-
-
-//== Popovers
-//
-//##
-
-//** Popover body background color
-$popover-bg:                          #fff;
-//** Popover maximum width
-$popover-max-width:                   276px;
-//** Popover border color
-$popover-border-color:                rgba(0,0,0,.2);
-//** Popover fallback border color
-$popover-fallback-border-color:       #ccc;
-
-//** Popover title background color
-$popover-title-bg:                    darken($popover-bg, 3%);
-
-//** Popover arrow width
-$popover-arrow-width:                 10px;
-//** Popover arrow color
-$popover-arrow-color:                 $popover-bg;
-
-//** Popover outer arrow width
-$popover-arrow-outer-width:           ($popover-arrow-width + 1);
-//** Popover outer arrow color
-$popover-arrow-outer-color:           fadein($popover-border-color, 5%);
-//** Popover outer arrow fallback color
-$popover-arrow-outer-fallback-color:  darken($popover-fallback-border-color, 20%);
-
-
-//== Labels
-//
-//##
-
-//** Default label background color
-$label-default-bg:            $gray-light;
-//** Primary label background color
-$label-primary-bg:            $brand-primary;
-//** Success label background color
-$label-success-bg:            $brand-success;
-//** Info label background color
-$label-info-bg:               $brand-info;
-//** Warning label background color
-$label-warning-bg:            $brand-warning;
-//** Danger label background color
-$label-danger-bg:             $brand-danger;
-
-//** Default label text color
-$label-color:                 #fff;
-//** Default text color of a linked label
-$label-link-hover-color:      #fff;
-
-
-//== Modals
-//
-//##
-
-//** Padding applied to the modal body
-$modal-inner-padding:         15px;
-
-//** Padding applied to the modal title
-$modal-title-padding:         15px;
-//** Modal title line-height
-$modal-title-line-height:     $line-height-base;
-
-//** Background color of modal content area
-$modal-content-bg:                             #fff;
-//** Modal content border color
-$modal-content-border-color:                   rgba(0,0,0,.2);
-//** Modal content border color **for IE8**
-$modal-content-fallback-border-color:          #999;
-
-//** Modal backdrop background color
-$modal-backdrop-bg:           #000;
-//** Modal backdrop opacity
-$modal-backdrop-opacity:      .5;
-//** Modal header border color
-$modal-header-border-color:   #e5e5e5;
-//** Modal footer border color
-$modal-footer-border-color:   $modal-header-border-color;
-
-$modal-lg:                    900px;
-$modal-md:                    600px;
-$modal-sm:                    300px;
-
-
-//== Alerts
-//
-//## Define alert colors, border radius, and padding.
-
-$alert-padding:               15px;
-$alert-border-radius:         $border-radius-base;
-$alert-link-font-weight:      bold;
-
-// $alert-success-bg:            $state-success-bg;
-// $alert-success-text:          $state-success-text;
-// $alert-success-border:        $state-success-border;
-//
-// $alert-info-bg:               $state-info-bg;
-// $alert-info-text:             $state-info-text;
-// $alert-info-border:           $state-info-border;
-//
-// $alert-warning-bg:            $state-warning-bg;
-// $alert-warning-text:          $state-warning-text;
-// $alert-warning-border:        $state-warning-border;
-//
-// $alert-danger-bg:             $state-danger-bg;
-// $alert-danger-text:           $state-danger-text;
-// $alert-danger-border:         $state-danger-border;
-//
-
-//== Progress bars
-//
-//##
-
-//** Background color of the whole progress component
-$progress-bg:                 $gray-lighter;
-//** Progress bar text color
-$progress-bar-color:          $gray-lighter;
-//** Variable for setting rounded corners on progress bar.
-$progress-border-radius:      $border-radius-base;
-
-//** Default progress bar color
-$progress-bar-bg:             $brand-primary;
-//** Success progress bar color
-$progress-bar-success-bg:     $brand-success;
-//** Warning progress bar color
-$progress-bar-warning-bg:     $brand-warning;
-//** Danger progress bar color
-$progress-bar-danger-bg:      $brand-danger;
-//** Info progress bar color
-$progress-bar-info-bg:        $brand-info;
-
-
-//== List group
-//
-//##
-
-//** Background color on `.list-group-item`
-$list-group-bg:                 $gray-lighter;
-//** `.list-group-item` border color
-$list-group-border:             $gray;
-//** List group border radius
-$list-group-border-radius:      $border-radius-base;
-
-//** Background color of single list items on hover
-$list-group-hover-bg:           $gray-white;
-//** Text color of active list items
-$list-group-active-color:       $gray;
-//** Background color of active list items
-$list-group-active-bg:          $component-active-bg;
-//** Border color of active list elements
-$list-group-active-border:      $list-group-active-bg;
-//** Text color for content within active list items
-$list-group-active-text-color:  lighten($list-group-active-bg, 40%);
-
-//** Text color of disabled list items
-$list-group-disabled-color:      $gray-light;
-//** Background color of disabled list items
-$list-group-disabled-bg:         $gray-lighter;
-//** Text color for content within disabled list items
-$list-group-disabled-text-color: $list-group-disabled-color;
-
-$list-group-link-color:         $gray-light;
-$list-group-link-hover-color:   $list-group-link-color;
-$list-group-link-heading-color: $gray-light;
-
-
-//== Panels
-//
-//##
-
-$panel-bg:                    $gray-white;
-$panel-body-padding:          15px;
-$panel-heading-padding:       10px 15px;
-$panel-footer-padding:        $panel-heading-padding;
-$panel-border-radius:         $border-radius-base;
-
-//** Border color for elements within panels
-$panel-inner-border:          $gray;
-$panel-footer-bg:             $gray-white;
-
-$panel-default-text:          $gray-light;
-$panel-default-border:        $gray;
-$panel-default-heading-bg:    $gray-white;
-
-$panel-primary-text:          $gray-lighter;
-$panel-primary-border:        $brand-primary;
-$panel-primary-heading-bg:    $brand-primary;
-
-$panel-success-text:          $state-success-text;
-// $panel-success-border:        $state-success-border;
-$panel-success-heading-bg:    $state-success-bg;
-
-$panel-info-text:             $state-info-text;
-// $panel-info-border:           $state-info-border;
-$panel-info-heading-bg:       $state-info-bg;
-
-$panel-warning-text:          $state-warning-text;
-// $panel-warning-border:        $state-warning-border;
-$panel-warning-heading-bg:    $state-warning-bg;
-
-$panel-danger-text:           $state-danger-text;
-// $panel-danger-border:         $state-danger-border;
-$panel-danger-heading-bg:     $state-danger-bg;
-
-
-//== Thumbnails
-//
-//##
-
-//** Padding around the thumbnail image
-$thumbnail-padding:           4px;
-//** Thumbnail background color
-$thumbnail-bg:                $body-bg;
-//** Thumbnail border color
-$thumbnail-border:            $gray;
-//** Thumbnail border radius
-$thumbnail-border-radius:     $border-radius-base;
-
-//** Custom text color for thumbnail captions
-$thumbnail-caption-color:     $text-color;
-//** Padding around the thumbnail caption
-$thumbnail-caption-padding:   9px;
-
-
-//== Wells
-//
-//##
-
-$well-bg:                     $gray-white;
-$well-border:                 $gray;
-
-
-//== Badges
-//
-//##
-
-$badge-color:                 $gray-darker;
-//** Linked badge text color on hover
-$badge-link-hover-color:      $gray-darker-hover;
-$badge-bg:                    $gray-light;
-
-//** Badge text color in active nav link
-$badge-active-color:          $link-color;
-//** Badge background color in active nav link
-$badge-active-bg:             $gray-darker;
-
-$badge-font-weight:           bold;
-$badge-line-height:           1;
-$badge-border-radius:         10px;
-
-
-//== Breadcrumbs
-//
-//##
-
-$breadcrumb-padding-vertical:   8px;
-$breadcrumb-padding-horizontal: 15px;
-//** Breadcrumb background color
-$breadcrumb-bg:                 $gray-darker;
-//** Breadcrumb text color
-$breadcrumb-color:              $gray-light;
-//** Text color of current page in the breadcrumb
-$breadcrumb-active-color:       $gray-light;
-//** Textual separator for between breadcrumb elements
-$breadcrumb-separator:          "/";
-
-
-//== Carousel
-//
-//##
-
-$carousel-text-shadow:                        0 1px 2px rgba(0,0,0,.6);
-
-$carousel-control-color:                      #fff;
-$carousel-control-width:                      15%;
-$carousel-control-opacity:                    .5;
-$carousel-control-font-size:                  20px;
-
-$carousel-indicator-active-bg:                #fff;
-$carousel-indicator-border-color:             #fff;
-
-$carousel-caption-color:                      #fff;
-
-
-//== Close
-//
-//##
-
-$close-font-weight:           bold;
-$close-color:                 #000;
-$close-text-shadow:           0 1px 0 #fff;
-
-
-//== Code
-//
-//##
-
-$code-color:                  lighten($brand-danger, 25%);
-$code-bg:                     rgba($text-color, 0.1);
-
-$kbd-color:                   #fff;
-$kbd-bg:                      #333;
-
-$pre-bg:                      #f5f5f5;      // Useless, Overwritten in _base.scss
-$pre-color:                   $gray-dark;   // Useless, Overwritten in _base.scss
-$pre-border-color:            #ccc;
-$pre-scrollable-max-height:   340px;
-
-
-//== Type
-//
-//##
-
-//** Horizontal offset for forms and lists.
-$component-offset-horizontal: 180px;
-//** Text muted color
-$text-muted:                  $gray-light;
-//** Abbreviations and acronyms border color
-$abbr-border-color:           $gray-light;
-//** Headings small color
-$headings-small-color:        $gray-light;
-//** Blockquote small color
-$blockquote-small-color:      $gray-light;
-//** Blockquote font size
-$blockquote-font-size:        ($font-size-base * 1.25);
-//** Blockquote border color
-$blockquote-border-color:     $gray-lighter;
-//** Page header border color
-$page-header-border-color:    $gray-lighter;
-//** Width of horizontal description list titles
-$dl-horizontal-offset:        $component-offset-horizontal;
-//** Horizontal line color.
-$hr-border:                   $gray-lighter;
diff --git a/_sass/highlight/base16.scss b/_sass/highlight/base16.scss
new file mode 100644
index 0000000..f1080d1
--- /dev/null
+++ b/_sass/highlight/base16.scss
@@ -0,0 +1,173 @@
+$color_1: #303030;
+$color_2: #151515;
+$color_3: #505050;
+$color_4: #f4bf75;
+$color_5: #d0d0d0;
+$color_6: #90a959;
+$color_7: #ac4142;
+$color_8: #6a9fb5;
+$color_9: #aa759f;
+$color_10: #d28445;
+$color_11: #75b5aa;
+$color_12: #8f5536;
+$background-color_1: #ac4142;
+$background-color_2: #151515;
+
+.highlight {
+	table {
+		td {
+			padding: 5px;
+		}
+		pre {
+			margin: 0;
+		}
+	}
+	color: $color_1;
+	.w {
+		color: $color_1;
+	}
+	.err {
+		color: $color_2;
+		background-color: $background-color_1;
+	}
+	.c {
+		color: $color_3;
+	}
+	.cd {
+		color: $color_3;
+	}
+	.cm {
+		color: $color_3;
+	}
+	.c1 {
+		color: $color_3;
+	}
+	.cs {
+		color: $color_3;
+	}
+	.cp {
+		color: $color_4;
+	}
+	.nt {
+		color: $color_4;
+	}
+	.o {
+		color: $color_5;
+	}
+	.ow {
+		color: $color_5;
+	}
+	.p {
+		color: $color_5;
+	}
+	.pi {
+		color: $color_5;
+	}
+	.gi {
+		color: $color_6;
+	}
+	.gd {
+		color: $color_7;
+	}
+	.gh {
+		color: $color_8;
+		background-color: $background-color_2;
+		font-weight: bold;
+	}
+	.k {
+		color: $color_9;
+	}
+	.kn {
+		color: $color_9;
+	}
+	.kp {
+		color: $color_9;
+	}
+	.kr {
+		color: $color_9;
+	}
+	.kv {
+		color: $color_9;
+	}
+	.kc {
+		color: $color_10;
+	}
+	.kt {
+		color: $color_10;
+	}
+	.kd {
+		color: $color_10;
+	}
+	.s {
+		color: $color_6;
+	}
+	.sb {
+		color: $color_6;
+	}
+	.sc {
+		color: $color_6;
+	}
+	.sd {
+		color: $color_6;
+	}
+	.s2 {
+		color: $color_6;
+	}
+	.sh {
+		color: $color_6;
+	}
+	.sx {
+		color: $color_6;
+	}
+	.s1 {
+		color: $color_6;
+	}
+	.sr {
+		color: $color_11;
+	}
+	.si {
+		color: $color_12;
+	}
+	.se {
+		color: $color_12;
+	}
+	.nn {
+		color: $color_4;
+	}
+	.nc {
+		color: $color_4;
+	}
+	.no {
+		color: $color_4;
+	}
+	.na {
+		color: $color_8;
+	}
+	.m {
+		color: $color_6;
+	}
+	.mf {
+		color: $color_6;
+	}
+	.mh {
+		color: $color_6;
+	}
+	.mi {
+		color: $color_6;
+	}
+	.il {
+		color: $color_6;
+	}
+	.mo {
+		color: $color_6;
+	}
+	.mb {
+		color: $color_6;
+	}
+	.mx {
+		color: $color_6;
+	}
+	.ss {
+		color: $color_6;
+	}
+}
diff --git a/_sass/highlight/colorful.scss b/_sass/highlight/colorful.scss
new file mode 100644
index 0000000..c911439
--- /dev/null
+++ b/_sass/highlight/colorful.scss
@@ -0,0 +1,281 @@
+$color_1: #bbbbbb;
+$color_2: #888;
+$color_3: #579;
+$color_4: #cc0000;
+$color_5: #080;
+$color_6: #038;
+$color_7: #339;
+$color_8: #333;
+$color_9: #000;
+$color_10: #007020;
+$color_11: #06B;
+$color_12: #B06;
+$color_13: #0e84b5;
+$color_14: #F00;
+$color_15: #963;
+$color_16: #33B;
+$color_17: #369;
+$color_18: #d70;
+$color_19: #036;
+$color_20: #970;
+$color_21: #800;
+$color_22: #00C;
+$color_23: #070;
+$color_24: #555;
+$color_25: #04D;
+$color_26: #D42;
+$color_27: #666;
+$color_28: #A60;
+$color_29: #D20;
+$color_30: #60E;
+$color_31: #00D;
+$color_32: #058;
+$color_33: #40E;
+$color_34: #000080;
+$color_35: #800080;
+$color_36: #A00000;
+$color_37: #00A000;
+$color_38: #FF0000;
+$color_39: #c65d09;
+$background-color_1: #000;
+$background-color_2: #fff0f0;
+$background-color_3: #eee;
+$background-color_4: #fff0ff;
+$background-color_5: #FAA;
+
+.highlight {
+	table {
+		td {
+			padding: 5px;
+		}
+		pre {
+			margin: 0;
+		}
+	}
+	color: $color_1;
+	background-color: $background-color_1;
+	.w {
+		color: $color_1;
+		background-color: $background-color_1;
+	}
+	.c {
+		color: $color_2;
+	}
+	.cd {
+		color: $color_2;
+	}
+	.cm {
+		color: $color_2;
+	}
+	.c1 {
+		color: $color_2;
+	}
+	.cp {
+		color: $color_3;
+	}
+	.cs {
+		color: $color_4;
+		font-weight: bold;
+	}
+	.k {
+		color: $color_5;
+		font-weight: bold;
+	}
+	.kc {
+		color: $color_5;
+		font-weight: bold;
+	}
+	.kd {
+		color: $color_5;
+		font-weight: bold;
+	}
+	.kn {
+		color: $color_5;
+		font-weight: bold;
+	}
+	.kr {
+		color: $color_5;
+		font-weight: bold;
+	}
+	.kv {
+		color: $color_5;
+		font-weight: bold;
+	}
+	.kp {
+		color: $color_6;
+	}
+	.kt {
+		color: $color_7;
+	}
+	.o {
+		color: $color_8;
+	}
+	.ow {
+		color: $color_9;
+		font-weight: bold;
+	}
+	.nb {
+		color: $color_10;
+	}
+	.bp {
+		color: $color_10;
+	}
+	.nf {
+		color: $color_11;
+		font-weight: bold;
+	}
+	.nc {
+		color: $color_12;
+		font-weight: bold;
+	}
+	.nn {
+		color: $color_13;
+		font-weight: bold;
+	}
+	.ne {
+		color: $color_14;
+		font-weight: bold;
+	}
+	.nv {
+		color: $color_15;
+	}
+	.vi {
+		color: $color_16;
+	}
+	.vc {
+		color: $color_17;
+	}
+	.vg {
+		color: $color_18;
+		font-weight: bold;
+	}
+	.no {
+		color: $color_19;
+		font-weight: bold;
+	}
+	.nl {
+		color: $color_20;
+		font-weight: bold;
+	}
+	.ni {
+		color: $color_21;
+		font-weight: bold;
+	}
+	.na {
+		color: $color_22;
+	}
+	.nt {
+		color: $color_23;
+	}
+	.nd {
+		color: $color_24;
+		font-weight: bold;
+	}
+	.s {
+		background-color: $background-color_2;
+	}
+	.sb {
+		background-color: $background-color_2;
+	}
+	.s2 {
+		background-color: $background-color_2;
+	}
+	.sh {
+		background-color: $background-color_2;
+	}
+	.s1 {
+		background-color: $background-color_2;
+	}
+	.sc {
+		color: $color_25;
+	}
+	.sd {
+		color: $color_26;
+	}
+	.si {
+		background-color: $background-color_3;
+	}
+	.se {
+		color: $color_27;
+		font-weight: bold;
+	}
+	.sr {
+		color: $color_9;
+		background-color: $background-color_4;
+	}
+	.ss {
+		color: $color_28;
+	}
+	.sx {
+		color: $color_29;
+	}
+	.m {
+		color: $color_30;
+		font-weight: bold;
+	}
+	.mb {
+		color: $color_30;
+		font-weight: bold;
+	}
+	.mx {
+		color: $color_30;
+		font-weight: bold;
+	}
+	.mi {
+		color: $color_31;
+		font-weight: bold;
+	}
+	.il {
+		color: $color_31;
+		font-weight: bold;
+	}
+	.mf {
+		color: $color_30;
+		font-weight: bold;
+	}
+	.mh {
+		color: $color_32;
+		font-weight: bold;
+	}
+	.mo {
+		color: $color_33;
+		font-weight: bold;
+	}
+	.gh {
+		color: $color_34;
+		font-weight: bold;
+	}
+	.gu {
+		color: $color_35;
+		font-weight: bold;
+	}
+	.gd {
+		color: $color_36;
+	}
+	.gi {
+		color: $color_37;
+	}
+	.gr {
+		color: $color_38;
+	}
+	.ge {
+		font-style: italic;
+	}
+	.gs {
+		font-weight: bold;
+	}
+	.gp {
+		color: $color_39;
+		font-weight: bold;
+	}
+	.go {
+		color: $color_2;
+	}
+	.gt {
+		color: $color_25;
+	}
+	.err {
+		color: $color_14;
+		background-color: $background-color_5;
+	}
+}
diff --git a/_sass/highlight/github.scss b/_sass/highlight/github.scss
new file mode 100644
index 0000000..f14b2af
--- /dev/null
+++ b/_sass/highlight/github.scss
@@ -0,0 +1,254 @@
+$color_1: #999988;
+$color_2: #999999;
+$color_3: #a61717;
+$color_4: #000000;
+$color_5: #aa0000;
+$color_6: #888888;
+$color_7: #555555;
+$color_8: #aaaaaa;
+$color_9: #445588;
+$color_10: #009999;
+$color_11: #d14;
+$color_12: #009926;
+$color_13: #990073;
+$color_14: #008080;
+$color_15: #0086B3;
+$color_16: #3c5d5d;
+$color_17: #800080;
+$color_18: #990000;
+$color_19: #000080;
+$color_20: #bbbbbb;
+$background-color_1: #e3d2d2;
+$background-color_2: #ffdddd;
+$background-color_3: #ddffdd;
+$background-color_4: #f8f8f8;
+
+.highlight {
+	table {
+		td {
+			padding: 5px;
+		}
+		pre {
+			margin: 0;
+		}
+	}
+	.cm {
+		color: $color_1;
+		font-style: italic;
+	}
+	.cp {
+		color: $color_2;
+		font-weight: bold;
+	}
+	.c1 {
+		color: $color_1;
+		font-style: italic;
+	}
+	.cs {
+		color: $color_2;
+		font-weight: bold;
+		font-style: italic;
+	}
+	.c {
+		color: $color_1;
+		font-style: italic;
+	}
+	.cd {
+		color: $color_1;
+		font-style: italic;
+	}
+	.err {
+		color: $color_3;
+		background-color: $background-color_1;
+	}
+	.gd {
+		color: $color_4;
+		background-color: $background-color_2;
+	}
+	.ge {
+		color: $color_4;
+		font-style: italic;
+	}
+	.gr {
+		color: $color_5;
+	}
+	.gh {
+		color: $color_2;
+	}
+	.gi {
+		color: $color_4;
+		background-color: $background-color_3;
+	}
+	.go {
+		color: $color_6;
+	}
+	.gp {
+		color: $color_7;
+	}
+	.gs {
+		font-weight: bold;
+	}
+	.gu {
+		color: $color_8;
+	}
+	.gt {
+		color: $color_5;
+	}
+	.kc {
+		color: $color_4;
+		font-weight: bold;
+	}
+	.kd {
+		color: $color_4;
+		font-weight: bold;
+	}
+	.kn {
+		color: $color_4;
+		font-weight: bold;
+	}
+	.kp {
+		color: $color_4;
+		font-weight: bold;
+	}
+	.kr {
+		color: $color_4;
+		font-weight: bold;
+	}
+	.kt {
+		color: $color_9;
+		font-weight: bold;
+	}
+	.k {
+		color: $color_4;
+		font-weight: bold;
+	}
+	.kv {
+		color: $color_4;
+		font-weight: bold;
+	}
+	.mf {
+		color: $color_10;
+	}
+	.mh {
+		color: $color_10;
+	}
+	.il {
+		color: $color_10;
+	}
+	.mi {
+		color: $color_10;
+	}
+	.mo {
+		color: $color_10;
+	}
+	.m {
+		color: $color_10;
+	}
+	.mb {
+		color: $color_10;
+	}
+	.mx {
+		color: $color_10;
+	}
+	.sb {
+		color: $color_11;
+	}
+	.sc {
+		color: $color_11;
+	}
+	.sd {
+		color: $color_11;
+	}
+	.s2 {
+		color: $color_11;
+	}
+	.se {
+		color: $color_11;
+	}
+	.sh {
+		color: $color_11;
+	}
+	.si {
+		color: $color_11;
+	}
+	.sx {
+		color: $color_11;
+	}
+	.sr {
+		color: $color_12;
+	}
+	.s1 {
+		color: $color_11;
+	}
+	.ss {
+		color: $color_13;
+	}
+	.s {
+		color: $color_11;
+	}
+	.na {
+		color: $color_14;
+	}
+	.bp {
+		color: $color_2;
+	}
+	.nb {
+		color: $color_15;
+	}
+	.nc {
+		color: $color_9;
+		font-weight: bold;
+	}
+	.no {
+		color: $color_14;
+	}
+	.nd {
+		color: $color_16;
+		font-weight: bold;
+	}
+	.ni {
+		color: $color_17;
+	}
+	.ne {
+		color: $color_18;
+		font-weight: bold;
+	}
+	.nf {
+		color: $color_18;
+		font-weight: bold;
+	}
+	.nl {
+		color: $color_18;
+		font-weight: bold;
+	}
+	.nn {
+		color: $color_7;
+	}
+	.nt {
+		color: $color_19;
+	}
+	.vc {
+		color: $color_14;
+	}
+	.vg {
+		color: $color_14;
+	}
+	.vi {
+		color: $color_14;
+	}
+	.nv {
+		color: $color_14;
+	}
+	.ow {
+		color: $color_4;
+		font-weight: bold;
+	}
+	.o {
+		color: $color_4;
+		font-weight: bold;
+	}
+	.w {
+		color: $color_20;
+	}
+	background-color: $background-color_4;
+}
diff --git a/_sass/highlight/gruvbox.scss b/_sass/highlight/gruvbox.scss
new file mode 100644
index 0000000..9573a3b
--- /dev/null
+++ b/_sass/highlight/gruvbox.scss
@@ -0,0 +1,188 @@
+$color_1: #fbf1c7;
+$color_2: #fb4934;
+$color_3: #928374;
+$color_4: #8ec07c;
+$color_5: #b8bb26;
+$color_6: #d3869b;
+$color_7: #fabd2f;
+$color_8: #fe8019;
+$color_9: #83a598;
+$background-color_1: #282828;
+
+.highlight {
+	table {
+		td {
+			padding: 5px;
+		}
+		pre {
+			margin: 0;
+		}
+	}
+	color: $color_1;
+	background-color: $background-color_1;
+	.w {
+		color: $color_1;
+		background-color: $background-color_1;
+	}
+	.err {
+		color: $color_2;
+		background-color: $background-color_1;
+		font-weight: bold;
+	}
+	.c {
+		color: $color_3;
+		font-style: italic;
+	}
+	.cd {
+		color: $color_3;
+		font-style: italic;
+	}
+	.cm {
+		color: $color_3;
+		font-style: italic;
+	}
+	.c1 {
+		color: $color_3;
+		font-style: italic;
+	}
+	.cs {
+		color: $color_3;
+		font-style: italic;
+	}
+	.cp {
+		color: $color_4;
+	}
+	.nt {
+		color: $color_2;
+	}
+	.o {
+		color: $color_1;
+	}
+	.ow {
+		color: $color_1;
+	}
+	.p {
+		color: $color_1;
+	}
+	.pi {
+		color: $color_1;
+	}
+	.gi {
+		color: $color_5;
+		background-color: $background-color_1;
+	}
+	.gd {
+		color: $color_2;
+		background-color: $background-color_1;
+	}
+	.gh {
+		color: $color_5;
+		font-weight: bold;
+	}
+	.k {
+		color: $color_2;
+	}
+	.kn {
+		color: $color_2;
+	}
+	.kp {
+		color: $color_2;
+	}
+	.kr {
+		color: $color_2;
+	}
+	.kv {
+		color: $color_2;
+	}
+	.kc {
+		color: $color_6;
+	}
+	.kt {
+		color: $color_7;
+	}
+	.kd {
+		color: $color_8;
+	}
+	.s {
+		color: $color_5;
+		font-style: italic;
+	}
+	.sb {
+		color: $color_5;
+		font-style: italic;
+	}
+	.sc {
+		color: $color_5;
+		font-style: italic;
+	}
+	.sd {
+		color: $color_5;
+		font-style: italic;
+	}
+	.s2 {
+		color: $color_5;
+		font-style: italic;
+	}
+	.sh {
+		color: $color_5;
+		font-style: italic;
+	}
+	.sx {
+		color: $color_5;
+		font-style: italic;
+	}
+	.s1 {
+		color: $color_5;
+		font-style: italic;
+	}
+	.si {
+		color: $color_5;
+		font-style: italic;
+	}
+	.sr {
+		color: $color_5;
+		font-style: italic;
+	}
+	.se {
+		color: $color_8;
+	}
+	.nn {
+		color: $color_4;
+	}
+	.nc {
+		color: $color_4;
+	}
+	.no {
+		color: $color_6;
+	}
+	.na {
+		color: $color_5;
+	}
+	.m {
+		color: $color_6;
+	}
+	.mf {
+		color: $color_6;
+	}
+	.mh {
+		color: $color_6;
+	}
+	.mi {
+		color: $color_6;
+	}
+	.il {
+		color: $color_6;
+	}
+	.mo {
+		color: $color_6;
+	}
+	.mb {
+		color: $color_6;
+	}
+	.mx {
+		color: $color_6;
+	}
+	.ss {
+		color: $color_9;
+	}
+}
diff --git a/_sass/highlight/molokai.scss b/_sass/highlight/molokai.scss
new file mode 100644
index 0000000..ac5a7ca
--- /dev/null
+++ b/_sass/highlight/molokai.scss
@@ -0,0 +1,241 @@
+$color_1: #5e5d83;
+$color_2: #465457;
+$color_3: #f8f8f2;
+$color_4: #a6e22e;
+$color_5: #f92672;
+$color_6: #1b1d1e;
+$color_7: #403d3d;
+$color_8: #66d9ef;
+$color_9: #af87ff;
+$color_10: #d7d787;
+$background-color_1: #403d3d;
+$background-color_2: #1b1d1e;
+
+.highlight {
+	table {
+		td {
+			padding: 5px;
+		}
+		pre {
+			margin: 0;
+		}
+	}
+	.c {
+		color: $color_1;
+		font-style: italic;
+	}
+	.cd {
+		color: $color_1;
+		font-style: italic;
+	}
+	.cm {
+		color: $color_1;
+		font-style: italic;
+	}
+	.c1 {
+		color: $color_1;
+		font-style: italic;
+	}
+	.cp {
+		color: $color_2;
+		font-weight: bold;
+	}
+	.cs {
+		color: $color_2;
+		font-weight: bold;
+		font-style: italic;
+	}
+	.err {
+		color: $color_3;
+		background-color: $background-color_1;
+	}
+	.gi {
+		color: $color_4;
+	}
+	.gd {
+		color: $color_5;
+	}
+	.ge {
+		color: $color_6;
+		font-style: italic;
+	}
+	.gr {
+		color: $color_5;
+	}
+	.gt {
+		color: $color_5;
+	}
+	.gh {
+		color: $color_7;
+	}
+	.go {
+		color: $color_7;
+	}
+	.gp {
+		color: $color_8;
+	}
+	.gs {
+		font-weight: bold;
+	}
+	.gu {
+		color: $color_2;
+	}
+	.k {
+		color: $color_8;
+		font-weight: bold;
+	}
+	.kv {
+		color: $color_8;
+		font-weight: bold;
+	}
+	.kc {
+		color: $color_8;
+		font-weight: bold;
+	}
+	.kd {
+		color: $color_8;
+		font-weight: bold;
+	}
+	.kp {
+		color: $color_8;
+		font-weight: bold;
+	}
+	.kr {
+		color: $color_8;
+		font-weight: bold;
+	}
+	.kt {
+		color: $color_8;
+		font-weight: bold;
+	}
+	.kn {
+		color: $color_5;
+		font-weight: bold;
+	}
+	.ow {
+		color: $color_5;
+		font-weight: bold;
+	}
+	.o {
+		color: $color_5;
+		font-weight: bold;
+	}
+	.mf {
+		color: $color_9;
+	}
+	.mh {
+		color: $color_9;
+	}
+	.il {
+		color: $color_9;
+	}
+	.mi {
+		color: $color_9;
+	}
+	.mo {
+		color: $color_9;
+	}
+	.m {
+		color: $color_9;
+	}
+	.mb {
+		color: $color_9;
+	}
+	.mx {
+		color: $color_9;
+	}
+	.se {
+		color: $color_9;
+	}
+	.sb {
+		color: $color_10;
+	}
+	.sc {
+		color: $color_10;
+	}
+	.sd {
+		color: $color_10;
+	}
+	.s2 {
+		color: $color_10;
+	}
+	.sh {
+		color: $color_10;
+	}
+	.si {
+		color: $color_10;
+	}
+	.sx {
+		color: $color_10;
+	}
+	.sr {
+		color: $color_10;
+	}
+	.s1 {
+		color: $color_10;
+	}
+	.ss {
+		color: $color_10;
+	}
+	.s {
+		color: $color_10;
+	}
+	.na {
+		color: $color_4;
+	}
+	.nc {
+		color: $color_4;
+		font-weight: bold;
+	}
+	.nd {
+		color: $color_4;
+		font-weight: bold;
+	}
+	.ne {
+		color: $color_4;
+		font-weight: bold;
+	}
+	.nf {
+		color: $color_4;
+		font-weight: bold;
+	}
+	.no {
+		color: $color_8;
+	}
+	.bp {
+		color: $color_3;
+	}
+	.nb {
+		color: $color_3;
+	}
+	.ni {
+		color: $color_3;
+	}
+	.nn {
+		color: $color_3;
+	}
+	.vc {
+		color: $color_3;
+	}
+	.vg {
+		color: $color_3;
+	}
+	.vi {
+		color: $color_3;
+	}
+	.nv {
+		color: $color_3;
+	}
+	.w {
+		color: $color_3;
+	}
+	.nl {
+		color: $color_3;
+		font-weight: bold;
+	}
+	.nt {
+		color: $color_5;
+	}
+	color: $color_3;
+	background-color: $background-color_2;
+}
diff --git a/_sass/highlight/monokai.scss b/_sass/highlight/monokai.scss
new file mode 100644
index 0000000..6598b88
--- /dev/null
+++ b/_sass/highlight/monokai.scss
@@ -0,0 +1,250 @@
+$color_1: #75715e;
+$color_2: #960050;
+$color_3: #ffffff;
+$color_4: #000000;
+$color_5: #aa0000;
+$color_6: #999999;
+$color_7: #888888;
+$color_8: #555555;
+$color_9: #aaaaaa;
+$color_10: #66d9ef;
+$color_11: #f92672;
+$color_12: #ae81ff;
+$color_13: #e6db74;
+$color_14: #a6e22e;
+$color_15: #f8f8f2;
+$background-color_1: #1e0010;
+$background-color_2: #324932;
+$background-color_3: #493131;
+$background-color_4: #49483e;
+
+.highlight {
+	table {
+		td {
+			padding: 5px;
+		}
+		pre {
+			margin: 0;
+		}
+	}
+	.c {
+		color: $color_1;
+		font-style: italic;
+	}
+	.cd {
+		color: $color_1;
+		font-style: italic;
+	}
+	.cm {
+		color: $color_1;
+		font-style: italic;
+	}
+	.c1 {
+		color: $color_1;
+		font-style: italic;
+	}
+	.cp {
+		color: $color_1;
+		font-weight: bold;
+	}
+	.cs {
+		color: $color_1;
+		font-weight: bold;
+		font-style: italic;
+	}
+	.err {
+		color: $color_2;
+		background-color: $background-color_1;
+	}
+	.gi {
+		color: $color_3;
+		background-color: $background-color_2;
+	}
+	.gd {
+		color: $color_3;
+		background-color: $background-color_3;
+	}
+	.ge {
+		color: $color_4;
+		font-style: italic;
+	}
+	.gr {
+		color: $color_5;
+	}
+	.gt {
+		color: $color_5;
+	}
+	.gh {
+		color: $color_6;
+	}
+	.go {
+		color: $color_7;
+	}
+	.gp {
+		color: $color_8;
+	}
+	.gs {
+		font-weight: bold;
+	}
+	.gu {
+		color: $color_9;
+	}
+	.k {
+		color: $color_10;
+		font-weight: bold;
+	}
+	.kv {
+		color: $color_10;
+		font-weight: bold;
+	}
+	.kc {
+		color: $color_10;
+		font-weight: bold;
+	}
+	.kd {
+		color: $color_10;
+		font-weight: bold;
+	}
+	.kp {
+		color: $color_10;
+		font-weight: bold;
+	}
+	.kr {
+		color: $color_10;
+		font-weight: bold;
+	}
+	.kt {
+		color: $color_10;
+		font-weight: bold;
+	}
+	.kn {
+		color: $color_11;
+		font-weight: bold;
+	}
+	.ow {
+		color: $color_11;
+		font-weight: bold;
+	}
+	.o {
+		color: $color_11;
+		font-weight: bold;
+	}
+	.mf {
+		color: $color_12;
+	}
+	.mh {
+		color: $color_12;
+	}
+	.il {
+		color: $color_12;
+	}
+	.mi {
+		color: $color_12;
+	}
+	.mo {
+		color: $color_12;
+	}
+	.m {
+		color: $color_12;
+	}
+	.mb {
+		color: $color_12;
+	}
+	.mx {
+		color: $color_12;
+	}
+	.se {
+		color: $color_12;
+	}
+	.sb {
+		color: $color_13;
+	}
+	.sc {
+		color: $color_13;
+	}
+	.sd {
+		color: $color_13;
+	}
+	.s2 {
+		color: $color_13;
+	}
+	.sh {
+		color: $color_13;
+	}
+	.si {
+		color: $color_13;
+	}
+	.sx {
+		color: $color_13;
+	}
+	.sr {
+		color: $color_13;
+	}
+	.s1 {
+		color: $color_13;
+	}
+	.ss {
+		color: $color_13;
+	}
+	.s {
+		color: $color_13;
+	}
+	.na {
+		color: $color_14;
+	}
+	.nc {
+		color: $color_14;
+		font-weight: bold;
+	}
+	.nd {
+		color: $color_14;
+		font-weight: bold;
+	}
+	.ne {
+		color: $color_14;
+		font-weight: bold;
+	}
+	.nf {
+		color: $color_14;
+		font-weight: bold;
+	}
+	.no {
+		color: $color_10;
+	}
+	.bp {
+		color: $color_15;
+	}
+	.nb {
+		color: $color_15;
+	}
+	.ni {
+		color: $color_15;
+	}
+	.nn {
+		color: $color_15;
+	}
+	.vc {
+		color: $color_15;
+	}
+	.vg {
+		color: $color_15;
+	}
+	.vi {
+		color: $color_15;
+	}
+	.nv {
+		color: $color_15;
+	}
+	.w {
+		color: $color_15;
+	}
+	.nl {
+		color: $color_15;
+		font-weight: bold;
+	}
+	.nt {
+		color: $color_11;
+	}
+	color: $color_15;
+	background-color: $background-color_4;
+}
diff --git a/_sass/highlight/pastie.scss b/_sass/highlight/pastie.scss
new file mode 100644
index 0000000..1aa9dbd
--- /dev/null
+++ b/_sass/highlight/pastie.scss
@@ -0,0 +1,269 @@
+$color_1: #888888;
+$color_2: #cc0000;
+$color_3: #a61717;
+$color_4: #aa0000;
+$color_5: #333333;
+$color_6: #666666;
+$color_7: #000000;
+$color_8: #555555;
+$color_9: #008800;
+$color_10: #0000dd;
+$color_11: #dd2200;
+$color_12: #0044dd;
+$color_13: #3333bb;
+$color_14: #22bb22;
+$color_15: #aa6600;
+$color_16: #336699;
+$color_17: #003388;
+$color_18: #bb0066;
+$color_19: #003366;
+$color_20: #0066bb;
+$color_21: #dd7700;
+$color_22: #bbbbbb;
+$background-color_1: #fff0f0;
+$background-color_2: #e3d2d2;
+$background-color_3: #ffdddd;
+$background-color_4: #ddffdd;
+$background-color_5: #f0fff0;
+
+.highlight {
+	table {
+		td {
+			padding: 5px;
+		}
+		pre {
+			margin: 0;
+		}
+	}
+	.c {
+		color: $color_1;
+	}
+	.cd {
+		color: $color_1;
+	}
+	.cm {
+		color: $color_1;
+	}
+	.c1 {
+		color: $color_1;
+	}
+	.cp {
+		color: $color_2;
+		font-weight: bold;
+	}
+	.cs {
+		color: $color_2;
+		background-color: $background-color_1;
+		font-weight: bold;
+	}
+	.err {
+		color: $color_3;
+		background-color: $background-color_2;
+	}
+	.gr {
+		color: $color_4;
+	}
+	.gh {
+		color: $color_5;
+	}
+	.gu {
+		color: $color_6;
+	}
+	.gd {
+		color: $color_7;
+		background-color: $background-color_3;
+	}
+	.gi {
+		color: $color_7;
+		background-color: $background-color_4;
+	}
+	.ge {
+		font-style: italic;
+	}
+	.gs {
+		font-weight: bold;
+	}
+	.gl {
+		color: $color_1;
+	}
+	.go {
+		color: $color_1;
+	}
+	.gp {
+		color: $color_8;
+	}
+	.gt {
+		color: $color_4;
+	}
+	.k {
+		color: $color_9;
+		font-weight: bold;
+	}
+	.kc {
+		color: $color_9;
+		font-weight: bold;
+	}
+	.kd {
+		color: $color_9;
+		font-weight: bold;
+	}
+	.kn {
+		color: $color_9;
+		font-weight: bold;
+	}
+	.kr {
+		color: $color_9;
+		font-weight: bold;
+	}
+	.kv {
+		color: $color_9;
+		font-weight: bold;
+	}
+	.kp {
+		color: $color_9;
+	}
+	.kt {
+		color: $color_1;
+		font-weight: bold;
+	}
+	.m {
+		color: $color_10;
+		font-weight: bold;
+	}
+	.mf {
+		color: $color_10;
+		font-weight: bold;
+	}
+	.mh {
+		color: $color_10;
+		font-weight: bold;
+	}
+	.mi {
+		color: $color_10;
+		font-weight: bold;
+	}
+	.il {
+		color: $color_10;
+		font-weight: bold;
+	}
+	.mo {
+		color: $color_10;
+		font-weight: bold;
+	}
+	.mb {
+		color: $color_10;
+		font-weight: bold;
+	}
+	.mx {
+		color: $color_10;
+		font-weight: bold;
+	}
+	.s {
+		color: $color_11;
+		background-color: $background-color_1;
+	}
+	.sb {
+		color: $color_11;
+		background-color: $background-color_1;
+	}
+	.sc {
+		color: $color_11;
+		background-color: $background-color_1;
+	}
+	.sd {
+		color: $color_11;
+		background-color: $background-color_1;
+	}
+	.s2 {
+		color: $color_11;
+		background-color: $background-color_1;
+	}
+	.sh {
+		color: $color_11;
+		background-color: $background-color_1;
+	}
+	.s1 {
+		color: $color_11;
+		background-color: $background-color_1;
+	}
+	.se {
+		color: $color_12;
+		background-color: $background-color_1;
+	}
+	.si {
+		color: $color_13;
+		background-color: $background-color_1;
+	}
+	.sx {
+		color: $color_14;
+		background-color: $background-color_5;
+	}
+	.sr {
+		color: $color_9;
+	}
+	.ss {
+		color: $color_15;
+		background-color: $background-color_1;
+	}
+	.na {
+		color: $color_16;
+	}
+	.nb {
+		color: $color_17;
+	}
+	.bp {
+		color: $color_17;
+	}
+	.nc {
+		color: $color_18;
+		font-weight: bold;
+	}
+	.no {
+		color: $color_19;
+		font-weight: bold;
+	}
+	.nd {
+		color: $color_8;
+	}
+	.ne {
+		color: $color_18;
+		font-weight: bold;
+	}
+	.nf {
+		color: $color_20;
+		font-weight: bold;
+	}
+	.nl {
+		color: $color_16;
+	}
+	.nn {
+		color: $color_18;
+		font-weight: bold;
+	}
+	.py {
+		color: $color_16;
+		font-weight: bold;
+	}
+	.nt {
+		color: $color_18;
+		font-weight: bold;
+	}
+	.nv {
+		color: $color_16;
+	}
+	.vc {
+		color: $color_16;
+	}
+	.vg {
+		color: $color_21;
+	}
+	.vi {
+		color: $color_13;
+	}
+	.ow {
+		color: $color_9;
+	}
+	.w {
+		color: $color_22;
+	}
+}
diff --git a/_sass/highlight/thankful_eyes.scss b/_sass/highlight/thankful_eyes.scss
new file mode 100644
index 0000000..5a6577c
--- /dev/null
+++ b/_sass/highlight/thankful_eyes.scss
@@ -0,0 +1,296 @@
+$color_1: #faf6e4;
+$color_2: #dee5e7;
+$color_3: #a8e1fe;
+$color_4: #6c8b9f;
+$color_5: #b2fd6d;
+$color_6: #fefeec;
+$color_7: #cc0000;
+$color_8: #f6dd62;
+$color_9: #4df4ff;
+$color_10: #f696db;
+$color_11: #ffb000;
+$color_12: #fff0a6;
+$color_13: #999999;
+$color_14: #BBBBBB;
+$background-color_1: #122b3b;
+$background-color_2: #4e5d62;
+$background-color_3: #cc0000;
+
+.highlight {
+	table {
+		td {
+			padding: 5px;
+		}
+		pre {
+			margin: 0;
+		}
+	}
+	color: $color_1;
+	background-color: $background-color_1;
+	.gl {
+		color: $color_2;
+		background-color: $background-color_2;
+	}
+	.gp {
+		color: $color_3;
+		font-weight: bold;
+	}
+	.c {
+		color: $color_4;
+		font-style: italic;
+	}
+	.cd {
+		color: $color_4;
+		font-style: italic;
+	}
+	.cm {
+		color: $color_4;
+		font-style: italic;
+	}
+	.c1 {
+		color: $color_4;
+		font-style: italic;
+	}
+	.cs {
+		color: $color_4;
+		font-style: italic;
+	}
+	.cp {
+		color: $color_5;
+		font-weight: bold;
+		font-style: italic;
+	}
+	.err {
+		color: $color_6;
+		background-color: $background-color_3;
+	}
+	.gr {
+		color: $color_7;
+		font-weight: bold;
+		font-style: italic;
+	}
+	.k {
+		color: $color_8;
+		font-weight: bold;
+	}
+	.kd {
+		color: $color_8;
+		font-weight: bold;
+	}
+	.kv {
+		color: $color_8;
+		font-weight: bold;
+	}
+	.o {
+		color: $color_9;
+		font-weight: bold;
+	}
+	.ow {
+		color: $color_9;
+		font-weight: bold;
+	}
+	.p {
+		color: $color_9;
+	}
+	.pi {
+		color: $color_9;
+	}
+	.gd {
+		color: $color_7;
+	}
+	.gi {
+		color: $color_5;
+	}
+	.ge {
+		font-style: italic;
+	}
+	.gs {
+		font-weight: bold;
+	}
+	.gt {
+		color: $color_2;
+		background-color: $background-color_2;
+	}
+	.kc {
+		color: $color_10;
+		font-weight: bold;
+	}
+	.kn {
+		color: $color_11;
+		font-weight: bold;
+	}
+	.kp {
+		color: $color_11;
+		font-weight: bold;
+	}
+	.kr {
+		color: $color_11;
+		font-weight: bold;
+	}
+	.gh {
+		color: $color_11;
+		font-weight: bold;
+	}
+	.gu {
+		color: $color_11;
+		font-weight: bold;
+	}
+	.kt {
+		color: $color_5;
+		font-weight: bold;
+	}
+	.no {
+		color: $color_5;
+		font-weight: bold;
+	}
+	.nc {
+		color: $color_5;
+		font-weight: bold;
+	}
+	.nd {
+		color: $color_5;
+		font-weight: bold;
+	}
+	.nn {
+		color: $color_5;
+		font-weight: bold;
+	}
+	.bp {
+		color: $color_5;
+		font-weight: bold;
+	}
+	.ne {
+		color: $color_5;
+		font-weight: bold;
+	}
+	.nl {
+		color: $color_11;
+		font-weight: bold;
+	}
+	.nt {
+		color: $color_11;
+		font-weight: bold;
+	}
+	.m {
+		color: $color_10;
+		font-weight: bold;
+	}
+	.mf {
+		color: $color_10;
+		font-weight: bold;
+	}
+	.mh {
+		color: $color_10;
+		font-weight: bold;
+	}
+	.mi {
+		color: $color_10;
+		font-weight: bold;
+	}
+	.il {
+		color: $color_10;
+		font-weight: bold;
+	}
+	.mo {
+		color: $color_10;
+		font-weight: bold;
+	}
+	.mb {
+		color: $color_10;
+		font-weight: bold;
+	}
+	.mx {
+		color: $color_10;
+		font-weight: bold;
+	}
+	.ld {
+		color: $color_10;
+		font-weight: bold;
+	}
+	.ss {
+		color: $color_10;
+		font-weight: bold;
+	}
+	.s {
+		color: $color_12;
+		font-weight: bold;
+	}
+	.sb {
+		color: $color_12;
+		font-weight: bold;
+	}
+	.sd {
+		color: $color_12;
+		font-weight: bold;
+	}
+	.s2 {
+		color: $color_12;
+		font-weight: bold;
+	}
+	.sh {
+		color: $color_12;
+		font-weight: bold;
+	}
+	.sx {
+		color: $color_12;
+		font-weight: bold;
+	}
+	.sr {
+		color: $color_12;
+		font-weight: bold;
+	}
+	.s1 {
+		color: $color_12;
+		font-weight: bold;
+	}
+	.se {
+		color: $color_9;
+		font-weight: bold;
+	}
+	.sc {
+		color: $color_9;
+		font-weight: bold;
+	}
+	.si {
+		color: $color_9;
+		font-weight: bold;
+	}
+	.nb {
+		font-weight: bold;
+	}
+	.ni {
+		color: $color_13;
+		font-weight: bold;
+	}
+	.w {
+		color: $color_14;
+	}
+	.go {
+		color: $color_14;
+	}
+	.nf {
+		color: $color_3;
+	}
+	.py {
+		color: $color_3;
+	}
+	.na {
+		color: $color_3;
+	}
+	.nv {
+		color: $color_3;
+		font-weight: bold;
+	}
+	.vc {
+		color: $color_3;
+		font-weight: bold;
+	}
+	.vg {
+		color: $color_3;
+		font-weight: bold;
+	}
+	.vi {
+		color: $color_3;
+		font-weight: bold;
+	}
+}
diff --git a/_sass/highlight/tulip.scss b/_sass/highlight/tulip.scss
new file mode 100644
index 0000000..c0e2b33
--- /dev/null
+++ b/_sass/highlight/tulip.scss
@@ -0,0 +1,283 @@
+$color_1: #FFFFFF;
+$color_2: #6D6E70;
+$color_3: #41ff5b;
+$color_4: #FFF02A;
+$color_5: #CC0000;
+$color_6: #3FB34F;
+$color_7: #9f93e6;
+$color_8: #FAAF4C;
+$color_9: #fff0a6;
+$color_10: #999999;
+$color_11: #BBBBBB;
+$background-color_1: #231529;
+$background-color_2: #CC0000;
+$background-color_3: #766DAF;
+
+.highlight {
+	table {
+		td {
+			padding: 5px;
+		}
+		pre {
+			margin: 0;
+		}
+	}
+	color: $color_1;
+	background-color: $background-color_1;
+	.c {
+		color: $color_2;
+		font-style: italic;
+	}
+	.cd {
+		color: $color_2;
+		font-style: italic;
+	}
+	.cm {
+		color: $color_2;
+		font-style: italic;
+	}
+	.c1 {
+		color: $color_2;
+		font-style: italic;
+	}
+	.cs {
+		color: $color_2;
+		font-style: italic;
+	}
+	.cp {
+		color: $color_3;
+		font-weight: bold;
+		font-style: italic;
+	}
+	.err {
+		color: $color_1;
+		background-color: $background-color_2;
+	}
+	.gr {
+		color: $color_1;
+		background-color: $background-color_2;
+	}
+	.k {
+		color: $color_4;
+		font-weight: bold;
+	}
+	.kd {
+		color: $color_4;
+		font-weight: bold;
+	}
+	.kv {
+		color: $color_4;
+		font-weight: bold;
+	}
+	.o {
+		color: $color_3;
+	}
+	.ow {
+		color: $color_3;
+	}
+	.p {
+		color: $color_3;
+	}
+	.pi {
+		color: $color_3;
+	}
+	.gd {
+		color: $color_5;
+	}
+	.gi {
+		color: $color_6;
+	}
+	.ge {
+		font-style: italic;
+	}
+	.gs {
+		font-weight: bold;
+	}
+	.gt {
+		color: $color_1;
+		background-color: $background-color_3;
+	}
+	.gl {
+		color: $color_1;
+		background-color: $background-color_3;
+	}
+	.kc {
+		color: $color_7;
+		font-weight: bold;
+	}
+	.kn {
+		color: $color_1;
+		font-weight: bold;
+	}
+	.kp {
+		color: $color_1;
+		font-weight: bold;
+	}
+	.kr {
+		color: $color_1;
+		font-weight: bold;
+	}
+	.gh {
+		color: $color_1;
+		font-weight: bold;
+	}
+	.gu {
+		color: $color_1;
+		font-weight: bold;
+	}
+	.kt {
+		color: $color_8;
+		font-weight: bold;
+	}
+	.no {
+		color: $color_8;
+		font-weight: bold;
+	}
+	.nc {
+		color: $color_8;
+		font-weight: bold;
+	}
+	.nd {
+		color: $color_8;
+		font-weight: bold;
+	}
+	.nn {
+		color: $color_8;
+		font-weight: bold;
+	}
+	.bp {
+		color: $color_8;
+		font-weight: bold;
+	}
+	.ne {
+		color: $color_8;
+		font-weight: bold;
+	}
+	.nl {
+		color: $color_7;
+		font-weight: bold;
+	}
+	.nt {
+		color: $color_7;
+		font-weight: bold;
+	}
+	.m {
+		color: $color_7;
+		font-weight: bold;
+	}
+	.mf {
+		color: $color_7;
+		font-weight: bold;
+	}
+	.mh {
+		color: $color_7;
+		font-weight: bold;
+	}
+	.mi {
+		color: $color_7;
+		font-weight: bold;
+	}
+	.il {
+		color: $color_7;
+		font-weight: bold;
+	}
+	.mo {
+		color: $color_7;
+		font-weight: bold;
+	}
+	.mb {
+		color: $color_7;
+		font-weight: bold;
+	}
+	.mx {
+		color: $color_7;
+		font-weight: bold;
+	}
+	.ld {
+		color: $color_7;
+		font-weight: bold;
+	}
+	.ss {
+		color: $color_7;
+		font-weight: bold;
+	}
+	.s {
+		color: $color_9;
+		font-weight: bold;
+	}
+	.sb {
+		color: $color_9;
+		font-weight: bold;
+	}
+	.sd {
+		color: $color_9;
+		font-weight: bold;
+	}
+	.s2 {
+		color: $color_9;
+		font-weight: bold;
+	}
+	.sh {
+		color: $color_9;
+		font-weight: bold;
+	}
+	.sx {
+		color: $color_9;
+		font-weight: bold;
+	}
+	.sr {
+		color: $color_9;
+		font-weight: bold;
+	}
+	.s1 {
+		color: $color_9;
+		font-weight: bold;
+	}
+	.se {
+		color: $color_8;
+		font-weight: bold;
+	}
+	.sc {
+		color: $color_8;
+		font-weight: bold;
+	}
+	.si {
+		color: $color_8;
+		font-weight: bold;
+	}
+	.nb {
+		font-weight: bold;
+	}
+	.ni {
+		color: $color_10;
+		font-weight: bold;
+	}
+	.w {
+		color: $color_11;
+	}
+	.nf {
+		color: $color_3;
+	}
+	.py {
+		color: $color_3;
+	}
+	.na {
+		color: $color_3;
+	}
+	.nv {
+		color: $color_3;
+		font-weight: bold;
+	}
+	.vc {
+		color: $color_3;
+		font-weight: bold;
+	}
+	.vg {
+		color: $color_3;
+		font-weight: bold;
+	}
+	.vi {
+		color: $color_3;
+		font-weight: bold;
+	}
+}
diff --git a/_sass/main-dark.scss b/_sass/main-dark.scss
new file mode 100644
index 0000000..627353a
--- /dev/null
+++ b/_sass/main-dark.scss
@@ -0,0 +1,1111 @@
+---
+# Front matter comment to ensure Jekyll properly reads file.
+---
+@charset "UTF-8";
+
+/*!
+ * Bootstrap v3.3.7 (http://getbootstrap.com)
+ * Copyright 2011-2016 Twitter, Inc.
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+ */
+
+// Core variables and mixins
+@import "bootstrap/variables";
+@import "bootstrap/mixins";
+
+// Reset and dependencies
+@import "bootstrap/normalize";
+@import "bootstrap/print";
+@import "bootstrap/glyphicons";
+
+// Core CSS
+@import "bootstrap/scaffolding";
+@import "bootstrap/type";
+@import "bootstrap/code";
+@import "bootstrap/grid";
+@import "bootstrap/tables";
+@import "bootstrap/forms";
+@import "bootstrap/buttons";
+
+// Components
+@import "bootstrap/component-animations";
+@import "bootstrap/dropdowns";
+@import "bootstrap/button-groups";
+@import "bootstrap/input-groups";
+@import "bootstrap/navs";
+@import "bootstrap/navbar";
+@import "bootstrap/breadcrumbs";
+@import "bootstrap/pagination";
+@import "bootstrap/pager";
+@import "bootstrap/labels";
+@import "bootstrap/badges";
+@import "bootstrap/jumbotron";
+@import "bootstrap/thumbnails";
+@import "bootstrap/alerts";
+@import "bootstrap/progress-bars";
+@import "bootstrap/media";
+@import "bootstrap/list-group";
+@import "bootstrap/panels";
+@import "bootstrap/responsive-embed";
+@import "bootstrap/wells";
+@import "bootstrap/close";
+
+// Components w/ JavaScript
+@import "bootstrap/modals";
+@import "bootstrap/tooltip";
+@import "bootstrap/popovers";
+@import "bootstrap/carousel";
+
+// Utility classes
+@import "bootstrap/utilities";
+@import "bootstrap/responsive-utilities";
+
+
+//
+// Variables
+// --------------------------------------------------
+
+
+//== Colors
+//
+//## Gray and brand colors for use across Bootstrap.
+
+$gray-base:              #000;
+$gray-darker:            lighten($gray-base, 13.5%); // #222
+$gray-darker-hover: 	   darken($gray-darker, 5%);
+$gray-dark:              lighten($gray-base, 20%);   // #333
+$gray:                   lighten($gray-base, 33.5%); // #555
+$gray-light:             lighten($gray-base, 46.7%); // #777
+$gray-lighter:           lighten($gray-base, 82.5%);
+$gray-white:             lighten($gray-base, 100%); // #fff
+
+$brand-primary:         #1F7F1F;
+$brand-success:         #3F7F3F;
+$brand-info:            #3F7F7F;
+$brand-warning:         #7F6F3F;
+$brand-danger:          #7F3F3F;
+
+// Icons colors
+$github-color:          #666;
+$facebook-color:        #3b5998;
+$twitter-color:         #326ada;
+$linkedin-color:        #0077b5;
+$envelope-color:        #c71610;
+
+//== Scaffolding
+//
+//## Settings for some of the most global styles.
+
+//** Background color for ``.
+$body-bg-header:        $gray-base;
+$body-bg:               darken(desaturate($brand-primary, 50%), 15%);
+
+//** Global text color on ``.
+$text-color:            $gray-lighter;
+$shadow-color:          currentColor;
+$h1-bg:                 rgba($body-bg-header, 0.2);
+$bg-color1:             $brand-primary;
+$bg-color2:             $brand-danger;
+
+//** Global textual link color.
+$link-color:            lighten($brand-primary, 15%);
+//** Link hover color set via `darken()` function.
+$link-hover-color:      $link-color;
+//** Link hover decoration.
+$link-hover-decoration: underline;
+
+
+//== Typography
+//
+//## Font, line-height, and color for body text, headings, and more.
+
+$font-family-sans-serif:  "Source Code Pro", Helvetica, Arial, sans-serif;
+$font-family-serif:       Georgia, "Times New Roman", Times, serif;
+//** Default monospace fonts for ``, ``, and `
`.
+$font-family-monospace:   "Source Code Pro", Menlo, Monaco, Consolas, "Courier New", monospace;
+$font-family-base:        $font-family-monospace;
+
+$font-size-base:          15px;
+$font-size-large:         ceil(($font-size-base * 1.25)); // ~18px
+$font-size-small:         ceil(($font-size-base * 0.85)); // ~12px
+
+$font-size-h1:            floor(($font-size-base * 2.6)); // ~36px
+$font-size-h2:            floor(($font-size-base * 2.15)); // ~30px
+$font-size-h3:            ceil(($font-size-base * 1.7)); // ~24px
+$font-size-h4:            ceil(($font-size-base * 1.25)); // ~18px
+$font-size-h5:            $font-size-base;
+$font-size-h6:            ceil(($font-size-base * 0.85)); // ~12px
+
+//** Unit-less `line-height` for use in components like buttons.
+$line-height-base:        1.428571429; // 20/14
+//** Computed "line-height" (`font-size` * `line-height`) for use with `margin`, `padding`, etc.
+$line-height-computed:    floor(($font-size-base * $line-height-base)); // ~20px
+
+//** By default, this inherits from the ``.
+$headings-font-family:    inherit;
+$headings-font-weight:    500;
+$headings-line-height:    1.1;
+$headings-color:          inherit;
+
+
+//== Iconography
+//
+//## Specify custom location and filename of the included Glyphicons icon font. Useful for those including Bootstrap via Bower.
+
+//** Load fonts from this directory.
+$icon-font-path:          "../fonts/";
+//** File name for all font files.
+$icon-font-name:          "glyphicons-halflings-regular";
+//** Element ID within SVG icon file.
+$icon-font-svg-id:        "glyphicons_halflingsregular";
+
+
+//== Components
+//
+//## Define common padding and border radius sizes and more. Values based on 14px text and 1.428 line-height (~20px to start).
+
+$padding-base-vertical:     6px;
+$padding-base-horizontal:   12px;
+
+$padding-large-vertical:    10px;
+$padding-large-horizontal:  16px;
+
+$padding-small-vertical:    5px;
+$padding-small-horizontal:  10px;
+
+$padding-xs-vertical:       1px;
+$padding-xs-horizontal:     5px;
+
+$line-height-large:         1.33;
+$line-height-small:         1.5;
+
+$border-radius-base:        4px;
+$border-radius-large:       6px;
+$border-radius-small:       3px;
+
+//** Global color for active items (e.g., navs or dropdowns).
+$component-active-color:    $gray-darker;
+//** Global background color for active items (e.g., navs or dropdowns).
+$component-active-bg:       $gray-darker;
+
+//** Width of the `border` for generating carets that indicator dropdowns.
+$caret-width-base:          4px;
+//** Carets increase slightly in size for larger components.
+$caret-width-large:         5px;
+
+
+//== Tables
+//
+//## Customizes the `.table` component with basic values, each used across all table variations.
+
+//** Padding for ``s and ``s.
+$table-cell-padding:            8px;
+//** Padding for cells in `.table-condensed`.
+$table-condensed-cell-padding:  5px;
+
+//** Default background color used for all tables.
+$table-bg:                      transparent;
+//** Background color used for `.table-striped`.
+$table-bg-accent:               $gray-dark;
+//** Background color used for `.table-hover`.
+$table-bg-hover:                $gray-darker-hover;
+$table-bg-active:               $table-bg-hover;
+
+//** Border color for table and cell borders.
+$table-border-color:            $gray;
+
+
+//== Buttons
+//
+//## For each of Bootstrap's buttons, define text, background and border color.
+
+$btn-font-weight:                normal;
+
+$btn-default-color:              $gray-lighter;
+$btn-default-bg:                 $gray-dark;
+$btn-default-border:             darken($btn-default-bg, 5%);
+
+$btn-primary-color:              $gray-lighter;
+$btn-primary-bg:                 $brand-primary;
+$btn-primary-border:             darken($btn-primary-bg, 5%);
+
+$btn-success-color:              $gray-lighter;
+$btn-success-bg:                 $brand-success;
+$btn-success-border:             darken($btn-success-bg, 5%);
+
+$btn-info-color:                 $gray-lighter;
+$btn-info-bg:                    $brand-info;
+$btn-info-border:                darken($btn-info-bg, 5%);
+
+$btn-warning-color:              $gray-lighter;
+$btn-warning-bg:                 $brand-warning;
+$btn-warning-border:             darken($btn-warning-bg, 5%);
+
+$btn-danger-color:               $gray-lighter;
+$btn-danger-bg:                  $brand-danger;
+$btn-danger-border:              darken($btn-danger-bg, 5%);
+
+$btn-link-disabled-color:        $gray-light;
+
+
+//== Forms
+//
+//##
+
+//** `` background color
+$input-bg:                       $gray-dark;
+//** `` background color
+$input-bg-disabled:              $gray;
+
+//** Text color for ``s
+$input-color:                    $gray-lighter;
+//** `` border color
+$input-border:                   $gray;
+
+// TODO: Rename `$input-border-radius` to `$input-border-radius-base` in v4
+//** Default `.form-control` border radius
+$input-border-radius:            $border-radius-base;
+//** Large `.form-control` border radius
+$input-border-radius-large:      $border-radius-large;
+//** Small `.form-control` border radius
+$input-border-radius-small:      $border-radius-small;
+
+//** Border color for inputs on focus
+$input-border-focus:             $brand-primary;
+
+//** Placeholder text color
+$input-color-placeholder:        $gray-light;
+
+//** Default `.form-control` height
+$input-height-base:              ($line-height-computed + ($padding-base-vertical * 2) + 2);
+//** Large `.form-control` height
+$input-height-large:             (ceil($font-size-large * $line-height-large) + ($padding-large-vertical * 2) + 2);
+//** Small `.form-control` height
+$input-height-small:             (floor($font-size-small * $line-height-small) + ($padding-small-vertical * 2) + 2);
+
+$legend-color:                   $gray-dark;
+$legend-border-color:            $brand-primary;
+
+//** Background color for textual input addons
+$input-group-addon-bg:           $gray-dark;
+//** Border color for textual input addons
+$input-group-addon-border-color: $input-border;
+
+//** Disabled cursor for form controls and buttons.
+$cursor-disabled:                not-allowed;
+
+
+//== Dropdowns
+//
+//## Dropdown menu container and contents.
+
+//** Background for the dropdown menu.
+$dropdown-bg:                    $gray-darker;
+//** Dropdown menu `border-color`.
+$dropdown-border:                rgba(0,0,0,.15);
+//** Dropdown menu `border-color` **for IE8**.
+$dropdown-fallback-border:       $gray-darker;
+//** Divider color for between dropdown items.
+$dropdown-divider-bg:            $gray-dark;
+
+//** Dropdown link text color.
+$dropdown-link-color:            $brand-primary;
+//** Hover color for dropdown links.
+$dropdown-link-hover-color:      darken($dropdown-link-color, 5%);
+//** Hover background for dropdown links.
+$dropdown-link-hover-bg:         $gray-darker-hover;
+
+//** Active dropdown menu item text color.
+$dropdown-link-active-color:     $component-active-color;
+//** Active dropdown menu item background color.
+$dropdown-link-active-bg:        $component-active-bg;
+
+//** Disabled dropdown menu item background color.
+$dropdown-link-disabled-color:   $gray-darker;
+
+//** Text color for headers within dropdown menus.
+$dropdown-header-color:          $gray-light;
+
+//** Deprecated `$dropdown-caret-color` as of v3.1.0
+$dropdown-caret-color:           $gray-base;
+
+
+//-- Z-index master list
+//
+// Warning: Avoid customizing these values. They're used for a bird's eye view
+// of components dependent on the z-axis and are designed to all work together.
+//
+// Note: These variables are not generated into the Customizer.
+
+$zindex-navbar:            1000;
+$zindex-dropdown:          1000;
+$zindex-popover:           1060;
+$zindex-tooltip:           1070;
+$zindex-navbar-fixed:      1030;
+$zindex-modal:             1040;
+
+
+//== Media queries breakpoints
+//
+//## Define the breakpoints at which your layout will change, adapting to different screen sizes.
+
+// Extra small screen / phone
+//** Deprecated `$screen-xs` as of v3.0.1
+$screen-xs:                  480px;
+//** Deprecated `$screen-xs-min` as of v3.2.0
+$screen-xs-min:              $screen-xs;
+//** Deprecated `$screen-phone` as of v3.0.1
+$screen-phone:               $screen-xs-min;
+
+// Small screen / tablet
+//** Deprecated `$screen-sm` as of v3.0.1
+$screen-sm:                  768px;
+$screen-sm-min:              $screen-sm;
+//** Deprecated `$screen-tablet` as of v3.0.1
+$screen-tablet:              $screen-sm-min;
+
+// Medium screen / desktop
+//** Deprecated `$screen-md` as of v3.0.1
+$screen-md:                  992px;
+$screen-md-min:              $screen-md;
+//** Deprecated `$screen-desktop` as of v3.0.1
+$screen-desktop:             $screen-md-min;
+
+// Large screen / wide desktop
+//** Deprecated `$screen-lg` as of v3.0.1
+$screen-lg:                  1200px;
+$screen-lg-min:              $screen-lg;
+//** Deprecated `$screen-lg-desktop` as of v3.0.1
+$screen-lg-desktop:          $screen-lg-min;
+
+// So media queries don't overlap when required, provide a maximum
+$screen-xs-max:              ($screen-sm-min - 1);
+$screen-sm-max:              ($screen-md-min - 1);
+$screen-md-max:              ($screen-lg-min - 1);
+
+
+//== Grid system
+//
+//## Define your custom responsive grid.
+
+//** Number of columns in the grid.
+$grid-columns:              12;
+//** Padding between columns. Gets divided in half for the left and right.
+$grid-gutter-width:         30px;
+// Navbar collapse
+//** Point at which the navbar becomes uncollapsed.
+$grid-float-breakpoint:     $screen-sm-min;
+//** Point at which the navbar begins collapsing.
+$grid-float-breakpoint-max: ($grid-float-breakpoint - 1);
+
+
+//== Container sizes
+//
+//## Define the maximum width of `.container` for different screen sizes.
+
+// Small screen / tablet
+$container-tablet:             (720px + $grid-gutter-width);
+//** For `$screen-sm-min` and up.
+$container-sm:                 $container-tablet;
+
+// Medium screen / desktop
+$container-desktop:            (940px + $grid-gutter-width);
+//** For `$screen-md-min` and up.
+$container-md:                 $container-desktop;
+
+// Large screen / wide desktop
+$container-large-desktop:      (1140px + $grid-gutter-width);
+//** For `$screen-lg-min` and up.
+$container-lg:                 $container-large-desktop;
+
+
+//== Navbar
+//
+//##
+
+// Basics of a navbar
+$navbar-height:                    50px;
+$navbar-margin-bottom:             $line-height-computed;
+$navbar-border-radius:             $border-radius-base;
+$navbar-padding-horizontal:        floor(($grid-gutter-width / 2));
+$navbar-padding-vertical:          (($navbar-height - $line-height-computed) / 2);
+$navbar-collapse-max-height:       340px;
+
+$navbar-default-color:             $gray-light;
+$navbar-default-bg:                $gray-base;
+$navbar-bg:                        rgba($body-bg-header, 0.7);
+$navbar-default-border:            transparent;
+
+// Navbar links
+$navbar-default-link-color:                $brand-primary;
+$navbar-default-link-hover-color:          $gray-light;
+$navbar-default-link-hover-bg:             opacity(0.5);
+$navbar-default-link-active-color:         $gray-light;
+$navbar-default-link-active-bg:            $gray-darker;
+$navbar-default-link-disabled-color:       $gray;
+$navbar-default-link-disabled-bg:          transparent;
+
+// Navbar brand label
+$navbar-default-brand-color:               $navbar-default-link-color;
+$navbar-default-brand-hover-color:         darken($navbar-default-brand-color, 10%);
+$navbar-default-brand-hover-bg:            transparent;
+
+// Navbar toggle
+$navbar-default-toggle-hover-bg:           #ddd;
+$navbar-default-toggle-icon-bar-bg:        #888;
+$navbar-default-toggle-border-color:       transparent;
+
+
+// Inverted navbar
+// Reset inverted navbar basics
+$navbar-inverse-color:                      lighten($gray-light, 15%);
+$navbar-inverse-bg:                         #222;
+$navbar-inverse-border:                     darken($navbar-inverse-bg, 10%);
+
+// Inverted navbar links
+$navbar-inverse-link-color:                 lighten($gray-light, 15%);
+$navbar-inverse-link-hover-color:           #fff;
+$navbar-inverse-link-hover-bg:              transparent;
+$navbar-inverse-link-active-color:          $navbar-inverse-link-hover-color;
+$navbar-inverse-link-active-bg:             darken($navbar-inverse-bg, 10%);
+$navbar-inverse-link-disabled-color:        #444;
+$navbar-inverse-link-disabled-bg:           transparent;
+
+// Inverted navbar brand label
+$navbar-inverse-brand-color:                $navbar-inverse-link-color;
+$navbar-inverse-brand-hover-color:          #fff;
+$navbar-inverse-brand-hover-bg:             transparent;
+
+// Inverted navbar toggle
+$navbar-inverse-toggle-hover-bg:            #333;
+$navbar-inverse-toggle-icon-bar-bg:         #fff;
+$navbar-inverse-toggle-border-color:        #333;
+
+
+//== Navs
+//
+//##
+
+//=== Shared nav styles
+$nav-link-padding:                          10px 15px;
+$nav-link-hover-bg:                         $gray-darker-hover;
+
+$nav-disabled-link-color:                   $gray-light;
+$nav-disabled-link-hover-color:             $gray-light;
+
+//== Tabs
+$nav-tabs-border-color:                     $gray;
+
+$nav-tabs-link-hover-border-color:          $gray;
+
+$nav-tabs-active-link-hover-bg:             $body-bg;
+$nav-tabs-active-link-hover-color:          $gray;
+$nav-tabs-active-link-hover-border-color:   $gray;
+
+$nav-tabs-justified-link-border-color:            $gray;
+$nav-tabs-justified-active-link-border-color:     $body-bg;
+
+//== Pills
+$nav-pills-border-radius:                   $border-radius-base;
+$nav-pills-active-link-hover-bg:            $component-active-bg;
+$nav-pills-active-link-hover-color:         $component-active-color;
+
+
+//== Pagination
+//
+//##
+
+$pagination-color:                     $link-color;
+$pagination-bg:                        $gray-darker;
+$pagination-border:                    $gray;
+
+$pagination-hover-color:               $link-hover-color;
+$pagination-hover-bg:                  $gray-darker-hover;
+$pagination-hover-border:              $gray;
+
+$pagination-active-color:              $gray-lighter;
+$pagination-active-bg:                 $brand-primary;
+$pagination-active-border:             $brand-primary;
+
+$pagination-disabled-color:            $gray-light;
+$pagination-disabled-bg:               $gray-dark;
+$pagination-disabled-border:           $gray;
+
+
+//== Pager
+//
+//##
+
+$pager-bg:                             $pagination-bg;
+$pager-border:                         $pagination-border;
+$pager-border-radius:                  15px;
+
+$pager-hover-bg:                       $pagination-hover-bg;
+
+$pager-active-bg:                      $pagination-active-bg;
+$pager-active-color:                   $pagination-active-color;
+
+$pager-disabled-color:                 $pagination-disabled-color;
+
+
+//== Jumbotron
+//
+//##
+
+$jumbotron-padding:              30px;
+$jumbotron-color:                inherit;
+$jumbotron-bg:                   $gray-darker-hover;
+$jumbotron-heading-color:        inherit;
+$jumbotron-font-size:            ceil(($font-size-base * 1.5));
+
+
+//== Form states and alerts
+//
+//## Define colors for form feedback states and, by default, alerts.
+
+$state-success-text:             lighten($brand-success, 50%);
+$state-success-bg:               $brand-success;
+// $state-success-border:           darken(spin($state-success-bg, -10), 5%);
+
+$state-info-text:                lighten($brand-info, 50%);
+$state-info-bg:                  $brand-info;
+// $state-info-border:              darken(spin($state-info-bg, -10), 7%);
+
+$state-warning-text:             lighten($brand-warning, 50%);
+$state-warning-bg:               $brand-warning;
+// $state-warning-border:           darken(spin($state-warning-bg, -10), 5%);
+
+$state-danger-text:              lighten($brand-danger, 50%);
+$state-danger-bg:                $brand-danger;
+// $state-danger-border:            darken(spin($state-danger-bg, -10), 5%);
+
+
+//== Tooltips
+//
+//##
+
+//** Tooltip max width
+$tooltip-max-width:           200px;
+//** Tooltip text color
+$tooltip-color:               #fff;
+//** Tooltip background color
+$tooltip-bg:                  #000;
+$tooltip-opacity:             .9;
+
+//** Tooltip arrow width
+$tooltip-arrow-width:         5px;
+//** Tooltip arrow color
+$tooltip-arrow-color:         $tooltip-bg;
+
+
+//== Popovers
+//
+//##
+
+//** Popover body background color
+$popover-bg:                          #fff;
+//** Popover maximum width
+$popover-max-width:                   276px;
+//** Popover border color
+$popover-border-color:                rgba(0,0,0,.2);
+//** Popover fallback border color
+$popover-fallback-border-color:       #ccc;
+
+//** Popover title background color
+$popover-title-bg:                    darken($popover-bg, 3%);
+
+//** Popover arrow width
+$popover-arrow-width:                 10px;
+//** Popover arrow color
+$popover-arrow-color:                 $popover-bg;
+
+//** Popover outer arrow width
+$popover-arrow-outer-width:           ($popover-arrow-width + 1);
+//** Popover outer arrow color
+$popover-arrow-outer-color:           fadein($popover-border-color, 5%);
+//** Popover outer arrow fallback color
+$popover-arrow-outer-fallback-color:  darken($popover-fallback-border-color, 20%);
+
+
+//== Labels
+//
+//##
+
+//** Default label background color
+$label-default-bg:            $gray-light;
+//** Primary label background color
+$label-primary-bg:            $brand-primary;
+//** Success label background color
+$label-success-bg:            $brand-success;
+//** Info label background color
+$label-info-bg:               $brand-info;
+//** Warning label background color
+$label-warning-bg:            $brand-warning;
+//** Danger label background color
+$label-danger-bg:             $brand-danger;
+
+//** Default label text color
+$label-color:                 #fff;
+//** Default text color of a linked label
+$label-link-hover-color:      #fff;
+
+
+//== Modals
+//
+//##
+
+//** Padding applied to the modal body
+$modal-inner-padding:         15px;
+
+//** Padding applied to the modal title
+$modal-title-padding:         15px;
+//** Modal title line-height
+$modal-title-line-height:     $line-height-base;
+
+//** Background color of modal content area
+$modal-content-bg:                             #fff;
+//** Modal content border color
+$modal-content-border-color:                   rgba(0,0,0,.2);
+//** Modal content border color **for IE8**
+$modal-content-fallback-border-color:          #999;
+
+//** Modal backdrop background color
+$modal-backdrop-bg:           #000;
+//** Modal backdrop opacity
+$modal-backdrop-opacity:      .5;
+//** Modal header border color
+$modal-header-border-color:   #e5e5e5;
+//** Modal footer border color
+$modal-footer-border-color:   $modal-header-border-color;
+
+$modal-lg:                    900px;
+$modal-md:                    600px;
+$modal-sm:                    300px;
+
+
+//== Alerts
+//
+//## Define alert colors, border radius, and padding.
+
+$alert-padding:               15px;
+$alert-border-radius:         $border-radius-base;
+$alert-link-font-weight:      bold;
+
+// $alert-success-bg:            $state-success-bg;
+// $alert-success-text:          $state-success-text;
+// $alert-success-border:        $state-success-border;
+//
+// $alert-info-bg:               $state-info-bg;
+// $alert-info-text:             $state-info-text;
+// $alert-info-border:           $state-info-border;
+//
+// $alert-warning-bg:            $state-warning-bg;
+// $alert-warning-text:          $state-warning-text;
+// $alert-warning-border:        $state-warning-border;
+//
+// $alert-danger-bg:             $state-danger-bg;
+// $alert-danger-text:           $state-danger-text;
+// $alert-danger-border:         $state-danger-border;
+//
+
+//== Progress bars
+//
+//##
+
+//** Background color of the whole progress component
+$progress-bg:                 $gray-darker-hover;
+//** Progress bar text color
+$progress-bar-color:          $gray-lighter;
+//** Variable for setting rounded corners on progress bar.
+$progress-border-radius:      $border-radius-base;
+
+//** Default progress bar color
+$progress-bar-bg:             $brand-primary;
+//** Success progress bar color
+$progress-bar-success-bg:     $brand-success;
+//** Warning progress bar color
+$progress-bar-warning-bg:     $brand-warning;
+//** Danger progress bar color
+$progress-bar-danger-bg:      $brand-danger;
+//** Info progress bar color
+$progress-bar-info-bg:        $brand-info;
+
+
+//== List group
+//
+//##
+
+//** Background color on `.list-group-item`
+$list-group-bg:                 $gray-darker;
+//** `.list-group-item` border color
+$list-group-border:             $gray;
+//** List group border radius
+$list-group-border-radius:      $border-radius-base;
+
+//** Background color of single list items on hover
+$list-group-hover-bg:           $gray-darker-hover;
+//** Text color of active list items
+$list-group-active-color:       $gray-light;
+//** Background color of active list items
+$list-group-active-bg:          $component-active-bg;
+//** Border color of active list elements
+$list-group-active-border:      $list-group-active-bg;
+//** Text color for content within active list items
+$list-group-active-text-color:  lighten($list-group-active-bg, 40%);
+
+//** Text color of disabled list items
+$list-group-disabled-color:      $gray-light;
+//** Background color of disabled list items
+$list-group-disabled-bg:         $gray-lighter;
+//** Text color for content within disabled list items
+$list-group-disabled-text-color: $list-group-disabled-color;
+
+$list-group-link-color:         $gray-light;
+$list-group-link-hover-color:   $list-group-link-color;
+$list-group-link-heading-color: $gray-light;
+
+
+//== Panels
+//
+//##
+
+$panel-bg:                    $gray-darker;
+$panel-body-padding:          15px;
+$panel-heading-padding:       10px 15px;
+$panel-footer-padding:        $panel-heading-padding;
+$panel-border-radius:         $border-radius-base;
+
+//** Border color for elements within panels
+$panel-inner-border:          $gray;
+$panel-footer-bg:             $gray-darker-hover;
+
+$panel-default-text:          $gray-light;
+$panel-default-border:        $gray;
+$panel-default-heading-bg:    $gray-darker-hover;
+
+$panel-primary-text:          $gray-lighter;
+$panel-primary-border:        $brand-primary;
+$panel-primary-heading-bg:    $brand-primary;
+
+$panel-success-text:          $state-success-text;
+// $panel-success-border:        $state-success-border;
+$panel-success-heading-bg:    $state-success-bg;
+
+$panel-info-text:             $state-info-text;
+// $panel-info-border:           $state-info-border;
+$panel-info-heading-bg:       $state-info-bg;
+
+$panel-warning-text:          $state-warning-text;
+// $panel-warning-border:        $state-warning-border;
+$panel-warning-heading-bg:    $state-warning-bg;
+
+$panel-danger-text:           $state-danger-text;
+// $panel-danger-border:         $state-danger-border;
+$panel-danger-heading-bg:     $state-danger-bg;
+
+
+//== Thumbnails
+//
+//##
+
+//** Padding around the thumbnail image
+$thumbnail-padding:           4px;
+//** Thumbnail background color
+$thumbnail-bg:                $body-bg;
+//** Thumbnail border color
+$thumbnail-border:            $gray;
+//** Thumbnail border radius
+$thumbnail-border-radius:     $border-radius-base;
+
+//** Custom text color for thumbnail captions
+$thumbnail-caption-color:     $text-color;
+//** Padding around the thumbnail caption
+$thumbnail-caption-padding:   9px;
+
+
+//== Wells
+//
+//##
+
+$well-bg:                     $gray-darker;
+$well-border:                 $gray;
+
+
+//== Badges
+//
+//##
+
+$badge-color:                 $gray-darker;
+//** Linked badge text color on hover
+$badge-link-hover-color:      $gray-darker-hover;
+$badge-bg:                    $gray-light;
+
+//** Badge text color in active nav link
+$badge-active-color:          $link-color;
+//** Badge background color in active nav link
+$badge-active-bg:             $gray-darker;
+
+$badge-font-weight:           bold;
+$badge-line-height:           1;
+$badge-border-radius:         10px;
+
+
+//== Breadcrumbs
+//
+//##
+
+$breadcrumb-padding-vertical:   8px;
+$breadcrumb-padding-horizontal: 15px;
+//** Breadcrumb background color
+$breadcrumb-bg:                 $gray-darker;
+//** Breadcrumb text color
+$breadcrumb-color:              $gray-light;
+//** Text color of current page in the breadcrumb
+$breadcrumb-active-color:       $gray-light;
+//** Textual separator for between breadcrumb elements
+$breadcrumb-separator:          "/";
+
+
+//== Carousel
+//
+//##
+
+$carousel-text-shadow:                        0 1px 2px rgba(0,0,0,.6);
+
+$carousel-control-color:                      #fff;
+$carousel-control-width:                      15%;
+$carousel-control-opacity:                    .5;
+$carousel-control-font-size:                  20px;
+
+$carousel-indicator-active-bg:                #fff;
+$carousel-indicator-border-color:             #fff;
+
+$carousel-caption-color:                      #fff;
+
+
+//== Close
+//
+//##
+
+$close-font-weight:           bold;
+$close-color:                 #000;
+$close-text-shadow:           0 1px 0 #fff;
+
+
+//== Code
+//
+//##
+
+$code-color:                  lighten($brand-danger, 25%);
+$code-bg:                     rgba($text-color, 0.01);
+
+$kbd-color:                   #fff;
+$kbd-bg:                      #333;
+
+$pre-bg:                      #f5f5f5;      // Useless, Overwritten in _base.scss
+$pre-color:                   $gray-dark;   // Useless, Overwritten in _base.scss
+$pre-border-color:            #ccc;
+$pre-scrollable-max-height:   340px;
+
+
+//== Type
+//
+//##
+
+//** Horizontal offset for forms and lists.
+$component-offset-horizontal: 180px;
+//** Text muted color
+$text-muted:                  $gray-light;
+//** Abbreviations and acronyms border color
+$abbr-border-color:           $gray-light;
+//** Headings small color
+$headings-small-color:        $gray-light;
+//** Blockquote small color
+$blockquote-small-color:      $gray-light;
+//** Blockquote font size
+$blockquote-font-size:        ($font-size-base * 1.25);
+//** Blockquote border color
+$blockquote-border-color:     $gray-lighter;
+//** Page header border color
+$page-header-border-color:    $gray-lighter;
+//** Width of horizontal description list titles
+$dl-horizontal-offset:        $component-offset-horizontal;
+//** Horizontal line color.
+$hr-border:                   $gray-lighter;
+
+// Custom SCSS
+// General
+
+body {
+  background: linear-gradient($body-bg-header 10%, $body-bg 100%);
+  background-repeat: no-repeat;
+  background-attachment: fixed;
+  height: 100%;
+  width: 100%;
+  overflow-x: hidden;
+  text-shadow: 0 0 0.01em $shadow-color;
+}
+
+a {
+  cursor: pointer;
+}
+
+blockquote {
+  border-color: $gray;
+  border-width: 0 0 0 0.2em;
+  border-style: solid;
+}
+
+h1 {
+  padding-top: 0.5em;
+  padding-bottom: 0.5em;
+}
+
+h1 a,
+h1 a:hover {
+  color: $brand-primary;
+}
+
+
+h1,
+h2,
+h3,
+h4,
+h5,
+h6 {
+  color: $brand-danger;
+  text-decoration-color: $brand-danger;
+  border-bottom-color: $brand-danger;
+}
+
+#background-div,
+#background-svg {
+  width: 100%;
+  height: 100%;
+  position: fixed;
+  top: 0;
+  left: 0;
+  z-index: 0;
+}
+
+#title {
+  margin-top: 0;
+}
+
+// Social media hover colors colors
+$icon-shadow: 0.1em;
+$icons-list: github facebook twitter linkedin envelope;
+$icons-colors: $github-color $facebook-color $twitter-color $linkedin-color $envelope-color;
+@for $i from 1 through length($icons-list) {
+  .fa-#{nth($icons-list, $i)}:hover {
+    text-shadow: 0 0 $icon-shadow #{nth($icons-colors, $i)};
+  }
+}
+
+.bgColor1 {
+  stop-color: $bg-color1;
+}
+
+.bgColor2 {
+  stop-color: $bg-color2;
+}
+
+.page-footer {
+  margin-top: 8em;
+
+  center div div a i {
+    color: $gray !important;
+  }
+}
+
+.navbar-toggle:hover {
+  background-color: transparent !important;
+}
+
+.navbar-icon:hover {
+  text-shadow: 0 0 $icon-shadow lighten($brand-primary, 20%);
+  color: $brand-primary !important;
+}
+
+.navbar-icon {
+  color: $brand-primary !important;
+}
+
+.navbar {
+  background-color: $navbar-bg;
+  transition: background-color 0.25s ease-in-out;
+  -webkit-transition: background-color 0.25s ease-in-out;
+}
+
+nav:hover {
+  background-color: $navbar-default-bg;
+}
+
+.post-title {
+  color: $brand-primary;
+}
+
+.blog-post {
+  margin-bottom: 5em;
+}
+
+$avatar-size: 10em;
+.avatar-image {
+  height: auto;
+  width: auto;
+  max-height: $avatar-size;
+  max-width: $avatar-size;
+  border-radius: $avatar-size;
+  border-style: solid;
+  border-width: medium;
+  border-color: $gray-light;
+}
+
+.avatar-description {
+  color: $gray-light;
+}
+
+.hide {
+  display: none;
+}
+
+.h1-overlay {
+  background: $h1-bg;
+  position: absolute;
+  width: 100%;
+  z-index: -1;
+  padding: 1em;
+}
+
+.right-links {
+  a i {
+    font-size: 1.5em;
+    color: $gray !important;
+  }
+}
+
+
+/*!
+ * animate.css -http://daneden.me/animate
+ * Version - 3.5.1
+ * Licensed under the MIT license - http://opensource.org/licenses/MIT
+ *
+ * Copyright (c) 2016 Daniel Eden
+ */
+
+.animated{-webkit-animation-duration:1s;animation-duration:1s;-webkit-animation-fill-mode:both;animation-fill-mode:both}.animated.infinite{-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite}.animated.hinge{-webkit-animation-duration:2s;animation-duration:2s}.animated.bounceIn,.animated.bounceOut,.animated.flipOutX,.animated.flipOutY{-webkit-animation-duration:.75s;animation-duration:.75s}@-webkit-keyframes bounce{0%,20%,53%,80%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1);-webkit-transform:translateZ(0);transform:translateZ(0)}40%,43%{-webkit-transform:translate3d(0,-30px,0);transform:translate3d(0,-30px,0)}40%,43%,70%{-webkit-animation-timing-function:cubic-bezier(.755,.05,.855,.06);animation-timing-function:cubic-bezier(.755,.05,.855,.06)}70%{-webkit-transform:translate3d(0,-15px,0);transform:translate3d(0,-15px,0)}90%{-webkit-transform:translate3d(0,-4px,0);transform:translate3d(0,-4px,0)}}@keyframes bounce{0%,20%,53%,80%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1);-webkit-transform:translateZ(0);transform:translateZ(0)}40%,43%{-webkit-transform:translate3d(0,-30px,0);transform:translate3d(0,-30px,0)}40%,43%,70%{-webkit-animation-timing-function:cubic-bezier(.755,.05,.855,.06);animation-timing-function:cubic-bezier(.755,.05,.855,.06)}70%{-webkit-transform:translate3d(0,-15px,0);transform:translate3d(0,-15px,0)}90%{-webkit-transform:translate3d(0,-4px,0);transform:translate3d(0,-4px,0)}}.bounce{-webkit-animation-name:bounce;animation-name:bounce;-webkit-transform-origin:center bottom;transform-origin:center bottom}@-webkit-keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}@keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}.flash{-webkit-animation-name:flash;animation-name:flash}@-webkit-keyframes pulse{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}50%{-webkit-transform:scale3d(1.05,1.05,1.05);transform:scale3d(1.05,1.05,1.05)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes pulse{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}50%{-webkit-transform:scale3d(1.05,1.05,1.05);transform:scale3d(1.05,1.05,1.05)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}.pulse{-webkit-animation-name:pulse;animation-name:pulse}@-webkit-keyframes rubberBand{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}30%{-webkit-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}40%{-webkit-transform:scale3d(.75,1.25,1);transform:scale3d(.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,.85,1);transform:scale3d(1.15,.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes rubberBand{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}30%{-webkit-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}40%{-webkit-transform:scale3d(.75,1.25,1);transform:scale3d(.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,.85,1);transform:scale3d(1.15,.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}.rubberBand{-webkit-animation-name:rubberBand;animation-name:rubberBand}@-webkit-keyframes shake{0%,to{-webkit-transform:translateZ(0);transform:translateZ(0)}10%,30%,50%,70%,90%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}20%,40%,60%,80%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}}@keyframes shake{0%,to{-webkit-transform:translateZ(0);transform:translateZ(0)}10%,30%,50%,70%,90%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}20%,40%,60%,80%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}}.shake{-webkit-animation-name:shake;animation-name:shake}@-webkit-keyframes headShake{0%{-webkit-transform:translateX(0);transform:translateX(0)}6.5%{-webkit-transform:translateX(-6px) rotateY(-9deg);transform:translateX(-6px) rotateY(-9deg)}18.5%{-webkit-transform:translateX(5px) rotateY(7deg);transform:translateX(5px) rotateY(7deg)}31.5%{-webkit-transform:translateX(-3px) rotateY(-5deg);transform:translateX(-3px) rotateY(-5deg)}43.5%{-webkit-transform:translateX(2px) rotateY(3deg);transform:translateX(2px) rotateY(3deg)}50%{-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes headShake{0%{-webkit-transform:translateX(0);transform:translateX(0)}6.5%{-webkit-transform:translateX(-6px) rotateY(-9deg);transform:translateX(-6px) rotateY(-9deg)}18.5%{-webkit-transform:translateX(5px) rotateY(7deg);transform:translateX(5px) rotateY(7deg)}31.5%{-webkit-transform:translateX(-3px) rotateY(-5deg);transform:translateX(-3px) rotateY(-5deg)}43.5%{-webkit-transform:translateX(2px) rotateY(3deg);transform:translateX(2px) rotateY(3deg)}50%{-webkit-transform:translateX(0);transform:translateX(0)}}.headShake{-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;-webkit-animation-name:headShake;animation-name:headShake}@-webkit-keyframes swing{20%{-webkit-transform:rotate(15deg);transform:rotate(15deg)}40%{-webkit-transform:rotate(-10deg);transform:rotate(-10deg)}60%{-webkit-transform:rotate(5deg);transform:rotate(5deg)}80%{-webkit-transform:rotate(-5deg);transform:rotate(-5deg)}to{-webkit-transform:rotate(0deg);transform:rotate(0deg)}}@keyframes swing{20%{-webkit-transform:rotate(15deg);transform:rotate(15deg)}40%{-webkit-transform:rotate(-10deg);transform:rotate(-10deg)}60%{-webkit-transform:rotate(5deg);transform:rotate(5deg)}80%{-webkit-transform:rotate(-5deg);transform:rotate(-5deg)}to{-webkit-transform:rotate(0deg);transform:rotate(0deg)}}.swing{-webkit-transform-origin:top center;transform-origin:top center;-webkit-animation-name:swing;animation-name:swing}@-webkit-keyframes tada{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}10%,20%{-webkit-transform:scale3d(.9,.9,.9) rotate(-3deg);transform:scale3d(.9,.9,.9) rotate(-3deg)}30%,50%,70%,90%{-webkit-transform:scale3d(1.1,1.1,1.1) rotate(3deg);transform:scale3d(1.1,1.1,1.1) rotate(3deg)}40%,60%,80%{-webkit-transform:scale3d(1.1,1.1,1.1) rotate(-3deg);transform:scale3d(1.1,1.1,1.1) rotate(-3deg)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes tada{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}10%,20%{-webkit-transform:scale3d(.9,.9,.9) rotate(-3deg);transform:scale3d(.9,.9,.9) rotate(-3deg)}30%,50%,70%,90%{-webkit-transform:scale3d(1.1,1.1,1.1) rotate(3deg);transform:scale3d(1.1,1.1,1.1) rotate(3deg)}40%,60%,80%{-webkit-transform:scale3d(1.1,1.1,1.1) rotate(-3deg);transform:scale3d(1.1,1.1,1.1) rotate(-3deg)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}.tada{-webkit-animation-name:tada;animation-name:tada}@-webkit-keyframes wobble{0%{-webkit-transform:none;transform:none}15%{-webkit-transform:translate3d(-25%,0,0) rotate(-5deg);transform:translate3d(-25%,0,0) rotate(-5deg)}30%{-webkit-transform:translate3d(20%,0,0) rotate(3deg);transform:translate3d(20%,0,0) rotate(3deg)}45%{-webkit-transform:translate3d(-15%,0,0) rotate(-3deg);transform:translate3d(-15%,0,0) rotate(-3deg)}60%{-webkit-transform:translate3d(10%,0,0) rotate(2deg);transform:translate3d(10%,0,0) rotate(2deg)}75%{-webkit-transform:translate3d(-5%,0,0) rotate(-1deg);transform:translate3d(-5%,0,0) rotate(-1deg)}to{-webkit-transform:none;transform:none}}@keyframes wobble{0%{-webkit-transform:none;transform:none}15%{-webkit-transform:translate3d(-25%,0,0) rotate(-5deg);transform:translate3d(-25%,0,0) rotate(-5deg)}30%{-webkit-transform:translate3d(20%,0,0) rotate(3deg);transform:translate3d(20%,0,0) rotate(3deg)}45%{-webkit-transform:translate3d(-15%,0,0) rotate(-3deg);transform:translate3d(-15%,0,0) rotate(-3deg)}60%{-webkit-transform:translate3d(10%,0,0) rotate(2deg);transform:translate3d(10%,0,0) rotate(2deg)}75%{-webkit-transform:translate3d(-5%,0,0) rotate(-1deg);transform:translate3d(-5%,0,0) rotate(-1deg)}to{-webkit-transform:none;transform:none}}.wobble{-webkit-animation-name:wobble;animation-name:wobble}@-webkit-keyframes jello{0%,11.1%,to{-webkit-transform:none;transform:none}22.2%{-webkit-transform:skewX(-12.5deg) skewY(-12.5deg);transform:skewX(-12.5deg) skewY(-12.5deg)}33.3%{-webkit-transform:skewX(6.25deg) skewY(6.25deg);transform:skewX(6.25deg) skewY(6.25deg)}44.4%{-webkit-transform:skewX(-3.125deg) skewY(-3.125deg);transform:skewX(-3.125deg) skewY(-3.125deg)}55.5%{-webkit-transform:skewX(1.5625deg) skewY(1.5625deg);transform:skewX(1.5625deg) skewY(1.5625deg)}66.6%{-webkit-transform:skewX(-.78125deg) skewY(-.78125deg);transform:skewX(-.78125deg) skewY(-.78125deg)}77.7%{-webkit-transform:skewX(.390625deg) skewY(.390625deg);transform:skewX(.390625deg) skewY(.390625deg)}88.8%{-webkit-transform:skewX(-.1953125deg) skewY(-.1953125deg);transform:skewX(-.1953125deg) skewY(-.1953125deg)}}@keyframes jello{0%,11.1%,to{-webkit-transform:none;transform:none}22.2%{-webkit-transform:skewX(-12.5deg) skewY(-12.5deg);transform:skewX(-12.5deg) skewY(-12.5deg)}33.3%{-webkit-transform:skewX(6.25deg) skewY(6.25deg);transform:skewX(6.25deg) skewY(6.25deg)}44.4%{-webkit-transform:skewX(-3.125deg) skewY(-3.125deg);transform:skewX(-3.125deg) skewY(-3.125deg)}55.5%{-webkit-transform:skewX(1.5625deg) skewY(1.5625deg);transform:skewX(1.5625deg) skewY(1.5625deg)}66.6%{-webkit-transform:skewX(-.78125deg) skewY(-.78125deg);transform:skewX(-.78125deg) skewY(-.78125deg)}77.7%{-webkit-transform:skewX(.390625deg) skewY(.390625deg);transform:skewX(.390625deg) skewY(.390625deg)}88.8%{-webkit-transform:skewX(-.1953125deg) skewY(-.1953125deg);transform:skewX(-.1953125deg) skewY(-.1953125deg)}}.jello{-webkit-animation-name:jello;animation-name:jello;-webkit-transform-origin:center;transform-origin:center}@-webkit-keyframes bounceIn{0%,20%,40%,60%,80%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes bounceIn{0%,20%,40%,60%,80%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}.bounceIn{-webkit-animation-name:bounceIn;animation-name:bounceIn}@-webkit-keyframes bounceInDown{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(0,-3000px,0);transform:translate3d(0,-3000px,0)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0);transform:translate3d(0,25px,0)}75%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}90%{-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}to{-webkit-transform:none;transform:none}}@keyframes bounceInDown{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(0,-3000px,0);transform:translate3d(0,-3000px,0)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0);transform:translate3d(0,25px,0)}75%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}90%{-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}to{-webkit-transform:none;transform:none}}.bounceInDown{-webkit-animation-name:bounceInDown;animation-name:bounceInDown}@-webkit-keyframes bounceInLeft{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(-3000px,0,0);transform:translate3d(-3000px,0,0)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0);transform:translate3d(25px,0,0)}75%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}90%{-webkit-transform:translate3d(5px,0,0);transform:translate3d(5px,0,0)}to{-webkit-transform:none;transform:none}}@keyframes bounceInLeft{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(-3000px,0,0);transform:translate3d(-3000px,0,0)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0);transform:translate3d(25px,0,0)}75%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}90%{-webkit-transform:translate3d(5px,0,0);transform:translate3d(5px,0,0)}to{-webkit-transform:none;transform:none}}.bounceInLeft{-webkit-animation-name:bounceInLeft;animation-name:bounceInLeft}@-webkit-keyframes bounceInRight{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(3000px,0,0);transform:translate3d(3000px,0,0)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0);transform:translate3d(-25px,0,0)}75%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}90%{-webkit-transform:translate3d(-5px,0,0);transform:translate3d(-5px,0,0)}to{-webkit-transform:none;transform:none}}@keyframes bounceInRight{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(3000px,0,0);transform:translate3d(3000px,0,0)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0);transform:translate3d(-25px,0,0)}75%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}90%{-webkit-transform:translate3d(-5px,0,0);transform:translate3d(-5px,0,0)}to{-webkit-transform:none;transform:none}}.bounceInRight{-webkit-animation-name:bounceInRight;animation-name:bounceInRight}@-webkit-keyframes bounceInUp{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(0,3000px,0);transform:translate3d(0,3000px,0)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}75%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}90%{-webkit-transform:translate3d(0,-5px,0);transform:translate3d(0,-5px,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes bounceInUp{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(0,3000px,0);transform:translate3d(0,3000px,0)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}75%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}90%{-webkit-transform:translate3d(0,-5px,0);transform:translate3d(0,-5px,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.bounceInUp{-webkit-animation-name:bounceInUp;animation-name:bounceInUp}@-webkit-keyframes bounceOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}to{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}@keyframes bounceOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}to{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}.bounceOut{-webkit-animation-name:bounceOut;animation-name:bounceOut}@-webkit-keyframes bounceOutDown{20%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}@keyframes bounceOutDown{20%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}.bounceOutDown{-webkit-animation-name:bounceOutDown;animation-name:bounceOutDown}@-webkit-keyframes bounceOutLeft{20%{opacity:1;-webkit-transform:translate3d(20px,0,0);transform:translate3d(20px,0,0)}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}@keyframes bounceOutLeft{20%{opacity:1;-webkit-transform:translate3d(20px,0,0);transform:translate3d(20px,0,0)}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}.bounceOutLeft{-webkit-animation-name:bounceOutLeft;animation-name:bounceOutLeft}@-webkit-keyframes bounceOutRight{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0);transform:translate3d(-20px,0,0)}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}@keyframes bounceOutRight{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0);transform:translate3d(-20px,0,0)}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}.bounceOutRight{-webkit-animation-name:bounceOutRight;animation-name:bounceOutRight}@-webkit-keyframes bounceOutUp{20%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0)}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@keyframes bounceOutUp{20%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0)}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}.bounceOutUp{-webkit-animation-name:bounceOutUp;animation-name:bounceOutUp}@-webkit-keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.fadeIn{-webkit-animation-name:fadeIn;animation-name:fadeIn}@-webkit-keyframes fadeInDown{0%{opacity:0;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}to{opacity:1;-webkit-transform:none;transform:none}}@keyframes fadeInDown{0%{opacity:0;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}to{opacity:1;-webkit-transform:none;transform:none}}.fadeInDown{-webkit-animation-name:fadeInDown;animation-name:fadeInDown}@-webkit-keyframes fadeInDownBig{0%{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}to{opacity:1;-webkit-transform:none;transform:none}}@keyframes fadeInDownBig{0%{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}to{opacity:1;-webkit-transform:none;transform:none}}.fadeInDownBig{-webkit-animation-name:fadeInDownBig;animation-name:fadeInDownBig}@-webkit-keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}to{opacity:1;-webkit-transform:none;transform:none}}@keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}to{opacity:1;-webkit-transform:none;transform:none}}.fadeInLeft{-webkit-animation-name:fadeInLeft;animation-name:fadeInLeft}@-webkit-keyframes fadeInLeftBig{0%{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}to{opacity:1;-webkit-transform:none;transform:none}}@keyframes fadeInLeftBig{0%{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}to{opacity:1;-webkit-transform:none;transform:none}}.fadeInLeftBig{-webkit-animation-name:fadeInLeftBig;animation-name:fadeInLeftBig}@-webkit-keyframes fadeInRight{0%{opacity:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}to{opacity:1;-webkit-transform:none;transform:none}}@keyframes fadeInRight{0%{opacity:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}to{opacity:1;-webkit-transform:none;transform:none}}.fadeInRight{-webkit-animation-name:fadeInRight;animation-name:fadeInRight}@-webkit-keyframes fadeInRightBig{0%{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}to{opacity:1;-webkit-transform:none;transform:none}}@keyframes fadeInRightBig{0%{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}to{opacity:1;-webkit-transform:none;transform:none}}.fadeInRightBig{-webkit-animation-name:fadeInRightBig;animation-name:fadeInRightBig}@-webkit-keyframes fadeInUp{0%{opacity:0;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}to{opacity:1;-webkit-transform:none;transform:none}}@keyframes fadeInUp{0%{opacity:0;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}to{opacity:1;-webkit-transform:none;transform:none}}.fadeInUp{-webkit-animation-name:fadeInUp;animation-name:fadeInUp}@-webkit-keyframes fadeInUpBig{0%{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}to{opacity:1;-webkit-transform:none;transform:none}}@keyframes fadeInUpBig{0%{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}to{opacity:1;-webkit-transform:none;transform:none}}.fadeInUpBig{-webkit-animation-name:fadeInUpBig;animation-name:fadeInUpBig}@-webkit-keyframes fadeOut{0%{opacity:1}to{opacity:0}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}.fadeOut{-webkit-animation-name:fadeOut;animation-name:fadeOut}@-webkit-keyframes fadeOutDown{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}}@keyframes fadeOutDown{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}}.fadeOutDown{-webkit-animation-name:fadeOutDown;animation-name:fadeOutDown}@-webkit-keyframes fadeOutDownBig{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}@keyframes fadeOutDownBig{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}.fadeOutDownBig{-webkit-animation-name:fadeOutDownBig;animation-name:fadeOutDownBig}@-webkit-keyframes fadeOutLeft{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}}@keyframes fadeOutLeft{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}}.fadeOutLeft{-webkit-animation-name:fadeOutLeft;animation-name:fadeOutLeft}@-webkit-keyframes fadeOutLeftBig{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}@keyframes fadeOutLeftBig{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}.fadeOutLeftBig{-webkit-animation-name:fadeOutLeftBig;animation-name:fadeOutLeftBig}@-webkit-keyframes fadeOutRight{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}}@keyframes fadeOutRight{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}}.fadeOutRight{-webkit-animation-name:fadeOutRight;animation-name:fadeOutRight}@-webkit-keyframes fadeOutRightBig{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}@keyframes fadeOutRightBig{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}.fadeOutRightBig{-webkit-animation-name:fadeOutRightBig;animation-name:fadeOutRightBig}@-webkit-keyframes fadeOutUp{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}}@keyframes fadeOutUp{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}}.fadeOutUp{-webkit-animation-name:fadeOutUp;animation-name:fadeOutUp}@-webkit-keyframes fadeOutUpBig{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@keyframes fadeOutUpBig{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}.fadeOutUpBig{-webkit-animation-name:fadeOutUpBig;animation-name:fadeOutUpBig}@-webkit-keyframes flip{0%{-webkit-transform:perspective(400px) rotateY(-1turn);transform:perspective(400px) rotateY(-1turn)}0%,40%{-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}40%{-webkit-transform:perspective(400px) translateZ(150px) rotateY(-190deg);transform:perspective(400px) translateZ(150px) rotateY(-190deg)}50%{-webkit-transform:perspective(400px) translateZ(150px) rotateY(-170deg);transform:perspective(400px) translateZ(150px) rotateY(-170deg)}50%,80%{-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}80%{-webkit-transform:perspective(400px) scale3d(.95,.95,.95);transform:perspective(400px) scale3d(.95,.95,.95)}to{-webkit-transform:perspective(400px);transform:perspective(400px);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}}@keyframes flip{0%{-webkit-transform:perspective(400px) rotateY(-1turn);transform:perspective(400px) rotateY(-1turn)}0%,40%{-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}40%{-webkit-transform:perspective(400px) translateZ(150px) rotateY(-190deg);transform:perspective(400px) translateZ(150px) rotateY(-190deg)}50%{-webkit-transform:perspective(400px) translateZ(150px) rotateY(-170deg);transform:perspective(400px) translateZ(150px) rotateY(-170deg)}50%,80%{-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}80%{-webkit-transform:perspective(400px) scale3d(.95,.95,.95);transform:perspective(400px) scale3d(.95,.95,.95)}to{-webkit-transform:perspective(400px);transform:perspective(400px);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}}.animated.flip{-webkit-backface-visibility:visible;backface-visibility:visible;-webkit-animation-name:flip;animation-name:flip}@-webkit-keyframes flipInX{0%{-webkit-transform:perspective(400px) rotateX(90deg);transform:perspective(400px) rotateX(90deg);opacity:0}0%,40%{-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}40%{-webkit-transform:perspective(400px) rotateX(-20deg);transform:perspective(400px) rotateX(-20deg)}60%{-webkit-transform:perspective(400px) rotateX(10deg);transform:perspective(400px) rotateX(10deg);opacity:1}80%{-webkit-transform:perspective(400px) rotateX(-5deg);transform:perspective(400px) rotateX(-5deg)}to{-webkit-transform:perspective(400px);transform:perspective(400px)}}@keyframes flipInX{0%{-webkit-transform:perspective(400px) rotateX(90deg);transform:perspective(400px) rotateX(90deg);opacity:0}0%,40%{-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}40%{-webkit-transform:perspective(400px) rotateX(-20deg);transform:perspective(400px) rotateX(-20deg)}60%{-webkit-transform:perspective(400px) rotateX(10deg);transform:perspective(400px) rotateX(10deg);opacity:1}80%{-webkit-transform:perspective(400px) rotateX(-5deg);transform:perspective(400px) rotateX(-5deg)}to{-webkit-transform:perspective(400px);transform:perspective(400px)}}.flipInX{-webkit-backface-visibility:visible!important;backface-visibility:visible!important;-webkit-animation-name:flipInX;animation-name:flipInX}@-webkit-keyframes flipInY{0%{-webkit-transform:perspective(400px) rotateY(90deg);transform:perspective(400px) rotateY(90deg);opacity:0}0%,40%{-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}40%{-webkit-transform:perspective(400px) rotateY(-20deg);transform:perspective(400px) rotateY(-20deg)}60%{-webkit-transform:perspective(400px) rotateY(10deg);transform:perspective(400px) rotateY(10deg);opacity:1}80%{-webkit-transform:perspective(400px) rotateY(-5deg);transform:perspective(400px) rotateY(-5deg)}to{-webkit-transform:perspective(400px);transform:perspective(400px)}}@keyframes flipInY{0%{-webkit-transform:perspective(400px) rotateY(90deg);transform:perspective(400px) rotateY(90deg);opacity:0}0%,40%{-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}40%{-webkit-transform:perspective(400px) rotateY(-20deg);transform:perspective(400px) rotateY(-20deg)}60%{-webkit-transform:perspective(400px) rotateY(10deg);transform:perspective(400px) rotateY(10deg);opacity:1}80%{-webkit-transform:perspective(400px) rotateY(-5deg);transform:perspective(400px) rotateY(-5deg)}to{-webkit-transform:perspective(400px);transform:perspective(400px)}}.flipInY{-webkit-backface-visibility:visible!important;backface-visibility:visible!important;-webkit-animation-name:flipInY;animation-name:flipInY}@-webkit-keyframes flipOutX{0%{-webkit-transform:perspective(400px);transform:perspective(400px)}30%{-webkit-transform:perspective(400px) rotateX(-20deg);transform:perspective(400px) rotateX(-20deg);opacity:1}to{-webkit-transform:perspective(400px) rotateX(90deg);transform:perspective(400px) rotateX(90deg);opacity:0}}@keyframes flipOutX{0%{-webkit-transform:perspective(400px);transform:perspective(400px)}30%{-webkit-transform:perspective(400px) rotateX(-20deg);transform:perspective(400px) rotateX(-20deg);opacity:1}to{-webkit-transform:perspective(400px) rotateX(90deg);transform:perspective(400px) rotateX(90deg);opacity:0}}.flipOutX{-webkit-animation-name:flipOutX;animation-name:flipOutX;-webkit-backface-visibility:visible!important;backface-visibility:visible!important}@-webkit-keyframes flipOutY{0%{-webkit-transform:perspective(400px);transform:perspective(400px)}30%{-webkit-transform:perspective(400px) rotateY(-15deg);transform:perspective(400px) rotateY(-15deg);opacity:1}to{-webkit-transform:perspective(400px) rotateY(90deg);transform:perspective(400px) rotateY(90deg);opacity:0}}@keyframes flipOutY{0%{-webkit-transform:perspective(400px);transform:perspective(400px)}30%{-webkit-transform:perspective(400px) rotateY(-15deg);transform:perspective(400px) rotateY(-15deg);opacity:1}to{-webkit-transform:perspective(400px) rotateY(90deg);transform:perspective(400px) rotateY(90deg);opacity:0}}.flipOutY{-webkit-backface-visibility:visible!important;backface-visibility:visible!important;-webkit-animation-name:flipOutY;animation-name:flipOutY}@-webkit-keyframes lightSpeedIn{0%{-webkit-transform:translate3d(100%,0,0) skewX(-30deg);transform:translate3d(100%,0,0) skewX(-30deg);opacity:0}60%{-webkit-transform:skewX(20deg);transform:skewX(20deg)}60%,80%{opacity:1}80%{-webkit-transform:skewX(-5deg);transform:skewX(-5deg)}to{-webkit-transform:none;transform:none;opacity:1}}@keyframes lightSpeedIn{0%{-webkit-transform:translate3d(100%,0,0) skewX(-30deg);transform:translate3d(100%,0,0) skewX(-30deg);opacity:0}60%{-webkit-transform:skewX(20deg);transform:skewX(20deg)}60%,80%{opacity:1}80%{-webkit-transform:skewX(-5deg);transform:skewX(-5deg)}to{-webkit-transform:none;transform:none;opacity:1}}.lightSpeedIn{-webkit-animation-name:lightSpeedIn;animation-name:lightSpeedIn;-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}@-webkit-keyframes lightSpeedOut{0%{opacity:1}to{-webkit-transform:translate3d(100%,0,0) skewX(30deg);transform:translate3d(100%,0,0) skewX(30deg);opacity:0}}@keyframes lightSpeedOut{0%{opacity:1}to{-webkit-transform:translate3d(100%,0,0) skewX(30deg);transform:translate3d(100%,0,0) skewX(30deg);opacity:0}}.lightSpeedOut{-webkit-animation-name:lightSpeedOut;animation-name:lightSpeedOut;-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}@-webkit-keyframes rotateIn{0%{transform-origin:center;-webkit-transform:rotate(-200deg);transform:rotate(-200deg);opacity:0}0%,to{-webkit-transform-origin:center}to{transform-origin:center;-webkit-transform:none;transform:none;opacity:1}}@keyframes rotateIn{0%{transform-origin:center;-webkit-transform:rotate(-200deg);transform:rotate(-200deg);opacity:0}0%,to{-webkit-transform-origin:center}to{transform-origin:center;-webkit-transform:none;transform:none;opacity:1}}.rotateIn{-webkit-animation-name:rotateIn;animation-name:rotateIn}@-webkit-keyframes rotateInDownLeft{0%{transform-origin:left bottom;-webkit-transform:rotate(-45deg);transform:rotate(-45deg);opacity:0}0%,to{-webkit-transform-origin:left bottom}to{transform-origin:left bottom;-webkit-transform:none;transform:none;opacity:1}}@keyframes rotateInDownLeft{0%{transform-origin:left bottom;-webkit-transform:rotate(-45deg);transform:rotate(-45deg);opacity:0}0%,to{-webkit-transform-origin:left bottom}to{transform-origin:left bottom;-webkit-transform:none;transform:none;opacity:1}}.rotateInDownLeft{-webkit-animation-name:rotateInDownLeft;animation-name:rotateInDownLeft}@-webkit-keyframes rotateInDownRight{0%{transform-origin:right bottom;-webkit-transform:rotate(45deg);transform:rotate(45deg);opacity:0}0%,to{-webkit-transform-origin:right bottom}to{transform-origin:right bottom;-webkit-transform:none;transform:none;opacity:1}}@keyframes rotateInDownRight{0%{transform-origin:right bottom;-webkit-transform:rotate(45deg);transform:rotate(45deg);opacity:0}0%,to{-webkit-transform-origin:right bottom}to{transform-origin:right bottom;-webkit-transform:none;transform:none;opacity:1}}.rotateInDownRight{-webkit-animation-name:rotateInDownRight;animation-name:rotateInDownRight}@-webkit-keyframes rotateInUpLeft{0%{transform-origin:left bottom;-webkit-transform:rotate(45deg);transform:rotate(45deg);opacity:0}0%,to{-webkit-transform-origin:left bottom}to{transform-origin:left bottom;-webkit-transform:none;transform:none;opacity:1}}@keyframes rotateInUpLeft{0%{transform-origin:left bottom;-webkit-transform:rotate(45deg);transform:rotate(45deg);opacity:0}0%,to{-webkit-transform-origin:left bottom}to{transform-origin:left bottom;-webkit-transform:none;transform:none;opacity:1}}.rotateInUpLeft{-webkit-animation-name:rotateInUpLeft;animation-name:rotateInUpLeft}@-webkit-keyframes rotateInUpRight{0%{transform-origin:right bottom;-webkit-transform:rotate(-90deg);transform:rotate(-90deg);opacity:0}0%,to{-webkit-transform-origin:right bottom}to{transform-origin:right bottom;-webkit-transform:none;transform:none;opacity:1}}@keyframes rotateInUpRight{0%{transform-origin:right bottom;-webkit-transform:rotate(-90deg);transform:rotate(-90deg);opacity:0}0%,to{-webkit-transform-origin:right bottom}to{transform-origin:right bottom;-webkit-transform:none;transform:none;opacity:1}}.rotateInUpRight{-webkit-animation-name:rotateInUpRight;animation-name:rotateInUpRight}@-webkit-keyframes rotateOut{0%{transform-origin:center;opacity:1}0%,to{-webkit-transform-origin:center}to{transform-origin:center;-webkit-transform:rotate(200deg);transform:rotate(200deg);opacity:0}}@keyframes rotateOut{0%{transform-origin:center;opacity:1}0%,to{-webkit-transform-origin:center}to{transform-origin:center;-webkit-transform:rotate(200deg);transform:rotate(200deg);opacity:0}}.rotateOut{-webkit-animation-name:rotateOut;animation-name:rotateOut}@-webkit-keyframes rotateOutDownLeft{0%{transform-origin:left bottom;opacity:1}0%,to{-webkit-transform-origin:left bottom}to{transform-origin:left bottom;-webkit-transform:rotate(45deg);transform:rotate(45deg);opacity:0}}@keyframes rotateOutDownLeft{0%{transform-origin:left bottom;opacity:1}0%,to{-webkit-transform-origin:left bottom}to{transform-origin:left bottom;-webkit-transform:rotate(45deg);transform:rotate(45deg);opacity:0}}.rotateOutDownLeft{-webkit-animation-name:rotateOutDownLeft;animation-name:rotateOutDownLeft}@-webkit-keyframes rotateOutDownRight{0%{transform-origin:right bottom;opacity:1}0%,to{-webkit-transform-origin:right bottom}to{transform-origin:right bottom;-webkit-transform:rotate(-45deg);transform:rotate(-45deg);opacity:0}}@keyframes rotateOutDownRight{0%{transform-origin:right bottom;opacity:1}0%,to{-webkit-transform-origin:right bottom}to{transform-origin:right bottom;-webkit-transform:rotate(-45deg);transform:rotate(-45deg);opacity:0}}.rotateOutDownRight{-webkit-animation-name:rotateOutDownRight;animation-name:rotateOutDownRight}@-webkit-keyframes rotateOutUpLeft{0%{transform-origin:left bottom;opacity:1}0%,to{-webkit-transform-origin:left bottom}to{transform-origin:left bottom;-webkit-transform:rotate(-45deg);transform:rotate(-45deg);opacity:0}}@keyframes rotateOutUpLeft{0%{transform-origin:left bottom;opacity:1}0%,to{-webkit-transform-origin:left bottom}to{transform-origin:left bottom;-webkit-transform:rotate(-45deg);transform:rotate(-45deg);opacity:0}}.rotateOutUpLeft{-webkit-animation-name:rotateOutUpLeft;animation-name:rotateOutUpLeft}@-webkit-keyframes rotateOutUpRight{0%{transform-origin:right bottom;opacity:1}0%,to{-webkit-transform-origin:right bottom}to{transform-origin:right bottom;-webkit-transform:rotate(90deg);transform:rotate(90deg);opacity:0}}@keyframes rotateOutUpRight{0%{transform-origin:right bottom;opacity:1}0%,to{-webkit-transform-origin:right bottom}to{transform-origin:right bottom;-webkit-transform:rotate(90deg);transform:rotate(90deg);opacity:0}}.rotateOutUpRight{-webkit-animation-name:rotateOutUpRight;animation-name:rotateOutUpRight}@-webkit-keyframes hinge{0%{transform-origin:top left}0%,20%,60%{-webkit-transform-origin:top left;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}20%,60%{-webkit-transform:rotate(80deg);transform:rotate(80deg);transform-origin:top left}40%,80%{-webkit-transform:rotate(60deg);transform:rotate(60deg);-webkit-transform-origin:top left;transform-origin:top left;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;opacity:1}to{-webkit-transform:translate3d(0,700px,0);transform:translate3d(0,700px,0);opacity:0}}@keyframes hinge{0%{transform-origin:top left}0%,20%,60%{-webkit-transform-origin:top left;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}20%,60%{-webkit-transform:rotate(80deg);transform:rotate(80deg);transform-origin:top left}40%,80%{-webkit-transform:rotate(60deg);transform:rotate(60deg);-webkit-transform-origin:top left;transform-origin:top left;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;opacity:1}to{-webkit-transform:translate3d(0,700px,0);transform:translate3d(0,700px,0);opacity:0}}.hinge{-webkit-animation-name:hinge;animation-name:hinge}@-webkit-keyframes rollIn{0%{opacity:0;-webkit-transform:translate3d(-100%,0,0) rotate(-120deg);transform:translate3d(-100%,0,0) rotate(-120deg)}to{opacity:1;-webkit-transform:none;transform:none}}@keyframes rollIn{0%{opacity:0;-webkit-transform:translate3d(-100%,0,0) rotate(-120deg);transform:translate3d(-100%,0,0) rotate(-120deg)}to{opacity:1;-webkit-transform:none;transform:none}}.rollIn{-webkit-animation-name:rollIn;animation-name:rollIn}@-webkit-keyframes rollOut{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(100%,0,0) rotate(120deg);transform:translate3d(100%,0,0) rotate(120deg)}}@keyframes rollOut{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(100%,0,0) rotate(120deg);transform:translate3d(100%,0,0) rotate(120deg)}}.rollOut{-webkit-animation-name:rollOut;animation-name:rollOut}@-webkit-keyframes zoomIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}50%{opacity:1}}@keyframes zoomIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}50%{opacity:1}}.zoomIn{-webkit-animation-name:zoomIn;animation-name:zoomIn}@-webkit-keyframes zoomInDown{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,-1000px,0);transform:scale3d(.1,.1,.1) translate3d(0,-1000px,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,60px,0);transform:scale3d(.475,.475,.475) translate3d(0,60px,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}@keyframes zoomInDown{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,-1000px,0);transform:scale3d(.1,.1,.1) translate3d(0,-1000px,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,60px,0);transform:scale3d(.475,.475,.475) translate3d(0,60px,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}.zoomInDown{-webkit-animation-name:zoomInDown;animation-name:zoomInDown}@-webkit-keyframes zoomInLeft{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(-1000px,0,0);transform:scale3d(.1,.1,.1) translate3d(-1000px,0,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(10px,0,0);transform:scale3d(.475,.475,.475) translate3d(10px,0,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}@keyframes zoomInLeft{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(-1000px,0,0);transform:scale3d(.1,.1,.1) translate3d(-1000px,0,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(10px,0,0);transform:scale3d(.475,.475,.475) translate3d(10px,0,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}.zoomInLeft{-webkit-animation-name:zoomInLeft;animation-name:zoomInLeft}@-webkit-keyframes zoomInRight{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(1000px,0,0);transform:scale3d(.1,.1,.1) translate3d(1000px,0,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(-10px,0,0);transform:scale3d(.475,.475,.475) translate3d(-10px,0,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}@keyframes zoomInRight{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(1000px,0,0);transform:scale3d(.1,.1,.1) translate3d(1000px,0,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(-10px,0,0);transform:scale3d(.475,.475,.475) translate3d(-10px,0,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}.zoomInRight{-webkit-animation-name:zoomInRight;animation-name:zoomInRight}@-webkit-keyframes zoomInUp{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,1000px,0);transform:scale3d(.1,.1,.1) translate3d(0,1000px,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}@keyframes zoomInUp{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,1000px,0);transform:scale3d(.1,.1,.1) translate3d(0,1000px,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}.zoomInUp{-webkit-animation-name:zoomInUp;animation-name:zoomInUp}@-webkit-keyframes zoomOut{0%{opacity:1}50%{-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}50%,to{opacity:0}}@keyframes zoomOut{0%{opacity:1}50%{-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}50%,to{opacity:0}}.zoomOut{-webkit-animation-name:zoomOut;animation-name:zoomOut}@-webkit-keyframes zoomOutDown{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}to{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,2000px,0);transform:scale3d(.1,.1,.1) translate3d(0,2000px,0);-webkit-transform-origin:center bottom;transform-origin:center bottom;-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}@keyframes zoomOutDown{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}to{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,2000px,0);transform:scale3d(.1,.1,.1) translate3d(0,2000px,0);-webkit-transform-origin:center bottom;transform-origin:center bottom;-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}.zoomOutDown{-webkit-animation-name:zoomOutDown;animation-name:zoomOutDown}@-webkit-keyframes zoomOutLeft{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(42px,0,0);transform:scale3d(.475,.475,.475) translate3d(42px,0,0)}to{opacity:0;-webkit-transform:scale(.1) translate3d(-2000px,0,0);transform:scale(.1) translate3d(-2000px,0,0);-webkit-transform-origin:left center;transform-origin:left center}}@keyframes zoomOutLeft{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(42px,0,0);transform:scale3d(.475,.475,.475) translate3d(42px,0,0)}to{opacity:0;-webkit-transform:scale(.1) translate3d(-2000px,0,0);transform:scale(.1) translate3d(-2000px,0,0);-webkit-transform-origin:left center;transform-origin:left center}}.zoomOutLeft{-webkit-animation-name:zoomOutLeft;animation-name:zoomOutLeft}@-webkit-keyframes zoomOutRight{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(-42px,0,0);transform:scale3d(.475,.475,.475) translate3d(-42px,0,0)}to{opacity:0;-webkit-transform:scale(.1) translate3d(2000px,0,0);transform:scale(.1) translate3d(2000px,0,0);-webkit-transform-origin:right center;transform-origin:right center}}@keyframes zoomOutRight{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(-42px,0,0);transform:scale3d(.475,.475,.475) translate3d(-42px,0,0)}to{opacity:0;-webkit-transform:scale(.1) translate3d(2000px,0,0);transform:scale(.1) translate3d(2000px,0,0);-webkit-transform-origin:right center;transform-origin:right center}}.zoomOutRight{-webkit-animation-name:zoomOutRight;animation-name:zoomOutRight}@-webkit-keyframes zoomOutUp{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,60px,0);transform:scale3d(.475,.475,.475) translate3d(0,60px,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}to{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,-2000px,0);transform:scale3d(.1,.1,.1) translate3d(0,-2000px,0);-webkit-transform-origin:center bottom;transform-origin:center bottom;-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}@keyframes zoomOutUp{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,60px,0);transform:scale3d(.475,.475,.475) translate3d(0,60px,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}to{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,-2000px,0);transform:scale3d(.1,.1,.1) translate3d(0,-2000px,0);-webkit-transform-origin:center bottom;transform-origin:center bottom;-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}.zoomOutUp{-webkit-animation-name:zoomOutUp;animation-name:zoomOutUp}@-webkit-keyframes slideInDown{0%{-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0);visibility:visible}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes slideInDown{0%{-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0);visibility:visible}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.slideInDown{-webkit-animation-name:slideInDown;animation-name:slideInDown}@-webkit-keyframes slideInLeft{0%{-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0);visibility:visible}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes slideInLeft{0%{-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0);visibility:visible}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.slideInLeft{-webkit-animation-name:slideInLeft;animation-name:slideInLeft}@-webkit-keyframes slideInRight{0%{-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0);visibility:visible}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes slideInRight{0%{-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0);visibility:visible}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.slideInRight{-webkit-animation-name:slideInRight;animation-name:slideInRight}@-webkit-keyframes slideInUp{0%{-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0);visibility:visible}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes slideInUp{0%{-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0);visibility:visible}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.slideInUp{-webkit-animation-name:slideInUp;animation-name:slideInUp}@-webkit-keyframes slideOutDown{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{visibility:hidden;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}}@keyframes slideOutDown{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{visibility:hidden;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}}.slideOutDown{-webkit-animation-name:slideOutDown;animation-name:slideOutDown}@-webkit-keyframes slideOutLeft{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{visibility:hidden;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}}@keyframes slideOutLeft{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{visibility:hidden;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}}.slideOutLeft{-webkit-animation-name:slideOutLeft;animation-name:slideOutLeft}@-webkit-keyframes slideOutRight{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{visibility:hidden;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}}@keyframes slideOutRight{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{visibility:hidden;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}}.slideOutRight{-webkit-animation-name:slideOutRight;animation-name:slideOutRight}@-webkit-keyframes slideOutUp{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{visibility:hidden;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}}@keyframes slideOutUp{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{visibility:hidden;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}}.slideOutUp{-webkit-animation-name:slideOutUp;animation-name:slideOutUp}
+
+/*!
+ *  Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome
+ *  License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)
+ */@font-face{font-family:'FontAwesome';src:url('../fonts/fontawesome-webfont.eot?v=4.7.0');src:url('../fonts/fontawesome-webfont.eot?#iefix&v=4.7.0') format('embedded-opentype'),url('../fonts/fontawesome-webfont.woff2?v=4.7.0') format('woff2'),url('../fonts/fontawesome-webfont.woff?v=4.7.0') format('woff'),url('../fonts/fontawesome-webfont.ttf?v=4.7.0') format('truetype'),url('../fonts/fontawesome-webfont.svg?v=4.7.0#fontawesomeregular') format('svg');font-weight:normal;font-style:normal}.fa{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-lg{font-size:1.33333333em;line-height:.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.28571429em;text-align:center}.fa-ul{padding-left:0;margin-left:2.14285714em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.14285714em;width:2.14285714em;top:.14285714em;text-align:center}.fa-li.fa-lg{left:-1.85714286em}.fa-border{padding:.2em .25em .15em;border:solid .08em #eee;border-radius:.1em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left{margin-right:.3em}.fa.fa-pull-right{margin-left:.3em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left{margin-right:.3em}.fa.pull-right{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear}.fa-pulse{-webkit-animation:fa-spin 1s infinite steps(8);animation:fa-spin 1s infinite steps(8)}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.fa-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";-webkit-transform:scale(-1, 1);-ms-transform:scale(-1, 1);transform:scale(-1, 1)}.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";-webkit-transform:scale(1, -1);-ms-transform:scale(1, -1);transform:scale(1, -1)}:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-flip-horizontal,:root .fa-flip-vertical{filter:none}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:"\f000"}.fa-music:before{content:"\f001"}.fa-search:before{content:"\f002"}.fa-envelope-o:before{content:"\f003"}.fa-heart:before{content:"\f004"}.fa-star:before{content:"\f005"}.fa-star-o:before{content:"\f006"}.fa-user:before{content:"\f007"}.fa-film:before{content:"\f008"}.fa-th-large:before{content:"\f009"}.fa-th:before{content:"\f00a"}.fa-th-list:before{content:"\f00b"}.fa-check:before{content:"\f00c"}.fa-remove:before,.fa-close:before,.fa-times:before{content:"\f00d"}.fa-search-plus:before{content:"\f00e"}.fa-search-minus:before{content:"\f010"}.fa-power-off:before{content:"\f011"}.fa-signal:before{content:"\f012"}.fa-gear:before,.fa-cog:before{content:"\f013"}.fa-trash-o:before{content:"\f014"}.fa-home:before{content:"\f015"}.fa-file-o:before{content:"\f016"}.fa-clock-o:before{content:"\f017"}.fa-road:before{content:"\f018"}.fa-download:before{content:"\f019"}.fa-arrow-circle-o-down:before{content:"\f01a"}.fa-arrow-circle-o-up:before{content:"\f01b"}.fa-inbox:before{content:"\f01c"}.fa-play-circle-o:before{content:"\f01d"}.fa-rotate-right:before,.fa-repeat:before{content:"\f01e"}.fa-refresh:before{content:"\f021"}.fa-list-alt:before{content:"\f022"}.fa-lock:before{content:"\f023"}.fa-flag:before{content:"\f024"}.fa-headphones:before{content:"\f025"}.fa-volume-off:before{content:"\f026"}.fa-volume-down:before{content:"\f027"}.fa-volume-up:before{content:"\f028"}.fa-qrcode:before{content:"\f029"}.fa-barcode:before{content:"\f02a"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-book:before{content:"\f02d"}.fa-bookmark:before{content:"\f02e"}.fa-print:before{content:"\f02f"}.fa-camera:before{content:"\f030"}.fa-font:before{content:"\f031"}.fa-bold:before{content:"\f032"}.fa-italic:before{content:"\f033"}.fa-text-height:before{content:"\f034"}.fa-text-width:before{content:"\f035"}.fa-align-left:before{content:"\f036"}.fa-align-center:before{content:"\f037"}.fa-align-right:before{content:"\f038"}.fa-align-justify:before{content:"\f039"}.fa-list:before{content:"\f03a"}.fa-dedent:before,.fa-outdent:before{content:"\f03b"}.fa-indent:before{content:"\f03c"}.fa-video-camera:before{content:"\f03d"}.fa-photo:before,.fa-image:before,.fa-picture-o:before{content:"\f03e"}.fa-pencil:before{content:"\f040"}.fa-map-marker:before{content:"\f041"}.fa-adjust:before{content:"\f042"}.fa-tint:before{content:"\f043"}.fa-edit:before,.fa-pencil-square-o:before{content:"\f044"}.fa-share-square-o:before{content:"\f045"}.fa-check-square-o:before{content:"\f046"}.fa-arrows:before{content:"\f047"}.fa-step-backward:before{content:"\f048"}.fa-fast-backward:before{content:"\f049"}.fa-backward:before{content:"\f04a"}.fa-play:before{content:"\f04b"}.fa-pause:before{content:"\f04c"}.fa-stop:before{content:"\f04d"}.fa-forward:before{content:"\f04e"}.fa-fast-forward:before{content:"\f050"}.fa-step-forward:before{content:"\f051"}.fa-eject:before{content:"\f052"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-plus-circle:before{content:"\f055"}.fa-minus-circle:before{content:"\f056"}.fa-times-circle:before{content:"\f057"}.fa-check-circle:before{content:"\f058"}.fa-question-circle:before{content:"\f059"}.fa-info-circle:before{content:"\f05a"}.fa-crosshairs:before{content:"\f05b"}.fa-times-circle-o:before{content:"\f05c"}.fa-check-circle-o:before{content:"\f05d"}.fa-ban:before{content:"\f05e"}.fa-arrow-left:before{content:"\f060"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-up:before{content:"\f062"}.fa-arrow-down:before{content:"\f063"}.fa-mail-forward:before,.fa-share:before{content:"\f064"}.fa-expand:before{content:"\f065"}.fa-compress:before{content:"\f066"}.fa-plus:before{content:"\f067"}.fa-minus:before{content:"\f068"}.fa-asterisk:before{content:"\f069"}.fa-exclamation-circle:before{content:"\f06a"}.fa-gift:before{content:"\f06b"}.fa-leaf:before{content:"\f06c"}.fa-fire:before{content:"\f06d"}.fa-eye:before{content:"\f06e"}.fa-eye-slash:before{content:"\f070"}.fa-warning:before,.fa-exclamation-triangle:before{content:"\f071"}.fa-plane:before{content:"\f072"}.fa-calendar:before{content:"\f073"}.fa-random:before{content:"\f074"}.fa-comment:before{content:"\f075"}.fa-magnet:before{content:"\f076"}.fa-chevron-up:before{content:"\f077"}.fa-chevron-down:before{content:"\f078"}.fa-retweet:before{content:"\f079"}.fa-shopping-cart:before{content:"\f07a"}.fa-folder:before{content:"\f07b"}.fa-folder-open:before{content:"\f07c"}.fa-arrows-v:before{content:"\f07d"}.fa-arrows-h:before{content:"\f07e"}.fa-bar-chart-o:before,.fa-bar-chart:before{content:"\f080"}.fa-twitter-square:before{content:"\f081"}.fa-facebook-square:before{content:"\f082"}.fa-camera-retro:before{content:"\f083"}.fa-key:before{content:"\f084"}.fa-gears:before,.fa-cogs:before{content:"\f085"}.fa-comments:before{content:"\f086"}.fa-thumbs-o-up:before{content:"\f087"}.fa-thumbs-o-down:before{content:"\f088"}.fa-star-half:before{content:"\f089"}.fa-heart-o:before{content:"\f08a"}.fa-sign-out:before{content:"\f08b"}.fa-linkedin-square:before{content:"\f08c"}.fa-thumb-tack:before{content:"\f08d"}.fa-external-link:before{content:"\f08e"}.fa-sign-in:before{content:"\f090"}.fa-trophy:before{content:"\f091"}.fa-github-square:before{content:"\f092"}.fa-upload:before{content:"\f093"}.fa-lemon-o:before{content:"\f094"}.fa-phone:before{content:"\f095"}.fa-square-o:before{content:"\f096"}.fa-bookmark-o:before{content:"\f097"}.fa-phone-square:before{content:"\f098"}.fa-twitter:before{content:"\f099"}.fa-facebook-f:before,.fa-facebook:before{content:"\f09a"}.fa-github:before{content:"\f09b"}.fa-unlock:before{content:"\f09c"}.fa-credit-card:before{content:"\f09d"}.fa-feed:before,.fa-rss:before{content:"\f09e"}.fa-hdd-o:before{content:"\f0a0"}.fa-bullhorn:before{content:"\f0a1"}.fa-bell:before{content:"\f0f3"}.fa-certificate:before{content:"\f0a3"}.fa-hand-o-right:before{content:"\f0a4"}.fa-hand-o-left:before{content:"\f0a5"}.fa-hand-o-up:before{content:"\f0a6"}.fa-hand-o-down:before{content:"\f0a7"}.fa-arrow-circle-left:before{content:"\f0a8"}.fa-arrow-circle-right:before{content:"\f0a9"}.fa-arrow-circle-up:before{content:"\f0aa"}.fa-arrow-circle-down:before{content:"\f0ab"}.fa-globe:before{content:"\f0ac"}.fa-wrench:before{content:"\f0ad"}.fa-tasks:before{content:"\f0ae"}.fa-filter:before{content:"\f0b0"}.fa-briefcase:before{content:"\f0b1"}.fa-arrows-alt:before{content:"\f0b2"}.fa-group:before,.fa-users:before{content:"\f0c0"}.fa-chain:before,.fa-link:before{content:"\f0c1"}.fa-cloud:before{content:"\f0c2"}.fa-flask:before{content:"\f0c3"}.fa-cut:before,.fa-scissors:before{content:"\f0c4"}.fa-copy:before,.fa-files-o:before{content:"\f0c5"}.fa-paperclip:before{content:"\f0c6"}.fa-save:before,.fa-floppy-o:before{content:"\f0c7"}.fa-square:before{content:"\f0c8"}.fa-navicon:before,.fa-reorder:before,.fa-bars:before{content:"\f0c9"}.fa-list-ul:before{content:"\f0ca"}.fa-list-ol:before{content:"\f0cb"}.fa-strikethrough:before{content:"\f0cc"}.fa-underline:before{content:"\f0cd"}.fa-table:before{content:"\f0ce"}.fa-magic:before{content:"\f0d0"}.fa-truck:before{content:"\f0d1"}.fa-pinterest:before{content:"\f0d2"}.fa-pinterest-square:before{content:"\f0d3"}.fa-google-plus-square:before{content:"\f0d4"}.fa-google-plus:before{content:"\f0d5"}.fa-money:before{content:"\f0d6"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-up:before{content:"\f0d8"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-columns:before{content:"\f0db"}.fa-unsorted:before,.fa-sort:before{content:"\f0dc"}.fa-sort-down:before,.fa-sort-desc:before{content:"\f0dd"}.fa-sort-up:before,.fa-sort-asc:before{content:"\f0de"}.fa-envelope:before{content:"\f0e0"}.fa-linkedin:before{content:"\f0e1"}.fa-rotate-left:before,.fa-undo:before{content:"\f0e2"}.fa-legal:before,.fa-gavel:before{content:"\f0e3"}.fa-dashboard:before,.fa-tachometer:before{content:"\f0e4"}.fa-comment-o:before{content:"\f0e5"}.fa-comments-o:before{content:"\f0e6"}.fa-flash:before,.fa-bolt:before{content:"\f0e7"}.fa-sitemap:before{content:"\f0e8"}.fa-umbrella:before{content:"\f0e9"}.fa-paste:before,.fa-clipboard:before{content:"\f0ea"}.fa-lightbulb-o:before{content:"\f0eb"}.fa-exchange:before{content:"\f0ec"}.fa-cloud-download:before{content:"\f0ed"}.fa-cloud-upload:before{content:"\f0ee"}.fa-user-md:before{content:"\f0f0"}.fa-stethoscope:before{content:"\f0f1"}.fa-suitcase:before{content:"\f0f2"}.fa-bell-o:before{content:"\f0a2"}.fa-coffee:before{content:"\f0f4"}.fa-cutlery:before{content:"\f0f5"}.fa-file-text-o:before{content:"\f0f6"}.fa-building-o:before{content:"\f0f7"}.fa-hospital-o:before{content:"\f0f8"}.fa-ambulance:before{content:"\f0f9"}.fa-medkit:before{content:"\f0fa"}.fa-fighter-jet:before{content:"\f0fb"}.fa-beer:before{content:"\f0fc"}.fa-h-square:before{content:"\f0fd"}.fa-plus-square:before{content:"\f0fe"}.fa-angle-double-left:before{content:"\f100"}.fa-angle-double-right:before{content:"\f101"}.fa-angle-double-up:before{content:"\f102"}.fa-angle-double-down:before{content:"\f103"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"}.fa-angle-up:before{content:"\f106"}.fa-angle-down:before{content:"\f107"}.fa-desktop:before{content:"\f108"}.fa-laptop:before{content:"\f109"}.fa-tablet:before{content:"\f10a"}.fa-mobile-phone:before,.fa-mobile:before{content:"\f10b"}.fa-circle-o:before{content:"\f10c"}.fa-quote-left:before{content:"\f10d"}.fa-quote-right:before{content:"\f10e"}.fa-spinner:before{content:"\f110"}.fa-circle:before{content:"\f111"}.fa-mail-reply:before,.fa-reply:before{content:"\f112"}.fa-github-alt:before{content:"\f113"}.fa-folder-o:before{content:"\f114"}.fa-folder-open-o:before{content:"\f115"}.fa-smile-o:before{content:"\f118"}.fa-frown-o:before{content:"\f119"}.fa-meh-o:before{content:"\f11a"}.fa-gamepad:before{content:"\f11b"}.fa-keyboard-o:before{content:"\f11c"}.fa-flag-o:before{content:"\f11d"}.fa-flag-checkered:before{content:"\f11e"}.fa-terminal:before{content:"\f120"}.fa-code:before{content:"\f121"}.fa-mail-reply-all:before,.fa-reply-all:before{content:"\f122"}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:"\f123"}.fa-location-arrow:before{content:"\f124"}.fa-crop:before{content:"\f125"}.fa-code-fork:before{content:"\f126"}.fa-unlink:before,.fa-chain-broken:before{content:"\f127"}.fa-question:before{content:"\f128"}.fa-info:before{content:"\f129"}.fa-exclamation:before{content:"\f12a"}.fa-superscript:before{content:"\f12b"}.fa-subscript:before{content:"\f12c"}.fa-eraser:before{content:"\f12d"}.fa-puzzle-piece:before{content:"\f12e"}.fa-microphone:before{content:"\f130"}.fa-microphone-slash:before{content:"\f131"}.fa-shield:before{content:"\f132"}.fa-calendar-o:before{content:"\f133"}.fa-fire-extinguisher:before{content:"\f134"}.fa-rocket:before{content:"\f135"}.fa-maxcdn:before{content:"\f136"}.fa-chevron-circle-left:before{content:"\f137"}.fa-chevron-circle-right:before{content:"\f138"}.fa-chevron-circle-up:before{content:"\f139"}.fa-chevron-circle-down:before{content:"\f13a"}.fa-html5:before{content:"\f13b"}.fa-css3:before{content:"\f13c"}.fa-anchor:before{content:"\f13d"}.fa-unlock-alt:before{content:"\f13e"}.fa-bullseye:before{content:"\f140"}.fa-ellipsis-h:before{content:"\f141"}.fa-ellipsis-v:before{content:"\f142"}.fa-rss-square:before{content:"\f143"}.fa-play-circle:before{content:"\f144"}.fa-ticket:before{content:"\f145"}.fa-minus-square:before{content:"\f146"}.fa-minus-square-o:before{content:"\f147"}.fa-level-up:before{content:"\f148"}.fa-level-down:before{content:"\f149"}.fa-check-square:before{content:"\f14a"}.fa-pencil-square:before{content:"\f14b"}.fa-external-link-square:before{content:"\f14c"}.fa-share-square:before{content:"\f14d"}.fa-compass:before{content:"\f14e"}.fa-toggle-down:before,.fa-caret-square-o-down:before{content:"\f150"}.fa-toggle-up:before,.fa-caret-square-o-up:before{content:"\f151"}.fa-toggle-right:before,.fa-caret-square-o-right:before{content:"\f152"}.fa-euro:before,.fa-eur:before{content:"\f153"}.fa-gbp:before{content:"\f154"}.fa-dollar:before,.fa-usd:before{content:"\f155"}.fa-rupee:before,.fa-inr:before{content:"\f156"}.fa-cny:before,.fa-rmb:before,.fa-yen:before,.fa-jpy:before{content:"\f157"}.fa-ruble:before,.fa-rouble:before,.fa-rub:before{content:"\f158"}.fa-won:before,.fa-krw:before{content:"\f159"}.fa-bitcoin:before,.fa-btc:before{content:"\f15a"}.fa-file:before{content:"\f15b"}.fa-file-text:before{content:"\f15c"}.fa-sort-alpha-asc:before{content:"\f15d"}.fa-sort-alpha-desc:before{content:"\f15e"}.fa-sort-amount-asc:before{content:"\f160"}.fa-sort-amount-desc:before{content:"\f161"}.fa-sort-numeric-asc:before{content:"\f162"}.fa-sort-numeric-desc:before{content:"\f163"}.fa-thumbs-up:before{content:"\f164"}.fa-thumbs-down:before{content:"\f165"}.fa-youtube-square:before{content:"\f166"}.fa-youtube:before{content:"\f167"}.fa-xing:before{content:"\f168"}.fa-xing-square:before{content:"\f169"}.fa-youtube-play:before{content:"\f16a"}.fa-dropbox:before{content:"\f16b"}.fa-stack-overflow:before{content:"\f16c"}.fa-instagram:before{content:"\f16d"}.fa-flickr:before{content:"\f16e"}.fa-adn:before{content:"\f170"}.fa-bitbucket:before{content:"\f171"}.fa-bitbucket-square:before{content:"\f172"}.fa-tumblr:before{content:"\f173"}.fa-tumblr-square:before{content:"\f174"}.fa-long-arrow-down:before{content:"\f175"}.fa-long-arrow-up:before{content:"\f176"}.fa-long-arrow-left:before{content:"\f177"}.fa-long-arrow-right:before{content:"\f178"}.fa-apple:before{content:"\f179"}.fa-windows:before{content:"\f17a"}.fa-android:before{content:"\f17b"}.fa-linux:before{content:"\f17c"}.fa-dribbble:before{content:"\f17d"}.fa-skype:before{content:"\f17e"}.fa-foursquare:before{content:"\f180"}.fa-trello:before{content:"\f181"}.fa-female:before{content:"\f182"}.fa-male:before{content:"\f183"}.fa-gittip:before,.fa-gratipay:before{content:"\f184"}.fa-sun-o:before{content:"\f185"}.fa-moon-o:before{content:"\f186"}.fa-archive:before{content:"\f187"}.fa-bug:before{content:"\f188"}.fa-vk:before{content:"\f189"}.fa-weibo:before{content:"\f18a"}.fa-renren:before{content:"\f18b"}.fa-pagelines:before{content:"\f18c"}.fa-stack-exchange:before{content:"\f18d"}.fa-arrow-circle-o-right:before{content:"\f18e"}.fa-arrow-circle-o-left:before{content:"\f190"}.fa-toggle-left:before,.fa-caret-square-o-left:before{content:"\f191"}.fa-dot-circle-o:before{content:"\f192"}.fa-wheelchair:before{content:"\f193"}.fa-vimeo-square:before{content:"\f194"}.fa-turkish-lira:before,.fa-try:before{content:"\f195"}.fa-plus-square-o:before{content:"\f196"}.fa-space-shuttle:before{content:"\f197"}.fa-slack:before{content:"\f198"}.fa-envelope-square:before{content:"\f199"}.fa-wordpress:before{content:"\f19a"}.fa-openid:before{content:"\f19b"}.fa-institution:before,.fa-bank:before,.fa-university:before{content:"\f19c"}.fa-mortar-board:before,.fa-graduation-cap:before{content:"\f19d"}.fa-yahoo:before{content:"\f19e"}.fa-google:before{content:"\f1a0"}.fa-reddit:before{content:"\f1a1"}.fa-reddit-square:before{content:"\f1a2"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-stumbleupon:before{content:"\f1a4"}.fa-delicious:before{content:"\f1a5"}.fa-digg:before{content:"\f1a6"}.fa-pied-piper-pp:before{content:"\f1a7"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-drupal:before{content:"\f1a9"}.fa-joomla:before{content:"\f1aa"}.fa-language:before{content:"\f1ab"}.fa-fax:before{content:"\f1ac"}.fa-building:before{content:"\f1ad"}.fa-child:before{content:"\f1ae"}.fa-paw:before{content:"\f1b0"}.fa-spoon:before{content:"\f1b1"}.fa-cube:before{content:"\f1b2"}.fa-cubes:before{content:"\f1b3"}.fa-behance:before{content:"\f1b4"}.fa-behance-square:before{content:"\f1b5"}.fa-steam:before{content:"\f1b6"}.fa-steam-square:before{content:"\f1b7"}.fa-recycle:before{content:"\f1b8"}.fa-automobile:before,.fa-car:before{content:"\f1b9"}.fa-cab:before,.fa-taxi:before{content:"\f1ba"}.fa-tree:before{content:"\f1bb"}.fa-spotify:before{content:"\f1bc"}.fa-deviantart:before{content:"\f1bd"}.fa-soundcloud:before{content:"\f1be"}.fa-database:before{content:"\f1c0"}.fa-file-pdf-o:before{content:"\f1c1"}.fa-file-word-o:before{content:"\f1c2"}.fa-file-excel-o:before{content:"\f1c3"}.fa-file-powerpoint-o:before{content:"\f1c4"}.fa-file-photo-o:before,.fa-file-picture-o:before,.fa-file-image-o:before{content:"\f1c5"}.fa-file-zip-o:before,.fa-file-archive-o:before{content:"\f1c6"}.fa-file-sound-o:before,.fa-file-audio-o:before{content:"\f1c7"}.fa-file-movie-o:before,.fa-file-video-o:before{content:"\f1c8"}.fa-file-code-o:before{content:"\f1c9"}.fa-vine:before{content:"\f1ca"}.fa-codepen:before{content:"\f1cb"}.fa-jsfiddle:before{content:"\f1cc"}.fa-life-bouy:before,.fa-life-buoy:before,.fa-life-saver:before,.fa-support:before,.fa-life-ring:before{content:"\f1cd"}.fa-circle-o-notch:before{content:"\f1ce"}.fa-ra:before,.fa-resistance:before,.fa-rebel:before{content:"\f1d0"}.fa-ge:before,.fa-empire:before{content:"\f1d1"}.fa-git-square:before{content:"\f1d2"}.fa-git:before{content:"\f1d3"}.fa-y-combinator-square:before,.fa-yc-square:before,.fa-hacker-news:before{content:"\f1d4"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-qq:before{content:"\f1d6"}.fa-wechat:before,.fa-weixin:before{content:"\f1d7"}.fa-send:before,.fa-paper-plane:before{content:"\f1d8"}.fa-send-o:before,.fa-paper-plane-o:before{content:"\f1d9"}.fa-history:before{content:"\f1da"}.fa-circle-thin:before{content:"\f1db"}.fa-header:before{content:"\f1dc"}.fa-paragraph:before{content:"\f1dd"}.fa-sliders:before{content:"\f1de"}.fa-share-alt:before{content:"\f1e0"}.fa-share-alt-square:before{content:"\f1e1"}.fa-bomb:before{content:"\f1e2"}.fa-soccer-ball-o:before,.fa-futbol-o:before{content:"\f1e3"}.fa-tty:before{content:"\f1e4"}.fa-binoculars:before{content:"\f1e5"}.fa-plug:before{content:"\f1e6"}.fa-slideshare:before{content:"\f1e7"}.fa-twitch:before{content:"\f1e8"}.fa-yelp:before{content:"\f1e9"}.fa-newspaper-o:before{content:"\f1ea"}.fa-wifi:before{content:"\f1eb"}.fa-calculator:before{content:"\f1ec"}.fa-paypal:before{content:"\f1ed"}.fa-google-wallet:before{content:"\f1ee"}.fa-cc-visa:before{content:"\f1f0"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-cc-discover:before{content:"\f1f2"}.fa-cc-amex:before{content:"\f1f3"}.fa-cc-paypal:before{content:"\f1f4"}.fa-cc-stripe:before{content:"\f1f5"}.fa-bell-slash:before{content:"\f1f6"}.fa-bell-slash-o:before{content:"\f1f7"}.fa-trash:before{content:"\f1f8"}.fa-copyright:before{content:"\f1f9"}.fa-at:before{content:"\f1fa"}.fa-eyedropper:before{content:"\f1fb"}.fa-paint-brush:before{content:"\f1fc"}.fa-birthday-cake:before{content:"\f1fd"}.fa-area-chart:before{content:"\f1fe"}.fa-pie-chart:before{content:"\f200"}.fa-line-chart:before{content:"\f201"}.fa-lastfm:before{content:"\f202"}.fa-lastfm-square:before{content:"\f203"}.fa-toggle-off:before{content:"\f204"}.fa-toggle-on:before{content:"\f205"}.fa-bicycle:before{content:"\f206"}.fa-bus:before{content:"\f207"}.fa-ioxhost:before{content:"\f208"}.fa-angellist:before{content:"\f209"}.fa-cc:before{content:"\f20a"}.fa-shekel:before,.fa-sheqel:before,.fa-ils:before{content:"\f20b"}.fa-meanpath:before{content:"\f20c"}.fa-buysellads:before{content:"\f20d"}.fa-connectdevelop:before{content:"\f20e"}.fa-dashcube:before{content:"\f210"}.fa-forumbee:before{content:"\f211"}.fa-leanpub:before{content:"\f212"}.fa-sellsy:before{content:"\f213"}.fa-shirtsinbulk:before{content:"\f214"}.fa-simplybuilt:before{content:"\f215"}.fa-skyatlas:before{content:"\f216"}.fa-cart-plus:before{content:"\f217"}.fa-cart-arrow-down:before{content:"\f218"}.fa-diamond:before{content:"\f219"}.fa-ship:before{content:"\f21a"}.fa-user-secret:before{content:"\f21b"}.fa-motorcycle:before{content:"\f21c"}.fa-street-view:before{content:"\f21d"}.fa-heartbeat:before{content:"\f21e"}.fa-venus:before{content:"\f221"}.fa-mars:before{content:"\f222"}.fa-mercury:before{content:"\f223"}.fa-intersex:before,.fa-transgender:before{content:"\f224"}.fa-transgender-alt:before{content:"\f225"}.fa-venus-double:before{content:"\f226"}.fa-mars-double:before{content:"\f227"}.fa-venus-mars:before{content:"\f228"}.fa-mars-stroke:before{content:"\f229"}.fa-mars-stroke-v:before{content:"\f22a"}.fa-mars-stroke-h:before{content:"\f22b"}.fa-neuter:before{content:"\f22c"}.fa-genderless:before{content:"\f22d"}.fa-facebook-official:before{content:"\f230"}.fa-pinterest-p:before{content:"\f231"}.fa-whatsapp:before{content:"\f232"}.fa-server:before{content:"\f233"}.fa-user-plus:before{content:"\f234"}.fa-user-times:before{content:"\f235"}.fa-hotel:before,.fa-bed:before{content:"\f236"}.fa-viacoin:before{content:"\f237"}.fa-train:before{content:"\f238"}.fa-subway:before{content:"\f239"}.fa-medium:before{content:"\f23a"}.fa-yc:before,.fa-y-combinator:before{content:"\f23b"}.fa-optin-monster:before{content:"\f23c"}.fa-opencart:before{content:"\f23d"}.fa-expeditedssl:before{content:"\f23e"}.fa-battery-4:before,.fa-battery:before,.fa-battery-full:before{content:"\f240"}.fa-battery-3:before,.fa-battery-three-quarters:before{content:"\f241"}.fa-battery-2:before,.fa-battery-half:before{content:"\f242"}.fa-battery-1:before,.fa-battery-quarter:before{content:"\f243"}.fa-battery-0:before,.fa-battery-empty:before{content:"\f244"}.fa-mouse-pointer:before{content:"\f245"}.fa-i-cursor:before{content:"\f246"}.fa-object-group:before{content:"\f247"}.fa-object-ungroup:before{content:"\f248"}.fa-sticky-note:before{content:"\f249"}.fa-sticky-note-o:before{content:"\f24a"}.fa-cc-jcb:before{content:"\f24b"}.fa-cc-diners-club:before{content:"\f24c"}.fa-clone:before{content:"\f24d"}.fa-balance-scale:before{content:"\f24e"}.fa-hourglass-o:before{content:"\f250"}.fa-hourglass-1:before,.fa-hourglass-start:before{content:"\f251"}.fa-hourglass-2:before,.fa-hourglass-half:before{content:"\f252"}.fa-hourglass-3:before,.fa-hourglass-end:before{content:"\f253"}.fa-hourglass:before{content:"\f254"}.fa-hand-grab-o:before,.fa-hand-rock-o:before{content:"\f255"}.fa-hand-stop-o:before,.fa-hand-paper-o:before{content:"\f256"}.fa-hand-scissors-o:before{content:"\f257"}.fa-hand-lizard-o:before{content:"\f258"}.fa-hand-spock-o:before{content:"\f259"}.fa-hand-pointer-o:before{content:"\f25a"}.fa-hand-peace-o:before{content:"\f25b"}.fa-trademark:before{content:"\f25c"}.fa-registered:before{content:"\f25d"}.fa-creative-commons:before{content:"\f25e"}.fa-gg:before{content:"\f260"}.fa-gg-circle:before{content:"\f261"}.fa-tripadvisor:before{content:"\f262"}.fa-odnoklassniki:before{content:"\f263"}.fa-odnoklassniki-square:before{content:"\f264"}.fa-get-pocket:before{content:"\f265"}.fa-wikipedia-w:before{content:"\f266"}.fa-safari:before{content:"\f267"}.fa-chrome:before{content:"\f268"}.fa-firefox:before{content:"\f269"}.fa-opera:before{content:"\f26a"}.fa-internet-explorer:before{content:"\f26b"}.fa-tv:before,.fa-television:before{content:"\f26c"}.fa-contao:before{content:"\f26d"}.fa-500px:before{content:"\f26e"}.fa-amazon:before{content:"\f270"}.fa-calendar-plus-o:before{content:"\f271"}.fa-calendar-minus-o:before{content:"\f272"}.fa-calendar-times-o:before{content:"\f273"}.fa-calendar-check-o:before{content:"\f274"}.fa-industry:before{content:"\f275"}.fa-map-pin:before{content:"\f276"}.fa-map-signs:before{content:"\f277"}.fa-map-o:before{content:"\f278"}.fa-map:before{content:"\f279"}.fa-commenting:before{content:"\f27a"}.fa-commenting-o:before{content:"\f27b"}.fa-houzz:before{content:"\f27c"}.fa-vimeo:before{content:"\f27d"}.fa-black-tie:before{content:"\f27e"}.fa-fonticons:before{content:"\f280"}.fa-reddit-alien:before{content:"\f281"}.fa-edge:before{content:"\f282"}.fa-credit-card-alt:before{content:"\f283"}.fa-codiepie:before{content:"\f284"}.fa-modx:before{content:"\f285"}.fa-fort-awesome:before{content:"\f286"}.fa-usb:before{content:"\f287"}.fa-product-hunt:before{content:"\f288"}.fa-mixcloud:before{content:"\f289"}.fa-scribd:before{content:"\f28a"}.fa-pause-circle:before{content:"\f28b"}.fa-pause-circle-o:before{content:"\f28c"}.fa-stop-circle:before{content:"\f28d"}.fa-stop-circle-o:before{content:"\f28e"}.fa-shopping-bag:before{content:"\f290"}.fa-shopping-basket:before{content:"\f291"}.fa-hashtag:before{content:"\f292"}.fa-bluetooth:before{content:"\f293"}.fa-bluetooth-b:before{content:"\f294"}.fa-percent:before{content:"\f295"}.fa-gitlab:before{content:"\f296"}.fa-wpbeginner:before{content:"\f297"}.fa-wpforms:before{content:"\f298"}.fa-envira:before{content:"\f299"}.fa-universal-access:before{content:"\f29a"}.fa-wheelchair-alt:before{content:"\f29b"}.fa-question-circle-o:before{content:"\f29c"}.fa-blind:before{content:"\f29d"}.fa-audio-description:before{content:"\f29e"}.fa-volume-control-phone:before{content:"\f2a0"}.fa-braille:before{content:"\f2a1"}.fa-assistive-listening-systems:before{content:"\f2a2"}.fa-asl-interpreting:before,.fa-american-sign-language-interpreting:before{content:"\f2a3"}.fa-deafness:before,.fa-hard-of-hearing:before,.fa-deaf:before{content:"\f2a4"}.fa-glide:before{content:"\f2a5"}.fa-glide-g:before{content:"\f2a6"}.fa-signing:before,.fa-sign-language:before{content:"\f2a7"}.fa-low-vision:before{content:"\f2a8"}.fa-viadeo:before{content:"\f2a9"}.fa-viadeo-square:before{content:"\f2aa"}.fa-snapchat:before{content:"\f2ab"}.fa-snapchat-ghost:before{content:"\f2ac"}.fa-snapchat-square:before{content:"\f2ad"}.fa-pied-piper:before{content:"\f2ae"}.fa-first-order:before{content:"\f2b0"}.fa-yoast:before{content:"\f2b1"}.fa-themeisle:before{content:"\f2b2"}.fa-google-plus-circle:before,.fa-google-plus-official:before{content:"\f2b3"}.fa-fa:before,.fa-font-awesome:before{content:"\f2b4"}.fa-handshake-o:before{content:"\f2b5"}.fa-envelope-open:before{content:"\f2b6"}.fa-envelope-open-o:before{content:"\f2b7"}.fa-linode:before{content:"\f2b8"}.fa-address-book:before{content:"\f2b9"}.fa-address-book-o:before{content:"\f2ba"}.fa-vcard:before,.fa-address-card:before{content:"\f2bb"}.fa-vcard-o:before,.fa-address-card-o:before{content:"\f2bc"}.fa-user-circle:before{content:"\f2bd"}.fa-user-circle-o:before{content:"\f2be"}.fa-user-o:before{content:"\f2c0"}.fa-id-badge:before{content:"\f2c1"}.fa-drivers-license:before,.fa-id-card:before{content:"\f2c2"}.fa-drivers-license-o:before,.fa-id-card-o:before{content:"\f2c3"}.fa-quora:before{content:"\f2c4"}.fa-free-code-camp:before{content:"\f2c5"}.fa-telegram:before{content:"\f2c6"}.fa-thermometer-4:before,.fa-thermometer:before,.fa-thermometer-full:before{content:"\f2c7"}.fa-thermometer-3:before,.fa-thermometer-three-quarters:before{content:"\f2c8"}.fa-thermometer-2:before,.fa-thermometer-half:before{content:"\f2c9"}.fa-thermometer-1:before,.fa-thermometer-quarter:before{content:"\f2ca"}.fa-thermometer-0:before,.fa-thermometer-empty:before{content:"\f2cb"}.fa-shower:before{content:"\f2cc"}.fa-bathtub:before,.fa-s15:before,.fa-bath:before{content:"\f2cd"}.fa-podcast:before{content:"\f2ce"}.fa-window-maximize:before{content:"\f2d0"}.fa-window-minimize:before{content:"\f2d1"}.fa-window-restore:before{content:"\f2d2"}.fa-times-rectangle:before,.fa-window-close:before{content:"\f2d3"}.fa-times-rectangle-o:before,.fa-window-close-o:before{content:"\f2d4"}.fa-bandcamp:before{content:"\f2d5"}.fa-grav:before{content:"\f2d6"}.fa-etsy:before{content:"\f2d7"}.fa-imdb:before{content:"\f2d8"}.fa-ravelry:before{content:"\f2d9"}.fa-eercast:before{content:"\f2da"}.fa-microchip:before{content:"\f2db"}.fa-snowflake-o:before{content:"\f2dc"}.fa-superpowers:before{content:"\f2dd"}.fa-wpexplorer:before{content:"\f2de"}.fa-meetup:before{content:"\f2e0"}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}
+
+/* source-code-pro-regular - latin-ext_latin */
+@font-face {
+  font-family: 'Source Code Pro';
+  font-style: normal;
+  font-weight: 400;
+  src: local(''),
+       url('/assets/fonts/source-code-pro-v22-latin-ext_latin-regular.woff2') format('woff2'), /* Chrome 26+, Opera 23+, Firefox 39+ */
+       url('/assets/fonts/source-code-pro-v22-latin-ext_latin-regular.woff') format('woff'); /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */
+}
diff --git a/assets/css/animate.min.css b/assets/css/animate.min.css
deleted file mode 100644
index b6f6129..0000000
--- a/assets/css/animate.min.css
+++ /dev/null
@@ -1,11 +0,0 @@
-@charset "UTF-8";
-
-/*!
- * animate.css -http://daneden.me/animate
- * Version - 3.5.1
- * Licensed under the MIT license - http://opensource.org/licenses/MIT
- *
- * Copyright (c) 2016 Daniel Eden
- */
-
-.animated{-webkit-animation-duration:1s;animation-duration:1s;-webkit-animation-fill-mode:both;animation-fill-mode:both}.animated.infinite{-webkit-animation-iteration-count:infinite;animation-iteration-count:infinite}.animated.hinge{-webkit-animation-duration:2s;animation-duration:2s}.animated.bounceIn,.animated.bounceOut,.animated.flipOutX,.animated.flipOutY{-webkit-animation-duration:.75s;animation-duration:.75s}@-webkit-keyframes bounce{0%,20%,53%,80%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1);-webkit-transform:translateZ(0);transform:translateZ(0)}40%,43%{-webkit-transform:translate3d(0,-30px,0);transform:translate3d(0,-30px,0)}40%,43%,70%{-webkit-animation-timing-function:cubic-bezier(.755,.05,.855,.06);animation-timing-function:cubic-bezier(.755,.05,.855,.06)}70%{-webkit-transform:translate3d(0,-15px,0);transform:translate3d(0,-15px,0)}90%{-webkit-transform:translate3d(0,-4px,0);transform:translate3d(0,-4px,0)}}@keyframes bounce{0%,20%,53%,80%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1);-webkit-transform:translateZ(0);transform:translateZ(0)}40%,43%{-webkit-transform:translate3d(0,-30px,0);transform:translate3d(0,-30px,0)}40%,43%,70%{-webkit-animation-timing-function:cubic-bezier(.755,.05,.855,.06);animation-timing-function:cubic-bezier(.755,.05,.855,.06)}70%{-webkit-transform:translate3d(0,-15px,0);transform:translate3d(0,-15px,0)}90%{-webkit-transform:translate3d(0,-4px,0);transform:translate3d(0,-4px,0)}}.bounce{-webkit-animation-name:bounce;animation-name:bounce;-webkit-transform-origin:center bottom;transform-origin:center bottom}@-webkit-keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}@keyframes flash{0%,50%,to{opacity:1}25%,75%{opacity:0}}.flash{-webkit-animation-name:flash;animation-name:flash}@-webkit-keyframes pulse{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}50%{-webkit-transform:scale3d(1.05,1.05,1.05);transform:scale3d(1.05,1.05,1.05)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes pulse{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}50%{-webkit-transform:scale3d(1.05,1.05,1.05);transform:scale3d(1.05,1.05,1.05)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}.pulse{-webkit-animation-name:pulse;animation-name:pulse}@-webkit-keyframes rubberBand{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}30%{-webkit-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}40%{-webkit-transform:scale3d(.75,1.25,1);transform:scale3d(.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,.85,1);transform:scale3d(1.15,.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes rubberBand{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}30%{-webkit-transform:scale3d(1.25,.75,1);transform:scale3d(1.25,.75,1)}40%{-webkit-transform:scale3d(.75,1.25,1);transform:scale3d(.75,1.25,1)}50%{-webkit-transform:scale3d(1.15,.85,1);transform:scale3d(1.15,.85,1)}65%{-webkit-transform:scale3d(.95,1.05,1);transform:scale3d(.95,1.05,1)}75%{-webkit-transform:scale3d(1.05,.95,1);transform:scale3d(1.05,.95,1)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}.rubberBand{-webkit-animation-name:rubberBand;animation-name:rubberBand}@-webkit-keyframes shake{0%,to{-webkit-transform:translateZ(0);transform:translateZ(0)}10%,30%,50%,70%,90%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}20%,40%,60%,80%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}}@keyframes shake{0%,to{-webkit-transform:translateZ(0);transform:translateZ(0)}10%,30%,50%,70%,90%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}20%,40%,60%,80%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}}.shake{-webkit-animation-name:shake;animation-name:shake}@-webkit-keyframes headShake{0%{-webkit-transform:translateX(0);transform:translateX(0)}6.5%{-webkit-transform:translateX(-6px) rotateY(-9deg);transform:translateX(-6px) rotateY(-9deg)}18.5%{-webkit-transform:translateX(5px) rotateY(7deg);transform:translateX(5px) rotateY(7deg)}31.5%{-webkit-transform:translateX(-3px) rotateY(-5deg);transform:translateX(-3px) rotateY(-5deg)}43.5%{-webkit-transform:translateX(2px) rotateY(3deg);transform:translateX(2px) rotateY(3deg)}50%{-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes headShake{0%{-webkit-transform:translateX(0);transform:translateX(0)}6.5%{-webkit-transform:translateX(-6px) rotateY(-9deg);transform:translateX(-6px) rotateY(-9deg)}18.5%{-webkit-transform:translateX(5px) rotateY(7deg);transform:translateX(5px) rotateY(7deg)}31.5%{-webkit-transform:translateX(-3px) rotateY(-5deg);transform:translateX(-3px) rotateY(-5deg)}43.5%{-webkit-transform:translateX(2px) rotateY(3deg);transform:translateX(2px) rotateY(3deg)}50%{-webkit-transform:translateX(0);transform:translateX(0)}}.headShake{-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;-webkit-animation-name:headShake;animation-name:headShake}@-webkit-keyframes swing{20%{-webkit-transform:rotate(15deg);transform:rotate(15deg)}40%{-webkit-transform:rotate(-10deg);transform:rotate(-10deg)}60%{-webkit-transform:rotate(5deg);transform:rotate(5deg)}80%{-webkit-transform:rotate(-5deg);transform:rotate(-5deg)}to{-webkit-transform:rotate(0deg);transform:rotate(0deg)}}@keyframes swing{20%{-webkit-transform:rotate(15deg);transform:rotate(15deg)}40%{-webkit-transform:rotate(-10deg);transform:rotate(-10deg)}60%{-webkit-transform:rotate(5deg);transform:rotate(5deg)}80%{-webkit-transform:rotate(-5deg);transform:rotate(-5deg)}to{-webkit-transform:rotate(0deg);transform:rotate(0deg)}}.swing{-webkit-transform-origin:top center;transform-origin:top center;-webkit-animation-name:swing;animation-name:swing}@-webkit-keyframes tada{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}10%,20%{-webkit-transform:scale3d(.9,.9,.9) rotate(-3deg);transform:scale3d(.9,.9,.9) rotate(-3deg)}30%,50%,70%,90%{-webkit-transform:scale3d(1.1,1.1,1.1) rotate(3deg);transform:scale3d(1.1,1.1,1.1) rotate(3deg)}40%,60%,80%{-webkit-transform:scale3d(1.1,1.1,1.1) rotate(-3deg);transform:scale3d(1.1,1.1,1.1) rotate(-3deg)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes tada{0%{-webkit-transform:scaleX(1);transform:scaleX(1)}10%,20%{-webkit-transform:scale3d(.9,.9,.9) rotate(-3deg);transform:scale3d(.9,.9,.9) rotate(-3deg)}30%,50%,70%,90%{-webkit-transform:scale3d(1.1,1.1,1.1) rotate(3deg);transform:scale3d(1.1,1.1,1.1) rotate(3deg)}40%,60%,80%{-webkit-transform:scale3d(1.1,1.1,1.1) rotate(-3deg);transform:scale3d(1.1,1.1,1.1) rotate(-3deg)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}.tada{-webkit-animation-name:tada;animation-name:tada}@-webkit-keyframes wobble{0%{-webkit-transform:none;transform:none}15%{-webkit-transform:translate3d(-25%,0,0) rotate(-5deg);transform:translate3d(-25%,0,0) rotate(-5deg)}30%{-webkit-transform:translate3d(20%,0,0) rotate(3deg);transform:translate3d(20%,0,0) rotate(3deg)}45%{-webkit-transform:translate3d(-15%,0,0) rotate(-3deg);transform:translate3d(-15%,0,0) rotate(-3deg)}60%{-webkit-transform:translate3d(10%,0,0) rotate(2deg);transform:translate3d(10%,0,0) rotate(2deg)}75%{-webkit-transform:translate3d(-5%,0,0) rotate(-1deg);transform:translate3d(-5%,0,0) rotate(-1deg)}to{-webkit-transform:none;transform:none}}@keyframes wobble{0%{-webkit-transform:none;transform:none}15%{-webkit-transform:translate3d(-25%,0,0) rotate(-5deg);transform:translate3d(-25%,0,0) rotate(-5deg)}30%{-webkit-transform:translate3d(20%,0,0) rotate(3deg);transform:translate3d(20%,0,0) rotate(3deg)}45%{-webkit-transform:translate3d(-15%,0,0) rotate(-3deg);transform:translate3d(-15%,0,0) rotate(-3deg)}60%{-webkit-transform:translate3d(10%,0,0) rotate(2deg);transform:translate3d(10%,0,0) rotate(2deg)}75%{-webkit-transform:translate3d(-5%,0,0) rotate(-1deg);transform:translate3d(-5%,0,0) rotate(-1deg)}to{-webkit-transform:none;transform:none}}.wobble{-webkit-animation-name:wobble;animation-name:wobble}@-webkit-keyframes jello{0%,11.1%,to{-webkit-transform:none;transform:none}22.2%{-webkit-transform:skewX(-12.5deg) skewY(-12.5deg);transform:skewX(-12.5deg) skewY(-12.5deg)}33.3%{-webkit-transform:skewX(6.25deg) skewY(6.25deg);transform:skewX(6.25deg) skewY(6.25deg)}44.4%{-webkit-transform:skewX(-3.125deg) skewY(-3.125deg);transform:skewX(-3.125deg) skewY(-3.125deg)}55.5%{-webkit-transform:skewX(1.5625deg) skewY(1.5625deg);transform:skewX(1.5625deg) skewY(1.5625deg)}66.6%{-webkit-transform:skewX(-.78125deg) skewY(-.78125deg);transform:skewX(-.78125deg) skewY(-.78125deg)}77.7%{-webkit-transform:skewX(.390625deg) skewY(.390625deg);transform:skewX(.390625deg) skewY(.390625deg)}88.8%{-webkit-transform:skewX(-.1953125deg) skewY(-.1953125deg);transform:skewX(-.1953125deg) skewY(-.1953125deg)}}@keyframes jello{0%,11.1%,to{-webkit-transform:none;transform:none}22.2%{-webkit-transform:skewX(-12.5deg) skewY(-12.5deg);transform:skewX(-12.5deg) skewY(-12.5deg)}33.3%{-webkit-transform:skewX(6.25deg) skewY(6.25deg);transform:skewX(6.25deg) skewY(6.25deg)}44.4%{-webkit-transform:skewX(-3.125deg) skewY(-3.125deg);transform:skewX(-3.125deg) skewY(-3.125deg)}55.5%{-webkit-transform:skewX(1.5625deg) skewY(1.5625deg);transform:skewX(1.5625deg) skewY(1.5625deg)}66.6%{-webkit-transform:skewX(-.78125deg) skewY(-.78125deg);transform:skewX(-.78125deg) skewY(-.78125deg)}77.7%{-webkit-transform:skewX(.390625deg) skewY(.390625deg);transform:skewX(.390625deg) skewY(.390625deg)}88.8%{-webkit-transform:skewX(-.1953125deg) skewY(-.1953125deg);transform:skewX(-.1953125deg) skewY(-.1953125deg)}}.jello{-webkit-animation-name:jello;animation-name:jello;-webkit-transform-origin:center;transform-origin:center}@-webkit-keyframes bounceIn{0%,20%,40%,60%,80%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes bounceIn{0%,20%,40%,60%,80%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}20%{-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}40%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}60%{opacity:1;-webkit-transform:scale3d(1.03,1.03,1.03);transform:scale3d(1.03,1.03,1.03)}80%{-webkit-transform:scale3d(.97,.97,.97);transform:scale3d(.97,.97,.97)}to{opacity:1;-webkit-transform:scaleX(1);transform:scaleX(1)}}.bounceIn{-webkit-animation-name:bounceIn;animation-name:bounceIn}@-webkit-keyframes bounceInDown{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(0,-3000px,0);transform:translate3d(0,-3000px,0)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0);transform:translate3d(0,25px,0)}75%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}90%{-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}to{-webkit-transform:none;transform:none}}@keyframes bounceInDown{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(0,-3000px,0);transform:translate3d(0,-3000px,0)}60%{opacity:1;-webkit-transform:translate3d(0,25px,0);transform:translate3d(0,25px,0)}75%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}90%{-webkit-transform:translate3d(0,5px,0);transform:translate3d(0,5px,0)}to{-webkit-transform:none;transform:none}}.bounceInDown{-webkit-animation-name:bounceInDown;animation-name:bounceInDown}@-webkit-keyframes bounceInLeft{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(-3000px,0,0);transform:translate3d(-3000px,0,0)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0);transform:translate3d(25px,0,0)}75%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}90%{-webkit-transform:translate3d(5px,0,0);transform:translate3d(5px,0,0)}to{-webkit-transform:none;transform:none}}@keyframes bounceInLeft{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(-3000px,0,0);transform:translate3d(-3000px,0,0)}60%{opacity:1;-webkit-transform:translate3d(25px,0,0);transform:translate3d(25px,0,0)}75%{-webkit-transform:translate3d(-10px,0,0);transform:translate3d(-10px,0,0)}90%{-webkit-transform:translate3d(5px,0,0);transform:translate3d(5px,0,0)}to{-webkit-transform:none;transform:none}}.bounceInLeft{-webkit-animation-name:bounceInLeft;animation-name:bounceInLeft}@-webkit-keyframes bounceInRight{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(3000px,0,0);transform:translate3d(3000px,0,0)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0);transform:translate3d(-25px,0,0)}75%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}90%{-webkit-transform:translate3d(-5px,0,0);transform:translate3d(-5px,0,0)}to{-webkit-transform:none;transform:none}}@keyframes bounceInRight{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(3000px,0,0);transform:translate3d(3000px,0,0)}60%{opacity:1;-webkit-transform:translate3d(-25px,0,0);transform:translate3d(-25px,0,0)}75%{-webkit-transform:translate3d(10px,0,0);transform:translate3d(10px,0,0)}90%{-webkit-transform:translate3d(-5px,0,0);transform:translate3d(-5px,0,0)}to{-webkit-transform:none;transform:none}}.bounceInRight{-webkit-animation-name:bounceInRight;animation-name:bounceInRight}@-webkit-keyframes bounceInUp{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(0,3000px,0);transform:translate3d(0,3000px,0)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}75%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}90%{-webkit-transform:translate3d(0,-5px,0);transform:translate3d(0,-5px,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes bounceInUp{0%,60%,75%,90%,to{-webkit-animation-timing-function:cubic-bezier(.215,.61,.355,1);animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;-webkit-transform:translate3d(0,3000px,0);transform:translate3d(0,3000px,0)}60%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}75%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}90%{-webkit-transform:translate3d(0,-5px,0);transform:translate3d(0,-5px,0)}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.bounceInUp{-webkit-animation-name:bounceInUp;animation-name:bounceInUp}@-webkit-keyframes bounceOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}to{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}@keyframes bounceOut{20%{-webkit-transform:scale3d(.9,.9,.9);transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;-webkit-transform:scale3d(1.1,1.1,1.1);transform:scale3d(1.1,1.1,1.1)}to{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}}.bounceOut{-webkit-animation-name:bounceOut;animation-name:bounceOut}@-webkit-keyframes bounceOutDown{20%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}@keyframes bounceOutDown{20%{-webkit-transform:translate3d(0,10px,0);transform:translate3d(0,10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,-20px,0);transform:translate3d(0,-20px,0)}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}.bounceOutDown{-webkit-animation-name:bounceOutDown;animation-name:bounceOutDown}@-webkit-keyframes bounceOutLeft{20%{opacity:1;-webkit-transform:translate3d(20px,0,0);transform:translate3d(20px,0,0)}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}@keyframes bounceOutLeft{20%{opacity:1;-webkit-transform:translate3d(20px,0,0);transform:translate3d(20px,0,0)}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}.bounceOutLeft{-webkit-animation-name:bounceOutLeft;animation-name:bounceOutLeft}@-webkit-keyframes bounceOutRight{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0);transform:translate3d(-20px,0,0)}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}@keyframes bounceOutRight{20%{opacity:1;-webkit-transform:translate3d(-20px,0,0);transform:translate3d(-20px,0,0)}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}.bounceOutRight{-webkit-animation-name:bounceOutRight;animation-name:bounceOutRight}@-webkit-keyframes bounceOutUp{20%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0)}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@keyframes bounceOutUp{20%{-webkit-transform:translate3d(0,-10px,0);transform:translate3d(0,-10px,0)}40%,45%{opacity:1;-webkit-transform:translate3d(0,20px,0);transform:translate3d(0,20px,0)}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}.bounceOutUp{-webkit-animation-name:bounceOutUp;animation-name:bounceOutUp}@-webkit-keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.fadeIn{-webkit-animation-name:fadeIn;animation-name:fadeIn}@-webkit-keyframes fadeInDown{0%{opacity:0;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}to{opacity:1;-webkit-transform:none;transform:none}}@keyframes fadeInDown{0%{opacity:0;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}to{opacity:1;-webkit-transform:none;transform:none}}.fadeInDown{-webkit-animation-name:fadeInDown;animation-name:fadeInDown}@-webkit-keyframes fadeInDownBig{0%{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}to{opacity:1;-webkit-transform:none;transform:none}}@keyframes fadeInDownBig{0%{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}to{opacity:1;-webkit-transform:none;transform:none}}.fadeInDownBig{-webkit-animation-name:fadeInDownBig;animation-name:fadeInDownBig}@-webkit-keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}to{opacity:1;-webkit-transform:none;transform:none}}@keyframes fadeInLeft{0%{opacity:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}to{opacity:1;-webkit-transform:none;transform:none}}.fadeInLeft{-webkit-animation-name:fadeInLeft;animation-name:fadeInLeft}@-webkit-keyframes fadeInLeftBig{0%{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}to{opacity:1;-webkit-transform:none;transform:none}}@keyframes fadeInLeftBig{0%{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}to{opacity:1;-webkit-transform:none;transform:none}}.fadeInLeftBig{-webkit-animation-name:fadeInLeftBig;animation-name:fadeInLeftBig}@-webkit-keyframes fadeInRight{0%{opacity:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}to{opacity:1;-webkit-transform:none;transform:none}}@keyframes fadeInRight{0%{opacity:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}to{opacity:1;-webkit-transform:none;transform:none}}.fadeInRight{-webkit-animation-name:fadeInRight;animation-name:fadeInRight}@-webkit-keyframes fadeInRightBig{0%{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}to{opacity:1;-webkit-transform:none;transform:none}}@keyframes fadeInRightBig{0%{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}to{opacity:1;-webkit-transform:none;transform:none}}.fadeInRightBig{-webkit-animation-name:fadeInRightBig;animation-name:fadeInRightBig}@-webkit-keyframes fadeInUp{0%{opacity:0;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}to{opacity:1;-webkit-transform:none;transform:none}}@keyframes fadeInUp{0%{opacity:0;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}to{opacity:1;-webkit-transform:none;transform:none}}.fadeInUp{-webkit-animation-name:fadeInUp;animation-name:fadeInUp}@-webkit-keyframes fadeInUpBig{0%{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}to{opacity:1;-webkit-transform:none;transform:none}}@keyframes fadeInUpBig{0%{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}to{opacity:1;-webkit-transform:none;transform:none}}.fadeInUpBig{-webkit-animation-name:fadeInUpBig;animation-name:fadeInUpBig}@-webkit-keyframes fadeOut{0%{opacity:1}to{opacity:0}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}.fadeOut{-webkit-animation-name:fadeOut;animation-name:fadeOut}@-webkit-keyframes fadeOutDown{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}}@keyframes fadeOutDown{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}}.fadeOutDown{-webkit-animation-name:fadeOutDown;animation-name:fadeOutDown}@-webkit-keyframes fadeOutDownBig{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}@keyframes fadeOutDownBig{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,2000px,0);transform:translate3d(0,2000px,0)}}.fadeOutDownBig{-webkit-animation-name:fadeOutDownBig;animation-name:fadeOutDownBig}@-webkit-keyframes fadeOutLeft{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}}@keyframes fadeOutLeft{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}}.fadeOutLeft{-webkit-animation-name:fadeOutLeft;animation-name:fadeOutLeft}@-webkit-keyframes fadeOutLeftBig{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}@keyframes fadeOutLeftBig{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(-2000px,0,0);transform:translate3d(-2000px,0,0)}}.fadeOutLeftBig{-webkit-animation-name:fadeOutLeftBig;animation-name:fadeOutLeftBig}@-webkit-keyframes fadeOutRight{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}}@keyframes fadeOutRight{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}}.fadeOutRight{-webkit-animation-name:fadeOutRight;animation-name:fadeOutRight}@-webkit-keyframes fadeOutRightBig{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}@keyframes fadeOutRightBig{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(2000px,0,0);transform:translate3d(2000px,0,0)}}.fadeOutRightBig{-webkit-animation-name:fadeOutRightBig;animation-name:fadeOutRightBig}@-webkit-keyframes fadeOutUp{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}}@keyframes fadeOutUp{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}}.fadeOutUp{-webkit-animation-name:fadeOutUp;animation-name:fadeOutUp}@-webkit-keyframes fadeOutUpBig{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}@keyframes fadeOutUpBig{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(0,-2000px,0);transform:translate3d(0,-2000px,0)}}.fadeOutUpBig{-webkit-animation-name:fadeOutUpBig;animation-name:fadeOutUpBig}@-webkit-keyframes flip{0%{-webkit-transform:perspective(400px) rotateY(-1turn);transform:perspective(400px) rotateY(-1turn)}0%,40%{-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}40%{-webkit-transform:perspective(400px) translateZ(150px) rotateY(-190deg);transform:perspective(400px) translateZ(150px) rotateY(-190deg)}50%{-webkit-transform:perspective(400px) translateZ(150px) rotateY(-170deg);transform:perspective(400px) translateZ(150px) rotateY(-170deg)}50%,80%{-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}80%{-webkit-transform:perspective(400px) scale3d(.95,.95,.95);transform:perspective(400px) scale3d(.95,.95,.95)}to{-webkit-transform:perspective(400px);transform:perspective(400px);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}}@keyframes flip{0%{-webkit-transform:perspective(400px) rotateY(-1turn);transform:perspective(400px) rotateY(-1turn)}0%,40%{-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}40%{-webkit-transform:perspective(400px) translateZ(150px) rotateY(-190deg);transform:perspective(400px) translateZ(150px) rotateY(-190deg)}50%{-webkit-transform:perspective(400px) translateZ(150px) rotateY(-170deg);transform:perspective(400px) translateZ(150px) rotateY(-170deg)}50%,80%{-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}80%{-webkit-transform:perspective(400px) scale3d(.95,.95,.95);transform:perspective(400px) scale3d(.95,.95,.95)}to{-webkit-transform:perspective(400px);transform:perspective(400px);-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}}.animated.flip{-webkit-backface-visibility:visible;backface-visibility:visible;-webkit-animation-name:flip;animation-name:flip}@-webkit-keyframes flipInX{0%{-webkit-transform:perspective(400px) rotateX(90deg);transform:perspective(400px) rotateX(90deg);opacity:0}0%,40%{-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}40%{-webkit-transform:perspective(400px) rotateX(-20deg);transform:perspective(400px) rotateX(-20deg)}60%{-webkit-transform:perspective(400px) rotateX(10deg);transform:perspective(400px) rotateX(10deg);opacity:1}80%{-webkit-transform:perspective(400px) rotateX(-5deg);transform:perspective(400px) rotateX(-5deg)}to{-webkit-transform:perspective(400px);transform:perspective(400px)}}@keyframes flipInX{0%{-webkit-transform:perspective(400px) rotateX(90deg);transform:perspective(400px) rotateX(90deg);opacity:0}0%,40%{-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}40%{-webkit-transform:perspective(400px) rotateX(-20deg);transform:perspective(400px) rotateX(-20deg)}60%{-webkit-transform:perspective(400px) rotateX(10deg);transform:perspective(400px) rotateX(10deg);opacity:1}80%{-webkit-transform:perspective(400px) rotateX(-5deg);transform:perspective(400px) rotateX(-5deg)}to{-webkit-transform:perspective(400px);transform:perspective(400px)}}.flipInX{-webkit-backface-visibility:visible!important;backface-visibility:visible!important;-webkit-animation-name:flipInX;animation-name:flipInX}@-webkit-keyframes flipInY{0%{-webkit-transform:perspective(400px) rotateY(90deg);transform:perspective(400px) rotateY(90deg);opacity:0}0%,40%{-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}40%{-webkit-transform:perspective(400px) rotateY(-20deg);transform:perspective(400px) rotateY(-20deg)}60%{-webkit-transform:perspective(400px) rotateY(10deg);transform:perspective(400px) rotateY(10deg);opacity:1}80%{-webkit-transform:perspective(400px) rotateY(-5deg);transform:perspective(400px) rotateY(-5deg)}to{-webkit-transform:perspective(400px);transform:perspective(400px)}}@keyframes flipInY{0%{-webkit-transform:perspective(400px) rotateY(90deg);transform:perspective(400px) rotateY(90deg);opacity:0}0%,40%{-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}40%{-webkit-transform:perspective(400px) rotateY(-20deg);transform:perspective(400px) rotateY(-20deg)}60%{-webkit-transform:perspective(400px) rotateY(10deg);transform:perspective(400px) rotateY(10deg);opacity:1}80%{-webkit-transform:perspective(400px) rotateY(-5deg);transform:perspective(400px) rotateY(-5deg)}to{-webkit-transform:perspective(400px);transform:perspective(400px)}}.flipInY{-webkit-backface-visibility:visible!important;backface-visibility:visible!important;-webkit-animation-name:flipInY;animation-name:flipInY}@-webkit-keyframes flipOutX{0%{-webkit-transform:perspective(400px);transform:perspective(400px)}30%{-webkit-transform:perspective(400px) rotateX(-20deg);transform:perspective(400px) rotateX(-20deg);opacity:1}to{-webkit-transform:perspective(400px) rotateX(90deg);transform:perspective(400px) rotateX(90deg);opacity:0}}@keyframes flipOutX{0%{-webkit-transform:perspective(400px);transform:perspective(400px)}30%{-webkit-transform:perspective(400px) rotateX(-20deg);transform:perspective(400px) rotateX(-20deg);opacity:1}to{-webkit-transform:perspective(400px) rotateX(90deg);transform:perspective(400px) rotateX(90deg);opacity:0}}.flipOutX{-webkit-animation-name:flipOutX;animation-name:flipOutX;-webkit-backface-visibility:visible!important;backface-visibility:visible!important}@-webkit-keyframes flipOutY{0%{-webkit-transform:perspective(400px);transform:perspective(400px)}30%{-webkit-transform:perspective(400px) rotateY(-15deg);transform:perspective(400px) rotateY(-15deg);opacity:1}to{-webkit-transform:perspective(400px) rotateY(90deg);transform:perspective(400px) rotateY(90deg);opacity:0}}@keyframes flipOutY{0%{-webkit-transform:perspective(400px);transform:perspective(400px)}30%{-webkit-transform:perspective(400px) rotateY(-15deg);transform:perspective(400px) rotateY(-15deg);opacity:1}to{-webkit-transform:perspective(400px) rotateY(90deg);transform:perspective(400px) rotateY(90deg);opacity:0}}.flipOutY{-webkit-backface-visibility:visible!important;backface-visibility:visible!important;-webkit-animation-name:flipOutY;animation-name:flipOutY}@-webkit-keyframes lightSpeedIn{0%{-webkit-transform:translate3d(100%,0,0) skewX(-30deg);transform:translate3d(100%,0,0) skewX(-30deg);opacity:0}60%{-webkit-transform:skewX(20deg);transform:skewX(20deg)}60%,80%{opacity:1}80%{-webkit-transform:skewX(-5deg);transform:skewX(-5deg)}to{-webkit-transform:none;transform:none;opacity:1}}@keyframes lightSpeedIn{0%{-webkit-transform:translate3d(100%,0,0) skewX(-30deg);transform:translate3d(100%,0,0) skewX(-30deg);opacity:0}60%{-webkit-transform:skewX(20deg);transform:skewX(20deg)}60%,80%{opacity:1}80%{-webkit-transform:skewX(-5deg);transform:skewX(-5deg)}to{-webkit-transform:none;transform:none;opacity:1}}.lightSpeedIn{-webkit-animation-name:lightSpeedIn;animation-name:lightSpeedIn;-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}@-webkit-keyframes lightSpeedOut{0%{opacity:1}to{-webkit-transform:translate3d(100%,0,0) skewX(30deg);transform:translate3d(100%,0,0) skewX(30deg);opacity:0}}@keyframes lightSpeedOut{0%{opacity:1}to{-webkit-transform:translate3d(100%,0,0) skewX(30deg);transform:translate3d(100%,0,0) skewX(30deg);opacity:0}}.lightSpeedOut{-webkit-animation-name:lightSpeedOut;animation-name:lightSpeedOut;-webkit-animation-timing-function:ease-in;animation-timing-function:ease-in}@-webkit-keyframes rotateIn{0%{transform-origin:center;-webkit-transform:rotate(-200deg);transform:rotate(-200deg);opacity:0}0%,to{-webkit-transform-origin:center}to{transform-origin:center;-webkit-transform:none;transform:none;opacity:1}}@keyframes rotateIn{0%{transform-origin:center;-webkit-transform:rotate(-200deg);transform:rotate(-200deg);opacity:0}0%,to{-webkit-transform-origin:center}to{transform-origin:center;-webkit-transform:none;transform:none;opacity:1}}.rotateIn{-webkit-animation-name:rotateIn;animation-name:rotateIn}@-webkit-keyframes rotateInDownLeft{0%{transform-origin:left bottom;-webkit-transform:rotate(-45deg);transform:rotate(-45deg);opacity:0}0%,to{-webkit-transform-origin:left bottom}to{transform-origin:left bottom;-webkit-transform:none;transform:none;opacity:1}}@keyframes rotateInDownLeft{0%{transform-origin:left bottom;-webkit-transform:rotate(-45deg);transform:rotate(-45deg);opacity:0}0%,to{-webkit-transform-origin:left bottom}to{transform-origin:left bottom;-webkit-transform:none;transform:none;opacity:1}}.rotateInDownLeft{-webkit-animation-name:rotateInDownLeft;animation-name:rotateInDownLeft}@-webkit-keyframes rotateInDownRight{0%{transform-origin:right bottom;-webkit-transform:rotate(45deg);transform:rotate(45deg);opacity:0}0%,to{-webkit-transform-origin:right bottom}to{transform-origin:right bottom;-webkit-transform:none;transform:none;opacity:1}}@keyframes rotateInDownRight{0%{transform-origin:right bottom;-webkit-transform:rotate(45deg);transform:rotate(45deg);opacity:0}0%,to{-webkit-transform-origin:right bottom}to{transform-origin:right bottom;-webkit-transform:none;transform:none;opacity:1}}.rotateInDownRight{-webkit-animation-name:rotateInDownRight;animation-name:rotateInDownRight}@-webkit-keyframes rotateInUpLeft{0%{transform-origin:left bottom;-webkit-transform:rotate(45deg);transform:rotate(45deg);opacity:0}0%,to{-webkit-transform-origin:left bottom}to{transform-origin:left bottom;-webkit-transform:none;transform:none;opacity:1}}@keyframes rotateInUpLeft{0%{transform-origin:left bottom;-webkit-transform:rotate(45deg);transform:rotate(45deg);opacity:0}0%,to{-webkit-transform-origin:left bottom}to{transform-origin:left bottom;-webkit-transform:none;transform:none;opacity:1}}.rotateInUpLeft{-webkit-animation-name:rotateInUpLeft;animation-name:rotateInUpLeft}@-webkit-keyframes rotateInUpRight{0%{transform-origin:right bottom;-webkit-transform:rotate(-90deg);transform:rotate(-90deg);opacity:0}0%,to{-webkit-transform-origin:right bottom}to{transform-origin:right bottom;-webkit-transform:none;transform:none;opacity:1}}@keyframes rotateInUpRight{0%{transform-origin:right bottom;-webkit-transform:rotate(-90deg);transform:rotate(-90deg);opacity:0}0%,to{-webkit-transform-origin:right bottom}to{transform-origin:right bottom;-webkit-transform:none;transform:none;opacity:1}}.rotateInUpRight{-webkit-animation-name:rotateInUpRight;animation-name:rotateInUpRight}@-webkit-keyframes rotateOut{0%{transform-origin:center;opacity:1}0%,to{-webkit-transform-origin:center}to{transform-origin:center;-webkit-transform:rotate(200deg);transform:rotate(200deg);opacity:0}}@keyframes rotateOut{0%{transform-origin:center;opacity:1}0%,to{-webkit-transform-origin:center}to{transform-origin:center;-webkit-transform:rotate(200deg);transform:rotate(200deg);opacity:0}}.rotateOut{-webkit-animation-name:rotateOut;animation-name:rotateOut}@-webkit-keyframes rotateOutDownLeft{0%{transform-origin:left bottom;opacity:1}0%,to{-webkit-transform-origin:left bottom}to{transform-origin:left bottom;-webkit-transform:rotate(45deg);transform:rotate(45deg);opacity:0}}@keyframes rotateOutDownLeft{0%{transform-origin:left bottom;opacity:1}0%,to{-webkit-transform-origin:left bottom}to{transform-origin:left bottom;-webkit-transform:rotate(45deg);transform:rotate(45deg);opacity:0}}.rotateOutDownLeft{-webkit-animation-name:rotateOutDownLeft;animation-name:rotateOutDownLeft}@-webkit-keyframes rotateOutDownRight{0%{transform-origin:right bottom;opacity:1}0%,to{-webkit-transform-origin:right bottom}to{transform-origin:right bottom;-webkit-transform:rotate(-45deg);transform:rotate(-45deg);opacity:0}}@keyframes rotateOutDownRight{0%{transform-origin:right bottom;opacity:1}0%,to{-webkit-transform-origin:right bottom}to{transform-origin:right bottom;-webkit-transform:rotate(-45deg);transform:rotate(-45deg);opacity:0}}.rotateOutDownRight{-webkit-animation-name:rotateOutDownRight;animation-name:rotateOutDownRight}@-webkit-keyframes rotateOutUpLeft{0%{transform-origin:left bottom;opacity:1}0%,to{-webkit-transform-origin:left bottom}to{transform-origin:left bottom;-webkit-transform:rotate(-45deg);transform:rotate(-45deg);opacity:0}}@keyframes rotateOutUpLeft{0%{transform-origin:left bottom;opacity:1}0%,to{-webkit-transform-origin:left bottom}to{transform-origin:left bottom;-webkit-transform:rotate(-45deg);transform:rotate(-45deg);opacity:0}}.rotateOutUpLeft{-webkit-animation-name:rotateOutUpLeft;animation-name:rotateOutUpLeft}@-webkit-keyframes rotateOutUpRight{0%{transform-origin:right bottom;opacity:1}0%,to{-webkit-transform-origin:right bottom}to{transform-origin:right bottom;-webkit-transform:rotate(90deg);transform:rotate(90deg);opacity:0}}@keyframes rotateOutUpRight{0%{transform-origin:right bottom;opacity:1}0%,to{-webkit-transform-origin:right bottom}to{transform-origin:right bottom;-webkit-transform:rotate(90deg);transform:rotate(90deg);opacity:0}}.rotateOutUpRight{-webkit-animation-name:rotateOutUpRight;animation-name:rotateOutUpRight}@-webkit-keyframes hinge{0%{transform-origin:top left}0%,20%,60%{-webkit-transform-origin:top left;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}20%,60%{-webkit-transform:rotate(80deg);transform:rotate(80deg);transform-origin:top left}40%,80%{-webkit-transform:rotate(60deg);transform:rotate(60deg);-webkit-transform-origin:top left;transform-origin:top left;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;opacity:1}to{-webkit-transform:translate3d(0,700px,0);transform:translate3d(0,700px,0);opacity:0}}@keyframes hinge{0%{transform-origin:top left}0%,20%,60%{-webkit-transform-origin:top left;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}20%,60%{-webkit-transform:rotate(80deg);transform:rotate(80deg);transform-origin:top left}40%,80%{-webkit-transform:rotate(60deg);transform:rotate(60deg);-webkit-transform-origin:top left;transform-origin:top left;-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;opacity:1}to{-webkit-transform:translate3d(0,700px,0);transform:translate3d(0,700px,0);opacity:0}}.hinge{-webkit-animation-name:hinge;animation-name:hinge}@-webkit-keyframes rollIn{0%{opacity:0;-webkit-transform:translate3d(-100%,0,0) rotate(-120deg);transform:translate3d(-100%,0,0) rotate(-120deg)}to{opacity:1;-webkit-transform:none;transform:none}}@keyframes rollIn{0%{opacity:0;-webkit-transform:translate3d(-100%,0,0) rotate(-120deg);transform:translate3d(-100%,0,0) rotate(-120deg)}to{opacity:1;-webkit-transform:none;transform:none}}.rollIn{-webkit-animation-name:rollIn;animation-name:rollIn}@-webkit-keyframes rollOut{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(100%,0,0) rotate(120deg);transform:translate3d(100%,0,0) rotate(120deg)}}@keyframes rollOut{0%{opacity:1}to{opacity:0;-webkit-transform:translate3d(100%,0,0) rotate(120deg);transform:translate3d(100%,0,0) rotate(120deg)}}.rollOut{-webkit-animation-name:rollOut;animation-name:rollOut}@-webkit-keyframes zoomIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}50%{opacity:1}}@keyframes zoomIn{0%{opacity:0;-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}50%{opacity:1}}.zoomIn{-webkit-animation-name:zoomIn;animation-name:zoomIn}@-webkit-keyframes zoomInDown{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,-1000px,0);transform:scale3d(.1,.1,.1) translate3d(0,-1000px,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,60px,0);transform:scale3d(.475,.475,.475) translate3d(0,60px,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}@keyframes zoomInDown{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,-1000px,0);transform:scale3d(.1,.1,.1) translate3d(0,-1000px,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,60px,0);transform:scale3d(.475,.475,.475) translate3d(0,60px,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}.zoomInDown{-webkit-animation-name:zoomInDown;animation-name:zoomInDown}@-webkit-keyframes zoomInLeft{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(-1000px,0,0);transform:scale3d(.1,.1,.1) translate3d(-1000px,0,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(10px,0,0);transform:scale3d(.475,.475,.475) translate3d(10px,0,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}@keyframes zoomInLeft{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(-1000px,0,0);transform:scale3d(.1,.1,.1) translate3d(-1000px,0,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(10px,0,0);transform:scale3d(.475,.475,.475) translate3d(10px,0,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}.zoomInLeft{-webkit-animation-name:zoomInLeft;animation-name:zoomInLeft}@-webkit-keyframes zoomInRight{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(1000px,0,0);transform:scale3d(.1,.1,.1) translate3d(1000px,0,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(-10px,0,0);transform:scale3d(.475,.475,.475) translate3d(-10px,0,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}@keyframes zoomInRight{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(1000px,0,0);transform:scale3d(.1,.1,.1) translate3d(1000px,0,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(-10px,0,0);transform:scale3d(.475,.475,.475) translate3d(-10px,0,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}.zoomInRight{-webkit-animation-name:zoomInRight;animation-name:zoomInRight}@-webkit-keyframes zoomInUp{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,1000px,0);transform:scale3d(.1,.1,.1) translate3d(0,1000px,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}@keyframes zoomInUp{0%{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,1000px,0);transform:scale3d(.1,.1,.1) translate3d(0,1000px,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}60%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}.zoomInUp{-webkit-animation-name:zoomInUp;animation-name:zoomInUp}@-webkit-keyframes zoomOut{0%{opacity:1}50%{-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}50%,to{opacity:0}}@keyframes zoomOut{0%{opacity:1}50%{-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3)}50%,to{opacity:0}}.zoomOut{-webkit-animation-name:zoomOut;animation-name:zoomOut}@-webkit-keyframes zoomOutDown{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}to{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,2000px,0);transform:scale3d(.1,.1,.1) translate3d(0,2000px,0);-webkit-transform-origin:center bottom;transform-origin:center bottom;-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}@keyframes zoomOutDown{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);transform:scale3d(.475,.475,.475) translate3d(0,-60px,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}to{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,2000px,0);transform:scale3d(.1,.1,.1) translate3d(0,2000px,0);-webkit-transform-origin:center bottom;transform-origin:center bottom;-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}.zoomOutDown{-webkit-animation-name:zoomOutDown;animation-name:zoomOutDown}@-webkit-keyframes zoomOutLeft{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(42px,0,0);transform:scale3d(.475,.475,.475) translate3d(42px,0,0)}to{opacity:0;-webkit-transform:scale(.1) translate3d(-2000px,0,0);transform:scale(.1) translate3d(-2000px,0,0);-webkit-transform-origin:left center;transform-origin:left center}}@keyframes zoomOutLeft{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(42px,0,0);transform:scale3d(.475,.475,.475) translate3d(42px,0,0)}to{opacity:0;-webkit-transform:scale(.1) translate3d(-2000px,0,0);transform:scale(.1) translate3d(-2000px,0,0);-webkit-transform-origin:left center;transform-origin:left center}}.zoomOutLeft{-webkit-animation-name:zoomOutLeft;animation-name:zoomOutLeft}@-webkit-keyframes zoomOutRight{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(-42px,0,0);transform:scale3d(.475,.475,.475) translate3d(-42px,0,0)}to{opacity:0;-webkit-transform:scale(.1) translate3d(2000px,0,0);transform:scale(.1) translate3d(2000px,0,0);-webkit-transform-origin:right center;transform-origin:right center}}@keyframes zoomOutRight{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(-42px,0,0);transform:scale3d(.475,.475,.475) translate3d(-42px,0,0)}to{opacity:0;-webkit-transform:scale(.1) translate3d(2000px,0,0);transform:scale(.1) translate3d(2000px,0,0);-webkit-transform-origin:right center;transform-origin:right center}}.zoomOutRight{-webkit-animation-name:zoomOutRight;animation-name:zoomOutRight}@-webkit-keyframes zoomOutUp{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,60px,0);transform:scale3d(.475,.475,.475) translate3d(0,60px,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}to{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,-2000px,0);transform:scale3d(.1,.1,.1) translate3d(0,-2000px,0);-webkit-transform-origin:center bottom;transform-origin:center bottom;-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}@keyframes zoomOutUp{40%{opacity:1;-webkit-transform:scale3d(.475,.475,.475) translate3d(0,60px,0);transform:scale3d(.475,.475,.475) translate3d(0,60px,0);-webkit-animation-timing-function:cubic-bezier(.55,.055,.675,.19);animation-timing-function:cubic-bezier(.55,.055,.675,.19)}to{opacity:0;-webkit-transform:scale3d(.1,.1,.1) translate3d(0,-2000px,0);transform:scale3d(.1,.1,.1) translate3d(0,-2000px,0);-webkit-transform-origin:center bottom;transform-origin:center bottom;-webkit-animation-timing-function:cubic-bezier(.175,.885,.32,1);animation-timing-function:cubic-bezier(.175,.885,.32,1)}}.zoomOutUp{-webkit-animation-name:zoomOutUp;animation-name:zoomOutUp}@-webkit-keyframes slideInDown{0%{-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0);visibility:visible}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes slideInDown{0%{-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0);visibility:visible}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.slideInDown{-webkit-animation-name:slideInDown;animation-name:slideInDown}@-webkit-keyframes slideInLeft{0%{-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0);visibility:visible}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes slideInLeft{0%{-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0);visibility:visible}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.slideInLeft{-webkit-animation-name:slideInLeft;animation-name:slideInLeft}@-webkit-keyframes slideInRight{0%{-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0);visibility:visible}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes slideInRight{0%{-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0);visibility:visible}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.slideInRight{-webkit-animation-name:slideInRight;animation-name:slideInRight}@-webkit-keyframes slideInUp{0%{-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0);visibility:visible}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}@keyframes slideInUp{0%{-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0);visibility:visible}to{-webkit-transform:translateZ(0);transform:translateZ(0)}}.slideInUp{-webkit-animation-name:slideInUp;animation-name:slideInUp}@-webkit-keyframes slideOutDown{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{visibility:hidden;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}}@keyframes slideOutDown{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{visibility:hidden;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}}.slideOutDown{-webkit-animation-name:slideOutDown;animation-name:slideOutDown}@-webkit-keyframes slideOutLeft{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{visibility:hidden;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}}@keyframes slideOutLeft{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{visibility:hidden;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}}.slideOutLeft{-webkit-animation-name:slideOutLeft;animation-name:slideOutLeft}@-webkit-keyframes slideOutRight{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{visibility:hidden;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}}@keyframes slideOutRight{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{visibility:hidden;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}}.slideOutRight{-webkit-animation-name:slideOutRight;animation-name:slideOutRight}@-webkit-keyframes slideOutUp{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{visibility:hidden;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}}@keyframes slideOutUp{0%{-webkit-transform:translateZ(0);transform:translateZ(0)}to{visibility:hidden;-webkit-transform:translate3d(0,-100%,0);transform:translate3d(0,-100%,0)}}.slideOutUp{-webkit-animation-name:slideOutUp;animation-name:slideOutUp}
\ No newline at end of file
diff --git a/assets/css/font-awesome.min.css b/assets/css/font-awesome.min.css
deleted file mode 100644
index 540440c..0000000
--- a/assets/css/font-awesome.min.css
+++ /dev/null
@@ -1,4 +0,0 @@
-/*!
- *  Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome
- *  License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)
- */@font-face{font-family:'FontAwesome';src:url('../fonts/fontawesome-webfont.eot?v=4.7.0');src:url('../fonts/fontawesome-webfont.eot?#iefix&v=4.7.0') format('embedded-opentype'),url('../fonts/fontawesome-webfont.woff2?v=4.7.0') format('woff2'),url('../fonts/fontawesome-webfont.woff?v=4.7.0') format('woff'),url('../fonts/fontawesome-webfont.ttf?v=4.7.0') format('truetype'),url('../fonts/fontawesome-webfont.svg?v=4.7.0#fontawesomeregular') format('svg');font-weight:normal;font-style:normal}.fa{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-lg{font-size:1.33333333em;line-height:.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.28571429em;text-align:center}.fa-ul{padding-left:0;margin-left:2.14285714em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.14285714em;width:2.14285714em;top:.14285714em;text-align:center}.fa-li.fa-lg{left:-1.85714286em}.fa-border{padding:.2em .25em .15em;border:solid .08em #eee;border-radius:.1em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left{margin-right:.3em}.fa.fa-pull-right{margin-left:.3em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left{margin-right:.3em}.fa.pull-right{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear}.fa-pulse{-webkit-animation:fa-spin 1s infinite steps(8);animation:fa-spin 1s infinite steps(8)}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.fa-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";-webkit-transform:scale(-1, 1);-ms-transform:scale(-1, 1);transform:scale(-1, 1)}.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";-webkit-transform:scale(1, -1);-ms-transform:scale(1, -1);transform:scale(1, -1)}:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-flip-horizontal,:root .fa-flip-vertical{filter:none}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:"\f000"}.fa-music:before{content:"\f001"}.fa-search:before{content:"\f002"}.fa-envelope-o:before{content:"\f003"}.fa-heart:before{content:"\f004"}.fa-star:before{content:"\f005"}.fa-star-o:before{content:"\f006"}.fa-user:before{content:"\f007"}.fa-film:before{content:"\f008"}.fa-th-large:before{content:"\f009"}.fa-th:before{content:"\f00a"}.fa-th-list:before{content:"\f00b"}.fa-check:before{content:"\f00c"}.fa-remove:before,.fa-close:before,.fa-times:before{content:"\f00d"}.fa-search-plus:before{content:"\f00e"}.fa-search-minus:before{content:"\f010"}.fa-power-off:before{content:"\f011"}.fa-signal:before{content:"\f012"}.fa-gear:before,.fa-cog:before{content:"\f013"}.fa-trash-o:before{content:"\f014"}.fa-home:before{content:"\f015"}.fa-file-o:before{content:"\f016"}.fa-clock-o:before{content:"\f017"}.fa-road:before{content:"\f018"}.fa-download:before{content:"\f019"}.fa-arrow-circle-o-down:before{content:"\f01a"}.fa-arrow-circle-o-up:before{content:"\f01b"}.fa-inbox:before{content:"\f01c"}.fa-play-circle-o:before{content:"\f01d"}.fa-rotate-right:before,.fa-repeat:before{content:"\f01e"}.fa-refresh:before{content:"\f021"}.fa-list-alt:before{content:"\f022"}.fa-lock:before{content:"\f023"}.fa-flag:before{content:"\f024"}.fa-headphones:before{content:"\f025"}.fa-volume-off:before{content:"\f026"}.fa-volume-down:before{content:"\f027"}.fa-volume-up:before{content:"\f028"}.fa-qrcode:before{content:"\f029"}.fa-barcode:before{content:"\f02a"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-book:before{content:"\f02d"}.fa-bookmark:before{content:"\f02e"}.fa-print:before{content:"\f02f"}.fa-camera:before{content:"\f030"}.fa-font:before{content:"\f031"}.fa-bold:before{content:"\f032"}.fa-italic:before{content:"\f033"}.fa-text-height:before{content:"\f034"}.fa-text-width:before{content:"\f035"}.fa-align-left:before{content:"\f036"}.fa-align-center:before{content:"\f037"}.fa-align-right:before{content:"\f038"}.fa-align-justify:before{content:"\f039"}.fa-list:before{content:"\f03a"}.fa-dedent:before,.fa-outdent:before{content:"\f03b"}.fa-indent:before{content:"\f03c"}.fa-video-camera:before{content:"\f03d"}.fa-photo:before,.fa-image:before,.fa-picture-o:before{content:"\f03e"}.fa-pencil:before{content:"\f040"}.fa-map-marker:before{content:"\f041"}.fa-adjust:before{content:"\f042"}.fa-tint:before{content:"\f043"}.fa-edit:before,.fa-pencil-square-o:before{content:"\f044"}.fa-share-square-o:before{content:"\f045"}.fa-check-square-o:before{content:"\f046"}.fa-arrows:before{content:"\f047"}.fa-step-backward:before{content:"\f048"}.fa-fast-backward:before{content:"\f049"}.fa-backward:before{content:"\f04a"}.fa-play:before{content:"\f04b"}.fa-pause:before{content:"\f04c"}.fa-stop:before{content:"\f04d"}.fa-forward:before{content:"\f04e"}.fa-fast-forward:before{content:"\f050"}.fa-step-forward:before{content:"\f051"}.fa-eject:before{content:"\f052"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-plus-circle:before{content:"\f055"}.fa-minus-circle:before{content:"\f056"}.fa-times-circle:before{content:"\f057"}.fa-check-circle:before{content:"\f058"}.fa-question-circle:before{content:"\f059"}.fa-info-circle:before{content:"\f05a"}.fa-crosshairs:before{content:"\f05b"}.fa-times-circle-o:before{content:"\f05c"}.fa-check-circle-o:before{content:"\f05d"}.fa-ban:before{content:"\f05e"}.fa-arrow-left:before{content:"\f060"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-up:before{content:"\f062"}.fa-arrow-down:before{content:"\f063"}.fa-mail-forward:before,.fa-share:before{content:"\f064"}.fa-expand:before{content:"\f065"}.fa-compress:before{content:"\f066"}.fa-plus:before{content:"\f067"}.fa-minus:before{content:"\f068"}.fa-asterisk:before{content:"\f069"}.fa-exclamation-circle:before{content:"\f06a"}.fa-gift:before{content:"\f06b"}.fa-leaf:before{content:"\f06c"}.fa-fire:before{content:"\f06d"}.fa-eye:before{content:"\f06e"}.fa-eye-slash:before{content:"\f070"}.fa-warning:before,.fa-exclamation-triangle:before{content:"\f071"}.fa-plane:before{content:"\f072"}.fa-calendar:before{content:"\f073"}.fa-random:before{content:"\f074"}.fa-comment:before{content:"\f075"}.fa-magnet:before{content:"\f076"}.fa-chevron-up:before{content:"\f077"}.fa-chevron-down:before{content:"\f078"}.fa-retweet:before{content:"\f079"}.fa-shopping-cart:before{content:"\f07a"}.fa-folder:before{content:"\f07b"}.fa-folder-open:before{content:"\f07c"}.fa-arrows-v:before{content:"\f07d"}.fa-arrows-h:before{content:"\f07e"}.fa-bar-chart-o:before,.fa-bar-chart:before{content:"\f080"}.fa-twitter-square:before{content:"\f081"}.fa-facebook-square:before{content:"\f082"}.fa-camera-retro:before{content:"\f083"}.fa-key:before{content:"\f084"}.fa-gears:before,.fa-cogs:before{content:"\f085"}.fa-comments:before{content:"\f086"}.fa-thumbs-o-up:before{content:"\f087"}.fa-thumbs-o-down:before{content:"\f088"}.fa-star-half:before{content:"\f089"}.fa-heart-o:before{content:"\f08a"}.fa-sign-out:before{content:"\f08b"}.fa-linkedin-square:before{content:"\f08c"}.fa-thumb-tack:before{content:"\f08d"}.fa-external-link:before{content:"\f08e"}.fa-sign-in:before{content:"\f090"}.fa-trophy:before{content:"\f091"}.fa-github-square:before{content:"\f092"}.fa-upload:before{content:"\f093"}.fa-lemon-o:before{content:"\f094"}.fa-phone:before{content:"\f095"}.fa-square-o:before{content:"\f096"}.fa-bookmark-o:before{content:"\f097"}.fa-phone-square:before{content:"\f098"}.fa-twitter:before{content:"\f099"}.fa-facebook-f:before,.fa-facebook:before{content:"\f09a"}.fa-github:before{content:"\f09b"}.fa-unlock:before{content:"\f09c"}.fa-credit-card:before{content:"\f09d"}.fa-feed:before,.fa-rss:before{content:"\f09e"}.fa-hdd-o:before{content:"\f0a0"}.fa-bullhorn:before{content:"\f0a1"}.fa-bell:before{content:"\f0f3"}.fa-certificate:before{content:"\f0a3"}.fa-hand-o-right:before{content:"\f0a4"}.fa-hand-o-left:before{content:"\f0a5"}.fa-hand-o-up:before{content:"\f0a6"}.fa-hand-o-down:before{content:"\f0a7"}.fa-arrow-circle-left:before{content:"\f0a8"}.fa-arrow-circle-right:before{content:"\f0a9"}.fa-arrow-circle-up:before{content:"\f0aa"}.fa-arrow-circle-down:before{content:"\f0ab"}.fa-globe:before{content:"\f0ac"}.fa-wrench:before{content:"\f0ad"}.fa-tasks:before{content:"\f0ae"}.fa-filter:before{content:"\f0b0"}.fa-briefcase:before{content:"\f0b1"}.fa-arrows-alt:before{content:"\f0b2"}.fa-group:before,.fa-users:before{content:"\f0c0"}.fa-chain:before,.fa-link:before{content:"\f0c1"}.fa-cloud:before{content:"\f0c2"}.fa-flask:before{content:"\f0c3"}.fa-cut:before,.fa-scissors:before{content:"\f0c4"}.fa-copy:before,.fa-files-o:before{content:"\f0c5"}.fa-paperclip:before{content:"\f0c6"}.fa-save:before,.fa-floppy-o:before{content:"\f0c7"}.fa-square:before{content:"\f0c8"}.fa-navicon:before,.fa-reorder:before,.fa-bars:before{content:"\f0c9"}.fa-list-ul:before{content:"\f0ca"}.fa-list-ol:before{content:"\f0cb"}.fa-strikethrough:before{content:"\f0cc"}.fa-underline:before{content:"\f0cd"}.fa-table:before{content:"\f0ce"}.fa-magic:before{content:"\f0d0"}.fa-truck:before{content:"\f0d1"}.fa-pinterest:before{content:"\f0d2"}.fa-pinterest-square:before{content:"\f0d3"}.fa-google-plus-square:before{content:"\f0d4"}.fa-google-plus:before{content:"\f0d5"}.fa-money:before{content:"\f0d6"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-up:before{content:"\f0d8"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-columns:before{content:"\f0db"}.fa-unsorted:before,.fa-sort:before{content:"\f0dc"}.fa-sort-down:before,.fa-sort-desc:before{content:"\f0dd"}.fa-sort-up:before,.fa-sort-asc:before{content:"\f0de"}.fa-envelope:before{content:"\f0e0"}.fa-linkedin:before{content:"\f0e1"}.fa-rotate-left:before,.fa-undo:before{content:"\f0e2"}.fa-legal:before,.fa-gavel:before{content:"\f0e3"}.fa-dashboard:before,.fa-tachometer:before{content:"\f0e4"}.fa-comment-o:before{content:"\f0e5"}.fa-comments-o:before{content:"\f0e6"}.fa-flash:before,.fa-bolt:before{content:"\f0e7"}.fa-sitemap:before{content:"\f0e8"}.fa-umbrella:before{content:"\f0e9"}.fa-paste:before,.fa-clipboard:before{content:"\f0ea"}.fa-lightbulb-o:before{content:"\f0eb"}.fa-exchange:before{content:"\f0ec"}.fa-cloud-download:before{content:"\f0ed"}.fa-cloud-upload:before{content:"\f0ee"}.fa-user-md:before{content:"\f0f0"}.fa-stethoscope:before{content:"\f0f1"}.fa-suitcase:before{content:"\f0f2"}.fa-bell-o:before{content:"\f0a2"}.fa-coffee:before{content:"\f0f4"}.fa-cutlery:before{content:"\f0f5"}.fa-file-text-o:before{content:"\f0f6"}.fa-building-o:before{content:"\f0f7"}.fa-hospital-o:before{content:"\f0f8"}.fa-ambulance:before{content:"\f0f9"}.fa-medkit:before{content:"\f0fa"}.fa-fighter-jet:before{content:"\f0fb"}.fa-beer:before{content:"\f0fc"}.fa-h-square:before{content:"\f0fd"}.fa-plus-square:before{content:"\f0fe"}.fa-angle-double-left:before{content:"\f100"}.fa-angle-double-right:before{content:"\f101"}.fa-angle-double-up:before{content:"\f102"}.fa-angle-double-down:before{content:"\f103"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"}.fa-angle-up:before{content:"\f106"}.fa-angle-down:before{content:"\f107"}.fa-desktop:before{content:"\f108"}.fa-laptop:before{content:"\f109"}.fa-tablet:before{content:"\f10a"}.fa-mobile-phone:before,.fa-mobile:before{content:"\f10b"}.fa-circle-o:before{content:"\f10c"}.fa-quote-left:before{content:"\f10d"}.fa-quote-right:before{content:"\f10e"}.fa-spinner:before{content:"\f110"}.fa-circle:before{content:"\f111"}.fa-mail-reply:before,.fa-reply:before{content:"\f112"}.fa-github-alt:before{content:"\f113"}.fa-folder-o:before{content:"\f114"}.fa-folder-open-o:before{content:"\f115"}.fa-smile-o:before{content:"\f118"}.fa-frown-o:before{content:"\f119"}.fa-meh-o:before{content:"\f11a"}.fa-gamepad:before{content:"\f11b"}.fa-keyboard-o:before{content:"\f11c"}.fa-flag-o:before{content:"\f11d"}.fa-flag-checkered:before{content:"\f11e"}.fa-terminal:before{content:"\f120"}.fa-code:before{content:"\f121"}.fa-mail-reply-all:before,.fa-reply-all:before{content:"\f122"}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:"\f123"}.fa-location-arrow:before{content:"\f124"}.fa-crop:before{content:"\f125"}.fa-code-fork:before{content:"\f126"}.fa-unlink:before,.fa-chain-broken:before{content:"\f127"}.fa-question:before{content:"\f128"}.fa-info:before{content:"\f129"}.fa-exclamation:before{content:"\f12a"}.fa-superscript:before{content:"\f12b"}.fa-subscript:before{content:"\f12c"}.fa-eraser:before{content:"\f12d"}.fa-puzzle-piece:before{content:"\f12e"}.fa-microphone:before{content:"\f130"}.fa-microphone-slash:before{content:"\f131"}.fa-shield:before{content:"\f132"}.fa-calendar-o:before{content:"\f133"}.fa-fire-extinguisher:before{content:"\f134"}.fa-rocket:before{content:"\f135"}.fa-maxcdn:before{content:"\f136"}.fa-chevron-circle-left:before{content:"\f137"}.fa-chevron-circle-right:before{content:"\f138"}.fa-chevron-circle-up:before{content:"\f139"}.fa-chevron-circle-down:before{content:"\f13a"}.fa-html5:before{content:"\f13b"}.fa-css3:before{content:"\f13c"}.fa-anchor:before{content:"\f13d"}.fa-unlock-alt:before{content:"\f13e"}.fa-bullseye:before{content:"\f140"}.fa-ellipsis-h:before{content:"\f141"}.fa-ellipsis-v:before{content:"\f142"}.fa-rss-square:before{content:"\f143"}.fa-play-circle:before{content:"\f144"}.fa-ticket:before{content:"\f145"}.fa-minus-square:before{content:"\f146"}.fa-minus-square-o:before{content:"\f147"}.fa-level-up:before{content:"\f148"}.fa-level-down:before{content:"\f149"}.fa-check-square:before{content:"\f14a"}.fa-pencil-square:before{content:"\f14b"}.fa-external-link-square:before{content:"\f14c"}.fa-share-square:before{content:"\f14d"}.fa-compass:before{content:"\f14e"}.fa-toggle-down:before,.fa-caret-square-o-down:before{content:"\f150"}.fa-toggle-up:before,.fa-caret-square-o-up:before{content:"\f151"}.fa-toggle-right:before,.fa-caret-square-o-right:before{content:"\f152"}.fa-euro:before,.fa-eur:before{content:"\f153"}.fa-gbp:before{content:"\f154"}.fa-dollar:before,.fa-usd:before{content:"\f155"}.fa-rupee:before,.fa-inr:before{content:"\f156"}.fa-cny:before,.fa-rmb:before,.fa-yen:before,.fa-jpy:before{content:"\f157"}.fa-ruble:before,.fa-rouble:before,.fa-rub:before{content:"\f158"}.fa-won:before,.fa-krw:before{content:"\f159"}.fa-bitcoin:before,.fa-btc:before{content:"\f15a"}.fa-file:before{content:"\f15b"}.fa-file-text:before{content:"\f15c"}.fa-sort-alpha-asc:before{content:"\f15d"}.fa-sort-alpha-desc:before{content:"\f15e"}.fa-sort-amount-asc:before{content:"\f160"}.fa-sort-amount-desc:before{content:"\f161"}.fa-sort-numeric-asc:before{content:"\f162"}.fa-sort-numeric-desc:before{content:"\f163"}.fa-thumbs-up:before{content:"\f164"}.fa-thumbs-down:before{content:"\f165"}.fa-youtube-square:before{content:"\f166"}.fa-youtube:before{content:"\f167"}.fa-xing:before{content:"\f168"}.fa-xing-square:before{content:"\f169"}.fa-youtube-play:before{content:"\f16a"}.fa-dropbox:before{content:"\f16b"}.fa-stack-overflow:before{content:"\f16c"}.fa-instagram:before{content:"\f16d"}.fa-flickr:before{content:"\f16e"}.fa-adn:before{content:"\f170"}.fa-bitbucket:before{content:"\f171"}.fa-bitbucket-square:before{content:"\f172"}.fa-tumblr:before{content:"\f173"}.fa-tumblr-square:before{content:"\f174"}.fa-long-arrow-down:before{content:"\f175"}.fa-long-arrow-up:before{content:"\f176"}.fa-long-arrow-left:before{content:"\f177"}.fa-long-arrow-right:before{content:"\f178"}.fa-apple:before{content:"\f179"}.fa-windows:before{content:"\f17a"}.fa-android:before{content:"\f17b"}.fa-linux:before{content:"\f17c"}.fa-dribbble:before{content:"\f17d"}.fa-skype:before{content:"\f17e"}.fa-foursquare:before{content:"\f180"}.fa-trello:before{content:"\f181"}.fa-female:before{content:"\f182"}.fa-male:before{content:"\f183"}.fa-gittip:before,.fa-gratipay:before{content:"\f184"}.fa-sun-o:before{content:"\f185"}.fa-moon-o:before{content:"\f186"}.fa-archive:before{content:"\f187"}.fa-bug:before{content:"\f188"}.fa-vk:before{content:"\f189"}.fa-weibo:before{content:"\f18a"}.fa-renren:before{content:"\f18b"}.fa-pagelines:before{content:"\f18c"}.fa-stack-exchange:before{content:"\f18d"}.fa-arrow-circle-o-right:before{content:"\f18e"}.fa-arrow-circle-o-left:before{content:"\f190"}.fa-toggle-left:before,.fa-caret-square-o-left:before{content:"\f191"}.fa-dot-circle-o:before{content:"\f192"}.fa-wheelchair:before{content:"\f193"}.fa-vimeo-square:before{content:"\f194"}.fa-turkish-lira:before,.fa-try:before{content:"\f195"}.fa-plus-square-o:before{content:"\f196"}.fa-space-shuttle:before{content:"\f197"}.fa-slack:before{content:"\f198"}.fa-envelope-square:before{content:"\f199"}.fa-wordpress:before{content:"\f19a"}.fa-openid:before{content:"\f19b"}.fa-institution:before,.fa-bank:before,.fa-university:before{content:"\f19c"}.fa-mortar-board:before,.fa-graduation-cap:before{content:"\f19d"}.fa-yahoo:before{content:"\f19e"}.fa-google:before{content:"\f1a0"}.fa-reddit:before{content:"\f1a1"}.fa-reddit-square:before{content:"\f1a2"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-stumbleupon:before{content:"\f1a4"}.fa-delicious:before{content:"\f1a5"}.fa-digg:before{content:"\f1a6"}.fa-pied-piper-pp:before{content:"\f1a7"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-drupal:before{content:"\f1a9"}.fa-joomla:before{content:"\f1aa"}.fa-language:before{content:"\f1ab"}.fa-fax:before{content:"\f1ac"}.fa-building:before{content:"\f1ad"}.fa-child:before{content:"\f1ae"}.fa-paw:before{content:"\f1b0"}.fa-spoon:before{content:"\f1b1"}.fa-cube:before{content:"\f1b2"}.fa-cubes:before{content:"\f1b3"}.fa-behance:before{content:"\f1b4"}.fa-behance-square:before{content:"\f1b5"}.fa-steam:before{content:"\f1b6"}.fa-steam-square:before{content:"\f1b7"}.fa-recycle:before{content:"\f1b8"}.fa-automobile:before,.fa-car:before{content:"\f1b9"}.fa-cab:before,.fa-taxi:before{content:"\f1ba"}.fa-tree:before{content:"\f1bb"}.fa-spotify:before{content:"\f1bc"}.fa-deviantart:before{content:"\f1bd"}.fa-soundcloud:before{content:"\f1be"}.fa-database:before{content:"\f1c0"}.fa-file-pdf-o:before{content:"\f1c1"}.fa-file-word-o:before{content:"\f1c2"}.fa-file-excel-o:before{content:"\f1c3"}.fa-file-powerpoint-o:before{content:"\f1c4"}.fa-file-photo-o:before,.fa-file-picture-o:before,.fa-file-image-o:before{content:"\f1c5"}.fa-file-zip-o:before,.fa-file-archive-o:before{content:"\f1c6"}.fa-file-sound-o:before,.fa-file-audio-o:before{content:"\f1c7"}.fa-file-movie-o:before,.fa-file-video-o:before{content:"\f1c8"}.fa-file-code-o:before{content:"\f1c9"}.fa-vine:before{content:"\f1ca"}.fa-codepen:before{content:"\f1cb"}.fa-jsfiddle:before{content:"\f1cc"}.fa-life-bouy:before,.fa-life-buoy:before,.fa-life-saver:before,.fa-support:before,.fa-life-ring:before{content:"\f1cd"}.fa-circle-o-notch:before{content:"\f1ce"}.fa-ra:before,.fa-resistance:before,.fa-rebel:before{content:"\f1d0"}.fa-ge:before,.fa-empire:before{content:"\f1d1"}.fa-git-square:before{content:"\f1d2"}.fa-git:before{content:"\f1d3"}.fa-y-combinator-square:before,.fa-yc-square:before,.fa-hacker-news:before{content:"\f1d4"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-qq:before{content:"\f1d6"}.fa-wechat:before,.fa-weixin:before{content:"\f1d7"}.fa-send:before,.fa-paper-plane:before{content:"\f1d8"}.fa-send-o:before,.fa-paper-plane-o:before{content:"\f1d9"}.fa-history:before{content:"\f1da"}.fa-circle-thin:before{content:"\f1db"}.fa-header:before{content:"\f1dc"}.fa-paragraph:before{content:"\f1dd"}.fa-sliders:before{content:"\f1de"}.fa-share-alt:before{content:"\f1e0"}.fa-share-alt-square:before{content:"\f1e1"}.fa-bomb:before{content:"\f1e2"}.fa-soccer-ball-o:before,.fa-futbol-o:before{content:"\f1e3"}.fa-tty:before{content:"\f1e4"}.fa-binoculars:before{content:"\f1e5"}.fa-plug:before{content:"\f1e6"}.fa-slideshare:before{content:"\f1e7"}.fa-twitch:before{content:"\f1e8"}.fa-yelp:before{content:"\f1e9"}.fa-newspaper-o:before{content:"\f1ea"}.fa-wifi:before{content:"\f1eb"}.fa-calculator:before{content:"\f1ec"}.fa-paypal:before{content:"\f1ed"}.fa-google-wallet:before{content:"\f1ee"}.fa-cc-visa:before{content:"\f1f0"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-cc-discover:before{content:"\f1f2"}.fa-cc-amex:before{content:"\f1f3"}.fa-cc-paypal:before{content:"\f1f4"}.fa-cc-stripe:before{content:"\f1f5"}.fa-bell-slash:before{content:"\f1f6"}.fa-bell-slash-o:before{content:"\f1f7"}.fa-trash:before{content:"\f1f8"}.fa-copyright:before{content:"\f1f9"}.fa-at:before{content:"\f1fa"}.fa-eyedropper:before{content:"\f1fb"}.fa-paint-brush:before{content:"\f1fc"}.fa-birthday-cake:before{content:"\f1fd"}.fa-area-chart:before{content:"\f1fe"}.fa-pie-chart:before{content:"\f200"}.fa-line-chart:before{content:"\f201"}.fa-lastfm:before{content:"\f202"}.fa-lastfm-square:before{content:"\f203"}.fa-toggle-off:before{content:"\f204"}.fa-toggle-on:before{content:"\f205"}.fa-bicycle:before{content:"\f206"}.fa-bus:before{content:"\f207"}.fa-ioxhost:before{content:"\f208"}.fa-angellist:before{content:"\f209"}.fa-cc:before{content:"\f20a"}.fa-shekel:before,.fa-sheqel:before,.fa-ils:before{content:"\f20b"}.fa-meanpath:before{content:"\f20c"}.fa-buysellads:before{content:"\f20d"}.fa-connectdevelop:before{content:"\f20e"}.fa-dashcube:before{content:"\f210"}.fa-forumbee:before{content:"\f211"}.fa-leanpub:before{content:"\f212"}.fa-sellsy:before{content:"\f213"}.fa-shirtsinbulk:before{content:"\f214"}.fa-simplybuilt:before{content:"\f215"}.fa-skyatlas:before{content:"\f216"}.fa-cart-plus:before{content:"\f217"}.fa-cart-arrow-down:before{content:"\f218"}.fa-diamond:before{content:"\f219"}.fa-ship:before{content:"\f21a"}.fa-user-secret:before{content:"\f21b"}.fa-motorcycle:before{content:"\f21c"}.fa-street-view:before{content:"\f21d"}.fa-heartbeat:before{content:"\f21e"}.fa-venus:before{content:"\f221"}.fa-mars:before{content:"\f222"}.fa-mercury:before{content:"\f223"}.fa-intersex:before,.fa-transgender:before{content:"\f224"}.fa-transgender-alt:before{content:"\f225"}.fa-venus-double:before{content:"\f226"}.fa-mars-double:before{content:"\f227"}.fa-venus-mars:before{content:"\f228"}.fa-mars-stroke:before{content:"\f229"}.fa-mars-stroke-v:before{content:"\f22a"}.fa-mars-stroke-h:before{content:"\f22b"}.fa-neuter:before{content:"\f22c"}.fa-genderless:before{content:"\f22d"}.fa-facebook-official:before{content:"\f230"}.fa-pinterest-p:before{content:"\f231"}.fa-whatsapp:before{content:"\f232"}.fa-server:before{content:"\f233"}.fa-user-plus:before{content:"\f234"}.fa-user-times:before{content:"\f235"}.fa-hotel:before,.fa-bed:before{content:"\f236"}.fa-viacoin:before{content:"\f237"}.fa-train:before{content:"\f238"}.fa-subway:before{content:"\f239"}.fa-medium:before{content:"\f23a"}.fa-yc:before,.fa-y-combinator:before{content:"\f23b"}.fa-optin-monster:before{content:"\f23c"}.fa-opencart:before{content:"\f23d"}.fa-expeditedssl:before{content:"\f23e"}.fa-battery-4:before,.fa-battery:before,.fa-battery-full:before{content:"\f240"}.fa-battery-3:before,.fa-battery-three-quarters:before{content:"\f241"}.fa-battery-2:before,.fa-battery-half:before{content:"\f242"}.fa-battery-1:before,.fa-battery-quarter:before{content:"\f243"}.fa-battery-0:before,.fa-battery-empty:before{content:"\f244"}.fa-mouse-pointer:before{content:"\f245"}.fa-i-cursor:before{content:"\f246"}.fa-object-group:before{content:"\f247"}.fa-object-ungroup:before{content:"\f248"}.fa-sticky-note:before{content:"\f249"}.fa-sticky-note-o:before{content:"\f24a"}.fa-cc-jcb:before{content:"\f24b"}.fa-cc-diners-club:before{content:"\f24c"}.fa-clone:before{content:"\f24d"}.fa-balance-scale:before{content:"\f24e"}.fa-hourglass-o:before{content:"\f250"}.fa-hourglass-1:before,.fa-hourglass-start:before{content:"\f251"}.fa-hourglass-2:before,.fa-hourglass-half:before{content:"\f252"}.fa-hourglass-3:before,.fa-hourglass-end:before{content:"\f253"}.fa-hourglass:before{content:"\f254"}.fa-hand-grab-o:before,.fa-hand-rock-o:before{content:"\f255"}.fa-hand-stop-o:before,.fa-hand-paper-o:before{content:"\f256"}.fa-hand-scissors-o:before{content:"\f257"}.fa-hand-lizard-o:before{content:"\f258"}.fa-hand-spock-o:before{content:"\f259"}.fa-hand-pointer-o:before{content:"\f25a"}.fa-hand-peace-o:before{content:"\f25b"}.fa-trademark:before{content:"\f25c"}.fa-registered:before{content:"\f25d"}.fa-creative-commons:before{content:"\f25e"}.fa-gg:before{content:"\f260"}.fa-gg-circle:before{content:"\f261"}.fa-tripadvisor:before{content:"\f262"}.fa-odnoklassniki:before{content:"\f263"}.fa-odnoklassniki-square:before{content:"\f264"}.fa-get-pocket:before{content:"\f265"}.fa-wikipedia-w:before{content:"\f266"}.fa-safari:before{content:"\f267"}.fa-chrome:before{content:"\f268"}.fa-firefox:before{content:"\f269"}.fa-opera:before{content:"\f26a"}.fa-internet-explorer:before{content:"\f26b"}.fa-tv:before,.fa-television:before{content:"\f26c"}.fa-contao:before{content:"\f26d"}.fa-500px:before{content:"\f26e"}.fa-amazon:before{content:"\f270"}.fa-calendar-plus-o:before{content:"\f271"}.fa-calendar-minus-o:before{content:"\f272"}.fa-calendar-times-o:before{content:"\f273"}.fa-calendar-check-o:before{content:"\f274"}.fa-industry:before{content:"\f275"}.fa-map-pin:before{content:"\f276"}.fa-map-signs:before{content:"\f277"}.fa-map-o:before{content:"\f278"}.fa-map:before{content:"\f279"}.fa-commenting:before{content:"\f27a"}.fa-commenting-o:before{content:"\f27b"}.fa-houzz:before{content:"\f27c"}.fa-vimeo:before{content:"\f27d"}.fa-black-tie:before{content:"\f27e"}.fa-fonticons:before{content:"\f280"}.fa-reddit-alien:before{content:"\f281"}.fa-edge:before{content:"\f282"}.fa-credit-card-alt:before{content:"\f283"}.fa-codiepie:before{content:"\f284"}.fa-modx:before{content:"\f285"}.fa-fort-awesome:before{content:"\f286"}.fa-usb:before{content:"\f287"}.fa-product-hunt:before{content:"\f288"}.fa-mixcloud:before{content:"\f289"}.fa-scribd:before{content:"\f28a"}.fa-pause-circle:before{content:"\f28b"}.fa-pause-circle-o:before{content:"\f28c"}.fa-stop-circle:before{content:"\f28d"}.fa-stop-circle-o:before{content:"\f28e"}.fa-shopping-bag:before{content:"\f290"}.fa-shopping-basket:before{content:"\f291"}.fa-hashtag:before{content:"\f292"}.fa-bluetooth:before{content:"\f293"}.fa-bluetooth-b:before{content:"\f294"}.fa-percent:before{content:"\f295"}.fa-gitlab:before{content:"\f296"}.fa-wpbeginner:before{content:"\f297"}.fa-wpforms:before{content:"\f298"}.fa-envira:before{content:"\f299"}.fa-universal-access:before{content:"\f29a"}.fa-wheelchair-alt:before{content:"\f29b"}.fa-question-circle-o:before{content:"\f29c"}.fa-blind:before{content:"\f29d"}.fa-audio-description:before{content:"\f29e"}.fa-volume-control-phone:before{content:"\f2a0"}.fa-braille:before{content:"\f2a1"}.fa-assistive-listening-systems:before{content:"\f2a2"}.fa-asl-interpreting:before,.fa-american-sign-language-interpreting:before{content:"\f2a3"}.fa-deafness:before,.fa-hard-of-hearing:before,.fa-deaf:before{content:"\f2a4"}.fa-glide:before{content:"\f2a5"}.fa-glide-g:before{content:"\f2a6"}.fa-signing:before,.fa-sign-language:before{content:"\f2a7"}.fa-low-vision:before{content:"\f2a8"}.fa-viadeo:before{content:"\f2a9"}.fa-viadeo-square:before{content:"\f2aa"}.fa-snapchat:before{content:"\f2ab"}.fa-snapchat-ghost:before{content:"\f2ac"}.fa-snapchat-square:before{content:"\f2ad"}.fa-pied-piper:before{content:"\f2ae"}.fa-first-order:before{content:"\f2b0"}.fa-yoast:before{content:"\f2b1"}.fa-themeisle:before{content:"\f2b2"}.fa-google-plus-circle:before,.fa-google-plus-official:before{content:"\f2b3"}.fa-fa:before,.fa-font-awesome:before{content:"\f2b4"}.fa-handshake-o:before{content:"\f2b5"}.fa-envelope-open:before{content:"\f2b6"}.fa-envelope-open-o:before{content:"\f2b7"}.fa-linode:before{content:"\f2b8"}.fa-address-book:before{content:"\f2b9"}.fa-address-book-o:before{content:"\f2ba"}.fa-vcard:before,.fa-address-card:before{content:"\f2bb"}.fa-vcard-o:before,.fa-address-card-o:before{content:"\f2bc"}.fa-user-circle:before{content:"\f2bd"}.fa-user-circle-o:before{content:"\f2be"}.fa-user-o:before{content:"\f2c0"}.fa-id-badge:before{content:"\f2c1"}.fa-drivers-license:before,.fa-id-card:before{content:"\f2c2"}.fa-drivers-license-o:before,.fa-id-card-o:before{content:"\f2c3"}.fa-quora:before{content:"\f2c4"}.fa-free-code-camp:before{content:"\f2c5"}.fa-telegram:before{content:"\f2c6"}.fa-thermometer-4:before,.fa-thermometer:before,.fa-thermometer-full:before{content:"\f2c7"}.fa-thermometer-3:before,.fa-thermometer-three-quarters:before{content:"\f2c8"}.fa-thermometer-2:before,.fa-thermometer-half:before{content:"\f2c9"}.fa-thermometer-1:before,.fa-thermometer-quarter:before{content:"\f2ca"}.fa-thermometer-0:before,.fa-thermometer-empty:before{content:"\f2cb"}.fa-shower:before{content:"\f2cc"}.fa-bathtub:before,.fa-s15:before,.fa-bath:before{content:"\f2cd"}.fa-podcast:before{content:"\f2ce"}.fa-window-maximize:before{content:"\f2d0"}.fa-window-minimize:before{content:"\f2d1"}.fa-window-restore:before{content:"\f2d2"}.fa-times-rectangle:before,.fa-window-close:before{content:"\f2d3"}.fa-times-rectangle-o:before,.fa-window-close-o:before{content:"\f2d4"}.fa-bandcamp:before{content:"\f2d5"}.fa-grav:before{content:"\f2d6"}.fa-etsy:before{content:"\f2d7"}.fa-imdb:before{content:"\f2d8"}.fa-ravelry:before{content:"\f2d9"}.fa-eercast:before{content:"\f2da"}.fa-microchip:before{content:"\f2db"}.fa-snowflake-o:before{content:"\f2dc"}.fa-superpowers:before{content:"\f2dd"}.fa-wpexplorer:before{content:"\f2de"}.fa-meetup:before{content:"\f2e0"}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}
diff --git a/assets/css/google-fonts.css b/assets/css/google-fonts.css
deleted file mode 100644
index 1c2dcc3..0000000
--- a/assets/css/google-fonts.css
+++ /dev/null
@@ -1,9 +0,0 @@
-/* source-code-pro-regular - latin-ext_latin */
-@font-face {
-  font-family: 'Source Code Pro';
-  font-style: normal;
-  font-weight: 400;
-  src: local(''),
-       url('/assets/fonts/source-code-pro-v22-latin-ext_latin-regular.woff2') format('woff2'), /* Chrome 26+, Opera 23+, Firefox 39+ */
-       url('/assets/fonts/source-code-pro-v22-latin-ext_latin-regular.woff') format('woff'); /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */
-}
diff --git a/assets/css/highlight/base16.css b/assets/css/highlight/base16.css
deleted file mode 100644
index 8a39932..0000000
--- a/assets/css/highlight/base16.css
+++ /dev/null
@@ -1,77 +0,0 @@
-.highlight table td { padding: 5px; }
-.highlight table pre { margin: 0; }
-.highlight, .highlight .w {
-  color: #303030;
-}
-.highlight .err {
-  color: #151515;
-  background-color: #ac4142;
-}
-.highlight .c, .highlight .cd, .highlight .cm, .highlight .c1, .highlight .cs {
-  color: #505050;
-}
-.highlight .cp {
-  color: #f4bf75;
-}
-.highlight .nt {
-  color: #f4bf75;
-}
-.highlight .o, .highlight .ow {
-  color: #d0d0d0;
-}
-.highlight .p, .highlight .pi {
-  color: #d0d0d0;
-}
-.highlight .gi {
-  color: #90a959;
-}
-.highlight .gd {
-  color: #ac4142;
-}
-.highlight .gh {
-  color: #6a9fb5;
-  background-color: #151515;
-  font-weight: bold;
-}
-.highlight .k, .highlight .kn, .highlight .kp, .highlight .kr, .highlight .kv {
-  color: #aa759f;
-}
-.highlight .kc {
-  color: #d28445;
-}
-.highlight .kt {
-  color: #d28445;
-}
-.highlight .kd {
-  color: #d28445;
-}
-.highlight .s, .highlight .sb, .highlight .sc, .highlight .sd, .highlight .s2, .highlight .sh, .highlight .sx, .highlight .s1 {
-  color: #90a959;
-}
-.highlight .sr {
-  color: #75b5aa;
-}
-.highlight .si {
-  color: #8f5536;
-}
-.highlight .se {
-  color: #8f5536;
-}
-.highlight .nn {
-  color: #f4bf75;
-}
-.highlight .nc {
-  color: #f4bf75;
-}
-.highlight .no {
-  color: #f4bf75;
-}
-.highlight .na {
-  color: #6a9fb5;
-}
-.highlight .m, .highlight .mf, .highlight .mh, .highlight .mi, .highlight .il, .highlight .mo, .highlight .mb, .highlight .mx {
-  color: #90a959;
-}
-.highlight .ss {
-  color: #90a959;
-}
diff --git a/assets/css/highlight/colorful.css b/assets/css/highlight/colorful.css
deleted file mode 100644
index f14450b..0000000
--- a/assets/css/highlight/colorful.css
+++ /dev/null
@@ -1,170 +0,0 @@
-.highlight table td { padding: 5px; }
-.highlight table pre { margin: 0; }
-.highlight, .highlight .w {
-  color: #bbbbbb;
-  background-color: #000;
-}
-.highlight .c, .highlight .cd, .highlight .cm, .highlight .c1 {
-  color: #888;
-}
-.highlight .cp {
-  color: #579;
-}
-.highlight .cs {
-  color: #cc0000;
-  font-weight: bold;
-}
-.highlight .k, .highlight .kc, .highlight .kd, .highlight .kn, .highlight .kr, .highlight .kv {
-  color: #080;
-  font-weight: bold;
-}
-.highlight .kp {
-  color: #038;
-}
-.highlight .kt {
-  color: #339;
-}
-.highlight .o {
-  color: #333;
-}
-.highlight .ow {
-  color: #000;
-  font-weight: bold;
-}
-.highlight .nb, .highlight .bp {
-  color: #007020;
-}
-.highlight .nf {
-  color: #06B;
-  font-weight: bold;
-}
-.highlight .nc {
-  color: #B06;
-  font-weight: bold;
-}
-.highlight .nn {
-  color: #0e84b5;
-  font-weight: bold;
-}
-.highlight .ne {
-  color: #F00;
-  font-weight: bold;
-}
-.highlight .nv {
-  color: #963;
-}
-.highlight .vi {
-  color: #33B;
-}
-.highlight .vc {
-  color: #369;
-}
-.highlight .vg {
-  color: #d70;
-  font-weight: bold;
-}
-.highlight .no {
-  color: #036;
-  font-weight: bold;
-}
-.highlight .nl {
-  color: #970;
-  font-weight: bold;
-}
-.highlight .ni {
-  color: #800;
-  font-weight: bold;
-}
-.highlight .na {
-  color: #00C;
-}
-.highlight .nt {
-  color: #070;
-}
-.highlight .nd {
-  color: #555;
-  font-weight: bold;
-}
-.highlight .s, .highlight .sb, .highlight .s2, .highlight .sh, .highlight .s1 {
-  background-color: #fff0f0;
-}
-.highlight .sc {
-  color: #04D;
-}
-.highlight .sd {
-  color: #D42;
-}
-.highlight .si {
-  background-color: #eee;
-}
-.highlight .se {
-  color: #666;
-  font-weight: bold;
-}
-.highlight .sr {
-  color: #000;
-  background-color: #fff0ff;
-}
-.highlight .ss {
-  color: #A60;
-}
-.highlight .sx {
-  color: #D20;
-}
-.highlight .m, .highlight .mb, .highlight .mx {
-  color: #60E;
-  font-weight: bold;
-}
-.highlight .mi, .highlight .il {
-  color: #00D;
-  font-weight: bold;
-}
-.highlight .mf {
-  color: #60E;
-  font-weight: bold;
-}
-.highlight .mh {
-  color: #058;
-  font-weight: bold;
-}
-.highlight .mo {
-  color: #40E;
-  font-weight: bold;
-}
-.highlight .gh {
-  color: #000080;
-  font-weight: bold;
-}
-.highlight .gu {
-  color: #800080;
-  font-weight: bold;
-}
-.highlight .gd {
-  color: #A00000;
-}
-.highlight .gi {
-  color: #00A000;
-}
-.highlight .gr {
-  color: #FF0000;
-}
-.highlight .ge {
-  font-style: italic;
-}
-.highlight .gs {
-  font-weight: bold;
-}
-.highlight .gp {
-  color: #c65d09;
-  font-weight: bold;
-}
-.highlight .go {
-  color: #888;
-}
-.highlight .gt {
-  color: #04D;
-}
-.highlight .err {
-  color: #F00;
-  background-color: #FAA;
-}
diff --git a/assets/css/highlight/github.css b/assets/css/highlight/github.css
deleted file mode 100644
index daf76ad..0000000
--- a/assets/css/highlight/github.css
+++ /dev/null
@@ -1,209 +0,0 @@
-.highlight table td { padding: 5px; }
-.highlight table pre { margin: 0; }
-.highlight .cm {
-  color: #999988;
-  font-style: italic;
-}
-.highlight .cp {
-  color: #999999;
-  font-weight: bold;
-}
-.highlight .c1 {
-  color: #999988;
-  font-style: italic;
-}
-.highlight .cs {
-  color: #999999;
-  font-weight: bold;
-  font-style: italic;
-}
-.highlight .c, .highlight .cd {
-  color: #999988;
-  font-style: italic;
-}
-.highlight .err {
-  color: #a61717;
-  background-color: #e3d2d2;
-}
-.highlight .gd {
-  color: #000000;
-  background-color: #ffdddd;
-}
-.highlight .ge {
-  color: #000000;
-  font-style: italic;
-}
-.highlight .gr {
-  color: #aa0000;
-}
-.highlight .gh {
-  color: #999999;
-}
-.highlight .gi {
-  color: #000000;
-  background-color: #ddffdd;
-}
-.highlight .go {
-  color: #888888;
-}
-.highlight .gp {
-  color: #555555;
-}
-.highlight .gs {
-  font-weight: bold;
-}
-.highlight .gu {
-  color: #aaaaaa;
-}
-.highlight .gt {
-  color: #aa0000;
-}
-.highlight .kc {
-  color: #000000;
-  font-weight: bold;
-}
-.highlight .kd {
-  color: #000000;
-  font-weight: bold;
-}
-.highlight .kn {
-  color: #000000;
-  font-weight: bold;
-}
-.highlight .kp {
-  color: #000000;
-  font-weight: bold;
-}
-.highlight .kr {
-  color: #000000;
-  font-weight: bold;
-}
-.highlight .kt {
-  color: #445588;
-  font-weight: bold;
-}
-.highlight .k, .highlight .kv {
-  color: #000000;
-  font-weight: bold;
-}
-.highlight .mf {
-  color: #009999;
-}
-.highlight .mh {
-  color: #009999;
-}
-.highlight .il {
-  color: #009999;
-}
-.highlight .mi {
-  color: #009999;
-}
-.highlight .mo {
-  color: #009999;
-}
-.highlight .m, .highlight .mb, .highlight .mx {
-  color: #009999;
-}
-.highlight .sb {
-  color: #d14;
-}
-.highlight .sc {
-  color: #d14;
-}
-.highlight .sd {
-  color: #d14;
-}
-.highlight .s2 {
-  color: #d14;
-}
-.highlight .se {
-  color: #d14;
-}
-.highlight .sh {
-  color: #d14;
-}
-.highlight .si {
-  color: #d14;
-}
-.highlight .sx {
-  color: #d14;
-}
-.highlight .sr {
-  color: #009926;
-}
-.highlight .s1 {
-  color: #d14;
-}
-.highlight .ss {
-  color: #990073;
-}
-.highlight .s {
-  color: #d14;
-}
-.highlight .na {
-  color: #008080;
-}
-.highlight .bp {
-  color: #999999;
-}
-.highlight .nb {
-  color: #0086B3;
-}
-.highlight .nc {
-  color: #445588;
-  font-weight: bold;
-}
-.highlight .no {
-  color: #008080;
-}
-.highlight .nd {
-  color: #3c5d5d;
-  font-weight: bold;
-}
-.highlight .ni {
-  color: #800080;
-}
-.highlight .ne {
-  color: #990000;
-  font-weight: bold;
-}
-.highlight .nf {
-  color: #990000;
-  font-weight: bold;
-}
-.highlight .nl {
-  color: #990000;
-  font-weight: bold;
-}
-.highlight .nn {
-  color: #555555;
-}
-.highlight .nt {
-  color: #000080;
-}
-.highlight .vc {
-  color: #008080;
-}
-.highlight .vg {
-  color: #008080;
-}
-.highlight .vi {
-  color: #008080;
-}
-.highlight .nv {
-  color: #008080;
-}
-.highlight .ow {
-  color: #000000;
-  font-weight: bold;
-}
-.highlight .o {
-  color: #000000;
-  font-weight: bold;
-}
-.highlight .w {
-  color: #bbbbbb;
-}
-.highlight {
-  background-color: #f8f8f8;
-}
diff --git a/assets/css/highlight/gruvbox.css b/assets/css/highlight/gruvbox.css
deleted file mode 100644
index cb5f589..0000000
--- a/assets/css/highlight/gruvbox.css
+++ /dev/null
@@ -1,84 +0,0 @@
-.highlight table td { padding: 5px; }
-.highlight table pre { margin: 0; }
-.highlight, .highlight .w {
-  color: #fbf1c7;
-  background-color: #282828;
-}
-.highlight .err {
-  color: #fb4934;
-  background-color: #282828;
-  font-weight: bold;
-}
-.highlight .c, .highlight .cd, .highlight .cm, .highlight .c1, .highlight .cs {
-  color: #928374;
-  font-style: italic;
-}
-.highlight .cp {
-  color: #8ec07c;
-}
-.highlight .nt {
-  color: #fb4934;
-}
-.highlight .o, .highlight .ow {
-  color: #fbf1c7;
-}
-.highlight .p, .highlight .pi {
-  color: #fbf1c7;
-}
-.highlight .gi {
-  color: #b8bb26;
-  background-color: #282828;
-}
-.highlight .gd {
-  color: #fb4934;
-  background-color: #282828;
-}
-.highlight .gh {
-  color: #b8bb26;
-  font-weight: bold;
-}
-.highlight .k, .highlight .kn, .highlight .kp, .highlight .kr, .highlight .kv {
-  color: #fb4934;
-}
-.highlight .kc {
-  color: #d3869b;
-}
-.highlight .kt {
-  color: #fabd2f;
-}
-.highlight .kd {
-  color: #fe8019;
-}
-.highlight .s, .highlight .sb, .highlight .sc, .highlight .sd, .highlight .s2, .highlight .sh, .highlight .sx, .highlight .s1 {
-  color: #b8bb26;
-  font-style: italic;
-}
-.highlight .si {
-  color: #b8bb26;
-  font-style: italic;
-}
-.highlight .sr {
-  color: #b8bb26;
-  font-style: italic;
-}
-.highlight .se {
-  color: #fe8019;
-}
-.highlight .nn {
-  color: #8ec07c;
-}
-.highlight .nc {
-  color: #8ec07c;
-}
-.highlight .no {
-  color: #d3869b;
-}
-.highlight .na {
-  color: #b8bb26;
-}
-.highlight .m, .highlight .mf, .highlight .mh, .highlight .mi, .highlight .il, .highlight .mo, .highlight .mb, .highlight .mx {
-  color: #d3869b;
-}
-.highlight .ss {
-  color: #83a598;
-}
diff --git a/assets/css/highlight/molokai.css b/assets/css/highlight/molokai.css
deleted file mode 100644
index 535376b..0000000
--- a/assets/css/highlight/molokai.css
+++ /dev/null
@@ -1,208 +0,0 @@
-.highlight table td { padding: 5px; }
-.highlight table pre { margin: 0; }
-.highlight .c, .highlight .cd {
-  color: #5e5d83;
-  font-style: italic;
-}
-.highlight .cm {
-  color: #5e5d83;
-  font-style: italic;
-}
-.highlight .c1 {
-  color: #5e5d83;
-  font-style: italic;
-}
-.highlight .cp {
-  color: #465457;
-  font-weight: bold;
-}
-.highlight .cs {
-  color: #465457;
-  font-weight: bold;
-  font-style: italic;
-}
-.highlight .err {
-  color: #f8f8f2;
-  background-color: #403d3d;
-}
-.highlight .gi {
-  color: #a6e22e;
-}
-.highlight .gd {
-  color: #f92672;
-}
-.highlight .ge {
-  color: #1b1d1e;
-  font-style: italic;
-}
-.highlight .gr {
-  color: #f92672;
-}
-.highlight .gt {
-  color: #f92672;
-}
-.highlight .gh {
-  color: #403d3d;
-}
-.highlight .go {
-  color: #403d3d;
-}
-.highlight .gp {
-  color: #66d9ef;
-}
-.highlight .gs {
-  font-weight: bold;
-}
-.highlight .gu {
-  color: #465457;
-}
-.highlight .k, .highlight .kv {
-  color: #66d9ef;
-  font-weight: bold;
-}
-.highlight .kc {
-  color: #66d9ef;
-  font-weight: bold;
-}
-.highlight .kd {
-  color: #66d9ef;
-  font-weight: bold;
-}
-.highlight .kp {
-  color: #66d9ef;
-  font-weight: bold;
-}
-.highlight .kr {
-  color: #66d9ef;
-  font-weight: bold;
-}
-.highlight .kt {
-  color: #66d9ef;
-  font-weight: bold;
-}
-.highlight .kn {
-  color: #f92672;
-  font-weight: bold;
-}
-.highlight .ow {
-  color: #f92672;
-  font-weight: bold;
-}
-.highlight .o {
-  color: #f92672;
-  font-weight: bold;
-}
-.highlight .mf {
-  color: #af87ff;
-}
-.highlight .mh {
-  color: #af87ff;
-}
-.highlight .il {
-  color: #af87ff;
-}
-.highlight .mi {
-  color: #af87ff;
-}
-.highlight .mo {
-  color: #af87ff;
-}
-.highlight .m, .highlight .mb, .highlight .mx {
-  color: #af87ff;
-}
-.highlight .se {
-  color: #af87ff;
-}
-.highlight .sb {
-  color: #d7d787;
-}
-.highlight .sc {
-  color: #d7d787;
-}
-.highlight .sd {
-  color: #d7d787;
-}
-.highlight .s2 {
-  color: #d7d787;
-}
-.highlight .sh {
-  color: #d7d787;
-}
-.highlight .si {
-  color: #d7d787;
-}
-.highlight .sx {
-  color: #d7d787;
-}
-.highlight .sr {
-  color: #d7d787;
-}
-.highlight .s1 {
-  color: #d7d787;
-}
-.highlight .ss {
-  color: #d7d787;
-}
-.highlight .s {
-  color: #d7d787;
-}
-.highlight .na {
-  color: #a6e22e;
-}
-.highlight .nc {
-  color: #a6e22e;
-  font-weight: bold;
-}
-.highlight .nd {
-  color: #a6e22e;
-  font-weight: bold;
-}
-.highlight .ne {
-  color: #a6e22e;
-  font-weight: bold;
-}
-.highlight .nf {
-  color: #a6e22e;
-  font-weight: bold;
-}
-.highlight .no {
-  color: #66d9ef;
-}
-.highlight .bp {
-  color: #f8f8f2;
-}
-.highlight .nb {
-  color: #f8f8f2;
-}
-.highlight .ni {
-  color: #f8f8f2;
-}
-.highlight .nn {
-  color: #f8f8f2;
-}
-.highlight .vc {
-  color: #f8f8f2;
-}
-.highlight .vg {
-  color: #f8f8f2;
-}
-.highlight .vi {
-  color: #f8f8f2;
-}
-.highlight .nv {
-  color: #f8f8f2;
-}
-.highlight .w {
-  color: #f8f8f2;
-}
-.highlight .nl {
-  color: #f8f8f2;
-  font-weight: bold;
-}
-.highlight .nt {
-  color: #f92672;
-}
-.highlight {
-  color: #f8f8f2;
-  background-color: #1b1d1e;
-}
diff --git a/assets/css/highlight/monokai.css b/assets/css/highlight/monokai.css
deleted file mode 100644
index 854cfb8..0000000
--- a/assets/css/highlight/monokai.css
+++ /dev/null
@@ -1,210 +0,0 @@
-.highlight table td { padding: 5px; }
-.highlight table pre { margin: 0; }
-.highlight .c, .highlight .cd {
-  color: #75715e;
-  font-style: italic;
-}
-.highlight .cm {
-  color: #75715e;
-  font-style: italic;
-}
-.highlight .c1 {
-  color: #75715e;
-  font-style: italic;
-}
-.highlight .cp {
-  color: #75715e;
-  font-weight: bold;
-}
-.highlight .cs {
-  color: #75715e;
-  font-weight: bold;
-  font-style: italic;
-}
-.highlight .err {
-  color: #960050;
-  background-color: #1e0010;
-}
-.highlight .gi {
-  color: #ffffff;
-  background-color: #324932;
-}
-.highlight .gd {
-  color: #ffffff;
-  background-color: #493131;
-}
-.highlight .ge {
-  color: #000000;
-  font-style: italic;
-}
-.highlight .gr {
-  color: #aa0000;
-}
-.highlight .gt {
-  color: #aa0000;
-}
-.highlight .gh {
-  color: #999999;
-}
-.highlight .go {
-  color: #888888;
-}
-.highlight .gp {
-  color: #555555;
-}
-.highlight .gs {
-  font-weight: bold;
-}
-.highlight .gu {
-  color: #aaaaaa;
-}
-.highlight .k, .highlight .kv {
-  color: #66d9ef;
-  font-weight: bold;
-}
-.highlight .kc {
-  color: #66d9ef;
-  font-weight: bold;
-}
-.highlight .kd {
-  color: #66d9ef;
-  font-weight: bold;
-}
-.highlight .kp {
-  color: #66d9ef;
-  font-weight: bold;
-}
-.highlight .kr {
-  color: #66d9ef;
-  font-weight: bold;
-}
-.highlight .kt {
-  color: #66d9ef;
-  font-weight: bold;
-}
-.highlight .kn {
-  color: #f92672;
-  font-weight: bold;
-}
-.highlight .ow {
-  color: #f92672;
-  font-weight: bold;
-}
-.highlight .o {
-  color: #f92672;
-  font-weight: bold;
-}
-.highlight .mf {
-  color: #ae81ff;
-}
-.highlight .mh {
-  color: #ae81ff;
-}
-.highlight .il {
-  color: #ae81ff;
-}
-.highlight .mi {
-  color: #ae81ff;
-}
-.highlight .mo {
-  color: #ae81ff;
-}
-.highlight .m, .highlight .mb, .highlight .mx {
-  color: #ae81ff;
-}
-.highlight .se {
-  color: #ae81ff;
-}
-.highlight .sb {
-  color: #e6db74;
-}
-.highlight .sc {
-  color: #e6db74;
-}
-.highlight .sd {
-  color: #e6db74;
-}
-.highlight .s2 {
-  color: #e6db74;
-}
-.highlight .sh {
-  color: #e6db74;
-}
-.highlight .si {
-  color: #e6db74;
-}
-.highlight .sx {
-  color: #e6db74;
-}
-.highlight .sr {
-  color: #e6db74;
-}
-.highlight .s1 {
-  color: #e6db74;
-}
-.highlight .ss {
-  color: #e6db74;
-}
-.highlight .s {
-  color: #e6db74;
-}
-.highlight .na {
-  color: #a6e22e;
-}
-.highlight .nc {
-  color: #a6e22e;
-  font-weight: bold;
-}
-.highlight .nd {
-  color: #a6e22e;
-  font-weight: bold;
-}
-.highlight .ne {
-  color: #a6e22e;
-  font-weight: bold;
-}
-.highlight .nf {
-  color: #a6e22e;
-  font-weight: bold;
-}
-.highlight .no {
-  color: #66d9ef;
-}
-.highlight .bp {
-  color: #f8f8f2;
-}
-.highlight .nb {
-  color: #f8f8f2;
-}
-.highlight .ni {
-  color: #f8f8f2;
-}
-.highlight .nn {
-  color: #f8f8f2;
-}
-.highlight .vc {
-  color: #f8f8f2;
-}
-.highlight .vg {
-  color: #f8f8f2;
-}
-.highlight .vi {
-  color: #f8f8f2;
-}
-.highlight .nv {
-  color: #f8f8f2;
-}
-.highlight .w {
-  color: #f8f8f2;
-}
-.highlight .nl {
-  color: #f8f8f2;
-  font-weight: bold;
-}
-.highlight .nt {
-  color: #f92672;
-}
-.highlight {
-  color: #f8f8f2;
-  background-color: #49483e;
-}
diff --git a/assets/css/highlight/pastie.css b/assets/css/highlight/pastie.css
deleted file mode 100644
index 48b57ad..0000000
--- a/assets/css/highlight/pastie.css
+++ /dev/null
@@ -1,146 +0,0 @@
-.highlight table td { padding: 5px; }
-.highlight table pre { margin: 0; }
-.highlight .c, .highlight .cd, .highlight .cm, .highlight .c1 {
-  color: #888888;
-}
-.highlight .cp {
-  color: #cc0000;
-  font-weight: bold;
-}
-.highlight .cs {
-  color: #cc0000;
-  background-color: #fff0f0;
-  font-weight: bold;
-}
-.highlight .err {
-  color: #a61717;
-  background-color: #e3d2d2;
-}
-.highlight .gr {
-  color: #aa0000;
-}
-.highlight .gh {
-  color: #333333;
-}
-.highlight .gu {
-  color: #666666;
-}
-.highlight .gd {
-  color: #000000;
-  background-color: #ffdddd;
-}
-.highlight .gi {
-  color: #000000;
-  background-color: #ddffdd;
-}
-.highlight .ge {
-  font-style: italic;
-}
-.highlight .gs {
-  font-weight: bold;
-}
-.highlight .gl {
-  color: #888888;
-}
-.highlight .go {
-  color: #888888;
-}
-.highlight .gp {
-  color: #555555;
-}
-.highlight .gt {
-  color: #aa0000;
-}
-.highlight .k, .highlight .kc, .highlight .kd, .highlight .kn, .highlight .kr, .highlight .kv {
-  color: #008800;
-  font-weight: bold;
-}
-.highlight .kp {
-  color: #008800;
-}
-.highlight .kt {
-  color: #888888;
-  font-weight: bold;
-}
-.highlight .m, .highlight .mf, .highlight .mh, .highlight .mi, .highlight .il, .highlight .mo, .highlight .mb, .highlight .mx {
-  color: #0000dd;
-  font-weight: bold;
-}
-.highlight .s, .highlight .sb, .highlight .sc, .highlight .sd, .highlight .s2, .highlight .sh, .highlight .s1 {
-  color: #dd2200;
-  background-color: #fff0f0;
-}
-.highlight .se {
-  color: #0044dd;
-  background-color: #fff0f0;
-}
-.highlight .si {
-  color: #3333bb;
-  background-color: #fff0f0;
-}
-.highlight .sx {
-  color: #22bb22;
-  background-color: #f0fff0;
-}
-.highlight .sr {
-  color: #008800;
-}
-.highlight .ss {
-  color: #aa6600;
-  background-color: #fff0f0;
-}
-.highlight .na {
-  color: #336699;
-}
-.highlight .nb, .highlight .bp {
-  color: #003388;
-}
-.highlight .nc {
-  color: #bb0066;
-  font-weight: bold;
-}
-.highlight .no {
-  color: #003366;
-  font-weight: bold;
-}
-.highlight .nd {
-  color: #555555;
-}
-.highlight .ne {
-  color: #bb0066;
-  font-weight: bold;
-}
-.highlight .nf {
-  color: #0066bb;
-  font-weight: bold;
-}
-.highlight .nl {
-  color: #336699;
-}
-.highlight .nn {
-  color: #bb0066;
-  font-weight: bold;
-}
-.highlight .py {
-  color: #336699;
-  font-weight: bold;
-}
-.highlight .nt {
-  color: #bb0066;
-  font-weight: bold;
-}
-.highlight .nv, .highlight .vc {
-  color: #336699;
-}
-.highlight .vg {
-  color: #dd7700;
-}
-.highlight .vi {
-  color: #3333bb;
-}
-.highlight .ow {
-  color: #008800;
-}
-.highlight .w {
-  color: #bbbbbb;
-}
diff --git a/assets/css/highlight/thankful_eyes.css b/assets/css/highlight/thankful_eyes.css
deleted file mode 100644
index bfa0b66..0000000
--- a/assets/css/highlight/thankful_eyes.css
+++ /dev/null
@@ -1,173 +0,0 @@
-.highlight table td { padding: 5px; }
-.highlight table pre { margin: 0; }
-.highlight {
-  color: #faf6e4;
-  background-color: #122b3b;
-}
-.highlight .gl {
-  color: #dee5e7;
-  background-color: #4e5d62;
-}
-.highlight .gp {
-  color: #a8e1fe;
-  font-weight: bold;
-}
-.highlight .c, .highlight .cd, .highlight .cm, .highlight .c1, .highlight .cs {
-  color: #6c8b9f;
-  font-style: italic;
-}
-.highlight .cp {
-  color: #b2fd6d;
-  font-weight: bold;
-  font-style: italic;
-}
-.highlight .err {
-  color: #fefeec;
-  background-color: #cc0000;
-}
-.highlight .gr {
-  color: #cc0000;
-  font-weight: bold;
-  font-style: italic;
-}
-.highlight .k, .highlight .kd, .highlight .kv {
-  color: #f6dd62;
-  font-weight: bold;
-}
-.highlight .o, .highlight .ow {
-  color: #4df4ff;
-  font-weight: bold;
-}
-.highlight .p, .highlight .pi {
-  color: #4df4ff;
-}
-.highlight .gd {
-  color: #cc0000;
-}
-.highlight .gi {
-  color: #b2fd6d;
-}
-.highlight .ge {
-  font-style: italic;
-}
-.highlight .gs {
-  font-weight: bold;
-}
-.highlight .gt {
-  color: #dee5e7;
-  background-color: #4e5d62;
-}
-.highlight .kc {
-  color: #f696db;
-  font-weight: bold;
-}
-.highlight .kn {
-  color: #ffb000;
-  font-weight: bold;
-}
-.highlight .kp {
-  color: #ffb000;
-  font-weight: bold;
-}
-.highlight .kr {
-  color: #ffb000;
-  font-weight: bold;
-}
-.highlight .gh {
-  color: #ffb000;
-  font-weight: bold;
-}
-.highlight .gu {
-  color: #ffb000;
-  font-weight: bold;
-}
-.highlight .kt {
-  color: #b2fd6d;
-  font-weight: bold;
-}
-.highlight .no {
-  color: #b2fd6d;
-  font-weight: bold;
-}
-.highlight .nc {
-  color: #b2fd6d;
-  font-weight: bold;
-}
-.highlight .nd {
-  color: #b2fd6d;
-  font-weight: bold;
-}
-.highlight .nn {
-  color: #b2fd6d;
-  font-weight: bold;
-}
-.highlight .bp {
-  color: #b2fd6d;
-  font-weight: bold;
-}
-.highlight .ne {
-  color: #b2fd6d;
-  font-weight: bold;
-}
-.highlight .nl {
-  color: #ffb000;
-  font-weight: bold;
-}
-.highlight .nt {
-  color: #ffb000;
-  font-weight: bold;
-}
-.highlight .m, .highlight .mf, .highlight .mh, .highlight .mi, .highlight .il, .highlight .mo, .highlight .mb, .highlight .mx {
-  color: #f696db;
-  font-weight: bold;
-}
-.highlight .ld {
-  color: #f696db;
-  font-weight: bold;
-}
-.highlight .ss {
-  color: #f696db;
-  font-weight: bold;
-}
-.highlight .s, .highlight .sb, .highlight .sd, .highlight .s2, .highlight .sh, .highlight .sx, .highlight .sr, .highlight .s1 {
-  color: #fff0a6;
-  font-weight: bold;
-}
-.highlight .se {
-  color: #4df4ff;
-  font-weight: bold;
-}
-.highlight .sc {
-  color: #4df4ff;
-  font-weight: bold;
-}
-.highlight .si {
-  color: #4df4ff;
-  font-weight: bold;
-}
-.highlight .nb {
-  font-weight: bold;
-}
-.highlight .ni {
-  color: #999999;
-  font-weight: bold;
-}
-.highlight .w {
-  color: #BBBBBB;
-}
-.highlight .go {
-  color: #BBBBBB;
-}
-.highlight .nf {
-  color: #a8e1fe;
-}
-.highlight .py {
-  color: #a8e1fe;
-}
-.highlight .na {
-  color: #a8e1fe;
-}
-.highlight .nv, .highlight .vc, .highlight .vg, .highlight .vi {
-  color: #a8e1fe;
-  font-weight: bold;
-}
diff --git a/assets/css/highlight/tulip.css b/assets/css/highlight/tulip.css
deleted file mode 100644
index 4664fac..0000000
--- a/assets/css/highlight/tulip.css
+++ /dev/null
@@ -1,164 +0,0 @@
-.highlight table td { padding: 5px; }
-.highlight table pre { margin: 0; }
-.highlight {
-  color: #FFFFFF;
-  background-color: #231529;
-}
-.highlight .c, .highlight .cd, .highlight .cm, .highlight .c1, .highlight .cs {
-  color: #6D6E70;
-  font-style: italic;
-}
-.highlight .cp {
-  color: #41ff5b;
-  font-weight: bold;
-  font-style: italic;
-}
-.highlight .err {
-  color: #FFFFFF;
-  background-color: #CC0000;
-}
-.highlight .gr {
-  color: #FFFFFF;
-  background-color: #CC0000;
-}
-.highlight .k, .highlight .kd, .highlight .kv {
-  color: #FFF02A;
-  font-weight: bold;
-}
-.highlight .o, .highlight .ow {
-  color: #41ff5b;
-}
-.highlight .p, .highlight .pi {
-  color: #41ff5b;
-}
-.highlight .gd {
-  color: #CC0000;
-}
-.highlight .gi {
-  color: #3FB34F;
-}
-.highlight .ge {
-  font-style: italic;
-}
-.highlight .gs {
-  font-weight: bold;
-}
-.highlight .gt {
-  color: #FFFFFF;
-  background-color: #766DAF;
-}
-.highlight .gl {
-  color: #FFFFFF;
-  background-color: #766DAF;
-}
-.highlight .kc {
-  color: #9f93e6;
-  font-weight: bold;
-}
-.highlight .kn {
-  color: #FFFFFF;
-  font-weight: bold;
-}
-.highlight .kp {
-  color: #FFFFFF;
-  font-weight: bold;
-}
-.highlight .kr {
-  color: #FFFFFF;
-  font-weight: bold;
-}
-.highlight .gh {
-  color: #FFFFFF;
-  font-weight: bold;
-}
-.highlight .gu {
-  color: #FFFFFF;
-  font-weight: bold;
-}
-.highlight .kt {
-  color: #FAAF4C;
-  font-weight: bold;
-}
-.highlight .no {
-  color: #FAAF4C;
-  font-weight: bold;
-}
-.highlight .nc {
-  color: #FAAF4C;
-  font-weight: bold;
-}
-.highlight .nd {
-  color: #FAAF4C;
-  font-weight: bold;
-}
-.highlight .nn {
-  color: #FAAF4C;
-  font-weight: bold;
-}
-.highlight .bp {
-  color: #FAAF4C;
-  font-weight: bold;
-}
-.highlight .ne {
-  color: #FAAF4C;
-  font-weight: bold;
-}
-.highlight .nl {
-  color: #9f93e6;
-  font-weight: bold;
-}
-.highlight .nt {
-  color: #9f93e6;
-  font-weight: bold;
-}
-.highlight .m, .highlight .mf, .highlight .mh, .highlight .mi, .highlight .il, .highlight .mo, .highlight .mb, .highlight .mx {
-  color: #9f93e6;
-  font-weight: bold;
-}
-.highlight .ld {
-  color: #9f93e6;
-  font-weight: bold;
-}
-.highlight .ss {
-  color: #9f93e6;
-  font-weight: bold;
-}
-.highlight .s, .highlight .sb, .highlight .sd, .highlight .s2, .highlight .sh, .highlight .sx, .highlight .sr, .highlight .s1 {
-  color: #fff0a6;
-  font-weight: bold;
-}
-.highlight .se {
-  color: #FAAF4C;
-  font-weight: bold;
-}
-.highlight .sc {
-  color: #FAAF4C;
-  font-weight: bold;
-}
-.highlight .si {
-  color: #FAAF4C;
-  font-weight: bold;
-}
-.highlight .nb {
-  font-weight: bold;
-}
-.highlight .ni {
-  color: #999999;
-  font-weight: bold;
-}
-.highlight .w {
-  color: #BBBBBB;
-}
-.highlight .nf {
-  color: #41ff5b;
-}
-.highlight .py {
-  color: #41ff5b;
-}
-.highlight .na {
-  color: #41ff5b;
-}
-.highlight .nv, .highlight .vc, .highlight .vg, .highlight .vi {
-  color: #41ff5b;
-  font-weight: bold;
-}
diff --git a/assets/css/main-dark.scss b/assets/css/main-dark.scss
deleted file mode 100644
index 9f23223..0000000
--- a/assets/css/main-dark.scss
+++ /dev/null
@@ -1,8 +0,0 @@
----
-# Front matter comment to ensure Jekyll properly reads file.
----
-@charset "UTF-8";
-
-@import "variables-dark";
-@import "bootstrap";
-@import "base";

From d8b759011c1bba8f78174e9faaace49a54b3a650 Mon Sep 17 00:00:00 2001
From: NebulaOnion 
Date: Thu, 12 Jan 2023 19:13:15 +0000
Subject: [PATCH 066/169] Add Trocador widget to README

---
 README.md | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/README.md b/README.md
index 3ba5714..6ba59c5 100644
--- a/README.md
+++ b/README.md
@@ -63,6 +63,10 @@ To donate, you can visit our [donation page](https://anonymousland.org/donate),
 
 _Monero wallet address:_ `47teQv7uWPv9EALRDv9je6ckC83UYJiisHpmhNKHyPPTXinPJNRtvW8PcpEoLxex9ierqWvD89v9mVyGf77uLtS3RnGUk8K`
 
+If you prefer to donate other cryptocurrency than Monero, use this widget:
+
+  
+
 ## License
 
 ![CC0 Logo](https://upload.wikimedia.org/wikipedia/commons/6/69/CC0_button.svg)

From 7d2df264d332e2d680d0057c96450862467dc99f Mon Sep 17 00:00:00 2001
From: NebulaOnion 
Date: Thu, 12 Jan 2023 19:13:49 +0000
Subject: [PATCH 067/169] revert d8b759011c1bba8f78174e9faaace49a54b3a650

revert Add Trocador widget to README
---
 README.md | 4 ----
 1 file changed, 4 deletions(-)

diff --git a/README.md b/README.md
index 6ba59c5..3ba5714 100644
--- a/README.md
+++ b/README.md
@@ -63,10 +63,6 @@ To donate, you can visit our [donation page](https://anonymousland.org/donate),
 
 _Monero wallet address:_ `47teQv7uWPv9EALRDv9je6ckC83UYJiisHpmhNKHyPPTXinPJNRtvW8PcpEoLxex9ierqWvD89v9mVyGf77uLtS3RnGUk8K`
 
-If you prefer to donate other cryptocurrency than Monero, use this widget:
-
-  
-
 ## License
 
 ![CC0 Logo](https://upload.wikimedia.org/wikipedia/commons/6/69/CC0_button.svg)

From c075642bf95cdf41a18c79a1ba11a8502daf00ec Mon Sep 17 00:00:00 2001
From: deathrow 
Date: Sun, 15 Jan 2023 23:46:03 -0500
Subject: [PATCH 068/169] Add Proton Drive

---
 _items/Tools.md | 1 +
 1 file changed, 1 insertion(+)

diff --git a/_items/Tools.md b/_items/Tools.md
index bf1b591..a94ab66 100644
--- a/_items/Tools.md
+++ b/_items/Tools.md
@@ -130,6 +130,7 @@ Sharing files can often times be difficult task.
 These are some applications that can securely share files.
 
 - [OnionShare](https://onionshare.org) 
+- [Proton Drive](https://drive.proton.me)
 - [Syncthing](https://syncthing.net)
 
 
From 4c0d0dadbda9ed8acc6875206040d3e52ed9c3ee Mon Sep 17 00:00:00 2001 From: deathrow Date: Tue, 17 Jan 2023 13:22:49 -0500 Subject: [PATCH 069/169] Added Secure Computing section and started Secure Accessories --- _items/Guide.md | 55 ++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 54 insertions(+), 1 deletion(-) diff --git a/_items/Guide.md b/_items/Guide.md index 9429b18..2d7c8e8 100644 --- a/_items/Guide.md +++ b/_items/Guide.md @@ -1142,6 +1142,9 @@ You can be tracked physically with a wide array of technologies including but no Your DNA is a unique identifier to oneself. You leave behind DNA traces with anything you touch, and it you leave behind DNA without even realizing it. +Bleach will remove DNA and various bodily fluids which contain DNA. +Hydrogen Peroxide will remove blood. +
### Falsifying Information (Plausible Deniability) @@ -1249,6 +1252,56 @@ For additional products that may not be as "realistic" to have with you at all t [Survival Blanket](https://www.amazon.com/dp/B01H6NC8XU) - This blanket blocks infrared signature. +
+ +### Computing Devices + +The device we use which contains our OS should also be using *secure* hardware. +The definition of "secure" can vary for this + +An example of a *secure* device would be GrapheneOS + Google Pixel. +The hardware itself is secure and GrapheneOS utilizes this hardware. + +Using a *secure* operating system such as QubesOS will not make the hardware secure. +Most hardware firmware is proprietary. +Certain vendors such as the following provide an alternative: + +- [Framework](https://frame.work) +- [System76](https://system76.com/) +- [Purism](https://puri.sm/) + + +Do not take these to be "secure by default". +These projects are simply open-source(ish?) and allow for modification. +A common theme here is that these devices often times come with Linux by-default. + +Various Firmware: + +- [Coreboot](https://www.coreboot.org/) +- [Heads](https://github.com/osresearch/heads) +- [Skulls](https://github.com/merge/skulls) + + +
+ +#### Secure Accessories + +Having as much *secure* devices as possible is extremely important. +For example, you should migrate as much as these "services" to external devices as possible. +For instance, have hardware 2FA instead of a software-based application. +The same thing applies to crypto wallets. + +Security Keys: + +- [NitroKey](https://www.nitrokey.com/) + +- [YubiKey](https://www.yubico.com/) + +Crypto Wallets: + +- [Trezor](https://trezor.io/) + +
--- @@ -1260,7 +1313,7 @@ For instance, a [hidden Veracrypt volume](https://veracrypt.fr/en/Plausible%20De An adversary cannot prove that the hidden volume exists, therefore you can deny its existence as it cannot be proven. Plausible deniability is extremely important, and in some cases should be implemented as much as possible. -An *easy* method of implementing plausible deniability is to utilize [Hidden VMs](https://github.com/aforensics/HiddenVM) - — Use any desktop OS without leaving a trace. +An *easy* method of implementing plausible deniability is to utilize [Hidden VMs](https://github.com/aforensics/HiddenVM) — Use any desktop OS without leaving a trace.
From c67ec50a0cb6a79388fff471921429643ebf8534 Mon Sep 17 00:00:00 2001 From: deathrow Date: Tue, 17 Jan 2023 13:23:33 -0500 Subject: [PATCH 070/169] v1.10 --- _changelog/changelog.md | 30 ++++++++++++++++++++++++++++++ index.md | 2 +- 2 files changed, 31 insertions(+), 1 deletion(-) diff --git a/_changelog/changelog.md b/_changelog/changelog.md index e08f478..96432da 100644 --- a/_changelog/changelog.md +++ b/_changelog/changelog.md @@ -6,6 +6,36 @@ permalink: /changelog --- +# v1.10 + +- Updated README + +- Added blog section to ``/index`` + +- Added plausible deniability section on ``/guide`` + +- Added plausible deniability section on ``/tools`` + +- Added tails section on ``/guide`` + +- Updated website security headers + +- Updated Git README + +- Updated XMR address + +- Added Schild onion address + +- Added secure computing section on ``/guide`` + +- Add SEO improvements + +- Update the Matrix ``./well-known`` file to have better support for clients + +- Added Proton Drive to ``/tools`` + +- Updated various aspects with the CSS + # v1.09 - Updated headers on ``/tools`` diff --git a/index.md b/index.md index db684fd..a543a33 100644 --- a/index.md +++ b/index.md @@ -28,7 +28,7 @@ description: A fun happy place.

- +

From a94582310ed91e6a215f05e95fca78ac9de0def3 Mon Sep 17 00:00:00 2001 From: deathrow Date: Tue, 17 Jan 2023 13:26:42 -0500 Subject: [PATCH 071/169] Update README version --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 3ba5714..c8afae2 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# **[Anonymousland](https://anonymousland.org)** v1.09 +# **[Anonymousland](https://anonymousland.org)** v1.10 > Anonymity, Privacy, Security From dcf5cf171aee607fb077b184f60949e9ce6ee2b0 Mon Sep 17 00:00:00 2001 From: deathrow Date: Tue, 17 Jan 2023 17:50:02 -0500 Subject: [PATCH 072/169] Using Kloak on QubesOS guide --- _information/Qubes-OS.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/_information/Qubes-OS.md b/_information/Qubes-OS.md index e1b4b77..d052ac1 100644 --- a/_information/Qubes-OS.md +++ b/_information/Qubes-OS.md @@ -283,6 +283,8 @@ echo "/usr/lib/libhardened_malloc.so/libhardened_malloc.so" | sudo tee /etc/ld.s #### Guides +- [Using Kloak](https://forum.qubes-os.org/t/tutorial-how-to-use-kloak-with-usb-keyboards/14134) + - [Advanced Browser Fingerprinting](https://forum.qubes-os.org/t/advanced-browser-fingerprinting/12379) - [Monero Wallet Isolation](https://forum.qubes-os.org/t/monero-wallet-daemon-isolation-with-qubes-whonix/1121) From 21483e6d834c86113606cd49ce7663e77d51a5bc Mon Sep 17 00:00:00 2001 From: deathrow Date: Tue, 17 Jan 2023 17:52:28 -0500 Subject: [PATCH 073/169] Proxying wget on Qubes --- _information/Qubes-OS.md | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/_information/Qubes-OS.md b/_information/Qubes-OS.md index d052ac1..fa5314c 100644 --- a/_information/Qubes-OS.md +++ b/_information/Qubes-OS.md @@ -65,6 +65,18 @@ Website: [https://qubes-os.org](https://qubes-os.org)
',trigger:"hover focus",title:"",delay:0,html:!1,container:!1,viewport:{selector:"body",padding:0}},c.prototype.init=function(b,c,d){if(this.enabled=!0,this.type=b,this.$element=a(c),this.options=this.getOptions(d),this.$viewport=this.options.viewport&&a(a.isFunction(this.options.viewport)?this.options.viewport.call(this,this.$element):this.options.viewport.selector||this.options.viewport),this.inState={click:!1,hover:!1,focus:!1},this.$element[0]instanceof document.constructor&&!this.options.selector)throw new Error("`selector` option must be specified when initializing "+this.type+" on the window.document object!");for(var e=this.options.trigger.split(" "),f=e.length;f--;){var g=e[f];if("click"==g)this.$element.on("click."+this.type,this.options.selector,a.proxy(this.toggle,this));else if("manual"!=g){var h="hover"==g?"mouseenter":"focusin",i="hover"==g?"mouseleave":"focusout";this.$element.on(h+"."+this.type,this.options.selector,a.proxy(this.enter,this)),this.$element.on(i+"."+this.type,this.options.selector,a.proxy(this.leave,this))}}this.options.selector?this._options=a.extend({},this.options,{trigger:"manual",selector:""}):this.fixTitle()},c.prototype.getDefaults=function(){return c.DEFAULTS},c.prototype.getOptions=function(b){return b=a.extend({},this.getDefaults(),this.$element.data(),b),b.delay&&"number"==typeof b.delay&&(b.delay={show:b.delay,hide:b.delay}),b},c.prototype.getDelegateOptions=function(){var b={},c=this.getDefaults();return this._options&&a.each(this._options,function(a,d){c[a]!=d&&(b[a]=d)}),b},c.prototype.enter=function(b){var c=b instanceof this.constructor?b:a(b.currentTarget).data("bs."+this.type);return c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c)),b instanceof a.Event&&(c.inState["focusin"==b.type?"focus":"hover"]=!0),c.tip().hasClass("in")||"in"==c.hoverState?void(c.hoverState="in"):(clearTimeout(c.timeout),c.hoverState="in",c.options.delay&&c.options.delay.show?void(c.timeout=setTimeout(function(){"in"==c.hoverState&&c.show()},c.options.delay.show)):c.show())},c.prototype.isInStateTrue=function(){for(var a in this.inState)if(this.inState[a])return!0;return!1},c.prototype.leave=function(b){var c=b instanceof this.constructor?b:a(b.currentTarget).data("bs."+this.type);if(c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c)),b instanceof a.Event&&(c.inState["focusout"==b.type?"focus":"hover"]=!1),!c.isInStateTrue())return clearTimeout(c.timeout),c.hoverState="out",c.options.delay&&c.options.delay.hide?void(c.timeout=setTimeout(function(){"out"==c.hoverState&&c.hide()},c.options.delay.hide)):c.hide()},c.prototype.show=function(){var b=a.Event("show.bs."+this.type);if(this.hasContent()&&this.enabled){this.$element.trigger(b);var d=a.contains(this.$element[0].ownerDocument.documentElement,this.$element[0]);if(b.isDefaultPrevented()||!d)return;var e=this,f=this.tip(),g=this.getUID(this.type);this.setContent(),f.attr("id",g),this.$element.attr("aria-describedby",g),this.options.animation&&f.addClass("fade");var h="function"==typeof this.options.placement?this.options.placement.call(this,f[0],this.$element[0]):this.options.placement,i=/\s?auto?\s?/i,j=i.test(h);j&&(h=h.replace(i,"")||"top"),f.detach().css({top:0,left:0,display:"block"}).addClass(h).data("bs."+this.type,this),this.options.container?f.appendTo(this.options.container):f.insertAfter(this.$element),this.$element.trigger("inserted.bs."+this.type);var k=this.getPosition(),l=f[0].offsetWidth,m=f[0].offsetHeight;if(j){var n=h,o=this.getPosition(this.$viewport);h="bottom"==h&&k.bottom+m>o.bottom?"top":"top"==h&&k.top-mo.width?"left":"left"==h&&k.left-lg.top+g.height&&(e.top=g.top+g.height-i)}else{var j=b.left-f,k=b.left+f+c;jg.right&&(e.left=g.left+g.width-k)}return e},c.prototype.getTitle=function(){var a,b=this.$element,c=this.options;return a=b.attr("data-original-title")||("function"==typeof c.title?c.title.call(b[0]):c.title)},c.prototype.getUID=function(a){do a+=~~(1e6*Math.random());while(document.getElementById(a));return a},c.prototype.tip=function(){if(!this.$tip&&(this.$tip=a(this.options.template),1!=this.$tip.length))throw new Error(this.type+" `template` option must consist of exactly 1 top-level element!");return this.$tip},c.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".tooltip-arrow")},c.prototype.enable=function(){this.enabled=!0},c.prototype.disable=function(){this.enabled=!1},c.prototype.toggleEnabled=function(){this.enabled=!this.enabled},c.prototype.toggle=function(b){var c=this;b&&(c=a(b.currentTarget).data("bs."+this.type),c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c))),b?(c.inState.click=!c.inState.click,c.isInStateTrue()?c.enter(c):c.leave(c)):c.tip().hasClass("in")?c.leave(c):c.enter(c)},c.prototype.destroy=function(){var a=this;clearTimeout(this.timeout),this.hide(function(){a.$element.off("."+a.type).removeData("bs."+a.type),a.$tip&&a.$tip.detach(),a.$tip=null,a.$arrow=null,a.$viewport=null,a.$element=null})};var d=a.fn.tooltip;a.fn.tooltip=b,a.fn.tooltip.Constructor=c,a.fn.tooltip.noConflict=function(){return a.fn.tooltip=d,this}}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.popover"),f="object"==typeof b&&b;!e&&/destroy|hide/.test(b)||(e||d.data("bs.popover",e=new c(this,f)),"string"==typeof b&&e[b]())})}var c=function(a,b){this.init("popover",a,b)};if(!a.fn.tooltip)throw new Error("Popover requires tooltip.js");c.VERSION="3.3.7",c.DEFAULTS=a.extend({},a.fn.tooltip.Constructor.DEFAULTS,{placement:"right",trigger:"click",content:"",template:''}),c.prototype=a.extend({},a.fn.tooltip.Constructor.prototype),c.prototype.constructor=c,c.prototype.getDefaults=function(){return c.DEFAULTS},c.prototype.setContent=function(){var a=this.tip(),b=this.getTitle(),c=this.getContent();a.find(".popover-title")[this.options.html?"html":"text"](b),a.find(".popover-content").children().detach().end()[this.options.html?"string"==typeof c?"html":"append":"text"](c),a.removeClass("fade top bottom left right in"),a.find(".popover-title").html()||a.find(".popover-title").hide()},c.prototype.hasContent=function(){return this.getTitle()||this.getContent()},c.prototype.getContent=function(){var a=this.$element,b=this.options;return a.attr("data-content")||("function"==typeof b.content?b.content.call(a[0]):b.content)},c.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".arrow")};var d=a.fn.popover;a.fn.popover=b,a.fn.popover.Constructor=c,a.fn.popover.noConflict=function(){return a.fn.popover=d,this}}(jQuery),+function(a){"use strict";function b(c,d){this.$body=a(document.body),this.$scrollElement=a(a(c).is(document.body)?window:c),this.options=a.extend({},b.DEFAULTS,d),this.selector=(this.options.target||"")+" .nav li > a",this.offsets=[],this.targets=[],this.activeTarget=null,this.scrollHeight=0,this.$scrollElement.on("scroll.bs.scrollspy",a.proxy(this.process,this)),this.refresh(),this.process()}function c(c){return this.each(function(){var d=a(this),e=d.data("bs.scrollspy"),f="object"==typeof c&&c;e||d.data("bs.scrollspy",e=new b(this,f)),"string"==typeof c&&e[c]()})}b.VERSION="3.3.7",b.DEFAULTS={offset:10},b.prototype.getScrollHeight=function(){return this.$scrollElement[0].scrollHeight||Math.max(this.$body[0].scrollHeight,document.documentElement.scrollHeight)},b.prototype.refresh=function(){var b=this,c="offset",d=0;this.offsets=[],this.targets=[],this.scrollHeight=this.getScrollHeight(),a.isWindow(this.$scrollElement[0])||(c="position",d=this.$scrollElement.scrollTop()),this.$body.find(this.selector).map(function(){var b=a(this),e=b.data("target")||b.attr("href"),f=/^#./.test(e)&&a(e);return f&&f.length&&f.is(":visible")&&[[f[c]().top+d,e]]||null}).sort(function(a,b){return a[0]-b[0]}).each(function(){b.offsets.push(this[0]),b.targets.push(this[1])})},b.prototype.process=function(){var a,b=this.$scrollElement.scrollTop()+this.options.offset,c=this.getScrollHeight(),d=this.options.offset+c-this.$scrollElement.height(),e=this.offsets,f=this.targets,g=this.activeTarget;if(this.scrollHeight!=c&&this.refresh(),b>=d)return g!=(a=f[f.length-1])&&this.activate(a);if(g&&b=e[a]&&(void 0===e[a+1]||b .dropdown-menu > .active").removeClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded",!1),b.addClass("active").find('[data-toggle="tab"]').attr("aria-expanded",!0),h?(b[0].offsetWidth,b.addClass("in")):b.removeClass("fade"),b.parent(".dropdown-menu").length&&b.closest("li.dropdown").addClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded",!0),e&&e()}var g=d.find("> .active"),h=e&&a.support.transition&&(g.length&&g.hasClass("fade")||!!d.find("> .fade").length);g.length&&h?g.one("bsTransitionEnd",f).emulateTransitionEnd(c.TRANSITION_DURATION):f(),g.removeClass("in")};var d=a.fn.tab;a.fn.tab=b,a.fn.tab.Constructor=c,a.fn.tab.noConflict=function(){return a.fn.tab=d,this};var e=function(c){c.preventDefault(),b.call(a(this),"show")};a(document).on("click.bs.tab.data-api",'[data-toggle="tab"]',e).on("click.bs.tab.data-api",'[data-toggle="pill"]',e)}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.affix"),f="object"==typeof b&&b;e||d.data("bs.affix",e=new c(this,f)),"string"==typeof b&&e[b]()})}var c=function(b,d){this.options=a.extend({},c.DEFAULTS,d),this.$target=a(this.options.target).on("scroll.bs.affix.data-api",a.proxy(this.checkPosition,this)).on("click.bs.affix.data-api",a.proxy(this.checkPositionWithEventLoop,this)),this.$element=a(b),this.affixed=null,this.unpin=null,this.pinnedOffset=null,this.checkPosition()};c.VERSION="3.3.7",c.RESET="affix affix-top affix-bottom",c.DEFAULTS={offset:0,target:window},c.prototype.getState=function(a,b,c,d){var e=this.$target.scrollTop(),f=this.$element.offset(),g=this.$target.height();if(null!=c&&"top"==this.affixed)return e=a-d&&"bottom"},c.prototype.getPinnedOffset=function(){if(this.pinnedOffset)return this.pinnedOffset;this.$element.removeClass(c.RESET).addClass("affix");var a=this.$target.scrollTop(),b=this.$element.offset();return this.pinnedOffset=b.top-a},c.prototype.checkPositionWithEventLoop=function(){setTimeout(a.proxy(this.checkPosition,this),1)},c.prototype.checkPosition=function(){if(this.$element.is(":visible")){var b=this.$element.height(),d=this.options.offset,e=d.top,f=d.bottom,g=Math.max(a(document).height(),a(document.body).height());"object"!=typeof d&&(f=e=d),"function"==typeof e&&(e=d.top(this.$element)),"function"==typeof f&&(f=d.bottom(this.$element));var h=this.getState(g,b,e,f);if(this.affixed!=h){null!=this.unpin&&this.$element.css("top","");var i="affix"+(h?"-"+h:""),j=a.Event(i+".bs.affix");if(this.$element.trigger(j),j.isDefaultPrevented())return;this.affixed=h,this.unpin="bottom"==h?this.getPinnedOffset():null,this.$element.removeClass(c.RESET).addClass(i).trigger(i.replace("affix","affixed")+".bs.affix")}"bottom"==h&&this.$element.offset({top:g-b-f})}};var d=a.fn.affix;a.fn.affix=b,a.fn.affix.Constructor=c,a.fn.affix.noConflict=function(){return a.fn.affix=d,this},a(window).on("load",function(){a('[data-spy="affix"]').each(function(){var c=a(this),d=c.data();d.offset=d.offset||{},null!=d.offsetBottom&&(d.offset.bottom=d.offsetBottom),null!=d.offsetTop&&(d.offset.top=d.offsetTop),b.call(c,d)})})}(jQuery); \ No newline at end of file +if ("undefined" == typeof jQuery) + throw new Error("Bootstrap's JavaScript requires jQuery"); + ++ function (a) { + "use strict"; + var b = a + .fn + .jquery + .split(" ")[0] + .split("."); + if (b[0] < 2 && b[1] < 9 || 1 == b[0] && 9 == b[1] && b[2] < 1 || b[0] > 3) + throw new Error("Bootstrap's JavaScript requires jQuery version 1.9.1 or higher, but lower than v" + + "ersion 4") + }(jQuery), + function (a) { + "use strict"; + function b() { + var a = document.createElement("bootstrap"), + b = { + WebkitTransition: "webkitTransitionEnd", + MozTransition: "transitionend", + OTransition: "oTransitionEnd otransitionend", + transition: "transitionend" + }; + for (var c in b) + if (void 0 !== a.style[c]) + return {end: b[c]}; + return !1 + } + a.fn.emulateTransitionEnd = function (b) { + var c = !1, + d = this; + a(this).one("bsTransitionEnd", function () { + c = !0 + }); + var e = function () { + c || a(d).trigger(a.support.transition.end) + }; + return setTimeout(e, b), + this + }, + a(function () { + a.support.transition = b(), + a.support.transition && (a.event.special.bsTransitionEnd = { + bindType: a.support.transition.end, + delegateType: a.support.transition.end, + handle: function (b) { + if (a(b.target).is(this)) + return b.handleObj.handler.apply(this, arguments) + } + }) + }) +}(jQuery), + function (a) { + "use strict"; + function b(b) { + return this.each(function () { + var c = a(this), + e = c.data("bs.alert"); + e || c.data("bs.alert", e = new d(this)), + "string" == typeof b && e[b].call(c) + }) + } + var c = '[data-dismiss="alert"]', + d = function (b) { + a(b).on("click", c, this.close) + }; + d.VERSION = "3.3.7", + d.TRANSITION_DURATION = 150, + d.prototype.close = function (b) { + function c() { + g + .detach() + .trigger("closed.bs.alert") + .remove() + } + var e = a(this), + f = e.attr("data-target"); + f || (f = e.attr("href"), f = f && f.replace(/.*(?=#[^\s]*$)/, "")); + var g = a("#" === f + ? [] + : f); + b && b.preventDefault(), + g.length || (g = e.closest(".alert")), + g.trigger(b = a.Event("close.bs.alert")), + b.isDefaultPrevented() || (g.removeClass("in"), a.support.transition && g.hasClass("fade") + ? g.one("bsTransitionEnd", c).emulateTransitionEnd(d.TRANSITION_DURATION) + : c()) + }; + var e = a.fn.alert; + a.fn.alert = b, + a.fn.alert.Constructor = d, + a.fn.alert.noConflict = function () { + return a.fn.alert = e, + this + }, + a(document).on("click.bs.alert.data-api", c, d.prototype.close) +}(jQuery), + function (a) { + "use strict"; + function b(b) { + return this.each(function () { + var d = a(this), + e = d.data("bs.button"), + f = "object" == typeof b && b; + e || d.data("bs.button", e = new c(this, f)), + "toggle" == b + ? e.toggle() + : b && e.setState(b) + }) + } + var c = function (b, d) { + this.$element = a(b), + this.options = a.extend({}, c.DEFAULTS, d), + this.isLoading = !1 + }; + c.VERSION = "3.3.7", + c.DEFAULTS = { + loadingText: "loading..." + }, + c.prototype.setState = function (b) { + var c = "disabled", + d = this.$element, + e = d.is("input") + ? "val" + : "html", + f = d.data(); + b += "Text", + null == f.resetText && d.data("resetText", d[e]()), + setTimeout(a.proxy(function () { + d[e](null == f[b] + ? this.options[b] + : f[b]), + "loadingText" == b + ? (this.isLoading = !0, d.addClass(c).attr(c, c).prop(c, !0)) + : this.isLoading && (this.isLoading = !1, d.removeClass(c).removeAttr(c).prop(c, !1)) + }, this), 0) + }, + c.prototype.toggle = function () { + var a = !0, + b = this + .$element + .closest('[data-toggle="buttons"]'); + if (b.length) { + var c = this + .$element + .find("input"); + "radio" == c.prop("type") + ? (c.prop("checked") && (a = !1), b.find(".active").removeClass("active"), this.$element.addClass("active")) + : "checkbox" == c.prop("type") && (c.prop("checked") !== this.$element.hasClass("active") && (a = !1), this.$element.toggleClass("active")), + c.prop("checked", this.$element.hasClass("active")), + a && c.trigger("change") + } else + this + .$element + .attr("aria-pressed", !this.$element.hasClass("active")), + this + .$element + .toggleClass("active") + }; + var d = a.fn.button; + a.fn.button = b, + a.fn.button.Constructor = c, + a.fn.button.noConflict = function () { + return a.fn.button = d, + this + }, + a(document).on("click.bs.button.data-api", '[data-toggle^="button"]', function (c) { + var d = a(c.target).closest(".btn"); + b.call(d, "toggle"), + a(c.target).is('input[type="radio"], input[type="checkbox"]') || (c.preventDefault(), d.is("input,button") + ? d.trigger("focus") + : d.find("input:visible,button:visible").first().trigger("focus")) + }) + .on("focus.bs.button.data-api blur.bs.button.data-api", '[data-toggle^="button"]', function (b) { + a(b.target) + .closest(".btn") + .toggleClass("focus", /^focus(in)?$/.test(b.type)) + }) +}(jQuery), + function (a) { + "use strict"; + function b(b) { + return this.each(function () { + var d = a(this), + e = d.data("bs.carousel"), + f = a.extend({}, c.DEFAULTS, d.data(), "object" == typeof b && b), + g = "string" == typeof b + ? b + : f.slide; + e || d.data("bs.carousel", e = new c(this, f)), + "number" == typeof b + ? e.to(b) + : g + ? e[g]() + : f.interval && e + .pause() + .cycle() + }) + } + var c = function (b, c) { + this.$element = a(b), + this.$indicators = this + .$element + .find(".carousel-indicators"), + this.options = c, + this.paused = null, + this.sliding = null, + this.interval = null, + this.$active = null, + this.$items = null, + this.options.keyboard && this + .$element + .on("keydown.bs.carousel", a.proxy(this.keydown, this)), + "hover" == this.options.pause && !("ontouchstart" in document.documentElement) && this + .$element + .on("mouseenter.bs.carousel", a.proxy(this.pause, this)) + .on("mouseleave.bs.carousel", a.proxy(this.cycle, this)) + }; + c.VERSION = "3.3.7", + c.TRANSITION_DURATION = 600, + c.DEFAULTS = { + interval: 5e3, + pause: "hover", + wrap: !0, + keyboard: !0 + }, + c.prototype.keydown = function (a) { + if (!/input|textarea/i.test(a.target.tagName)) { + switch (a.which) { + case 37: + this.prev(); + break; + case 39: + this.next(); + break; + default: + return + } + a.preventDefault() + } + }, + c.prototype.cycle = function (b) { + return b || (this.paused = !1), + this.interval && clearInterval(this.interval), + this.options.interval && !this.paused && (this.interval = setInterval(a.proxy(this.next, this), this.options.interval)), + this + }, + c.prototype.getItemIndex = function (a) { + return this.$items = a + .parent() + .children(".item"), + this + .$items + .index(a || this.$active) + }, + c.prototype.getItemForDirection = function (a, b) { + var c = this.getItemIndex(b), + d = "prev" == a && 0 === c || "next" == a && c == this.$items.length - 1; + if (d && !this.options.wrap) + return b; + var e = "prev" == a + ? -1 + : 1, + f = (c + e) % this.$items.length; + return this + .$items + .eq(f) + }, + c.prototype.to = function (a) { + var b = this, + c = this.getItemIndex(this.$active = this.$element.find(".item.active")); + if (!(a > this.$items.length - 1 || a < 0)) + return this.sliding + ? this.$element.one("slid.bs.carousel", function () { + b.to(a) + }) + : c == a + ? this.pause().cycle() + : this.slide(a > c + ? "next" + : "prev", this.$items.eq(a)) + }, + c.prototype.pause = function (b) { + return b || (this.paused = !0), + this + .$element + .find(".next, .prev") + .length && a.support.transition && (this.$element.trigger(a.support.transition.end), this.cycle(!0)), + this.interval = clearInterval(this.interval), + this + }, + c.prototype.next = function () { + if (!this.sliding) + return this.slide("next") + }, + c.prototype.prev = function () { + if (!this.sliding) + return this.slide("prev") + }, + c.prototype.slide = function (b, d) { + var e = this + .$element + .find(".item.active"), + f = d || this.getItemForDirection(b, e), + g = this.interval, + h = "next" == b + ? "left" + : "right", + i = this; + if (f.hasClass("active")) + return this.sliding = !1; + var j = f[0], + k = a.Event("slide.bs.carousel", { + relatedTarget: j, + direction: h + }); + if (this.$element.trigger(k), !k.isDefaultPrevented()) { + if (this.sliding = !0, g && this.pause(), this.$indicators.length) { + this + .$indicators + .find(".active") + .removeClass("active"); + var l = a(this.$indicators.children()[this.getItemIndex(f)]); + l && l.addClass("active") + } + var m = a.Event("slid.bs.carousel", { + relatedTarget: j, + direction: h + }); + return a.support.transition && this + .$element + .hasClass("slide") + ? (f.addClass(b), f[0].offsetWidth, e.addClass(h), f.addClass(h), e.one("bsTransitionEnd", function () { + f + .removeClass([b, h].join(" ")) + .addClass("active"), + e.removeClass(["active", h].join(" ")), + i.sliding = !1, + setTimeout(function () { + i + .$element + .trigger(m) + }, 0) + }).emulateTransitionEnd(c.TRANSITION_DURATION)) + : (e.removeClass("active"), f.addClass("active"), this.sliding = !1, this.$element.trigger(m)), + g && this.cycle(), + this + } + }; + var d = a.fn.carousel; + a.fn.carousel = b, + a.fn.carousel.Constructor = c, + a.fn.carousel.noConflict = function () { + return a.fn.carousel = d, + this + }; + var e = function (c) { + var d, + e = a(this), + f = a(e.attr("data-target") || (d = e.attr("href")) && d.replace(/.*(?=#[^\s]+$)/, "")); + if (f.hasClass("carousel")) { + var g = a.extend({}, f.data(), e.data()), + h = e.attr("data-slide-to"); + h && (g.interval = !1), + b.call(f, g), + h && f + .data("bs.carousel") + .to(h), + c.preventDefault() + } + }; + a(document) + .on("click.bs.carousel.data-api", "[data-slide]", e) + .on("click.bs.carousel.data-api", "[data-slide-to]", e), + a(window).on("load", function () { + a('[data-ride="carousel"]') + .each(function () { + var c = a(this); + b.call(c, c.data()) + }) + }) +}(jQuery), + function (a) { + "use strict"; + function b(b) { + var c, + d = b.attr("data-target") || (c = b.attr("href")) && c.replace(/.*(?=#[^\s]+$)/, ""); + return a(d) + } + function c(b) { + return this.each(function () { + var c = a(this), + e = c.data("bs.collapse"), + f = a.extend({}, d.DEFAULTS, c.data(), "object" == typeof b && b); + !e && f.toggle && /show|hide/.test(b) && (f.toggle = !1), + e || c.data("bs.collapse", e = new d(this, f)), + "string" == typeof b && e[b]() + }) + } + var d = function (b, c) { + this.$element = a(b), + this.options = a.extend({}, d.DEFAULTS, c), + this.$trigger = a('[data-toggle="collapse"][href="#' + b.id + '"],[data-toggle="collapse"][data-target="#' + b.id + '"]'), + this.transitioning = null, + this.options.parent + ? this.$parent = this.getParent() + : this.addAriaAndCollapsedClass(this.$element, this.$trigger), + this.options.toggle && this.toggle() + }; + d.VERSION = "3.3.7", + d.TRANSITION_DURATION = 350, + d.DEFAULTS = { + toggle: !0 + }, + d.prototype.dimension = function () { + var a = this + .$element + .hasClass("width"); + return a + ? "width" + : "height" + }, + d.prototype.show = function () { + if (!this.transitioning && !this.$element.hasClass("in")) { + var b, + e = this.$parent && this + .$parent + .children(".panel") + .children(".in, .collapsing"); + if (!(e && e.length && (b = e.data("bs.collapse"), b && b.transitioning))) { + var f = a.Event("show.bs.collapse"); + if (this.$element.trigger(f), !f.isDefaultPrevented()) { + e && e.length && (c.call(e, "hide"), b || e.data("bs.collapse", null)); + var g = this.dimension(); + this + .$element + .removeClass("collapse") + .addClass("collapsing")[g](0) + .attr("aria-expanded", !0), + this + .$trigger + .removeClass("collapsed") + .attr("aria-expanded", !0), + this.transitioning = 1; + var h = function () { + this + .$element + .removeClass("collapsing") + .addClass("collapse in")[g](""), + this.transitioning = 0, + this + .$element + .trigger("shown.bs.collapse") + }; + if (!a.support.transition) + return h.call(this); + var i = a.camelCase(["scroll", g].join("-")); + this + .$element + .one("bsTransitionEnd", a.proxy(h, this)) + .emulateTransitionEnd(d.TRANSITION_DURATION)[g](this.$element[0][i]) + } + } + } + }, + d.prototype.hide = function () { + if (!this.transitioning && this.$element.hasClass("in")) { + var b = a.Event("hide.bs.collapse"); + if (this.$element.trigger(b), !b.isDefaultPrevented()) { + var c = this.dimension(); + this.$element[c](this.$element[c]())[0].offsetHeight, + this + .$element + .addClass("collapsing") + .removeClass("collapse in") + .attr("aria-expanded", !1), + this + .$trigger + .addClass("collapsed") + .attr("aria-expanded", !1), + this.transitioning = 1; + var e = function () { + this.transitioning = 0, + this + .$element + .removeClass("collapsing") + .addClass("collapse") + .trigger("hidden.bs.collapse") + }; + return a.support.transition + ? void this + .$element[c](0) + .one("bsTransitionEnd", a.proxy(e, this)) + .emulateTransitionEnd(d.TRANSITION_DURATION) + : e.call(this) + } + } + }, + d.prototype.toggle = function () { + this[this + .$element + .hasClass("in") + ? "hide" + : "show"]() + }, + d.prototype.getParent = function () { + return a(this.options.parent) + .find('[data-toggle="collapse"][data-parent="' + this.options.parent + '"]') + .each(a.proxy(function (c, d) { + var e = a(d); + this.addAriaAndCollapsedClass(b(e), e) + }, this)) + .end() + }, + d.prototype.addAriaAndCollapsedClass = function (a, b) { + var c = a.hasClass("in"); + a.attr("aria-expanded", c), + b + .toggleClass("collapsed", !c) + .attr("aria-expanded", c) + }; + var e = a.fn.collapse; + a.fn.collapse = c, + a.fn.collapse.Constructor = d, + a.fn.collapse.noConflict = function () { + return a.fn.collapse = e, + this + }, + a(document).on("click.bs.collapse.data-api", '[data-toggle="collapse"]', function (d) { + var e = a(this); + e.attr("data-target") || d.preventDefault(); + var f = b(e), + g = f.data("bs.collapse"), + h = g + ? "toggle" + : e.data(); + c.call(f, h) + }) +}(jQuery), + function (a) { + "use strict"; + function b(b) { + var c = b.attr("data-target"); + c || (c = b.attr("href"), c = c && /#[A-Za-z]/.test(c) && c.replace(/.*(?=#[^\s]*$)/, "")); + var d = c && a(c); + return d && d.length + ? d + : b.parent() + } + function c(c) { + c && 3 === c.which || (a(e).remove(), a(f).each(function () { + var d = a(this), + e = b(d), + f = { + relatedTarget: this + }; + e.hasClass("open") && (c && "click" == c.type && /input|textarea/i.test(c.target.tagName) && a.contains(e[0], c.target) || (e.trigger(c = a.Event("hide.bs.dropdown", f)), c.isDefaultPrevented() || (d.attr("aria-expanded", "false"), e.removeClass("open").trigger(a.Event("hidden.bs.dropdown", f))))) + })) + } + function d(b) { + return this.each(function () { + var c = a(this), + d = c.data("bs.dropdown"); + d || c.data("bs.dropdown", d = new g(this)), + "string" == typeof b && d[b].call(c) + }) + } + var e = ".dropdown-backdrop", + f = '[data-toggle="dropdown"]', + g = function (b) { + a(b).on("click.bs.dropdown", this.toggle) + }; + g.VERSION = "3.3.7", + g.prototype.toggle = function (d) { + var e = a(this); + if (!e.is(".disabled, :disabled")) { + var f = b(e), + g = f.hasClass("open"); + if (c(), !g) { + "ontouchstart" in document.documentElement && !f + .closest(".navbar-nav") + .length && a(document.createElement("div")) + .addClass("dropdown-backdrop") + .insertAfter(a(this)) + .on("click", c); + var h = { + relatedTarget: this + }; + if (f.trigger(d = a.Event("show.bs.dropdown", h)), d.isDefaultPrevented()) + return; + e + .trigger("focus") + .attr("aria-expanded", "true"), + f + .toggleClass("open") + .trigger(a.Event("shown.bs.dropdown", h)) + } + return !1 + } + }, + g.prototype.keydown = function (c) { + if (/(38|40|27|32)/.test(c.which) && !/input|textarea/i.test(c.target.tagName)) { + var d = a(this); + if (c.preventDefault(), c.stopPropagation(), !d.is(".disabled, :disabled")) { + var e = b(d), + g = e.hasClass("open"); + if (!g && 27 != c.which || g && 27 == c.which) + return 27 == c.which && e.find(f).trigger("focus"), + d.trigger("click"); + var h = " li:not(.disabled):visible a", + i = e.find(".dropdown-menu" + h); + if (i.length) { + var j = i.index(c.target); + 38 == c.which && j > 0 && j--, + 40 == c.which && j < i.length - 1 && j++, ~ j || (j = 0), + i + .eq(j) + .trigger("focus") + } + } + } + }; + var h = a.fn.dropdown; + a.fn.dropdown = d, + a.fn.dropdown.Constructor = g, + a.fn.dropdown.noConflict = function () { + return a.fn.dropdown = h, + this + }, + a(document) + .on("click.bs.dropdown.data-api", c) + .on("click.bs.dropdown.data-api", ".dropdown form", function (a) { + a.stopPropagation() + }) + .on("click.bs.dropdown.data-api", f, g.prototype.toggle) + .on("keydown.bs.dropdown.data-api", f, g.prototype.keydown) + .on("keydown.bs.dropdown.data-api", ".dropdown-menu", g.prototype.keydown) +}(jQuery), + function (a) { + "use strict"; + function b(b, d) { + return this.each(function () { + var e = a(this), + f = e.data("bs.modal"), + g = a.extend({}, c.DEFAULTS, e.data(), "object" == typeof b && b); + f || e.data("bs.modal", f = new c(this, g)), + "string" == typeof b + ? f[b](d) + : g.show && f.show(d) + }) + } + var c = function (b, c) { + this.options = c, + this.$body = a(document.body), + this.$element = a(b), + this.$dialog = this + .$element + .find(".modal-dialog"), + this.$backdrop = null, + this.isShown = null, + this.originalBodyPad = null, + this.scrollbarWidth = 0, + this.ignoreBackdropClick = !1, + this.options.remote && this + .$element + .find(".modal-content") + .load(this.options.remote, a.proxy(function () { + this + .$element + .trigger("loaded.bs.modal") + }, this)) + }; + c.VERSION = "3.3.7", + c.TRANSITION_DURATION = 300, + c.BACKDROP_TRANSITION_DURATION = 150, + c.DEFAULTS = { + backdrop: !0, + keyboard: !0, + show: !0 + }, + c.prototype.toggle = function (a) { + return this.isShown + ? this.hide() + : this.show(a) + }, + c.prototype.show = function (b) { + var d = this, + e = a.Event("show.bs.modal", {relatedTarget: b}); + this + .$element + .trigger(e), + this.isShown || e.isDefaultPrevented() || (this.isShown = !0, this.checkScrollbar(), this.setScrollbar(), this.$body.addClass("modal-open"), this.escape(), this.resize(), this.$element.on("click.dismiss.bs.modal", '[data-dismiss="modal"]', a.proxy(this.hide, this)), this.$dialog.on("mousedown.dismiss.bs.modal", function () { + d + .$element + .one("mouseup.dismiss.bs.modal", function (b) { + a(b.target).is(d.$element) && (d.ignoreBackdropClick = !0) + }) + }), this.backdrop(function () { + var e = a.support.transition && d + .$element + .hasClass("fade"); + d + .$element + .parent() + .length || d + .$element + .appendTo(d.$body), + d + .$element + .show() + .scrollTop(0), + d.adjustDialog(), + e && d.$element[0].offsetWidth, + d + .$element + .addClass("in"), + d.enforceFocus(); + var f = a.Event("shown.bs.modal", {relatedTarget: b}); + e + ? d + .$dialog + .one("bsTransitionEnd", function () { + d + .$element + .trigger("focus") + .trigger(f) + }) + .emulateTransitionEnd(c.TRANSITION_DURATION) + : d + .$element + .trigger("focus") + .trigger(f) + })) + }, + c.prototype.hide = function (b) { + b && b.preventDefault(), + b = a.Event("hide.bs.modal"), + this + .$element + .trigger(b), + this.isShown && !b.isDefaultPrevented() && (this.isShown = !1, this.escape(), this.resize(), a(document).off("focusin.bs.modal"), this.$element.removeClass("in").off("click.dismiss.bs.modal").off("mouseup.dismiss.bs.modal"), this.$dialog.off("mousedown.dismiss.bs.modal"), a.support.transition && this.$element.hasClass("fade") + ? this.$element.one("bsTransitionEnd", a.proxy(this.hideModal, this)).emulateTransitionEnd(c.TRANSITION_DURATION) + : this.hideModal()) + }, + c.prototype.enforceFocus = function () { + a(document) + .off("focusin.bs.modal") + .on("focusin.bs.modal", a.proxy(function (a) { + document === a.target || this.$element[0] === a.target || this + .$element + .has(a.target) + .length || this + .$element + .trigger("focus") + }, this)) + }, + c.prototype.escape = function () { + this.isShown && this.options.keyboard + ? this + .$element + .on("keydown.dismiss.bs.modal", a.proxy(function (a) { + 27 == a.which && this.hide() + }, this)) + : this.isShown || this + .$element + .off("keydown.dismiss.bs.modal") + }, + c.prototype.resize = function () { + this.isShown + ? a(window).on("resize.bs.modal", a.proxy(this.handleUpdate, this)) + : a(window).off("resize.bs.modal") + }, + c.prototype.hideModal = function () { + var a = this; + this + .$element + .hide(), + this.backdrop(function () { + a + .$body + .removeClass("modal-open"), + a.resetAdjustments(), + a.resetScrollbar(), + a + .$element + .trigger("hidden.bs.modal") + }) + }, + c.prototype.removeBackdrop = function () { + this.$backdrop && this + .$backdrop + .remove(), + this.$backdrop = null + }, + c.prototype.backdrop = function (b) { + var d = this, + e = this + .$element + .hasClass("fade") + ? "fade" + : ""; + if (this.isShown && this.options.backdrop) { + var f = a.support.transition && e; + if (this.$backdrop = a(document.createElement("div")).addClass("modal-backdrop " + e).appendTo(this.$body), this.$element.on("click.dismiss.bs.modal", a.proxy(function (a) { + return this.ignoreBackdropClick + ? void(this.ignoreBackdropClick = !1) + : void(a.target === a.currentTarget && ("static" == this.options.backdrop + ? this.$element[0].focus() + : this.hide())) + }, this)), f && this.$backdrop[0].offsetWidth, this.$backdrop.addClass("in"), !b) + return; + f + ? this + .$backdrop + .one("bsTransitionEnd", b) + .emulateTransitionEnd(c.BACKDROP_TRANSITION_DURATION) + : b() + } else if (!this.isShown && this.$backdrop) { + this + .$backdrop + .removeClass("in"); + var g = function () { + d.removeBackdrop(), + b && b() + }; + a.support.transition && this + .$element + .hasClass("fade") + ? this + .$backdrop + .one("bsTransitionEnd", g) + .emulateTransitionEnd(c.BACKDROP_TRANSITION_DURATION) + : g() + } else + b && b() + }, + c.prototype.handleUpdate = function () { + this.adjustDialog() + }, + c.prototype.adjustDialog = function () { + var a = this.$element[0].scrollHeight > document.documentElement.clientHeight; + this + .$element + .css({ + paddingLeft: !this.bodyIsOverflowing && a + ? this.scrollbarWidth + : "", + paddingRight: this.bodyIsOverflowing && !a + ? this.scrollbarWidth + : "" + }) + }, + c.prototype.resetAdjustments = function () { + this + .$element + .css({paddingLeft: "", paddingRight: ""}) + }, + c.prototype.checkScrollbar = function () { + var a = window.innerWidth; + if (!a) { + var b = document + .documentElement + .getBoundingClientRect(); + a = b.right - Math.abs(b.left) + } + this.bodyIsOverflowing = document.body.clientWidth < a, + this.scrollbarWidth = this.measureScrollbar() + }, + c.prototype.setScrollbar = function () { + var a = parseInt(this.$body.css("padding-right") || 0, 10); + this.originalBodyPad = document.body.style.paddingRight || "", + this.bodyIsOverflowing && this + .$body + .css("padding-right", a + this.scrollbarWidth) + }, + c.prototype.resetScrollbar = function () { + this + .$body + .css("padding-right", this.originalBodyPad) + }, + c.prototype.measureScrollbar = function () { + var a = document.createElement("div"); + a.className = "modal-scrollbar-measure", + this + .$body + .append(a); + var b = a.offsetWidth - a.clientWidth; + return this + .$body[0] + .removeChild(a), + b + }; + var d = a.fn.modal; + a.fn.modal = b, + a.fn.modal.Constructor = c, + a.fn.modal.noConflict = function () { + return a.fn.modal = d, + this + }, + a(document).on("click.bs.modal.data-api", '[data-toggle="modal"]', function (c) { + var d = a(this), + e = d.attr("href"), + f = a(d.attr("data-target") || e && e.replace(/.*(?=#[^\s]+$)/, "")), + g = f.data("bs.modal") + ? "toggle" + : a.extend({ + remote: !/#/.test(e) && e + }, f.data(), d.data()); + d.is("a") && c.preventDefault(), + f.one("show.bs.modal", function (a) { + a.isDefaultPrevented() || f.one("hidden.bs.modal", function () { + d.is(":visible") && d.trigger("focus") + }) + }), + b.call(f, g, this) + }) +}(jQuery), + function (a) { + "use strict"; + function b(b) { + return this.each(function () { + var d = a(this), + e = d.data("bs.tooltip"), + f = "object" == typeof b && b; + !e && /destroy|hide/.test(b) || (e || d.data("bs.tooltip", e = new c(this, f)), "string" == typeof b && e[b]()) + }) + } + var c = function (a, b) { + this.type = null, + this.options = null, + this.enabled = null, + this.timeout = null, + this.hoverState = null, + this.$element = null, + this.inState = null, + this.init("tooltip", a, b) + }; + c.VERSION = "3.3.7", + c.TRANSITION_DURATION = 150, + c.DEFAULTS = { + animation: !0, + placement: "top", + selector: !1, + template: '', + trigger: "hover focus", + title: "", + delay: 0, + html: !1, + container: !1, + viewport: { + selector: "body", + padding: 0 + } + }, + c.prototype.init = function (b, c, d) { + if (this.enabled = !0, this.type = b, this.$element = a(c), this.options = this.getOptions(d), this.$viewport = this.options.viewport && a(a.isFunction(this.options.viewport) + ? this.options.viewport.call(this, this.$element) + : this.options.viewport.selector || this.options.viewport), this.inState = { + click: !1, + hover: !1, + focus: !1 + }, this.$element[0]instanceof document.constructor && !this.options.selector) + throw new Error("`selector` option must be specified when initializing " + this.type + " on the window.document object!"); + for (var e = this.options.trigger.split(" "), f = e.length; f--;) { + var g = e[f]; + if ("click" == g) + this.$element.on("click." + this.type, this.options.selector, a.proxy(this.toggle, this)); + else if ("manual" != g) { + var h = "hover" == g + ? "mouseenter" + : "focusin", + i = "hover" == g + ? "mouseleave" + : "focusout"; + this + .$element + .on(h + "." + this.type, this.options.selector, a.proxy(this.enter, this)), + this + .$element + .on(i + "." + this.type, this.options.selector, a.proxy(this.leave, this)) + } + } + this.options.selector + ? this._options = a.extend({}, this.options, { + trigger: "manual", + selector: "" + }) + : this.fixTitle() + }, + c.prototype.getDefaults = function () { + return c.DEFAULTS + }, + c.prototype.getOptions = function (b) { + return b = a.extend({}, this.getDefaults(), this.$element.data(), b), + b.delay && "number" == typeof b.delay && (b.delay = { + show: b.delay, + hide: b.delay + }), + b + }, + c.prototype.getDelegateOptions = function () { + var b = {}, + c = this.getDefaults(); + return this._options && a.each(this._options, function (a, d) { + c[a] != d && (b[a] = d) + }), + b + }, + c.prototype.enter = function (b) { + var c = b instanceof this.constructor + ? b + : a(b.currentTarget).data("bs." + this.type); + return c || (c = new this.constructor(b.currentTarget, this.getDelegateOptions()), a(b.currentTarget).data("bs." + this.type, c)), + b instanceof a.Event && (c.inState["focusin" == b.type + ? "focus" + : "hover"] = !0), + c + .tip() + .hasClass("in") || "in" == c.hoverState + ? void(c.hoverState = "in") + : (clearTimeout(c.timeout), c.hoverState = "in", c.options.delay && c.options.delay.show + ? void(c.timeout = setTimeout(function () { + "in" == c.hoverState && c.show() + }, c.options.delay.show)) + : c.show()) + }, + c.prototype.isInStateTrue = function () { + for (var a in this.inState) + if (this.inState[a]) + return !0; + return !1 + }, + c.prototype.leave = function (b) { + var c = b instanceof this.constructor + ? b + : a(b.currentTarget).data("bs." + this.type); + if (c || (c = new this.constructor(b.currentTarget, this.getDelegateOptions()), a(b.currentTarget).data("bs." + this.type, c)), b instanceof a.Event && (c.inState["focusout" == b.type + ? "focus" + : "hover"] = !1), !c.isInStateTrue()) + return clearTimeout(c.timeout), + c.hoverState = "out", + c.options.delay && c.options.delay.hide + ? void(c.timeout = setTimeout(function () { + "out" == c.hoverState && c.hide() + }, c.options.delay.hide)) + : c.hide() + }, + c.prototype.show = function () { + var b = a.Event("show.bs." + this.type); + if (this.hasContent() && this.enabled) { + this + .$element + .trigger(b); + var d = a.contains(this.$element[0].ownerDocument.documentElement, this.$element[0]); + if (b.isDefaultPrevented() || !d) + return; + var e = this, + f = this.tip(), + g = this.getUID(this.type); + this.setContent(), + f.attr("id", g), + this + .$element + .attr("aria-describedby", g), + this.options.animation && f.addClass("fade"); + var h = "function" == typeof this.options.placement + ? this + .options + .placement + .call(this, f[0], this.$element[0]) + : this.options.placement, + i = /\s?auto?\s?/i, + j = i.test(h); + j && (h = h.replace(i, "") || "top"), + f + .detach() + .css({top: 0, left: 0, display: "block"}) + .addClass(h) + .data("bs." + this.type, this), + this.options.container + ? f.appendTo(this.options.container) + : f.insertAfter(this.$element), + this + .$element + .trigger("inserted.bs." + this.type); + var k = this.getPosition(), + l = f[0].offsetWidth, + m = f[0].offsetHeight; + if (j) { + var n = h, + o = this.getPosition(this.$viewport); + h = "bottom" == h && k.bottom + m > o.bottom + ? "top" + : "top" == h && k.top - m < o.top + ? "bottom" + : "right" == h && k.right + l > o.width + ? "left" + : "left" == h && k.left - l < o.left + ? "right" + : h, + f + .removeClass(n) + .addClass(h) + } + var p = this.getCalculatedOffset(h, k, l, m); + this.applyPlacement(p, h); + var q = function () { + var a = e.hoverState; + e + .$element + .trigger("shown.bs." + e.type), + e.hoverState = null, + "out" == a && e.leave(e) + }; + a.support.transition && this + .$tip + .hasClass("fade") + ? f + .one("bsTransitionEnd", q) + .emulateTransitionEnd(c.TRANSITION_DURATION) + : q() + } + }, + c.prototype.applyPlacement = function (b, c) { + var d = this.tip(), + e = d[0].offsetWidth, + f = d[0].offsetHeight, + g = parseInt(d.css("margin-top"), 10), + h = parseInt(d.css("margin-left"), 10); + isNaN(g) && (g = 0), + isNaN(h) && (h = 0), + b.top += g, + b.left += h, + a + .offset + .setOffset(d[0], a.extend({ + using: function (a) { + d.css({ + top: Math.round(a.top), + left: Math.round(a.left) + }) + } + }, b), 0), + d.addClass("in"); + var i = d[0].offsetWidth, + j = d[0].offsetHeight; + "top" == c && j != f && (b.top = b.top + f - j); + var k = this.getViewportAdjustedDelta(c, b, i, j); + k.left + ? b.left += k.left + : b.top += k.top; + var l = /top|bottom/.test(c), + m = l + ? 2 * k.left - e + i + : 2 * k.top - f + j, + n = l + ? "offsetWidth" + : "offsetHeight"; + d.offset(b), + this.replaceArrow(m, d[0][n], l) + }, + c.prototype.replaceArrow = function (a, b, c) { + this + .arrow() + .css(c + ? "left" + : "top", 50 * (1 - a / b) + "%") + .css(c + ? "top" + : "left", "") + }, + c.prototype.setContent = function () { + var a = this.tip(), + b = this.getTitle(); + a.find(".tooltip-inner")[this.options.html + ? "html" + : "text"](b), + a.removeClass("fade in top bottom left right") + }, + c.prototype.hide = function (b) { + function d() { + "in" != e.hoverState && f.detach(), + e.$element && e + .$element + .removeAttr("aria-describedby") + .trigger("hidden.bs." + e.type), + b && b() + } + var e = this, + f = a(this.$tip), + g = a.Event("hide.bs." + this.type); + if (this.$element.trigger(g), !g.isDefaultPrevented()) + return f.removeClass("in"), + a.support.transition && f.hasClass("fade") + ? f.one("bsTransitionEnd", d).emulateTransitionEnd(c.TRANSITION_DURATION) + : d(), + this.hoverState = null, + this + }, + c.prototype.fixTitle = function () { + var a = this.$element; + (a.attr("title") || "string" != typeof a.attr("data-original-title")) && a.attr("data-original-title", a.attr("title") || "").attr("title", "") + }, + c.prototype.hasContent = function () { + return this.getTitle() + }, + c.prototype.getPosition = function (b) { + b = b || this.$element; + var c = b[0], + d = "BODY" == c.tagName, + e = c.getBoundingClientRect(); + null == e.width && (e = a.extend({}, e, { + width: e.right - e.left, + height: e.bottom - e.top + })); + var f = window.SVGElement && c instanceof window.SVGElement, + g = d + ? { + top: 0, + left: 0 + } + : f + ? null + : b.offset(), + h = { + scroll: d + ? document.documentElement.scrollTop || document.body.scrollTop + : b.scrollTop() + }, + i = d + ? { + width: a(window).width(), + height: a(window).height() + } + : null; + return a.extend({}, e, h, i, g) + }, + c.prototype.getCalculatedOffset = function (a, b, c, d) { + return "bottom" == a + ? { + top: b.top + b.height, + left: b.left + b.width / 2 - c / 2 + } + : "top" == a + ? { + top: b.top - d, + left: b.left + b.width / 2 - c / 2 + } + : "left" == a + ? { + top: b.top + b.height / 2 - d / 2, + left: b.left - c + } + : { + top: b.top + b.height / 2 - d / 2, + left: b.left + b.width + } + }, + c.prototype.getViewportAdjustedDelta = function (a, b, c, d) { + var e = { + top: 0, + left: 0 + }; + if (!this.$viewport) + return e; + var f = this.options.viewport && this.options.viewport.padding || 0, + g = this.getPosition(this.$viewport); + if (/right|left/.test(a)) { + var h = b.top - f - g.scroll, + i = b.top + f - g.scroll + d; + h < g.top + ? e.top = g.top - h + : i > g.top + g.height && (e.top = g.top + g.height - i) + } else { + var j = b.left - f, + k = b.left + f + c; + j < g.left + ? e.left = g.left - j + : k > g.right && (e.left = g.left + g.width - k) + } + return e + }, + c.prototype.getTitle = function () { + var a, + b = this.$element, + c = this.options; + return a = b.attr("data-original-title") || ("function" == typeof c.title + ? c.title.call(b[0]) + : c.title) + }, + c.prototype.getUID = function (a) { + do + a += ~~ (1e6 * Math.random()); + while (document.getElementById(a)); + return a + }, + c.prototype.tip = function () { + if (!this.$tip && (this.$tip = a(this.options.template), 1 != this.$tip.length)) + throw new Error(this.type + " `template` option must consist of exactly 1 top-level element!"); + return this.$tip + }, + c.prototype.arrow = function () { + return this.$arrow = this.$arrow || this + .tip() + .find(".tooltip-arrow") + }, + c.prototype.enable = function () { + this.enabled = !0 + }, + c.prototype.disable = function () { + this.enabled = !1 + }, + c.prototype.toggleEnabled = function () { + this.enabled = !this.enabled + }, + c.prototype.toggle = function (b) { + var c = this; + b && (c = a(b.currentTarget).data("bs." + this.type), c || (c = new this.constructor(b.currentTarget, this.getDelegateOptions()), a(b.currentTarget).data("bs." + this.type, c))), + b + ? (c.inState.click = !c.inState.click, c.isInStateTrue() + ? c.enter(c) + : c.leave(c)) + : c + .tip() + .hasClass("in") + ? c.leave(c) + : c.enter(c) + }, + c.prototype.destroy = function () { + var a = this; + clearTimeout(this.timeout), + this.hide(function () { + a + .$element + .off("." + a.type) + .removeData("bs." + a.type), + a.$tip && a + .$tip + .detach(), + a.$tip = null, + a.$arrow = null, + a.$viewport = null, + a.$element = null + }) + }; + var d = a.fn.tooltip; + a.fn.tooltip = b, + a.fn.tooltip.Constructor = c, + a.fn.tooltip.noConflict = function () { + return a.fn.tooltip = d, + this + } +}(jQuery), + function (a) { + "use strict"; + function b(b) { + return this.each(function () { + var d = a(this), + e = d.data("bs.popover"), + f = "object" == typeof b && b; + !e && /destroy|hide/.test(b) || (e || d.data("bs.popover", e = new c(this, f)), "string" == typeof b && e[b]()) + }) + } + var c = function (a, b) { + this.init("popover", a, b) + }; + if (!a.fn.tooltip) + throw new Error("Popover requires tooltip.js"); + c.VERSION = "3.3.7", + c.DEFAULTS = a.extend({}, a.fn.tooltip.Constructor.DEFAULTS, { + placement: "right", + trigger: "click", + content: "", + template: '' + }), + c.prototype = a.extend({}, a.fn.tooltip.Constructor.prototype), + c.prototype.constructor = c, + c.prototype.getDefaults = function () { + return c.DEFAULTS + }, + c.prototype.setContent = function () { + var a = this.tip(), + b = this.getTitle(), + c = this.getContent(); + a.find(".popover-title")[this.options.html + ? "html" + : "text"](b), + a + .find(".popover-content") + .children() + .detach() + .end()[this.options.html + ? "string" == typeof c + ? "html" + : "append" + : "text"](c), + a.removeClass("fade top bottom left right in"), + a + .find(".popover-title") + .html() || a + .find(".popover-title") + .hide() + }, + c.prototype.hasContent = function () { + return this.getTitle() || this.getContent() + }, + c.prototype.getContent = function () { + var a = this.$element, + b = this.options; + return a.attr("data-content") || ("function" == typeof b.content + ? b.content.call(a[0]) + : b.content) + }, + c.prototype.arrow = function () { + return this.$arrow = this.$arrow || this + .tip() + .find(".arrow") + }; + var d = a.fn.popover; + a.fn.popover = b, + a.fn.popover.Constructor = c, + a.fn.popover.noConflict = function () { + return a.fn.popover = d, + this + } +}(jQuery), + function (a) { + "use strict"; + function b(c, d) { + this.$body = a(document.body), + this.$scrollElement = a(a(c).is(document.body) + ? window + : c), + this.options = a.extend({}, b.DEFAULTS, d), + this.selector = (this.options.target || "") + " .nav li > a", + this.offsets = [], + this.targets = [], + this.activeTarget = null, + this.scrollHeight = 0, + this + .$scrollElement + .on("scroll.bs.scrollspy", a.proxy(this.process, this)), + this.refresh(), + this.process() + } + function c(c) { + return this.each(function () { + var d = a(this), + e = d.data("bs.scrollspy"), + f = "object" == typeof c && c; + e || d.data("bs.scrollspy", e = new b(this, f)), + "string" == typeof c && e[c]() + }) + } + b.VERSION = "3.3.7", + b.DEFAULTS = { + offset: 10 + }, + b.prototype.getScrollHeight = function () { + return this.$scrollElement[0].scrollHeight || Math.max(this.$body[0].scrollHeight, document.documentElement.scrollHeight) + }, + b.prototype.refresh = function () { + var b = this, + c = "offset", + d = 0; + this.offsets = [], + this.targets = [], + this.scrollHeight = this.getScrollHeight(), + a.isWindow(this.$scrollElement[0]) || (c = "position", d = this.$scrollElement.scrollTop()), + this + .$body + .find(this.selector) + .map(function () { + var b = a(this), + e = b.data("target") || b.attr("href"), + f = /^#./.test(e) && a(e); + return f && f.length && f.is(":visible") && [ + [ + f[c]().top + d, + e + ] + ] || null + }) + .sort(function (a, b) { + return a[0] - b[0] + }) + .each(function () { + b + .offsets + .push(this[0]), + b + .targets + .push(this[1]) + }) + }, + b.prototype.process = function () { + var a, + b = this + .$scrollElement + .scrollTop() + this.options.offset, + c = this.getScrollHeight(), + d = this.options.offset + c - this + .$scrollElement + .height(), + e = this.offsets, + f = this.targets, + g = this.activeTarget; + if (this.scrollHeight != c && this.refresh(), b >= d) + return g != (a = f[f.length - 1]) && this.activate(a); + if (g && b < e[0]) + return this.activeTarget = null, + this.clear(); + for (a = e.length; a--;) + g != f[a] && b >= e[a] && (void 0 === e[a + 1] || b < e[a + 1]) && this.activate(f[a]) + }, + b.prototype.activate = function (b) { + this.activeTarget = b, + this.clear(); + var c = this.selector + '[data-target="' + b + '"],' + this.selector + '[href="' + b + '"]', + d = a(c) + .parents("li") + .addClass("active"); + d + .parent(".dropdown-menu") + .length && (d = d.closest("li.dropdown").addClass("active")), + d.trigger("activate.bs.scrollspy") + }, + b.prototype.clear = function () { + a(this.selector) + .parentsUntil(this.options.target, ".active") + .removeClass("active") + }; + var d = a.fn.scrollspy; + a.fn.scrollspy = c, + a.fn.scrollspy.Constructor = b, + a.fn.scrollspy.noConflict = function () { + return a.fn.scrollspy = d, + this + }, + a(window).on("load.bs.scrollspy.data-api", function () { + a('[data-spy="scroll"]') + .each(function () { + var b = a(this); + c.call(b, b.data()) + }) + }) +}(jQuery), + function (a) { + "use strict"; + function b(b) { + return this.each(function () { + var d = a(this), + e = d.data("bs.tab"); + e || d.data("bs.tab", e = new c(this)), + "string" == typeof b && e[b]() + }) + } + var c = function (b) { + this.element = a(b) + }; + c.VERSION = "3.3.7", + c.TRANSITION_DURATION = 150, + c.prototype.show = function () { + var b = this.element, + c = b.closest("ul:not(.dropdown-menu)"), + d = b.data("target"); + if (d || (d = b.attr("href"), d = d && d.replace(/.*(?=#[^\s]*$)/, "")), !b.parent("li").hasClass("active")) { + var e = c.find(".active:last a"), + f = a.Event("hide.bs.tab", {relatedTarget: b[0]}), + g = a.Event("show.bs.tab", {relatedTarget: e[0]}); + if (e.trigger(f), b.trigger(g), !g.isDefaultPrevented() && !f.isDefaultPrevented()) { + var h = a(d); + this.activate(b.closest("li"), c), + this.activate(h, h.parent(), function () { + e.trigger({type: "hidden.bs.tab", relatedTarget: b[0]}), + b.trigger({type: "shown.bs.tab", relatedTarget: e[0]}) + }) + } + } + }, + c.prototype.activate = function (b, d, e) { + function f() { + g + .removeClass("active") + .find("> .dropdown-menu > .active") + .removeClass("active") + .end() + .find('[data-toggle="tab"]') + .attr("aria-expanded", !1), + b + .addClass("active") + .find('[data-toggle="tab"]') + .attr("aria-expanded", !0), + h + ? (b[0].offsetWidth, b.addClass("in")) + : b.removeClass("fade"), + b + .parent(".dropdown-menu") + .length && b + .closest("li.dropdown") + .addClass("active") + .end() + .find('[data-toggle="tab"]') + .attr("aria-expanded", !0), + e && e() + } + var g = d.find("> .active"), + h = e && a.support.transition && (g.length && g.hasClass("fade") || !!d.find("> .fade").length); + g.length && h + ? g + .one("bsTransitionEnd", f) + .emulateTransitionEnd(c.TRANSITION_DURATION) + : f(), + g.removeClass("in") + }; + var d = a.fn.tab; + a.fn.tab = b, + a.fn.tab.Constructor = c, + a.fn.tab.noConflict = function () { + return a.fn.tab = d, + this + }; + var e = function (c) { + c.preventDefault(), + b.call(a(this), "show") + }; + a(document) + .on("click.bs.tab.data-api", '[data-toggle="tab"]', e) + .on("click.bs.tab.data-api", '[data-toggle="pill"]', e) +}(jQuery), + function (a) { + "use strict"; + function b(b) { + return this.each(function () { + var d = a(this), + e = d.data("bs.affix"), + f = "object" == typeof b && b; + e || d.data("bs.affix", e = new c(this, f)), + "string" == typeof b && e[b]() + }) + } + var c = function (b, d) { + this.options = a.extend({}, c.DEFAULTS, d), + this.$target = a(this.options.target) + .on("scroll.bs.affix.data-api", a.proxy(this.checkPosition, this)) + .on("click.bs.affix.data-api", a.proxy(this.checkPositionWithEventLoop, this)), + this.$element = a(b), + this.affixed = null, + this.unpin = null, + this.pinnedOffset = null, + this.checkPosition() + }; + c.VERSION = "3.3.7", + c.RESET = "affix affix-top affix-bottom", + c.DEFAULTS = { + offset: 0, + target: window + }, + c.prototype.getState = function (a, b, c, d) { + var e = this + .$target + .scrollTop(), + f = this + .$element + .offset(), + g = this + .$target + .height(); + if (null != c && "top" == this.affixed) + return e < c && "top"; + if ("bottom" == this.affixed) + return null != c + ? !(e + this.unpin <= f.top) && "bottom" + : !(e + g <= a - d) && "bottom"; + var h = null == this.affixed, + i = h + ? e + : f.top, + j = h + ? g + : b; + return null != c && e <= c + ? "top" + : null != d && i + j >= a - d && "bottom" + }, + c.prototype.getPinnedOffset = function () { + if (this.pinnedOffset) + return this.pinnedOffset; + this + .$element + .removeClass(c.RESET) + .addClass("affix"); + var a = this + .$target + .scrollTop(), + b = this + .$element + .offset(); + return this.pinnedOffset = b.top - a + }, + c.prototype.checkPositionWithEventLoop = function () { + setTimeout(a.proxy(this.checkPosition, this), 1) + }, + c.prototype.checkPosition = function () { + if (this.$element.is(":visible")) { + var b = this + .$element + .height(), + d = this.options.offset, + e = d.top, + f = d.bottom, + g = Math.max(a(document).height(), a(document.body).height()); + "object" != typeof d && (f = e = d), + "function" == typeof e && (e = d.top(this.$element)), + "function" == typeof f && (f = d.bottom(this.$element)); + var h = this.getState(g, b, e, f); + if (this.affixed != h) { + null != this.unpin && this + .$element + .css("top", ""); + var i = "affix" + (h + ? "-" + h + : ""), + j = a.Event(i + ".bs.affix"); + if (this.$element.trigger(j), j.isDefaultPrevented()) + return; + this.affixed = h, + this.unpin = "bottom" == h + ? this.getPinnedOffset() + : null, + this + .$element + .removeClass(c.RESET) + .addClass(i) + .trigger(i.replace("affix", "affixed") + ".bs.affix") + } + "bottom" == h && this + .$element + .offset({ + top: g - b - f + }) + } + }; + var d = a.fn.affix; + a.fn.affix = b, + a.fn.affix.Constructor = c, + a.fn.affix.noConflict = function () { + return a.fn.affix = d, + this + }, + a(window).on("load", function () { + a('[data-spy="affix"]') + .each(function () { + var c = a(this), + d = c.data(); + d.offset = d.offset || {}, + null != d.offsetBottom && (d.offset.bottom = d.offsetBottom), + null != d.offsetTop && (d.offset.top = d.offsetTop), + b.call(c, d) + }) + }) +}(jQuery); \ No newline at end of file From 5499d9584324f3fb8fb65ef5d30fbbe98e3656fa Mon Sep 17 00:00:00 2001 From: deathrow Date: Tue, 17 Jan 2023 18:15:04 -0500 Subject: [PATCH 075/169] Format d3.min.js --- assets/js/d3.min.js | 15930 +++++++++++++++++++++++++++++++++++++++++- 1 file changed, 15923 insertions(+), 7 deletions(-) diff --git a/assets/js/d3.min.js b/assets/js/d3.min.js index 6a78c32..e47efc6 100644 --- a/assets/js/d3.min.js +++ b/assets/js/d3.min.js @@ -1,8 +1,15924 @@ // https://d3js.org Version 4.3.0. Copyright 2016 Mike Bostock. -(function(t,n){"object"==typeof exports&&"undefined"!=typeof module?n(exports):"function"==typeof define&&define.amd?define(["exports"],n):n(t.d3=t.d3||{})})(this,function(t){"use strict";function n(t){return function(n,e){return Ms(t(n),e)}}function e(t,n,e){var r=Math.abs(n-t)/Math.max(0,e),i=Math.pow(10,Math.floor(Math.log(r)/Math.LN10)),o=r/i;return o>=Fs?i*=10:o>=Is?i*=5:o>=Ys&&(i*=2),n1&&Wf(t[e[r-2]],t[e[r-1]],t[i])<=0;)--r;e[r++]=i}return e.slice(0,r)}function q(){this._x0=this._y0=this._x1=this._y1=null,this._=[]}function L(){return new q}function R(t,n,e,r){if(isNaN(n)||isNaN(e))return t;var i,o,u,a,c,s,f,l,h,p=t._root,d={data:r},v=t._x0,_=t._y0,y=t._x1,g=t._y1;if(!p)return t._root=d,t;for(;p.length;)if((s=n>=(o=(v+y)/2))?v=o:y=o,(f=e>=(u=(_+g)/2))?_=u:g=u,i=p,!(p=p[l=f<<1|s]))return i[l]=d,t;if(a=+t._x.call(null,p.data),c=+t._y.call(null,p.data),n===a&&e===c)return d.next=p,i?i[l]=d:t._root=d,t;do i=i?i[l]=new Array(4):t._root=new Array(4),(s=n>=(o=(v+y)/2))?v=o:y=o,(f=e>=(u=(_+g)/2))?_=u:g=u;while((l=f<<1|s)===(h=(c>=u)<<1|a>=o));return i[h]=p,i[l]=d,t}function U(t){var n,e,r,i,o=t.length,u=new Array(o),a=new Array(o),c=1/0,s=1/0,f=-(1/0),l=-(1/0);for(e=0;ef&&(f=r),il&&(l=i));for(f=1))throw new Error;this._size=t,this._call=this._error=null,this._tasks=[],this._data=[],this._waiting=this._active=this._ended=this._start=0}function H(t){if(!t._start)try{X(t)}catch(n){if(t._tasks[t._ended+t._active-1])W(t,n);else if(!t._data)throw n}}function X(t){for(;t._start=t._waiting&&t._active=0;)if((e=t._tasks[r])&&(t._tasks[r]=null,e.abort))try{e.abort()}catch(t){}t._active=NaN,$(t)}function $(t){if(!t._active&&t._call){var n=t._data;t._data=void 0,t._call(t._error,n)}}function Z(t){return new j(arguments.length?+t:1/0)}function G(t){return t.innerRadius}function J(t){return t.outerRadius}function Q(t){return t.startAngle}function K(t){return t.endAngle}function tt(t){return t&&t.padAngle}function nt(t){return t>=1?xl:t<=-1?-xl:Math.asin(t)}function et(t,n,e,r,i,o,u,a){var c=e-t,s=r-n,f=u-i,l=a-o,h=(f*(n-o)-l*(t-i))/(l*c-f*s);return[t+h*c,n+h*s]}function rt(t,n,e,r,i,o,u){var a=t-e,c=n-r,s=(u?o:-o)/Math.sqrt(a*a+c*c),f=s*c,l=-s*a,h=t+f,p=n+l,d=e+f,v=r+l,_=(h+d)/2,y=(p+v)/2,g=d-h,m=v-p,x=g*g+m*m,b=i-o,w=h*v-d*p,M=(m<0?-1:1)*Math.sqrt(Math.max(0,b*b*x-w*w)),T=(w*m-g*M)/x,N=(-w*g-m*M)/x,k=(w*m+g*M)/x,S=(-w*g+m*M)/x,A=T-_,E=N-y,C=k-_,z=S-y;return A*A+E*E>C*C+z*z&&(T=k,N=S),{cx:T,cy:N,x01:-f,y01:-l,x11:T*(i/b-1),y11:N*(i/b-1)}}function it(t){this._context=t}function ot(t){return t[0]}function ut(t){return t[1]}function at(t){this._curve=t}function ct(t){function n(n){return new at(t(n))}return n._curve=t,n}function st(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(ct(t)):n()._curve},t}function ft(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 lt(t){this._context=t}function ht(t){this._context=t}function pt(t){this._context=t}function dt(t,n){this._basis=new lt(t),this._beta=n}function vt(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 _t(t,n){this._context=t,this._k=(1-n)/6}function yt(t,n){this._context=t,this._k=(1-n)/6}function gt(t,n){this._context=t,this._k=(1-n)/6}function mt(t,n,e){var r=t._x1,i=t._y1,o=t._x2,u=t._y2;if(t._l01_a>gl){var a=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*a-t._x0*t._l12_2a+t._x2*t._l01_2a)/c,i=(i*a-t._y0*t._l12_2a+t._y2*t._l01_2a)/c}if(t._l23_a>gl){var s=2*t._l23_2a+3*t._l23_a*t._l12_a+t._l12_2a,f=3*t._l23_a*(t._l23_a+t._l12_a);o=(o*s+t._x1*t._l23_2a-n*t._l12_2a)/f,u=(u*s+t._y1*t._l23_2a-e*t._l12_2a)/f}t._context.bezierCurveTo(r,i,o,u,t._x2,t._y2)}function xt(t,n){this._context=t,this._alpha=n}function bt(t,n){this._context=t,this._alpha=n}function wt(t,n){this._context=t,this._alpha=n}function Mt(t){this._context=t}function Tt(t){return t<0?-1:1}function Nt(t,n,e){var r=t._x1-t._x0,i=n-t._x1,o=(t._y1-t._y0)/(r||i<0&&-0),u=(e-t._y1)/(i||r<0&&-0),a=(o*i+u*r)/(r+i);return(Tt(o)+Tt(u))*Math.min(Math.abs(o),Math.abs(u),.5*Math.abs(a))||0}function kt(t,n){var e=t._x1-t._x0;return e?(3*(t._y1-t._y0)/e-n)/2:n}function St(t,n,e){var r=t._x0,i=t._y0,o=t._x1,u=t._y1,a=(o-r)/3;t._context.bezierCurveTo(r+a,i+a*n,o-a,u-a*e,o,u)}function At(t){this._context=t}function Et(t){this._context=new Ct(t)}function Ct(t){this._context=t}function zt(t){return new At(t)}function Pt(t){return new Et(t)}function qt(t){this._context=t}function Lt(t){var n,e,r=t.length-1,i=new Array(r),o=new Array(r),u=new Array(r);for(i[0]=0,o[0]=2,u[0]=t[0]+2*t[1],n=1;n=0;--n)i[n]=(u[n]-i[n+1])/o[n];for(o[r-1]=(t[r]+i[r-1])/2,n=0;n>8&15|n>>4&240,n>>4&15|240&n,(15&n)<<4|15&n,1)):(n=Sh.exec(t))?jt(parseInt(n[1],16)):(n=Ah.exec(t))?new Wt(n[1],n[2],n[3],1):(n=Eh.exec(t))?new Wt(255*n[1]/100,255*n[2]/100,255*n[3]/100,1):(n=Ch.exec(t))?Ht(n[1],n[2],n[3],n[4]):(n=zh.exec(t))?Ht(255*n[1]/100,255*n[2]/100,255*n[3]/100,n[4]):(n=Ph.exec(t))?$t(n[1],n[2]/100,n[3]/100,1):(n=qh.exec(t))?$t(n[1],n[2]/100,n[3]/100,n[4]):Lh.hasOwnProperty(t)?jt(Lh[t]):"transparent"===t?new Wt(NaN,NaN,NaN,0):null}function jt(t){return new Wt(t>>16&255,t>>8&255,255&t,1)}function Ht(t,n,e,r){return r<=0&&(t=n=e=NaN),new Wt(t,n,e,r)}function Xt(t){return t instanceof Yt||(t=Bt(t)),t?(t=t.rgb(),new Wt(t.r,t.g,t.b,t.opacity)):new Wt}function Vt(t,n,e,r){return 1===arguments.length?Xt(t):new Wt(t,n,e,null==r?1:r)}function Wt(t,n,e,r){this.r=+t,this.g=+n,this.b=+e,this.opacity=+r}function $t(t,n,e,r){return r<=0?t=n=e=NaN:e<=0||e>=1?t=n=NaN:n<=0&&(t=NaN),new Jt(t,n,e,r)}function Zt(t){if(t instanceof Jt)return new Jt(t.h,t.s,t.l,t.opacity);if(t instanceof Yt||(t=Bt(t)),!t)return new Jt;if(t instanceof Jt)return t;t=t.rgb();var n=t.r/255,e=t.g/255,r=t.b/255,i=Math.min(n,e,r),o=Math.max(n,e,r),u=NaN,a=o-i,c=(o+i)/2;return a?(u=n===o?(e-r)/a+6*(e0&&c<1?0:u,new Jt(u,a,c,t.opacity)}function Gt(t,n,e,r){return 1===arguments.length?Zt(t):new Jt(t,n,e,null==r?1:r)}function Jt(t,n,e,r){this.h=+t,this.s=+n,this.l=+e,this.opacity=+r}function Qt(t,n,e){return 255*(t<60?n+(e-n)*t/60:t<180?e:t<240?n+(e-n)*(240-t)/60:n)}function Kt(t){if(t instanceof nn)return new nn(t.l,t.a,t.b,t.opacity);if(t instanceof sn){var n=t.h*Rh;return new nn(t.l,Math.cos(n)*t.c,Math.sin(n)*t.c,t.opacity)}t instanceof Wt||(t=Xt(t));var e=un(t.r),r=un(t.g),i=un(t.b),o=en((.4124564*e+.3575761*r+.1804375*i)/Oh),u=en((.2126729*e+.7151522*r+.072175*i)/Fh),a=en((.0193339*e+.119192*r+.9503041*i)/Ih);return new nn(116*u-16,500*(o-u),200*(u-a),t.opacity)}function tn(t,n,e,r){return 1===arguments.length?Kt(t):new nn(t,n,e,null==r?1:r)}function nn(t,n,e,r){this.l=+t,this.a=+n,this.b=+e,this.opacity=+r}function en(t){return t>Hh?Math.pow(t,1/3):t/jh+Yh}function rn(t){return t>Bh?t*t*t:jh*(t-Yh)}function on(t){return 255*(t<=.0031308?12.92*t:1.055*Math.pow(t,1/2.4)-.055)}function un(t){return(t/=255)<=.04045?t/12.92:Math.pow((t+.055)/1.055,2.4)}function an(t){if(t instanceof sn)return new sn(t.h,t.c,t.l,t.opacity);t instanceof nn||(t=Kt(t));var n=Math.atan2(t.b,t.a)*Uh;return new sn(n<0?n+360:n,Math.sqrt(t.a*t.a+t.b*t.b),t.l,t.opacity)}function cn(t,n,e,r){return 1===arguments.length?an(t):new sn(t,n,e,null==r?1:r)}function sn(t,n,e,r){this.h=+t,this.c=+n,this.l=+e,this.opacity=+r}function fn(t){if(t instanceof hn)return new hn(t.h,t.s,t.l,t.opacity);t instanceof Wt||(t=Xt(t));var n=t.r/255,e=t.g/255,r=t.b/255,i=(Qh*r+Gh*n-Jh*e)/(Qh+Gh-Jh),o=r-i,u=(Zh*(e-i)-Wh*o)/$h,a=Math.sqrt(u*u+o*o)/(Zh*i*(1-i)),c=a?Math.atan2(u,o)*Uh-120:NaN;return new hn(c<0?c+360:c,a,i,t.opacity)}function ln(t,n,e,r){return 1===arguments.length?fn(t):new hn(t,n,e,null==r?1:r)}function hn(t,n,e,r){this.h=+t,this.s=+n,this.l=+e,this.opacity=+r}function pn(t,n,e,r,i){var o=t*t,u=o*t;return((1-3*t+3*o-u)*n+(4-6*o+3*u)*e+(1+3*t+3*o-3*u)*r+u*i)/6}function dn(t,n){return function(e){return t+e*n}}function vn(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)}}function _n(t,n){var e=n-t;return e?dn(t,e>180||e<-180?e-360*Math.round(e/360):e):op(isNaN(t)?n:t)}function yn(t){return 1===(t=+t)?gn:function(n,e){return e-n?vn(n,e,t):op(isNaN(n)?e:n)}}function gn(t,n){var e=n-t;return e?dn(t,e):op(isNaN(t)?n:t)}function mn(t){return function(n){var e,r,i=n.length,o=new Array(i),u=new Array(i),a=new Array(i);for(e=0;e180?n+=360:n-t>180&&(t+=360),o.push({i:e.push(i(e)+"rotate(",null,r)-2,x:lp(t,n)})):n&&e.push(i(e)+"rotate("+n+r)}function a(t,n,e,o){t!==n?o.push({i:e.push(i(e)+"skewX(",null,r)-2,x:lp(t,n)}):n&&e.push(i(e)+"skewX("+n+r)}function c(t,n,e,r,o,u){if(t!==e||n!==r){var a=o.push(i(o)+"scale(",null,",",null,")");u.push({i:a-4,x:lp(t,e)},{i:a-2,x:lp(n,r)})}else 1===e&&1===r||o.push(i(o)+"scale("+e+","+r+")")}return function(n,e){var r=[],i=[];return n=t(n),e=t(e),o(n.translateX,n.translateY,e.translateX,e.translateY,r,i),u(n.rotate,e.rotate,r,i),a(n.skewX,e.skewX,r,i),c(n.scaleX,n.scaleY,e.scaleX,e.scaleY,r,i),n=e=null,function(t){for(var n,e=-1,o=i.length;++e=0&&(e=t.slice(r+1),t=t.slice(0,r)),t&&!n.hasOwnProperty(t))throw new Error("unknown type: "+t);return{type:t,name:e}})}function Rn(t,n){for(var e,r=0,i=t.length;r=0&&n._call.call(null,t),n=n._next;--id}function $n(){sd=(cd=ld.now())+fd,id=od=0;try{Wn()}finally{id=0,Gn(),sd=0}}function Zn(){var t=ld.now(),n=t-cd;n>ad&&(fd-=n,cd=t)}function Gn(){for(var t,n,e=Up,r=1/0;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:Up=n);Dp=t,Jn(r)}function Jn(t){if(!id){od&&(od=clearTimeout(od));var n=t-sd;n>24?(t<1/0&&(od=setTimeout($n,n)),ud&&(ud=clearInterval(ud))):(ud||(ud=setInterval(Zn,ad)),id=1,hd($n))}}function Qn(t,n,e,r){function i(n){return t(n=new Date(+n)),n}return i.floor=i,i.ceil=function(e){return t(e=new Date(e-1)),n(e,1),t(e),e},i.round=function(t){var n=i(t),e=i.ceil(t);return t-n0))return u;do u.push(new Date(+e));while(n(e,o),t(e),e=n)for(;t(n),!e(n);)n.setTime(n-1)},function(t,r){if(t>=t)for(;--r>=0;)for(;n(t,1),!e(t););})},e&&(i.count=function(n,r){return vd.setTime(+n),_d.setTime(+r),t(vd),t(_d),Math.floor(e(vd,_d))},i.every=function(t){return t=Math.floor(t),isFinite(t)&&t>0?t>1?i.filter(r?function(n){return r(n)%t===0}:function(n){return i.count(0,n)%t===0}):i:null}),i}function Kn(t){return Qn(function(n){n.setDate(n.getDate()-(n.getDay()+7-t)%7),n.setHours(0,0,0,0)},function(t,n){t.setDate(t.getDate()+7*n)},function(t,n){return(n-t-(n.getTimezoneOffset()-t.getTimezoneOffset())*xd)/Md})}function te(t){return Qn(function(n){n.setUTCDate(n.getUTCDate()-(n.getUTCDay()+7-t)%7),n.setUTCHours(0,0,0,0)},function(t,n){t.setUTCDate(t.getUTCDate()+7*n)},function(t,n){return(n-t)/Md})}function ne(t){if(!(n=Av.exec(t)))throw new Error("invalid format: "+t);var n,e=n[1]||" ",r=n[2]||">",i=n[3]||"-",o=n[4]||"",u=!!n[5],a=n[6]&&+n[6],c=!!n[7],s=n[8]&&+n[8].slice(1),f=n[9]||"";"n"===f?(c=!0,f="g"):Sv[f]||(f=""),(u||"0"===e&&"="===r)&&(u=!0,e="0",r="="),this.fill=e,this.align=r,this.sign=i,this.symbol=o,this.zero=u,this.width=a,this.comma=c,this.precision=s,this.type=f}function ee(t){return t}function re(n){return Cv=Pv(n),t.format=Cv.format,t.formatPrefix=Cv.formatPrefix,Cv}function ie(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 oe(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 ue(t){return{y:t,m:0,d:1,H:0,M:0,S:0,L:0}}function ae(t){function n(t,n){return function(e){var r,i,o,u=[],a=-1,c=0,s=t.length;for(e instanceof Date||(e=new Date(+e));++a=c)return-1;if(i=n.charCodeAt(u++),37===i){if(i=n.charAt(u++),o=B[i in Dv?n.charAt(u++):i],!o||(r=o(t,e,r))<0)return-1}else if(i!=e.charCodeAt(r++))return-1}return r}function i(t,n,e){var r=C.exec(n.slice(e));return r?(t.p=z[r[0].toLowerCase()],e+r[0].length):-1}function o(t,n,e){var r=L.exec(n.slice(e));return r?(t.w=R[r[0].toLowerCase()],e+r[0].length):-1}function u(t,n,e){var r=P.exec(n.slice(e));return r?(t.w=q[r[0].toLowerCase()],e+r[0].length):-1}function a(t,n,e){var r=O.exec(n.slice(e));return r?(t.m=F[r[0].toLowerCase()],e+r[0].length):-1}function c(t,n,e){var r=U.exec(n.slice(e));return r?(t.m=D[r[0].toLowerCase()],e+r[0].length):-1}function s(t,n,e){return r(t,w,n,e)}function f(t,n,e){return r(t,M,n,e)}function l(t,n,e){return r(t,T,n,e)}function h(t){return S[t.getDay()]}function p(t){return k[t.getDay()]}function d(t){return E[t.getMonth()]}function v(t){return A[t.getMonth()]}function _(t){return N[+(t.getHours()>=12)]}function y(t){return S[t.getUTCDay()]}function g(t){return k[t.getUTCDay()]}function m(t){return E[t.getUTCMonth()]}function x(t){return A[t.getUTCMonth()]}function b(t){return N[+(t.getUTCHours()>=12)]}var w=t.dateTime,M=t.date,T=t.time,N=t.periods,k=t.days,S=t.shortDays,A=t.months,E=t.shortMonths,C=fe(N),z=le(N),P=fe(k),q=le(k),L=fe(S),R=le(S),U=fe(A),D=le(A),O=fe(E),F=le(E),I={a:h,A:p,b:d,B:v,c:null,d:ke,e:ke,H:Se,I:Ae,j:Ee,L:Ce,m:ze,M:Pe,p:_,S:qe,U:Le,w:Re,W:Ue,x:null,X:null,y:De,Y:Oe,Z:Fe,"%":tr},Y={a:y,A:g,b:m,B:x,c:null,d:Ie,e:Ie,H:Ye,I:Be,j:je,L:He,m:Xe,M:Ve,p:b,S:We,U:$e,w:Ze,W:Ge,x:null,X:null,y:Je,Y:Qe,Z:Ke,"%":tr},B={a:o,A:u,b:a,B:c,c:s,d:me,e:me,H:be,I:be,j:xe,L:Te,m:ge,M:we,p:i,S:Me,U:pe,w:he,W:de,x:f,X:l,y:_e,Y:ve,Z:ye,"%":Ne};return I.x=n(M,I),I.X=n(T,I),I.c=n(w,I),Y.x=n(M,Y),Y.X=n(T,Y),Y.c=n(w,Y),{format:function(t){var e=n(t+="",I);return e.toString=function(){return t},e},parse:function(t){var n=e(t+="",ie);return n.toString=function(){return t},n},utcFormat:function(t){var e=n(t+="",Y);return e.toString=function(){return t},e},utcParse:function(t){var n=e(t,oe);return n.toString=function(){return t},n}}}function ce(t,n,e){var r=t<0?"-":"",i=(r?-t:t)+"",o=i.length;return r+(o68?1900:2e3),e+r[0].length):-1}function ye(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 ge(t,n,e){var r=Ov.exec(n.slice(e,e+2));return r?(t.m=r[0]-1,e+r[0].length):-1}function me(t,n,e){var r=Ov.exec(n.slice(e,e+2));return r?(t.d=+r[0],e+r[0].length):-1}function xe(t,n,e){var r=Ov.exec(n.slice(e,e+3));return r?(t.m=0,t.d=+r[0],e+r[0].length):-1}function be(t,n,e){var r=Ov.exec(n.slice(e,e+2));return r?(t.H=+r[0],e+r[0].length):-1}function we(t,n,e){var r=Ov.exec(n.slice(e,e+2));return r?(t.M=+r[0],e+r[0].length):-1}function Me(t,n,e){var r=Ov.exec(n.slice(e,e+2));return r?(t.S=+r[0],e+r[0].length):-1}function Te(t,n,e){var r=Ov.exec(n.slice(e,e+3));return r?(t.L=+r[0],e+r[0].length):-1}function Ne(t,n,e){var r=Fv.exec(n.slice(e,e+1));return r?e+r[0].length:-1}function ke(t,n){return ce(t.getDate(),n,2)}function Se(t,n){return ce(t.getHours(),n,2)}function Ae(t,n){return ce(t.getHours()%12||12,n,2)}function Ee(t,n){return ce(1+Cd.count($d(t),t),n,3)}function Ce(t,n){return ce(t.getMilliseconds(),n,3)}function ze(t,n){return ce(t.getMonth()+1,n,2)}function Pe(t,n){return ce(t.getMinutes(),n,2)}function qe(t,n){return ce(t.getSeconds(),n,2)}function Le(t,n){return ce(Pd.count($d(t),t),n,2)}function Re(t){return t.getDay()}function Ue(t,n){return ce(qd.count($d(t),t),n,2)}function De(t,n){return ce(t.getFullYear()%100,n,2)}function Oe(t,n){return ce(t.getFullYear()%1e4,n,4)}function Fe(t){var n=t.getTimezoneOffset();return(n>0?"-":(n*=-1,"+"))+ce(n/60|0,"0",2)+ce(n%60,"0",2)}function Ie(t,n){return ce(t.getUTCDate(),n,2)}function Ye(t,n){return ce(t.getUTCHours(),n,2)}function Be(t,n){return ce(t.getUTCHours()%12||12,n,2)}function je(t,n){return ce(1+tv.count(gv(t),t),n,3)}function He(t,n){return ce(t.getUTCMilliseconds(),n,3)}function Xe(t,n){return ce(t.getUTCMonth()+1,n,2)}function Ve(t,n){return ce(t.getUTCMinutes(),n,2)}function We(t,n){return ce(t.getUTCSeconds(),n,2)}function $e(t,n){return ce(ev.count(gv(t),t),n,2)}function Ze(t){return t.getUTCDay()}function Ge(t,n){return ce(rv.count(gv(t),t),n,2)}function Je(t,n){return ce(t.getUTCFullYear()%100,n,2)}function Qe(t,n){return ce(t.getUTCFullYear()%1e4,n,4)}function Ke(){return"+0000"}function tr(){return"%"}function nr(n){return qv=ae(n),t.timeFormat=qv.format,t.timeParse=qv.parse,t.utcFormat=qv.utcFormat,t.utcParse=qv.utcParse,qv}function er(t){return t.toISOString()}function rr(t){var n=new Date(t);return isNaN(n)?null:n}function ir(t){function n(n){var o=n+"",u=e.get(o);if(!u){if(i!==Wv)return i;e.set(o,u=r.push(n))}return t[(u-1)%t.length]}var e=o(),r=[],i=Wv;return t=null==t?[]:Vv.call(t),n.domain=function(t){if(!arguments.length)return r.slice();r=[],e=o();for(var i,u,a=-1,c=t.length;++a=e?1:r(t)}}}function fr(t){return function(n,e){var r=t(n=+n,e=+e);return function(t){return t<=0?n:t>=1?e:r(t)}}}function lr(t,n,e,r){var i=t[0],o=t[1],u=n[0],a=n[1];return o2?hr:lr,o=u=null,r}function r(n){return(o||(o=i(a,c,f?sr(t):t,s)))(+n)}var i,o,u,a=Gv,c=Gv,s=_p,f=!1;return r.invert=function(t){return(u||(u=i(c,a,cr,f?fr(n):n)))(+t)},r.domain=function(t){return arguments.length?(a=Xv.call(t,Zv),e()):a.slice()},r.range=function(t){return arguments.length?(c=Vv.call(t),e()):c.slice()},r.rangeRound=function(t){return c=Vv.call(t),s=yp,e()},r.clamp=function(t){return arguments.length?(f=!!t,e()):f},r.interpolate=function(t){return arguments.length?(s=t,e()):s},e()}function vr(t){var n=t.domain;return t.ticks=function(t){var e=n();return Bs(e[0],e[e.length-1],null==t?10:t)},t.tickFormat=function(t,e){return Jv(n(),t,e)},t.nice=function(r){var i=n(),o=i.length-1,u=null==r?10:r,a=i[0],c=i[o],s=e(a,c,u);return s&&(s=e(Math.floor(a/s)*s,Math.ceil(c/s)*s,u),i[0]=Math.floor(a/s)*s,i[o]=Math.ceil(c/s)*s,n(i)),t},t}function _r(){var t=dr(cr,lp);return t.copy=function(){return pr(t,_r())},vr(t)}function yr(){function t(t){return+t}var n=[0,1];return t.invert=t,t.domain=t.range=function(e){return arguments.length?(n=Xv.call(e,Zv),t):n.slice()},t.copy=function(){return yr().domain(n)},vr(t)}function gr(t,n){return(n=Math.log(n/t))?function(e){return Math.log(e/t)/n}:$v(n)}function mr(t,n){return t<0?function(e){return-Math.pow(-n,e)*Math.pow(-t,1-e)}:function(e){return Math.pow(n,e)*Math.pow(t,1-e)}}function xr(t){return isFinite(t)?+("1e"+t):t<0?0:t}function br(t){return 10===t?xr:t===Math.E?Math.exp:function(n){return Math.pow(t,n)}}function wr(t){return t===Math.E?Math.log:10===t&&Math.log10||2===t&&Math.log2||(t=Math.log(t),function(n){return Math.log(n)/t})}function Mr(t){return function(n){return-t(-n)}}function Tr(){function n(){return o=wr(i),u=br(i),r()[0]<0&&(o=Mr(o),u=Mr(u)),e}var e=dr(gr,mr).domain([1,10]),r=e.domain,i=10,o=wr(10),u=br(10);return e.base=function(t){return arguments.length?(i=+t,n()):i},e.domain=function(t){return arguments.length?(r(t),n()):r()},e.ticks=function(t){var n,e=r(),a=e[0],c=e[e.length-1];(n=c0){for(;hc)break;v.push(l)}}else for(;h=1;--f)if(l=s*f,!(lc)break;v.push(l)}}else v=Bs(h,p,Math.min(p-h,d)).map(u);return n?v.reverse():v},e.tickFormat=function(n,r){if(null==r&&(r=10===i?".0e":","),"function"!=typeof r&&(r=t.format(r)),n===1/0)return r;null==n&&(n=10);var a=Math.max(1,i*n/e.ticks().length);return function(t){var n=t/u(Math.round(o(t)));return n*i0?i[n-1]:e[0],n=i?[o[i-1],r]:[o[n-1],o[n]]},t.copy=function(){return Er().domain([e,r]).range(u)},vr(t)}function Cr(){function t(t){if(t<=t)return e[ks(n,t,0,r)]}var n=[.5],e=[0,1],r=1;return t.domain=function(i){return arguments.length?(n=Vv.call(i),r=Math.min(n.length,e.length-1),t):n.slice()},t.range=function(i){return arguments.length?(e=Vv.call(i),r=Math.min(n.length,e.length-1),t):e.slice()},t.invertExtent=function(t){var r=e.indexOf(t);return[n[r-1],n[r]]},t.copy=function(){return Cr().domain(n).range(e)},t}function zr(t){return new Date(t); -}function Pr(t){return t instanceof Date?+t:+new Date(+t)}function qr(t,n,r,i,o,u,a,c,s){function f(e){return(a(e)=0&&(n=t.slice(e+1),t=t.slice(0,e)),{type:t,name:n}})}function jr(t){return function(){var n=this.__on;if(n){for(var e,r=0,i=-1,o=n.length;rn?1:t>=n?0:NaN}function Qr(t){return function(){this.removeAttribute(t)}}function Kr(t){return function(){this.removeAttributeNS(t.space,t.local)}}function ti(t,n){return function(){this.setAttribute(t,n)}}function ni(t,n){return function(){this.setAttributeNS(t.space,t.local,n)}}function ei(t,n){return function(){var e=n.apply(this,arguments);null==e?this.removeAttribute(t):this.setAttribute(t,e)}}function ri(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 ii(t){return function(){this.style.removeProperty(t)}}function oi(t,n,e){return function(){this.style.setProperty(t,n,e)}}function ui(t,n,e){return function(){var r=n.apply(this,arguments);null==r?this.style.removeProperty(t):this.style.setProperty(t,r,e)}}function ai(t){return function(){delete this[t]}}function ci(t,n){return function(){this[t]=n}}function si(t,n){return function(){var e=n.apply(this,arguments);null==e?delete this[t]:this[t]=e}}function fi(t){return t.trim().split(/^|\s+/)}function li(t){return t.classList||new hi(t)}function hi(t){this._node=t,this._names=fi(t.getAttribute("class")||"")}function pi(t,n){for(var e=li(t),r=-1,i=n.length;++rTy)throw new Error("too late");return e}function Li(t,n){var e=t.__transition;if(!e||!(e=e[n])||e.state>ky)throw new Error("too late");return e}function Ri(t,n){var e=t.__transition;if(!e||!(e=e[n]))throw new Error("too late");return e}function Ui(t,n,e){function r(t){e.state=Ny,e.timer.restart(i,e.delay,e.time),e.delay<=t&&i(t-e.delay)}function i(r){var s,f,l,h;if(e.state!==Ny)return u();for(s in c)if(h=c[s],h.name===e.name){if(h.state===Sy)return pd(i);h.state===Ay?(h.state=Cy,h.timer.stop(),h.on.call("interrupt",t,t.__data__,h.index,h.group),delete c[s]):+s=0&&(t=t.slice(0,n)),!t||"start"===t})}function to(t,n,e){var r,i,o=Ki(n)?qi:Li;return function(){var u=o(this,t),a=u.on;a!==r&&(i=(r=a).copy()).on(n,e),u.on=i}}function no(t){return function(){var n=this.parentNode;for(var e in this.__transition)if(+e!==t)return;n&&n.removeChild(this)}}function eo(t,n){var e,r,i;return function(){var o=iy(this).getComputedStyle(this,null),u=o.getPropertyValue(t),a=(this.style.removeProperty(t),o.getPropertyValue(t));return u===a?null:u===e&&a===r?i:i=n(e=u,r=a)}}function ro(t){return function(){this.style.removeProperty(t)}}function io(t,n,e){var r,i;return function(){var o=iy(this).getComputedStyle(this,null).getPropertyValue(t);return o===e?null:o===r?i:i=n(r=o,e)}}function oo(t,n,e){var r,i,o;return function(){var u=iy(this).getComputedStyle(this,null),a=u.getPropertyValue(t),c=e(this);return null==c&&(this.style.removeProperty(t),c=u.getPropertyValue(t)),a===c?null:a===r&&c===i?o:o=n(r=a,i=c)}}function uo(t,n,e){function r(){var r=this,i=n.apply(r,arguments);return i&&function(n){r.style.setProperty(t,i(n),e)}}return r._value=n,r}function ao(t){return function(){this.textContent=t}}function co(t){return function(){var n=t(this);this.textContent=null==n?"":n}}function so(t,n,e,r){this._groups=t,this._parents=n,this._name=e,this._id=r}function fo(t){return Pi().transition(t)}function lo(){return++Ky}function ho(t,n){for(var e;!(e=t.__transition)||!(e=e[n]);)if(!(t=t.parentNode))return ng.time=jn(),ng;return e}function po(t,n,e){var r=t(e);return"translate("+(isFinite(r)?r:n(e))+",0)"}function vo(t,n,e){var r=t(e);return"translate(0,"+(isFinite(r)?r:n(e))+")"}function _o(t){var n=t.bandwidth()/2;return t.round()&&(n=Math.round(n)),function(e){return t(e)+n}}function yo(){return!this.__axis}function go(t,n){function e(e){var s,f=null==i?n.ticks?n.ticks.apply(n,r):n.domain():i,l=null==o?n.tickFormat?n.tickFormat.apply(n,r):ug:o,h=Math.max(u,0)+c,p=t===ag||t===sg?po:vo,d=n.range(),v=d[0]+.5,_=d[d.length-1]+.5,y=(n.bandwidth?_o:ug)(n.copy()),g=e.selection?e.selection():e,m=g.selectAll(".domain").data([null]),x=g.selectAll(".tick").data(f,n).order(),b=x.exit(),w=x.enter().append("g").attr("class","tick"),M=x.select("line"),T=x.select("text"),N=t===ag||t===fg?-1:1,k=t===fg||t===cg?(s="x","y"):(s="y","x");m=m.merge(m.enter().insert("path",".tick").attr("class","domain").attr("stroke","#000")),x=x.merge(w),M=M.merge(w.append("line").attr("stroke","#000").attr(s+"2",N*u).attr(k+"1",.5).attr(k+"2",.5)),T=T.merge(w.append("text").attr("fill","#000").attr(s,N*h).attr(k,.5).attr("dy",t===ag?"0em":t===sg?"0.71em":"0.32em")),e!==g&&(m=m.transition(e),x=x.transition(e),M=M.transition(e),T=T.transition(e),b=b.transition(e).attr("opacity",lg).attr("transform",function(t){return p(y,this.parentNode.__axis||y,t)}),w.attr("opacity",lg).attr("transform",function(t){return p(this.parentNode.__axis||y,y,t)})),b.remove(),m.attr("d",t===fg||t==cg?"M"+N*a+","+v+"H0.5V"+_+"H"+N*a:"M"+v+","+N*a+"V0.5H"+_+"V"+N*a),x.attr("opacity",1).attr("transform",function(t){return p(y,y,t)}),M.attr(s+"2",N*u),T.attr(s,N*h).text(l),g.filter(yo).attr("fill","none").attr("font-size",10).attr("font-family","sans-serif").attr("text-anchor",t===cg?"start":t===fg?"end":"middle"),g.each(function(){this.__axis=y})}var r=[],i=null,o=null,u=6,a=6,c=3;return e.scale=function(t){return arguments.length?(n=t,e):n},e.ticks=function(){return r=og.call(arguments),e},e.tickArguments=function(t){return arguments.length?(r=null==t?[]:og.call(t),e):r.slice()},e.tickValues=function(t){return arguments.length?(i=null==t?null:og.call(t),e):i&&i.slice()},e.tickFormat=function(t){return arguments.length?(o=t,e):o},e.tickSize=function(t){return arguments.length?(u=a=+t,e):u},e.tickSizeInner=function(t){return arguments.length?(u=+t,e):u},e.tickSizeOuter=function(t){return arguments.length?(a=+t,e):a},e.tickPadding=function(t){return arguments.length?(c=+t,e):c},e}function mo(t){return go(ag,t)}function xo(t){return go(cg,t)}function bo(t){return go(sg,t)}function wo(t){return go(fg,t)}function Mo(t,n){return t.parent===n.parent?1:2}function To(t){return t.reduce(No,0)/t.length}function No(t,n){return t+n.x}function ko(t){return 1+t.reduce(So,0)}function So(t,n){return Math.max(t,n.y)}function Ao(t){for(var n;n=t.children;)t=n[0];return t}function Eo(t){for(var n;n=t.children;)t=n[n.length-1];return t}function Co(t,n){if(t===n)return t;var e=t.ancestors(),r=n.ancestors(),i=null;for(t=e.pop(),n=r.pop();t===n;)i=t,t=e.pop(),n=r.pop();return i}function zo(t,n){var e,r,i,o,u,a=new Uo(t),c=+t.value&&(a.value=t.value),s=[a];for(null==n&&(n=qo);e=s.pop();)if(c&&(e.value=+e.data.value),(i=n(e.data))&&(u=i.length))for(e.children=new Array(u),o=u-1;o>=0;--o)s.push(r=e.children[o]=new Uo(i[o])),r.parent=e,r.depth=e.depth+1;return a.eachBefore(Ro)}function Po(){return zo(this).eachBefore(Lo)}function qo(t){return t.children}function Lo(t){t.data=t.data.data}function Ro(t){var n=0;do t.height=n;while((t=t.parent)&&t.height<++n)}function Uo(t){this.data=t,this.depth=this.height=0,this.parent=null}function Do(t){this._=t,this.next=null}function Oo(t,n){var e=n.x-t.x,r=n.y-t.y,i=t.r-n.r;return i*i+1e-6>e*e+r*r}function Fo(t,n){var e,r,i,o=null,u=t.head;switch(n.length){case 1:e=Io(n[0]);break;case 2:e=Yo(n[0],n[1]);break;case 3:e=Bo(n[0],n[1],n[2])}for(;u;)i=u._,r=u.next,e&&Oo(e,i)?o=u:(o?(t.tail=o,o.next=null):t.head=t.tail=null,n.push(i),e=Fo(t,n),n.pop(),t.head?(u.next=t.head,t.head=u):(u.next=null,t.head=t.tail=u),o=t.tail,o.next=r),u=r;return t.tail=o,e}function Io(t){return{x:t.x,y:t.y,r:t.r}}function Yo(t,n){var e=t.x,r=t.y,i=t.r,o=n.x,u=n.y,a=n.r,c=o-e,s=u-r,f=a-i,l=Math.sqrt(c*c+s*s);return{x:(e+o+c/l*f)/2,y:(r+u+s/l*f)/2,r:(l+i+a)/2}}function Bo(t,n,e){var r=t.x,i=t.y,o=t.r,u=n.x,a=n.y,c=n.r,s=e.x,f=e.y,l=e.r,h=2*(r-u),p=2*(i-a),d=2*(c-o),v=r*r+i*i-o*o-u*u-a*a+c*c,_=2*(r-s),y=2*(i-f),g=2*(l-o),m=r*r+i*i-o*o-s*s-f*f+l*l,x=_*p-h*y,b=(p*m-y*v)/x-r,w=(y*d-p*g)/x,M=(_*v-h*m)/x-i,T=(h*g-_*d)/x,N=w*w+T*T-1,k=2*(b*w+M*T+o),S=b*b+M*M-o*o,A=(-k-Math.sqrt(k*k-4*N*S))/(2*N);return{x:b+w*A+r,y:M+T*A+i,r:A}}function jo(t,n,e){var r=t.x,i=t.y,o=n.r+e.r,u=t.r+e.r,a=n.x-r,c=n.y-i,s=a*a+c*c;if(s){var f=.5+((u*=u)-(o*=o))/(2*s),l=Math.sqrt(Math.max(0,2*o*(u+s)-(u-=s)*u-o*o))/(2*s);e.x=r+f*a+l*c,e.y=i+f*c-l*a}else e.x=r+u,e.y=i}function Ho(t,n){var e=n.x-t.x,r=n.y-t.y,i=t.r+n.r;return i*i>e*e+r*r}function Xo(t,n,e){var r=t.x-n,i=t.y-e;return r*r+i*i}function Vo(t){this._=t,this.next=null,this.previous=null}function Wo(t){if(!(i=t.length))return 0;var n,e,r,i;if(n=t[0],n.x=0,n.y=0,!(i>1))return n.r;if(e=t[1],n.x=-e.r,e.x=n.r,e.y=0,!(i>2))return n.r+e.r;jo(e,n,r=t[2]);var o,u,a,c,s,f,l,h=n.r*n.r,p=e.r*e.r,d=r.r*r.r,v=h+p+d,_=h*n.x+p*e.x+d*r.x,y=h*n.y+p*e.y+d*r.y;n=new Vo(n),e=new Vo(e),r=new Vo(r),n.next=r.previous=e,e.next=n.previous=r,r.next=e.previous=n;t:for(a=3;a=0;)n=i[o],n.z+=e,n.m+=e,e+=n.s+(r+=n.c)}function cu(t,n,e){return t.a.parent===n.parent?t.a:e}function su(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 fu(t){for(var n,e,r,i,o,u=new su(t,0),a=[u];n=a.pop();)if(r=n._.children)for(n.children=new Array(o=r.length),i=o-1;i>=0;--i)a.push(e=n.children[i]=new su(r[i],i)),e.parent=n;return(u.parent=new su(null,0)).children=[u],u}function lu(t,n,e,r,i,o){for(var u,a,c,s,f,l,h,p,d,v,_,y,g=[],m=n.children,x=0,b=m.length,w=n.value;xp&&(p=a),y=l*l*_,d=Math.max(p/y,y/h),d>v){l-=a;break}v=d}g.push(u={value:l,dice:s0)){if(o/=d,d<0){if(o0){if(o>p)return;o>h&&(h=o)}if(o=r-c,d||!(o<0)){if(o/=d,d<0){if(o>p)return;o>h&&(h=o)}else if(d>0){if(o0)){if(o/=v,v<0){if(o0){if(o>p)return;o>h&&(h=o)}if(o=i-s,v||!(o<0)){if(o/=v,v<0){if(o>p)return;o>h&&(h=o)}else if(v>0){if(o0||p<1)||(h>0&&(t[0]=[c+h*d,s+h*v]),p<1&&(t[1]=[c+p*d,s+p*v]),!0)}}}}}function Ru(t,n,e,r,i){var o=t[1];if(o)return!0;var u,a,c=t[0],s=t.left,f=t.right,l=s[0],h=s[1],p=f[0],d=f[1],v=(l+p)/2,_=(h+d)/2;if(d===h){if(v=r)return;if(l>p){if(c){if(c[1]>=i)return}else c=[v,e];o=[v,i]}else{if(c){if(c[1]1)if(l>p){if(c){if(c[1]>=i)return}else c=[(e-a)/u,e];o=[(i-a)/u,i]}else{if(c){if(c[1]=r)return}else c=[n,u*n+a];o=[r,u*r+a]}else{if(c){if(c[0]hm||Math.abs(i[0][1]-i[1][1])>hm)||delete sm[o]}function Du(t){return am[t.index]={site:t,halfedges:[]}}function Ou(t,n){var e=t.site,r=n.left,i=n.right;return e===i&&(i=r,r=e),i?Math.atan2(i[1]-r[1],i[0]-r[0]):(e===r?(r=n[1],i=n[0]):(r=n[0],i=n[1]),Math.atan2(r[0]-i[0],i[1]-r[1]))}function Fu(t,n){return n[+(n.left!==t.site)]}function Iu(t,n){return n[+(n.left===t.site)]}function Yu(){for(var t,n,e,r,i=0,o=am.length;ihm||Math.abs(v-h)>hm)&&(c.splice(a,0,sm.push(Pu(u,p,Math.abs(d-t)hm?[t,Math.abs(l-t)hm?[Math.abs(h-r)hm?[e,Math.abs(l-e)hm?[Math.abs(h-n)=-pm)){var p=c*c+s*s,d=f*f+l*l,v=(l*p-s*d)/h,_=(c*d-f*p)/h,y=fm.pop()||new ju;y.arc=t,y.site=i,y.x=v+u,y.y=(y.cy=_+a)+Math.sqrt(v*v+_*_),t.circle=y;for(var g=null,m=cm._;m;)if(y.yhm)a=a.L;else{if(i=o-Qu(a,u),!(i>hm)){r>-hm?(n=a.P,e=a):i>-hm?(n=a,e=a.N):n=e=a;break}if(!a.R){n=a;break}a=a.R}Du(t);var c=Wu(t);if(um.insert(n,c),n||e){if(n===e)return Xu(n),e=Wu(n.site),um.insert(c,e),c.edge=e.edge=zu(n.site,c.site),Hu(n),void Hu(e);if(!e)return void(c.edge=zu(n.site,c.site));Xu(n),Xu(e);var s=n.site,f=s[0],l=s[1],h=t[0]-f,p=t[1]-l,d=e.site,v=d[0]-f,_=d[1]-l,y=2*(h*_-p*v),g=h*h+p*p,m=v*v+_*_,x=[(_*g-p*m)/y+f,(h*m-v*g)/y+l];qu(e.edge,s,d,x),c.edge=zu(s,t,null,x),e.edge=zu(t,d,null,x),Hu(n),Hu(e)}}function Ju(t,n){var e=t.site,r=e[0],i=e[1],o=i-n;if(!o)return r;var u=t.P;if(!u)return-(1/0);e=u.site;var a=e[0],c=e[1],s=c-n;if(!s)return a;var f=a-r,l=1/o-1/s,h=f/s;return l?(-h+Math.sqrt(h*h-2*l*(f*f/(-2*s)-c+s/2+i-o/2)))/l+r:(r+a)/2}function Qu(t,n){var e=t.N;if(e)return Ju(e,n);var r=t.site;return r[1]===n?r[0]:1/0}function Ku(t,n,e){return(t[0]-e[0])*(n[1]-t[1])-(t[0]-n[0])*(e[1]-t[1])}function ta(t,n){return n[1]-t[1]||n[0]-t[0]}function na(t,n){var e,r,i,o=t.sort(ta).pop();for(sm=[],am=new Array(t.length),um=new ku,cm=new ku;;)if(i=om,o&&(!i||o[1]Math.abs(t[1]-O[1])?M=!0:w=!0),O=t,b=!0,bm(),o()}function o(){var t;switch(m=O[0]-D[0],x=O[1]-D[1],k){case Mm:case wm:S&&(m=Math.max(P-l,Math.min(L-v,m)),h=l+m,_=v+m),A&&(x=Math.max(q-p,Math.min(R-y,x)),d=p+x,g=y+x);break;case Tm:S<0?(m=Math.max(P-l,Math.min(L-l,m)),h=l+m,_=v):S>0&&(m=Math.max(P-v,Math.min(L-v,m)),h=l,_=v+m),A<0?(x=Math.max(q-p,Math.min(R-p,x)),d=p+x,g=y):A>0&&(x=Math.max(q-y,Math.min(R-y,x)),d=p,g=y+x);break;case Nm:S&&(h=Math.max(P,Math.min(L,l-m*S)),_=Math.max(P,Math.min(L,v+m*S))),A&&(d=Math.max(q,Math.min(R,p-x*A)),g=Math.max(q,Math.min(R,y+x*A)))}_0&&(l=h-m),A<0?y=g-x:A>0&&(p=d-x),k=Mm,Y.attr("cursor",Em.selection),o());break;default:return}bm()}function s(){switch(t.event.keyCode){case 16:U&&(w=M=U=!1,o());break;case 18:k===Nm&&(S<0?v=_:S>0&&(l=h),A<0?y=g:A>0&&(p=d),k=Tm,o());break;case 32:k===Mm&&(t.event.altKey?(S&&(v=_-m*S,l=h+m*S),A&&(y=g-x*A,p=d+x*A),k=Nm):(S<0?v=_:S>0&&(l=h),A<0?y=g:A>0&&(p=d),k=Tm),Y.attr("cursor",Em[N]),o());break;default:return}bm()}if(t.event.touches){if(t.event.changedTouches.length1?0:t<-1?kx:Math.acos(t)}function Aa(t){return t>1?Sx:t<-1?-Sx:Math.asin(t)}function Ea(t){return(t=Ix(t/2))*t}function Ca(){}function za(t,n){t&&Xx.hasOwnProperty(t.type)&&Xx[t.type](t,n)}function Pa(t,n,e){var r,i=-1,o=t.length-e;for(n.lineStart();++i=0?1:-1,i=r*e,o=Rx(n),u=Ix(n),a=Gm*u,c=Zm*o+a*Rx(i),s=a*r*Ix(i);Wx.add(Lx(s,c)),$m=t,Zm=o,Gm=u}function Oa(t){return[Lx(t[1],t[0]),Aa(t[2])]}function Fa(t){var n=t[0],e=t[1],r=Rx(e);return[r*Rx(n),r*Ix(n),Ix(e)]}function Ia(t,n){return t[0]*n[0]+t[1]*n[1]+t[2]*n[2]}function Ya(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 Ba(t,n){t[0]+=n[0],t[1]+=n[1],t[2]+=n[2]}function ja(t,n){return[t[0]*n,t[1]*n,t[2]*n]}function Ha(t){var n=Bx(t[0]*t[0]+t[1]*t[1]+t[2]*t[2]);t[0]/=n,t[1]/=n,t[2]/=n}function Xa(t,n){ox.push(ux=[Jm=t,Km=t]),ntx&&(tx=n)}function Va(t,n){var e=Fa([t*zx,n*zx]);if(ix){var r=Ya(ix,e),i=[r[1],-r[0],0],o=Ya(i,r);Ha(o),o=Oa(o);var u,a=t-nx,c=a>0?1:-1,s=o[0]*Cx*c,f=Px(a)>180;f^(c*nxtx&&(tx=u)):(s=(s+360)%360-180,f^(c*nxtx&&(tx=n))),f?tQa(Jm,Km)&&(Km=t):Qa(t,Km)>Qa(Jm,Km)&&(Jm=t):Km>=Jm?(tKm&&(Km=t)):t>nx?Qa(Jm,t)>Qa(Jm,Km)&&(Km=t):Qa(t,Km)>Qa(Jm,Km)&&(Jm=t)}else Xa(t,n);ix=e,nx=t}function Wa(){Qx.point=Va}function $a(){ux[0]=Jm,ux[1]=Km,Qx.point=Xa,ix=null}function Za(t,n){if(ix){var e=t-nx;Jx.add(Px(e)>180?e+(e>0?360:-360):e)}else ex=t,rx=n;Zx.point(t,n),Va(t,n)}function Ga(){Zx.lineStart()}function Ja(){Za(ex,rx),Zx.lineEnd(),Px(Jx)>Tx&&(Jm=-(Km=180)),ux[0]=Jm,ux[1]=Km,ix=null}function Qa(t,n){return(n-=t)<0?n+360:n}function Ka(t,n){return t[0]-n[0]}function tc(t,n){return t[0]<=t[1]?t[0]<=n&&n<=t[1]:nkx?t-Ex:t<-kx?t+Ex:t,n]}function hc(t,n,e){return(t%=Ex)?n||e?rb(dc(t),vc(n,e)):dc(t):n||e?vc(n,e):lc}function pc(t){return function(n,e){return n+=t,[n>kx?n-Ex:n<-kx?n+Ex:n,e]}}function dc(t){var n=pc(t);return n.invert=pc(-t),n}function vc(t,n){function e(t,n){var e=Rx(n),a=Rx(t)*e,c=Ix(t)*e,s=Ix(n),f=s*r+a*i;return[Lx(c*o-f*u,a*r-s*i),Aa(f*o+c*u)]}var r=Rx(t),i=Ix(t),o=Rx(n),u=Ix(n);return e.invert=function(t,n){var e=Rx(n),a=Rx(t)*e,c=Ix(t)*e,s=Ix(n),f=s*o-c*u;return[Lx(c*o+s*u,a*r+f*i),Aa(f*r-a*i)]},e}function _c(t,n,e,r,i,o){if(e){var u=Rx(n),a=Ix(n),c=r*e;null==i?(i=n+r*Ex,o=n-c/2):(i=yc(u,i),o=yc(u,o),(r>0?io)&&(i+=r*Ex));for(var s,f=i;r>0?f>o:f0){do s.point(0===f||3===f?t:e,f>1?r:n);while((f=(f+a+4)%4)!==l)}else s.point(o[0],o[1])}function u(r,i){return Px(r[0]-t)0?0:3:Px(r[0]-e)0?2:1:Px(r[1]-n)0?1:0:i>0?3:2}function a(t,n){return c(t.x,n.x)}function c(t,n){var e=u(t,1),r=u(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(u){function c(t,n){i(t,n)&&k.point(t,n)}function s(){for(var n=0,e=0,i=_.length;er&&(l-o)*(r-u)>(h-u)*(t-o)&&++n:h<=r&&(l-o)*(r-u)<(h-u)*(t-o)&&--n;return n}function f(){k=S,v=[],_=[],N=!0}function l(){var t=s(),n=N&&t,e=(v=Js(v)).length;(n||e)&&(u.polygonStart(),n&&(u.lineStart(),o(null,null,1,u),u.lineEnd()),e&&xb(v,a,t,o,u),u.polygonEnd()),k=u,v=_=y=null}function h(){A.point=d,_&&_.push(y=[]),T=!0,M=!1,b=w=NaN}function p(){v&&(d(g,m),x&&M&&S.rejoin(),v.push(S.result())),A.point=c,M&&k.lineEnd()}function d(o,u){var a=i(o,u);if(_&&y.push([o,u]),T)g=o,m=u,x=a,T=!1,a&&(k.lineStart(),k.point(o,u));else if(a&&M)k.point(o,u);else{var c=[b=Math.max(wb,Math.min(bb,b)),w=Math.max(wb,Math.min(bb,w))],s=[o=Math.max(wb,Math.min(bb,o)),u=Math.max(wb,Math.min(bb,u))];gb(c,s,t,n,e,r)?(M||(k.lineStart(),k.point(c[0],c[1])),k.point(s[0],s[1]),a||k.lineEnd(),N=!1):a&&(k.lineStart(),k.point(o,u),N=!1)}b=o,w=u,M=a}var v,_,y,g,m,x,b,w,M,T,N,k=u,S=yb(),A={point:c,lineStart:h,lineEnd:p,polygonStart:f,polygonEnd:l};return A}}function bc(){Nb.point=Mc,Nb.lineEnd=wc}function wc(){Nb.point=Nb.lineEnd=Ca}function Mc(t,n){t*=zx,n*=zx,ib=t,ob=Ix(n),ub=Rx(n),Nb.point=Tc}function Tc(t,n){t*=zx,n*=zx;var e=Ix(n),r=Rx(n),i=Px(t-ib),o=Rx(i),u=Ix(i),a=r*u,c=ub*e-ob*r*o,s=ob*e+ub*r*o;Tb.add(Lx(Bx(a*a+c*c),s)),ib=t,ob=e,ub=r}function Nc(t,n,e){var r=Os(t,n-Tx,e).concat(n);return function(t){return r.map(function(n){return[t,n]})}}function kc(t,n,e){var r=Os(t,n-Tx,e).concat(n);return function(t){return r.map(function(n){return[n,t]})}}function Sc(){function t(){return{type:"MultiLineString",coordinates:n()}}function n(){return Os(Ux(o/_)*_,i,_).map(h).concat(Os(Ux(s/y)*y,c,y).map(p)).concat(Os(Ux(r/d)*d,e,d).filter(function(t){return Px(t%_)>Tx}).map(f)).concat(Os(Ux(a/v)*v,u,v).filter(function(t){return Px(t%y)>Tx}).map(l))}var e,r,i,o,u,a,c,s,f,l,h,p,d=10,v=d,_=90,y=360,g=2.5;return t.lines=function(){return n().map(function(t){return{type:"LineString",coordinates:t}})},t.outline=function(){return{type:"Polygon",coordinates:[h(o).concat(p(c).slice(1),h(i).reverse().slice(1),p(s).reverse().slice(1))]}},t.extent=function(n){return arguments.length?t.extentMajor(n).extentMinor(n):t.extentMinor()},t.extentMajor=function(n){return arguments.length?(o=+n[0][0],i=+n[1][0],s=+n[0][1],c=+n[1][1],o>i&&(n=o,o=i,i=n),s>c&&(n=s,s=c,c=n),t.precision(g)):[[o,s],[i,c]]},t.extentMinor=function(n){return arguments.length?(r=+n[0][0],e=+n[1][0],a=+n[0][1],u=+n[1][1],r>e&&(n=r,r=e,e=n),a>u&&(n=a,a=u,u=n),t.precision(g)):[[r,a],[e,u]]},t.step=function(n){return arguments.length?t.stepMajor(n).stepMinor(n):t.stepMinor()},t.stepMajor=function(n){return arguments.length?(_=+n[0],y=+n[1],t):[_,y]},t.stepMinor=function(n){return arguments.length?(d=+n[0],v=+n[1],t):[d,v]},t.precision=function(n){return arguments.length?(g=+n,f=Nc(a,u,90),l=kc(r,e,g),h=Nc(s,c,90),p=kc(o,i,g),t):g},t.extentMajor([[-180,-90+Tx],[180,90-Tx]]).extentMinor([[-180,-80-Tx],[180,80+Tx]])}function Ac(){return Sc()()}function Ec(){Lb.point=Cc}function Cc(t,n){Lb.point=zc,ab=sb=t,cb=fb=n}function zc(t,n){qb.add(fb*t-sb*n),sb=t,fb=n}function Pc(){zc(ab,cb)}function qc(t,n){tDb&&(Db=t),nOb&&(Ob=n)}function Lc(t,n){Ib+=t,Yb+=n,++Bb}function Rc(){Zb.point=Uc}function Uc(t,n){Zb.point=Dc,Lc(pb=t,db=n)}function Dc(t,n){var e=t-pb,r=n-db,i=Bx(e*e+r*r);jb+=i*(pb+t)/2,Hb+=i*(db+n)/2,Xb+=i,Lc(pb=t,db=n)}function Oc(){Zb.point=Lc}function Fc(){Zb.point=Yc}function Ic(){Bc(lb,hb)}function Yc(t,n){Zb.point=Bc,Lc(lb=pb=t,hb=db=n)}function Bc(t,n){var e=t-pb,r=n-db,i=Bx(e*e+r*r);jb+=i*(pb+t)/2,Hb+=i*(db+n)/2,Xb+=i,i=db*t-pb*n,Vb+=i*(pb+t),Wb+=i*(db+n),$b+=3*i,Lc(pb=t,db=n)}function jc(t){this._context=t}function Hc(){this._string=[]}function Xc(t){return"m0,"+t+"a"+t+","+t+" 0 1,1 0,"+-2*t+"a"+t+","+t+" 0 1,1 0,"+2*t+"z"}function Vc(t){return t.length>1}function Wc(t,n){return((t=t.x)[0]<0?t[1]-Sx-Tx:Sx-t[1])-((n=n.x)[0]<0?n[1]-Sx-Tx:Sx-n[1])}function $c(t){var n,e=NaN,r=NaN,i=NaN;return{lineStart:function(){t.lineStart(),n=1},point:function(o,u){var a=o>0?kx:-kx,c=Px(o-e);Px(c-kx)0?Sx:-Sx),t.point(i,r),t.lineEnd(),t.lineStart(),t.point(a,r),t.point(o,r),n=0):i!==a&&c>=kx&&(Px(e-i)Tx?qx((Ix(n)*(o=Rx(r))*Ix(e)-Ix(r)*(i=Rx(n))*Ix(t))/(i*o*u)):(n+r)/2}function Gc(t,n,e,r){var i;if(null==t)i=e*Sx,r.point(-kx,i),r.point(0,i),r.point(kx,i),r.point(kx,0),r.point(kx,-i),r.point(0,-i),r.point(-kx,-i),r.point(-kx,0),r.point(-kx,i);else if(Px(t[0]-n[0])>Tx){var o=t[0]4*n&&v--){var x=u+h,b=a+p,w=c+d,M=Bx(x*x+b*b+w*w),T=Aa(w/=M),N=Px(Px(w)-1)n||Px((y*E+g*C)/m-.5)>.3||u*h+a*p+c*d2?t[2]%360*zx:0,i()):[b*Cx,w*Cx,M*Cx]},n.precision=function(t){return arguments.length?(E=ow(r,A=t*t),o()):Bx(A)},n.fitExtent=function(t,e){return Kc(n,t,e)},n.fitSize=function(t,e){return ts(n,t,e)},function(){return u=t.apply(this,arguments),n.invert=u.invert&&e,i()}}function os(t){var n=0,e=kx/3,r=is(t),i=r(n,e);return i.parallels=function(t){return arguments.length?r(n=t[0]*zx,e=t[1]*zx):[n*Cx,e*Cx]},i}function us(t){function n(t,n){return[t*e,Ix(n)/e]}var e=Rx(t);return n.invert=function(t,n){return[t/e,Aa(n*e)]},n}function as(t,n){function e(t,n){var e=Bx(o-2*i*Ix(n))/i;return[e*Ix(t*=i),u-e*Rx(t)]}var r=Ix(t),i=(r+Ix(n))/2;if(Px(i)0?n<-Sx+Tx&&(n=-Sx+Tx):n>Sx-Tx&&(n=Sx-Tx);var e=o/Fx(ps(n),i);return[e*Ix(i*t),o-e*Rx(i*t)]}var r=Rx(t),i=t===n?Ix(t):Ox(r/Rx(n))/Ox(ps(n)/ps(t)),o=r*Fx(ps(t),i)/i;return i?(e.invert=function(t,n){var e=o-n,r=Yx(i)*Bx(t*t+e*e);return[Lx(t,Px(e))/i*Yx(e),2*qx(Fx(o/r,1/i))-Sx]},e):ls}function vs(t,n){return[t,n]}function _s(t,n){function e(t,n){var e=o-n,r=i*t;return[e*Ix(r),o-e*Rx(r)]}var r=Rx(t),i=t===n?Ix(t):(r-Rx(n))/(n-t),o=r/i+t;return Px(i)n?1:t>=n?0:NaN},Ts=function(t){return 1===t.length&&(t=n(t)),{left:function(n,e,r,i){for(null==r&&(r=0),null==i&&(i=n.length);r>>1;t(n[o],e)<0?r=o+1:i=o}return r},right:function(n,e,r,i){for(null==r&&(r=0),null==i&&(i=n.length);r>>1;t(n[o],e)>0?i=o:r=o+1}return r}}},Ns=Ts(Ms),ks=Ns.right,Ss=Ns.left,As=function(t,n){return nt?1:n>=t?0:NaN},Es=function(t){return null===t?NaN:+t},Cs=function(t,n){var e,r,i=t.length,o=0,u=0,a=-1,c=0;if(null==n)for(;++a1)return u/(c-1)},zs=function(t,n){var e=Cs(t,n);return e?Math.sqrt(e):e},Ps=function(t,n){var e,r,i,o=-1,u=t.length;if(null==n){for(;++o=r){e=i=r;break}for(;++or&&(e=r),i=r){e=i=r;break}for(;++or&&(e=r),i=f;)l.pop(),--h;var p,d=new Array(h+1);for(i=0;i<=h;++i)p=d[i]=[],p.x0=i>0?l[i-1]:s,p.x1=i=1)return+e(t[r-1],r-1,t);var r,i=(r-1)*n,o=Math.floor(i),u=+e(t[o],o,t),a=+e(t[o+1],o+1,t);return u+(a-u)*(i-o)}},Vs=function(t,n,e){return t=Rs.call(t,Es).sort(Ms),Math.ceil((e-n)/(2*(Xs(t,.75)-Xs(t,.25))*Math.pow(t.length,-1/3)))},Ws=function(t,n,e){return Math.ceil((e-n)/(3.5*zs(t)*Math.pow(t.length,-1/3)))},$s=function(t,n){var e,r,i=-1,o=t.length;if(null==n){for(;++i=r){e=r;break}for(;++ie&&(e=r)}else{for(;++i=r){e=r;break}for(;++ie&&(e=r)}return e},Zs=function(t,n){var e,r=0,i=t.length,o=-1,u=i;if(null==n)for(;++o=0;)for(r=t[i],n=r.length;--n>=0;)e[--u]=r[n];return e},Qs=function(t,n){var e,r,i=-1,o=t.length;if(null==n){for(;++i=r){e=r;break}for(;++ir&&(e=r)}else{for(;++i=r){e=r;break}for(;++ir&&(e=r)}return e},Ks=function(t){for(var n=0,e=t.length-1,r=t[0],i=new Array(e<0?0:e);n=f.length)return null!=r?r(n):null!=e?n.sort(e):n;for(var c,s,l,h=-1,p=n.length,d=f[i++],v=o(),_=u();++hf.length)return t;var i,o=l[e-1];return null!=r&&e>=f.length?i=t.entries():(i=[],t.each(function(t,r){i.push({key:r,values:n(t,e)})})),null!=o?i.sort(function(t,n){return o(t.key,n.key)}):i}var e,r,i,f=[],l=[];return i={object:function(n){return t(n,0,u,a)},map:function(n){return t(n,0,c,s)},entries:function(e){return n(t(e,0,c,s),0)},key:function(t){return f.push(t),i},sortKeys:function(t){return l[f.length-1]=t,i},sortValues:function(t){return e=t,i},rollup:function(t){return r=t,i}}},sf=o.prototype;f.prototype=l.prototype={constructor:f,has:sf.has,add:function(t){return t+="",this[af+t]=t,this},remove:sf.remove,clear:sf.clear,values:sf.keys,size:sf.size,empty:sf.empty,each:sf.each};var ff=function(t){var n=[];for(var e in t)n.push(e);return n},lf=function(t){var n=[];for(var e in t)n.push(t[e]);return n},hf=function(t){var n=[];for(var e in t)n.push({key:e,value:t[e]});return n},pf=function(t,n){return t=null==t?0:+t,n=null==n?1:+n,1===arguments.length?(n=t,t=0):n-=t,function(){return Math.random()*n+t}},df=function(t,n){var e,r;return t=null==t?0:+t,n=null==n?1:+n,function(){var i;if(null!=e)i=e,e=null;else do e=2*Math.random()-1,i=2*Math.random()-1,r=e*e+i*i;while(!r||r>1);return t+n*i*Math.sqrt(-2*Math.log(r)/r)}},vf=function(){var t=df.apply(this,arguments);return function(){return Math.exp(t())}},_f=function(t){return function(){for(var n=0,e=0;e=0;--n)s.push(t[r[o[n]][2]]);for(n=+a;na!=s>a&&u<(c-e)*(a-r)/(s-r)+e&&(f=!f),c=e,s=r;return f},Gf=function(t){for(var n,e,r=-1,i=t.length,o=t[i-1],u=o[0],a=o[1],c=0;++rKf)if(Math.abs(f*a-c*s)>Kf&&i){var h=e-o,p=r-u,d=a*a+c*c,v=h*h+p*p,_=Math.sqrt(d),y=Math.sqrt(l),g=i*Math.tan((Jf-Math.acos((d+l-v)/(2*_*y)))/2),m=g/y,x=g/_;Math.abs(m-1)>Kf&&this._.push("L",t+m*s,",",n+m*f),this._.push("A",i,",",i,",0,0,",+(f*h>s*p),",",this._x1=t+x*a,",",this._y1=n+x*c)}else this._.push("L",this._x1=t,",",this._y1=n);else;},arc:function(t,n,e,r,i,o){t=+t,n=+n,e=+e;var u=e*Math.cos(r),a=e*Math.sin(r),c=t+u,s=n+a,f=1^o,l=o?r-i:i-r;if(e<0)throw new Error("negative radius: "+e);null===this._x1?this._.push("M",c,",",s):(Math.abs(this._x1-c)>Kf||Math.abs(this._y1-s)>Kf)&&this._.push("L",c,",",s),e&&(l>tl?this._.push("A",e,",",e,",0,1,",f,",",t-u,",",n-a,"A",e,",",e,",0,1,",f,",",this._x1=c,",",this._y1=s):(l<0&&(l=l%Qf+Qf),this._.push("A",e,",",e,",0,",+(l>=Jf),",",f,",",this._x1=t+e*Math.cos(i),",",this._y1=n+e*Math.sin(i))))},rect:function(t,n,e,r){this._.push("M",this._x0=this._x1=+t,",",this._y0=this._y1=+n,"h",+e,"v",+r,"h",-e,"Z")},toString:function(){return this._.join("")}};var nl=function(t){var n=+this._x.call(null,t),e=+this._y.call(null,t);return R(this.cover(n,e),n,e,t)},el=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{if(!(e>t||t>i||r>n||n>o))return this;var u,a,c=i-e,s=this._root;switch(a=(n<(r+o)/2)<<1|t<(e+i)/2){case 0:do u=new Array(4),u[a]=s,s=u;while(c*=2,i=e+c,o=r+c,t>i||n>o);break;case 1:do u=new Array(4),u[a]=s,s=u;while(c*=2,e=i-c,o=r+c,e>t||n>o);break;case 2:do u=new Array(4),u[a]=s,s=u;while(c*=2,i=e+c,r=o-c,t>i||r>n);break;case 3:do u=new Array(4),u[a]=s,s=u;while(c*=2,e=i-c,r=o-c,e>t||r>n)}this._root&&this._root.length&&(this._root=s)}return this._x0=e,this._y0=r,this._x1=i,this._y1=o,this},rl=function(){var t=[];return this.visit(function(n){if(!n.length)do t.push(n.data);while(n=n.next)}),t},il=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]]},ol=function(t,n,e,r,i){this.node=t,this.x0=n,this.y0=e,this.x1=r,this.y1=i},ul=function(t,n,e){var r,i,o,u,a,c,s,f=this._x0,l=this._y0,h=this._x1,p=this._y1,d=[],v=this._root;for(v&&d.push(new ol(v,f,l,h,p)),null==e?e=1/0:(f=t-e,l=n-e,h=t+e,p=n+e,e*=e);c=d.pop();)if(!(!(v=c.node)||(i=c.x0)>h||(o=c.y0)>p||(u=c.x1)=y)<<1|t>=_)&&(c=d[d.length-1],d[d.length-1]=d[d.length-1-s],d[d.length-1-s]=c)}else{var g=t-+this._x.call(null,v.data),m=n-+this._y.call(null,v.data),x=g*g+m*m;if(x=(a=(d+_)/2))?d=a:_=a,(f=u>=(c=(v+y)/2))?v=c:y=c,n=p,!(p=p[l=f<<1|s]))return this;if(!p.length)break;(n[l+1&3]||n[l+2&3]||n[l+3&3])&&(e=n,h=l)}for(;p.data!==t;)if(r=p,!(p=p.next))return this;return(i=p.next)&&delete p.next,r?(i?r.next=i:delete r.next,this):n?(i?n[l]=i:delete n[l],(p=n[0]||n[1]||n[2]||n[3])&&p===(n[3]||n[2]||n[1]||n[0])&&!p.length&&(e?e[h]=p:this._root=p),this):(this._root=i,this)},cl=function(){return this._root},sl=function(){var t=0;return this.visit(function(n){if(!n.length)do++t;while(n=n.next)}),t},fl=function(t){var n,e,r,i,o,u,a=[],c=this._root;for(c&&a.push(new ol(c,this._x0,this._y0,this._x1,this._y1));n=a.pop();)if(!t(c=n.node,r=n.x0,i=n.y0,o=n.x1,u=n.y1)&&c.length){var s=(r+o)/2,f=(i+u)/2;(e=c[3])&&a.push(new ol(e,s,f,o,u)),(e=c[2])&&a.push(new ol(e,r,f,s,u)),(e=c[1])&&a.push(new ol(e,s,i,o,f)),(e=c[0])&&a.push(new ol(e,r,i,s,f))}return this},ll=function(t){var n,e=[],r=[];for(this._root&&e.push(new ol(this._root,this._x0,this._y0,this._x1,this._y1));n=e.pop();){var i=n.node;if(i.length){var o,u=n.x0,a=n.y0,c=n.x1,s=n.y1,f=(u+c)/2,l=(a+s)/2;(o=i[0])&&e.push(new ol(o,u,a,f,l)),(o=i[1])&&e.push(new ol(o,f,a,c,l)),(o=i[2])&&e.push(new ol(o,u,l,f,s)),(o=i[3])&&e.push(new ol(o,f,l,c,s))}r.push(n)}for(;n=r.pop();)t(n.node,n.x0,n.y0,n.x1,n.y1);return this},hl=function(t){return arguments.length?(this._x=t,this):this._x},pl=function(t){return arguments.length?(this._y=t,this):this._y},dl=I.prototype=Y.prototype;dl.copy=function(){var t,n,e=new Y(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=B(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]=B(n));return e},dl.add=nl,dl.addAll=U,dl.cover=el,dl.data=rl,dl.extent=il,dl.find=ul,dl.remove=al,dl.removeAll=D,dl.root=cl,dl.size=sl,dl.visit=fl,dl.visitAfter=ll,dl.x=hl,dl.y=pl;var vl=[].slice,_l={};j.prototype=Z.prototype={constructor:j,defer:function(t){if("function"!=typeof t||this._call)throw new Error;if(null!=this._error)return this;var n=vl.call(arguments,1);return n.push(t),++this._waiting,this._tasks.push(n),H(this),this},abort:function(){return null==this._error&&W(this,new Error("abort")),this},await:function(t){if("function"!=typeof t||this._call)throw new Error;return this._call=function(n,e){t.apply(null,[n].concat(e))},$(this),this},awaitAll:function(t){if("function"!=typeof t||this._call)throw new Error;return this._call=t,$(this),this}};var yl=function(t){ -return function(){return t}},gl=1e-12,ml=Math.PI,xl=ml/2,bl=2*ml,wl=function(){function t(){var t,s,f=+n.apply(this,arguments),l=+e.apply(this,arguments),h=o.apply(this,arguments)-xl,p=u.apply(this,arguments)-xl,d=Math.abs(p-h),v=p>h;if(c||(c=t=L()),lgl)if(d>bl-gl)c.moveTo(l*Math.cos(h),l*Math.sin(h)),c.arc(0,0,l,h,p,!v),f>gl&&(c.moveTo(f*Math.cos(p),f*Math.sin(p)),c.arc(0,0,f,p,h,v));else{var _,y,g=h,m=p,x=h,b=p,w=d,M=d,T=a.apply(this,arguments)/2,N=T>gl&&(i?+i.apply(this,arguments):Math.sqrt(f*f+l*l)),k=Math.min(Math.abs(l-f)/2,+r.apply(this,arguments)),S=k,A=k;if(N>gl){var E=nt(N/f*Math.sin(T)),C=nt(N/l*Math.sin(T));(w-=2*E)>gl?(E*=v?1:-1,x+=E,b-=E):(w=0,x=b=(h+p)/2),(M-=2*C)>gl?(C*=v?1:-1,g+=C,m-=C):(M=0,g=m=(h+p)/2)}var z=l*Math.cos(g),P=l*Math.sin(g),q=f*Math.cos(b),R=f*Math.sin(b);if(k>gl){var U=l*Math.cos(m),D=l*Math.sin(m),O=f*Math.cos(x),F=f*Math.sin(x);if(dgl?et(z,P,O,F,U,D,q,R):[q,R],Y=z-I[0],B=P-I[1],j=U-I[0],H=D-I[1],X=1/Math.sin(Math.acos((Y*j+B*H)/(Math.sqrt(Y*Y+B*B)*Math.sqrt(j*j+H*H)))/2),V=Math.sqrt(I[0]*I[0]+I[1]*I[1]);S=Math.min(k,(f-V)/(X-1)),A=Math.min(k,(l-V)/(X+1))}}M>gl?A>gl?(_=rt(O,F,z,P,l,A,v),y=rt(U,D,q,R,l,A,v),c.moveTo(_.cx+_.x01,_.cy+_.y01),Agl&&w>gl?S>gl?(_=rt(q,R,U,D,f,-S,v),y=rt(z,P,O,F,f,-S,v),c.lineTo(_.cx+_.x01,_.cy+_.y01),S=f;--l)s.point(_[l],y[l]);s.lineEnd(),s.areaEnd()}v&&(_[n]=+e(h,n,t),y[n]=+i(h,n,t),s.point(r?+r(h,n,t):_[n],o?+o(h,n,t):y[n]))}if(p)return s=null,p+""||null}function n(){return Tl().defined(u).curve(c).context(a)}var e=ot,r=null,i=yl(0),o=ut,u=yl(!0),a=null,c=Ml,s=null;return t.x=function(n){return arguments.length?(e="function"==typeof n?n:yl(+n),r=null,t):e},t.x0=function(n){return arguments.length?(e="function"==typeof n?n:yl(+n),t):e},t.x1=function(n){return arguments.length?(r=null==n?null:"function"==typeof n?n:yl(+n),t):r},t.y=function(n){return arguments.length?(i="function"==typeof n?n:yl(+n),o=null,t):i},t.y0=function(n){return arguments.length?(i="function"==typeof n?n:yl(+n),t):i},t.y1=function(n){return arguments.length?(o=null==n?null:"function"==typeof n?n:yl(+n),t):o},t.lineX0=t.lineY0=function(){return n().x(e).y(i)},t.lineY1=function(){return n().x(e).y(o)},t.lineX1=function(){return n().x(r).y(i)},t.defined=function(n){return arguments.length?(u="function"==typeof n?n:yl(!!n),t):u},t.curve=function(n){return arguments.length?(c=n,null!=a&&(s=c(a)),t):c},t.context=function(n){return arguments.length?(null==n?a=s=null:s=c(a=n),t):a},t},kl=function(t,n){return nt?1:n>=t?0:NaN},Sl=function(t){return t},Al=function(){function t(t){var a,c,s,f,l,h=t.length,p=0,d=new Array(h),v=new Array(h),_=+i.apply(this,arguments),y=Math.min(bl,Math.max(-bl,o.apply(this,arguments)-_)),g=Math.min(Math.abs(y)/h,u.apply(this,arguments)),m=g*(y<0?-1:1);for(a=0;a0&&(p+=l);for(null!=e?d.sort(function(t,n){return e(v[t],v[n])}):null!=r&&d.sort(function(n,e){return r(t[n],t[e])}),a=0,s=p?(y-h*m)/p:0;a0?l*s:0)+m,v[c]={data:t[c],index:a,value:l,startAngle:_,endAngle:f,padAngle:g};return v}var n=Sl,e=kl,r=null,i=yl(0),o=yl(bl),u=yl(0);return t.value=function(e){return arguments.length?(n="function"==typeof e?e:yl(+e),t):n},t.sortValues=function(n){return arguments.length?(e=n,r=null,t):e},t.sort=function(n){return arguments.length?(r=n,e=null,t):r},t.startAngle=function(n){return arguments.length?(i="function"==typeof n?n:yl(+n),t):i},t.endAngle=function(n){return arguments.length?(o="function"==typeof n?n:yl(+n),t):o},t.padAngle=function(n){return arguments.length?(u="function"==typeof n?n:yl(+n),t):u},t},El=ct(Ml);at.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))}};var Cl=function(){return st(Tl().curve(El))},zl=function(){var t=Nl().curve(El),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 st(e())},delete t.lineX0,t.lineEndAngle=function(){return st(r())},delete t.lineX1,t.lineInnerRadius=function(){return st(i())},delete t.lineY0,t.lineOuterRadius=function(){return st(o())},delete t.lineY1,t.curve=function(t){return arguments.length?n(ct(t)):n()._curve},t},Pl={draw:function(t,n){var e=Math.sqrt(n/ml);t.moveTo(e,0),t.arc(0,0,e,0,bl)}},ql={draw:function(t,n){var e=Math.sqrt(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()}},Ll=Math.sqrt(1/3),Rl=2*Ll,Ul={draw:function(t,n){var e=Math.sqrt(n/Rl),r=e*Ll;t.moveTo(0,-e),t.lineTo(r,0),t.lineTo(0,e),t.lineTo(-r,0),t.closePath()}},Dl=.8908130915292852,Ol=Math.sin(ml/10)/Math.sin(7*ml/10),Fl=Math.sin(bl/10)*Ol,Il=-Math.cos(bl/10)*Ol,Yl={draw:function(t,n){var e=Math.sqrt(n*Dl),r=Fl*e,i=Il*e;t.moveTo(0,-e),t.lineTo(r,i);for(var o=1;o<5;++o){var u=bl*o/5,a=Math.cos(u),c=Math.sin(u);t.lineTo(c*e,-a*e),t.lineTo(a*r-c*i,c*r+a*i)}t.closePath()}},Bl={draw:function(t,n){var e=Math.sqrt(n),r=-e/2;t.rect(r,r,e,e)}},jl=Math.sqrt(3),Hl={draw:function(t,n){var e=-Math.sqrt(n/(3*jl));t.moveTo(0,2*e),t.lineTo(-jl*e,-e),t.lineTo(jl*e,-e),t.closePath()}},Xl=-.5,Vl=Math.sqrt(3)/2,Wl=1/Math.sqrt(12),$l=3*(Wl/2+1),Zl={draw:function(t,n){var e=Math.sqrt(n/$l),r=e/2,i=e*Wl,o=r,u=e*Wl+e,a=-o,c=u;t.moveTo(r,i),t.lineTo(o,u),t.lineTo(a,c),t.lineTo(Xl*r-Vl*i,Vl*r+Xl*i),t.lineTo(Xl*o-Vl*u,Vl*o+Xl*u),t.lineTo(Xl*a-Vl*c,Vl*a+Xl*c),t.lineTo(Xl*r+Vl*i,Xl*i-Vl*r),t.lineTo(Xl*o+Vl*u,Xl*u-Vl*o),t.lineTo(Xl*a+Vl*c,Xl*c-Vl*a),t.closePath()}},Gl=[Pl,ql,Ul,Bl,Yl,Hl,Zl],Jl=function(){function t(){var t;if(r||(r=t=L()),n.apply(this,arguments).draw(r,+e.apply(this,arguments)),t)return r=null,t+""||null}var n=yl(Pl),e=yl(64),r=null;return t.type=function(e){return arguments.length?(n="function"==typeof e?e:yl(e),t):n},t.size=function(n){return arguments.length?(e="function"==typeof n?n:yl(+n),t):e},t.context=function(n){return arguments.length?(r=null==n?null:n,t):r},t},Ql=function(){};lt.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:ft(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:ft(this,t,n)}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=n}};var Kl=function(t){return new lt(t)};ht.prototype={areaStart:Ql,areaEnd:Ql,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:ft(this,t,n)}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=n}};var th=function(t){return new ht(t)};pt.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:ft(this,t,n)}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=n}};var nh=function(t){return new pt(t)};dt.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],u=t[e]-i,a=n[e]-o,c=-1;++c<=e;)r=c/e,this._basis.point(this._beta*t[c]+(1-this._beta)*(i+r*u),this._beta*n[c]+(1-this._beta)*(o+r*a));this._x=this._y=null,this._basis.lineEnd()},point:function(t,n){this._x.push(+t),this._y.push(+n)}};var eh=function t(n){function e(t){return 1===n?new lt(t):new dt(t,n)}return e.beta=function(n){return t(+n)},e}(.85);_t.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:vt(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:vt(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 rh=function t(n){function e(t){return new _t(t,n)}return e.tension=function(n){return t(+n)},e}(0);yt.prototype={areaStart:Ql,areaEnd:Ql,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:vt(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 ih=function t(n){function e(t){return new yt(t,n)}return e.tension=function(n){return t(+n)},e}(0);gt.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:vt(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 oh=function t(n){function e(t){return new gt(t,n)}return e.tension=function(n){return t(+n)},e}(0);xt.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:mt(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 uh=function t(n){function e(t){return n?new xt(t,n):new _t(t,0)}return e.alpha=function(n){return t(+n)},e}(.5);bt.prototype={areaStart:Ql,areaEnd:Ql,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:mt(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 ah=function t(n){function e(t){return n?new bt(t,n):new yt(t,0)}return e.alpha=function(n){return t(+n)},e}(.5);wt.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:mt(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 ch=function t(n){function e(t){return n?new wt(t,n):new gt(t,0)}return e.alpha=function(n){return t(+n)},e}(.5);Mt.prototype={areaStart:Ql,areaEnd:Ql,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))}};var sh=function(t){return new Mt(t)};At.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:St(this,this._t0,kt(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(t=+t,n=+n,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,St(this,kt(this,e=Nt(this,t,n)),e);break;default:St(this,this._t0,e=Nt(this,t,n))}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=n,this._t0=e}}},(Et.prototype=Object.create(At.prototype)).point=function(t,n){At.prototype.point.call(this,n,t)},Ct.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)}},qt.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=Lt(t),i=Lt(n),o=0,u=1;u=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 lh=function(t){return new Rt(t,.5)},hh=Array.prototype.slice,ph=function(t,n){if((r=t.length)>1)for(var e,r,i=1,o=t[n[0]],u=o.length;i=0;)e[n]=n;return e},vh=function(){function t(t){var o,u,a=n.apply(this,arguments),c=t.length,s=a.length,f=new Array(s);for(o=0;o0){for(var e,r,i,o=0,u=t[0].length;o0){for(var e,r=0,i=t[n[0]],o=i.length;r0&&(r=(e=t[n[0]]).length)>0){for(var e,r,i,o=0,u=1;u=240?t-240:t+120,i,r),Qt(t,i,r),Qt(t<120?t+240:t-120,i,r),this.opacity)},displayable:function(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1}}));var Rh=Math.PI/180,Uh=180/Math.PI,Dh=18,Oh=.95047,Fh=1,Ih=1.08883,Yh=4/29,Bh=6/29,jh=3*Bh*Bh,Hh=Bh*Bh*Bh;Mh(nn,tn,It(Yt,{brighter:function(t){return new nn(this.l+Dh*(null==t?1:t),this.a,this.b,this.opacity)},darker:function(t){return new nn(this.l-Dh*(null==t?1:t),this.a,this.b,this.opacity)},rgb:function(){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 t=Fh*rn(t),n=Oh*rn(n),e=Ih*rn(e),new Wt(on(3.2404542*n-1.5371385*t-.4985314*e),on(-.969266*n+1.8760108*t+.041556*e),on(.0556434*n-.2040259*t+1.0572252*e),this.opacity)}})),Mh(sn,cn,It(Yt,{brighter:function(t){return new sn(this.h,this.c,this.l+Dh*(null==t?1:t),this.opacity)},darker:function(t){return new sn(this.h,this.c,this.l-Dh*(null==t?1:t),this.opacity)},rgb:function(){return Kt(this).rgb()}}));var Xh=-.14861,Vh=1.78277,Wh=-.29227,$h=-.90649,Zh=1.97294,Gh=Zh*$h,Jh=Zh*Vh,Qh=Vh*Wh-$h*Xh;Mh(hn,ln,It(Yt,{brighter:function(t){return t=null==t?Nh:Math.pow(Nh,t),new hn(this.h,this.s,this.l*t,this.opacity)},darker:function(t){return t=null==t?Th:Math.pow(Th,t),new hn(this.h,this.s,this.l*t,this.opacity)},rgb:function(){var t=isNaN(this.h)?0:(this.h+120)*Rh,n=+this.l,e=isNaN(this.s)?0:this.s*n*(1-n),r=Math.cos(t),i=Math.sin(t);return new Wt(255*(n+e*(Xh*r+Vh*i)),255*(n+e*(Wh*r+$h*i)),255*(n+e*(Zh*r)),this.opacity)}}));var Kh,tp,np,ep,rp=function(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],u=r>0?t[r-1]:2*i-o,a=ro&&(i=n.slice(o,i),a[u]?a[u]+=i:a[++u]=i),(e=e[0])===(r=r[0])?a[u]?a[u]+=r:a[++u]=r:(a[++u]=null,c.push({i:u,x:lp(e,r)})),o=dp.lastIndex;return o0)for(var e,r,i=new Array(e),o=0;o=s)return u;if(i)return i=!1,o;var n,e=f;if(34===t.charCodeAt(e)){for(var r=e;r++=200&&e<300||304===e){if(u)try{n=u.call(r,f)}catch(t){return void c.call("error",r,t)}else n=f;c.call("load",r,n)}else c.call("error",r,t)}var r,i,u,a,c=Pn("beforesend","progress","load","error"),s=o(),f=new XMLHttpRequest,l=null,h=null,p=0;if("undefined"==typeof XDomainRequest||"withCredentials"in f||!/^(http(s)?:)?\/\//.test(t)||(f=new XDomainRequest),"onload"in f?f.onload=f.onerror=f.ontimeout=e:f.onreadystatechange=function(t){f.readyState>3&&e(t)},f.onprogress=function(t){c.call("progress",r,t)},r={header:function(t,n){return t=(t+"").toLowerCase(),arguments.length<2?s.get(t):(null==n?s.remove(t):s.set(t,n+""),r)},mimeType:function(t){return arguments.length?(i=null==t?null:t+"",r):i},responseType:function(t){return arguments.length?(a=t,r):a},timeout:function(t){return arguments.length?(p=+t,r):p},user:function(t){return arguments.length<1?l:(l=null==t?null:t+"",r)},password:function(t){return arguments.length<1?h:(h=null==t?null:t+"",r)},response:function(t){return u=t,r},get:function(t,n){return r.send("GET",t,n)},post:function(t,n){return r.send("POST",t,n)},send:function(n,e,o){return f.open(n,t,!0,l,h),null==i||s.has("accept")||s.set("accept",i+",*/*"),f.setRequestHeader&&s.each(function(t,n){f.setRequestHeader(n,t)}),null!=i&&f.overrideMimeType&&f.overrideMimeType(i),null!=a&&(f.responseType=a),p>0&&(f.timeout=p),null==o&&"function"==typeof e&&(o=e,e=null),null!=o&&1===o.length&&(o=In(o)),null!=o&&r.on("error",o).on("load",function(t){o(null,t)}),c.call("beforesend",r,f),f.send(null==e?null:e),r},abort:function(){return f.abort(),r},on:function(){var t=c.on.apply(c,arguments);return t===c?r:t}},null!=n){if("function"!=typeof n)throw new Error("invalid callback: "+n);return r.get(n)}return r},Gp=function(t,n){return function(e,r){var i=Zp(e).mimeType(t).response(n);if(null!=r){if("function"!=typeof r)throw new Error("invalid callback: "+r);return i.get(r)}return i}},Jp=Gp("text/html",function(t){return document.createRange().createContextualFragment(t.responseText)}),Qp=Gp("application/json",function(t){return JSON.parse(t.responseText)}),Kp=Gp("text/plain",function(t){return t.responseText}),td=Gp("application/xml",function(t){var n=t.responseXML;if(!n)throw new Error("parse error");return n}),nd=function(t,n){return function(e,r,i){arguments.length<3&&(i=r,r=null);var o=Zp(e).mimeType(t);return o.row=function(t){return arguments.length?o.response(Bn(n,r=t)):r},o.row(r),i?o.get(i):o}},ed=nd("text/csv",Ip),rd=nd("text/tab-separated-values",Xp),id=0,od=0,ud=0,ad=1e3,cd=0,sd=0,fd=0,ld="object"==typeof performance&&performance.now?performance:Date,hd="function"==typeof requestAnimationFrame?requestAnimationFrame:function(t){setTimeout(t,17)};Xn.prototype=Vn.prototype={constructor:Xn,restart:function(t,n,e){if("function"!=typeof t)throw new TypeError("callback is not a function");e=(null==e?jn():+e)+(null==n?0:+n),this._next||Dp===this||(Dp?Dp._next=this:Up=this,Dp=this),this._call=t,this._time=e,Jn()},stop:function(){this._call&&(this._call=null,this._time=1/0,Jn())}};var pd=function(t,n,e){var r=new Xn;return n=null==n?0:+n,r.restart(function(e){r.stop(),t(e+n)},n,e),r},dd=function(t,n,e){var r=new Xn,i=n;return null==n?(r.restart(t,n,e),r):(n=+n,e=null==e?jn():+e,r.restart(function o(u){u+=i,r.restart(o,i+=n,e),t(u)},n,e),r)},vd=new Date,_d=new Date,yd=Qn(function(){},function(t,n){t.setTime(+t+n)},function(t,n){return n-t});yd.every=function(t){return t=Math.floor(t),isFinite(t)&&t>0?t>1?Qn(function(n){n.setTime(Math.floor(n/t)*t)},function(n,e){n.setTime(+n+e*t)},function(n,e){return(e-n)/t}):yd:null};var gd=yd.range,md=1e3,xd=6e4,bd=36e5,wd=864e5,Md=6048e5,Td=Qn(function(t){t.setTime(Math.floor(t/md)*md)},function(t,n){t.setTime(+t+n*md)},function(t,n){return(n-t)/md},function(t){return t.getUTCSeconds()}),Nd=Td.range,kd=Qn(function(t){t.setTime(Math.floor(t/xd)*xd)},function(t,n){t.setTime(+t+n*xd)},function(t,n){return(n-t)/xd},function(t){return t.getMinutes()}),Sd=kd.range,Ad=Qn(function(t){var n=t.getTimezoneOffset()*xd%bd;n<0&&(n+=bd),t.setTime(Math.floor((+t-n)/bd)*bd+n)},function(t,n){t.setTime(+t+n*bd)},function(t,n){return(n-t)/bd},function(t){return t.getHours()}),Ed=Ad.range,Cd=Qn(function(t){t.setHours(0,0,0,0)},function(t,n){t.setDate(t.getDate()+n)},function(t,n){return(n-t-(n.getTimezoneOffset()-t.getTimezoneOffset())*xd)/wd},function(t){return t.getDate()-1}),zd=Cd.range,Pd=Kn(0),qd=Kn(1),Ld=Kn(2),Rd=Kn(3),Ud=Kn(4),Dd=Kn(5),Od=Kn(6),Fd=Pd.range,Id=qd.range,Yd=Ld.range,Bd=Rd.range,jd=Ud.range,Hd=Dd.range,Xd=Od.range,Vd=Qn(function(t){t.setDate(1),t.setHours(0,0,0,0)},function(t,n){t.setMonth(t.getMonth()+n)},function(t,n){return n.getMonth()-t.getMonth()+12*(n.getFullYear()-t.getFullYear())},function(t){return t.getMonth()}),Wd=Vd.range,$d=Qn(function(t){t.setMonth(0,1),t.setHours(0,0,0,0)},function(t,n){t.setFullYear(t.getFullYear()+n)},function(t,n){return n.getFullYear()-t.getFullYear()},function(t){return t.getFullYear()});$d.every=function(t){return isFinite(t=Math.floor(t))&&t>0?Qn(function(n){n.setFullYear(Math.floor(n.getFullYear()/t)*t),n.setMonth(0,1),n.setHours(0,0,0,0)},function(n,e){n.setFullYear(n.getFullYear()+e*t)}):null};var Zd=$d.range,Gd=Qn(function(t){t.setUTCSeconds(0,0)},function(t,n){t.setTime(+t+n*xd)},function(t,n){return(n-t)/xd},function(t){return t.getUTCMinutes()}),Jd=Gd.range,Qd=Qn(function(t){t.setUTCMinutes(0,0,0)},function(t,n){t.setTime(+t+n*bd)},function(t,n){return(n-t)/bd},function(t){return t.getUTCHours()}),Kd=Qd.range,tv=Qn(function(t){t.setUTCHours(0,0,0,0)},function(t,n){t.setUTCDate(t.getUTCDate()+n)},function(t,n){return(n-t)/wd},function(t){return t.getUTCDate()-1}),nv=tv.range,ev=te(0),rv=te(1),iv=te(2),ov=te(3),uv=te(4),av=te(5),cv=te(6),sv=ev.range,fv=rv.range,lv=iv.range,hv=ov.range,pv=uv.range,dv=av.range,vv=cv.range,_v=Qn(function(t){t.setUTCDate(1),t.setUTCHours(0,0,0,0)},function(t,n){t.setUTCMonth(t.getUTCMonth()+n)},function(t,n){return n.getUTCMonth()-t.getUTCMonth()+12*(n.getUTCFullYear()-t.getUTCFullYear())},function(t){return t.getUTCMonth()}),yv=_v.range,gv=Qn(function(t){t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)},function(t,n){t.setUTCFullYear(t.getUTCFullYear()+n)},function(t,n){return n.getUTCFullYear()-t.getUTCFullYear()},function(t){return t.getUTCFullYear()});gv.every=function(t){return isFinite(t=Math.floor(t))&&t>0?Qn(function(n){n.setUTCFullYear(Math.floor(n.getUTCFullYear()/t)*t),n.setUTCMonth(0,1),n.setUTCHours(0,0,0,0)},function(n,e){n.setUTCFullYear(n.getUTCFullYear()+e*t)}):null};var mv,xv=gv.range,bv=function(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)]},wv=function(t){return t=bv(Math.abs(t)),t?t[1]:NaN},Mv=function(t,n){return function(e,r){for(var i=e.length,o=[],u=0,a=t[0],c=0;i>0&&a>0&&(c+a+1>r&&(a=Math.max(1,r-c)),o.push(e.substring(i-=a,i+a)),!((c+=a+1)>r));)a=t[u=(u+1)%t.length];return o.reverse().join(n)}},Tv=function(t,n){t=t.toPrecision(n);t:for(var e,r=t.length,i=1,o=-1;i0&&(o=0)}return o>0?t.slice(0,o)+t.slice(e+1):t},Nv=function(t,n){var e=bv(t,n);if(!e)return t+"";var r=e[0],i=e[1],o=i-(mv=3*Math.max(-8,Math.min(8,Math.floor(i/3))))+1,u=r.length;return o===u?r:o>u?r+new Array(o-u+1).join("0"):o>0?r.slice(0,o)+"."+r.slice(o):"0."+new Array(1-o).join("0")+bv(t,Math.max(0,n+o-1))[0]},kv=function(t,n){var e=bv(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")},Sv={"":Tv,"%":function(t,n){return(100*t).toFixed(n)},b:function(t){return Math.round(t).toString(2)},c:function(t){return t+""},d:function(t){return Math.round(t).toString(10)},e:function(t,n){return t.toExponential(n)},f:function(t,n){return t.toFixed(n)},g:function(t,n){return t.toPrecision(n)},o:function(t){return Math.round(t).toString(8)},p:function(t,n){return kv(100*t,n)},r:kv,s:Nv,X:function(t){return Math.round(t).toString(16).toUpperCase()},x:function(t){return Math.round(t).toString(16)}},Av=/^(?:(.)?([<>=^]))?([+\-\( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?([a-z%])?$/i,Ev=function(t){return new ne(t)};ne.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(null==this.width?"":Math.max(1,0|this.width))+(this.comma?",":"")+(null==this.precision?"":"."+Math.max(0,0|this.precision))+this.type};var Cv,zv=["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"],Pv=function(t){function n(t){function n(t){var n,i,c,g=d,m=v;if("c"===p)m=_(t)+m,t="";else{t=+t;var x=(t<0||1/t<0)&&(t*=-1,!0);if(t=_(t,h),x)for(n=-1,i=t.length,x=!1;++nc||c>57){m=(46===c?o+t.slice(n+1):t.slice(n))+m,t=t.slice(0,n);break}}l&&!s&&(t=r(t,1/0));var b=g.length+t.length+m.length,w=b>1)+g+t+m+w.slice(b)}return w+g+t+m}t=Ev(t);var e=t.fill,u=t.align,a=t.sign,c=t.symbol,s=t.zero,f=t.width,l=t.comma,h=t.precision,p=t.type,d="$"===c?i[0]:"#"===c&&/[boxX]/.test(p)?"0"+p.toLowerCase():"",v="$"===c?i[1]:/[%p]/.test(p)?"%":"",_=Sv[p],y=!p||/[defgprs%]/.test(p);return h=null==h?p?6:12:/[gprs]/.test(p)?Math.max(1,Math.min(21,h)):Math.max(0,Math.min(20,h)),n.toString=function(){return t+""},n}function e(t,e){var r=n((t=Ev(t),t.type="f",t)),i=3*Math.max(-8,Math.min(8,Math.floor(wv(e)/3))),o=Math.pow(10,-i),u=zv[8+i/3];return function(t){return r(o*t)+u}}var r=t.grouping&&t.thousands?Mv(t.grouping,t.thousands):ee,i=t.currency,o=t.decimal;return{format:n,formatPrefix:e}};re({decimal:".",thousands:",",grouping:[3],currency:["$",""]});var qv,Lv=function(t){return Math.max(0,-wv(Math.abs(t)))},Rv=function(t,n){return Math.max(0,3*Math.max(-8,Math.min(8,Math.floor(wv(n)/3)))-wv(Math.abs(t)))},Uv=function(t,n){return t=Math.abs(t),n=Math.abs(n)-t,Math.max(0,wv(n)-wv(t))+1},Dv={"-":"",_:" ",0:"0"},Ov=/^\s*\d+/,Fv=/^%/,Iv=/[\\\^\$\*\+\?\|\[\]\(\)\.\{\}]/g;nr({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 Yv="%Y-%m-%dT%H:%M:%S.%LZ",Bv=Date.prototype.toISOString?er:t.utcFormat(Yv),jv=+new Date("2000-01-01T00:00:00.000Z")?rr:t.utcParse(Yv),Hv=Array.prototype,Xv=Hv.map,Vv=Hv.slice,Wv={name:"implicit"},$v=function(t){return function(){return t}},Zv=function(t){return+t},Gv=[0,1],Jv=function(n,r,i){var o,u=n[0],a=n[n.length-1],c=e(u,a,null==r?10:r);switch(i=Ev(null==i?",f":i),i.type){case"s":var s=Math.max(Math.abs(u),Math.abs(a));return null!=i.precision||isNaN(o=Rv(c,s))||(i.precision=o),t.formatPrefix(i,s);case"":case"e":case"g":case"p":case"r":null!=i.precision||isNaN(o=Uv(c,Math.max(Math.abs(u),Math.abs(a))))||(i.precision=o-("e"===i.type));break;case"f":case"%":null!=i.precision||isNaN(o=Lv(c))||(i.precision=o-2*("%"===i.type))}return t.format(i)},Qv=function(t,n){t=t.slice();var e,r=0,i=t.length-1,o=t[r],u=t[i];return u1)&&(t-=Math.floor(t));var n=Math.abs(t-.5);return __.h=360*t-100,__.s=1.5-1.5*n,__.l=.8-.9*n,__+""},g_=Lr(c_("44015444025645045745055946075a46085c460a5d460b5e470d60470e6147106347116447136548146748166848176948186a481a6c481b6d481c6e481d6f481f70482071482173482374482475482576482677482878482979472a7a472c7a472d7b472e7c472f7d46307e46327e46337f463480453581453781453882443983443a83443b84433d84433e85423f854240864241864142874144874045884046883f47883f48893e49893e4a893e4c8a3d4d8a3d4e8a3c4f8a3c508b3b518b3b528b3a538b3a548c39558c39568c38588c38598c375a8c375b8d365c8d365d8d355e8d355f8d34608d34618d33628d33638d32648e32658e31668e31678e31688e30698e306a8e2f6b8e2f6c8e2e6d8e2e6e8e2e6f8e2d708e2d718e2c718e2c728e2c738e2b748e2b758e2a768e2a778e2a788e29798e297a8e297b8e287c8e287d8e277e8e277f8e27808e26818e26828e26828e25838e25848e25858e24868e24878e23888e23898e238a8d228b8d228c8d228d8d218e8d218f8d21908d21918c20928c20928c20938c1f948c1f958b1f968b1f978b1f988b1f998a1f9a8a1e9b8a1e9c891e9d891f9e891f9f881fa0881fa1881fa1871fa28720a38620a48621a58521a68522a78522a88423a98324aa8325ab8225ac8226ad8127ad8128ae8029af7f2ab07f2cb17e2db27d2eb37c2fb47c31b57b32b67a34b67935b77937b87838b9773aba763bbb753dbc743fbc7340bd7242be7144bf7046c06f48c16e4ac16d4cc26c4ec36b50c46a52c56954c56856c66758c7655ac8645cc8635ec96260ca6063cb5f65cb5e67cc5c69cd5b6ccd5a6ece5870cf5773d05675d05477d1537ad1517cd2507fd34e81d34d84d44b86d54989d5488bd6468ed64590d74393d74195d84098d83e9bd93c9dd93ba0da39a2da37a5db36a8db34aadc32addc30b0dd2fb2dd2db5de2bb8de29bade28bddf26c0df25c2df23c5e021c8e020cae11fcde11dd0e11cd2e21bd5e21ad8e219dae319dde318dfe318e2e418e5e419e7e419eae51aece51befe51cf1e51df4e61ef6e620f8e621fbe723fde725")),m_=Lr(c_("00000401000501010601010802010902020b02020d03030f03031204041405041606051806051a07061c08071e0907200a08220b09240c09260d0a290e0b2b100b2d110c2f120d31130d34140e36150e38160f3b180f3d19103f1a10421c10441d11471e114920114b21114e22115024125325125527125829115a2a115c2c115f2d11612f116331116533106734106936106b38106c390f6e3b0f703d0f713f0f72400f74420f75440f764510774710784910784a10794c117a4e117b4f127b51127c52137c54137d56147d57157e59157e5a167e5c167f5d177f5f187f601880621980641a80651a80671b80681c816a1c816b1d816d1d816e1e81701f81721f817320817521817621817822817922827b23827c23827e24828025828125818326818426818627818827818928818b29818c29818e2a81902a81912b81932b80942c80962c80982d80992d809b2e7f9c2e7f9e2f7fa02f7fa1307ea3307ea5317ea6317da8327daa337dab337cad347cae347bb0357bb2357bb3367ab5367ab73779b83779ba3878bc3978bd3977bf3a77c03a76c23b75c43c75c53c74c73d73c83e73ca3e72cc3f71cd4071cf4070d0416fd2426fd3436ed5446dd6456cd8456cd9466bdb476adc4869de4968df4a68e04c67e24d66e34e65e44f64e55064e75263e85362e95462ea5661eb5760ec5860ed5a5fee5b5eef5d5ef05f5ef1605df2625df2645cf3655cf4675cf4695cf56b5cf66c5cf66e5cf7705cf7725cf8745cf8765cf9785df9795df97b5dfa7d5efa7f5efa815ffb835ffb8560fb8761fc8961fc8a62fc8c63fc8e64fc9065fd9266fd9467fd9668fd9869fd9a6afd9b6bfe9d6cfe9f6dfea16efea36ffea571fea772fea973feaa74feac76feae77feb078feb27afeb47bfeb67cfeb77efeb97ffebb81febd82febf84fec185fec287fec488fec68afec88cfeca8dfecc8ffecd90fecf92fed194fed395fed597fed799fed89afdda9cfddc9efddea0fde0a1fde2a3fde3a5fde5a7fde7a9fde9aafdebacfcecaefceeb0fcf0b2fcf2b4fcf4b6fcf6b8fcf7b9fcf9bbfcfbbdfcfdbf")),x_=Lr(c_("00000401000501010601010802010a02020c02020e03021004031204031405041706041907051b08051d09061f0a07220b07240c08260d08290e092b10092d110a30120a32140b34150b37160b39180c3c190c3e1b0c411c0c431e0c451f0c48210c4a230c4c240c4f260c51280b53290b552b0b572d0b592f0a5b310a5c320a5e340a5f3609613809623909633b09643d09653e0966400a67420a68440a68450a69470b6a490b6a4a0c6b4c0c6b4d0d6c4f0d6c510e6c520e6d540f6d550f6d57106e59106e5a116e5c126e5d126e5f136e61136e62146e64156e65156e67166e69166e6a176e6c186e6d186e6f196e71196e721a6e741a6e751b6e771c6d781c6d7a1d6d7c1d6d7d1e6d7f1e6c801f6c82206c84206b85216b87216b88226a8a226a8c23698d23698f24699025689225689326679526679727669827669a28659b29649d29649f2a63a02a63a22b62a32c61a52c60a62d60a82e5fa92e5eab2f5ead305dae305cb0315bb1325ab3325ab43359b63458b73557b93556ba3655bc3754bd3853bf3952c03a51c13a50c33b4fc43c4ec63d4dc73e4cc83f4bca404acb4149cc4248ce4347cf4446d04545d24644d34743d44842d54a41d74b3fd84c3ed94d3dda4e3cdb503bdd513ade5238df5337e05536e15635e25734e35933e45a31e55c30e65d2fe75e2ee8602de9612bea632aeb6429eb6628ec6726ed6925ee6a24ef6c23ef6e21f06f20f1711ff1731df2741cf3761bf37819f47918f57b17f57d15f67e14f68013f78212f78410f8850ff8870ef8890cf98b0bf98c0af98e09fa9008fa9207fa9407fb9606fb9706fb9906fb9b06fb9d07fc9f07fca108fca309fca50afca60cfca80dfcaa0ffcac11fcae12fcb014fcb216fcb418fbb61afbb81dfbba1ffbbc21fbbe23fac026fac228fac42afac62df9c72ff9c932f9cb35f8cd37f8cf3af7d13df7d340f6d543f6d746f5d949f5db4cf4dd4ff4df53f4e156f3e35af3e55df2e661f2e865f2ea69f1ec6df1ed71f1ef75f1f179f2f27df2f482f3f586f3f68af4f88ef5f992f6fa96f8fb9af9fc9dfafda1fcffa4")),b_=Lr(c_("0d088710078813078916078a19068c1b068d1d068e20068f2206902406912605912805922a05932c05942e05952f059631059733059735049837049938049a3a049a3c049b3e049c3f049c41049d43039e44039e46039f48039f4903a04b03a14c02a14e02a25002a25102a35302a35502a45601a45801a45901a55b01a55c01a65e01a66001a66100a76300a76400a76600a76700a86900a86a00a86c00a86e00a86f00a87100a87201a87401a87501a87701a87801a87a02a87b02a87d03a87e03a88004a88104a78305a78405a78606a68707a68808a68a09a58b0aa58d0ba58e0ca48f0da4910ea3920fa39410a29511a19613a19814a099159f9a169f9c179e9d189d9e199da01a9ca11b9ba21d9aa31e9aa51f99a62098a72197a82296aa2395ab2494ac2694ad2793ae2892b02991b12a90b22b8fb32c8eb42e8db52f8cb6308bb7318ab83289ba3388bb3488bc3587bd3786be3885bf3984c03a83c13b82c23c81c33d80c43e7fc5407ec6417dc7427cc8437bc9447aca457acb4679cc4778cc4977cd4a76ce4b75cf4c74d04d73d14e72d24f71d35171d45270d5536fd5546ed6556dd7566cd8576bd9586ada5a6ada5b69db5c68dc5d67dd5e66de5f65de6164df6263e06363e16462e26561e26660e3685fe4695ee56a5de56b5de66c5ce76e5be76f5ae87059e97158e97257ea7457eb7556eb7655ec7754ed7953ed7a52ee7b51ef7c51ef7e50f07f4ff0804ef1814df1834cf2844bf3854bf3874af48849f48948f58b47f58c46f68d45f68f44f79044f79143f79342f89441f89540f9973ff9983ef99a3efa9b3dfa9c3cfa9e3bfb9f3afba139fba238fca338fca537fca636fca835fca934fdab33fdac33fdae32fdaf31fdb130fdb22ffdb42ffdb52efeb72dfeb82cfeba2cfebb2bfebd2afebe2afec029fdc229fdc328fdc527fdc627fdc827fdca26fdcb26fccd25fcce25fcd025fcd225fbd324fbd524fbd724fad824fada24f9dc24f9dd25f8df25f8e125f7e225f7e425f6e626f6e826f5e926f5eb27f4ed27f3ee27f3f027f2f227f1f426f1f525f0f724f0f921")),w_="http://www.w3.org/1999/xhtml",M_={svg:"http://www.w3.org/2000/svg",xhtml:w_,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"},T_=function(t){var n=t+="",e=n.indexOf(":");return e>=0&&"xmlns"!==(n=t.slice(0,e))&&(t=t.slice(e+1)),M_.hasOwnProperty(n)?{space:M_[n],local:t}:t},N_=function(t){var n=T_(t);return(n.local?Dr:Ur)(n)},k_=0;Fr.prototype=Or.prototype={constructor:Fr,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._}};var S_=function(t){return function(){return this.matches(t)}};if("undefined"!=typeof document){var A_=document.documentElement;if(!A_.matches){var E_=A_.webkitMatchesSelector||A_.msMatchesSelector||A_.mozMatchesSelector||A_.oMatchesSelector;S_=function(t){return function(){return E_.call(this,t)}}}}var C_=S_,z_={};if(t.event=null,"undefined"!=typeof document){var P_=document.documentElement;"onmouseenter"in P_||(z_={mouseenter:"mouseover",mouseleave:"mouseout"})}var q_=function(t,n,e){var r,i,o=Br(t+""),u=o.length;{if(!(arguments.length<2)){for(a=n?Hr:jr,null==e&&(e=!1),r=0;r=b&&(b=x+1);!(m=_[b])&&++b=0;)(r=i[o])&&(u&&u!==r.nextSibling&&u.parentNode.insertBefore(r,u),u=r);return this},G_=function(t){function n(n,e){return n&&e?t(n.__data__,e.__data__):!n-!e}t||(t=Jr);for(var e=this._groups,r=e.length,i=new Array(r),o=0;o1?this.each((null==n?ii:"function"==typeof n?ui:oi)(t,n,null==e?"":e)):iy(r=this.node()).getComputedStyle(r,null).getPropertyValue(t)},uy=function(t,n){return arguments.length>1?this.each((null==n?ai:"function"==typeof n?si:ci)(t,n)):this.node()[t]};hi.prototype={add:function(t){var n=this._names.indexOf(t);n<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 ay=function(t,n){var e=fi(t+"");if(arguments.length<2){for(var r=li(this.node()),i=-1,o=e.length;++iky&&e.stateNy&&e.name===n)return new so([[t]],rg,n,+r)}return null},og=Array.prototype.slice,ug=function(t){return t},ag=1,cg=2,sg=3,fg=4,lg=1e-6,hg=function(){function t(t){var o,u=0;t.eachAfter(function(t){var e=t.children;e?(t.x=To(e),t.y=ko(e)):(t.x=o?u+=n(t,o):0,t.y=0,o=t)});var a=Ao(t),c=Eo(t),s=a.x-n(a,c)/2,f=c.x+n(c,a)/2;return t.eachAfter(i?function(n){n.x=(n.x-t.x)*e,n.y=(t.y-n.y)*r}:function(n){n.x=(n.x-s)/(f-s)*e,n.y=(1-(t.y?n.y/t.y:1))*r})}var n=Mo,e=1,r=1,i=!1;return t.separation=function(e){return arguments.length?(n=e,t):n},t.size=function(n){return arguments.length?(i=!1,e=+n[0],r=+n[1],t):i?null:[e,r]},t.nodeSize=function(n){return arguments.length?(i=!0,e=+n[0],r=+n[1],t):i?[e,r]:null},t},pg=function(t){var n,e,r,i,o=this,u=[o];do for(n=u.reverse(),u=[];o=n.pop();)if(t(o),e=o.children)for(r=0,i=e.length;r=0;--e)i.push(n[e]);return this},vg=function(t){for(var n,e,r,i=this,o=[i],u=[];i=o.pop();)if(u.push(i),n=i.children)for(e=0,r=n.length;e=0;)e+=r[i].value;n.value=e})},yg=function(t){return this.eachBefore(function(n){n.children&&n.children.sort(t)})},gg=function(t){for(var n=this,e=Co(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},mg=function(){for(var t=this,n=[t];t=t.parent;)n.push(t);return n},xg=function(){var t=[];return this.each(function(n){t.push(n)}),t},bg=function(){var t=[];return this.eachBefore(function(n){n.children||t.push(n)}),t},wg=function(){var t=this,n=[];return t.each(function(e){e!==t&&n.push({source:e.parent,target:e})}),n};Uo.prototype=zo.prototype={constructor:Uo,each:pg,eachAfter:vg,eachBefore:dg,sum:_g,sort:yg,path:gg,ancestors:mg,descendants:xg,leaves:bg,links:wg,copy:Po};var Mg=function(t){for(var n,e=(t=t.slice()).length,r=null,i=r;e;){var o=new Do(t[e-1]);i=i?i.next=o:r=o,t[n]=t[--e]}return{head:r,tail:i}},Tg=function(t){return Fo(Mg(t),[])},Ng=function(t){return Wo(t),t},kg=function(t){return function(){return t}},Sg=function(){function t(t){return t.x=e/2,t.y=r/2,n?t.eachBefore(Qo(n)).eachAfter(Ko(i,.5)).eachBefore(tu(1)):t.eachBefore(Qo(Jo)).eachAfter(Ko(Go,1)).eachAfter(Ko(i,t.r/Math.min(e,r))).eachBefore(tu(Math.min(e,r)/(2*t.r))),t}var n=null,e=1,r=1,i=Go;return t.radius=function(e){return arguments.length?(n=$o(e),t):n},t.size=function(n){return arguments.length?(e=+n[0],r=+n[1],t):[e,r]},t.padding=function(n){return arguments.length?(i="function"==typeof n?n:kg(+n),t):i},t},Ag=function(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)},Eg=function(t,n,e,r,i){for(var o,u=t.children,a=-1,c=u.length,s=t.value&&(r-n)/t.value;++a0)throw new Error("cycle");return o}var n=nu,e=eu;return t.id=function(e){return arguments.length?(n=Zo(e),t):n},t.parentId=function(n){return arguments.length?(e=Zo(n),t):e},t};su.prototype=Object.create(Uo.prototype);var Rg=function(){function t(t){var r=fu(t);if(r.eachAfter(n),r.parent.m=-r.z,r.eachBefore(e),c)t.eachBefore(i);else{var s=t,f=t,l=t;t.eachBefore(function(t){t.xf.x&&(f=t),t.depth>l.depth&&(l=t)});var h=s===f?1:o(s,f)/2,p=h-s.x,d=u/(f.x+h+p),v=a/(l.depth||1);t.eachBefore(function(t){t.x=(t.x+p)*d,t.y=t.depth*v})}return t}function n(t){var n=t.children,e=t.parent.children,i=t.i?e[t.i-1]:null;if(n){au(t);var u=(n[0].z+n[n.length-1].z)/2;i?(t.z=i.z+o(t._,i._),t.m=t.z-u):t.z=u}else i&&(t.z=i.z+o(t._,i._));t.parent.A=r(t,i,t.parent.A||e[0])}function e(t){t._.x=t.z+t.parent.m,t.m+=t.parent.m}function r(t,n,e){if(n){for(var r,i=t,u=t,a=n,c=i.parent.children[0],s=i.m,f=u.m,l=a.m,h=c.m;a=ou(a),i=iu(i),a&&i;)c=iu(c),u=ou(u),u.a=t,r=a.z+l-i.z-s+o(a._,i._),r>0&&(uu(cu(a,t,e),t,r),s+=r,f+=r),l+=a.m,s+=i.m,h+=c.m,f+=u.m;a&&!ou(u)&&(u.t=a,u.m+=l-f),i&&!iu(c)&&(c.t=i,c.m+=s-h,e=t)}return e}function i(t){t.x*=u,t.y=t.depth*a}var o=ru,u=1,a=1,c=null;return t.separation=function(n){return arguments.length?(o=n,t):o},t.size=function(n){return arguments.length?(c=!1,u=+n[0],a=+n[1],t):c?null:[u,a]},t.nodeSize=function(n){return arguments.length?(c=!0,u=+n[0],a=+n[1],t):c?[u,a]:null},t},Ug=function(t,n,e,r,i){for(var o,u=t.children,a=-1,c=u.length,s=t.value&&(i-e)/t.value;++a1?n:1)},e}(Dg),Fg=function(){function t(t){return t.x0=t.y0=0,t.x1=i,t.y1=o,t.eachBefore(n),u=[0],r&&t.eachBefore(Ag),t}function n(t){var n=u[t.depth],r=t.x0+n,i=t.y0+n,o=t.x1-n,h=t.y1-n;o=n-1){var s=c[t];return s.x0=r,s.y0=i,s.x1=u,s.y1=a,void 0}for(var l=f[t],h=e/2+l,p=t+1,d=n-1;p>>1;f[v]u-r){var g=(i*y+a*_)/e;o(t,p,_,r,i,u,g),o(p,n,y,r,g,u,a)}else{var m=(r*y+u*_)/e;o(t,p,_,r,i,m,a),o(p,n,y,m,i,u,a)}}var u,a,c=t.children,s=c.length,f=new Array(s+1);for(f[0]=a=u=0;u1?n:1)},e}(Dg),jg=function(t,n){function e(){var e,i,o=r.length,u=0,a=0;for(e=0;es+d||if+d||on){var v=s-a.x-a.vx,_=f-a.y-a.vy,y=v*v+_*_;yt.r&&(t.r=t[n].r)}function r(){if(i){var n,e=i.length;for(o=new Array(e),n=0;n1?(null==n?h.remove(t):h.set(t,i(n)),u):h.get(t)},find:function(n,e,r){var i,o,u,a,c,s=0,f=t.length;for(null==r?r=1/0:r*=r,s=0;s1?(d.on(t,n),u):d.on(t)}}},Jg=function(){function t(t){var n,a=i.length,c=I(i,_u,yu).visitAfter(e);for(u=t,n=0;n=f)){(t.data!==o||t.next)&&(0===i&&(i=Xg(),p+=i*i),0===c&&(c=Xg(),p+=c*c),p0?gy(this).transition().duration(N).call(u,f,a):gy(this).call(n.transform,f)}}function h(){if(y.apply(this,arguments)){var n,e,r,i=a(this,arguments),o=t.event.changedTouches,u=o.length;for(oa(),n=0;n0?1:t<0?-1:0; -},Bx=Math.sqrt,jx=Math.tan,Hx={Feature:function(t,n){za(t.geometry,n)},FeatureCollection:function(t,n){for(var e=t.features,r=-1,i=e.length;++rTx?tx=90:Jx<-Tx&&(Qm=-90),ux[0]=Jm,ux[1]=Km}},Kx=function(t){var n,e,r,i,o,u,a;if(tx=Km=-(Jm=Qm=1/0),ox=[],Vx(t,Qx),e=ox.length){for(ox.sort(Ka),n=1,r=ox[0],o=[r];nQa(r[0],r[1])&&(r[1]=i[1]),Qa(i[0],r[1])>Qa(r[0],r[1])&&(r[0]=i[0])):o.push(r=i);for(u=-(1/0),e=o.length-1,n=0,r=o[e];n<=e;r=i,++n)i=o[n],(a=Qa(r[1],i[0]))>u&&(u=a,Jm=i[0],Km=r[1])}return ox=ux=null,Jm===1/0||Qm===1/0?[[NaN,NaN],[NaN,NaN]]:[[Jm,Qm],[Km,tx]]},tb={sphere:Ca,point:nc,lineStart:rc,lineEnd:uc,polygonStart:function(){tb.lineStart=ac,tb.lineEnd=cc},polygonEnd:function(){tb.lineStart=rc,tb.lineEnd=uc}},nb=function(t){ax=cx=sx=fx=lx=hx=px=dx=vx=_x=yx=0,Vx(t,tb);var n=vx,e=_x,r=yx,i=n*n+e*e+r*r;return i2?t[2]*zx:0),n.invert=function(n){return n=t.invert(n[0]*zx,n[1]*zx),n[0]*=Cx,n[1]*=Cx,n},n},_b=function(){function t(t,n){e.push(t=r(t,n)),t[0]*=Cx,t[1]*=Cx}function n(){var t=i.apply(this,arguments),n=o.apply(this,arguments)*zx,c=u.apply(this,arguments)*zx;return e=[],r=hc(-t[0]*zx,-t[1]*zx,0).invert,_c(a,n,c,1),t={type:"Polygon",coordinates:[e]},e=r=null,t}var e,r,i=eb([0,0]),o=eb(90),u=eb(6),a={point:t};return n.center=function(t){return arguments.length?(i="function"==typeof t?t:eb([+t[0],+t[1]]),n):i},n.radius=function(t){return arguments.length?(o="function"==typeof t?t:eb(+t),n):o},n.precision=function(t){return arguments.length?(u="function"==typeof t?t:eb(+t),n):u},n},yb=function(){var t,n=[];return{point:function(n,e){t.push([n,e])},lineStart:function(){n.push(t=[])},lineEnd:Ca,rejoin:function(){n.length>1&&n.push(n.pop().concat(n.shift()))},result:function(){var e=n;return n=[],t=null,e}}},gb=function(t,n,e,r,i,o){var u,a=t[0],c=t[1],s=n[0],f=n[1],l=0,h=1,p=s-a,d=f-c;if(u=e-a,p||!(u>0)){if(u/=p,p<0){if(u0){if(u>h)return;u>l&&(l=u)}if(u=i-a,p||!(u<0)){if(u/=p,p<0){if(u>h)return;u>l&&(l=u)}else if(p>0){if(u0)){if(u/=d,d<0){if(u0){if(u>h)return;u>l&&(l=u)}if(u=o-c,d||!(u<0)){if(u/=d,d<0){if(u>h)return;u>l&&(l=u)}else if(d>0){if(u0&&(t[0]=a+l*p,t[1]=c+l*d),h<1&&(n[0]=a+h*p,n[1]=c+h*d),!0}}}}},mb=function(t,n){return Px(t[0]-n[0])=0;--o)i.point((f=s[o])[0],f[1]);else r(h.x,h.p.x,-1,i);h=h.p}h=h.o,s=h.z,p=!p}while(!h.v);i.lineEnd()}}},bb=1e9,wb=-bb,Mb=function(){var t,n,e,r=0,i=0,o=960,u=500;return e={stream:function(e){return t&&n===e?t:t=xc(r,i,o,u)(n=e)},extent:function(a){return arguments.length?(r=+a[0][0],i=+a[0][1],o=+a[1][0],u=+a[1][1],t=n=null,e):[[r,i],[o,u]]}}},Tb=Xm(),Nb={sphere:Ca,point:Ca,lineStart:bc,lineEnd:Ca,polygonStart:Ca,polygonEnd:Ca},kb=function(t){return Tb.reset(),Vx(t,Nb),+Tb},Sb=[null,null],Ab={type:"LineString",coordinates:Sb},Eb=function(t,n){return Sb[0]=t,Sb[1]=n,kb(Ab)},Cb=function(t,n){var e=t[0]*zx,r=t[1]*zx,i=n[0]*zx,o=n[1]*zx,u=Rx(r),a=Ix(r),c=Rx(o),s=Ix(o),f=u*Rx(e),l=u*Ix(e),h=c*Rx(i),p=c*Ix(i),d=2*Aa(Bx(Ea(o-r)+u*c*Ea(i-e))),v=Ix(d),_=d?function(t){var n=Ix(t*=d)/v,e=Ix(d-t)/v,r=e*f+n*h,i=e*l+n*p,o=e*a+n*s;return[Lx(i,r)*Cx,Lx(o,Bx(r*r+i*i))*Cx]}:function(){return[e*Cx,r*Cx]};return _.distance=d,_},zb=function(t){return t},Pb=Xm(),qb=Xm(),Lb={point:Ca,lineStart:Ca,lineEnd:Ca,polygonStart:function(){Lb.lineStart=Ec,Lb.lineEnd=Pc},polygonEnd:function(){Lb.lineStart=Lb.lineEnd=Lb.point=Ca,Pb.add(Px(qb)),qb.reset()},result:function(){var t=Pb/2;return Pb.reset(),t}},Rb=1/0,Ub=Rb,Db=-Rb,Ob=Db,Fb={point:qc,lineStart:Ca,lineEnd:Ca,polygonStart:Ca,polygonEnd:Ca,result:function(){var t=[[Rb,Ub],[Db,Ob]];return Db=Ob=-(Ub=Rb=1/0),t}},Ib=0,Yb=0,Bb=0,jb=0,Hb=0,Xb=0,Vb=0,Wb=0,$b=0,Zb={point:Lc,lineStart:Rc,lineEnd:Oc,polygonStart:function(){Zb.lineStart=Fc,Zb.lineEnd=Ic},polygonEnd:function(){Zb.point=Lc,Zb.lineStart=Rc,Zb.lineEnd=Oc},result:function(){var t=$b?[Vb/$b,Wb/$b]:Xb?[jb/Xb,Hb/Xb]:Bb?[Ib/Bb,Yb/Bb]:[NaN,NaN];return Ib=Yb=Bb=jb=Hb=Xb=Vb=Wb=$b=0,t}};jc.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,Ex)}},result:Ca},Hc.prototype={_circle:Xc(4.5),pointRadius:function(t){return this._circle=Xc(t),this},polygonStart:function(){this._line=0},polygonEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){0===this._line&&this._string.push("Z"),this._point=NaN},point:function(t,n){switch(this._point){case 0:this._string.push("M",t,",",n),this._point=1;break;case 1:this._string.push("L",t,",",n);break;default:this._string.push("M",t,",",n,this._circle)}},result:function(){if(this._string.length){var t=this._string.join("");return this._string=[],t}}};var Gb=function(t,n){function e(t){return t&&("function"==typeof o&&i.pointRadius(+o.apply(this,arguments)),Vx(t,r(i))),i.result()}var r,i,o=4.5;return e.area=function(t){return Vx(t,r(Lb)),Lb.result()},e.bounds=function(t){return Vx(t,r(Fb)),Fb.result()},e.centroid=function(t){return Vx(t,r(Zb)),Zb.result()},e.projection=function(n){return arguments.length?(r=null==(t=n)?zb:n.stream,e):t},e.context=function(t){return arguments.length?(i=null==(n=t)?new Hc:new jc(t),"function"!=typeof o&&i.pointRadius(o),e):n},e.pointRadius=function(t){return arguments.length?(o="function"==typeof t?t:(i.pointRadius(+t),+t),e):o},e.projection(t).context(n)},Jb=Xm(),Qb=function(t,n){var e=n[0],r=n[1],i=[Ix(e),-Rx(e),0],o=0,u=0;Jb.reset();for(var a=0,c=t.length;a=0?1:-1,T=M*w,N=T>kx,k=d*x;if(Jb.add(Lx(k*M*Ix(T),v*b+k*Rx(T))),o+=N?w+M*Ex:w,N^h>=e^g>=e){var S=Ya(Fa(l),Fa(y));Ha(S);var A=Ya(i,S);Ha(A);var E=(N^w>=0?-1:1)*Aa(A[2]);(r>E||r===E&&(S[0]||S[1]))&&(u+=N^w>=0?1:-1)}}return(o<-Tx||o0){for(x||(o.polygonStart(),x=!0),o.lineStart(),t=0;t1&&2&i&&u.push(u.pop().concat(u.shift())),d.push(u.filter(Vc))}var p,d,v,_=n(o),y=i.invert(r[0],r[1]),g=yb(),m=n(g),x=!1,b={point:u,lineStart:c,lineEnd:s,polygonStart:function(){b.point=f,b.lineStart=l,b.lineEnd=h,d=[],p=[]},polygonEnd:function(){b.point=u,b.lineStart=c,b.lineEnd=s,d=Js(d);var t=Qb(p,y);d.length?(x||(o.polygonStart(),x=!0),xb(d,Wc,t,e,o)):t&&(x||(o.polygonStart(),x=!0),o.lineStart(),e(null,null,1,o),o.lineEnd()),x&&(o.polygonEnd(),x=!1),d=p=null},sphere:function(){o.polygonStart(),o.lineStart(),e(null,null,1,o),o.lineEnd(),o.polygonEnd()}};return b}},tw=Kb(function(){return!0},$c,Gc,[-kx,-Sx]),nw=function(t,n){function e(e,r,i,o){_c(o,t,n,i,e,r)}function r(t,n){return Rx(t)*Rx(n)>a}function i(t){var n,e,i,a,f;return{lineStart:function(){a=i=!1,f=1},point:function(l,h){var p,d=[l,h],v=r(l,h),_=c?v?0:u(l,h):v?u(l+(l<0?kx:-kx),h):0;if(!n&&(a=i=v)&&t.lineStart(),v!==i&&(p=o(n,d),(mb(n,p)||mb(d,p))&&(d[0]+=Tx,d[1]+=Tx,v=r(d[0],d[1]))),v!==i)f=0,v?(t.lineStart(),p=o(d,n),t.point(p[0],p[1])):(p=o(n,d),t.point(p[0],p[1]),t.lineEnd()),n=p;else if(s&&n&&c^v){var y;_&e||!(y=o(d,n,!0))||(f=0,c?(t.lineStart(),t.point(y[0][0],y[0][1]),t.point(y[1][0],y[1][1]),t.lineEnd()):(t.point(y[1][0],y[1][1]),t.lineEnd(),t.lineStart(),t.point(y[0][0],y[0][1])))}!v||n&&mb(n,d)||t.point(d[0],d[1]),n=d,i=v,e=_},lineEnd:function(){i&&t.lineEnd(),n=null},clean:function(){return f|(a&&i)<<1}}}function o(t,n,e){var r=Fa(t),i=Fa(n),o=[1,0,0],u=Ya(r,i),c=Ia(u,u),s=u[0],f=c-s*s;if(!f)return!e&&t;var l=a*c/f,h=-a*s/f,p=Ya(o,u),d=ja(o,l),v=ja(u,h);Ba(d,v);var _=p,y=Ia(d,_),g=Ia(_,_),m=y*y-g*(Ia(d,d)-1);if(!(m<0)){var x=Bx(m),b=ja(_,(-y-x)/g);if(Ba(b,d),b=Oa(b),!e)return b;var w,M=t[0],T=n[0],N=t[1],k=n[1];T0^b[1]<(Px(b[0]-M)kx^(M<=b[0]&&b[0]<=T)){var C=ja(_,(-y+x)/g);return Ba(C,d),[b,Oa(C)]}}}function u(n,e){var r=c?t:kx-t,i=0;return n<-r?i|=1:n>r&&(i|=2),e<-r?i|=4:e>r&&(i|=8),i}var a=Rx(t),c=a>0,s=Px(a)>Tx;return Kb(r,i,e,c?[0,-t]:[-kx,t-kx])},ew=function(t){return{stream:Jc(t)}};Qc.prototype={constructor:Qc,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 rw=16,iw=Rx(30*zx),ow=function(t,n){return+n?es(t,n):ns(t)},uw=Jc({point:function(t,n){this.stream.point(t*zx,n*zx)}}),aw=function(){return os(as).scale(155.424).center([0,33.6442])},cw=function(){return aw().parallels([29.5,45.5]).scale(1070).translate([480,250]).rotate([96,0]).center([-.6,38.7])},sw=function(){function t(t){var n=t[0],e=t[1];return a=null,i.point(n,e),a||(o.point(n,e),a)||(u.point(n,e),a)}function n(){return e=r=null,t}var e,r,i,o,u,a,c=cw(),s=aw().rotate([154,0]).center([-2,58.5]).parallels([55,65]),f=aw().rotate([157,0]).center([-3,19.9]).parallels([8,18]),l={point:function(t,n){a=[t,n]}};return t.invert=function(t){var n=c.scale(),e=c.translate(),r=(t[0]-e[0])/n,i=(t[1]-e[1])/n;return(i>=.12&&i<.234&&r>=-.425&&r<-.214?s:i>=.166&&i<.234&&r>=-.214&&r<-.115?f:c).invert(t)},t.stream=function(t){return e&&r===t?e:e=cs([c.stream(r=t),s.stream(t),f.stream(t)])},t.precision=function(t){return arguments.length?(c.precision(t),s.precision(t),f.precision(t),n()):c.precision()},t.scale=function(n){return arguments.length?(c.scale(n),s.scale(.35*n),f.scale(n),t.translate(c.translate())):c.scale()},t.translate=function(t){if(!arguments.length)return c.translate();var e=c.scale(),r=+t[0],a=+t[1];return i=c.translate(t).clipExtent([[r-.455*e,a-.238*e],[r+.455*e,a+.238*e]]).stream(l),o=s.translate([r-.307*e,a+.201*e]).clipExtent([[r-.425*e+Tx,a+.12*e+Tx],[r-.214*e-Tx,a+.234*e-Tx]]).stream(l),u=f.translate([r-.205*e,a+.212*e]).clipExtent([[r-.214*e+Tx,a+.166*e+Tx],[r-.115*e-Tx,a+.234*e-Tx]]).stream(l),n()},t.fitExtent=function(n,e){return Kc(t,n,e)},t.fitSize=function(n,e){return ts(t,n,e)},t.scale(1070)},fw=ss(function(t){return Bx(2/(1+t))});fw.invert=fs(function(t){return 2*Aa(t/2)});var lw=function(){return rs(fw).scale(124.75).clipAngle(179.999)},hw=ss(function(t){return(t=Sa(t))&&t/Ix(t)});hw.invert=fs(function(t){return t});var pw=function(){return rs(hw).scale(79.4188).clipAngle(179.999)};ls.invert=function(t,n){return[t,2*qx(Dx(n))-Sx]};var dw=function(){return hs(ls).scale(961/Ex)},vw=function(){return os(ds).scale(109.5).parallels([30,30])};vs.invert=vs;var _w=function(){return rs(vs).scale(152.63)},yw=function(){return os(_s).scale(131.154).center([0,13.9389])};ys.invert=fs(qx);var gw=function(){return rs(ys).scale(144.049).clipAngle(60)},mw=function(){function t(){return i=o=null,u}var n,e,r,i,o,u,a=1,c=0,s=0,f=zb,l=null,h=zb;return u={stream:function(t){return i&&o===t?i:i=f(h(o=t))},clipExtent:function(i){return arguments.length?(h=null==i?(l=n=e=r=null,zb):xc(l=+i[0][0],n=+i[0][1],e=+i[1][0],r=+i[1][1]),t()):null==l?null:[[l,n],[e,r]]},scale:function(n){return arguments.length?(f=gs(a=+n,c,s),t()):a},translate:function(n){return arguments.length?(f=gs(a,c=+n[0],s=+n[1]),t()):[c,s]},fitExtent:function(t,n){return Kc(u,t,n)},fitSize:function(t,n){return ts(u,t,n)}}};ms.invert=fs(Aa);var xw=function(){return rs(ms).scale(249.5).clipAngle(90+Tx)};xs.invert=fs(function(t){return 2*qx(t)});var bw=function(){return rs(xs).scale(250).clipAngle(142)};bs.invert=function(t,n){return[-n,2*qx(Dx(t))-Sx]};var ww=function(){var t=hs(bs),n=t.center,e=t.rotate;return t.center=function(t){return arguments.length?n([-t[1],t[0]]):(t=n(),[t[1],-t[0]])},t.rotate=function(t){return arguments.length?e([t[0],t[1],t.length>2?t[2]+90:90]):(t=e(),[t[0],t[1],t[2]-90])},e([0,0,90]).scale(159.155)};t.version=ws,t.bisect=ks,t.bisectRight=ks,t.bisectLeft=Ss,t.ascending=Ms,t.bisector=Ts,t.descending=As,t.deviation=zs,t.extent=Ps,t.histogram=Hs,t.thresholdFreedmanDiaconis=Vs,t.thresholdScott=Ws,t.thresholdSturges=js,t.max=$s,t.mean=Zs,t.median=Gs,t.merge=Js,t.min=Qs,t.pairs=Ks,t.permute=tf,t.quantile=Xs,t.range=Os,t.scan=nf,t.shuffle=ef,t.sum=rf,t.ticks=Bs,t.tickStep=e,t.transpose=of,t.variance=Cs,t.zip=uf,t.entries=hf,t.keys=ff,t.values=lf,t.map=o,t.set=l,t.nest=cf,t.randomUniform=pf,t.randomNormal=df,t.randomLogNormal=vf,t.randomBates=yf,t.randomIrwinHall=_f,t.randomExponential=gf,t.easeLinear=h,t.easeQuad=v,t.easeQuadIn=p,t.easeQuadOut=d,t.easeQuadInOut=v,t.easeCubic=g,t.easeCubicIn=_,t.easeCubicOut=y,t.easeCubicInOut=g,t.easePoly=wf,t.easePolyIn=xf,t.easePolyOut=bf,t.easePolyInOut=wf,t.easeSin=b,t.easeSinIn=m,t.easeSinOut=x,t.easeSinInOut=b,t.easeExp=T,t.easeExpIn=w,t.easeExpOut=M,t.easeExpInOut=T,t.easeCircle=S,t.easeCircleIn=N,t.easeCircleOut=k,t.easeCircleInOut=S,t.easeBounce=E,t.easeBounceIn=A,t.easeBounceOut=E,t.easeBounceInOut=C,t.easeBack=Of,t.easeBackIn=Uf,t.easeBackOut=Df,t.easeBackInOut=Of,t.easeElastic=jf,t.easeElasticIn=Bf,t.easeElasticOut=jf,t.easeElasticInOut=Hf,t.polygonArea=Xf,t.polygonCentroid=Vf,t.polygonHull=$f,t.polygonContains=Zf,t.polygonLength=Gf,t.path=L,t.quadtree=I,t.queue=Z,t.arc=wl,t.area=Nl,t.line=Tl,t.pie=Al,t.radialArea=zl,t.radialLine=Cl,t.symbol=Jl,t.symbols=Gl,t.symbolCircle=Pl,t.symbolCross=ql,t.symbolDiamond=Ul,t.symbolSquare=Bl,t.symbolStar=Yl,t.symbolTriangle=Hl,t.symbolWye=Zl,t.curveBasisClosed=th,t.curveBasisOpen=nh,t.curveBasis=Kl,t.curveBundle=eh,t.curveCardinalClosed=ih,t.curveCardinalOpen=oh,t.curveCardinal=rh,t.curveCatmullRomClosed=ah,t.curveCatmullRomOpen=ch,t.curveCatmullRom=uh,t.curveLinearClosed=sh,t.curveLinear=Ml,t.curveMonotoneX=zt,t.curveMonotoneY=Pt,t.curveNatural=fh,t.curveStep=lh,t.curveStepAfter=Dt,t.curveStepBefore=Ut,t.stack=vh,t.stackOffsetExpand=_h,t.stackOffsetNone=ph,t.stackOffsetSilhouette=yh,t.stackOffsetWiggle=gh,t.stackOrderAscending=mh,t.stackOrderDescending=xh,t.stackOrderInsideOut=bh,t.stackOrderNone=dh,t.stackOrderReverse=wh,t.color=Bt,t.rgb=Vt,t.hsl=Gt,t.lab=tn,t.hcl=cn,t.cubehelix=ln,t.interpolate=_p,t.interpolateArray=sp,t.interpolateDate=fp,t.interpolateNumber=lp,t.interpolateObject=hp,t.interpolateRound=yp,t.interpolateString=vp,t.interpolateTransformCss=bp,t.interpolateTransformSvg=wp,t.interpolateZoom=Sp,t.interpolateRgb=up,t.interpolateRgbBasis=ap,t.interpolateRgbBasisClosed=cp,t.interpolateHsl=Ap,t.interpolateHslLong=Ep,t.interpolateLab=En,t.interpolateHcl=Cp,t.interpolateHclLong=zp,t.interpolateCubehelix=Pp,t.interpolateCubehelixLong=qp,t.interpolateBasis=rp,t.interpolateBasisClosed=ip,t.quantize=Lp,t.dispatch=Pn,t.dsvFormat=Op,t.csvParse=Ip,t.csvParseRows=Yp,t.csvFormat=Bp,t.csvFormatRows=jp,t.tsvParse=Xp,t.tsvParseRows=Vp,t.tsvFormat=Wp,t.tsvFormatRows=$p,t.request=Zp,t.html=Jp,t.json=Qp,t.text=Kp,t.xml=td,t.csv=ed,t.tsv=rd,t.now=jn,t.timer=Vn,t.timerFlush=Wn,t.timeout=pd,t.interval=dd,t.timeInterval=Qn,t.timeMillisecond=yd,t.timeMilliseconds=gd,t.timeSecond=Td,t.timeSeconds=Nd,t.timeMinute=kd,t.timeMinutes=Sd,t.timeHour=Ad,t.timeHours=Ed,t.timeDay=Cd,t.timeDays=zd,t.timeWeek=Pd,t.timeWeeks=Fd,t.timeSunday=Pd,t.timeSundays=Fd,t.timeMonday=qd,t.timeMondays=Id,t.timeTuesday=Ld,t.timeTuesdays=Yd;t.timeWednesday=Rd;t.timeWednesdays=Bd,t.timeThursday=Ud,t.timeThursdays=jd,t.timeFriday=Dd,t.timeFridays=Hd,t.timeSaturday=Od,t.timeSaturdays=Xd,t.timeMonth=Vd,t.timeMonths=Wd,t.timeYear=$d,t.timeYears=Zd,t.utcMillisecond=yd,t.utcMilliseconds=gd,t.utcSecond=Td,t.utcSeconds=Nd,t.utcMinute=Gd,t.utcMinutes=Jd,t.utcHour=Qd,t.utcHours=Kd,t.utcDay=tv,t.utcDays=nv,t.utcWeek=ev,t.utcWeeks=sv,t.utcSunday=ev,t.utcSundays=sv,t.utcMonday=rv,t.utcMondays=fv,t.utcTuesday=iv,t.utcTuesdays=lv,t.utcWednesday=ov,t.utcWednesdays=hv,t.utcThursday=uv,t.utcThursdays=pv,t.utcFriday=av,t.utcFridays=dv,t.utcSaturday=cv,t.utcSaturdays=vv,t.utcMonth=_v,t.utcMonths=yv,t.utcYear=gv,t.utcYears=xv,t.formatLocale=Pv,t.formatDefaultLocale=re,t.formatSpecifier=Ev,t.precisionFixed=Lv,t.precisionPrefix=Rv,t.precisionRound=Uv,t.isoFormat=Bv,t.isoParse=jv,t.timeFormatLocale=ae,t.timeFormatDefaultLocale=nr,t.scaleBand=or,t.scalePoint=ar,t.scaleIdentity=yr,t.scaleLinear=_r,t.scaleLog=Tr,t.scaleOrdinal=ir,t.scaleImplicit=Wv,t.scalePow=kr,t.scaleSqrt=Sr,t.scaleQuantile=Ar,t.scaleQuantize=Er,t.scaleThreshold=Cr,t.scaleTime=u_,t.scaleUtc=a_,t.schemeCategory10=s_,t.schemeCategory20b=f_,t.schemeCategory20c=l_,t.schemeCategory20=h_,t.scaleSequential=Rr,t.interpolateCubehelixDefault=p_,t.interpolateRainbow=y_,t.interpolateWarm=d_,t.interpolateCool=v_,t.interpolateViridis=g_,t.interpolateMagma=m_,t.interpolateInferno=x_,t.interpolatePlasma=b_,t.creator=N_,t.customEvent=Xr,t.local=Or,t.matcher=C_,t.mouse=U_,t.namespace=T_,t.namespaces=M_,t.select=gy,t.selectAll=my,t.selection=Pi,t.selector=D_,t.selectorAll=F_,t.touch=xy,t.touches=by,t.window=iy,t.active=ig,t.interrupt=Py,t.transition=fo,t.axisTop=mo,t.axisRight=xo,t.axisBottom=bo,t.axisLeft=wo,t.cluster=hg,t.hierarchy=zo,t.pack=Sg,t.packSiblings=Ng,t.packEnclose=Tg,t.partition=Cg,t.stratify=Lg,t.tree=Rg,t.treemap=Fg,t.treemapBinary=Ig,t.treemapDice=Eg,t.treemapSlice=Ug,t.treemapSliceDice=Yg,t.treemapSquarify=Og,t.treemapResquarify=Bg,t.forceCenter=jg,t.forceCollide=Vg,t.forceLink=Wg,t.forceManyBody=Jg,t.forceSimulation=Gg,t.forceX=Qg,t.forceY=Kg,t.drag=rm,t.dragDisable=nm,t.dragEnable=mu,t.voronoi=dm,t.zoom=gm,t.zoomIdentity=_m,t.zoomTransform=ia,t.brush=Lm,t.brushX=_a,t.brushY=ya,t.brushSelection=va,t.chord=Ym,t.ribbon=Hm,t.geoAlbers=cw,t.geoAlbersUsa=sw,t.geoArea=Gx,t.geoAzimuthalEqualArea=lw,t.geoAzimuthalEqualAreaRaw=fw,t.geoAzimuthalEquidistant=pw,t.geoAzimuthalEquidistantRaw=hw,t.geoBounds=Kx,t.geoCentroid=nb,t.geoCircle=_b,t.geoClipExtent=Mb,t.geoConicConformal=vw,t.geoConicConformalRaw=ds,t.geoConicEqualArea=aw,t.geoConicEqualAreaRaw=as,t.geoConicEquidistant=yw,t.geoConicEquidistantRaw=_s,t.geoDistance=Eb,t.geoEquirectangular=_w,t.geoEquirectangularRaw=vs,t.geoGnomonic=gw,t.geoGnomonicRaw=ys,t.geoGraticule=Sc,t.geoGraticule10=Ac,t.geoIdentity=mw,t.geoInterpolate=Cb,t.geoLength=kb,t.geoMercator=dw,t.geoMercatorRaw=ls,t.geoOrthographic=xw,t.geoOrthographicRaw=ms,t.geoPath=Gb,t.geoProjection=rs,t.geoProjectionMutator=is,t.geoRotation=vb,t.geoStereographic=bw,t.geoStereographicRaw=xs,t.geoStream=Vx,t.geoTransform=ew,t.geoTransverseMercator=ww,t.geoTransverseMercatorRaw=bs,Object.defineProperty(t,"__esModule",{value:!0})}); \ No newline at end of file +(function (t, n) { + "object" == typeof exports && "undefined" != typeof module + ? n(exports) + : "function" == typeof define && define.amd + ? define(["exports"], n) + : n(t.d3 = t.d3 || {}) +})(this, function (t) { + "use strict"; + function n(t) { + return function (n, e) { + return Ms(t(n), e) + } + } + function e(t, n, e) { + var r = Math.abs(n - t) / Math.max(0, e), + i = Math.pow(10, Math.floor(Math.log(r) / Math.LN10)), + o = r / i; + return o >= Fs + ? i *= 10 + : o >= Is + ? i *= 5 + : o >= Ys && (i *= 2), + n < t + ? -i + : i + } + function r(t) { + return t.length + } + function i() {} + function o(t, n) { + var e = new i; + if (t instanceof i) + t.each(function (t, n) { + e.set(n, t) + }); + else if (Array.isArray(t)) { + var r, + o = -1, + u = t.length; + if (null == n) + for (; ++o < u;) + e.set(o, t[o]); + else + for (; ++o < u;) + e.set(n(r = t[o], o, t), r) + } else if (t) + for (var a in t) + e.set(a, t[a]); + return e + } + function u() { + return {} + } + function a(t, n, e) { + t[n] = e + } + function c() { + return o() + } + function s(t, n, e) { + t.set(n, e) + } + function f() {} + function l(t, n) { + var e = new f; + if (t instanceof f) + t.each(function (t) { + e.add(t) + }); + else if (t) { + var r = -1, + i = t.length; + if (null == n) + for (; ++r < i;) + e.add(t[r]); + else + for (; ++r < i;) + e.add(n(t[r], r, t)) + } + return e + } + function h(t) { + return + t + } + function p(t) { + return t * t + } + function d(t) { + return t * (2 - t) + } + function v(t) { + return ((t *= 2) <= 1 + ? t * t + : --t * (2 - t) + 1) / 2 + } + function _(t) { + return t * t * t + } + function y(t) { + return-- t * t * t + 1 + } + function g(t) { + return ((t *= 2) <= 1 + ? t * t * t + : (t -= 2) * t * t + 2) / 2 + } + function m(t) { + return 1 - Math.cos(t * Tf) + } + function x(t) { + return Math.sin(t * Tf) + } + function b(t) { + return (1 - Math.cos(Mf * t)) / 2 + } + function w(t) { + return Math.pow(2, 10 * t - 10) + } + function M(t) { + return 1 - Math.pow(2, -10 * t) + } + function T(t) { + return ((t *= 2) <= 1 + ? Math.pow(2, 10 * t - 10) + : 2 - Math.pow(2, 10 - 10 * t)) / 2 + } + function N(t) { + return 1 - Math.sqrt(1 - t * t) + } + function k(t) { + return Math.sqrt(1 - --t * t) + } + function S(t) { + return ((t *= 2) <= 1 + ? 1 - Math.sqrt(1 - t * t) + : Math.sqrt(1 - (t -= 2) * t) + 1) / 2 + } + function A(t) { + return 1 - E(1 - t) + } + function E(t) { + return (t =+ t) < Nf + ? Lf * t * t + : t < Sf + ? Lf * (t -= kf) * t + Af + : t < Cf + ? Lf * (t -= Ef) * t + zf + : Lf * (t -= Pf) * t + qf + } + function C(t) { + return ((t *= 2) <= 1 + ? 1 - E(1 - t) + : E(t - 1) + 1) / 2 + } + function z(t, n) { + return t[0] - n[0] || t[1] - n[1] + } + function P(t) { + for (var n = t.length, e = [ + 0, 1 + ], r = 2, i = 2; i < n; ++i) { + for (; r > 1 && Wf(t[e[r - 2]], t[e[r - 1]], t[i]) <= 0;) + --r; + e[r++] = i + } + return e.slice(0, r) + } + function q() { + this._x0 = this._y0 = this._x1 = this._y1 = null, + this._ = [] + } + function L() { + return new q + } + function R(t, n, e, r) { + if (isNaN(n) || isNaN(e)) + return t; + var i, + o, + u, + a, + c, + s, + f, + l, + h, + p = t._root, + d = { + data: r + }, + v = t._x0, + _ = t._y0, + y = t._x1, + g = t._y1; + if (!p) + return t._root = d, + t; + for (; p.length;) + if ((s = n >= (o = (v + y) / 2)) + ? v = o + : y = o, (f = e >= (u = (_ + g) / 2)) + ? _ = u + : g = u, i = p, !(p = p[l = f << 1 | s])) + return i[l] = d, + t; + if (a =+ t._x.call(null, p.data), c =+ t._y.call(null, p.data), n === a && e === c) + return d.next = p, + i + ? i[l] = d + : t._root = d, + t; + do + i = i + ? i[l] = new Array(4) + : t._root = new Array(4), + (s = n >= (o = (v + y) / 2)) + ? v = o + : y = o, + (f = e >= (u = (_ + g) / 2)) + ? _ = u + : g = u; + while ((l = f << 1 | s) === (h = (c >= u) << 1 | a >= o)); + return i[h] = p, + i[l] = d, + t + } + function U(t) { + var n, + e, + r, + i, + o = t.length, + u = new Array(o), + a = new Array(o), + c = 1 / 0, + s = 1 / 0, + f = -(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)) || (u[e] = r, a[e] = i, r < c && (c = r), r > f && (f = r), i < s && (s = i), i > l && (l = i)); + for (f < c && (c = this._x0, f = this._x1), l < s && (s = this._y0, l = this._y1), this.cover(c, s).cover(f, l), e = 0; e < o; ++e) + R(this, u[e], a[e], t[e]); + return this + } + function D(t) { + for (var n = 0, e = t.length; n < e; ++n) + this.remove(t[n]); + return this + } + function O(t) { + return t[0] + } + function F(t) { + return t[1] + } + function I(t, n, e) { + var r = new Y(null == n + ? O + : n, null == e + ? F + : e, NaN, NaN, NaN, NaN); + return null == t + ? r + : r.addAll(t) + } + function Y(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 B(t) { + for (var n = { + data: t.data + }, e = n; t = t.next;) + e = e.next = { + data: t.data + }; + return n + } + function j(t) { + if (!(t >= 1)) + throw new Error; + this._size = t, + this._call = this._error = null, + this._tasks = [], + this._data = [], + this._waiting = this._active = this._ended = this._start = 0 + } + function H(t) { + if (!t._start) + try { + X(t) + } catch (n) { + if (t._tasks[t._ended + t._active - 1]) + W(t, n); + else if (!t._data) + throw n + } + } + function X(t) { + for (; t._start = t._waiting && t._active < t._size;) { + var n = t._ended + t._active, + e = t._tasks[n], + r = e.length - 1, + i = e[r]; + e[r] = V(t, n), + --t._waiting, + ++t._active, + e = i.apply(null, e), + t._tasks[n] && (t._tasks[n] = e || _l) + } + } + function V(t, n) { + return function (e, r) { + t._tasks[n] && (--t._active, ++t._ended, t._tasks[n] = null, null == t._error && (null != e + ? W(t, e) + : (t._data[n] = r, t._waiting + ? H(t) + : $(t)))) + } + } + function W(t, n) { + var e, + r = t._tasks.length; + for (t._error = n, t._data = void 0, t._waiting = NaN; --r >= 0;) + if ((e = t._tasks[r]) && (t._tasks[r] = null, e.abort)) + try { + e.abort() + } catch (t) {} + t._active = NaN, + $(t) + } + function $(t) { + if (!t._active && t._call) { + var n = t._data; + t._data = void 0, + t._call(t._error, n) + } + } + function Z(t) { + return new j(arguments.length ?+ t : 1 / 0) + } + function G(t) { + return t.innerRadius + } + function J(t) { + return t.outerRadius + } + function Q(t) { + return t.startAngle + } + function K(t) { + return t.endAngle + } + function tt(t) { + return t && t.padAngle + } + function nt(t) { + return t >= 1 + ? xl + : t <= -1 + ? -xl + : Math.asin(t) + } + function et(t, n, e, r, i, o, u, a) { + var c = e - t, + s = r - n, + f = u - i, + l = a - o, + h = (f * (n - o) - l * (t - i)) / (l * c - f * s); + return [ + t + h * c, + n + h * s + ] + } + function rt(t, n, e, r, i, o, u) { + var a = t - e, + c = n - r, + s = (u + ? o + : -o) / Math.sqrt(a * a + c * c), + f = s * c, + l = -s * a, + h = t + f, + p = n + l, + d = e + f, + v = r + l, + _ = (h + d) / 2, + y = (p + v) / 2, + g = d - h, + m = v - p, + x = g * g + m * m, + b = i - o, + w = h * v - d * p, + M = (m < 0 + ? -1 + : 1) * Math.sqrt(Math.max(0, b * b * x - w * w)), + T = (w * m - g * M) / x, + N = (-w * g - m * M) / x, + k = (w * m + g * M) / x, + S = (-w * g + m * M) / x, + A = T - _, + E = N - y, + C = k - _, + z = S - y; + return A * A + E * E > C * C + z * z && (T = k, N = S), { + cx: T, + cy: N, + x01: -f, + y01: -l, + x11: *(i / b - 1), + y11: *(i / b - 1) + } + } + function it(t) { + this._context = t + } + function ot(t) { + return t[0] + } + function ut(t) { + return t[1] + } + function at(t) { + this._curve = t + } + function ct(t) { + function n(n) { + return new at(t(n)) + } + return n._curve = t, + n + } + function st(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(ct(t)) + : n()._curve + }, + t + } + function ft(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 lt(t) { + this._context = t + } + function ht(t) { + this._context = t + } + function pt(t) { + this._context = t + } + function dt(t, n) { + this._basis = new lt(t), + this._beta = n + } + function vt(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 _t(t, n) { + this._context = t, + this._k = (1 - n) / 6 + } + function yt(t, n) { + this._context = t, + this._k = (1 - n) / 6 + } + function gt(t, n) { + this._context = t, + this._k = (1 - n) / 6 + } + function mt(t, n, e) { + var r = t._x1, + i = t._y1, + o = t._x2, + u = t._y2; + if (t._l01_a > gl) { + var a = 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 * a - t._x0 * t._l12_2a + t._x2 * t._l01_2a) / c, + i = (i * a - t._y0 * t._l12_2a + t._y2 * t._l01_2a) / c + } + if (t._l23_a > gl) { + var s = 2 * t._l23_2a + 3 * t._l23_a * t._l12_a + t._l12_2a, + f = 3 * t._l23_a * (t._l23_a + t._l12_a); + o = (o * s + t._x1 * t._l23_2a - n * t._l12_2a) / f, + u = (u * s + t._y1 * t._l23_2a - e * t._l12_2a) / f + } + t + ._context + .bezierCurveTo(r, i, o, u, t._x2, t._y2) + } + function xt(t, n) { + this._context = t, + this._alpha = n + } + function bt(t, n) { + this._context = t, + this._alpha = n + } + function wt(t, n) { + this._context = t, + this._alpha = n + } + function Mt(t) { + this._context = t + } + function Tt(t) { + return t < 0 + ? -1 + : 1 + } + function Nt(t, n, e) { + var r = t._x1 - t._x0, + i = n - t._x1, + o = (t._y1 - t._y0) / (r || i < 0 && -0), + u = (e - t._y1) / (i || r < 0 && -0), + a = (o * i + u * r) / (r + i); + return (Tt(o) + Tt(u)) * Math.min(Math.abs(o), Math.abs(u), .5 * Math.abs(a)) || 0 + } + function kt(t, n) { + var e = t._x1 - t._x0; + return e + ? (3 * (t._y1 - t._y0) / e - n) / 2 + : n + } + function St(t, n, e) { + var r = t._x0, + i = t._y0, + o = t._x1, + u = t._y1, + a = (o - r) / 3; + t + ._context + .bezierCurveTo(r + a, i + a * n, o - a, u - a * e, o, u) + } + function At(t) { + this._context = t + } + function Et(t) { + this._context = new Ct(t) + } + function Ct(t) { + this._context = t + } + function zt(t) { + return new At(t) + } + function Pt(t) { + return new Et(t) + } + function qt(t) { + this._context = t + } + function Lt(t) { + var n, + e, + r = t.length - 1, + i = new Array(r), + o = new Array(r), + u = new Array(r); + for (i[0] = 0, o[0] = 2, u[0] = t[0] + 2 * t[1], n = 1; n < r - 1; ++n) + i[n] = 1, + o[n] = 4, + u[n] = 4 * t[n] + 2 * t[n + 1]; + for (i[r - 1] = 2, o[r - 1] = 7, u[r - 1] = 8 * t[r - 1] + t[r], n = 1; n < r; ++n) + e = i[n] / o[n - 1], + o[n] -= e, + u[n] -= e * u[n - 1]; + for (i[r - 1] = u[r - 1] / o[r - 1], n = r - 2; n >= 0; --n) + i[n] = (u[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 Rt(t, n) { + this._context = t, + this._t = n + } + function Ut(t) { + return new Rt(t, 0) + } + function Dt(t) { + return new Rt(t, 1) + } + function Ot(t, n) { + return t[n] + } + function Ft(t) { + for (var n, e = 0, r = -1, i = t.length; ++r < i;) + (n =+ t[r][1]) && (e += n); + return e + } + function It(t, n) { + var e = Object.create(t.prototype); + for (var r in n) + e[r] = n[r]; + return e + } + function Yt() {} + function Bt(t) { + var n; + return t = (t + "") + .trim() + .toLowerCase(), + (n = kh.exec(t)) + ? (n = parseInt(n[1], 16), new Wt(n >> 8 & 15 | n >> 4 & 240, n >> 4 & 15 | 240 & n, (15 & n) << 4 | 15 & n, 1)) + : (n = Sh.exec(t)) + ? jt(parseInt(n[1], 16)) + : (n = Ah.exec(t)) + ? new Wt(n[1], n[2], n[3], 1) + : (n = Eh.exec(t)) + ? new Wt(255 * n[1] / 100, 255 * n[2] / 100, 255 * n[3] / 100, 1) + : (n = Ch.exec(t)) + ? Ht(n[1], n[2], n[3], n[4]) + : (n = zh.exec(t)) + ? Ht(255 * n[1] / 100, 255 * n[2] / 100, 255 * n[3] / 100, n[4]) + : (n = Ph.exec(t)) + ? $t(n[1], n[2] / 100, n[3] / 100, 1) + : (n = qh.exec(t)) + ? $t(n[1], n[2] / 100, n[3] / 100, n[4]) + : Lh.hasOwnProperty(t) + ? jt(Lh[t]) + : "transparent" === t + ? new Wt(NaN, NaN, NaN, 0) + : null + } + function jt(t) { + return new Wt(t >> 16 & 255, t >> 8 & 255, 255 & t, 1) + } + function Ht(t, n, e, r) { + return r <= 0 && (t = n = e = NaN), + new Wt(t, n, e, r) + } + function Xt(t) { + return t instanceof Yt || (t = Bt(t)), + t + ? (t = t.rgb(), new Wt(t.r, t.g, t.b, t.opacity)) + : new Wt + } + function Vt(t, n, e, r) { + return 1 === arguments.length + ? Xt(t) + : new Wt(t, n, e, null == r + ? 1 + : r) + } + function Wt(t, n, e, r) { + this.r =+ t, + this.g =+ n, + this.b =+ e, + this.opacity =+ r + } + function $t(t, n, e, r) { + return r <= 0 + ? t = n = e = NaN + : e <= 0 || e >= 1 + ? t = n = NaN + : n <= 0 && (t = NaN), + new Jt(t, n, e, r) + } + function Zt(t) { + if (t instanceof Jt) + return new Jt(t.h, t.s, t.l, t.opacity); + if (t instanceof Yt || (t = Bt(t)), !t) + return new Jt; + if (t instanceof Jt) + return t; + t = t.rgb(); + var n = t.r / 255, + e = t.g / 255, + r = t.b / 255, + i = Math.min(n, e, r), + o = Math.max(n, e, r), + u = NaN, + a = o - i, + c = (o + i) / 2; + return a + ? (u = n === o + ? (e - r) / a + 6 * (e < r) + : e === o + ? (r - n) / a + 2 + : (n - e) / a + 4, a /= c < .5 + ? o + i + : 2 - o - i, u *= 60) + : a = c > 0 && c < 1 + ? 0 + : u, + new Jt(u, a, c, t.opacity) + } + function Gt(t, n, e, r) { + return 1 === arguments.length + ? Zt(t) + : new Jt(t, n, e, null == r + ? 1 + : r) + } + function Jt(t, n, e, r) { + this.h =+ t, + this.s =+ n, + this.l =+ e, + this.opacity =+ r + } + function Qt(t, n, e) { + return 255 * (t < 60 + ? n + (e - n) * t / 60 + : t < 180 + ? e + : t < 240 + ? n + (e - n) * (240 - t) / 60 + : n) + } + function Kt(t) { + if (t instanceof nn) + return new nn(t.l, t.a, t.b, t.opacity); + if (t instanceof sn) { + var n = t.h * Rh; + return new nn(t.l, Math.cos(n) * t.c, Math.sin(n) * t.c, t.opacity) + } + t instanceof Wt || (t = Xt(t)); + var e = un(t.r), + r = un(t.g), + i = un(t.b), + o = en((.4124564 * e + .3575761 * r + .1804375 * i) / Oh), + u = en((.2126729 * e + .7151522 * r + .072175 * i) / Fh), + a = en((.0193339 * e + .119192 * r + .9503041 * i) / Ih); + return new nn(116 * u - 16, 500 * (o - u), 200 * (u - a), t.opacity) + } + function tn(t, n, e, r) { + return 1 === arguments.length + ? Kt(t) + : new nn(t, n, e, null == r + ? 1 + : r) + } + function nn(t, n, e, r) { + this.l =+ t, + this.a =+ n, + this.b =+ e, + this.opacity =+ r + } + function en(t) { + return t > Hh + ? Math.pow(t, 1 / 3) + : t / jh + Yh + } + function rn(t) { + return t > Bh + ? t * t * t + : jh * (t - Yh) + } + function on(t) { + return 255 * (t <= .0031308 + ? 12.92 * t + : 1.055 * Math.pow(t, 1 / 2.4) - .055) + } + function un(t) { + return (t /= 255) <= .04045 + ? t / 12.92 + : Math.pow((t + .055) / 1.055, 2.4) + } + function an(t) { + if (t instanceof sn) + return new sn(t.h, t.c, t.l, t.opacity); + t instanceof nn || (t = Kt(t)); + var n = Math.atan2(t.b, t.a) * Uh; + return new sn(n < 0 + ? n + 360 + : n, Math.sqrt(t.a * t.a + t.b * t.b), t.l, t.opacity) + } + function cn(t, n, e, r) { + return 1 === arguments.length + ? an(t) + : new sn(t, n, e, null == r + ? 1 + : r) + } + function sn(t, n, e, r) { + this.h =+ t, + this.c =+ n, + this.l =+ e, + this.opacity =+ r + } + function fn(t) { + if (t instanceof hn) + return new hn(t.h, t.s, t.l, t.opacity); + t instanceof Wt || (t = Xt(t)); + var n = t.r / 255, + e = t.g / 255, + r = t.b / 255, + i = (Qh * r + Gh * n - Jh * e) / (Qh + Gh - Jh), + o = r - i, + u = (Zh * (e - i) - Wh * o) / $h, + a = Math.sqrt(u * u + o * o) / (Zh * i * (1 - i)), + c = a + ? Math.atan2(u, o) * Uh - 120 + : NaN; + return new hn(c < 0 + ? c + 360 + : c, a, i, t.opacity) + } + function ln(t, n, e, r) { + return 1 === arguments.length + ? fn(t) + : new hn(t, n, e, null == r + ? 1 + : r) + } + function hn(t, n, e, r) { + this.h =+ t, + this.s =+ n, + this.l =+ e, + this.opacity =+ r + } + function pn(t, n, e, r, i) { + var o = t * t, + u = o * t; + return ((1 - 3 * t + 3 * o - u) * n + (4 - 6 * o + 3 * u) * e + (1 + 3 * t + 3 * o - 3 * u) * r + u * i) / 6 + } + function dn(t, n) { + return function (e) { + return t + e * n + } + } + function vn(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) + } + } + function _n(t, n) { + var e = n - t; + return e + ? dn(t, e > 180 || e < -180 + ? e - 360 * Math.round(e / 360) + : e) + : op(isNaN(t) + ? n + : t) + } + function yn(t) { + return 1 === (t =+ t) + ? gn + : function (n, e) { + return e - n + ? vn(n, e, t) + : op(isNaN(n) + ? e + : n) + } + } + function gn(t, n) { + var e = n - t; + return e + ? dn(t, e) + : op(isNaN(t) + ? n + : t) + } + function mn(t) { + return function (n) { + var e, + r, + i = n.length, + o = new Array(i), + u = new Array(i), + a = new Array(i); + for (e = 0; e < i; ++e) + r = Vt(n[e]), + o[e] = r.r || 0, + u[e] = r.g || 0, + a[e] = r.b || 0; + return o = t(o), + u = t(u), + a = t(a), + r.opacity = 1, + function (t) { + return r.r = o(t), + r.g = u(t), + r.b = a(t), + r + "" + } + } + } + function xn(t) { + return function () { + return t + } + } + function bn(t) { + return function (n) { + return t(n) + "" + } + } + function wn(t) { + return "none" === t + ? mp + : (Kh || (Kh = document.createElement("DIV"), tp = document.documentElement, np = document.defaultView), Kh.style.transform = t, t = np.getComputedStyle(tp.appendChild(Kh), null).getPropertyValue("transform"), tp.removeChild(Kh), t = t.slice(7, -1).split(","), xp(+ t[0], + t[1], + t[2], + t[3], + t[4], + t[5])) + } + function Mn(t) { + return null == t + ? mp + : (ep || (ep = document.createElementNS("http://www.w3.org/2000/svg", "g")), ep.setAttribute("transform", t), (t = ep.transform.baseVal.consolidate()) + ? (t = t.matrix, xp(t.a, t.b, t.c, t.d, t.e, t.f)) + : mp) + } + function Tn(t, n, e, r) { + function i(t) { + return t.length + ? t.pop() + " " + : "" + } + function o(t, r, i, o, u, a) { + if (t !== i || r !== o) { + var c = u.push("translate(", null, n, null, e); + a.push({ + i: c - 4, + x: lp(t, i) + }, { + i: c - 2, + x: lp(r, o) + }) + } else + (i || o) && u.push("translate(" + i + n + o + e) + } + function u(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: lp(t, n) + })) + : n && e.push(i(e) + "rotate(" + n + r) + } + function a(t, n, e, o) { + t !== n + ? o.push({ + i: e.push(i(e) + "skewX(", null, r) - 2, + x: lp(t, n) + }) + : n && e.push(i(e) + "skewX(" + n + r) + } + function c(t, n, e, r, o, u) { + if (t !== e || n !== r) { + var a = o.push(i(o) + "scale(", null, ",", null, ")"); + u.push({ + i: a - 4, + x: lp(t, e) + }, { + i: a - 2, + x: lp(n, r) + }) + } else + 1 === e && 1 === r || o.push(i(o) + "scale(" + e + "," + r + ")") + } + return function (n, e) { + var r = [], + i = []; + return n = t(n), + e = t(e), + o(n.translateX, n.translateY, e.translateX, e.translateY, r, i), + u(n.rotate, e.rotate, r, i), + a(n.skewX, e.skewX, r, i), + c(n.scaleX, n.scaleY, e.scaleX, e.scaleY, r, i), + n = e = null, + function (t) { + for (var n, e = -1, o = i.length; ++e < o;) + r[(n = i[e]).i] = n.x(t); + return r.join("") + } + } + } + function Nn(t) { + return ((t = Math.exp(t)) + 1 / t) / 2 + } + function kn(t) { + return ((t = Math.exp(t)) - 1 / t) / 2 + } + function Sn(t) { + return ((t = Math.exp(2 * t)) - 1) / (t + 1) + } + function An(t) { + return function (n, e) { + var r = t((n = Gt(n)).h, (e = Gt(e)).h), + i = gn(n.s, e.s), + o = gn(n.l, e.l), + u = gn(n.opacity, e.opacity); + return function (t) { + return n.h = r(t), + n.s = i(t), + n.l = o(t), + n.opacity = u(t), + n + "" + } + } + } + function En(t, n) { + var e = gn((t = tn(t)).l, (n = tn(n)).l), + r = gn(t.a, n.a), + i = gn(t.b, n.b), + o = gn(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 + "" + } + } + function Cn(t) { + return function (n, e) { + var r = t((n = cn(n)).h, (e = cn(e)).h), + i = gn(n.c, e.c), + o = gn(n.l, e.l), + u = gn(n.opacity, e.opacity); + return function (t) { + return n.h = r(t), + n.c = i(t), + n.l = o(t), + n.opacity = u(t), + n + "" + } + } + } + function zn(t) { + return function n(e) { + function r(n, r) { + var i = t((n = ln(n)).h, (r = ln(r)).h), + o = gn(n.s, r.s), + u = gn(n.l, r.l), + a = gn(n.opacity, r.opacity); + return function (t) { + return n.h = i(t), + n.s = o(t), + n.l = u(Math.pow(t, e)), + n.opacity = a(t), + n + "" + } + } + return e =+ e, + r.gamma = n, + r + }(1) + } + function Pn() { + for (var t, n = 0, e = arguments.length, r = {}; n < e; ++n) { + if (!(t = arguments[n] + "") || t in r) + throw new Error("illegal type: " + t); + r[t] = [] + } + return new qn(r) + } + function qn(t) { + this._ = t + } + function Ln(t, n) { + return t + .trim() + .split(/^|\s+/) + .map(function (t) { + var e = "", + r = t.indexOf("."); + if (r >= 0 && (e = t.slice(r + 1), t = t.slice(0, r)), t && !n.hasOwnProperty(t)) + throw new Error("unknown type: " + t); + return {type: t, name: e} + }) + } + function Rn(t, n) { + for (var e, r = 0, i = t.length; r < i; ++r) + if ((e = t[r]).name === n) + return e.value + } + function Un(t, n, e) { + for (var r = 0, i = t.length; r < i; ++r) + if (t[r].name === n) { + t[r] = Rp, + t = t + .slice(0, r) + .concat(t.slice(r + 1)); + break + } + return null != e && t.push({name: n, value: e}), + t + } + function Dn(t) { + return new Function("d", "return {" + t.map(function (t, n) { + return JSON.stringify(t) + ": d[" + n + "]" + }).join(",") + "}") + } + function On(t, n) { + var e = Dn(t); + return function (r, i) { + return n(e(r), i, t) + } + } + function Fn(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 In(t) { + return function (n, e) { + t(null == n + ? e + : null) + } + } + function Yn(t) { + var n = t.responseType; + return n && "text" !== n + ? t.response + : t.responseText + } + function Bn(t, n) { + return function (e) { + return t(e.responseText, n) + } + } + function jn() { + return sd || (hd(Hn), sd = ld.now() + fd) + } + function Hn() { + sd = 0 + } + function Xn() { + this._call = this._time = this._next = null + } + function Vn(t, n, e) { + var r = new Xn; + return r.restart(t, n, e), + r + } + function Wn() { + jn(), + ++id; + for (var t, n = Up; n;) + (t = sd - n._time) >= 0 && n._call.call(null, t), + n = n._next; + + --id + } + function $n() { + sd = (cd = ld.now()) + fd, + id = od = 0; + try { + Wn() + } finally { + id = 0, + Gn(), + sd = 0 + } + } + function Zn() { + var t = ld.now(), + n = t - cd; + n > ad && (fd -= n, cd = t) + } + function Gn() { + for (var t, n, e = Up, r = 1 / 0; 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 + : Up = n); + Dp = t, + Jn(r) + } + function Jn(t) { + if (!id) { + od && (od = clearTimeout(od)); + var n = t - sd; + n > 24 + ? (t < 1 / 0 && (od = setTimeout($n, n)), ud && (ud = clearInterval(ud))) + : (ud || (ud = setInterval(Zn, ad)), id = 1, hd($n)) + } + } + function Qn(t, n, e, r) { + function i(n) { + return t(n = new Date(+ n)), + n + } + return i.floor = i, + i.ceil = function (e) { + return t(e = new Date(e - 1)), + n(e, 1), + t(e), + e + }, + i.round = function (t) { + var n = i(t), + e = i.ceil(t); + return t - n < e - t + ? n + : e + }, + i.offset = function (t, e) { + return n(t = new Date(+ t), null == e + ? 1 + : Math.floor(e)), + t + }, + i.range = function (e, r, o) { + var u = []; + if (e = i.ceil(e), o = null == o + ? 1 + : Math.floor(o), !(e < r && o > 0)) + return u; + do + u.push(new Date(+ e)); + while (n(e, o), t(e), e < r); + return u + }, + i.filter = function (e) { + return Qn(function (n) { + if (n >= n) + for (; t(n), !e(n);) + n.setTime(n - 1) + }, function (t, r) { + if (t >= t) + for (; --r >= 0;) + for (; n(t, 1), !e(t);) ; + } + ) + }, + e && (i.count = function (n, r) { + return vd.setTime(+ n), + _d.setTime(+ r), + t(vd), + t(_d), + Math.floor(e(vd, _d)) + }, + i.every = function (t) { + return t = Math.floor(t), + isFinite(t) && t > 0 + ? t > 1 + ? i.filter(r + ? function (n) { + return r(n) % t === 0 + } + : function (n) { + return i.count(0, n) % t === 0 + }) + : i + : null + }), + i + } + function Kn(t) { + return Qn(function (n) { + n.setDate(n.getDate() - (n.getDay() + 7 - t) % 7), + n.setHours(0, 0, 0, 0) + }, function (t, n) { + t.setDate(t.getDate() + 7 * n) + }, function (t, n) { + return (n - t - (n.getTimezoneOffset() - t.getTimezoneOffset()) * xd) / Md + }) + } + function te(t) { + return Qn(function (n) { + n.setUTCDate(n.getUTCDate() - (n.getUTCDay() + 7 - t) % 7), + n.setUTCHours(0, 0, 0, 0) + }, function (t, n) { + t.setUTCDate(t.getUTCDate() + 7 * n) + }, function (t, n) { + return (n - t) / Md + }) + } + function ne(t) { + if (!(n = Av.exec(t))) + throw new Error("invalid format: " + t); + var n, + e = n[1] || " ", + r = n[2] || ">", + i = n[3] || "-", + o = n[4] || "", + u = !!n[5], + a = n[6] &&+ n[6], + c = !!n[7], + s = n[8] &&+ n[8].slice(1), + f = n[9] || ""; + "n" === f + ? (c = !0, f = "g") + : Sv[f] || (f = ""), + (u || "0" === e && "=" === r) && (u = !0, e = "0", r = "="), + this.fill = e, + this.align = r, + this.sign = i, + this.symbol = o, + this.zero = u, + this.width = a, + this.comma = c, + this.precision = s, + this.type = f + } + function ee(t) { + return t + } + function re(n) { + return Cv = Pv(n), + t.format = Cv.format, + t.formatPrefix = Cv.formatPrefix, + Cv + } + function ie(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 oe(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 ue(t) { + return { + y: t, + m: 0, + d: 1, + H: 0, + M: 0, + S: 0, + L: 0 + } + } + function ae(t) { + function n(t, n) { + return function (e) { + var r, + i, + o, + u = [], + a = -1, + c = 0, + s = t.length; + for (e instanceof Date || (e = new Date(+ e)); ++a < s;) + 37 === t.charCodeAt(a) && (u.push(t.slice(c, a)), null != (i = Dv[r = t.charAt(++a)]) + ? r = t.charAt(++a) + : i = "e" === r + ? " " + : "0", (o = n[r]) && (r = o(e, i)), u.push(r), c = a + 1); + return u.push(t.slice(c, a)), + u.join("") + } + } + function e(t, n) { + return function (e) { + var i = ue(1900), + o = r(i, t, e += "", 0); + if (o != e.length) + return null; + if ("p" in i && (i.H = i.H % 12 + 12 * i.p), "W" in i || "U" in i) { + "w" in i || (i.w = "W" in i + ? 1 + : 0); + var u = "Z" in i + ? oe(ue(i.y)).getUTCDay() + : n(ue(i.y)).getDay(); + i.m = 0, + i.d = "W" in i + ? (i.w + 6) % 7 + 7 * i.W - (u + 5) % 7 + : i.w + 7 * i.U - (u + 6) % 7 + } + return "Z" in i + ? (i.H += i.Z / 100 | 0, i.M += i.Z % 100, oe(i)) + : n(i) + } + } + function r(t, n, e, r) { + for (var i, o, u = 0, a = n.length, c = e.length; u < a;) { + if (r >= c) + return -1; + if (i = n.charCodeAt(u++), 37 === i) { + if (i = n.charAt(u++), o = B[i in Dv + ? n.charAt(u++) + : i], !o || (r = o(t, e, r)) < 0) + return -1 + } else if (i != e.charCodeAt(r++)) + return -1 + } + return r + } + function i(t, n, e) { + var r = C.exec(n.slice(e)); + return r + ? (t.p = z[r[0].toLowerCase()], e + r[0].length) + : -1 + } + function o(t, n, e) { + var r = L.exec(n.slice(e)); + return r + ? (t.w = R[r[0].toLowerCase()], e + r[0].length) + : -1 + } + function u(t, n, e) { + var r = P.exec(n.slice(e)); + return r + ? (t.w = q[r[0].toLowerCase()], e + r[0].length) + : -1 + } + function a(t, n, e) { + var r = O.exec(n.slice(e)); + return r + ? (t.m = F[r[0].toLowerCase()], e + r[0].length) + : -1 + } + function c(t, n, e) { + var r = U.exec(n.slice(e)); + return r + ? (t.m = D[r[0].toLowerCase()], e + r[0].length) + : -1 + } + function s(t, n, e) { + return r(t, w, n, e) + } + function f(t, n, e) { + return r(t, M, n, e) + } + function l(t, n, e) { + return r(t, T, n, e) + } + function h(t) { + return S[t.getDay()] + } + function p(t) { + return k[t.getDay()] + } + function d(t) { + return E[t.getMonth()] + } + function v(t) { + return A[t.getMonth()] + } + function _(t) { + return N[+ (t.getHours() >= 12)] + } + function y(t) { + return S[t.getUTCDay()] + } + function g(t) { + return k[t.getUTCDay()] + } + function m(t) { + return E[t.getUTCMonth()] + } + function x(t) { + return A[t.getUTCMonth()] + } + function b(t) { + return N[+ (t.getUTCHours() >= 12)] + } + var w = t.dateTime, + M = t.date, + T = t.time, + N = t.periods, + k = t.days, + S = t.shortDays, + A = t.months, + E = t.shortMonths, + C = fe(N), + z = le(N), + P = fe(k), + q = le(k), + L = fe(S), + R = le(S), + U = fe(A), + D = le(A), + O = fe(E), + F = le(E), + I = { + a: h, + A: p, + b: d, + B: v, + c: null, + d: ke, + e: ke, + H: Se, + I: Ae, + j: Ee, + L: Ce, + m: ze, + M: Pe, + p: _, + S: qe, + U: Le, + w: Re, + W: Ue, + x: null, + X: null, + y: De, + Y: Oe, + Z: Fe, + "%": tr + }, + Y = { + a: y, + A: g, + b: m, + B: x, + c: null, + d: Ie, + e: Ie, + H: Ye, + I: Be, + j: je, + L: He, + m: Xe, + M: Ve, + p: b, + S: We, + U: $e, + w: Ze, + W: Ge, + x: null, + X: null, + y: Je, + Y: Qe, + Z: Ke, + "%": tr + }, + B = { + a: o, + A: u, + b: a, + B: c, + c: s, + d: me, + e: me, + H: be, + I: be, + j: xe, + L: Te, + m: ge, + M: we, + p: i, + S: Me, + U: pe, + w: he, + W: de, + x: f, + X: l, + y: _e, + Y: ve, + Z: ye, + "%": Ne + }; + return I.x = n(M, I), + I.X = n(T, I), + I.c = n(w, I), + Y.x = n(M, Y), + Y.X = n(T, Y), + Y.c = n(w, Y), { + format: function (t) { + var e = n(t += "", I); + return e.toString = function () { + return t + }, + e + }, + parse: function (t) { + var n = e(t += "", ie); + return n.toString = function () { + return t + }, + n + }, + utcFormat: function (t) { + var e = n(t += "", Y); + return e.toString = function () { + return t + }, + e + }, + utcParse: function (t) { + var n = e(t, oe); + return n.toString = function () { + return t + }, + n + } + } + } + function ce(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 se(t) { + return t.replace(Iv, "\\$&") + } + function fe(t) { + return new RegExp("^(?:" + t.map(se).join("|") + ")", "i") + } + function le(t) { + for (var n = {}, e = -1, r = t.length; ++e < r;) + n[t[e].toLowerCase()] = e; + return n + } + function he(t, n, e) { + var r = Ov.exec(n.slice(e, e + 1)); + return r + ? (t.w =+ r[0], e + r[0].length) + : -1 + } + function pe(t, n, e) { + var r = Ov.exec(n.slice(e)); + return r + ? (t.U =+ r[0], e + r[0].length) + : -1 + } + function de(t, n, e) { + var r = Ov.exec(n.slice(e)); + return r + ? (t.W =+ r[0], e + r[0].length) + : -1 + } + function ve(t, n, e) { + var r = Ov.exec(n.slice(e, e + 4)); + return r + ? (t.y =+ r[0], e + r[0].length) + : -1 + } + function _e(t, n, e) { + var r = Ov.exec(n.slice(e, e + 2)); + return r + ? (t.y =+ r[0] + (+ r[0] > 68 + ? 1900 + : 2e3), e + r[0].length) + : -1 + } + function ye(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 ge(t, n, e) { + var r = Ov.exec(n.slice(e, e + 2)); + return r + ? (t.m = r[0] - 1, e + r[0].length) + : -1 + } + function me(t, n, e) { + var r = Ov.exec(n.slice(e, e + 2)); + return r + ? (t.d =+ r[0], e + r[0].length) + : -1 + } + function xe(t, n, e) { + var r = Ov.exec(n.slice(e, e + 3)); + return r + ? (t.m = 0, t.d =+ r[0], e + r[0].length) + : -1 + } + function be(t, n, e) { + var r = Ov.exec(n.slice(e, e + 2)); + return r + ? (t.H =+ r[0], e + r[0].length) + : -1 + } + function we(t, n, e) { + var r = Ov.exec(n.slice(e, e + 2)); + return r + ? (t.M =+ r[0], e + r[0].length) + : -1 + } + function Me(t, n, e) { + var r = Ov.exec(n.slice(e, e + 2)); + return r + ? (t.S =+ r[0], e + r[0].length) + : -1 + } + function Te(t, n, e) { + var r = Ov.exec(n.slice(e, e + 3)); + return r + ? (t.L =+ r[0], e + r[0].length) + : -1 + } + function Ne(t, n, e) { + var r = Fv.exec(n.slice(e, e + 1)); + return r + ? e + r[0].length + : -1 + } + function ke(t, n) { + return ce(t.getDate(), n, 2) + } + function Se(t, n) { + return ce(t.getHours(), n, 2) + } + function Ae(t, n) { + return ce(t.getHours() % 12 || 12, n, 2) + } + function Ee(t, n) { + return ce(1 + Cd.count($d(t), t), n, 3) + } + function Ce(t, n) { + return ce(t.getMilliseconds(), n, 3) + } + function ze(t, n) { + return ce(t.getMonth() + 1, n, 2) + } + function Pe(t, n) { + return ce(t.getMinutes(), n, 2) + } + function qe(t, n) { + return ce(t.getSeconds(), n, 2) + } + function Le(t, n) { + return ce(Pd.count($d(t), t), n, 2) + } + function Re(t) { + return t.getDay() + } + function Ue(t, n) { + return ce(qd.count($d(t), t), n, 2) + } + function De(t, n) { + return ce(t.getFullYear() % 100, n, 2) + } + function Oe(t, n) { + return ce(t.getFullYear() % 1e4, n, 4) + } + function Fe(t) { + var n = t.getTimezoneOffset(); + return (n > 0 + ? "-" + : (n *= -1, "+")) + ce(n / 60 | 0, "0", 2) + ce(n % 60, "0", 2) + } + function Ie(t, n) { + return ce(t.getUTCDate(), n, 2) + } + function Ye(t, n) { + return ce(t.getUTCHours(), n, 2) + } + function Be(t, n) { + return ce(t.getUTCHours() % 12 || 12, n, 2) + } + function je(t, n) { + return ce(1 + tv.count(gv(t), t), n, 3) + } + function He(t, n) { + return ce(t.getUTCMilliseconds(), n, 3) + } + function Xe(t, n) { + return ce(t.getUTCMonth() + 1, n, 2) + } + function Ve(t, n) { + return ce(t.getUTCMinutes(), n, 2) + } + function We(t, n) { + return ce(t.getUTCSeconds(), n, 2) + } + function $e(t, n) { + return ce(ev.count(gv(t), t), n, 2) + } + function Ze(t) { + return t.getUTCDay() + } + function Ge(t, n) { + return ce(rv.count(gv(t), t), n, 2) + } + function Je(t, n) { + return ce(t.getUTCFullYear() % 100, n, 2) + } + function Qe(t, n) { + return ce(t.getUTCFullYear() % 1e4, n, 4) + } + function Ke() { + return "+0000" + } + function tr() { + return "%" + } + function nr(n) { + return qv = ae(n), + t.timeFormat = qv.format, + t.timeParse = qv.parse, + t.utcFormat = qv.utcFormat, + t.utcParse = qv.utcParse, + qv + } + function er(t) { + return t.toISOString() + } + function rr(t) { + var n = new Date(t); + return isNaN(n) + ? null + : n + } + function ir(t) { + function n(n) { + var o = n + "", + u = e.get(o); + if (!u) { + if (i !== Wv) + return i; + e.set(o, u = r.push(n)) + } + return t[(u - 1) % t.length] + } + var e = o(), + r = [], + i = Wv; + return t = null == t + ? [] + : Vv.call(t), + n.domain = function (t) { + if (!arguments.length) + return r.slice(); + r = [], + e = o(); + for (var i, u, a = -1, c = t.length; ++a < c;) + e.has(u = (i = t[a]) + "") || e.set(u, r.push(i)); + return n + }, + n.range = function (e) { + return arguments.length + ? (t = Vv.call(e), n) + : t.slice() + }, + n.unknown = function (t) { + return arguments.length + ? (i = t, n) + : i + }, + n.copy = function () { + return ir() + .domain(r) + .range(t) + .unknown(i) + }, + n + } + function or() { + function t() { + var t = i().length, + r = u[1] < u[0], + l = u[r - 0], + h = u[1 - r]; + n = (h - l) / Math.max(1, t - c + 2 * s), + a && (n = Math.floor(n)), + l += (h - l - n * (t - c)) * f, + e = n * (1 - c), + a && (l = Math.round(l), e = Math.round(e)); + var p = Os(t).map(function (t) { + return l + n * t + }); + return o(r + ? p.reverse() + : p) + } + var n, + e, + r = ir().unknown(void 0), + i = r.domain, + o = r.range, + u = [ + 0, 1 + ], + a = !1, + c = 0, + s = 0, + f = .5; + return delete r.unknown, + r.domain = function (n) { + return arguments.length + ? (i(n), t()) + : i() + }, + r.range = function (n) { + return arguments.length + ? (u = [ + n[0], + n[1] + ], t()) + : u.slice() + }, + r.rangeRound = function (n) { + return u = [ + n[0], + n[1] + ], + a = !0, + t() + }, + r.bandwidth = function () { + return e + }, + r.step = function () { + return n + }, + r.round = function (n) { + return arguments.length + ? (a = !!n, t()) + : a + }, + r.padding = function (n) { + return arguments.length + ? (c = s = Math.max(0, Math.min(1, n)), t()) + : c + }, + r.paddingInner = function (n) { + return arguments.length + ? (c = Math.max(0, Math.min(1, n)), t()) + : c + }, + r.paddingOuter = function (n) { + return arguments.length + ? (s = Math.max(0, Math.min(1, n)), t()) + : s + }, + r.align = function (n) { + return arguments.length + ? (f = Math.max(0, Math.min(1, n)), t()) + : f + }, + r.copy = function () { + return or() + .domain(i()) + .range(u) + .round(a) + .paddingInner(c) + .paddingOuter(s) + .align(f) + }, + t() + } + function ur(t) { + var n = t.copy; + return t.padding = t.paddingOuter, + delete t.paddingInner, + delete t.paddingOuter, + t.copy = function () { + return ur(n()) + }, + t + } + function ar() { + return ur(or().paddingInner(1)) + } + function cr(t, n) { + return (n -= t =+ t) + ? function (e) { + return (e - t) / n + } + : $v(n) + } + function sr(t) { + return function (n, e) { + var r = t(n =+ n, e =+ e); + return function (t) { + return t <= n + ? 0 + : t >= e + ? 1 + : r(t) + } + } + } + function fr(t) { + return function (n, e) { + var r = t(n =+ n, e =+ e); + return function (t) { + return t <= 0 + ? n + : t >= 1 + ? e + : r(t) + } + } + } + function lr(t, n, e, r) { + var i = t[0], + o = t[1], + u = n[0], + a = n[1]; + return o < i + ? (i = e(o, i), u = r(a, u)) + : (i = e(i, o), u = r(u, a)), + function (t) { + return u(i(t)) + } + } + function hr(t, n, e, r) { + var i = Math.min(t.length, n.length) - 1, + o = new Array(i), + u = new Array(i), + a = -1; + for (t[i] < t[0] && (t = t.slice().reverse(), n = n.slice().reverse()); ++a < i;) + o[a] = e(t[a], t[a + 1]), + u[a] = r(n[a], n[a + 1]); + return function (n) { + var e = ks(t, n, 1, i) - 1; + return u[e](o[e](n)) + } + } + function pr(t, n) { + return n + .domain(t.domain()) + .range(t.range()) + .interpolate(t.interpolate()) + .clamp(t.clamp()) + } + function dr(t, n) { + function e() { + return i = Math.min(a.length, c.length) > 2 + ? hr + : lr, + o = u = null, + r + } + function r(n) { + return (o || (o = i(a, c, f + ? sr(t) + : t, s)))(+ n) + } + var i, + o, + u, + a = Gv, + c = Gv, + s = _p, + f = !1; + return r.invert = function (t) { + return (u || (u = i(c, a, cr, f + ? fr(n) + : n)))(+ t) + }, + r.domain = function (t) { + return arguments.length + ? (a = Xv.call(t, Zv), e()) + : a.slice() + }, + r.range = function (t) { + return arguments.length + ? (c = Vv.call(t), e()) + : c.slice() + }, + r.rangeRound = function (t) { + return c = Vv.call(t), + s = yp, + e() + }, + r.clamp = function (t) { + return arguments.length + ? (f = !!t, e()) + : f + }, + r.interpolate = function (t) { + return arguments.length + ? (s = t, e()) + : s + }, + e() + } + function vr(t) { + var n = t.domain; + return t.ticks = function (t) { + var e = n(); + return Bs(e[0], e[e.length - 1], null == t + ? 10 + : t) + }, + t.tickFormat = function (t, e) { + return Jv(n(), t, e) + }, + t.nice = function (r) { + var i = n(), + o = i.length - 1, + u = null == r + ? 10 + : r, + a = i[0], + c = i[o], + s = e(a, c, u); + return s && (s = e(Math.floor(a / s) * s, Math.ceil(c / s) * s, u), i[0] = Math.floor(a / s) * s, i[o] = Math.ceil(c / s) * s, n(i)), + t + }, + t + } + function _r() { + var t = dr(cr, lp); + return t.copy = function () { + return pr(t, _r()) + }, + vr(t) + } + function yr() { + function t(t) { + return + t + } + var n = [0, 1]; + return t.invert = t, + t.domain = t.range = function (e) { + return arguments.length + ? (n = Xv.call(e, Zv), t) + : n.slice() + }, + t.copy = function () { + return yr().domain(n) + }, + vr(t) + } + function gr(t, n) { + return (n = Math.log(n / t)) + ? function (e) { + return Math.log(e / t) / n + } + : $v(n) + } + function mr(t, n) { + return t < 0 + ? function (e) { + return -Math.pow(-n, e) * Math.pow(-t, 1 - e) + } + : function (e) { + return Math.pow(n, e) * Math.pow(t, 1 - e) + } + } + function xr(t) { + return isFinite(t) ?+ ("1e" + t) : t < 0 + ? 0 + : t + } + function br(t) { + return 10 === t + ? xr + : t === Math.E + ? Math.exp + : function (n) { + return Math.pow(t, n) + } + } + function wr(t) { + return t === Math.E + ? Math.log + : 10 === t && Math.log10 || 2 === t && Math.log2 || (t = Math.log(t), function (n) { + return Math.log(n) / t + }) + } + function Mr(t) { + return function (n) { + return -t(-n) + } + } + function Tr() { + function n() { + return o = wr(i), + u = br(i), + r()[0] < 0 && (o = Mr(o), u = Mr(u)), + e + } + var e = dr(gr, mr).domain([1, 10]), + r = e.domain, + i = 10, + o = wr(10), + u = br(10); + return e.base = function (t) { + return arguments.length + ? (i =+ t, n()) + : i + }, + e.domain = function (t) { + return arguments.length + ? (r(t), n()) + : r() + }, + e.ticks = function (t) { + var n, + e = r(), + a = e[0], + c = e[e.length - 1]; + (n = c < a) && (h = a, a = c, c = h); + var s, + f, + l, + h = o(a), + p = o(c), + d = null == t + ? 10 :+ t, + v = []; + if (!(i % 1) && p - h < d) { + if (h = Math.round(h) - 1, p = Math.round(p) + 1, a > 0) { + for (; h < p; ++h) + for (f = 1, s = u(h); f < i; ++f) + if (l = s * f, !(l < a)) { + if (l > c) + break; + v.push(l) + } + } else + for (; h < p; ++h) + for (f = i - 1, s = u(h); f >= 1; --f) + if (l = s * f, !(l < a)) { + if (l > c) + break; + v.push(l) + } + } else + v = Bs(h, p, Math.min(p - h, d)).map(u); + return n + ? v.reverse() + : v + }, + e.tickFormat = function (n, r) { + if (null == r && (r = 10 === i + ? ".0e" + : ","), "function" != typeof r && (r = t.format(r)), n === 1 / 0) + return r; + null == n && (n = 10); + var a = Math.max(1, i * n / e.ticks().length); + return function (t) { + var n = t / u(Math.round(o(t))); + return n * i < i - .5 && (n *= i), + n <= a + ? r(t) + : "" + } + }, + e.nice = function () { + return r(Qv(r(), { + floor: function (t) { + return u(Math.floor(o(t))) + }, + ceil: function (t) { + return u(Math.ceil(o(t))) + } + })) + }, + e.copy = function () { + return pr(e, Tr().base(i)) + }, + e + } + function Nr(t, n) { + return t < 0 + ? -Math.pow(-t, n) + : Math.pow(t, n) + } + function kr() { + function t(t, n) { + return (n = Nr(n, e) - (t = Nr(t, e))) + ? function (r) { + return (Nr(r, e) - t) / n + } + : $v(n) + } + function n(t, n) { + return n = Nr(n, e) - (t = Nr(t, e)), + function (r) { + return Nr(t + n * r, 1 / e) + } + } + var e = 1, + r = dr(t, n), + i = r.domain; + return r.exponent = function (t) { + return arguments.length + ? (e =+ t, i(i())) + : e + }, + r.copy = function () { + return pr(r, kr().exponent(e)) + }, + vr(r) + } + function Sr() { + return kr().exponent(.5) + } + function Ar() { + function t() { + var t = 0, + o = Math.max(1, r.length); + for (i = new Array(o - 1); ++t < o;) + i[t - 1] = Xs(e, t / o); + return n + } + function n(t) { + if (!isNaN(t =+ t)) + return r[ks(i, t)] + } + var e = [], + r = [], + i = []; + return n.invertExtent = function (t) { + var n = r.indexOf(t); + return n < 0 + ? [NaN, NaN] + : [ + n > 0 + ? i[n - 1] + : e[0], + n < i.length + ? i[n] + : e[e.length - 1] + ] + }, + n.domain = function (n) { + if (!arguments.length) + return e.slice(); + e = []; + for (var r, i = 0, o = n.length; i < o; ++i) + r = n[i], + null == r || isNaN(r =+ r) || e.push(r); + return e.sort(Ms), + t() + }, + n.range = function (n) { + return arguments.length + ? (r = Vv.call(n), t()) + : r.slice() + }, + n.quantiles = function () { + return i.slice() + }, + n.copy = function () { + return Ar() + .domain(e) + .range(r) + }, + n + } + function Er() { + function t(t) { + if (t <= t) + return u[ks(o, t, 0, i)] + } + function n() { + var n = -1; + for (o = new Array(i); ++n < i;) + o[n] = ((n + 1) * r - (n - i) * e) / (i + 1); + return t + } + var e = 0, + r = 1, + i = 1, + o = [.5], + u = [0, 1]; + return t.domain = function (t) { + return arguments.length + ? (e =+ t[0], r =+ t[1], n()) + : [e, r] + }, + t.range = function (t) { + return arguments.length + ? (i = (u = Vv.call(t)).length - 1, n()) + : u.slice() + }, + t.invertExtent = function (t) { + var n = u.indexOf(t); + return n < 0 + ? [NaN, NaN] + : n < 1 + ? [e, o[0]] + : n >= i + ? [ + o[i - 1], + r + ] + : [ + o[n - 1], + o[n] + ] + }, + t.copy = function () { + return Er() + .domain([e, r]) + .range(u) + }, + vr(t) + } + function Cr() { + function t(t) { + if (t <= t) + return e[ks(n, t, 0, r)] + } + var n = [.5], + e = [ + 0, 1 + ], + r = 1; + return t.domain = function (i) { + return arguments.length + ? (n = Vv.call(i), r = Math.min(n.length, e.length - 1), t) + : n.slice() + }, + t.range = function (i) { + return arguments.length + ? (e = Vv.call(i), r = Math.min(n.length, e.length - 1), t) + : e.slice() + }, + t.invertExtent = function (t) { + var r = e.indexOf(t); + return [ + n[r - 1], + n[r] + ] + }, + t.copy = function () { + return Cr() + .domain(n) + .range(e) + }, + t + } + function zr(t) { + return new Date(t); + } + function Pr(t) { + return t instanceof Date ?+ t :+ new Date(+ t) + } + function qr(t, n, r, i, o, u, a, c, s) { + function f(e) { + return (a(e) < e + ? v + : u(e) < e + ? _ + : o(e) < e + ? y + : i(e) < e + ? g + : n(e) < e + ? r(e) < e + ? m + : x + : t(e) < e + ? b + : w)(e) + } + function l(n, r, i, o) { + if (null == n && (n = 10), "number" == typeof n) { + var u = Math.abs(i - r) / n, + a = Ts(function (t) { + return t[2] + }).right(M, u); + a === M.length + ? (o = e(r / o_, i / o_, n), n = t) + : a + ? (a = M[u / M[a - 1][2] < M[a][2] / u + ? a - 1 + : a], o = a[1], n = a[0]) + : (o = e(r, i, n), n = c) + } + return null == o + ? n + : n.every(o) + } + var h = dr(cr, lp), + p = h.invert, + d = h.domain, + v = s(".%L"), + _ = s(":%S"), + y = s("%I:%M"), + g = s("%I %p"), + m = s("%a %d"), + x = s("%b %d"), + b = s("%B"), + w = s("%Y"), + M = [ + [ + a, 1, Kv + ], + [ + a, 5, 5 * Kv + ], + [ + a, 15, 15 * Kv + ], + [ + a, 30, 30 * Kv + ], + [ + u, 1, t_ + ], + [ + u, 5, 5 * t_ + ], + [ + u, 15, 15 * t_ + ], + [ + u, 30, 30 * t_ + ], + [ + o, 1, n_ + ], + [ + o, 3, 3 * n_ + ], + [ + o, 6, 6 * n_ + ], + [ + o, 12, 12 * n_ + ], + [ + i, 1, e_ + ], + [ + i, 2, 2 * e_ + ], + [ + r, 1, r_ + ], + [ + n, 1, i_ + ], + [ + n, 3, 3 * i_ + ], + [t, 1, o_] + ]; + return h.invert = function (t) { + return new Date(p(t)) + }, + h.domain = function (t) { + return arguments.length + ? d(Xv.call(t, Pr)) + : d().map(zr) + }, + h.ticks = function (t, n) { + var e, + r = d(), + i = r[0], + o = r[r.length - 1], + u = o < i; + return u && (e = i, i = o, o = e), + e = l(t, i, o, n), + e = e + ? e.range(i, o + 1) + : [], + u + ? e.reverse() + : e + }, + h.tickFormat = function (t, n) { + return null == n + ? f + : s(n) + }, + h.nice = function (t, n) { + var e = d(); + return (t = l(t, e[0], e[e.length - 1], n)) + ? d(Qv(e, t)) + : h + }, + h.copy = function () { + return pr(h, qr(t, n, r, i, o, u, a, c, s)) + }, + h + } + function Lr(t) { + var n = t.length; + return function (e) { + return t[Math.max(0, Math.min(n - 1, Math.floor(e * n)))] + } + } + function Rr(t) { + function n(n) { + var o = (n - e) / (r - e); + return t(i + ? Math.max(0, Math.min(1, o)) + : o) + } + var e = 0, + r = 1, + i = !1; + return n.domain = function (t) { + return arguments.length + ? (e =+ t[0], r =+ t[1], n) + : [e, r] + }, + n.clamp = function (t) { + return arguments.length + ? (i = !!t, n) + : i + }, + n.interpolator = function (e) { + return arguments.length + ? (t = e, n) + : t + }, + n.copy = function () { + return Rr(t) + .domain([e, r]) + .clamp(i) + }, + vr(n) + } + function Ur(t) { + return function () { + var n = this.ownerDocument, + e = this.namespaceURI; + return e === w_ && n.documentElement.namespaceURI === w_ + ? n.createElement(t) + : n.createElementNS(e, t) + } + } + function Dr(t) { + return function () { + return this + .ownerDocument + .createElementNS(t.space, t.local) + } + } + function Or() { + return new Fr + } + function Fr() { + this._ = "@" + (++k_).toString(36) + } + function Ir(t, n, e) { + return t = Yr(t, n, e), + function (n) { + var e = n.relatedTarget; + e && (e === this || 8 & e.compareDocumentPosition(this)) || t.call(this, n) + } + } + function Yr(n, e, r) { + return function (i) { + var o = t.event; + t.event = i; + try { + n.call(this, this.__data__, e, r) + } finally { + t.event = o + } + } + } + function Br(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 + } + }) + } + function jr(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.capture); + + ++i + ? n.length = i + : delete this.__on + } + } + } + function Hr(t, n, e) { + var r = z_.hasOwnProperty(t.type) + ? Ir + : Yr; + return function (i, o, u) { + var a, + c = this.__on, + s = r(n, o, u); + if (c) + for (var f = 0, l = c.length; f < l; ++f) + if ((a = c[f]).type === t.type && a.name === t.name) + return this.removeEventListener(a.type, a.listener, a.capture), + this.addEventListener(a.type, a.listener = s, a.capture = e), + void(a.value = n); + this.addEventListener(t.type, s, e), + a = { + type: t.type, + name: t.name, + value: n, + listener: s, + capture: e + }, + c + ? c.push(a) + : this.__on = [a] + } + } + function Xr(n, e, r, i) { + var o = t.event; + n.sourceEvent = t.event, + t.event = n; + try { + return e.apply(r, i) + } finally { + t.event = o + } + } + function Vr() {} + function Wr() { + return [] + } + function $r(t, n) { + this.ownerDocument = t.ownerDocument, + this.namespaceURI = t.namespaceURI, + this._next = null, + this._parent = t, + this.__data__ = n + } + function Zr(t, n, e, r, i, o) { + for (var u, a = 0, c = n.length, s = o.length; a < s; ++a) + (u = n[a]) + ? (u.__data__ = o[a], r[a] = u) + : e[a] = new $r(t, o[a]); + for (; a < c; ++a) + (u = n[a]) && (i[a] = u) + } + function Gr(t, n, e, r, i, o, u) { + var a, + c, + s, + f = {}, + l = n.length, + h = o.length, + p = new Array(l); + for (a = 0; a < l; ++a) + (c = n[a]) && (p[a] = s = X_ + u.call(c, c.__data__, a, n), s in f + ? i[a] = c + : f[s] = c); + for (a = 0; a < h; ++a) + s = X_ + u.call(t, o[a], a, o), + (c = f[s]) + ? (r[a] = c, c.__data__ = o[a], f[s] = null) + : e[a] = new $r(t, o[a]); + for (a = 0; a < l; ++a) + (c = n[a]) && f[p[a]] === c && (i[a] = c) + } + function Jr(t, n) { + return t < n + ? -1 + : t > n + ? 1 + : t >= n + ? 0 + : NaN + } + function Qr(t) { + return function () { + this.removeAttribute(t) + } + } + function Kr(t) { + return function () { + this.removeAttributeNS(t.space, t.local) + } + } + function ti(t, n) { + return function () { + this.setAttribute(t, n) + } + } + function ni(t, n) { + return function () { + this.setAttributeNS(t.space, t.local, n) + } + } + function ei(t, n) { + return function () { + var e = n.apply(this, arguments); + null == e + ? this.removeAttribute(t) + : this.setAttribute(t, e) + } + } + function ri(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 ii(t) { + return function () { + this + .style + .removeProperty(t) + } + } + function oi(t, n, e) { + return function () { + this + .style + .setProperty(t, n, e) + } + } + function ui(t, n, e) { + return function () { + var r = n.apply(this, arguments); + null == r + ? this + .style + .removeProperty(t) + : this + .style + .setProperty(t, r, e) + } + } + function ai(t) { + return function () { + delete this[t] + } + } + function ci(t, n) { + return function () { + this[t] = n + } + } + function si(t, n) { + return function () { + var e = n.apply(this, arguments); + null == e + ? delete this[t] + : this[t] = e + } + } + function fi(t) { + return t + .trim() + .split(/^|\s+/) + } + function li(t) { + return t.classList || new hi(t) + } + function hi(t) { + this._node = t, + this._names = fi(t.getAttribute("class") || "") + } + function pi(t, n) { + for (var e = li(t), r = -1, i = n.length; ++r < i;) + e.add(n[r]) + } + function di(t, n) { + for (var e = li(t), r = -1, i = n.length; ++r < i;) + e.remove(n[r]) + } + function vi(t) { + return function () { + pi(this, t) + } + } + function _i(t) { + return function () { + di(this, t) + } + } + function yi(t, n) { + return function () { + (n.apply(this, arguments) + ? pi + : di)(this, t) + } + } + function gi() { + this.textContent = "" + } + function mi(t) { + return function () { + this.textContent = t + } + } + function xi(t) { + return function () { + var n = t.apply(this, arguments); + this.textContent = null == n + ? "" + : n + } + } + function bi() { + this.innerHTML = "" + } + function wi(t) { + return function () { + this.innerHTML = t + } + } + function Mi(t) { + return function () { + var n = t.apply(this, arguments); + this.innerHTML = null == n + ? "" + : n + } + } + function Ti() { + this.nextSibling && this + .parentNode + .appendChild(this) + } + function Ni() { + this.previousSibling && this + .parentNode + .insertBefore(this, this.parentNode.firstChild) + } + function ki() { + return null + } + function Si() { + var t = this.parentNode; + t && t.removeChild(this) + } + function Ai(t, n, e) { + var r = iy(t), + i = r.CustomEvent; + 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 Ei(t, n) { + return function () { + return Ai(this, t, n) + } + } + function Ci(t, n) { + return function () { + return Ai(this, t, n.apply(this, arguments)) + } + } + function zi(t, n) { + this._groups = t, + this._parents = n + } + function Pi() { + return new zi([ + [document.documentElement] + ], yy) + } + function qi(t, n) { + var e = t.__transition; + if (!e || !(e = e[n]) || e.state > Ty) + throw new Error("too late"); + return e + } + function Li(t, n) { + var e = t.__transition; + if (!e || !(e = e[n]) || e.state > ky) + throw new Error("too late"); + return e + } + function Ri(t, n) { + var e = t.__transition; + if (!e || !(e = e[n])) + throw new Error("too late"); + return e + } + function Ui(t, n, e) { + function r(t) { + e.state = Ny, + e + .timer + .restart(i, e.delay, e.time), + e.delay <= t && i(t - e.delay) + } + function i(r) { + var s, + f, + l, + h; + if (e.state !== Ny) + return u(); + for (s in c) + if (h = c[s], h.name === e.name) { + if (h.state === Sy) + return pd(i); + h.state === Ay + ? (h.state = Cy, h.timer.stop(), h.on.call("interrupt", t, t.__data__, h.index, h.group), delete c[s]) :+ s < n && (h.state = Cy, h.timer.stop(), delete c[s]) + } + if (pd(function () { + e.state === Sy && (e.state = Ay, e.timer.restart(o, e.delay, e.time), o(r)) + }), e.state = ky, e.on.call("start", t, t.__data__, e.index, e.group), e.state === ky) { + for (e.state = Sy, a = new Array(l = e.tween.length), s = 0, f = -1; s < l; ++s) + (h = e.tween[s].value.call(t, t.__data__, e.index, e.group)) && (a[++f] = h); + a.length = f + 1 + } + } + function o(n) { + for (var r = n < e.duration + ? e.ease.call(null, n / e.duration) + : (e.timer.restart(u), e.state = Ey, 1), i = -1, o = a.length; ++i < o;) + a[i].call(null, r); + e.state === Ey && (e.on.call("end", t, t.__data__, e.index, e.group), u()) + } + function u() { + e.state = Cy, + e + .timer + .stop(), + delete c[n]; + for (var r in c) + return; + delete t.__transition + } + var a, + c = t.__transition; + c[n] = e, + e.timer = Vn(r, 0, e.time) + } + function Di(t, n) { + var e, + r; + return function () { + var i = Li(this, t), + o = i.tween; + if (o !== e) { + r = e = o; + for (var u = 0, a = r.length; u < a; ++u) + if (r[u].name === n) { + r = r.slice(), + r.splice(u, 1); + break + } + } + i.tween = r + } + } + function Oi(t, n, e) { + var r, + i; + if ("function" != typeof e) + throw new Error; + return function () { + var o = Li(this, t), + u = o.tween; + if (u !== r) { + i = (r = u).slice(); + for (var a = { + name: n, + value: e + }, c = 0, s = i.length; c < s; ++c) + if (i[c].name === n) { + i[c] = a; + break + } + c === s && i.push(a) + } + o.tween = i + } + } + function Fi(t, n, e) { + var r = t._id; + return t.each(function () { + var t = Li(this, r); + (t.value || (t.value = {}))[n] = e.apply(this, arguments) + }), + function (t) { + return Ri(t, r).value[n] + } + } + function Ii(t) { + return function () { + this.removeAttribute(t) + } + } + function Yi(t) { + return function () { + this.removeAttributeNS(t.space, t.local) + } + } + function Bi(t, n, e) { + var r, + i; + return function () { + var o = this.getAttribute(t); + return o === e + ? null + : o === r + ? i + : i = n(r = o, e) + } + } + function ji(t, n, e) { + var r, + i; + return function () { + var o = this.getAttributeNS(t.space, t.local); + return o === e + ? null + : o === r + ? i + : i = n(r = o, e) + } + } + function Hi(t, n, e) { + var r, + i, + o; + return function () { + var u, + a = e(this); + return null == a + ? void this.removeAttribute(t) + : (u = this.getAttribute(t), u === a + ? null + : u === r && a === i + ? o + : o = n(r = u, i = a)) + } + } + function Xi(t, n, e) { + var r, + i, + o; + return function () { + var u, + a = e(this); + return null == a + ? void this.removeAttributeNS(t.space, t.local) + : (u = this.getAttributeNS(t.space, t.local), u === a + ? null + : u === r && a === i + ? o + : o = n(r = u, i = a)) + } + } + function Vi(t, n) { + function e() { + var e = this, + r = n.apply(e, arguments); + return r && function (n) { + e.setAttributeNS(t.space, t.local, r(n)) + } + } + return e._value = n, + e + } + function Wi(t, n) { + function e() { + var e = this, + r = n.apply(e, arguments); + return r && function (n) { + e.setAttribute(t, r(n)) + } + } + return e._value = n, + e + } + function $i(t, n) { + return function () { + qi(this, t).delay =+ n.apply(this, arguments) + } + } + function Zi(t, n) { + return n =+ n, + function () { + qi(this, t).delay = n + } + } + function Gi(t, n) { + return function () { + Li(this, t).duration =+ n.apply(this, arguments) + } + } + function Ji(t, n) { + return n =+ n, + function () { + Li(this, t).duration = n + } + } + function Qi(t, n) { + if ("function" != typeof n) + throw new Error; + return function () { + Li(this, t).ease = n + } + } + function Ki(t) { + return (t + "") + .trim() + .split(/^|\s+/) + .every(function (t) { + var n = t.indexOf("."); + return n >= 0 && (t = t.slice(0, n)), + !t || "start" === t + }) + } + function to(t, n, e) { + var r, + i, + o = Ki(n) + ? qi + : Li; + return function () { + var u = o(this, t), + a = u.on; + a !== r && (i = (r = a).copy()).on(n, e), + u.on = i + } + } + function no(t) { + return function () { + var n = this.parentNode; + for (var e in this.__transition) + if (+ e !== t) + return; + n && n.removeChild(this) + } + } + function eo(t, n) { + var e, + r, + i; + return function () { + var o = iy(this).getComputedStyle(this, null), + u = o.getPropertyValue(t), + a = (this.style.removeProperty(t), o.getPropertyValue(t)); + return u === a + ? null + : u === e && a === r + ? i + : i = n(e = u, r = a) + } + } + function ro(t) { + return function () { + this + .style + .removeProperty(t) + } + } + function io(t, n, e) { + var r, + i; + return function () { + var o = iy(this) + .getComputedStyle(this, null) + .getPropertyValue(t); + return o === e + ? null + : o === r + ? i + : i = n(r = o, e) + } + } + function oo(t, n, e) { + var r, + i, + o; + return function () { + var u = iy(this).getComputedStyle(this, null), + a = u.getPropertyValue(t), + c = e(this); + return null == c && (this.style.removeProperty(t), c = u.getPropertyValue(t)), + a === c + ? null + : a === r && c === i + ? o + : o = n(r = a, i = c) + } + } + function uo(t, n, e) { + function r() { + var r = this, + i = n.apply(r, arguments); + return i && function (n) { + r + .style + .setProperty(t, i(n), e) + } + } + return r._value = n, + r + } + function ao(t) { + return function () { + this.textContent = t + } + } + function co(t) { + return function () { + var n = t(this); + this.textContent = null == n + ? "" + : n + } + } + function so(t, n, e, r) { + this._groups = t, + this._parents = n, + this._name = e, + this._id = r + } + function fo(t) { + return Pi().transition(t) + } + function lo() { + return++ Ky + } + function ho(t, n) { + for (var e; !(e = t.__transition) || !(e = e[n]);) + if (!(t = t.parentNode)) + return ng.time = jn(), + ng; + return e + } + function po(t, n, e) { + var r = t(e); + return "translate(" + (isFinite(r) + ? r + : n(e)) + ",0)" + } + function vo(t, n, e) { + var r = t(e); + return "translate(0," + (isFinite(r) + ? r + : n(e)) + ")" + } + function _o(t) { + var n = t.bandwidth() / 2; + return t.round() && (n = Math.round(n)), + function (e) { + return t(e) + n + } + } + function yo() { + return !this.__axis + } + function go(t, n) { + function e(e) { + var s, + f = null == i + ? n.ticks + ? n + .ticks + .apply(n, r) + : n.domain() + : i, + l = null == o + ? n.tickFormat + ? n + .tickFormat + .apply(n, r) + : ug + : o, + h = Math.max(u, 0) + c, + p = t === ag || t === sg + ? po + : vo, + d = n.range(), + v = d[0] + .5, + _ = d[d.length - 1] + .5, + y = (n.bandwidth + ? _o + : ug)(n.copy()), + g = e.selection + ? e.selection() + : e, + m = g + .selectAll(".domain") + .data([null]), + x = g + .selectAll(".tick") + .data(f, n) + .order(), + b = x.exit(), + w = x + .enter() + .append("g") + .attr("class", "tick"), + M = x.select("line"), + T = x.select("text"), + N = t === ag || t === fg + ? -1 + : 1, + k = t === fg || t === cg + ? (s = "x", "y") + : (s = "y", "x"); + m = m.merge(m.enter().insert("path", ".tick").attr("class", "domain").attr("stroke", "#000")), + x = x.merge(w), + M = M.merge(w.append("line").attr("stroke", "#000").attr(s + "2", N * u).attr(k + "1", .5).attr(k + "2", .5)), + T = T.merge(w.append("text").attr("fill", "#000").attr(s, N * h).attr(k, .5).attr("dy", t === ag + ? "0em" + : t === sg + ? "0.71em" + : "0.32em")), + e !== g && (m = m.transition(e), x = x.transition(e), M = M.transition(e), T = T.transition(e), b = b.transition(e).attr("opacity", lg).attr("transform", function (t) { + return p(y, this.parentNode.__axis || y, t) + }), w.attr("opacity", lg).attr("transform", function (t) { + return p(this.parentNode.__axis || y, y, t) + })), + b.remove(), + m.attr("d", t === fg || t == cg + ? "M" + N * a + "," + v + "H0.5V" + _ + "H" + N * a + : "M" + v + "," + N * a + "V0.5H" + _ + "V" + N * a), + x + .attr("opacity", 1) + .attr("transform", function (t) { + return p(y, y, t) + }), + M.attr(s + "2", N * u), + T + .attr(s, N * h) + .text(l), + g + .filter(yo) + .attr("fill", "none") + .attr("font-size", 10) + .attr("font-family", "sans-serif") + .attr("text-anchor", t === cg + ? "start" + : t === fg + ? "end" + : "middle"), + g.each(function () { + this.__axis = y + }) + } + var r = [], + i = null, + o = null, + u = 6, + a = 6, + c = 3; + return e.scale = function (t) { + return arguments.length + ? (n = t, e) + : n + }, + e.ticks = function () { + return r = og.call(arguments), + e + }, + e.tickArguments = function (t) { + return arguments.length + ? (r = null == t + ? [] + : og.call(t), e) + : r.slice() + }, + e.tickValues = function (t) { + return arguments.length + ? (i = null == t + ? null + : og.call(t), e) + : i && i.slice() + }, + e.tickFormat = function (t) { + return arguments.length + ? (o = t, e) + : o + }, + e.tickSize = function (t) { + return arguments.length + ? (u = a =+ t, e) + : u + }, + e.tickSizeInner = function (t) { + return arguments.length + ? (u =+ t, e) + : u + }, + e.tickSizeOuter = function (t) { + return arguments.length + ? (a =+ t, e) + : a + }, + e.tickPadding = function (t) { + return arguments.length + ? (c =+ t, e) + : c + }, + e + } + function mo(t) { + return go(ag, t) + } + function xo(t) { + return go(cg, t) + } + function bo(t) { + return go(sg, t) + } + function wo(t) { + return go(fg, t) + } + function Mo(t, n) { + return t.parent === n.parent + ? 1 + : 2 + } + function To(t) { + return t.reduce(No, 0) / t.length + } + function No(t, n) { + return t + n.x + } + function ko(t) { + return 1 + t.reduce(So, 0) + } + function So(t, n) { + return Math.max(t, n.y) + } + function Ao(t) { + for (var n; n = t.children;) + t = n[0]; + return t + } + function Eo(t) { + for (var n; n = t.children;) + t = n[n.length - 1]; + return t + } + function Co(t, n) { + if (t === n) + return t; + var e = t.ancestors(), + r = n.ancestors(), + i = null; + for (t = e.pop(), n = r.pop(); t === n;) + i = t, + t = e.pop(), + n = r.pop(); + return i + } + function zo(t, n) { + var e, + r, + i, + o, + u, + a = new Uo(t), + c =+ t.value && (a.value = t.value), + s = [a]; + for (null == n && (n = qo); e = s.pop();) + if (c && (e.value =+ e.data.value), (i = n(e.data)) && (u = i.length)) + for (e.children = new Array(u), o = u - 1; o >= 0; --o) + s.push(r = e.children[o] = new Uo(i[o])), + r.parent = e, + r.depth = e.depth + 1; + return a.eachBefore(Ro) + } + function Po() { + return zo(this).eachBefore(Lo) + } + function qo(t) { + return t.children + } + function Lo(t) { + t.data = t.data.data + } + function Ro(t) { + var n = 0; + do + t.height = n; + while ((t = t.parent) && t.height < ++n) + } + function Uo(t) { + this.data = t, + this.depth = this.height = 0, + this.parent = null + } + function Do(t) { + this._ = t, + this.next = null + } + function Oo(t, n) { + var e = n.x - t.x, + r = n.y - t.y, + i = t.r - n.r; + return i * i + 1e-6 > e * e + r * r + } + function Fo(t, n) { + var e, + r, + i, + o = null, + u = t.head; + switch (n.length) { + case 1: + e = Io(n[0]); + break; + case 2: + e = Yo(n[0], n[1]); + break; + case 3: + e = Bo(n[0], n[1], n[2]) + } + for (; u;) + i = u._, + r = u.next, + e && Oo(e, i) + ? o = u + : (o + ? (t.tail = o, o.next = null) + : t.head = t.tail = null, n.push(i), e = Fo(t, n), n.pop(), t.head + ? (u.next = t.head, t.head = u) + : (u.next = null, t.head = t.tail = u), o = t.tail, o.next = r), + u = r; + return t.tail = o, + e + } + function Io(t) { + return {x: t.x, y: t.y, r: t.r} + } + function Yo(t, n) { + var e = t.x, + r = t.y, + i = t.r, + o = n.x, + u = n.y, + a = n.r, + c = o - e, + s = u - r, + f = a - i, + l = Math.sqrt(c * c + s * s); + return { + x: (e + o + c / l * f) / 2, + y: (r + u + s / l * f) / 2, + r: (l + i + a) / 2 + } + } + function Bo(t, n, e) { + var r = t.x, + i = t.y, + o = t.r, + u = n.x, + a = n.y, + c = n.r, + s = e.x, + f = e.y, + l = e.r, + h = 2 * (r - u), + p = 2 * (i - a), + d = 2 * (c - o), + v = r * r + i * i - o * o - u * u - a * a + c * c, + _ = 2 * (r - s), + y = 2 * (i - f), + g = 2 * (l - o), + m = r * r + i * i - o * o - s * s - f * f + l * l, + x = _ * p - h * y, + b = (p * m - y * v) / x - r, + w = (y * d - p * g) / x, + M = (_ * v - h * m) / x - i, + T = (h * g - _ * d) / x, + N = w * w + T * T - 1, + k = 2 * (b * w + M * T + o), + S = b * b + M * M - o * o, + A = (-k - Math.sqrt(k * k - 4 * N * S)) / (2 * N); + return { + x: b + *A + r, + y: M + *A + i, + r: A + } + } + function jo(t, n, e) { + var r = t.x, + i = t.y, + o = n.r + e.r, + u = t.r + e.r, + a = n.x - r, + c = n.y - i, + s = a * a + c * c; + if (s) { + var f = .5 + ((u *= u) - (o *= o)) / (2 * s), + l = Math.sqrt(Math.max(0, 2 * o * (u + s) - (u -= s) * u - o * o)) / (2 * s); + e.x = r + f * a + l * c, + e.y = i + f * c - l * a + } else + e.x = r + u, + e.y = i + } + function Ho(t, n) { + var e = n.x - t.x, + r = n.y - t.y, + i = t.r + n.r; + return i * i > e * e + r * r + } + function Xo(t, n, e) { + var r = t.x - n, + i = t.y - e; + return r * r + i * i + } + function Vo(t) { + this._ = t, + this.next = null, + this.previous = null + } + function Wo(t) { + if (!(i = t.length)) + return 0; + var n, + e, + r, + i; + if (n = t[0], n.x = 0, n.y = 0, !(i > 1)) + return n.r; + if (e = t[1], n.x = -e.r, e.x = n.r, e.y = 0, !(i > 2)) + return n.r + e.r; + jo(e, n, r = t[2]); + var o, + u, + a, + c, + s, + f, + l, + h = n.r * n.r, + p = e.r * e.r, + d = r.r * r.r, + v = h + p + d, + _ = h * n.x + p * e.x + d * r.x, + y = h * n.y + p * e.y + d * r.y; + n = new Vo(n), + e = new Vo(e), + r = new Vo(r), + n.next = r.previous = e, + e.next = n.previous = r, + r.next = e.previous = n; + t : for (a = 3; a < i; ++a) { + if (jo(n._, e._, r = t[a]), r = new Vo(r), (s = n.previous) === (c = e.next)) { + if (Ho(c._, r._)) { + n = e, + e = c, + --a; + continue t + } + } else { + f = c._.r, + l = s._.r; + do + if (f <= l) { + if (Ho(c._, r._)) { + e = c, + n.next = e, + e.previous = n, + --a; + continue t + } + c = c.next, + f += c._.r + } + else { + if (Ho(s._, r._)) { + n = s, + n.next = e, + e.previous = n, + --a; + continue t + } + s = s.previous, + l += s._.r + } + while (c !== s.next) + } + for (r.previous = n, r.next = e, n.next = e.previous = e = r, v += d = r._.r * r._.r, _ += d * r._.x, y += d * r._.y, h = Xo(n._, o = _ / v, u = y / v); (r = r.next) !== e;) + (d = Xo(r._, o, u)) < h && (n = r, h = d); + e = n.next + } + for (n = [e._], r = e; (r = r.next) !== e;) + n.push(r._); + for (r = Tg(n), a = 0; a < i; ++a) + n = t[a], + n.x -= r.x, + n.y -= r.y; + return r.r + } + function $o(t) { + return null == t + ? null + : Zo(t) + } + function Zo(t) { + if ("function" != typeof t) + throw new Error; + return t + } + function Go() { + return 0 + } + function Jo(t) { + return Math.sqrt(t.value) + } + function Qo(t) { + return function (n) { + n.children || (n.r = Math.max(0, + t(n) || 0)) + } + } + function Ko(t, n) { + return function (e) { + if (r = e.children) { + var r, + i, + o, + u = r.length, + a = t(e) * n || 0; + if (a) + for (i = 0; i < u; ++i) + r[i].r += a; + if (o = Wo(r), a) + for (i = 0; i < u; ++i) + r[i].r -= a; + e.r = o + a + } + } + } + function tu(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 nu(t) { + return t.id + } + function eu(t) { + return t.parentId + } + function ru(t, n) { + return t.parent === n.parent + ? 1 + : 2 + } + function iu(t) { + var n = t.children; + return n + ? n[0] + : t.t + } + function ou(t) { + var n = t.children; + return n + ? n[n.length - 1] + : t.t + } + function uu(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 au(t) { + for (var n, e = 0, r = 0, i = t.children, o = i.length; --o >= 0;) + n = i[o], + n.z += e, + n.m += e, + e += n.s + (r += n.c) + } + function cu(t, n, e) { + return t.a.parent === n.parent + ? t.a + : e + } + function su(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 fu(t) { + for (var n, e, r, i, o, u = new su(t, 0), a = [u]; n = a.pop();) + if (r = n._.children) + for (n.children = new Array(o = r.length), i = o - 1; i >= 0; --i) + a.push(e = n.children[i] = new su(r[i], i)), + e.parent = n; + return (u.parent = new su(null, 0)).children = [u], + u + } + function lu(t, n, e, r, i, o) { + for (var u, a, c, s, f, l, h, p, d, v, _, y, g = [], m = n.children, x = 0, b = m.length, w = n.value; x < b;) { + for (s = i - e, f = o - r, h = p = l = m[x].value, _ = Math.max(f / s, s / f) / (w * t), y = l * l * _, v = Math.max(p / y, y / h), c = x + 1; c < b; ++c) { + if (l += a = m[c].value, a < h && (h = a), a > p && (p = a), y = l * l * _, d = Math.max(p / y, y / h), d > v) { + l -= a; + break + } + v = d + } + g.push(u = { + value: l, + dice: s < f, + children: m.slice(x, c) + }), + u.dice + ? Eg(u, e, r, i, w + ? r += f * l / w + : o) + : Ug(u, e, r, w + ? e += s * l / w + : i, o), + w -= l, + x = c + } + return g + } + function hu(t) { + return t.x + t.vx + } + function pu(t) { + return t.y + t.vy + } + function du(t, n) { + return n + } + function vu(t, n) { + var e = t.get(n); + if (!e) + throw new Error("missing: " + n); + return e + } + function _u(t) { + return t.x + } + function yu(t) { + return t.y + } + function gu() { + t + .event + .stopImmediatePropagation() + } + function mu(t, n) { + var e = t.document.documentElement, + r = gy(t).on("dragstart.drag", null); + n && (r.on("click.drag", tm, !0), setTimeout(function () { + r.on("click.drag", null) + }, 0)), + "onselectstart" in e + ? r.on("selectstart.drag", null) + : (e.style.MozUserSelect = e.__noselect, delete e.__noselect) + } + function xu(t, n, e, r, i, o, u, a, c, s) { + this.target = t, + this.type = n, + this.subject = e, + this.identifier = r, + this.active = i, + this.x = o, + this.y = u, + this.dx = a, + this.dy = c, + this._ = s + } + function bu() { + return !t.event.button + } + function wu() { + return this.parentNode + } + function Mu(n) { + return null == n + ? { + x: t.event.x, + y: t.event.y + } + : n + } + function Tu(t) { + return t[0] + } + function Nu(t) { + return t[1] + } + function ku() { + this._ = null + } + function Su(t) { + t.U = t.C = t.L = t.R = t.P = t.N = null + } + function Au(t, n) { + var e = n, + r = n.R, + i = e.U; + i + ? i.L === e + ? i.L = r + : i.R = r + : t._ = r, + r.U = i, + e.U = r, + e.R = r.L, + e.R && (e.R.U = e), + r.L = e + } + function Eu(t, n) { + var e = n, + r = n.L, + i = e.U; + i + ? i.L === e + ? i.L = r + : i.R = r + : t._ = r, + r.U = i, + e.U = r, + e.L = r.R, + e.L && (e.L.U = e), + r.R = e + } + function Cu(t) { + for (; t.L;) + t = t.L; + return t + } + function zu(t, n, e, r) { + var i = [ + null, null + ], + o = sm.push(i) - 1; + return i.left = t, + i.right = n, + e && qu(i, t, n, e), + r && qu(i, n, t, r), + am[t.index] + .halfedges + .push(o), + am[n.index] + .halfedges + .push(o), + i + } + function Pu(t, n, e) { + var r = [n, e]; + return r.left = t, + r + } + function qu(t, n, e, r) { + t[0] || t[1] + ? t.left === e + ? t[1] = r + : t[0] = r + : (t[0] = r, t.left = n, t.right = e) + } + function Lu(t, n, e, r, i) { + var o, + u = t[0], + a = t[1], + c = u[0], + s = u[1], + f = a[0], + l = a[1], + h = 0, + p = 1, + d = f - c, + v = l - s; + if (o = n - c, d || !(o > 0)) { + if (o /= d, d < 0) { + if (o < h) + return; + o < p && (p = o) + } else if (d > 0) { + if (o > p) + return; + o > h && (h = o) + } + if (o = r - c, d || !(o < 0)) { + if (o /= d, d < 0) { + if (o > p) + return; + o > h && (h = o) + } else if (d > 0) { + if (o < h) + return; + o < p && (p = o) + } + if (o = e - s, v || !(o > 0)) { + if (o /= v, v < 0) { + if (o < h) + return; + o < p && (p = o) + } else if (v > 0) { + if (o > p) + return; + o > h && (h = o) + } + if (o = i - s, v || !(o < 0)) { + if (o /= v, v < 0) { + if (o > p) + return; + o > h && (h = o) + } else if (v > 0) { + if (o < h) + return; + o < p && (p = o) + } + return !(h > 0 || p < 1) || (h > 0 && (t[0] = [ + c + h * d, + s + h * v + ]), p < 1 && (t[1] = [ + c + p * d, + s + p * v + ]), !0) + } + } + } + } + } + function Ru(t, n, e, r, i) { + var o = t[1]; + if (o) + return !0; + var u, + a, + c = t[0], + s = t.left, + f = t.right, + l = s[0], + h = s[1], + p = f[0], + d = f[1], + v = (l + p) / 2, + _ = (h + d) / 2; + if (d === h) { + if (v < n || v >= r) + return; + if (l > p) { + if (c) { + if (c[1] >= i) + return + } else + c = [v, e]; + o = [v, i] + } else { + if (c) { + if (c[1] < e) + return + } else + c = [v, i]; + o = [v, e] + } + } else if (u = (l - p) / (d - h), a = _ - u * v, u < -1 || u > 1) + if (l > p) { + if (c) { + if (c[1] >= i) + return + } else + c = [ + (e - a) / u, + e + ]; + o = [ + (i - a) / u, + i + ] + } + else { + if (c) { + if (c[1] < e) + return + } else + c = [ + (i - a) / u, + i + ]; + o = [ + (e - a) / u, + e + ] + } else if (h < d) { + if (c) { + if (c[0] >= r) + return + } else + c = [ + n, u * n + a + ]; + o = [ + r, u * r + a + ] + } else { + if (c) { + if (c[0] < n) + return + } else + c = [ + r, u * r + a + ]; + o = [ + n, u * n + a + ] + } + return t[0] = c, + t[1] = o, + !0 + } + function Uu(t, n, e, r) { + for (var i, o = sm.length; o--;) + Ru(i = sm[o], t, n, e, r) && Lu(i, t, n, e, r) && (Math.abs(i[0][0] - i[1][0]) > hm || Math.abs(i[0][1] - i[1][1]) > hm) || delete sm[o] + } + function Du(t) { + return am[t.index] = { + site: t, + halfedges: [] + } + } + function Ou(t, n) { + var e = t.site, + r = n.left, + i = n.right; + return e === i && (i = r, r = e), + i + ? Math.atan2(i[1] - r[1], i[0] - r[0]) + : (e === r + ? (r = n[1], i = n[0]) + : (r = n[0], i = n[1]), Math.atan2(r[0] - i[0], i[1] - r[1])) + } + function Fu(t, n) { + return n[+ (n.left !== t.site)] + } + function Iu(t, n) { + return n[+ (n.left === t.site)] + } + function Yu() { + for (var t, n, e, r, i = 0, o = am.length; i < o; ++i) + if ((t = am[i]) && (r = (n = t.halfedges).length)) { + var u = new Array(r), + a = new Array(r); + for (e = 0; e < r; ++e) + u[e] = e, + a[e] = Ou(t, sm[n[e]]); + for (u.sort(function (t, n) { + return a[n] - a[t] + }), e = 0; e < r; ++e) + a[e] = n[u[e]]; + for (e = 0; e < r; ++e) + n[e] = a[e] + } + } + function Bu(t, n, e, r) { + var i, + o, + u, + a, + c, + s, + f, + l, + h, + p, + d, + v, + _ = am.length, + y = !0; + for (i = 0; i < _; ++i) + if (o = am[i]) { + for (u = o.site, c = o.halfedges, a = c.length; a--;) + sm[c[a]] || c.splice(a, 1); + for (a = 0, s = c.length; a < s;) + p = Iu(o, sm[c[a]]), + d = p[0], + v = p[1], + f = Fu(o, sm[c[++a % s]]), + l = f[0], + h = f[1], + (Math.abs(d - l) > hm || Math.abs(v - h) > hm) && (c.splice(a, 0, sm.push(Pu(u, p, Math.abs(d - t) < hm && r - v > hm + ? [ + t, Math.abs(l - t) < hm + ? h + : r + ] + : Math.abs(v - r) < hm && e - d > hm + ? [ + Math.abs(h - r) < hm + ? l + : e, + r + ] + : Math.abs(d - e) < hm && v - n > hm + ? [ + e, Math.abs(l - e) < hm + ? h + : n + ] + : Math.abs(v - n) < hm && d - t > hm + ? [ + Math.abs(h - n) < hm + ? l + : t, + n + ] + : null)) - 1), ++s); + s && (y = !1) + } + if (y) { + var g, + m, + x, + b = 1 / 0; + for (i = 0, y = null; i < _; ++i) + (o = am[i]) && (u = o.site, g = u[0] - t, m = u[1] - n, x = g * g + m * m, x < b && (b = x, y = o)); + if (y) { + var w = [ + t, n + ], + M = [ + t, r + ], + T = [ + e, r + ], + N = [e, n]; + y + .halfedges + .push(sm.push(Pu(u = y.site, w, M)) - 1, sm.push(Pu(u, M, T)) - 1, sm.push(Pu(u, T, N)) - 1, sm.push(Pu(u, N, w)) - 1) + } + } + for (i = 0; i < _; ++i) + (o = am[i]) && (o.halfedges.length || delete am[i]) + } + function ju() { + Su(this), + this.x = this.y = this.arc = this.site = this.cy = null + } + function Hu(t) { + var n = t.P, + e = t.N; + if (n && e) { + var r = n.site, + i = t.site, + o = e.site; + if (r !== o) { + var u = i[0], + a = i[1], + c = r[0] - u, + s = r[1] - a, + f = o[0] - u, + l = o[1] - a, + h = 2 * (c * l - s * f); + if (!(h >= -pm)) { + var p = c * c + s * s, + d = f * f + l * l, + v = (l * p - s * d) / h, + _ = (c * d - f * p) / h, + y = fm.pop() || new ju; + y.arc = t, + y.site = i, + y.x = v + u, + y.y = (y.cy = _ + a) + Math.sqrt(v * v + _ * _), + t.circle = y; + for (var g = null, m = cm._; m;) + if (y.y < m.y || y.y === m.y && y.x <= m.x) { + if (!m.L) { + g = m.P; + break + } + m = m.L + } + else { + if (!m.R) { + g = m; + break + } + m = m.R + } + cm.insert(g, y), + g || (om = y) + } + } + } + } + function Xu(t) { + var n = t.circle; + n && (n.P || (om = n.N), cm.remove(n), fm.push(n), Su(n), t.circle = null) + } + function Vu() { + Su(this), + this.edge = this.site = this.circle = null + } + function Wu(t) { + var n = lm.pop() || new Vu; + return n.site = t, + n + } + function $u(t) { + Xu(t), + um.remove(t), + lm.push(t), + Su(t) + } + function Zu(t) { + var n = t.circle, + e = n.x, + r = n.cy, + i = [ + e, r + ], + o = t.P, + u = t.N, + a = [t]; + $u(t); + for (var c = o; c.circle && Math.abs(e - c.circle.x) < hm && Math.abs(r - c.circle.cy) < hm;) + o = c.P, + a.unshift(c), + $u(c), + c = o; + a.unshift(c), + Xu(c); + for (var s = u; s.circle && Math.abs(e - s.circle.x) < hm && Math.abs(r - s.circle.cy) < hm;) + u = s.N, + a.push(s), + $u(s), + s = u; + a.push(s), + Xu(s); + var f, + l = a.length; + for (f = 1; f < l; ++f) + s = a[f], + c = a[f - 1], + qu(s.edge, c.site, s.site, i); + c = a[0], + s = a[l - 1], + s.edge = zu(c.site, s.site, null, i), + Hu(c), + Hu(s) + } + function Gu(t) { + for (var n, e, r, i, o = t[0], u = t[1], a = um._; a;) + if (r = Ju(a, u) - o, r > hm) + a = a.L; + else { + if (i = o - Qu(a, u), !(i > hm)) { + r > -hm + ? (n = a.P, e = a) + : i > -hm + ? (n = a, e = a.N) + : n = e = a; + break + } + if (!a.R) { + n = a; + break + } + a = a.R + } + Du(t); + var c = Wu(t); + if (um.insert(n, c), n || e) { + if (n === e) + return Xu(n), + e = Wu(n.site), + um.insert(c, e), + c.edge = e.edge = zu(n.site, c.site), + Hu(n), + void Hu(e); + if (!e) + return void(c.edge = zu(n.site, c.site)); + Xu(n), + Xu(e); + var s = n.site, + f = s[0], + l = s[1], + h = t[0] - f, + p = t[1] - l, + d = e.site, + v = d[0] - f, + _ = d[1] - l, + y = 2 * (h * _ - p * v), + g = h * h + p * p, + m = v * v + _ * _, + x = [ + (_ * g - p * m) / y + f, + (h * m - v * g) / y + l + ]; + qu(e.edge, s, d, x), + c.edge = zu(s, t, null, x), + e.edge = zu(t, d, null, x), + Hu(n), + Hu(e) + } + } + function Ju(t, n) { + var e = t.site, + r = e[0], + i = e[1], + o = i - n; + if (!o) + return r; + var u = t.P; + if (!u) + return -(1 / 0); + e = u.site; + var a = e[0], + c = e[1], + s = c - n; + if (!s) + return a; + var f = a - r, + l = 1 / o - 1 / s, + h = f / s; + return l + ? (-h + Math.sqrt(h * h - 2 * l * (f * f / (-2 * s) - c + s / 2 + i - o / 2))) / l + r + : (r + a) / 2 + } + function Qu(t, n) { + var e = t.N; + if (e) + return Ju(e, n); + var r = t.site; + return r[1] === n + ? r[0] + : 1 / 0 + } + function Ku(t, n, e) { + return (t[0] - e[0]) * (n[1] - t[1]) - (t[0] - n[0]) * (e[1] - t[1]) + } + function ta(t, n) { + return n[1] - t[1] || n[0] - t[0] + } + function na(t, n) { + var e, + r, + i, + o = t + .sort(ta) + .pop(); + for (sm = [], am = new Array(t.length), um = new ku, cm = new ku;;) + if (i = om, o && (!i || o[1] < i.y || o[1] === i.y && o[0] < i.x)) + o[0] === e && o[1] === r || (Gu(o), e = o[0], r = o[1]), + o = t.pop(); + else { + if (!i) + break; + Zu(i.arc) + } + if (Yu(), n) { + var u =+ n[0][0], + a =+ n[0][1], + c =+ n[1][0], + s =+ n[1][1]; + Uu(u, a, c, s), + Bu(u, a, c, s) + } + this.edges = sm, + this.cells = am, + um = cm = sm = am = null + } + function ea(t, n, e) { + this.target = t, + this.type = n, + this.transform = e + } + function ra(t, n, e) { + this.k = t, + this.x = n, + this.y = e + } + function ia(t) { + return t.__zoom || _m + } + function oa() { + t + .event + .stopImmediatePropagation() + } + function ua() { + return !t.event.button + } + function aa() { + var t, + n, + e = this; + return e instanceof SVGElement + ? (e = e.ownerSVGElement || e, t = e.width.baseVal.value, n = e.height.baseVal.value) + : (t = e.clientWidth, n = e.clientHeight), + [ + [ + 0, 0 + ], + [t, n] + ] + } + function ca() { + return this.__zoom || _m + } + function sa() { + t + .event + .stopImmediatePropagation() + } + function fa(t) { + return {type: t} + } + function la() { + return !t.event.button + } + function ha() { + var t = this.ownerSVGElement || this; + return [ + [ + 0, 0 + ], + [t.width.baseVal.value, t.height.baseVal.value] + ] + } + function pa(t) { + for (; !t.__brush;) + if (!(t = t.parentNode)) + return; + return t.__brush + } + function da(t) { + return t[0][0] === t[1][0] || t[0][1] === t[1][1] + } + function va(t) { + var n = t.__brush; + return n + ? n + .dim + .output(n.selection) + : null + } + function _a() { + return ga(km) + } + function ya() { + return ga(Sm) + } + function ga(n) { + function e(t) { + var e = t + .property("__brush", a) + .selectAll(".overlay") + .data([fa("overlay")]); + e + .enter() + .append("rect") + .attr("class", "overlay") + .attr("pointer-events", "all") + .attr("cursor", Em.overlay) + .merge(e) + .each(function () { + var t = pa(this).extent; + gy(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]) + }), + t + .selectAll(".selection") + .data([fa("selection")]) + .enter() + .append("rect") + .attr("class", "selection") + .attr("cursor", Em.selection) + .attr("fill", "#777") + .attr("fill-opacity", .3) + .attr("stroke", "#fff") + .attr("shape-rendering", "crispEdges"); + var i = t + .selectAll(".handle") + .data(n.handles, function (t) { + return t.type + }); + i + .exit() + .remove(), + i + .enter() + .append("rect") + .attr("class", function (t) { + return "handle handle--" + t.type + }) + .attr("cursor", function (t) { + return Em[t.type] + }), + t + .each(r) + .attr("fill", "none") + .attr("pointer-events", "all") + .style("-webkit-tap-highlight-color", "rgba(0,0,0,0)") + .on("mousedown.brush touchstart.brush", u) + } + function r() { + var t = gy(this), + n = pa(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] - h / 2 + : n[0][0] - h / 2 + }).attr("y", function (t) { + return "s" === t.type[0] + ? n[1][1] - h / 2 + : n[0][1] - h / 2 + }).attr("width", function (t) { + return "n" === t.type || "s" === t.type + ? n[1][0] - n[0][0] + h + : h + }).attr("height", function (t) { + return "e" === t.type || "w" === t.type + ? n[1][1] - n[0][1] + h + : h + })) + : t + .selectAll(".selection,.handle") + .style("display", "none") + .attr("x", null) + .attr("y", null) + .attr("width", null) + .attr("height", null) + } + function i(t, n) { + return t.__brush.emitter || new o(t, n) + } + function o(t, n) { + this.that = t, + this.args = n, + this.state = t.__brush, + this.active = 0 + } + function u() { + function e() { + var t = U_(T); + !U || w || M || (Math.abs(t[0] - O[0]) > Math.abs(t[1] - O[1]) + ? M = !0 + : w = !0), + O = t, + b = !0, + bm(), + o() + } + function o() { + var t; + switch (m = O[0] - D[0], x = O[1] - D[1], k) { + case Mm: + case wm: + S && (m = Math.max(P - l, Math.min(L - v, m)), h = l + m, _ = v + m), + A && (x = Math.max(q - p, Math.min(R - y, x)), d = p + x, g = y + x); + break; + case Tm: + S < 0 + ? (m = Math.max(P - l, Math.min(L - l, m)), h = l + m, _ = v) + : S > 0 && (m = Math.max(P - v, Math.min(L - v, m)), h = l, _ = v + m), + A < 0 + ? (x = Math.max(q - p, Math.min(R - p, x)), d = p + x, g = y) + : A > 0 && (x = Math.max(q - y, Math.min(R - y, x)), d = p, g = y + x); + break; + case Nm: + S && (h = Math.max(P, Math.min(L, l - m * S)), _ = Math.max(P, Math.min(L, v + m * S))), + A && (d = Math.max(q, Math.min(R, p - x * A)), g = Math.max(q, Math.min(R, y + x * A))) + } + _ < h && (S *= -1, t = l, l = v, v = t, t = h, h = _, _ = t, N in Cm && Y.attr("cursor", Em[N = Cm[N]])), + g < d && (A *= -1, t = p, p = y, y = t, t = d, d = g, g = t, N in zm && Y.attr("cursor", Em[N = zm[N]])), + E.selection && (z = E.selection), + w && (h = z[0][0], _ = z[1][0]), + M && (d = z[0][1], g = z[1][1]), + z[0][0] === h && z[0][1] === d && z[1][0] === _ && z[1][1] === g || (E.selection = [ + [ + h, d + ], + [_, g] + ], r.call(T), F.brush()) + } + function u() { + if (sa(), t.event.touches) { + if (t.event.touches.length) + return; + c && clearTimeout(c), + c = setTimeout(function () { + c = null + }, 500), + I.on("touchmove.brush touchend.brush touchcancel.brush", null) + } else + mu(t.event.view, b), + B.on("keydown.brush keyup.brush mousemove.brush mouseup.brush", null); + I.attr("pointer-events", "all"), + Y.attr("cursor", Em.overlay), + E.selection && (z = E.selection), + da(z) && (E.selection = null, r.call(T)), + F.end() + } + function a() { + switch (t.event.keyCode) { + case 16: + U = S && A; + break; + case 18: + k === Tm && (S && (v = _ - m * S, l = h + m * S), A && (y = g - x * A, p = d + x * A), k = Nm, o()); + break; + case 32: + k !== Tm && k !== Nm || (S < 0 + ? v = _ - m + : S > 0 && (l = h - m), A < 0 + ? y = g - x + : A > 0 && (p = d - x), k = Mm, Y.attr("cursor", Em.selection), o()); + break; + default: + return + } + bm() + } + function s() { + switch (t.event.keyCode) { + case 16: + U && (w = M = U = !1, o()); + break; + case 18: + k === Nm && (S < 0 + ? v = _ + : S > 0 && (l = h), A < 0 + ? y = g + : A > 0 && (p = d), k = Tm, o()); + break; + case 32: + k === Mm && (t.event.altKey + ? (S && (v = _ - m * S, l = h + m * S), A && (y = g - x * A, p = d + x * A), k = Nm) + : (S < 0 + ? v = _ + : S > 0 && (l = h), A < 0 + ? y = g + : A > 0 && (p = d), k = Tm), Y.attr("cursor", Em[N]), o()); + break; + default: + return + } + bm() + } + if (t.event.touches) { + if (t.event.changedTouches.length < t.event.touches.length) + return bm() + } else if (c) + return; + if (f.apply(this, arguments)) { + var l, + h, + p, + d, + v, + _, + y, + g, + m, + x, + b, + w, + M, + T = this, + N = t.event.target.__data__.type, + k = "selection" === (t.event.metaKey + ? N = "overlay" + : N) + ? wm + : t.event.altKey + ? Nm + : Tm, + S = n === Sm + ? null + : Pm[N], + A = n === km + ? null + : qm[N], + E = pa(T), + C = E.extent, + z = E.selection, + P = C[0][0], + q = C[0][1], + L = C[1][0], + R = C[1][1], + U = S && A && t.event.shiftKey, + D = U_(T), + O = D, + F = i(T, arguments).beforestart(); + "overlay" === N + ? E.selection = z = [ + [ + l = n === Sm + ? P + : D[0], + p = n === km + ? q + : D[1] + ], + [ + v = n === Sm + ? L + : l, + y = n === km + ? R + : p + ] + ] + : (l = z[0][0], p = z[0][1], v = z[1][0], y = z[1][1]), + h = l, + d = p, + _ = v, + g = y; + var I = gy(T).attr("pointer-events", "none"), + Y = I + .selectAll(".overlay") + .attr("cursor", Em[N]); + if (t.event.touches) + I.on("touchmove.brush", e, !0).on("touchend.brush touchcancel.brush", u, !0); + else { + var B = gy(t.event.view) + .on("keydown.brush", a, !0) + .on("keyup.brush", s, !0) + .on("mousemove.brush", e, !0) + .on("mouseup.brush", u, !0); + nm(t.event.view) + } + sa(), + Py(T), + r.call(T), + F.start() + } + } + function a() { + var t = this.__brush || { + selection: null + }; + return t.extent = s.apply(this, arguments), + t.dim = n, + t + } + var c, + s = ha, + f = la, + l = Pn(e, "start", "brush", "end"), + h = 6; + return e.move = function (t, e) { + t.selection + ? t.on("start.brush", function () { + i(this, arguments) + .beforestart() + .start() + }) + .on("interrupt.brush end.brush", function () { + i(this, arguments).end() + }) + .tween("brush", function () { + function t(t) { + u.selection = 1 === t && da(s) + ? null + : f(t), + r.call(o), + a.brush() + } + var o = this, + u = o.__brush, + a = i(o, arguments), + c = u.selection, + s = n.input("function" == typeof e + ? e.apply(this, arguments) + : e, u.extent), + f = _p(c, s); + return c && s + ? t + : t(1) + }) + : t.each(function () { + var t = this, + o = arguments, + u = t.__brush, + a = n.input("function" == typeof e + ? e.apply(t, o) + : e, u.extent), + c = i(t, o).beforestart(); + Py(t), + u.selection = null == a || da(a) + ? null + : a, + r.call(t), + c + .start() + .brush() + .end() + }) + }, + o.prototype = { + beforestart: function () { + return 1 === ++this.active && (this.state.emitter = this, this.starting = !0), + this + }, + start: function () { + return this.starting && (this.starting = !1, this.emit("start")), + this + }, + brush: function () { + return this.emit("brush"), + this + }, + end: function () { + return 0 === --this.active && (delete this.state.emitter, this.emit("end")), + this + }, + emit: function (t) { + Xr(new xm(e, t, n.output(this.state.selection)), l.apply, l, [t, this.that, this.args]) + } + }, + e.extent = function (t) { + return arguments.length + ? (s = "function" == typeof t + ? t + : mm([ + [ + t[0][0], + t[0][1] + ], + [ + t[1][0], + t[1][1] + ] + ]), e) + : s + }, + e.filter = function (t) { + return arguments.length + ? (f = "function" == typeof t + ? t + : mm(!!t), e) + : f + }, + e.handleSize = function (t) { + return arguments.length + ? (h =+ t, e) + : h + }, + e.on = function () { + var t = l + .on + .apply(l, arguments); + return t === l + ? e + : t + }, + e + } + function ma(t) { + return function (n, e) { + return t(n.source.value + n.target.value, e.source.value + e.target.value) + } + } + function xa(t) { + return t.source + } + function ba(t) { + return t.target + } + function wa(t) { + return t.radius + } + function Ma(t) { + return t.startAngle + } + function Ta(t) { + return t.endAngle + } + function Na() { + this.reset() + } + function ka(t, n, e) { + var r = t.s = n + e, + i = r - n, + o = r - i; + t.t = n - o + (e - i) + } + function Sa(t) { + return t > 1 + ? 0 + : t < -1 + ? kx + : Math.acos(t) + } + function Aa(t) { + return t > 1 + ? Sx + : t < -1 + ? -Sx + : Math.asin(t) + } + function Ea(t) { + return (t = Ix(t / 2)) * t + } + function Ca() {} + function za(t, n) { + t && Xx.hasOwnProperty(t.type) && Xx[t.type](t, n) + } + function Pa(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 qa(t, n) { + var e = -1, + r = t.length; + for (n.polygonStart(); ++e < r;) + Pa(t[e], n, 1); + n.polygonEnd() + } + function La() { + Zx.point = Ua + } + function Ra() { + Da(Vm, Wm) + } + function Ua(t, n) { + Zx.point = Da, + Vm = t, + Wm = n, + t *= zx, + n *= zx, + $m = t, + Zm = Rx(n = n / 2 + Ax), + Gm = Ix(n) + } + function Da(t, n) { + t *= zx, + n *= zx, + n = n / 2 + Ax; + var e = t - $m, + r = e >= 0 + ? 1 + : -1, + i = r * e, + o = Rx(n), + u = Ix(n), + a = Gm * u, + c = Zm * o + a * Rx(i), + s = a * r * Ix(i); + Wx.add(Lx(s, c)), + $m = t, + Zm = o, + Gm = u + } + function Oa(t) { + return [ + Lx(t[1], t[0]), + Aa(t[2]) + ] + } + function Fa(t) { + var n = t[0], + e = t[1], + r = Rx(e); + return [ + r * Rx(n), + r * Ix(n), + Ix(e) + ] + } + function Ia(t, n) { + return t[0] * n[0] + t[1] * n[1] + t[2] * n[2] + } + function Ya(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 Ba(t, n) { + t[0] += n[0], + t[1] += n[1], + t[2] += n[2] + } + function ja(t, n) { + return [ + t[0] * n, + t[1] * n, + t[2] * n + ] + } + function Ha(t) { + var n = Bx(t[0] * t[0] + t[1] * t[1] + t[2] * t[2]); + t[0] /= n, + t[1] /= n, + t[2] /= n + } + function Xa(t, n) { + ox.push(ux = [ + Jm = t, + Km = t + ]), + n < Qm && (Qm = n), + n > tx && (tx = n) + } + function Va(t, n) { + var e = Fa([ + t * zx, + n * zx + ]); + if (ix) { + var r = Ya(ix, e), + i = [ + r[1], -r[0], + 0 + ], + o = Ya(i, r); + Ha(o), + o = Oa(o); + var u, + a = t - nx, + c = a > 0 + ? 1 + : -1, + s = o[0] * Cx * c, + f = Px(a) > 180; + f ^ (c * nx < s && s < c * t) + ? (u = o[1] * Cx, u > tx && (tx = u)) + : (s = (s + 360) % 360 - 180, f ^ (c * nx < s && s < c * t) + ? (u = -o[1] * Cx, u < Qm && (Qm = u)) + : (n < Qm && (Qm = n), n > tx && (tx = n))), + f + ? t < nx + ? Qa(Jm, t) > Qa(Jm, Km) && (Km = t) + : Qa(t, Km) > Qa(Jm, Km) && (Jm = t) + : Km >= Jm + ? (t < Jm && (Jm = t), t > Km && (Km = t)) + : t > nx + ? Qa(Jm, t) > Qa(Jm, Km) && (Km = t) + : Qa(t, Km) > Qa(Jm, Km) && (Jm = t) + } else + Xa(t, n); + ix = e, + nx = t + } + function Wa() { + Qx.point = Va + } + function $a() { + ux[0] = Jm, + ux[1] = Km, + Qx.point = Xa, + ix = null + } + function Za(t, n) { + if (ix) { + var e = t - nx; + Jx.add(Px(e) > 180 + ? e + (e > 0 + ? 360 + : -360) + : e) + } else + ex = t, + rx = n; + Zx.point(t, n), + Va(t, n) + } + function Ga() { + Zx.lineStart() + } + function Ja() { + Za(ex, rx), + Zx.lineEnd(), + Px(Jx) > Tx && (Jm = -(Km = 180)), + ux[0] = Jm, + ux[1] = Km, + ix = null + } + function Qa(t, n) { + return (n -= t) < 0 + ? n + 360 + : n + } + function Ka(t, n) { + return t[0] - n[0] + } + function tc(t, n) { + return t[0] <= t[1] + ? t[0] <= n && n <= t[1] + : n < t[0] || t[1] < n + } + function nc(t, n) { + t *= zx, + n *= zx; + var e = Rx(n); + ec(e * Rx(t), e * Ix(t), Ix(n)) + } + function ec(t, n, e) { + ++ax, + sx += (t - sx) / ax, + fx += (n - fx) / ax, + lx += (e - lx) / ax + } + function rc() { + tb.point = ic + } + function ic(t, n) { + t *= zx, + n *= zx; + var e = Rx(n); + xx = e * Rx(t), + bx = e * Ix(t), + wx = Ix(n), + tb.point = oc, + ec(xx, bx, wx) + } + function oc(t, n) { + t *= zx, + n *= zx; + var e = Rx(n), + r = e * Rx(t), + i = e * Ix(t), + o = Ix(n), + u = Lx(Bx((u = bx * o - wx * i) * u + (u = wx * r - xx * o) * u + (u = xx * i - bx * r) * u), xx * r + bx * i + wx * o); + cx += u, + hx += u * (xx + (xx = r)), + px += u * (bx + (bx = i)), + dx += u * (wx + (wx = o)), + ec(xx, bx, wx) + } + function uc() { + tb.point = nc + } + function ac() { + tb.point = sc + } + function cc() { + fc(gx, mx), + tb.point = nc + } + function sc(t, n) { + gx = t, + mx = n, + t *= zx, + n *= zx, + tb.point = fc; + var e = Rx(n); + xx = e * Rx(t), + bx = e * Ix(t), + wx = Ix(n), + ec(xx, bx, wx) + } + function fc(t, n) { + t *= zx, + n *= zx; + var e = Rx(n), + r = e * Rx(t), + i = e * Ix(t), + o = Ix(n), + u = bx * o - wx * i, + a = wx * r - xx * o, + c = xx * i - bx * r, + s = Bx(u * u + a * a + c * c), + f = xx * r + bx * i + wx * o, + l = s && -Sa(f) / s, + h = Lx(s, f); + vx += l * u, + _x += l * a, + yx += l * c, + cx += h, + hx += h * (xx + (xx = r)), + px += h * (bx + (bx = i)), + dx += h * (wx + (wx = o)), + ec(xx, bx, wx) + } + function lc(t, n) { + return [ + t > kx + ? t - Ex + : t < -kx + ? t + Ex + : t, + n + ] + } + function hc(t, n, e) { + return (t %= Ex) + ? n || e + ? rb(dc(t), vc(n, e)) + : dc(t) + : n || e + ? vc(n, e) + : lc + } + function pc(t) { + return function (n, e) { + return n += t, + [ + n > kx + ? n - Ex + : n < -kx + ? n + Ex + : n, + e + ] + } + } + function dc(t) { + var n = pc(t); + return n.invert = pc(-t), + n + } + function vc(t, n) { + function e(t, n) { + var e = Rx(n), + a = Rx(t) * e, + c = Ix(t) * e, + s = Ix(n), + f = s * r + a * i; + return [ + Lx(c * o - f * u, a * r - s * i), + Aa(f * o + c * u) + ] + } + var r = Rx(t), + i = Ix(t), + o = Rx(n), + u = Ix(n); + return e.invert = function (t, n) { + var e = Rx(n), + a = Rx(t) * e, + c = Ix(t) * e, + s = Ix(n), + f = s * o - c * u; + return [ + Lx(c * o + s * u, a * r + f * i), + Aa(f * r - a * i) + ] + }, + e + } + function _c(t, n, e, r, i, o) { + if (e) { + var u = Rx(n), + a = Ix(n), + c = r * e; + null == i + ? (i = n + r * Ex, o = n - c / 2) + : (i = yc(u, i), o = yc(u, o), (r > 0 + ? i < o + : i > o) && (i += r * Ex)); + for (var s, f = i; r > 0 + ? f > o + : f < o; f -= c) + s = Oa([ + u, -a * Rx(f), -a * Ix(f) + ]), + t.point(s[0], s[1]) + } + } + function yc(t, n) { + n = Fa(n), + n[0] -= t, + Ha(n); + var e = Sa(-n[1]); + return ((-n[2] < 0 + ? -e + : e) + Ex - Tx) % Ex + } + function gc(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 mc(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 xc(t, n, e, r) { + function i(i, o) { + return t <= i && i <= e && n <= o && o <= r + } + function o(i, o, a, s) { + var f = 0, + l = 0; + if (null == i || (f = u(i, a)) !== (l = u(o, a)) || c(i, o) < 0 ^ a > 0) { + do + s.point(0 === f || 3 === f + ? t + : e, f > 1 + ? r + : n); + while ((f = (f + a + 4) % 4) !== l) + } else + s.point(o[0], o[1]) + } + function u(r, i) { + return Px(r[0] - t) < Tx + ? i > 0 + ? 0 + : 3 + : Px(r[0] - e) < Tx + ? i > 0 + ? 2 + : 1 + : Px(r[1] - n) < Tx + ? i > 0 + ? 1 + : 0 + : i > 0 + ? 3 + : 2 + } + function a(t, n) { + return c(t.x, n.x) + } + function c(t, n) { + var e = u(t, 1), + r = u(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 (u) { + function c(t, n) { + i(t, n) && k.point(t, n) + } + function s() { + for (var n = 0, e = 0, i = _.length; e < i; ++e) + for (var o, u, a = _[e], c = 1, s = a.length, f = a[0], l = f[0], h = f[1]; c < s; ++c) + o = l, + u = h, + f = a[c], + l = f[0], + h = f[1], + u <= r + ? h > r && (l - o) * (r - u) > (h - u) * (t - o) && ++n + : h <= r && (l - o) * (r - u) < (h - u) * (t - o) && --n; + return n + } + function f() { + k = S, + v = [], + _ = [], + N = !0 + } + function l() { + var t = s(), + n = N && t, + e = (v = Js(v)).length; + (n || e) && (u.polygonStart(), n && (u.lineStart(), o(null, null, 1, u), u.lineEnd()), e && xb(v, a, t, o, u), u.polygonEnd()), + k = u, + v = _ = y = null + } + function h() { + A.point = d, + _ && _.push(y = []), + T = !0, + M = !1, + b = w = NaN + } + function p() { + v && (d(g, m), x && M && S.rejoin(), v.push(S.result())), + A.point = c, + M && k.lineEnd() + } + function d(o, u) { + var a = i(o, u); + if (_ && y.push([o, u]), T) + g = o, + m = u, + x = a, + T = !1, + a && (k.lineStart(), k.point(o, u)); + else if (a && M) + k.point(o, u); + else { + var c = [ + b = Math.max(wb, Math.min(bb, b)), + w = Math.max(wb, Math.min(bb, w)) + ], + s = [ + o = Math.max(wb, Math.min(bb, o)), + u = Math.max(wb, Math.min(bb, u)) + ]; + gb(c, s, t, n, e, r) + ? (M || (k.lineStart(), k.point(c[0], c[1])), k.point(s[0], s[1]), a || k.lineEnd(), N = !1) + : a && (k.lineStart(), k.point(o, u), N = !1) + } + b = o, + w = u, + M = a + } + var v, + _, + y, + g, + m, + x, + b, + w, + M, + T, + N, + k = u, + S = yb(), + A = { + point: c, + lineStart: h, + lineEnd: p, + polygonStart: f, + polygonEnd: l + }; + return A + } + } + function bc() { + Nb.point = Mc, + Nb.lineEnd = wc + } + function wc() { + Nb.point = Nb.lineEnd = Ca + } + function Mc(t, n) { + t *= zx, + n *= zx, + ib = t, + ob = Ix(n), + ub = Rx(n), + Nb.point = Tc + } + function Tc(t, n) { + t *= zx, + n *= zx; + var e = Ix(n), + r = Rx(n), + i = Px(t - ib), + o = Rx(i), + u = Ix(i), + a = r * u, + c = ub * e - ob * r * o, + s = ob * e + ub * r * o; + Tb.add(Lx(Bx(a * a + c * c), s)), + ib = t, + ob = e, + ub = r + } + function Nc(t, n, e) { + var r = Os(t, n - Tx, e).concat(n); + return function (t) { + return r.map(function (n) { + return [t, n] + }) + } + } + function kc(t, n, e) { + var r = Os(t, n - Tx, e).concat(n); + return function (t) { + return r.map(function (n) { + return [n, t] + }) + } + } + function Sc() { + function t() { + return {type: "MultiLineString", coordinates: n()} + } + function n() { + return Os(Ux(o / _) * _, i, _) + .map(h) + .concat(Os(Ux(s / y) * y, c, y).map(p)) + .concat(Os(Ux(r / d) * d, e, d).filter(function (t) { + return Px(t % _) > Tx + }).map(f)) + .concat(Os(Ux(a / v) * v, u, v).filter(function (t) { + return Px(t % y) > Tx + }).map(l)) + } + var e, + r, + i, + o, + u, + a, + c, + s, + f, + l, + h, + p, + d = 10, + v = d, + _ = 90, + y = 360, + g = 2.5; + return t.lines = function () { + return n().map(function (t) { + return {type: "LineString", coordinates: t} + }) + }, + t.outline = function () { + return { + type: "Polygon", + coordinates: [h(o).concat(p(c).slice(1), h(i).reverse().slice(1), p(s).reverse().slice(1))] + } + }, + t.extent = function (n) { + return arguments.length + ? t + .extentMajor(n) + .extentMinor(n) + : t.extentMinor() + }, + t.extentMajor = function (n) { + return arguments.length + ? (o =+ n[0][0], i =+ n[1][0], s =+ n[0][1], c =+ n[1][1], o > i && (n = o, o = i, i = n), s > c && (n = s, s = c, c = n), t.precision(g)) + : [ + [ + o, s + ], + [i, c] + ] + }, + t.extentMinor = function (n) { + return arguments.length + ? (r =+ n[0][0], e =+ n[1][0], a =+ n[0][1], u =+ n[1][1], r > e && (n = r, r = e, e = n), a > u && (n = a, a = u, u = n), t.precision(g)) + : [ + [ + r, a + ], + [e, u] + ] + }, + t.step = function (n) { + return arguments.length + ? t + .stepMajor(n) + .stepMinor(n) + : t.stepMinor() + }, + t.stepMajor = function (n) { + return arguments.length + ? (_ =+ n[0], y =+ n[1], t) + : [_, y] + }, + t.stepMinor = function (n) { + return arguments.length + ? (d =+ n[0], v =+ n[1], t) + : [d, v] + }, + t.precision = function (n) { + return arguments.length + ? (g =+ n, f = Nc(a, u, 90), l = kc(r, e, g), h = Nc(s, c, 90), p = kc(o, i, g), t) + : g + }, + t.extentMajor([ + [ + -180, -90 + Tx + ], + [ + 180, 90 - Tx + ] + ]).extentMinor([ + [ + -180, -80 - Tx + ], + [ + 180, 80 + Tx + ] + ]) + } + function Ac() { + return Sc()() + } + function Ec() { + Lb.point = Cc + } + function Cc(t, n) { + Lb.point = zc, + ab = sb = t, + cb = fb = n + } + function zc(t, n) { + qb.add(fb * t - sb * n), + sb = t, + fb = n + } + function Pc() { + zc(ab, cb) + } + function qc(t, n) { + t < Rb && (Rb = t), + t > Db && (Db = t), + n < Ub && (Ub = n), + n > Ob && (Ob = n) + } + function Lc(t, n) { + Ib += t, + Yb += n, + ++Bb + } + function Rc() { + Zb.point = Uc + } + function Uc(t, n) { + Zb.point = Dc, + Lc(pb = t, db = n) + } + function Dc(t, n) { + var e = t - pb, + r = n - db, + i = Bx(e * e + r * r); + jb += i * (pb + t) / 2, + Hb += i * (db + n) / 2, + Xb += i, + Lc(pb = t, db = n) + } + function Oc() { + Zb.point = Lc + } + function Fc() { + Zb.point = Yc + } + function Ic() { + Bc(lb, hb) + } + function Yc(t, n) { + Zb.point = Bc, + Lc(lb = pb = t, hb = db = n) + } + function Bc(t, n) { + var e = t - pb, + r = n - db, + i = Bx(e * e + r * r); + jb += i * (pb + t) / 2, + Hb += i * (db + n) / 2, + Xb += i, + i = db * t - pb * n, + Vb += i * (pb + t), + Wb += i * (db + n), + $b += 3 * i, + Lc(pb = t, db = n) + } + function jc(t) { + this._context = t + } + function Hc() { + this._string = [] + } + function Xc(t) { + return "m0," + t + "a" + t + "," + t + " 0 1,1 0," + -2 * t + "a" + t + "," + t + " 0 1,1 0," + 2 * t + "z" + } + function Vc(t) { + return t.length > 1 + } + function Wc(t, n) { + return ((t = t.x)[0] < 0 + ? t[1] - Sx - Tx + : Sx - t[1]) - ((n = n.x)[0] < 0 + ? n[1] - Sx - Tx + : Sx - n[1]) + } + function $c(t) { + var n, + e = NaN, + r = NaN, + i = NaN; + return { + lineStart: function () { + t.lineStart(), + n = 1 + }, + point: function (o, u) { + var a = o > 0 + ? kx + : -kx, + c = Px(o - e); + Px(c - kx) < Tx + ? (t.point(e, r = (r + u) / 2 > 0 + ? Sx + : -Sx), t.point(i, r), t.lineEnd(), t.lineStart(), t.point(a, r), t.point(o, r), n = 0) + : i !== a && c >= kx && (Px(e - i) < Tx && (e -= i * Tx), Px(o - a) < Tx && (o -= a * Tx), r = Zc(e, r, o, u), t.point(i, r), t.lineEnd(), t.lineStart(), t.point(a, r), n = 0), + t.point(e = o, r = u), + i = a + }, + lineEnd: function () { + t.lineEnd(), + e = r = NaN + }, + clean: function () { + return 2 - n + } + } + } + function Zc(t, n, e, r) { + var i, + o, + u = Ix(t - e); + return Px(u) > Tx + ? qx((Ix(n) * (o = Rx(r)) * Ix(e) - Ix(r) * (i = Rx(n)) * Ix(t)) / (i * o * u)) + : (n + r) / 2 + } + function Gc(t, n, e, r) { + var i; + if (null == t) + i = e * Sx, + r.point(-kx, i), + r.point(0, i), + r.point(kx, i), + r.point(kx, 0), + r.point(kx, -i), + r.point(0, -i), + r.point(-kx, -i), + r.point(-kx, 0), + r.point(-kx, i); + else if (Px(t[0] - n[0]) > Tx) { + var o = t[0] < n[0] + ? kx + : -kx; + i = e * o / 2, + r.point(-o, i), + r.point(0, i), + r.point(o, i) + } else + r.point(n[0], n[1]) + } + function Jc(t) { + return function (n) { + var e = new Qc; + for (var r in t) + e[r] = t[r]; + return e.stream = n, + e + } + } + function Qc() {} + function Kc(t, n, e) { + var r = n[1][0] - n[0][0], + i = n[1][1] - n[0][1], + o = t.clipExtent && t.clipExtent(); + t + .scale(150) + .translate([0, 0]), + null != o && t.clipExtent(null), + Vx(e, t.stream(Fb)); + var u = Fb.result(), + a = Math.min(r / (u[1][0] - u[0][0]), i / (u[1][1] - u[0][1])), + c =+ n[0][0] + (r - a * (u[1][0] + u[0][0])) / 2, + s =+ n[0][1] + (i - a * (u[1][1] + u[0][1])) / 2; + return null != o && t.clipExtent(o), + t + .scale(150 * a) + .translate([c, s]) + } + function ts(t, n, e) { + return Kc(t, [ + [ + 0, 0 + ], + n + ], e) + } + function ns(t) { + return Jc({ + point: function (n, e) { + n = t(n, e), + this + .stream + .point(n[0], n[1]) + } + }) + } + function es(t, n) { + function e(r, i, o, u, a, c, s, f, l, h, p, d, v, _) { + var y = s - r, + g = f - i, + m = y * y + g * g; + if (m > 4 * n && v--) { + var x = u + h, + b = a + p, + w = c + d, + M = Bx(x * x + b * b + w * w), + T = Aa(w /= M), + N = Px(Px(w) - 1) < Tx || Px(o - l) < Tx + ? (o + l) / 2 + : Lx(b, x), + k = t(N, T), + S = k[0], + A = k[1], + E = S - r, + C = A - i, + z = g * E - y * C; + (z * z / m > n || Px((y * E + g * C) / m - .5) > .3 || u * h + a * p + c * d < iw) && (e(r, i, o, u, a, c, S, A, N, x /= M, b /= M, w, v, _), _.point(S, A), e(S, A, N, x, b, w, s, f, l, h, p, d, v, _)) + } + } + return function (n) { + function r(e, r) { + e = t(e, r), + n.point(e[0], e[1]) + } + function i() { + y = NaN, + w.point = o, + n.lineStart() + } + function o(r, i) { + var o = Fa([r, i]), + u = t(r, i); + e(y, g, _, m, x, b, y = u[0], g = u[1], _ = r, m = o[0], x = o[1], b = o[2], rw, n), + n.point(y, g) + } + function u() { + w.point = r, + n.lineEnd() + } + function a() { + i(), + w.point = c, + w.lineEnd = s + } + function c(t, n) { + o(f = t, n), + l = y, + h = g, + p = m, + d = x, + v = b, + w.point = o + } + function s() { + e(y, g, _, m, x, b, l, h, f, p, d, v, rw, n), + w.lineEnd = u, + u() + } + var f, + l, + h, + p, + d, + v, + _, + y, + g, + m, + x, + b, + w = { + point: r, + lineStart: i, + lineEnd: u, + polygonStart: function () { + n.polygonStart(), + w.lineStart = a + }, + polygonEnd: function () { + n.polygonEnd(), + w.lineStart = i + } + }; + return w + } + } + function rs(t) { + return is(function () { + return t + })() + } + function is(t) { + function n(t) { + return t = f(t[0] * zx, t[1] * zx), + [ + t[0] * _ + a, + c - t[1] * _ + ] + } + function e(t) { + return t = f.invert((t[0] - a) / _, (c - t[1]) / _), + t && [ + t[0] * Cx, + t[1] * Cx + ] + } + function r(t, n) { + return t = u(t, n), + [ + t[0] * _ + a, + c - t[1] * _ + ] + } + function i() { + f = rb(s = hc(b, w, M), u); + var t = u(m, x); + return a = y - t[0] * _, + c = g + t[1] * _, + o() + } + function o() { + return d = v = null, + n + } + var u, + a, + c, + s, + f, + l, + h, + p, + d, + v, + _ = 150, + y = 480, + g = 250, + m = 0, + x = 0, + b = 0, + w = 0, + M = 0, + T = null, + N = tw, + k = null, + S = zb, + A = .5, + E = ow(r, A); + return n.stream = function (t) { + return d && v === t + ? d + : d = uw(N(s, E(S(v = t)))) + }, + n.clipAngle = function (t) { + return arguments.length + ? (N =+ t + ? nw(T = t * zx, 6 * zx) + : (T = null, tw), o()) + : T * Cx + }, + n.clipExtent = function (t) { + return arguments.length + ? (S = null == t + ? (k = l = h = p = null, zb) + : xc(k =+ t[0][0], l =+ t[0][1], h =+ t[1][0], p =+ t[1][1]), o()) + : null == k + ? null + : [ + [ + k, l + ], + [h, p] + ] + }, + n.scale = function (t) { + return arguments.length + ? (_ =+ t, i()) + : _ + }, + n.translate = function (t) { + return arguments.length + ? (y =+ t[0], g =+ t[1], i()) + : [y, g] + }, + n.center = function (t) { + return arguments.length + ? (m = t[0] % 360 * zx, x = t[1] % 360 * zx, i()) + : [ + m * Cx, + x * Cx + ] + }, + n.rotate = function (t) { + return arguments.length + ? (b = t[0] % 360 * zx, w = t[1] % 360 * zx, M = t.length > 2 + ? t[2] % 360 * zx + : 0, i()) + : [ + b * Cx, + w * Cx, + M * Cx + ] + }, + n.precision = function (t) { + return arguments.length + ? (E = ow(r, A = t * t), o()) + : Bx(A) + }, + n.fitExtent = function (t, e) { + return Kc(n, t, e) + }, + n.fitSize = function (t, e) { + return ts(n, t, e) + }, + function () { + return u = t.apply(this, arguments), + n.invert = u.invert && e, + i() + } + } + function os(t) { + var n = 0, + e = kx / 3, + r = is(t), + i = r(n, e); + return i.parallels = function (t) { + return arguments.length + ? r(n = t[0] * zx, e = t[1] * zx) + : [ + n * Cx, + e * Cx + ] + }, + i + } + function us(t) { + function n(t, n) { + return [ + t * e, + Ix(n) / e + ] + } + var e = Rx(t); + return n.invert = function (t, n) { + return [ + t / e, + Aa(n * e) + ] + }, + n + } + function as(t, n) { + function e(t, n) { + var e = Bx(o - 2 * i * Ix(n)) / i; + return [ + e * Ix(t *= i), + u - e * Rx(t) + ] + } + var r = Ix(t), + i = (r + Ix(n)) / 2; + if (Px(i) < Tx) + return us(t); + var o = 1 + r * (2 * i - r), + u = Bx(o) / i; + return e.invert = function (t, n) { + var e = u - n; + return [ + Lx(t, Px(e)) / i * Yx(e), + Aa((o - (t * t + e * e) * i * i) / (2 * i)) + ] + }, + e + } + function cs(t) { + var n = t.length; + return { + point: function (e, r) { + for (var i = -1; ++i < n;) + t[i].point(e, r) + }, + sphere: function () { + for (var e = -1; ++e < n;) + t[e].sphere() + }, + lineStart: function () { + for (var e = -1; ++e < n;) + t[e].lineStart() + }, + lineEnd: function () { + for (var e = -1; ++e < n;) + t[e].lineEnd() + }, + polygonStart: function () { + for (var e = -1; ++e < n;) + t[e].polygonStart() + }, + polygonEnd: function () { + for (var e = -1; ++e < n;) + t[e].polygonEnd() + } + } + } + function ss(t) { + return function (n, e) { + var r = Rx(n), + i = Rx(e), + o = t(r * i); + return [ + o * i * Ix(n), + o * Ix(e) + ] + } + } + function fs(t) { + return function (n, e) { + var r = Bx(n * n + e * e), + i = t(r), + o = Ix(i), + u = Rx(i); + return [ + Lx(n * o, r * u), + Aa(r && e * o / r) + ] + } + } + function ls(t, n) { + return [ + t, + Ox(jx((Sx + n) / 2)) + ] + } + function hs(t) { + var n, + e = rs(t), + r = e.scale, + i = e.translate, + o = e.clipExtent; + return e.scale = function (t) { + return arguments.length + ? (r(t), n && e.clipExtent(null), e) + : r() + }, + e.translate = function (t) { + return arguments.length + ? (i(t), n && e.clipExtent(null), e) + : i() + }, + e.clipExtent = function (t) { + if (!arguments.length) + return n + ? null + : o(); + if (n = null == t) { + var u = kx * r(), + a = i(); + t = [ + [ + a[0] - u, + a[1] - u + ], + [ + a[0] + u, + a[1] + u + ] + ] + } + return o(t), + e + }, + e.clipExtent(null) + } + function ps(t) { + return jx((Sx + t) / 2) + } + function ds(t, n) { + function e(t, n) { + o > 0 + ? n < -Sx + Tx && (n = -Sx + Tx) + : n > Sx - Tx && (n = Sx - Tx); + var e = o / Fx(ps(n), i); + return [ + e * Ix(i * t), + o - e * Rx(i * t) + ] + } + var r = Rx(t), + i = t === n + ? Ix(t) + : Ox(r / Rx(n)) / Ox(ps(n) / ps(t)), + o = r * Fx(ps(t), i) / i; + return i + ? (e.invert = function (t, n) { + var e = o - n, + r = Yx(i) * Bx(t * t + e * e); + return [ + Lx(t, Px(e)) / i * Yx(e), + 2 * qx(Fx(o / r, 1 / i)) - Sx + ] + }, + e) + : ls + } + function vs(t, n) { + return [t, n] + } + function _s(t, n) { + function e(t, n) { + var e = o - n, + r = i * t; + return [ + e * Ix(r), + o - e * Rx(r) + ] + } + var r = Rx(t), + i = t === n + ? Ix(t) + : (r - Rx(n)) / (n - t), + o = r / i + t; + return Px(i) < Tx + ? vs + : (e.invert = function (t, n) { + var e = o - n; + return [ + Lx(t, Px(e)) / i * Yx(e), + o - Yx(i) * Bx(t * t + e * e) + ] + }, + e) + } + function ys(t, n) { + var e = Rx(n), + r = Rx(t) * e; + return [ + e * Ix(t) / r, + Ix(n) / r + ] + } + function gs(t, n, e) { + return 1 === t && 0 === n && 0 === e + ? zb + : Jc({ + point: function (r, i) { + this + .stream + .point(r * t + n, i * t + e) + } + }) + } + function ms(t, n) { + return [ + Rx(n) * Ix(t), + Ix(n) + ] + } + function xs(t, n) { + var e = Rx(n), + r = 1 + Rx(t) * e; + return [ + e * Ix(t) / r, + Ix(n) / r + ] + } + function bs(t, n) { + return [ + Ox(jx((Sx + n) / 2)), -t + ] + } + var ws = "4.3.0", + Ms = function (t, n) { + return t < n + ? -1 + : t > n + ? 1 + : t >= n + ? 0 + : NaN + }, + Ts = function (t) { + return 1 === t.length && (t = n(t)), { + left: function (n, e, r, i) { + for (null == r && (r = 0), null == i && (i = n.length); r < i;) { + var o = r + i >>> 1; + t(n[o], e) < 0 + ? r = o + 1 + : i = o + } + return r + }, + right: function (n, e, r, i) { + for (null == r && (r = 0), null == i && (i = n.length); r < i;) { + var o = r + i >>> 1; + t(n[o], e) > 0 + ? i = o + : r = o + 1 + } + return r + } + } + }, + Ns = Ts(Ms), + ks = Ns.right, + Ss = Ns.left, + As = function (t, n) { + return n < t + ? -1 + : n > t + ? 1 + : n >= t + ? 0 + : NaN + }, + Es = function (t) { + return null === t + ? NaN :+ t + }, + Cs = function (t, n) { + var e, + r, + i = t.length, + o = 0, + u = 0, + a = -1, + c = 0; + if (null == n) + for (; ++a < i;) + isNaN(e = Es(t[a])) || (r = e - o, o += r / ++c, u += r * (e - o)); + else + for (; ++a < i;) + isNaN(e = Es(n(t[a], a, t))) || (r = e - o, o += r / ++c, u += r * (e - o)); + if (c > 1) + return u / (c - 1) + }, + zs = function (t, n) { + var e = Cs(t, n); + return e + ? Math.sqrt(e) + : e + }, + Ps = function (t, n) { + var e, + r, + i, + o = -1, + u = t.length; + if (null == n) { + for (; ++o < u;) + if (null != (r = t[o]) && r >= r) { + e = i = r; + break + } + for (; ++o < u;) + null != (r = t[o]) && (e > r && (e = r), i < r && (i = r)) + } else { + for (; ++o < u;) + if (null != (r = n(t[o], o, t)) && r >= r) { + e = i = r; + break + } + for (; ++o < u;) + null != (r = n(t[o], o, t)) && (e > r && (e = r), i < r && (i = r)) + } + return [e, i] + }, + qs = Array.prototype, + Ls = qs.slice, + Rs = qs.map, + Us = function (t) { + return function () { + return t + } + }, + Ds = function (t) { + return t + }, + Os = function (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 + }, + Fs = Math.sqrt(50), + Is = Math.sqrt(10), + Ys = Math.sqrt(2), + Bs = function (t, n, r) { + var i = e(t, n, r); + return Os(Math.ceil(t / i) * i, Math.floor(n / i) * i + i / 2, i) + }, + js = function (t) { + return Math.ceil(Math.log(t.length) / Math.LN2) + 1 + }, + Hs = function () { + function t(t) { + var i, + o, + u = t.length, + a = new Array(u); + for (i = 0; i < u; ++i) + a[i] = n(t[i], i, t); + var c = e(a), + s = c[0], + f = c[1], + l = r(a, s, f); + Array.isArray(l) || (l = Bs(s, f, l)); + for (var h = l.length; l[0] <= s;) + l.shift(), + --h; + for (; l[h - 1] >= f;) + l.pop(), + --h; + var p, + d = new Array(h + 1); + for (i = 0; i <= h; ++i) + p = d[i] = [], + p.x0 = i > 0 + ? l[i - 1] + : s, + p.x1 = i < h + ? l[i] + : f; + for (i = 0; i < u; ++i) + o = a[i], + s <= o && o <= f && d[ks(l, o, 0, h)].push(t[i]); + return d + } + var n = Ds, + e = Ps, + r = js; + return t.value = function (e) { + return arguments.length + ? (n = "function" == typeof e + ? e + : Us(e), t) + : n + }, + t.domain = function (n) { + return arguments.length + ? (e = "function" == typeof n + ? n + : Us([n[0], n[1]]), t) + : e + }, + t.thresholds = function (n) { + return arguments.length + ? (r = "function" == typeof n + ? n + : Us(Array.isArray(n) + ? Ls.call(n) + : n), t) + : r + }, + t + }, + Xs = function (t, n, e) { + if (null == e && (e = Es), r = t.length) { + if ((n =+ 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, + o = Math.floor(i), + u =+ e(t[o], o, t), + a =+ e(t[o + 1], o + 1, t); + return u + (a - u) * (i - o) + } + }, + Vs = function (t, n, e) { + return t = Rs + .call(t, Es) + .sort(Ms), + Math.ceil((e - n) / (2 * (Xs(t, .75) - Xs(t, .25)) * Math.pow(t.length, -1 / 3))) + }, + Ws = function (t, n, e) { + return Math.ceil((e - n) / (3.5 * zs(t) * Math.pow(t.length, -1 / 3))) + }, + $s = function (t, n) { + var e, + r, + i = -1, + o = t.length; + if (null == n) { + for (; ++i < o;) + if (null != (r = t[i]) && r >= r) { + e = r; + break + } + for (; ++i < o;) + null != (r = t[i]) && r > e && (e = r) + } else { + for (; ++i < o;) + if (null != (r = n(t[i], i, t)) && r >= r) { + e = r; + break + } + for (; ++i < o;) + null != (r = n(t[i], i, t)) && r > e && (e = r) + } + return e + }, + Zs = function (t, n) { + var e, + r = 0, + i = t.length, + o = -1, + u = i; + if (null == n) + for (; ++o < i;) + isNaN(e = Es(t[o])) + ? --u + : r += e; + else + for (; ++o < i;) + isNaN(e = Es(n(t[o], o, t))) + ? --u + : r += e; + if (u) + return r / u + }, + Gs = function (t, n) { + var e, + r = [], + i = t.length, + o = -1; + if (null == n) + for (; ++o < i;) + isNaN(e = Es(t[o])) || r.push(e); + else + for (; ++o < i;) + isNaN(e = Es(n(t[o], o, t))) || r.push(e); + return Xs(r.sort(Ms), .5) + }, + Js = function (t) { + for (var n, e, r, i = t.length, o = -1, u = 0; ++o < i;) + u += t[o].length; + for (e = new Array(u); --i >= 0;) + for (r = t[i], n = r.length; --n >= 0;) + e[--u] = r[n]; + return e + }, + Qs = function (t, n) { + var e, + r, + i = -1, + o = t.length; + if (null == n) { + for (; ++i < o;) + if (null != (r = t[i]) && r >= r) { + e = r; + break + } + for (; ++i < o;) + null != (r = t[i]) && e > r && (e = r) + } else { + for (; ++i < o;) + if (null != (r = n(t[i], i, t)) && r >= r) { + e = r; + break + } + for (; ++i < o;) + null != (r = n(t[i], i, t)) && e > r && (e = r) + } + return e + }, + Ks = function (t) { + for (var n = 0, e = t.length - 1, r = t[0], i = new Array(e < 0 + ? 0 + : e); n < e;) + i[n] = [ + r, r = t[++n] + ]; + return i + }, + tf = function (t, n) { + for (var e = n.length, r = new Array(e); e--;) + r[e] = t[n[e]]; + return r + }, + nf = function (t, n) { + if (e = t.length) { + var e, + r, + i = 0, + o = 0, + u = t[o]; + for (n || (n = Ms); ++i < e;) + (n(r = t[i], u) < 0 || 0 !== n(u, u)) && (u = r, o = i); + return 0 === n(u, u) + ? o + : void 0 + } + }, + ef = function (t, n, e) { + for (var r, i, o = (null == e + ? t.length + : e) - (n = null == n + ? 0 :+ n); o;) + i = Math.random() * o-- | 0, + r = t[o + n], + t[o + n] = t[i + n], + t[i + n] = r; + return t + }, + rf = function (t, n) { + var e, + r = 0, + i = t.length, + o = -1; + if (null == n) + for (; ++o < i;) + (e =+ t[o]) && (r += e); + else + for (; ++o < i;) + (e =+ n(t[o], o, t)) && (r += e); + return r + }, + of = function (t) { + if (!(o = t.length)) + return []; + for (var n = -1, e = Qs(t, r), i = new Array(e); ++n < e;) + for (var o, u = -1, a = i[n] = new Array(o); ++u < o;) + a[u] = t[u][n]; + return i + }, + uf = function () { + return of(arguments) + }, + af = "$"; + i.prototype = o.prototype = { + constructor: i, + has: function (t) { + return af + t in this + }, + get: function (t) { + return this[af + t] + }, + set: function (t, n) { + return this[af + t] = n, + this + }, + remove: function (t) { + var n = af + t; + return n in this && delete this[n] + }, + clear: function () { + for (var t in this) + t[0] === af && delete this[t] + }, + keys: function () { + var t = []; + for (var n in this) + n[0] === af && t.push(n.slice(1)); + return t + }, + values: function () { + var t = []; + for (var n in this) + n[0] === af && t.push(this[n]); + return t + }, + entries: function () { + var t = []; + for (var n in this) + n[0] === af && t.push({ + key: n.slice(1), + value: this[n] + }); + return t + }, + size: function () { + var t = 0; + for (var n in this) + n[0] === af && ++t; + return t + }, + empty: function () { + for (var t in this) + if (t[0] === af) + return !1; + return !0 + }, + each: function (t) { + for (var n in this) + n[0] === af && t(this[n], n.slice(1), this) + } + }; + var cf = function () { + function t(n, i, u, a) { + if (i >= f.length) + return null != r + ? r(n) + : null != e + ? n.sort(e) + : n; + for (var c, s, l, h = -1, p = n.length, d = f[i++], v = o(), _ = u(); ++h < p;) + (l = v.get(c = d(s = n[h]) + "")) + ? l.push(s) + : v.set(c, [s]); + return v.each(function (n, e) { + a(_, e, t(n, i, u, a)) + }), + _ + } + function n(t, e) { + if (++e > f.length) + return t; + var i, + o = l[e - 1]; + return null != r && e >= f.length + ? i = t.entries() + : (i = [], t.each(function (t, r) { + i.push({ + key: r, + values: n(t, e) + }) + })), + null != o + ? i.sort(function (t, n) { + return o(t.key, n.key) + }) + : i + } + var e, + r, + i, + f = [], + l = []; + return i = { + object: function (n) { + return t(n, 0, u, a) + }, + map: function (n) { + return t(n, 0, c, s) + }, + entries: function (e) { + return n(t(e, 0, c, s), 0) + }, + key: function (t) { + return f.push(t), + i + }, + sortKeys: function (t) { + return l[f.length - 1] = t, + i + }, + sortValues: function (t) { + return e = t, + i + }, + rollup: function (t) { + return r = t, + i + } + } + }, + sf = o.prototype; + f.prototype = l.prototype = { + constructor: f, + has: sf.has, + add: function (t) { + return t += "", + this[af + t] = t, + this + }, + remove: sf.remove, + clear: sf.clear, + values: sf.keys, + size: sf.size, + empty: sf.empty, + each: sf.each + }; + var ff = function (t) { + var n = []; + for (var e in t) + n.push(e); + return n + }, + lf = function (t) { + var n = []; + for (var e in t) + n.push(t[e]); + return n + }, + hf = function (t) { + var n = []; + for (var e in t) + n.push({key: e, value: t[e]}); + return n + }, + pf = function (t, n) { + return t = null == t + ? 0 :+ t, + n = null == n + ? 1 :+ n, + 1 === arguments.length + ? (n = t, t = 0) + : n -= t, + function () { + return Math.random() * n + t + } + }, + df = function (t, n) { + var e, + r; + return t = null == t + ? 0 :+ t, + n = null == n + ? 1 :+ n, + function () { + var i; + if (null != e) + i = e, + e = null; + else + do + e = 2 * Math.random() - 1, + i = 2 * Math.random() - 1, + r = e * e + i * i; + while (!r || r > 1) + ; + return t + n * i * Math.sqrt(-2 * Math.log(r) / r) + } + }, + vf = function () { + var t = df.apply(this, arguments); + return function () { + return Math.exp(t()) + } + }, + _f = function (t) { + return function () { + for (var n = 0, e = 0; e < t; ++e) + n += Math.random(); + return n + } + }, + yf = function (t) { + var n = _f(t); + return function () { + return n() / t + } + }, + gf = function (t) { + return function () { + return -Math.log(1 - Math.random()) / t + } + }, + mf = 3, + xf = function t(n) { + function e(t) { + return Math.pow(t, n) + } + return n =+ n, + e.exponent = t, + e + }(mf), + bf = function t(n) { + function e(t) { + return 1 - Math.pow(1 - t, n) + } + return n =+ n, + e.exponent = t, + e + }(mf), + wf = 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 + }(mf), + Mf = Math.PI, + Tf = Mf / 2, + Nf = 4 / 11, + kf = 6 / 11, + Sf = 8 / 11, + Af = .75, + Ef = 9 / 11, + Cf = 10 / 11, + zf = .9375, + Pf = 21 / 22, + qf = 63 / 64, + Lf = 1 / Nf / Nf, + Rf = 1.70158, + Uf = function t(n) { + function e(t) { + return t * t * ((n + 1) * t - n) + } + return n =+ n, + e.overshoot = t, + e + }(Rf), + Df = function t(n) { + function e(t) { + return-- t * t * ((n + 1) * t + n) + 1 + } + return n =+ n, + e.overshoot = t, + e + }(Rf), + Of = 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 + }(Rf), + Ff = 2 * Math.PI, + If = 1, + Yf = .3, + Bf = function t(n, e) { + function r(t) { + return n * Math.pow(2, 10 * --t) * Math.sin((i - t) / e) + } + var i = Math.asin(1 / (n = Math.max(1, n))) * (e /= Ff); + return r.amplitude = function (n) { + return t(n, e * Ff) + }, + r.period = function (e) { + return t(n, e) + }, + r + }(If, Yf), + jf = function t(n, e) { + function r(t) { + return 1 - n * Math.pow(2, -10 * (t =+ t)) * Math.sin((t + i) / e) + } + var i = Math.asin(1 / (n = Math.max(1, n))) * (e /= Ff); + return r.amplitude = function (n) { + return t(n, e * Ff) + }, + r.period = function (e) { + return t(n, e) + }, + r + }(If, Yf), + Hf = function t(n, e) { + function r(t) { + return ((t = 2 * t - 1) < 0 + ? n * Math.pow(2, 10 * t) * Math.sin((i - t) / e) + : 2 - n * Math.pow(2, -10 * t) * Math.sin((i + t) / e)) / 2 + } + var i = Math.asin(1 / (n = Math.max(1, n))) * (e /= Ff); + return r.amplitude = function (n) { + return t(n, e * Ff) + }, + r.period = function (e) { + return t(n, e) + }, + r + }(If, Yf), + Xf = 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 + }, + Vf = function (t) { + for (var n, e, r = -1, i = t.length, o = 0, u = 0, a = t[i - 1], c = 0; ++r < i;) + n = a, + a = t[r], + c += e = n[0] * a[1] - a[0] * n[1], + o += (n[0] + a[0]) * e, + u += (n[1] + a[1]) * e; + return c *= 3, + [ + o / c, + u / c + ] + }, + Wf = function (t, n, e) { + return (n[0] - t[0]) * (e[1] - t[1]) - (n[1] - t[1]) * (e[0] - t[0]) + }, + $f = 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(z), n = 0; n < e; ++n) + i[n] = [ + r[n][0], -r[n][1] + ]; + var o = P(r), + u = P(i), + a = u[0] === o[0], + c = u[u.length - 1] === o[o.length - 1], + s = []; + for (n = o.length - 1; n >= 0; --n) + s.push(t[r[o[n]][2]]); + for (n =+ a; n < u.length - c; ++n) + s.push(t[r[u[n]][2]]); + return s + }, + Zf = function (t, n) { + for (var e, r, i = t.length, o = t[i - 1], u = n[0], a = n[1], c = o[0], s = o[1], f = !1, l = 0; l < i; ++l) + o = t[l], + e = o[0], + r = o[1], + r > a != s > a && u < (c - e) * (a - r) / (s - r) + e && (f = !f), + c = e, + s = r; + return f + }, + Gf = function (t) { + for (var n, e, r = -1, i = t.length, o = t[i - 1], u = o[0], a = o[1], c = 0; ++r < i;) + n = u, + e = a, + o = t[r], + u = o[0], + a = o[1], + n -= u, + e -= a, + c += Math.sqrt(n * n + e * e); + return c + }, + Jf = Math.PI, + Qf = 2 * Jf, + Kf = 1e-6, + tl = Qf - Kf; + q.prototype = L.prototype = { + constructor: q, + moveTo: function (t, n) { + this + ._ + .push("M", this._x0 = this._x1 =+ t, ",", this._y0 = this._y1 =+ n) + }, + closePath: function () { + null !== this._x1 && (this._x1 = this._x0, this._y1 = this._y0, this._.push("Z")) + }, + lineTo: function (t, n) { + this + ._ + .push("L", this._x1 =+ t, ",", this._y1 =+ n) + }, + quadraticCurveTo: function (t, n, e, r) { + this + ._ + .push("Q", + t, ",", + n, ",", this._x1 =+ e, ",", this._y1 =+ r) + }, + bezierCurveTo: function (t, n, e, r, i, o) { + this + ._ + .push("C", + t, ",", + n, ",", + e, ",", + r, ",", this._x1 =+ i, ",", this._y1 =+ o) + }, + arcTo: function (t, n, e, r, i) { + t =+ t, + n =+ n, + e =+ e, + r =+ r, + i =+ i; + var o = this._x1, + u = this._y1, + a = e - t, + c = r - n, + s = o - t, + f = u - n, + l = s * s + f * f; + if (i < 0) + throw new Error("negative radius: " + i); + if (null === this._x1) + this._.push("M", this._x1 = t, ",", this._y1 = n); + else if (l > Kf) + if (Math.abs(f * a - c * s) > Kf && i) { + var h = e - o, + p = r - u, + d = a * a + c * c, + v = h * h + p * p, + _ = Math.sqrt(d), + y = Math.sqrt(l), + g = i * Math.tan((Jf - Math.acos((d + l - v) / (2 * _ * y))) / 2), + m = g / y, + x = g / _; + Math.abs(m - 1) > Kf && this + ._ + .push("L", t + m * s, ",", n + m * f), + this + ._ + .push("A", i, ",", i, ",0,0,", + (f * h > s * p), ",", this._x1 = t + x * a, ",", this._y1 = n + x * c) + } else + this + ._ + .push("L", this._x1 = t, ",", this._y1 = n); + else ; + } + , + arc: function (t, n, e, r, i, o) { + t =+ t, + n =+ n, + e =+ e; + var u = e * Math.cos(r), + a = e * Math.sin(r), + c = t + u, + s = n + a, + f = 1 ^ o, + l = o + ? r - i + : i - r; + if (e < 0) + throw new Error("negative radius: " + e); + null === this._x1 + ? this + ._ + .push("M", c, ",", s) + : (Math.abs(this._x1 - c) > Kf || Math.abs(this._y1 - s) > Kf) && this + ._ + .push("L", c, ",", s), + e && (l > tl + ? this._.push("A", e, ",", e, ",0,1,", f, ",", t - u, ",", n - a, "A", e, ",", e, ",0,1,", f, ",", this._x1 = c, ",", this._y1 = s) + : (l < 0 && (l = l % Qf + Qf), this._.push("A", e, ",", e, ",0,", + (l >= Jf), ",", f, ",", this._x1 = t + e * Math.cos(i), ",", this._y1 = n + e * Math.sin(i)))) + }, + rect: function (t, n, e, r) { + this + ._ + .push("M", this._x0 = this._x1 =+ t, ",", this._y0 = this._y1 =+ n, "h", + e, "v", + r, "h", -e, "Z") + }, + toString: function () { + return this + ._ + .join("") + } + }; + var nl = function (t) { + var n =+ this + ._x + .call(null, t), + e =+ this + ._y + .call(null, t); + return R(this.cover(n, e), n, e, t) + }, + el = 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 { + if (!(e > t || t > i || r > n || n > o)) + return this; + var u, + a, + c = i - e, + s = this._root; + switch (a = (n < (r + o) / 2) << 1 | t < (e + i) / 2) { + case 0: + do + u = new Array(4), + u[a] = s, + s = u; + while (c *= 2, i = e + c, o = r + c, t > i || n > o); + break; + case 1: + do + u = new Array(4), + u[a] = s, + s = u; + while (c *= 2, e = i - c, o = r + c, e > t || n > o); + break; + case 2: + do + u = new Array(4), + u[a] = s, + s = u; + while (c *= 2, i = e + c, r = o - c, t > i || r > n); + break; + case 3: + do + u = new Array(4), + u[a] = s, + s = u; + while (c *= 2, e = i - c, r = o - c, e > t || r > n) + } + this._root && this._root.length && (this._root = s) + } + return this._x0 = e, + this._y0 = r, + this._x1 = i, + this._y1 = o, + this + }, + rl = function () { + var t = []; + return this.visit(function (n) { + if (!n.length) + do + t.push(n.data); + while (n = n.next) + } + ), + t + }, + il = 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] + ] + }, + ol = function (t, n, e, r, i) { + this.node = t, + this.x0 = n, + this.y0 = e, + this.x1 = r, + this.y1 = i + }, + ul = function (t, n, e) { + var r, + i, + o, + u, + a, + c, + s, + f = this._x0, + l = this._y0, + h = this._x1, + p = this._y1, + d = [], + v = this._root; + for (v && d.push(new ol(v, f, l, h, p)), null == e + ? e = 1 / 0 + : (f = t - e, l = n - e, h = t + e, p = n + e, e *= e); c = d.pop();) + if (!(!(v = c.node) || (i = c.x0) > h || (o = c.y0) > p || (u = c.x1) < f || (a = c.y1) < l)) + if (v.length) { + var _ = (i + u) / 2, + y = (o + a) / 2; + d.push(new ol(v[3], _, y, u, a), new ol(v[2], i, y, _, a), new ol(v[1], _, o, u, y), new ol(v[0], i, o, _, y)), + (s = (n >= y) << 1 | t >= _) && (c = d[d.length - 1], d[d.length - 1] = d[d.length - 1 - s], d[d.length - 1 - s] = c) + } + else { + var g = t - + this + ._x + .call(null, v.data), + m = n - + this + ._y + .call(null, v.data), + x = g * g + m * m; + if (x < e) { + var b = Math.sqrt(e = x); + f = t - b, + l = n - b, + h = t + b, + p = n + b, + r = v.data + } + } + return r + }, + al = function (t) { + if (isNaN(o =+ this._x.call(null, t)) || isNaN(u =+ this._y.call(null, t))) + return this; + var n, + e, + r, + i, + o, + u, + a, + c, + s, + f, + l, + h, + p = this._root, + d = this._x0, + v = this._y0, + _ = this._x1, + y = this._y1; + if (!p) + return this; + if (p.length) + for (;;) { + if ((s = o >= (a = (d + _) / 2)) + ? d = a + : _ = a, (f = u >= (c = (v + y) / 2)) + ? v = c + : y = c, n = p, !(p = p[l = f << 1 | s])) + return this; + if (!p.length) + break; + + (n[l + 1 & 3] || n[l + 2 & 3] || n[l + 3 & 3]) && (e = n, h = l) + } + for (; p.data !== t;) + if (r = p, !(p = p.next)) + return this; + return (i = p.next) && delete p.next, + r + ? (i + ? r.next = i + : delete r.next, this) + : n + ? (i + ? n[l] = i + : delete n[l], (p = n[0] || n[1] || n[2] || n[3]) && p === (n[3] || n[2] || n[1] || n[0]) && !p.length && (e + ? e[h] = p + : this._root = p), this) + : (this._root = i, this) + }, + cl = function () { + return this._root + }, + sl = function () { + var t = 0; + return this.visit(function (n) { + if (!n.length) + do + ++t; + while (n = n.next) + } + ), + t + }, + fl = function (t) { + var n, + e, + r, + i, + o, + u, + a = [], + c = this._root; + for (c && a.push(new ol(c, this._x0, this._y0, this._x1, this._y1)); n = a.pop();) + if (!t(c = n.node, r = n.x0, i = n.y0, o = n.x1, u = n.y1) && c.length) { + var s = (r + o) / 2, + f = (i + u) / 2; + (e = c[3]) && a.push(new ol(e, s, f, o, u)), + (e = c[2]) && a.push(new ol(e, r, f, s, u)), + (e = c[1]) && a.push(new ol(e, s, i, o, f)), + (e = c[0]) && a.push(new ol(e, r, i, s, f)) + } + return this + }, + ll = function (t) { + var n, + e = [], + r = []; + for (this._root && e.push(new ol(this._root, this._x0, this._y0, this._x1, this._y1)); n = e.pop();) { + var i = n.node; + if (i.length) { + var o, + u = n.x0, + a = n.y0, + c = n.x1, + s = n.y1, + f = (u + c) / 2, + l = (a + s) / 2; + (o = i[0]) && e.push(new ol(o, u, a, f, l)), + (o = i[1]) && e.push(new ol(o, f, a, c, l)), + (o = i[2]) && e.push(new ol(o, u, l, f, s)), + (o = i[3]) && e.push(new ol(o, f, l, c, s)) + } + r.push(n) + } + for (; n = r.pop();) + t(n.node, n.x0, n.y0, n.x1, n.y1); + return this + }, + hl = function (t) { + return arguments.length + ? (this._x = t, this) + : this._x + }, + pl = function (t) { + return arguments.length + ? (this._y = t, this) + : this._y + }, + dl = I.prototype = Y.prototype; + dl.copy = function () { + var t, + n, + e = new Y(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 = B(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] = B(n)); + return e + }, + dl.add = nl, + dl.addAll = U, + dl.cover = el, + dl.data = rl, + dl.extent = il, + dl.find = ul, + dl.remove = al, + dl.removeAll = D, + dl.root = cl, + dl.size = sl, + dl.visit = fl, + dl.visitAfter = ll, + dl.x = hl, + dl.y = pl; + var vl = [].slice, + _l = {}; + j.prototype = Z.prototype = { + constructor: j, + defer: function (t) { + if ("function" != typeof t || this._call) + throw new Error; + if (null != this._error) + return this; + var n = vl.call(arguments, 1); + return n.push(t), + ++this._waiting, + this + ._tasks + .push(n), + H(this), + this + }, + abort: function () { + return null == this._error && W(this, new Error("abort")), + this + }, + await: function (t) { + if ("function" != typeof t || this._call) + throw new Error; + return this._call = function (n, e) { + t.apply(null, [n].concat(e)) + }, + $(this), + this + }, + awaitAll: function (t) { + if ("function" != typeof t || this._call) + throw new Error; + return this._call = t, + $(this), + this + } + }; + var yl = function (t) { + return function () { + return t + } + }, + gl = 1e-12, + ml = Math.PI, + xl = ml / 2, + bl = 2 * ml, + wl = function () { + function t() { + var t, + s, + f =+ n.apply(this, arguments), + l =+ e.apply(this, arguments), + h = o.apply(this, arguments) - xl, + p = u.apply(this, arguments) - xl, + d = Math.abs(p - h), + v = p > h; + if (c || (c = t = L()), l < f && (s = l, l = f, f = s), l > gl) + if (d > bl - gl) + c.moveTo(l * Math.cos(h), l * Math.sin(h)), + c.arc(0, 0, l, h, p, !v), + f > gl && (c.moveTo(f * Math.cos(p), f * Math.sin(p)), c.arc(0, 0, f, p, h, v)); + else { + var _, + y, + g = h, + m = p, + x = h, + b = p, + w = d, + M = d, + T = a.apply(this, arguments) / 2, + N = T > gl && (i ?+ i.apply(this, arguments) : Math.sqrt(f * f + l * l)), + k = Math.min(Math.abs(l - f) / 2, + r.apply(this, arguments)), + S = k, + A = k; + if (N > gl) { + var E = nt(N / f * Math.sin(T)), + C = nt(N / l * Math.sin(T)); + (w -= 2 * E) > gl + ? (E *= v + ? 1 + : -1, x += E, b -= E) + : (w = 0, x = b = (h + p) / 2), + (M -= 2 * C) > gl + ? (C *= v + ? 1 + : -1, g += C, m -= C) + : (M = 0, g = m = (h + p) / 2) + } + var z = l * Math.cos(g), + P = l * Math.sin(g), + q = f * Math.cos(b), + R = f * Math.sin(b); + if (k > gl) { + var U = l * Math.cos(m), + D = l * Math.sin(m), + O = f * Math.cos(x), + F = f * Math.sin(x); + if (d < ml) { + var I = w > gl + ? et(z, P, O, F, U, D, q, R) + : [ + q, R + ], + Y = z - I[0], + B = P - I[1], + j = U - I[0], + H = D - I[1], + X = 1 / Math.sin(Math.acos((Y * j + B * H) / (Math.sqrt(Y * Y + B * B) * Math.sqrt(j * j + H * H))) / 2), + V = Math.sqrt(I[0] * I[0] + I[1] * I[1]); + S = Math.min(k, (f - V) / (X - 1)), + A = Math.min(k, (l - V) / (X + 1)) + } + } + M > gl + ? A > gl + ? (_ = rt(O, F, z, P, l, A, v), y = rt(U, D, q, R, l, A, v), c.moveTo(_.cx + _.x01, _.cy + _.y01), A < k + ? c.arc(_.cx, _.cy, A, Math.atan2(_.y01, _.x01), Math.atan2(y.y01, y.x01), !v) + : (c.arc(_.cx, _.cy, A, Math.atan2(_.y01, _.x01), Math.atan2(_.y11, _.x11), !v), c.arc(0, 0, l, Math.atan2(_.cy + _.y11, _.cx + _.x11), Math.atan2(y.cy + y.y11, y.cx + y.x11), !v), c.arc(y.cx, y.cy, A, Math.atan2(y.y11, y.x11), Math.atan2(y.y01, y.x01), !v))) + : (c.moveTo(z, P), c.arc(0, 0, l, g, m, !v)) + : c.moveTo(z, P), + f > gl && w > gl + ? S > gl + ? (_ = rt(q, R, U, D, f, -S, v), y = rt(z, P, O, F, f, -S, v), c.lineTo(_.cx + _.x01, _.cy + _.y01), S < k + ? c.arc(_.cx, _.cy, S, Math.atan2(_.y01, _.x01), Math.atan2(y.y01, y.x01), !v) + : (c.arc(_.cx, _.cy, S, Math.atan2(_.y01, _.x01), Math.atan2(_.y11, _.x11), !v), c.arc(0, 0, f, Math.atan2(_.cy + _.y11, _.cx + _.x11), Math.atan2(y.cy + y.y11, y.cx + y.x11), v), c.arc(y.cx, y.cy, S, Math.atan2(y.y11, y.x11), Math.atan2(y.y01, y.x01), !v))) + : c.arc(0, 0, f, b, x, v) + : c.lineTo(q, R) + } + else + c.moveTo(0, 0); + if (c.closePath(), t) + return c = null, + t + "" || null + } + var n = G, + e = J, + r = yl(0), + i = null, + o = Q, + u = K, + a = tt, + c = null; + return t.centroid = function () { + var t = (+ n.apply(this, arguments) + + e.apply(this, arguments)) / 2, + r = (+ o.apply(this, arguments) + + u.apply(this, arguments)) / 2 - ml / 2; + return [ + Math.cos(r) * t, + Math.sin(r) * t + ] + }, + t.innerRadius = function (e) { + return arguments.length + ? (n = "function" == typeof e + ? e + : yl(+ e), t) + : n + }, + t.outerRadius = function (n) { + return arguments.length + ? (e = "function" == typeof n + ? n + : yl(+ n), t) + : e + }, + t.cornerRadius = function (n) { + return arguments.length + ? (r = "function" == typeof n + ? n + : yl(+ n), t) + : r + }, + t.padRadius = function (n) { + return arguments.length + ? (i = null == n + ? null + : "function" == typeof n + ? n + : yl(+ n), t) + : i + }, + t.startAngle = function (n) { + return arguments.length + ? (o = "function" == typeof n + ? n + : yl(+ n), t) + : o + }, + t.endAngle = function (n) { + return arguments.length + ? (u = "function" == typeof n + ? n + : yl(+ n), t) + : u + }, + t.padAngle = function (n) { + return arguments.length + ? (a = "function" == typeof n + ? n + : yl(+ n), t) + : a + }, + t.context = function (n) { + return arguments.length + ? (c = null == n + ? null + : n, t) + : c + }, + t + }; + it.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 Ml = function (t) { + return new it(t) + }, + Tl = function () { + function t(t) { + var a, + c, + s, + f = t.length, + l = !1; + for (null == i && (u = o(s = L())), a = 0; a <= f; ++a) + !(a < f && r(c = t[a], a, t)) === l && ((l = !l) + ? u.lineStart() + : u.lineEnd()), + l && u.point(+ n(c, a, t), + e(c, a, t)); + if (s) + return u = null, + s + "" || null + } + var n = ot, + e = ut, + r = yl(!0), + i = null, + o = Ml, + u = null; + return t.x = function (e) { + return arguments.length + ? (n = "function" == typeof e + ? e + : yl(+ e), t) + : n + }, + t.y = function (n) { + return arguments.length + ? (e = "function" == typeof n + ? n + : yl(+ n), t) + : e + }, + t.defined = function (n) { + return arguments.length + ? (r = "function" == typeof n + ? n + : yl(!!n), t) + : r + }, + t.curve = function (n) { + return arguments.length + ? (o = n, null != i && (u = o(i)), t) + : o + }, + t.context = function (n) { + return arguments.length + ? (null == n + ? i = u = null + : u = o(i = n), t) + : i + }, + t + }, + Nl = function () { + function t(t) { + var n, + f, + l, + h, + p, + d = t.length, + v = !1, + _ = new Array(d), + y = new Array(d); + for (null == a && (s = c(p = L())), n = 0; n <= d; ++n) { + if (!(n < d && u(h = t[n], n, t)) === v) + if (v = !v) + f = n, + s.areaStart(), + s.lineStart(); + else { + for (s.lineEnd(), s.lineStart(), l = n - 1; l >= f; --l) + s.point(_[l], y[l]); + s.lineEnd(), + s.areaEnd() + } + v && (_[n] =+ e(h, n, t), y[n] =+ i(h, n, t), s.point(r ?+ r(h, n, t) : _[n], o ?+ o(h, n, t) : y[n])) + } + if (p) + return s = null, + p + "" || null + } + function n() { + return Tl() + .defined(u) + .curve(c) + .context(a) + } + var e = ot, + r = null, + i = yl(0), + o = ut, + u = yl(!0), + a = null, + c = Ml, + s = null; + return t.x = function (n) { + return arguments.length + ? (e = "function" == typeof n + ? n + : yl(+ n), r = null, t) + : e + }, + t.x0 = function (n) { + return arguments.length + ? (e = "function" == typeof n + ? n + : yl(+ n), t) + : e + }, + t.x1 = function (n) { + return arguments.length + ? (r = null == n + ? null + : "function" == typeof n + ? n + : yl(+ n), t) + : r + }, + t.y = function (n) { + return arguments.length + ? (i = "function" == typeof n + ? n + : yl(+ n), o = null, t) + : i + }, + t.y0 = function (n) { + return arguments.length + ? (i = "function" == typeof n + ? n + : yl(+ n), t) + : i + }, + t.y1 = function (n) { + return arguments.length + ? (o = null == n + ? null + : "function" == typeof n + ? n + : yl(+ n), t) + : o + }, + t.lineX0 = t.lineY0 = function () { + return n() + .x(e) + .y(i) + }, + t.lineY1 = function () { + return n() + .x(e) + .y(o) + }, + t.lineX1 = function () { + return n() + .x(r) + .y(i) + }, + t.defined = function (n) { + return arguments.length + ? (u = "function" == typeof n + ? n + : yl(!!n), t) + : u + }, + t.curve = function (n) { + return arguments.length + ? (c = n, null != a && (s = c(a)), t) + : c + }, + t.context = function (n) { + return arguments.length + ? (null == n + ? a = s = null + : s = c(a = n), t) + : a + }, + t + }, + kl = function (t, n) { + return n < t + ? -1 + : n > t + ? 1 + : n >= t + ? 0 + : NaN + }, + Sl = function (t) { + return t + }, + Al = function () { + function t(t) { + var a, + c, + s, + f, + l, + h = t.length, + p = 0, + d = new Array(h), + v = new Array(h), + _ =+ i.apply(this, arguments), + y = Math.min(bl, Math.max(-bl, o.apply(this, arguments) - _)), + g = Math.min(Math.abs(y) / h, u.apply(this, arguments)), + m = g * (y < 0 + ? -1 + : 1); + for (a = 0; a < h; ++a) + (l = v[d[a] = a] =+ n(t[a], a, t)) > 0 && (p += l); + for (null != e + ? d.sort(function (t, n) { + return e(v[t], v[n]) + }) + : null != r && d.sort(function (n, e) { + return r(t[n], t[e]) + }), a = 0, s = p + ? (y - h * m) / p + : 0; a < h; ++a, _ = f) + c = d[a], + l = v[c], + f = _ + (l > 0 + ? l * s + : 0) + m, + v[c] = { + data: t[c], + index: a, + value: l, + startAngle: _, + endAngle: f, + padAngle: g + }; + return v + } + var n = Sl, + e = kl, + r = null, + i = yl(0), + o = yl(bl), + u = yl(0); + return t.value = function (e) { + return arguments.length + ? (n = "function" == typeof e + ? e + : yl(+ e), t) + : n + }, + t.sortValues = function (n) { + return arguments.length + ? (e = n, r = null, t) + : e + }, + t.sort = function (n) { + return arguments.length + ? (r = n, e = null, t) + : r + }, + t.startAngle = function (n) { + return arguments.length + ? (i = "function" == typeof n + ? n + : yl(+ n), t) + : i + }, + t.endAngle = function (n) { + return arguments.length + ? (o = "function" == typeof n + ? n + : yl(+ n), t) + : o + }, + t.padAngle = function (n) { + return arguments.length + ? (u = "function" == typeof n + ? n + : yl(+ n), t) + : u + }, + t + }, + El = ct(Ml); + at.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)) + } + }; + var Cl = function () { + return st(Tl().curve(El)) + }, + zl = function () { + var t = Nl().curve(El), + 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 st(e()) + }, + delete t.lineX0, + t.lineEndAngle = function () { + return st(r()) + }, + delete t.lineX1, + t.lineInnerRadius = function () { + return st(i()) + }, + delete t.lineY0, + t.lineOuterRadius = function () { + return st(o()) + }, + delete t.lineY1, + t.curve = function (t) { + return arguments.length + ? n(ct(t)) + : n()._curve + }, + t + }, + Pl = { + draw: function (t, n) { + var e = Math.sqrt(n / ml); + t.moveTo(e, 0), + t.arc(0, 0, e, 0, bl) + } + }, + ql = { + draw: function (t, n) { + var e = Math.sqrt(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() + } + }, + Ll = Math.sqrt(1 / 3), + Rl = 2 * Ll, + Ul = { + draw: function (t, n) { + var e = Math.sqrt(n / Rl), + r = e * Ll; + t.moveTo(0, -e), + t.lineTo(r, 0), + t.lineTo(0, e), + t.lineTo(-r, 0), + t.closePath() + } + }, + Dl = .8908130915292852, + Ol = Math.sin(ml / 10) / Math.sin(7 * ml / 10), + Fl = Math.sin(bl / 10) * Ol, + Il = -Math.cos(bl / 10) * Ol, + Yl = { + draw: function (t, n) { + var e = Math.sqrt(n * Dl), + r = Fl * e, + i = Il * e; + t.moveTo(0, -e), + t.lineTo(r, i); + for (var o = 1; o < 5; ++o) { + var u = bl * o / 5, + a = Math.cos(u), + c = Math.sin(u); + t.lineTo(c * e, -a * e), + t.lineTo(a * r - c * i, c * r + a * i) + } + t.closePath() + } + }, + Bl = { + draw: function (t, n) { + var e = Math.sqrt(n), + r = -e / 2; + t.rect(r, r, e, e) + } + }, + jl = Math.sqrt(3), + Hl = { + draw: function (t, n) { + var e = -Math.sqrt(n / (3 * jl)); + t.moveTo(0, 2 * e), + t.lineTo(-jl * e, -e), + t.lineTo(jl * e, -e), + t.closePath() + } + }, + Xl = -.5, + Vl = Math.sqrt(3) / 2, + Wl = 1 / Math.sqrt(12), + $l = 3 * (Wl / 2 + 1), + Zl = { + draw: function (t, n) { + var e = Math.sqrt(n / $l), + r = e / 2, + i = e * Wl, + o = r, + u = e * Wl + e, + a = -o, + c = u; + t.moveTo(r, i), + t.lineTo(o, u), + t.lineTo(a, c), + t.lineTo(Xl * r - Vl * i, Vl * r + Xl * i), + t.lineTo(Xl * o - Vl * u, Vl * o + Xl * u), + t.lineTo(Xl * a - Vl * c, Vl * a + Xl * c), + t.lineTo(Xl * r + Vl * i, Xl * i - Vl * r), + t.lineTo(Xl * o + Vl * u, Xl * u - Vl * o), + t.lineTo(Xl * a + Vl * c, Xl * c - Vl * a), + t.closePath() + } + }, + Gl = [ + Pl, + ql, + Ul, + Bl, + Yl, + Hl, + Zl + ], + Jl = function () { + function t() { + var t; + if (r || (r = t = L()), n.apply(this, arguments).draw(r, + e.apply(this, arguments)), t) + return r = null, + t + "" || null + } + var n = yl(Pl), + e = yl(64), + r = null; + return t.type = function (e) { + return arguments.length + ? (n = "function" == typeof e + ? e + : yl(e), t) + : n + }, + t.size = function (n) { + return arguments.length + ? (e = "function" == typeof n + ? n + : yl(+ n), t) + : e + }, + t.context = function (n) { + return arguments.length + ? (r = null == n + ? null + : n, t) + : r + }, + t + }, + Ql = function () {}; + lt.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: + ft(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: + ft(this, t, n) + } + this._x0 = this._x1, + this._x1 = t, + this._y0 = this._y1, + this._y1 = n + } + }; + var Kl = function (t) { + return new lt(t) + }; + ht.prototype = { + areaStart: Ql, + areaEnd: Ql, + 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: + ft(this, t, n) + } + this._x0 = this._x1, + this._x1 = t, + this._y0 = this._y1, + this._y1 = n + } + }; + var th = function (t) { + return new ht(t) + }; + pt.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: + ft(this, t, n) + } + this._x0 = this._x1, + this._x1 = t, + this._y0 = this._y1, + this._y1 = n + } + }; + var nh = function (t) { + return new pt(t) + }; + dt.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], u = t[e] - i, a = n[e] - o, c = -1; ++c <= e;) + r = c / e, + this._basis.point(this._beta * t[c] + (1 - this._beta) * (i + r * u), this._beta * n[c] + (1 - this._beta) * (o + r * a)); + this._x = this._y = null, + this + ._basis + .lineEnd() + }, + point: function (t, n) { + this + ._x + .push(+ t), + this + ._y + .push(+ n) + } + }; + var eh = function t(n) { + function e(t) { + return 1 === n + ? new lt(t) + : new dt(t, n) + } + return e.beta = function (n) { + return t(+ n) + }, + e + }(.85); + _t.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: + vt(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: + vt(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 rh = function t(n) { + function e(t) { + return new _t(t, n) + } + return e.tension = function (n) { + return t(+ n) + }, + e + }(0); + yt.prototype = { + areaStart: Ql, + areaEnd: Ql, + 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: + vt(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 ih = function t(n) { + function e(t) { + return new yt(t, n) + } + return e.tension = function (n) { + return t(+ n) + }, + e + }(0); + gt.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: + vt(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 oh = function t(n) { + function e(t) { + return new gt(t, n) + } + return e.tension = function (n) { + return t(+ n) + }, + e + }(0); + xt.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: + mt(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 uh = function t(n) { + function e(t) { + return n + ? new xt(t, n) + : new _t(t, 0) + } + return e.alpha = function (n) { + return t(+ n) + }, + e + }(.5); + bt.prototype = { + areaStart: Ql, + areaEnd: Ql, + 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: + mt(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 ah = function t(n) { + function e(t) { + return n + ? new bt(t, n) + : new yt(t, 0) + } + return e.alpha = function (n) { + return t(+ n) + }, + e + }(.5); + wt.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: + mt(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 ch = function t(n) { + function e(t) { + return n + ? new wt(t, n) + : new gt(t, 0) + } + return e.alpha = function (n) { + return t(+ n) + }, + e + }(.5); + Mt.prototype = { + areaStart: Ql, + areaEnd: Ql, + 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)) + } + }; + var sh = function (t) { + return new Mt(t) + }; + At.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: + St(this, this._t0, kt(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 (t =+ t, n =+ n, 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, + St(this, kt(this, e = Nt(this, t, n)), e); + break; + default: + St(this, this._t0, e = Nt(this, t, n)) + } + this._x0 = this._x1, + this._x1 = t, + this._y0 = this._y1, + this._y1 = n, + this._t0 = e + } + } + }, + (Et.prototype = Object.create(At.prototype)).point = function (t, n) { + At + .prototype + .point + .call(this, n, t) + }, + Ct.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) + } + }, + qt.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 = Lt(t), i = Lt(n), o = 0, u = 1; u < e; ++o, ++u) + this._context.bezierCurveTo(r[0][o], i[0][o], r[1][o], i[1][o], t[u], n[u]); + (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) + } + }; + var fh = function (t) { + return new qt(t) + }; + Rt.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 lh = function (t) { + return new Rt(t, .5) + }, + hh = Array.prototype.slice, + ph = function (t, n) { + if ((r = t.length) > 1) + for (var e, r, i = 1, o = t[n[0]], u = o.length; i < r; ++i) { + e = o, + o = t[n[i]]; + for (var a = 0; a < u; ++a) + o[a][1] += o[a][0] = isNaN(e[a][1]) + ? e[a][0] + : e[a][1] + } + }, + dh = function (t) { + for (var n = t.length, e = new Array(n); --n >= 0;) + e[n] = n; + return e + }, + vh = function () { + function t(t) { + var o, + u, + a = n.apply(this, arguments), + c = t.length, + s = a.length, + f = new Array(s); + for (o = 0; o < s; ++o) { + for (var l, h = a[o], p = f[o] = new Array(c), d = 0; d < c; ++d) + p[d] = l = [ + 0, + i(t[d], h, d, t) + ], + l.data = t[d]; + p.key = h + } + for (o = 0, u = e(f); o < s; ++o) + f[u[o]].index = o; + return r(f, u), + f + } + var n = yl([]), + e = dh, + r = ph, + i = Ot; + return t.keys = function (e) { + return arguments.length + ? (n = "function" == typeof e + ? e + : yl(hh.call(e)), t) + : n + }, + t.value = function (n) { + return arguments.length + ? (i = "function" == typeof n + ? n + : yl(+ n), t) + : i + }, + t.order = function (n) { + return arguments.length + ? (e = null == n + ? dh + : "function" == typeof n + ? n + : yl(hh.call(n)), t) + : e + }, + t.offset = function (n) { + return arguments.length + ? (r = null == n + ? ph + : n, t) + : r + }, + t + }, + _h = function (t, n) { + if ((r = t.length) > 0) { + for (var e, r, i, o = 0, u = t[0].length; o < u; ++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 + } + ph(t, n) + } + }, + yh = 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 u = 0, a = 0; u < e; ++u) + a += t[u][r][1] || 0; + i[r][1] += i[r][0] = -a / 2 + } + ph(t, n) + } + }, + gh = function (t, n) { + if ((i = t.length) > 0 && (r = (e = t[n[0]]).length) > 0) { + for (var e, r, i, o = 0, u = 1; u < r; ++u) { + for (var a = 0, c = 0, s = 0; a < i; ++a) { + for (var f = t[n[a]], l = f[u][1] || 0, + h = f[u - 1][1] || 0, + p = (l - h) / 2, + d = 0; d < a; ++d) { + var v = t[n[d]], + _ = v[u][1] || 0, + y = v[u - 1][1] || 0; + p += _ - y + } + c += l, + s += p * l + } + e[u - 1][1] += e[u - 1][0] = o, + c && (o -= s / c) + } + e[u - 1][1] += e[u - 1][0] = o, + ph(t, n) + } + }, + mh = function (t) { + var n = t.map(Ft); + return dh(t).sort(function (t, e) { + return n[t] - n[e] + }) + }, + xh = function (t) { + return mh(t).reverse() + }, + bh = function (t) { + var n, + e, + r = t.length, + i = t.map(Ft), + o = dh(t).sort(function (t, n) { + return i[n] - i[t] + }), + u = 0, + a = 0, + c = [], + s = []; + for (n = 0; n < r; ++n) + e = o[n], + u < a + ? (u += i[e], c.push(e)) + : (a += i[e], s.push(e)); + return s + .reverse() + .concat(c) + }, + wh = function (t) { + return dh(t).reverse() + }, + Mh = function (t, n, e) { + t.prototype = n.prototype = e, + e.constructor = t + }, + Th = .7, + Nh = 1 / Th, + kh = /^#([0-9a-f]{3})$/, + Sh = /^#([0-9a-f]{6})$/, + Ah = /^rgb\(\s*([-+]?\d+)\s*,\s*([-+]?\d+)\s*,\s*([-+]?\d+)\s*\)$/, + Eh = /^rgb\(\s*([-+]?\d+(?:\.\d+)?)%\s*,\s*([-+]?\d+(?:\.\d+)?)%\s*,\s*([-+]?\d+(?:\.\d+)?)%\s*\)$/, + Ch = /^rgba\(\s*([-+]?\d+)\s*,\s*([-+]?\d+)\s*,\s*([-+]?\d+)\s*,\s*([-+]?\d+(?:\.\d+)?)\s*\)$/, + zh = /^rgba\(\s*([-+]?\d+(?:\.\d+)?)%\s*,\s*([-+]?\d+(?:\.\d+)?)%\s*,\s*([-+]?\d+(?:\.\d+)?)%\s*,\s*([-+]?\d+(?:\.\d+)?)\s*\)$/, + Ph = /^hsl\(\s*([-+]?\d+(?:\.\d+)?)\s*,\s*([-+]?\d+(?:\.\d+)?)%\s*,\s*([-+]?\d+(?:\.\d+)?)%\s*\)$/, + qh = /^hsla\(\s*([-+]?\d+(?:\.\d+)?)\s*,\s*([-+]?\d+(?:\.\d+)?)%\s*,\s*([-+]?\d+(?:\.\d+)?)%\s*,\s*([-+]?\d+(?:\.\d+)?)\s*\)$/, + Lh = { + 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 + }; + Mh(Yt, Bt, { + displayable: function () { + return this + .rgb() + .displayable() + }, + toString: function () { + return this.rgb() + "" + } + }), + Mh(Wt, Vt, It(Yt, { + brighter: function (t) { + return t = null == t + ? Nh + : Math.pow(Nh, t), + new Wt(this.r * t, this.g * t, this.b * t, this.opacity) + }, + darker: function (t) { + return t = null == t + ? Th + : Math.pow(Th, t), + new Wt(this.r * t, this.g * t, this.b * t, this.opacity) + }, + rgb: function () { + return this + }, + displayable: function () { + return 0 <= this.r && this.r <= 255 && 0 <= this.g && this.g <= 255 && 0 <= this.b && this.b <= 255 && 0 <= this.opacity && this.opacity <= 1 + }, + toString: function () { + var t = this.opacity; + return t = isNaN(t) + ? 1 + : Math.max(0, Math.min(1, t)), + (1 === t + ? "rgb(" + : "rgba(") + Math.max(0, Math.min(255, Math.round(this.r) || 0)) + ", " + Math.max(0, Math.min(255, Math.round(this.g) || 0)) + ", " + Math.max(0, Math.min(255, Math.round(this.b) || 0)) + (1 === t + ? ")" + : ", " + t + ")") + } + })), + Mh(Jt, Gt, It(Yt, { + brighter: function (t) { + return t = null == t + ? Nh + : Math.pow(Nh, t), + new Jt(this.h, this.s, this.l * t, this.opacity) + }, + darker: function (t) { + return t = null == t + ? Th + : Math.pow(Th, t), + new Jt(this.h, this.s, this.l * t, this.opacity) + }, + rgb: function () { + 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 Wt(Qt(t >= 240 + ? t - 240 + : t + 120, i, r), Qt(t, i, r), Qt(t < 120 + ? t + 240 + : t - 120, i, r), this.opacity) + }, + displayable: function () { + return (0 <= this.s && this.s <= 1 || isNaN(this.s)) && 0 <= this.l && this.l <= 1 && 0 <= this.opacity && this.opacity <= 1 + } + })); + var Rh = Math.PI / 180, + Uh = 180 / Math.PI, + Dh = 18, + Oh = .95047, + Fh = 1, + Ih = 1.08883, + Yh = 4 / 29, + Bh = 6 / 29, + jh = 3 * Bh * Bh, + Hh = Bh * Bh * Bh; + Mh(nn, tn, It(Yt, { + brighter: function (t) { + return new nn(this.l + Dh * (null == t + ? 1 + : t), this.a, this.b, this.opacity) + }, + darker: function (t) { + return new nn(this.l - Dh * (null == t + ? 1 + : t), this.a, this.b, this.opacity) + }, + rgb: function () { + 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 t = Fh * rn(t), + n = Oh * rn(n), + e = Ih * rn(e), + new Wt(on(3.2404542 * n - 1.5371385 * t - .4985314 * e), on(-.969266 * n + 1.8760108 * t + .041556 * e), on(.0556434 * n - .2040259 * t + 1.0572252 * e), this.opacity) + } + })), + Mh(sn, cn, It(Yt, { + brighter: function (t) { + return new sn(this.h, this.c, this.l + Dh * (null == t + ? 1 + : t), this.opacity) + }, + darker: function (t) { + return new sn(this.h, this.c, this.l - Dh * (null == t + ? 1 + : t), this.opacity) + }, + rgb: function () { + return Kt(this).rgb() + } + })); + var Xh = -.14861, + Vh = 1.78277, + Wh = -.29227, + $h = -.90649, + Zh = 1.97294, + Gh = Zh * $h, + Jh = Zh * Vh, + Qh = Vh * Wh - $h * Xh; + Mh(hn, ln, It(Yt, { + brighter: function (t) { + return t = null == t + ? Nh + : Math.pow(Nh, t), + new hn(this.h, this.s, this.l * t, this.opacity) + }, + darker: function (t) { + return t = null == t + ? Th + : Math.pow(Th, t), + new hn(this.h, this.s, this.l * t, this.opacity) + }, + rgb: function () { + var t = isNaN(this.h) + ? 0 + : (this.h + 120) * Rh, + n =+ this.l, + e = isNaN(this.s) + ? 0 + : this.s * n * (1 - n), + r = Math.cos(t), + i = Math.sin(t); + return new Wt(255 * (n + e * (Xh * r + Vh * i)), 255 * (n + e * (Wh * r + $h * i)), 255 * (n + e * (Zh * r)), this.opacity) + } + })); + var Kh, + tp, + np, + ep, + rp = function (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], + u = r > 0 + ? t[r - 1] + : 2 * i - o, + a = r < n - 1 + ? t[r + 2] + : 2 * o - i; + return pn((e - r / n) * n, u, i, o, a) + } + }, + ip = function (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], + u = t[(r + 1) % n], + a = t[(r + 2) % n]; + return pn((e - r / n) * n, i, o, u, a) + } + }, + op = function (t) { + return function () { + return t + } + }, + up = function t(n) { + function e(t, n) { + var e = r((t = Vt(t)).r, (n = Vt(n)).r), + i = r(t.g, n.g), + o = r(t.b, n.b), + u = r(t.opacity, n.opacity); + return function (n) { + return t.r = e(n), + t.g = i(n), + t.b = o(n), + t.opacity = u(n), + t + "" + } + } + var r = yn(n); + return e.gamma = t, + e + }(1), + ap = mn(rp), + cp = mn(ip), + sp = function (t, n) { + var e, + r = n + ? n.length + : 0, + i = t + ? Math.min(r, t.length) + : 0, + o = new Array(r), + u = new Array(r); + for (e = 0; e < i; ++e) + o[e] = _p(t[e], n[e]); + for (; e < r; ++e) + u[e] = n[e]; + return function (t) { + for (e = 0; e < i; ++e) + u[e] = o[e](t); + return u + } + }, + fp = function (t, n) { + var e = new Date; + return t =+ t, + n -= t, + function (r) { + return e.setTime(t + n * r), + e + } + }, + lp = function (t, n) { + return t =+ t, + n -= t, + function (e) { + return t + n * e + } + }, + hp = function (t, n) { + var e, + r = {}, + i = {}; + null !== t && "object" == typeof t || (t = {}), + null !== n && "object" == typeof n || (n = {}); + for (e in n) + e in t + ? r[e] = _p(t[e], n[e]) + : i[e] = n[e]; + return function (t) { + for (e in r) + i[e] = r[e](t); + return i + } + }, + pp = /[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g, + dp = new RegExp(pp.source, "g"), + vp = function (t, n) { + var e, + r, + i, + o = pp.lastIndex = dp.lastIndex = 0, + u = -1, + a = [], + c = []; + for (t += "", n += ""; (e = pp.exec(t)) && (r = dp.exec(n));) + (i = r.index) > o && (i = n.slice(o, i), a[u] + ? a[u] += i + : a[++u] = i), + (e = e[0]) === (r = r[0]) + ? a[u] + ? a[u] += r + : a[++u] = r + : (a[++u] = null, c.push({ + i: u, + x: lp(e, r) + })), + o = dp.lastIndex; + return o < n.length && (i = n.slice(o), a[u] + ? a[u] += i + : a[++u] = i), + a.length < 2 + ? c[0] + ? bn(c[0].x) + : xn(n) + : (n = c.length, function (t) { + for (var e, r = 0; r < n; ++r) + a[(e = c[r]).i] = e.x(t); + return a.join("") + }) + }, + _p = function (t, n) { + var e, + r = typeof n; + return null == n || "boolean" === r + ? op(n) + : ("number" === r + ? lp + : "string" === r + ? (e = Bt(n)) + ? (n = e, up) + : vp + : n instanceof Bt + ? up + : n instanceof Date + ? fp + : Array.isArray(n) + ? sp + : isNaN(n) + ? hp + : lp)(t, n) + }, + yp = function (t, n) { + return t =+ t, + n -= t, + function (e) { + return Math.round(t + n * e) + } + }, + gp = 180 / Math.PI, + mp = { + translateX: 0, + translateY: 0, + rotate: 0, + skewX: 0, + scaleX: 1, + scaleY: 1 + }, + xp = function (t, n, e, r, i, o) { + var u, + a, + c; + return (u = Math.sqrt(t * t + n * n)) && (t /= u, n /= u), + (c = t * e + n * r) && (e -= t * c, r -= n * c), + (a = Math.sqrt(e * e + r * r)) && (e /= a, r /= a, c /= a), + t * r < n * e && (t = -t, n = -n, c = -c, u = -u), { + translateX: i, + translateY: o, + rotate: Math.atan2(n, t) * gp, + skewX: Math.atan(c) * gp, + scaleX: u, + scaleY: a + } + }, + bp = Tn(wn, "px, ", "px)", "deg)"), + wp = Tn(Mn, ", ", ")", ")"), + Mp = Math.SQRT2, + Tp = 2, + Np = 4, + kp = 1e-12, + Sp = function (t, n) { + var e, + r, + i = t[0], + o = t[1], + u = t[2], + a = n[0], + c = n[1], + s = n[2], + f = a - i, + l = c - o, + h = f * f + l * l; + if (h < kp) + r = Math.log(s / u) / Mp, + e = function (t) { + return [ + i + t * f, + o + t * l, + u * Math.exp(Mp * t * r) + ] + }; + else { + var p = Math.sqrt(h), + d = (s * s - u * u + Np * h) / (2 * u * Tp * p), + v = (s * s - u * u - Np * h) / (2 * s * Tp * p), + _ = Math.log(Math.sqrt(d * d + 1) - d), + y = Math.log(Math.sqrt(v * v + 1) - v); + r = (y - _) / Mp, + e = function (t) { + var n = t * r, + e = Nn(_), + a = u / (Tp * p) * (e * Sn(Mp * n + _) - kn(_)); + return [ + i + a * f, + o + a * l, + u * e / Nn(Mp * n + _) + ] + } + } + return e.duration = 1e3 * r, + e + }, + Ap = An(_n), + Ep = An(gn), + Cp = Cn(_n), + zp = Cn(gn), + Pp = zn(_n), + qp = zn(gn), + Lp = function (t, n) { + for (var e = new Array(n), r = 0; r < n; ++r) + e[r] = t(r / (n - 1)); + return e + }, + Rp = { + value: function () {} + }; + qn.prototype = Pn.prototype = { + constructor: qn, + on: function (t, n) { + var e, + r = this._, + i = Ln(t + "", r), + o = -1, + u = i.length; + { + if (!(arguments.length < 2)) { + if (null != n && "function" != typeof n) + throw new Error("invalid callback: " + n); + for (; ++o < u;) + if (e = (t = i[o]).type) + r[e] = Un(r[e], t.name, n); + else if (null == n) + for (e in r) + r[e] = Un(r[e], t.name, null); + return this + } + for (; ++o < u;) + if ((e = (t = i[o]).type) && (e = Rn(r[e], t.name))) + return e + } + }, + copy: function () { + var t = {}, + n = this._; + for (var e in n) + t[e] = n[e].slice(); + return new qn(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 (r = this._[t], o = 0, e = r.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 Up, + Dp, + Op = function (t) { + function n(t, n) { + var r, + i, + o = e(t, function (t, e) { + return r + ? r(t, e - 1) + : (i = t, void(r = n + ? On(t, n) + : Dn(t))) + }); + return o.columns = i, + o + } + function e(t, n) { + function e() { + if (f >= s) + return u; + if (i) + return i = !1, + o; + var n, + e = f; + if (34 === t.charCodeAt(e)) { + for (var r = e; r++ < s;) + if (34 === t.charCodeAt(r)) { + if (34 !== t.charCodeAt(r + 1)) + break; + + ++r + } + return f = r + 2, + n = t.charCodeAt(r + 1), + 13 === n + ? (i = !0, 10 === t.charCodeAt(r + 2) && ++f) + : 10 === n && (i = !0), + t + .slice(e + 1, r) + .replace(/""/g, '"') + } + for (; f < s;) { + var a = 1; + if (n = t.charCodeAt(f++), 10 === n) + i = !0; + else if (13 === n) + i = !0, + 10 === t.charCodeAt(f) && (++f, ++a); + else if (n !== c) + continue; + return t.slice(e, f - a) + } + return t.slice(e) + } + for (var r, i, o = {}, u = {}, a = [], s = t.length, f = 0, l = 0; (r = e()) !== u;) { + for (var h = []; r !== o && r !== u;) + h.push(r), + r = e(); + n && null == (h = n(h, l++)) || a.push(h) + } + return a + } + function r(n, e) { + return null == e && (e = Fn(n)), + [ + e + .map(u) + .join(t) + ].concat(n.map(function (n) { + return e.map(function (t) { + return u(n[t]) + }).join(t) + })).join("\n") + } + function i(t) { + return t + .map(o) + .join("\n") + } + function o(n) { + return n + .map(u) + .join(t) + } + function u(t) { + return null == t + ? "" + : a.test(t += "") + ? '"' + t.replace(/\"/g, '""') + '"' + : t + } + var a = new RegExp('["' + t + "\n]"), + c = t.charCodeAt(0); + return {parse: n, parseRows: e, format: r, formatRows: i} + }, + Fp = Op(","), + Ip = Fp.parse, + Yp = Fp.parseRows, + Bp = Fp.format, + jp = Fp.formatRows, + Hp = Op("\t"), + Xp = Hp.parse, + Vp = Hp.parseRows, + Wp = Hp.format, + $p = Hp.formatRows, + Zp = function (t, n) { + function e(t) { + var n, + e = f.status; + if (!e && Yn(f) || e >= 200 && e < 300 || 304 === e) { + if (u) + try { + n = u.call(r, f) + } catch (t) { + return void c.call("error", r, t) + } + else + n = f; + c.call("load", r, n) + } else + c.call("error", r, t) + } + var r, + i, + u, + a, + c = Pn("beforesend", "progress", "load", "error"), + s = o(), + f = new XMLHttpRequest, + l = null, + h = null, + p = 0; + if ("undefined" == typeof XDomainRequest || "withCredentials" in f || !/^(http(s)?:)?\/\//.test(t) || (f = new XDomainRequest), "onload" in f + ? f.onload = f.onerror = f.ontimeout = e + : f.onreadystatechange = function (t) { + f.readyState > 3 && e(t) + }, + f.onprogress = function (t) { + c.call("progress", r, t) + }, + r = { + header: function (t, n) { + return t = (t + "").toLowerCase(), + arguments.length < 2 + ? s.get(t) + : (null == n + ? s.remove(t) + : s.set(t, n + ""), r) + }, + mimeType: function (t) { + return arguments.length + ? (i = null == t + ? null + : t + "", r) + : i + }, + responseType: function (t) { + return arguments.length + ? (a = t, r) + : a + }, + timeout: function (t) { + return arguments.length + ? (p =+ t, r) + : p + }, + user: function (t) { + return arguments.length < 1 + ? l + : (l = null == t + ? null + : t + "", r) + }, + password: function (t) { + return arguments.length < 1 + ? h + : (h = null == t + ? null + : t + "", r) + }, + response: function (t) { + return u = t, + r + }, + get: function (t, n) { + return r.send("GET", t, n) + }, + post: function (t, n) { + return r.send("POST", t, n) + }, + send: function (n, e, o) { + return f.open(n, t, !0, l, h), + null == i || s.has("accept") || s.set("accept", i + ",*/*"), + f.setRequestHeader && s.each(function (t, n) { + f.setRequestHeader(n, t) + }), + null != i && f.overrideMimeType && f.overrideMimeType(i), + null != a && (f.responseType = a), + p > 0 && (f.timeout = p), + null == o && "function" == typeof e && (o = e, e = null), + null != o && 1 === o.length && (o = In(o)), + null != o && r + .on("error", o) + .on("load", function (t) { + o(null, t) + }), + c.call("beforesend", r, f), + f.send(null == e + ? null + : e), + r + }, + abort: function () { + return f.abort(), + r + }, + on: function () { + var t = c + .on + .apply(c, arguments); + return t === c + ? r + : t + } + }, + null != n) { + if ("function" != typeof n) + throw new Error("invalid callback: " + n); + return r.get(n) + } + return r + }, + Gp = function (t, n) { + return function (e, r) { + var i = Zp(e) + .mimeType(t) + .response(n); + if (null != r) { + if ("function" != typeof r) + throw new Error("invalid callback: " + r); + return i.get(r) + } + return i + } + }, + Jp = Gp("text/html", function (t) { + return document + .createRange() + .createContextualFragment(t.responseText) + }), + Qp = Gp("application/json", function (t) { + return JSON.parse(t.responseText) + }), + Kp = Gp("text/plain", function (t) { + return t.responseText + }), + td = Gp("application/xml", function (t) { + var n = t.responseXML; + if (!n) + throw new Error("parse error"); + return n + }), + nd = function (t, n) { + return function (e, r, i) { + arguments.length < 3 && (i = r, r = null); + var o = Zp(e).mimeType(t); + return o.row = function (t) { + return arguments.length + ? o.response(Bn(n, r = t)) + : r + }, + o.row(r), + i + ? o.get(i) + : o + } + }, + ed = nd("text/csv", Ip), + rd = nd("text/tab-separated-values", Xp), + id = 0, + od = 0, + ud = 0, + ad = 1e3, + cd = 0, + sd = 0, + fd = 0, + ld = "object" == typeof performance && performance.now + ? performance + : Date, + hd = "function" == typeof requestAnimationFrame + ? requestAnimationFrame + : function (t) { + setTimeout(t, 17) + }; + Xn.prototype = Vn.prototype = { + constructor: Xn, + restart: function (t, n, e) { + if ("function" != typeof t) + throw new TypeError("callback is not a function"); + e = (null == e + ? jn() :+ e) + (null == n + ? 0 :+ n), + this._next || Dp === this || (Dp + ? Dp._next = this + : Up = this, Dp = this), + this._call = t, + this._time = e, + Jn() + }, + stop: function () { + this._call && (this._call = null, this._time = 1 / 0, Jn()) + } + }; + var pd = function (t, n, e) { + var r = new Xn; + return n = null == n + ? 0 :+ n, + r.restart(function (e) { + r.stop(), + t(e + n) + }, n, e), + r + }, + dd = function (t, n, e) { + var r = new Xn, + i = n; + return null == n + ? (r.restart(t, n, e), r) + : (n =+ n, e = null == e + ? jn() :+ e, r.restart(function o(u) { + u += i, + r.restart(o, i += n, e), + t(u) + }, n, e), r) + }, + vd = new Date, + _d = new Date, + yd = Qn(function () {}, function (t, n) { + t.setTime(+ t + n) + }, function (t, n) { + return n - t + }); + yd.every = function (t) { + return t = Math.floor(t), + isFinite(t) && t > 0 + ? t > 1 + ? Qn(function (n) { + n.setTime(Math.floor(n / t) * t) + }, function (n, e) { + n.setTime(+ n + e * t) + }, function (n, e) { + return (e - n) / t + }) + : yd + : null + }; + var gd = yd.range, + md = 1e3, + xd = 6e4, + bd = 36e5, + wd = 864e5, + Md = 6048e5, + Td = Qn(function (t) { + t.setTime(Math.floor(t / md) * md) + }, function (t, n) { + t.setTime(+ t + n * md) + }, function (t, n) { + return (n - t) / md + }, function (t) { + return t.getUTCSeconds() + }), + Nd = Td.range, + kd = Qn(function (t) { + t.setTime(Math.floor(t / xd) * xd) + }, function (t, n) { + t.setTime(+ t + n * xd) + }, function (t, n) { + return (n - t) / xd + }, function (t) { + return t.getMinutes() + }), + Sd = kd.range, + Ad = Qn(function (t) { + var n = t.getTimezoneOffset() * xd % bd; + n < 0 && (n += bd), + t.setTime(Math.floor((+ t - n) / bd) * bd + n) + }, function (t, n) { + t.setTime(+ t + n * bd) + }, function (t, n) { + return (n - t) / bd + }, function (t) { + return t.getHours() + }), + Ed = Ad.range, + Cd = Qn(function (t) { + t.setHours(0, 0, 0, 0) + }, function (t, n) { + t.setDate(t.getDate() + n) + }, function (t, n) { + return (n - t - (n.getTimezoneOffset() - t.getTimezoneOffset()) * xd) / wd + }, function (t) { + return t.getDate() - 1 + }), + zd = Cd.range, + Pd = Kn(0), + qd = Kn(1), + Ld = Kn(2), + Rd = Kn(3), + Ud = Kn(4), + Dd = Kn(5), + Od = Kn(6), + Fd = Pd.range, + Id = qd.range, + Yd = Ld.range, + Bd = Rd.range, + jd = Ud.range, + Hd = Dd.range, + Xd = Od.range, + Vd = Qn(function (t) { + t.setDate(1), + t.setHours(0, 0, 0, 0) + }, function (t, n) { + t.setMonth(t.getMonth() + n) + }, function (t, n) { + return n.getMonth() - t.getMonth() + 12 * (n.getFullYear() - t.getFullYear()) + }, function (t) { + return t.getMonth() + }), + Wd = Vd.range, + $d = Qn(function (t) { + t.setMonth(0, 1), + t.setHours(0, 0, 0, 0) + }, function (t, n) { + t.setFullYear(t.getFullYear() + n) + }, function (t, n) { + return n.getFullYear() - t.getFullYear() + }, function (t) { + return t.getFullYear() + }); + $d.every = function (t) { + return isFinite(t = Math.floor(t)) && t > 0 + ? Qn(function (n) { + n.setFullYear(Math.floor(n.getFullYear() / t) * t), + n.setMonth(0, 1), + n.setHours(0, 0, 0, 0) + }, function (n, e) { + n.setFullYear(n.getFullYear() + e * t) + }) + : null + }; + var Zd = $d.range, + Gd = Qn(function (t) { + t.setUTCSeconds(0, 0) + }, function (t, n) { + t.setTime(+ t + n * xd) + }, function (t, n) { + return (n - t) / xd + }, function (t) { + return t.getUTCMinutes() + }), + Jd = Gd.range, + Qd = Qn(function (t) { + t.setUTCMinutes(0, 0, 0) + }, function (t, n) { + t.setTime(+ t + n * bd) + }, function (t, n) { + return (n - t) / bd + }, function (t) { + return t.getUTCHours() + }), + Kd = Qd.range, + tv = Qn(function (t) { + t.setUTCHours(0, 0, 0, 0) + }, function (t, n) { + t.setUTCDate(t.getUTCDate() + n) + }, function (t, n) { + return (n - t) / wd + }, function (t) { + return t.getUTCDate() - 1 + }), + nv = tv.range, + ev = te(0), + rv = te(1), + iv = te(2), + ov = te(3), + uv = te(4), + av = te(5), + cv = te(6), + sv = ev.range, + fv = rv.range, + lv = iv.range, + hv = ov.range, + pv = uv.range, + dv = av.range, + vv = cv.range, + _v = Qn(function (t) { + t.setUTCDate(1), + t.setUTCHours(0, 0, 0, 0) + }, function (t, n) { + t.setUTCMonth(t.getUTCMonth() + n) + }, function (t, n) { + return n.getUTCMonth() - t.getUTCMonth() + 12 * (n.getUTCFullYear() - t.getUTCFullYear()) + }, function (t) { + return t.getUTCMonth() + }), + yv = _v.range, + gv = Qn(function (t) { + t.setUTCMonth(0, 1), + t.setUTCHours(0, 0, 0, 0) + }, function (t, n) { + t.setUTCFullYear(t.getUTCFullYear() + n) + }, function (t, n) { + return n.getUTCFullYear() - t.getUTCFullYear() + }, function (t) { + return t.getUTCFullYear() + }); + gv.every = function (t) { + return isFinite(t = Math.floor(t)) && t > 0 + ? Qn(function (n) { + n.setUTCFullYear(Math.floor(n.getUTCFullYear() / t) * t), + n.setUTCMonth(0, 1), + n.setUTCHours(0, 0, 0, 0) + }, function (n, e) { + n.setUTCFullYear(n.getUTCFullYear() + e * t) + }) + : null + }; + var mv, + xv = gv.range, + bv = function (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) + ] + }, + wv = function (t) { + return t = bv(Math.abs(t)), + t + ? t[1] + : NaN + }, + Mv = function (t, n) { + return function (e, r) { + for (var i = e.length, o = [], u = 0, a = t[0], c = 0; i > 0 && a > 0 && (c + a + 1 > r && (a = Math.max(1, r - c)), o.push(e.substring(i -= a, i + a)), !((c += a + 1) > r));) + a = t[u = (u + 1) % t.length]; + return o + .reverse() + .join(n) + } + }, + Tv = function (t, n) { + t = t.toPrecision(n); + t : for (var e, r = t.length, i = 1, o = -1; i < r; ++i) + switch (t[i]) { + case ".": + o = e = i; + break; + case "0": + 0 === o && (o = i), + e = i; + break; + case "e": + break t; + default: + o > 0 && (o = 0) + } + return o > 0 + ? t.slice(0, o) + t.slice(e + 1) + : t + }, + Nv = function (t, n) { + var e = bv(t, n); + if (!e) + return t + ""; + var r = e[0], + i = e[1], + o = i - (mv = 3 * Math.max(-8, Math.min(8, Math.floor(i / 3)))) + 1, + u = r.length; + return o === u + ? r + : o > u + ? r + new Array(o - u + 1).join("0") + : o > 0 + ? r.slice(0, o) + "." + r.slice(o) + : "0." + new Array(1 - o).join("0") + bv(t, Math.max(0, n + o - 1))[0] + }, + kv = function (t, n) { + var e = bv(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") + }, + Sv = { + "": Tv, + "%": function (t, n) { + return (100 * t).toFixed(n) + }, + b: function (t) { + return Math + .round(t) + .toString(2) + }, + c: function (t) { + return t + "" + }, + d: function (t) { + return Math + .round(t) + .toString(10) + }, + e: function (t, n) { + return t.toExponential(n) + }, + f: function (t, n) { + return t.toFixed(n) + }, + g: function (t, n) { + return t.toPrecision(n) + }, + o: function (t) { + return Math + .round(t) + .toString(8) + }, + p: function (t, n) { + return kv(100 * t, n) + }, + r: kv, + s: Nv, + X: function (t) { + return Math + .round(t) + .toString(16) + .toUpperCase() + }, + x: function (t) { + return Math + .round(t) + .toString(16) + } + }, + Av = /^(?:(.)?([<>=^]))?([+\-\( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?([a-z%])?$/i, + Ev = function (t) { + return new ne(t) + }; + ne.prototype.toString = function () { + return this.fill + this.align + this.sign + this.symbol + (this.zero + ? "0" + : "") + (null == this.width + ? "" + : Math.max(1, 0 | this.width)) + (this.comma + ? "," + : "") + (null == this.precision + ? "" + : "." + Math.max(0, 0 | this.precision)) + this.type + }; + var Cv, + zv = [ + "y", + "z", + "a", + "f", + "p", + "n", + "µ", + "m", + "", + "k", + "M", + "G", + "T", + "P", + "E", + "Z", + "Y" + ], + Pv = function (t) { + function n(t) { + function n(t) { + var n, + i, + c, + g = d, + m = v; + if ("c" === p) + m = _(t) + m, + t = ""; + else { + t =+ t; + var x = (t < 0 || 1 / t < 0) && (t *= -1, !0); + if (t = _(t, h), x) + for (n = -1, i = t.length, x = !1; ++n < i;) + if (c = t.charCodeAt(n), 48 < c && c < 58 || "x" === p && 96 < c && c < 103 || "X" === p && 64 < c && c < 71) { + x = !0; + break + } + if (g = (x + ? "(" === a + ? a + : "-" + : "-" === a || "(" === a + ? "" + : a) + g, m = m + ("s" === p + ? zv[8 + mv / 3] + : "") + (x && "(" === a + ? ")" + : ""), y) + for (n = -1, i = t.length; ++n < i;) + if (c = t.charCodeAt(n), 48 > c || c > 57) { + m = (46 === c + ? o + t.slice(n + 1) + : t.slice(n)) + m, + t = t.slice(0, n); + break + } + } + l && !s && (t = r(t, 1 / 0)); + var b = g.length + t.length + m.length, + w = b < f + ? new Array(f - b + 1).join(e) + : ""; + switch (l && s && (t = r(w + t, w.length + ? f - m.length + : 1 / 0), w = ""), u) { + case "<": + return g + t + m + w; + case "=": + return g + w + t + m; + case "^": + return w.slice(0, b = w.length >> 1) + g + t + m + w.slice(b) + } + return w + g + t + m + } + t = Ev(t); + var e = t.fill, + u = t.align, + a = t.sign, + c = t.symbol, + s = t.zero, + f = t.width, + l = t.comma, + h = t.precision, + p = t.type, + d = "$" === c + ? i[0] + : "#" === c && /[boxX]/.test(p) + ? "0" + p.toLowerCase() + : "", + v = "$" === c + ? i[1] + : /[%p]/.test(p) + ? "%" + : "", + _ = Sv[p], + y = !p || /[defgprs%]/.test(p); + return h = null == h + ? p + ? 6 + : 12 + : /[gprs]/.test(p) + ? Math.max(1, Math.min(21, h)) + : Math.max(0, Math.min(20, h)), + n.toString = function () { + return t + "" + }, + n + } + function e(t, e) { + var r = n((t = Ev(t), t.type = "f", t)), + i = 3 * Math.max(-8, Math.min(8, Math.floor(wv(e) / 3))), + o = Math.pow(10, -i), + u = zv[8 + i / 3]; + return function (t) { + return r(o * t) + u + } + } + var r = t.grouping && t.thousands + ? Mv(t.grouping, t.thousands) + : ee, + i = t.currency, + o = t.decimal; + return {format: n, formatPrefix: e} + }; + re({ + decimal: ".", + thousands: ",", + grouping: [3], + currency: ["$", ""] + }); + var qv, + Lv = function (t) { + return Math.max(0, -wv(Math.abs(t))) + }, + Rv = function (t, n) { + return Math.max(0, 3 * Math.max(-8, Math.min(8, Math.floor(wv(n) / 3))) - wv(Math.abs(t))) + }, + Uv = function (t, n) { + return t = Math.abs(t), + n = Math.abs(n) - t, + Math.max(0, wv(n) - wv(t)) + 1 + }, + Dv = { + "-": "", + _: " ", + 0: "0" + }, + Ov = /^\s*\d+/, + Fv = /^%/, + Iv = /[\\\^\$\*\+\?\|\[\]\(\)\.\{\}]/g; + nr({ + 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 Yv = "%Y-%m-%dT%H:%M:%S.%LZ", + Bv = Date.prototype.toISOString + ? er + : t.utcFormat(Yv), + jv =+ new Date("2000-01-01T00:00:00.000Z") + ? rr + : t.utcParse(Yv), + Hv = Array.prototype, + Xv = Hv.map, + Vv = Hv.slice, + Wv = { + name: "implicit" + }, + $v = function (t) { + return function () { + return t + } + }, + Zv = function (t) { + return + t + }, + Gv = [ + 0, 1 + ], + Jv = function (n, r, i) { + var o, + u = n[0], + a = n[n.length - 1], + c = e(u, a, null == r + ? 10 + : r); + switch (i = Ev(null == i + ? ",f" + : i), i.type) { + case "s": + var s = Math.max(Math.abs(u), Math.abs(a)); + return null != i.precision || isNaN(o = Rv(c, s)) || (i.precision = o), + t.formatPrefix(i, s); + case "": + case "e": + case "g": + case "p": + case "r": + null != i.precision || isNaN(o = Uv(c, Math.max(Math.abs(u), Math.abs(a)))) || (i.precision = o - ("e" === i.type)); + break; + case "f": + case "%": + null != i.precision || isNaN(o = Lv(c)) || (i.precision = o - 2 * ("%" === i.type)) + } + return t.format(i) + }, + Qv = function (t, n) { + t = t.slice(); + var e, + r = 0, + i = t.length - 1, + o = t[r], + u = t[i]; + return u < o && (e = r, r = i, i = e, e = o, o = u, u = e), + t[r] = n.floor(o), + t[i] = n.ceil(u), + t + }, + Kv = 1e3, + t_ = 60 * Kv, + n_ = 60 * t_, + e_ = 24 * n_, + r_ = 7 * e_, + i_ = 30 * e_, + o_ = 365 * e_, + u_ = function () { + return qr($d, Vd, Pd, Cd, Ad, kd, Td, yd, t.timeFormat).domain([ + new Date(2e3, 0, 1), + new Date(2e3, 0, 2) + ]) + }, + a_ = function () { + return qr(gv, _v, ev, tv, Qd, Gd, Td, yd, t.utcFormat).domain([ + Date.UTC(2e3, 0, 1), + Date.UTC(2e3, 0, 2) + ]) + }, + c_ = function (t) { + return t + .match(/.{6}/g) + .map(function (t) { + return "#" + t + }) + }, + s_ = c_("1f77b4ff7f0e2ca02cd627289467bd8c564be377c27f7f7fbcbd2217becf"), + f_ = c_("393b795254a36b6ecf9c9ede6379398ca252b5cf6bcedb9c8c6d31bd9e39e7ba52e7cb94843c39ad" + + "494ad6616be7969c7b4173a55194ce6dbdde9ed6"), + l_ = c_("3182bd6baed69ecae1c6dbefe6550dfd8d3cfdae6bfdd0a231a35474c476a1d99bc7e9c0756bb19e" + + "9ac8bcbddcdadaeb636363969696bdbdbdd9d9d9"), + h_ = c_("1f77b4aec7e8ff7f0effbb782ca02c98df8ad62728ff98969467bdc5b0d58c564bc49c94e377c2f7" + + "b6d27f7f7fc7c7c7bcbd22dbdb8d17becf9edae5"), + p_ = qp(ln(300, .5, 0), ln(-240, .5, 1)), + d_ = qp(ln(-100, .75, .35), ln(80, 1.5, .8)), + v_ = qp(ln(260, .75, .35), ln(80, 1.5, .8)), + __ = ln(), + y_ = function (t) { + (t < 0 || t > 1) && (t -= Math.floor(t)); + var n = Math.abs(t - .5); + return __.h = 360 * t - 100, + __.s = 1.5 - 1.5 * n, + __.l = .8 - .9 * n, + __ + "" + }, + g_ = Lr(c_("44015444025645045745055946075a46085c460a5d460b5e470d60470e6147106347116447136548" + + "146748166848176948186a481a6c481b6d481c6e481d6f481f704820714821734823744824754825" + + "76482677482878482979472a7a472c7a472d7b472e7c472f7d46307e46327e46337f463480453581" + + "453781453882443983443a83443b84433d84433e85423f8542408642418641428741448740458840" + + "46883f47883f48893e49893e4a893e4c8a3d4d8a3d4e8a3c4f8a3c508b3b518b3b528b3a538b3a54" + + "8c39558c39568c38588c38598c375a8c375b8d365c8d365d8d355e8d355f8d34608d34618d33628d" + + "33638d32648e32658e31668e31678e31688e30698e306a8e2f6b8e2f6c8e2e6d8e2e6e8e2e6f8e2d" + + "708e2d718e2c718e2c728e2c738e2b748e2b758e2a768e2a778e2a788e29798e297a8e297b8e287c" + + "8e287d8e277e8e277f8e27808e26818e26828e26828e25838e25848e25858e24868e24878e23888e" + + "23898e238a8d228b8d228c8d228d8d218e8d218f8d21908d21918c20928c20928c20938c1f948c1f" + + "958b1f968b1f978b1f988b1f998a1f9a8a1e9b8a1e9c891e9d891f9e891f9f881fa0881fa1881fa1" + + "871fa28720a38620a48621a58521a68522a78522a88423a98324aa8325ab8225ac8226ad8127ad81" + + "28ae8029af7f2ab07f2cb17e2db27d2eb37c2fb47c31b57b32b67a34b67935b77937b87838b9773a" + + "ba763bbb753dbc743fbc7340bd7242be7144bf7046c06f48c16e4ac16d4cc26c4ec36b50c46a52c5" + + "6954c56856c66758c7655ac8645cc8635ec96260ca6063cb5f65cb5e67cc5c69cd5b6ccd5a6ece58" + + "70cf5773d05675d05477d1537ad1517cd2507fd34e81d34d84d44b86d54989d5488bd6468ed64590" + + "d74393d74195d84098d83e9bd93c9dd93ba0da39a2da37a5db36a8db34aadc32addc30b0dd2fb2dd" + + "2db5de2bb8de29bade28bddf26c0df25c2df23c5e021c8e020cae11fcde11dd0e11cd2e21bd5e21a" + + "d8e219dae319dde318dfe318e2e418e5e419e7e419eae51aece51befe51cf1e51df4e61ef6e620f8" + + "e621fbe723fde725")), + m_ = Lr(c_("00000401000501010601010802010902020b02020d03030f03031204041405041606051806051a07" + + "061c08071e0907200a08220b09240c09260d0a290e0b2b100b2d110c2f120d31130d34140e36150e" + + "38160f3b180f3d19103f1a10421c10441d11471e114920114b21114e221150241253251255271258" + + "29115a2a115c2c115f2d11612f116331116533106734106936106b38106c390f6e3b0f703d0f713f" + + "0f72400f74420f75440f764510774710784910784a10794c117a4e117b4f127b51127c52137c5413" + + "7d56147d57157e59157e5a167e5c167f5d177f5f187f601880621980641a80651a80671b80681c81" + + "6a1c816b1d816d1d816e1e81701f81721f817320817521817621817822817922827b23827c23827e" + + "24828025828125818326818426818627818827818928818b29818c29818e2a81902a81912b81932b" + + "80942c80962c80982d80992d809b2e7f9c2e7f9e2f7fa02f7fa1307ea3307ea5317ea6317da8327d" + + "aa337dab337cad347cae347bb0357bb2357bb3367ab5367ab73779b83779ba3878bc3978bd3977bf" + + "3a77c03a76c23b75c43c75c53c74c73d73c83e73ca3e72cc3f71cd4071cf4070d0416fd2426fd343" + + "6ed5446dd6456cd8456cd9466bdb476adc4869de4968df4a68e04c67e24d66e34e65e44f64e55064" + + "e75263e85362e95462ea5661eb5760ec5860ed5a5fee5b5eef5d5ef05f5ef1605df2625df2645cf3" + + "655cf4675cf4695cf56b5cf66c5cf66e5cf7705cf7725cf8745cf8765cf9785df9795df97b5dfa7d" + + "5efa7f5efa815ffb835ffb8560fb8761fc8961fc8a62fc8c63fc8e64fc9065fd9266fd9467fd9668" + + "fd9869fd9a6afd9b6bfe9d6cfe9f6dfea16efea36ffea571fea772fea973feaa74feac76feae77fe" + + "b078feb27afeb47bfeb67cfeb77efeb97ffebb81febd82febf84fec185fec287fec488fec68afec8" + + "8cfeca8dfecc8ffecd90fecf92fed194fed395fed597fed799fed89afdda9cfddc9efddea0fde0a1" + + "fde2a3fde3a5fde5a7fde7a9fde9aafdebacfcecaefceeb0fcf0b2fcf2b4fcf4b6fcf6b8fcf7b9fc" + + "f9bbfcfbbdfcfdbf")), + x_ = Lr(c_("00000401000501010601010802010a02020c02020e03021004031204031405041706041907051b08" + + "051d09061f0a07220b07240c08260d08290e092b10092d110a30120a32140b34150b37160b39180c" + + "3c190c3e1b0c411c0c431e0c451f0c48210c4a230c4c240c4f260c51280b53290b552b0b572d0b59" + + "2f0a5b310a5c320a5e340a5f3609613809623909633b09643d09653e0966400a67420a68440a6845" + + "0a69470b6a490b6a4a0c6b4c0c6b4d0d6c4f0d6c510e6c520e6d540f6d550f6d57106e59106e5a11" + + "6e5c126e5d126e5f136e61136e62146e64156e65156e67166e69166e6a176e6c186e6d186e6f196e" + + "71196e721a6e741a6e751b6e771c6d781c6d7a1d6d7c1d6d7d1e6d7f1e6c801f6c82206c84206b85" + + "216b87216b88226a8a226a8c23698d23698f24699025689225689326679526679727669827669a28" + + "659b29649d29649f2a63a02a63a22b62a32c61a52c60a62d60a82e5fa92e5eab2f5ead305dae305c" + + "b0315bb1325ab3325ab43359b63458b73557b93556ba3655bc3754bd3853bf3952c03a51c13a50c3" + + "3b4fc43c4ec63d4dc73e4cc83f4bca404acb4149cc4248ce4347cf4446d04545d24644d34743d448" + + "42d54a41d74b3fd84c3ed94d3dda4e3cdb503bdd513ade5238df5337e05536e15635e25734e35933" + + "e45a31e55c30e65d2fe75e2ee8602de9612bea632aeb6429eb6628ec6726ed6925ee6a24ef6c23ef" + + "6e21f06f20f1711ff1731df2741cf3761bf37819f47918f57b17f57d15f67e14f68013f78212f784" + + "10f8850ff8870ef8890cf98b0bf98c0af98e09fa9008fa9207fa9407fb9606fb9706fb9906fb9b06" + + "fb9d07fc9f07fca108fca309fca50afca60cfca80dfcaa0ffcac11fcae12fcb014fcb216fcb418fb" + + "b61afbb81dfbba1ffbbc21fbbe23fac026fac228fac42afac62df9c72ff9c932f9cb35f8cd37f8cf" + + "3af7d13df7d340f6d543f6d746f5d949f5db4cf4dd4ff4df53f4e156f3e35af3e55df2e661f2e865" + + "f2ea69f1ec6df1ed71f1ef75f1f179f2f27df2f482f3f586f3f68af4f88ef5f992f6fa96f8fb9af9" + + "fc9dfafda1fcffa4")), + b_ = Lr(c_("0d088710078813078916078a19068c1b068d1d068e20068f2206902406912605912805922a05932c" + + "05942e05952f059631059733059735049837049938049a3a049a3c049b3e049c3f049c41049d4303" + + "9e44039e46039f48039f4903a04b03a14c02a14e02a25002a25102a35302a35502a45601a45801a4" + + "5901a55b01a55c01a65e01a66001a66100a76300a76400a76600a76700a86900a86a00a86c00a86e" + + "00a86f00a87100a87201a87401a87501a87701a87801a87a02a87b02a87d03a87e03a88004a88104" + + "a78305a78405a78606a68707a68808a68a09a58b0aa58d0ba58e0ca48f0da4910ea3920fa39410a2" + + "9511a19613a19814a099159f9a169f9c179e9d189d9e199da01a9ca11b9ba21d9aa31e9aa51f99a6" + + "2098a72197a82296aa2395ab2494ac2694ad2793ae2892b02991b12a90b22b8fb32c8eb42e8db52f" + + "8cb6308bb7318ab83289ba3388bb3488bc3587bd3786be3885bf3984c03a83c13b82c23c81c33d80" + + "c43e7fc5407ec6417dc7427cc8437bc9447aca457acb4679cc4778cc4977cd4a76ce4b75cf4c74d0" + + "4d73d14e72d24f71d35171d45270d5536fd5546ed6556dd7566cd8576bd9586ada5a6ada5b69db5c" + + "68dc5d67dd5e66de5f65de6164df6263e06363e16462e26561e26660e3685fe4695ee56a5de56b5d" + + "e66c5ce76e5be76f5ae87059e97158e97257ea7457eb7556eb7655ec7754ed7953ed7a52ee7b51ef" + + "7c51ef7e50f07f4ff0804ef1814df1834cf2844bf3854bf3874af48849f48948f58b47f58c46f68d" + + "45f68f44f79044f79143f79342f89441f89540f9973ff9983ef99a3efa9b3dfa9c3cfa9e3bfb9f3a" + + "fba139fba238fca338fca537fca636fca835fca934fdab33fdac33fdae32fdaf31fdb130fdb22ffd" + + "b42ffdb52efeb72dfeb82cfeba2cfebb2bfebd2afebe2afec029fdc229fdc328fdc527fdc627fdc8" + + "27fdca26fdcb26fccd25fcce25fcd025fcd225fbd324fbd524fbd724fad824fada24f9dc24f9dd25" + + "f8df25f8e125f7e225f7e425f6e626f6e826f5e926f5eb27f4ed27f3ee27f3f027f2f227f1f426f1" + + "f525f0f724f0f921")), + w_ = "http://www.w3.org/1999/xhtml", + M_ = { + svg: "http://www.w3.org/2000/svg", + xhtml: w_, + xlink: "http://www.w3.org/1999/xlink", + xml: "http://www.w3.org/XML/1998/namespace", + xmlns: "http://www.w3.org/2000/xmlns/" + }, + T_ = function (t) { + var n = t += "", + e = n.indexOf(":"); + return e >= 0 && "xmlns" !== (n = t.slice(0, e)) && (t = t.slice(e + 1)), + M_.hasOwnProperty(n) + ? { + space: M_[n], + local: t + } + : t + }, + N_ = function (t) { + var n = T_(t); + return (n.local + ? Dr + : Ur)(n) + }, + k_ = 0; + Fr.prototype = Or.prototype = { + constructor: Fr, + 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._ + } + }; + var S_ = function (t) { + return function () { + return this.matches(t) + } + }; + if ("undefined" != typeof document) { + var A_ = document.documentElement; + if (!A_.matches) { + var E_ = A_.webkitMatchesSelector || A_.msMatchesSelector || A_.mozMatchesSelector || A_.oMatchesSelector; + S_ = function (t) { + return function () { + return E_.call(this, t) + } + } + } + } + var C_ = S_, + z_ = {}; + if (t.event = null, "undefined" != typeof document) { + var P_ = document.documentElement; + "onmouseenter" in P_ || (z_ = { + mouseenter: "mouseover", + mouseleave: "mouseout" + }) + } + var q_ = function (t, n, e) { + var r, + i, + o = Br(t + ""), + u = o.length; + { + if (!(arguments.length < 2)) { + for (a = n + ? Hr + : jr, null == e && (e = !1), r = 0; r < u; ++r) + this.each(a(o[r], n, e)); + return this + } + var a = this + .node() + .__on; + if (a) + for (var c, s = 0, f = a.length; s < f; ++s) + for (r = 0, c = a[s]; r < u; ++r) + if ((i = o[r]).type === c.type && i.name === c.name) + return c.value + } + }, + L_ = function () { + for (var n, e = t.event; n = e.sourceEvent;) + e = n; + return e + }, + R_ = function (t, n) { + var e = t.ownerSVGElement || t; + if (e.createSVGPoint) { + var r = e.createSVGPoint(); + return r.x = n.clientX, + r.y = n.clientY, + r = r.matrixTransform(t.getScreenCTM().inverse()), + [r.x, r.y] + } + var i = t.getBoundingClientRect(); + return [ + n.clientX - i.left - t.clientLeft, + n.clientY - i.top - t.clientTop + ] + }, + U_ = function (t) { + var n = L_(); + return n.changedTouches && (n = n.changedTouches[0]), + R_(t, n) + }, + D_ = function (t) { + return null == t + ? Vr + : function () { + return this.querySelector(t) + } + }, + O_ = function (t) { + "function" != typeof t && (t = D_(t)); + for (var n = this._groups, e = n.length, r = new Array(e), i = 0; i < e; ++i) + for (var o, u, a = n[i], c = a.length, s = r[i] = new Array(c), f = 0; f < c; ++f) + (o = a[f]) && (u = t.call(o, o.__data__, f, a)) && ("__data__" in o && (u.__data__ = o.__data__), s[f] = u); + return new zi(r, this._parents) + }, + F_ = function (t) { + return null == t + ? Wr + : function () { + return this.querySelectorAll(t) + } + }, + I_ = function (t) { + "function" != typeof t && (t = F_(t)); + for (var n = this._groups, e = n.length, r = [], i = [], o = 0; o < e; ++o) + for (var u, a = n[o], c = a.length, s = 0; s < c; ++s) + (u = a[s]) && (r.push(t.call(u, u.__data__, s, a)), i.push(u)); + return new zi(r, i) + }, + Y_ = function (t) { + "function" != typeof t && (t = C_(t)); + for (var n = this._groups, e = n.length, r = new Array(e), i = 0; i < e; ++i) + for (var o, u = n[i], a = u.length, c = r[i] = [], s = 0; s < a; ++s) + (o = u[s]) && t.call(o, o.__data__, s, u) && c.push(o); + return new zi(r, this._parents) + }, + B_ = function (t) { + return new Array(t.length) + }, + j_ = function () { + return new zi(this._enter || this._groups.map(B_), this._parents) + }; + $r.prototype = { + constructor: $r, + 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) + } + }; + var H_ = function (t) { + return function () { + return t + } + }, + X_ = "$", + V_ = function (t, n) { + if (!t) + return p = new Array(this.size()), + s = -1, + this.each(function (t) { + p[++s] = t + }), + p; + var e = n + ? Gr + : Zr, + r = this._parents, + i = this._groups; + "function" != typeof t && (t = H_(t)); + for (var o = i.length, u = new Array(o), a = new Array(o), c = new Array(o), s = 0; s < o; ++s) { + var f = r[s], + l = i[s], + h = l.length, + p = t.call(f, f && f.__data__, s, r), + d = p.length, + v = a[s] = new Array(d), + _ = u[s] = new Array(d), + y = c[s] = new Array(h); + e(f, l, v, _, y, p, n); + for (var g, m, x = 0, b = 0; x < d; ++x) + if (g = v[x]) { + for (x >= b && (b = x + 1); !(m = _[b]) && ++b < d;) + ; + g._next = m || null + } + } + return u = new zi(u, r), + u._enter = a, + u._exit = c, + u + }, + W_ = function () { + return new zi(this._exit || this._groups.map(B_), this._parents) + }, + $_ = function (t) { + for (var n = this._groups, e = t._groups, r = n.length, i = e.length, o = Math.min(r, i), u = new Array(r), a = 0; a < o; ++a) + for (var c, s = n[a], f = e[a], l = s.length, h = u[a] = new Array(l), p = 0; p < l; ++p) + (c = s[p] || f[p]) && (h[p] = c); + for (; a < r; ++a) + u[a] = n[a]; + return new zi(u, this._parents) + }, + Z_ = function () { + for (var t = this._groups, n = -1, e = t.length; ++n < e;) + for (var r, i = t[n], o = i.length - 1, u = i[o]; --o >= 0;) + (r = i[o]) && (u && u !== r.nextSibling && u.parentNode.insertBefore(r, u), u = r); + return this + }, + G_ = function (t) { + function n(n, e) { + return n && e + ? t(n.__data__, e.__data__) + : !n - !e + } + t || (t = Jr); + for (var e = this._groups, r = e.length, i = new Array(r), o = 0; o < r; ++o) { + for (var u, a = e[o], c = a.length, s = i[o] = new Array(c), f = 0; f < c; ++f) + (u = a[f]) && (s[f] = u); + s.sort(n) + } + return new zi(i, this._parents).order() + }, + J_ = function () { + var t = arguments[0]; + return arguments[0] = this, + t.apply(null, arguments), + this + }, + Q_ = function () { + var t = new Array(this.size()), + n = -1; + return this.each(function () { + t[++n] = this + }), + t + }, + K_ = 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 u = r[i]; + if (u) + return u + } + return null + }, + ty = function () { + var t = 0; + return this.each(function () { + ++t + }), + t + }, + ny = function () { + return !this.node() + }, + ey = function (t) { + for (var n = this._groups, e = 0, r = n.length; e < r; ++e) + for (var i, o = n[e], u = 0, a = o.length; u < a; ++u) + (i = o[u]) && t.call(i, i.__data__, u, o); + return this + }, + ry = function (t, n) { + var e = T_(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 + ? Kr + : Qr + : "function" == typeof n + ? e.local + ? ri + : ei + : e.local + ? ni + : ti)(e, n)) + }, + iy = function (t) { + return t.ownerDocument && t.ownerDocument.defaultView || t.document && t || t.defaultView + }, + oy = function (t, n, e) { + var r; + return arguments.length > 1 + ? this.each((null == n + ? ii + : "function" == typeof n + ? ui + : oi)(t, n, null == e + ? "" + : e)) + : iy(r = this.node()) + .getComputedStyle(r, null) + .getPropertyValue(t) + }, + uy = function (t, n) { + return arguments.length > 1 + ? this.each((null == n + ? ai + : "function" == typeof n + ? si + : ci)(t, n)) + : this.node()[t] + }; + hi.prototype = { + add: function (t) { + var n = this + ._names + .indexOf(t); + n < 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 ay = function (t, n) { + var e = fi(t + ""); + if (arguments.length < 2) { + for (var r = li(this.node()), i = -1, o = e.length; ++i < o;) + if (!r.contains(e[i])) + return !1; + return !0 + } + return this.each(("function" == typeof n + ? yi + : n + ? vi + : _i)(e, n)) + }, + cy = function (t) { + return arguments.length + ? this.each(null == t + ? gi + : ("function" == typeof t + ? xi + : mi)(t)) + : this + .node() + .textContent + }, + sy = function (t) { + return arguments.length + ? this.each(null == t + ? bi + : ("function" == typeof t + ? Mi + : wi)(t)) + : this + .node() + .innerHTML + }, + fy = function () { + return this.each(Ti) + }, + ly = function () { + return this.each(Ni) + }, + hy = function (t) { + var n = "function" == typeof t + ? t + : N_(t); + return this.select(function () { + return this.appendChild(n.apply(this, arguments)) + }) + }, + py = function (t, n) { + var e = "function" == typeof t + ? t + : N_(t), + r = null == n + ? ki + : "function" == typeof n + ? n + : D_(n); + return this.select(function () { + return this.insertBefore(e.apply(this, arguments), r.apply(this, arguments) || null) + }) + }, + dy = function () { + return this.each(Si) + }, + vy = function (t) { + return arguments.length + ? this.property("__data__", t) + : this + .node() + .__data__ + }, + _y = function (t, n) { + return this.each(("function" == typeof n + ? Ci + : Ei)(t, n)) + }, + yy = [null]; + zi.prototype = Pi.prototype = { + constructor: zi, + select: O_, + selectAll: I_, + filter: Y_, + data: V_, + enter: j_, + exit: W_, + merge: $_, + order: Z_, + sort: G_, + call: J_, + nodes: Q_, + node: K_, + size: ty, + empty: ny, + each: ey, + attr: ry, + style: oy, + property: uy, + classed: ay, + text: cy, + html: sy, + raise: fy, + lower: ly, + append: hy, + insert: py, + remove: dy, + datum: vy, + on: q_, + dispatch: _y + }; + var gy = function (t) { + return "string" == typeof t + ? new zi([ + [document.querySelector(t)] + ], [document.documentElement]) + : new zi([ + [t] + ], yy) + }, + my = function (t) { + return "string" == typeof t + ? new zi([document.querySelectorAll(t)], [document.documentElement]) + : new zi([null == t + ? [] + : t], yy) + }, + xy = function (t, n, e) { + arguments.length < 3 && (e = n, n = L_().changedTouches); + for (var r, i = 0, o = n + ? n.length + : 0; i < o; ++i) + if ((r = n[i]).identifier === e) + return R_(t, r); + return null + }, + by = function (t, n) { + null == n && (n = L_().touches); + for (var e = 0, r = n + ? n.length + : 0, i = new Array(r); e < r; ++e) + i[e] = R_(t, n[e]); + return i + }, + wy = Pn("start", "end", "interrupt"), + My = [], + Ty = 0, + Ny = 1, + ky = 2, + Sy = 3, + Ay = 4, + Ey = 5, + Cy = 6, + zy = function (t, n, e, r, i, o) { + var u = t.__transition; + if (u) { + if (e in u) + return + } else + t.__transition = {}; + Ui(t, e, { + name: n, + index: r, + group: i, + on: wy, + tween: My, + time: o.time, + delay: o.delay, + duration: o.duration, + ease: o.ease, + timer: null, + state: Ty + }) + }, + Py = function (t, n) { + var e, + r, + i, + o = t.__transition, + u = !0; + if (o) { + n = null == n + ? null + : n + ""; + for (i in o) + (e = o[i]).name === n + ? (r = e.state > ky && e.state < Ey, e.state = Cy, e.timer.stop(), r && e.on.call("interrupt", t, t.__data__, e.index, e.group), delete o[i]) + : u = !1; + u && delete t.__transition + } + }, + qy = function (t) { + return this.each(function () { + Py(this, t) + }) + }, + Ly = function (t, n) { + var e = this._id; + if (t += "", arguments.length < 2) { + for (var r, i = Ri(this.node(), e).tween, o = 0, u = i.length; o < u; ++o) + if ((r = i[o]).name === t) + return r.value; + return null + } + return this.each((null == n + ? Di + : Oi)(e, t, n)) + }, + Ry = function (t, n) { + var e; + return ("number" == typeof n + ? lp + : n instanceof Bt + ? up + : (e = Bt(n)) + ? (n = e, up) + : vp)(t, n) + }, + Uy = function (t, n) { + var e = T_(t), + r = "transform" === e + ? wp + : Ry; + return this.attrTween(t, "function" == typeof n + ? (e.local + ? Xi + : Hi)(e, r, Fi(this, "attr." + t, n)) + : null == n + ? (e.local + ? Yi + : Ii)(e) + : (e.local + ? ji + : Bi)(e, r, n)) + }, + Dy = 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 = T_(t); + return this.tween(e, (r.local + ? Vi + : Wi)(r, n)) + }, + Oy = function (t) { + var n = this._id; + return arguments.length + ? this.each(("function" == typeof t + ? $i + : Zi)(n, t)) + : Ri(this.node(), n).delay + }, + Fy = function (t) { + var n = this._id; + return arguments.length + ? this.each(("function" == typeof t + ? Gi + : Ji)(n, t)) + : Ri(this.node(), n).duration + }, + Iy = function (t) { + var n = this._id; + return arguments.length + ? this.each(Qi(n, t)) + : Ri(this.node(), n).ease + }, + Yy = function (t) { + "function" != typeof t && (t = C_(t)); + for (var n = this._groups, e = n.length, r = new Array(e), i = 0; i < e; ++i) + for (var o, u = n[i], a = u.length, c = r[i] = [], s = 0; s < a; ++s) + (o = u[s]) && t.call(o, o.__data__, s, u) && c.push(o); + return new so(r, this._parents, this._name, this._id) + }, + By = 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), u = new Array(r), a = 0; a < o; ++a) + for (var c, s = n[a], f = e[a], l = s.length, h = u[a] = new Array(l), p = 0; p < l; ++p) + (c = s[p] || f[p]) && (h[p] = c); + for (; a < r; ++a) + u[a] = n[a]; + return new so(u, this._parents, this._name, this._id) + }, + jy = function (t, n) { + var e = this._id; + return arguments.length < 2 + ? Ri(this.node(), e) + .on + .on(t) + : this.each(to(e, t, n)) + }, + Hy = function () { + return this.on("end.remove", no(this._id)) + }, + Xy = function (t) { + var n = this._name, + e = this._id; + "function" != typeof t && (t = D_(t)); + for (var r = this._groups, i = r.length, o = new Array(i), u = 0; u < i; ++u) + for (var a, c, s = r[u], f = s.length, l = o[u] = new Array(f), h = 0; h < f; ++h) + (a = s[h]) && (c = t.call(a, a.__data__, h, s)) && ("__data__" in a && (c.__data__ = a.__data__), l[h] = c, zy(l[h], n, e, h, l, Ri(a, e))); + return new so(o, this._parents, n, e) + }, + Vy = function (t) { + var n = this._name, + e = this._id; + "function" != typeof t && (t = F_(t)); + for (var r = this._groups, i = r.length, o = [], u = [], a = 0; a < i; ++a) + for (var c, s = r[a], f = s.length, l = 0; l < f; ++l) + if (c = s[l]) { + for (var h, p = t.call(c, c.__data__, l, s), d = Ri(c, e), v = 0, _ = p.length; v < _; ++v) + (h = p[v]) && zy(h, n, e, v, p, d); + o.push(p), + u.push(c) + } + return new so(o, u, n, e) + }, + Wy = Pi.prototype.constructor, + $y = function () { + return new Wy(this._groups, this._parents) + }, + Zy = function (t, n, e) { + var r = "transform" == (t += "") + ? bp + : Ry; + return null == n + ? this + .styleTween(t, eo(t, r)) + .on("end.style." + t, ro(t)) + : this.styleTween(t, "function" == typeof n + ? oo(t, r, Fi(this, "style." + t, n)) + : io(t, r, n), e) + }, + Gy = 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, uo(t, n, null == e + ? "" + : e)) + }, + Jy = function (t) { + return this.tween("text", "function" == typeof t + ? co(Fi(this, "text", t)) + : ao(null == t + ? "" + : t + "")) + }, + Qy = function () { + for (var t = this._name, n = this._id, e = lo(), r = this._groups, i = r.length, o = 0; o < i; ++o) + for (var u, a = r[o], c = a.length, s = 0; s < c; ++s) + if (u = a[s]) { + var f = Ri(u, n); + zy(u, t, e, s, a, { + time: f.time + f.delay + f.duration, + delay: 0, + duration: f.duration, + ease: f.ease + }) + } + return new so(r, this._parents, t, e) + }, + Ky = 0, + tg = Pi.prototype; + so.prototype = fo.prototype = { + constructor: so, + select: Xy, + selectAll: Vy, + filter: Yy, + merge: By, + selection: $y, + transition: Qy, + call: tg.call, + nodes: tg.nodes, + node: tg.node, + size: tg.size, + empty: tg.empty, + each: tg.each, + on: jy, + attr: Uy, + attrTween: Dy, + style: Zy, + styleTween: Gy, + text: Jy, + remove: Hy, + tween: Ly, + delay: Oy, + duration: Fy, + ease: Iy + }; + var ng = { + time: null, + delay: 0, + duration: 250, + ease: g + }, + eg = function (t) { + var n, + e; + t instanceof so + ? (n = t._id, t = t._name) + : (n = lo(), (e = ng).time = jn(), t = null == t + ? null + : t + ""); + for (var r = this._groups, i = r.length, o = 0; o < i; ++o) + for (var u, a = r[o], c = a.length, s = 0; s < c; ++s) + (u = a[s]) && zy(u, t, n, s, a, e || ho(u, n)); + return new so(r, this._parents, t, n) + }; + Pi.prototype.interrupt = qy, + Pi.prototype.transition = eg; + var rg = [null], + ig = function (t, n) { + var e, + r, + i = t.__transition; + if (i) { + n = null == n + ? null + : n + ""; + for (r in i) + if ((e = i[r]).state > Ny && e.name === n) + return new so([ + [t] + ], rg, n, + r) + } + return null + }, + og = Array.prototype.slice, + ug = function (t) { + return t + }, + ag = 1, + cg = 2, + sg = 3, + fg = 4, + lg = 1e-6, + hg = function () { + function t(t) { + var o, + u = 0; + t.eachAfter(function (t) { + var e = t.children; + e + ? (t.x = To(e), t.y = ko(e)) + : (t.x = o + ? u += n(t, o) + : 0, t.y = 0, o = t) + }); + var a = Ao(t), + c = Eo(t), + s = a.x - n(a, c) / 2, + f = c.x + n(c, a) / 2; + return t.eachAfter(i + ? function (n) { + n.x = (n.x - t.x) * e, + n.y = (t.y - n.y) * r + } + : function (n) { + n.x = (n.x - s) / (f - s) * e, + n.y = (1 - (t.y + ? n.y / t.y + : 1)) * r + }) + } + var n = Mo, + e = 1, + r = 1, + i = !1; + return t.separation = function (e) { + return arguments.length + ? (n = e, t) + : n + }, + t.size = function (n) { + return arguments.length + ? (i = !1, e =+ n[0], r =+ n[1], t) + : i + ? null + : [e, r] + }, + t.nodeSize = function (n) { + return arguments.length + ? (i = !0, e =+ n[0], r =+ n[1], t) + : i + ? [e, r] + : null + }, + t + }, + pg = function (t) { + var n, + e, + r, + i, + o = this, + u = [o]; + do + for (n = u.reverse(), u = []; o = n.pop();) + if (t(o), e = o.children) + for (r = 0, i = e.length; r < i; ++r) + u.push(e[r]); + while (u.length); + return this + }, + dg = function (t) { + for (var n, e, r = this, i = [r]; r = i.pop();) + if (t(r), n = r.children) + for (e = n.length - 1; e >= 0; --e) + i.push(n[e]); + return this + }, + vg = function (t) { + for (var n, e, r, i = this, o = [i], u = []; i = o.pop();) + if (u.push(i), n = i.children) + for (e = 0, r = n.length; e < r; ++e) + o.push(n[e]); + for (; i = u.pop();) + t(i); + return this + }, + _g = 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 + }) + }, + yg = function (t) { + return this.eachBefore(function (n) { + n.children && n + .children + .sort(t) + }) + }, + gg = function (t) { + for (var n = this, e = Co(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 + }, + mg = function () { + for (var t = this, n = [t]; t = t.parent;) + n.push(t); + return n + }, + xg = function () { + var t = []; + return this.each(function (n) { + t.push(n) + }), + t + }, + bg = function () { + var t = []; + return this.eachBefore(function (n) { + n.children || t.push(n) + }), + t + }, + wg = function () { + var t = this, + n = []; + return t.each(function (e) { + e !== t && n.push({source: e.parent, target: e}) + }), + n + }; + Uo.prototype = zo.prototype = { + constructor: Uo, + each: pg, + eachAfter: vg, + eachBefore: dg, + sum: _g, + sort: yg, + path: gg, + ancestors: mg, + descendants: xg, + leaves: bg, + links: wg, + copy: Po + }; + var Mg = function (t) { + for (var n, e = (t = t.slice()).length, r = null, i = r; e;) { + var o = new Do(t[e - 1]); + i = i + ? i.next = o + : r = o, + t[n] = t[--e] + } + return {head: r, tail: i} + }, + Tg = function (t) { + return Fo(Mg(t), []) + }, + Ng = function (t) { + return Wo(t), + t + }, + kg = function (t) { + return function () { + return t + } + }, + Sg = function () { + function t(t) { + return t.x = e / 2, + t.y = r / 2, + n + ? t + .eachBefore(Qo(n)) + .eachAfter(Ko(i, .5)) + .eachBefore(tu(1)) + : t + .eachBefore(Qo(Jo)) + .eachAfter(Ko(Go, 1)) + .eachAfter(Ko(i, t.r / Math.min(e, r))) + .eachBefore(tu(Math.min(e, r) / (2 * t.r))), + t + } + var n = null, + e = 1, + r = 1, + i = Go; + return t.radius = function (e) { + return arguments.length + ? (n = $o(e), t) + : n + }, + t.size = function (n) { + return arguments.length + ? (e =+ n[0], r =+ n[1], t) + : [e, r] + }, + t.padding = function (n) { + return arguments.length + ? (i = "function" == typeof n + ? n + : kg(+ n), t) + : i + }, + t + }, + Ag = function (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) + }, + Eg = function (t, n, e, r, i) { + for (var o, u = t.children, a = -1, c = u.length, s = t.value && (r - n) / t.value; ++a < c;) + o = u[a], + o.y0 = e, + o.y1 = i, + o.x0 = n, + o.x1 = n += o.value * s + }, + Cg = function () { + function t(t) { + var u = t.height + 1; + return t.x0 = t.y0 = i, + t.x1 = e, + t.y1 = r / u, + t.eachBefore(n(r, u)), + o && t.eachBefore(Ag), + t + } + function n(t, n) { + return function (e) { + e.children && Eg(e, e.x0, t * (e.depth + 1) / n, e.x1, t * (e.depth + 2) / n); + var r = e.x0, + o = e.y0, + u = e.x1 - i, + a = e.y1 - i; + u < r && (r = u = (r + u) / 2), + a < o && (o = a = (o + a) / 2), + e.x0 = r, + e.y0 = o, + e.x1 = u, + e.y1 = a + } + } + var e = 1, + r = 1, + i = 0, + o = !1; + return t.round = function (n) { + return arguments.length + ? (o = !!n, t) + : o + }, + t.size = function (n) { + return arguments.length + ? (e =+ n[0], r =+ n[1], t) + : [e, r] + }, + t.padding = function (n) { + return arguments.length + ? (i =+ n, t) + : i + }, + t + }, + zg = "$", + Pg = { + depth: -1 + }, + qg = {}, + Lg = function () { + function t(t) { + var r, + i, + o, + u, + a, + c, + s, + f = t.length, + l = new Array(f), + h = {}; + for (i = 0; i < f; ++i) + r = t[i], + a = l[i] = new Uo(r), + null != (c = n(r, i, t)) && (c += "") && (s = zg + (a.id = c), h[s] = s in h + ? qg + : a); + for (i = 0; i < f; ++i) + if (a = l[i], c = e(t[i], i, t), null != c && (c += "")) { + if (u = h[zg + c], !u) + throw new Error("missing: " + c); + if (u === qg) + throw new Error("ambiguous: " + c); + u.children + ? u + .children + .push(a) + : u.children = [a], + a.parent = u + } + else { + if (o) + throw new Error("multiple roots"); + o = a + } + if (!o) + throw new Error("no root"); + if (o.parent = Pg, o.eachBefore(function (t) { + t.depth = t.parent.depth + 1, + --f + }).eachBefore(Ro), o.parent = null, f > 0) + throw new Error("cycle"); + return o + } + var n = nu, + e = eu; + return t.id = function (e) { + return arguments.length + ? (n = Zo(e), t) + : n + }, + t.parentId = function (n) { + return arguments.length + ? (e = Zo(n), t) + : e + }, + t + }; + su.prototype = Object.create(Uo.prototype); + var Rg = function () { + function t(t) { + var r = fu(t); + if (r.eachAfter(n), r.parent.m = -r.z, r.eachBefore(e), c) + t.eachBefore(i); + else { + var s = t, + f = t, + l = t; + t.eachBefore(function (t) { + t.x < s.x && (s = t), + t.x > f.x && (f = t), + t.depth > l.depth && (l = t) + }); + var h = s === f + ? 1 + : o(s, f) / 2, + p = h - s.x, + d = u / (f.x + h + p), + v = a / (l.depth || 1); + t.eachBefore(function (t) { + t.x = (t.x + p) * d, + t.y = t.depth * v + }) + } + return t + } + function n(t) { + var n = t.children, + e = t.parent.children, + i = t.i + ? e[t.i - 1] + : null; + if (n) { + au(t); + var u = (n[0].z + n[n.length - 1].z) / 2; + i + ? (t.z = i.z + o(t._, i._), t.m = t.z - u) + : t.z = u + } else + i && (t.z = i.z + o(t._, i._)); + t.parent.A = r(t, i, t.parent.A || e[0]) + } + function e(t) { + t._.x = t.z + t.parent.m, + t.m += t.parent.m + } + function r(t, n, e) { + if (n) { + for (var r, i = t, u = t, a = n, c = i.parent.children[0], s = i.m, f = u.m, l = a.m, h = c.m; a = ou(a), i = iu(i), a && i;) + c = iu(c), + u = ou(u), + u.a = t, + r = a.z + l - i.z - s + o(a._, i._), + r > 0 && (uu(cu(a, t, e), t, r), s += r, f += r), + l += a.m, + s += i.m, + h += c.m, + f += u.m; + a && !ou(u) && (u.t = a, u.m += l - f), + i && !iu(c) && (c.t = i, c.m += s - h, e = t) + } + return e + } + function i(t) { + t.x *= u, + t.y = t.depth * a + } + var o = ru, + u = 1, + a = 1, + c = null; + return t.separation = function (n) { + return arguments.length + ? (o = n, t) + : o + }, + t.size = function (n) { + return arguments.length + ? (c = !1, u =+ n[0], a =+ n[1], t) + : c + ? null + : [u, a] + }, + t.nodeSize = function (n) { + return arguments.length + ? (c = !0, u =+ n[0], a =+ n[1], t) + : c + ? [u, a] + : null + }, + t + }, + Ug = function (t, n, e, r, i) { + for (var o, u = t.children, a = -1, c = u.length, s = t.value && (i - e) / t.value; ++a < c;) + o = u[a], + o.x0 = n, + o.x1 = r, + o.y0 = e, + o.y1 = e += o.value * s + }, + Dg = (1 + Math.sqrt(5)) / 2, + Og = function t(n) { + function e(t, e, r, i, o) { + lu(n, t, e, r, i, o) + } + return e.ratio = function (n) { + return t((n =+ n) > 1 + ? n + : 1) + }, + e + }(Dg), + Fg = function () { + function t(t) { + return t.x0 = t.y0 = 0, + t.x1 = i, + t.y1 = o, + t.eachBefore(n), + u = [0], + r && t.eachBefore(Ag), + t + } + function n(t) { + var n = u[t.depth], + r = t.x0 + n, + i = t.y0 + n, + o = t.x1 - n, + h = t.y1 - n; + o < r && (r = o = (r + o) / 2), + h < i && (i = h = (i + h) / 2), + t.x0 = r, + t.y0 = i, + t.x1 = o, + t.y1 = h, + t.children && (n = u[t.depth + 1] = a(t) / 2, r += l(t) - n, i += c(t) - n, o -= s(t) - n, h -= f(t) - n, o < r && (r = o = (r + o) / 2), h < i && (i = h = (i + h) / 2), e(t, r, i, o, h)) + } + var e = Og, + r = !1, + i = 1, + o = 1, + u = [0], + a = Go, + c = Go, + s = Go, + f = Go, + l = Go; + return t.round = function (n) { + return arguments.length + ? (r = !!n, t) + : r + }, + t.size = function (n) { + return arguments.length + ? (i =+ n[0], o =+ n[1], t) + : [i, o] + }, + t.tile = function (n) { + return arguments.length + ? (e = Zo(n), t) + : e + }, + t.padding = function (n) { + return arguments.length + ? t + .paddingInner(n) + .paddingOuter(n) + : t.paddingInner() + }, + t.paddingInner = function (n) { + return arguments.length + ? (a = "function" == typeof n + ? n + : kg(+ n), t) + : a + }, + t.paddingOuter = function (n) { + return arguments.length + ? t + .paddingTop(n) + .paddingRight(n) + .paddingBottom(n) + .paddingLeft(n) + : t.paddingTop() + }, + t.paddingTop = function (n) { + return arguments.length + ? (c = "function" == typeof n + ? n + : kg(+ n), t) + : c + }, + t.paddingRight = function (n) { + return arguments.length + ? (s = "function" == typeof n + ? n + : kg(+ n), t) + : s + }, + t.paddingBottom = function (n) { + return arguments.length + ? (f = "function" == typeof n + ? n + : kg(+ n), t) + : f + }, + t.paddingLeft = function (n) { + return arguments.length + ? (l = "function" == typeof n + ? n + : kg(+ n), t) + : l + }, + t + }, + Ig = function (t, n, e, r, i) { + function o(t, n, e, r, i, u, a) { + if (t >= n - 1) { + var s = c[t]; + return s.x0 = r, + s.y0 = i, + s.x1 = u, + s.y1 = a, + void 0 + } + for (var l = f[t], h = e / 2 + l, p = t + 1, d = n - 1; p < d;) { + var v = p + d >>> 1; + f[v] < h + ? p = v + 1 + : d = v + } + var _ = f[p] - l, + y = e - _; + if (a - i > u - r) { + var g = (i * y + a * _) / e; + o(t, p, _, r, i, u, g), + o(p, n, y, r, g, u, a) + } else { + var m = (r * y + u * _) / e; + o(t, p, _, r, i, m, a), + o(p, n, y, m, i, u, a) + } + } + var u, + a, + c = t.children, + s = c.length, + f = new Array(s + 1); + for (f[0] = a = u = 0; u < s; ++u) + f[u + 1] = a += c[u].value; + o(0, s, t.value, n, e, r, i) + }, + Yg = function (t, n, e, r, i) { + (1 & t.depth + ? Ug + : Eg)(t, n, e, r, i) + }, + Bg = function t(n) { + function e(t, e, r, i, o) { + if ((u = t._squarify) && u.ratio === n) + for (var u, a, c, s, f, l = -1, h = u.length, p = t.value; ++l < h;) { + for (a = u[l], c = a.children, s = a.value = 0, f = c.length; s < f; ++s) + a.value += c[s].value; + a.dice + ? Eg(a, e, r, i, r += (o - r) * a.value / p) + : Ug(a, e, r, e += (i - e) * a.value / p, o), + p -= a.value + } + else + t._squarify = u = lu(n, t, e, r, i, o), + u.ratio = n + } + return e.ratio = function (n) { + return t((n =+ n) > 1 + ? n + : 1) + }, + e + }(Dg), + jg = function (t, n) { + function e() { + var e, + i, + o = r.length, + u = 0, + a = 0; + for (e = 0; e < o; ++e) + i = r[e], + u += i.x, + a += i.y; + for (u = u / o - t, a = a / o - n, e = 0; e < o; ++e) + i = r[e], + i.x -= u, + i.y -= a + } + var r; + return null == t && (t = 0), + null == n && (n = 0), + e.initialize = function (t) { + r = t + }, + e.x = function (n) { + return arguments.length + ? (t =+ n, e) + : t + }, + e.y = function (t) { + return arguments.length + ? (n =+ t, e) + : n + }, + e + }, + Hg = function (t) { + return function () { + return t + } + }, + Xg = function () { + return 1e-6 * (Math.random() - .5) + }, + Vg = function (t) { + function n() { + function t(t, e, r, i, o) { + var a = t.data, + p = t.r, + d = l + p; + { + if (!a) + return e > s + d || i < s - d || r > f + d || o < f - d; + if (a.index > n) { + var v = s - a.x - a.vx, + _ = f - a.y - a.vy, + y = v * v + _ * _; + y < d * d && (0 === v && (v = Xg(), y += v * v), 0 === _ && (_ = Xg(), y += _ * _), y = (d - (y = Math.sqrt(y))) / y * u, c.vx += (v *= y) * (d = (p *= p) / (h + p)), c.vy += (_ *= y) * d, a.vx -= v * (d = 1 - d), a.vy -= _ * d) + } + } + } + for (var n, r, c, s, f, l, h, p = i.length, d = 0; d < a; ++d) + for (r = I(i, hu, pu).visitAfter(e), n = 0; n < p; ++n) + c = i[n], + l = o[n], + h = l * l, + s = c.x + c.vx, + f = c.y + c.vy, + r.visit(t) + } + function e(t) { + if (t.data) + return t.r = o[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 r() { + if (i) { + var n, + e = i.length; + for (o = new Array(e), n = 0; n < e; ++n) + o[n] =+ t(i[n], n, i) + } + } + var i, + o, + u = 1, + a = 1; + return "function" != typeof t && (t = Hg(null == t + ? 1 :+ t)), + n.initialize = function (t) { + i = t, + r() + }, + n.iterations = function (t) { + return arguments.length + ? (a =+ t, n) + : a + }, + n.strength = function (t) { + return arguments.length + ? (u =+ t, n) + : u + }, + n.radius = function (e) { + return arguments.length + ? (t = "function" == typeof e + ? e + : Hg(+ e), r(), n) + : t + }, + n + }, + Wg = function (t) { + function n(t) { + return 1 / Math.min(f[t.source.index], f[t.target.index]) + } + function e(n) { + for (var e = 0, r = t.length; e < v; ++e) + for (var i, o, u, s, f, h, p, d = 0; d < r; ++d) + i = t[d], + o = i.source, + u = i.target, + s = u.x + u.vx - o.x - o.vx || Xg(), + f = u.y + u.vy - o.y - o.vy || Xg(), + h = Math.sqrt(s * s + f * f), + h = (h - c[d]) / h * n * a[d], + s *= h, + f *= h, + u.vx -= s * (p = l[d]), + u.vy -= f * p, + o.vx += s * (p = 1 - p), + o.vy += f * p + } + function r() { + if (s) { + var n, + e, + r = s.length, + p = t.length, + d = o(s, h); + for (n = 0, f = new Array(r); n < r; ++n) + f[n] = 0; + for (n = 0; n < p; ++n) + e = t[n], + e.index = n, + "object" != typeof e.source && (e.source = vu(d, e.source)), + "object" != typeof e.target && (e.target = vu(d, e.target)), + ++f[e.source.index], + ++f[e.target.index]; + for (n = 0, l = new Array(p); n < p; ++n) + e = t[n], + l[n] = f[e.source.index] / (f[e.source.index] + f[e.target.index]); + a = new Array(p), + i(), + c = new Array(p), + u() + } + } + function i() { + if (s) + for (var n = 0, e = t.length; n < e; ++n) + a[n] =+ p(t[n], n, t) + } + function u() { + if (s) + for (var n = 0, e = t.length; n < e; ++n) + c[n] =+ d(t[n], n, t) + } + var a, + c, + s, + f, + l, + h = du, + p = n, + d = Hg(30), + v = 1; + return null == t && (t = []), + e.initialize = function (t) { + s = t, + r() + }, + e.links = function (n) { + return arguments.length + ? (t = n, r(), e) + : t + }, + e.id = function (t) { + return arguments.length + ? (h = t, e) + : h + }, + e.iterations = function (t) { + return arguments.length + ? (v =+ t, e) + : v + }, + e.strength = function (t) { + return arguments.length + ? (p = "function" == typeof t + ? t + : Hg(+ t), i(), e) + : p + }, + e.distance = function (t) { + return arguments.length + ? (d = "function" == typeof t + ? t + : Hg(+ t), u(), e) + : d + }, + e + }, + $g = 10, + Zg = Math.PI * (3 - Math.sqrt(5)), + Gg = function (t) { + function n() { + e(), + d.call("tick", u), + a < c && (p.stop(), d.call("end", u)) + } + function e() { + var n, + e, + r = t.length; + for (a += (f - a) * s, h.each(function (t) { + t(a) + }), n = 0; n < r; ++n) + e = t[n], + null == e.fx + ? e.x += e.vx *= l + : (e.x = e.fx, e.vx = 0), + null == e.fy + ? e.y += e.vy *= l + : (e.y = e.fy, e.vy = 0) + } + function r() { + for (var n, e = 0, r = t.length; e < r; ++e) { + if (n = t[e], n.index = e, isNaN(n.x) || isNaN(n.y)) { + var i = $g * Math.sqrt(e), + o = e * Zg; + n.x = i * Math.cos(o), + n.y = i * Math.sin(o) + } + (isNaN(n.vx) || isNaN(n.vy)) && (n.vx = n.vy = 0) + } + } + function i(n) { + return n.initialize && n.initialize(t), + n + } + var u, + a = 1, + c = .001, + s = 1 - Math.pow(c, 1 / 300), + f = 0, + l = .6, + h = o(), + p = Vn(n), + d = Pn("tick", "end"); + return null == t && (t = []), + r(), + u = { + tick: e, + restart: function () { + return p.restart(n), + u + }, + stop: function () { + return p.stop(), + u + }, + nodes: function (n) { + return arguments.length + ? (t = n, r(), h.each(i), u) + : t + }, + alpha: function (t) { + return arguments.length + ? (a =+ t, u) + : a + }, + alphaMin: function (t) { + return arguments.length + ? (c =+ t, u) + : c + }, + alphaDecay: function (t) { + return arguments.length + ? (s =+ t, u) :+ s + }, + alphaTarget: function (t) { + return arguments.length + ? (f =+ t, u) + : f + }, + velocityDecay: function (t) { + return arguments.length + ? (l = 1 - t, u) + : 1 - l + }, + force: function (t, n) { + return arguments.length > 1 + ? (null == n + ? h.remove(t) + : h.set(t, i(n)), u) + : h.get(t) + }, + find: function (n, e, r) { + var i, + o, + u, + a, + c, + s = 0, + f = t.length; + for (null == r + ? r = 1 / 0 + : r *= r, s = 0; s < f; ++s) + a = t[s], + i = n - a.x, + o = e - a.y, + u = i * i + o * o, + u < r && (c = a, r = u); + return c + }, + on: function (t, n) { + return arguments.length > 1 + ? (d.on(t, n), u) + : d.on(t) + } + } + }, + Jg = function () { + function t(t) { + var n, + a = i.length, + c = I(i, _u, yu).visitAfter(e); + for (u = t, n = 0; n < a; ++n) + o = i[n], + c.visit(r) + } + function n() { + if (i) { + var t, + n = i.length; + for (a = new Array(n), t = 0; t < n; ++t) + a[t] =+ c(i[t], t, i) + } + } + function e(t) { + var n, + e, + r, + i, + o, + u = 0; + if (t.length) { + for (r = i = o = 0; o < 4; ++o) + (n = t[o]) && (e = n.value) && (u += e, r += e * n.x, i += e * n.y); + t.x = r / u, + t.y = i / u + } else { + n = t, + n.x = n.data.x, + n.y = n.data.y; + do + u += a[n.data.index]; + while (n = n.next) + } + t.value = u + } + function r(t, n, e, r) { + if (!t.value) + return !0; + var i = t.x - o.x, + c = t.y - o.y, + h = r - n, + p = i * i + c * c; + if (h * h / l < p) + return p < f && (0 === i && (i = Xg(), p += i * i), 0 === c && (c = Xg(), p += c * c), p < s && (p = Math.sqrt(s * p)), o.vx += i * t.value * u / p, o.vy += c * t.value * u / p), + !0; + if (!(t.length || p >= f)) { + (t.data !== o || t.next) && (0 === i && (i = Xg(), p += i * i), 0 === c && (c = Xg(), p += c * c), p < s && (p = Math.sqrt(s * p))); + do + t.data !== o && (h = a[t.data.index] * u / p, o.vx += i * h, o.vy += c * h); + while (t = t.next) + } + } + var i, + o, + u, + a, + c = Hg(-30), + s = 1, + f = 1 / 0, + l = .81; + return t.initialize = function (t) { + i = t, + n() + }, + t.strength = function (e) { + return arguments.length + ? (c = "function" == typeof e + ? e + : Hg(+ e), n(), t) + : c + }, + t.distanceMin = function (n) { + return arguments.length + ? (s = n * n, t) + : Math.sqrt(s) + }, + t.distanceMax = function (n) { + return arguments.length + ? (f = n * n, t) + : Math.sqrt(f) + }, + t.theta = function (n) { + return arguments.length + ? (l = n * n, t) + : Math.sqrt(l) + }, + t + }, + Qg = function (t) { + function n(t) { + for (var n, e = 0, u = r.length; e < u; ++e) + n = r[e], + n.vx += (o[e] - n.x) * i[e] * t + } + function e() { + if (r) { + var n, + e = r.length; + for (i = new Array(e), o = new Array(e), n = 0; n < e; ++n) + i[n] = isNaN(o[n] =+ t(r[n], n, r)) + ? 0 :+ u(r[n], n, r) + } + } + var r, + i, + o, + u = Hg(.1); + return "function" != typeof t && (t = Hg(null == t + ? 0 :+ t)), + n.initialize = function (t) { + r = t, + e() + }, + n.strength = function (t) { + return arguments.length + ? (u = "function" == typeof t + ? t + : Hg(+ t), e(), n) + : u + }, + n.x = function (r) { + return arguments.length + ? (t = "function" == typeof r + ? r + : Hg(+ r), e(), n) + : t + }, + n + }, + Kg = function (t) { + function n(t) { + for (var n, e = 0, u = r.length; e < u; ++e) + n = r[e], + n.vy += (o[e] - n.y) * i[e] * t + } + function e() { + if (r) { + var n, + e = r.length; + for (i = new Array(e), o = new Array(e), n = 0; n < e; ++n) + i[n] = isNaN(o[n] =+ t(r[n], n, r)) + ? 0 :+ u(r[n], n, r) + } + } + var r, + i, + o, + u = Hg(.1); + return "function" != typeof t && (t = Hg(null == t + ? 0 :+ t)), + n.initialize = function (t) { + r = t, + e() + }, + n.strength = function (t) { + return arguments.length + ? (u = "function" == typeof t + ? t + : Hg(+ t), e(), n) + : u + }, + n.y = function (r) { + return arguments.length + ? (t = "function" == typeof r + ? r + : Hg(+ r), e(), n) + : t + }, + n + }, + tm = function () { + t + .event + .preventDefault(), + t + .event + .stopImmediatePropagation() + }, + nm = function (t) { + var n = t.document.documentElement, + e = gy(t).on("dragstart.drag", tm, !0); + "onselectstart" in n + ? e.on("selectstart.drag", tm, !0) + : (n.__noselect = n.style.MozUserSelect, n.style.MozUserSelect = "none") + }, + em = function (t) { + return function () { + return t + } + }; + xu.prototype.on = function () { + var t = this + ._ + .on + .apply(this._, arguments); + return t === this._ + ? this + : t + }; + var rm = function () { + function n(t) { + t + .on("mousedown.drag", e) + .on("touchstart.drag", o) + .on("touchmove.drag", u) + .on("touchend.drag touchcancel.drag", a) + .style("-webkit-tap-highlight-color", "rgba(0,0,0,0)") + } + function e() { + if (!f && l.apply(this, arguments)) { + var n = c("mouse", h.apply(this, arguments), U_, this, arguments); + n && (gy(t.event.view).on("mousemove.drag", r, !0).on("mouseup.drag", i, !0), nm(t.event.view), gu(), s = !1, n("start")) + } + } + function r() { + tm(), + s = !0, + d.mouse("drag") + } + function i() { + gy(t.event.view).on("mousemove.drag mouseup.drag", null), + mu(t.event.view, s), + tm(), + d.mouse("end") + } + function o() { + if (l.apply(this, arguments)) { + var n, + e, + r = t.event.changedTouches, + i = h.apply(this, arguments), + o = r.length; + for (n = 0; n < o; ++n) + (e = c(r[n].identifier, i, xy, this, arguments)) && (gu(), e("start")) + } + } + function u() { + var n, + e, + r = t.event.changedTouches, + i = r.length; + for (n = 0; n < i; ++n) + (e = d[r[n].identifier]) && (tm(), e("drag")) + } + function a() { + var n, + e, + r = t.event.changedTouches, + i = r.length; + for (f && clearTimeout(f), f = setTimeout(function () { + f = null + }, 500), n = 0; n < i; ++n) + (e = d[r[n].identifier]) && (gu(), e("end")) + } + function c(e, r, i, o, u) { + var a, + c, + s, + f = i(r, e), + l = v.copy(); + if (Xr(new xu(n, "beforestart", a, e, _, f[0], f[1], 0, 0, l), function () { + return null != (t.event.subject = a = p.apply(o, u)) && (c = a.x - f[0] || 0, s = a.y - f[1] || 0, !0) + })) + return function t(h) { + var p, + v = f; + switch (h) { + case "start": + d[e] = t, + p = _++; + break; + case "end": + delete d[e], + --_; + case "drag": + f = i(r, e), + p = _ + } + Xr(new xu(n, h, a, e, p, f[0] + c, f[1] + s, f[0] - v[0], f[1] - v[1], l), l.apply, l, [h, o, u]) + } + } + var s, + f, + l = bu, + h = wu, + p = Mu, + d = {}, + v = Pn("start", "drag", "end"), + _ = 0; + return n.filter = function (t) { + return arguments.length + ? (l = "function" == typeof t + ? t + : em(!!t), n) + : l + }, + n.container = function (t) { + return arguments.length + ? (h = "function" == typeof t + ? t + : em(t), n) + : h + }, + n.subject = function (t) { + return arguments.length + ? (p = "function" == typeof t + ? t + : em(t), n) + : p + }, + n.on = function () { + var t = v + .on + .apply(v, arguments); + return t === v + ? n + : t + }, + n + }, + im = function (t) { + return function () { + return t + } + }; + ku.prototype = { + constructor: ku, + insert: function (t, n) { + var e, + r, + i; + if (t) { + if (n.P = t, n.N = t.N, t.N && (t.N.P = n), t.N = n, t.R) { + for (t = t.R; t.L;) + t = t.L; + t.L = n + } else + t.R = n; + e = t + } else + this._ + ? (t = Cu(this._), n.P = null, n.N = t, t.P = t.L = n, e = t) + : (n.P = n.N = null, this._ = n, e = null); + for (n.L = n.R = null, n.U = e, n.C = !0, t = n; e && e.C;) + r = e.U, + e === r.L + ? (i = r.R, i && i.C + ? (e.C = i.C = !1, r.C = !0, t = r) + : (t === e.R && (Au(this, e), t = e, e = t.U), e.C = !1, r.C = !0, Eu(this, r))) + : (i = r.L, i && i.C + ? (e.C = i.C = !1, r.C = !0, t = r) + : (t === e.L && (Eu(this, e), t = e, e = t.U), e.C = !1, r.C = !0, Au(this, r))), + e = t.U; + this._.C = !1 + }, + remove: function (t) { + t.N && (t.N.P = t.P), + t.P && (t.P.N = t.N), + t.N = t.P = null; + var n, + e, + r, + i = t.U, + o = t.L, + u = t.R; + if (e = o + ? u + ? Cu(u) + : o + : u, i + ? i.L === t + ? i.L = e + : i.R = e + : this._ = e, o && u + ? (r = e.C, e.C = t.C, e.L = o, o.U = e, e !== u + ? (i = e.U, e.U = t.U, t = e.R, i.L = t, e.R = u, u.U = e) + : (e.U = i, i = e, t = e.R)) + : (r = t.C, t = e), t && (t.U = i), !r) { + if (t && t.C) + return void(t.C = !1); + do { + if (t === this._) + break; + if (t === i.L) { + if (n = i.R, n.C && (n.C = !1, i.C = !0, Au(this, i), n = i.R), n.L && n.L.C || n.R && n.R.C) { + n.R && n.R.C || (n.L.C = !1, n.C = !0, Eu(this, n), n = i.R), + n.C = i.C, + i.C = n.R.C = !1, + Au(this, i), + t = this._; + break + } + } else if (n = i.L, n.C && (n.C = !1, i.C = !0, Eu(this, i), n = i.L), n.L && n.L.C || n.R && n.R.C) { + n.L && n.L.C || (n.R.C = !1, n.C = !0, Au(this, n), n = i.L), + n.C = i.C, + i.C = n.L.C = !1, + Eu(this, i), + t = this._; + break + } + n.C = !0, + t = i, + i = i.U + } while (!t.C); + t && (t.C = !1) + } + } + }; + var om, + um, + am, + cm, + sm, + fm = [], + lm = [], + hm = 1e-6, + pm = 1e-12; + na.prototype = { + constructor: na, + polygons: function () { + var t = this.edges; + return this + .cells + .map(function (n) { + var e = n + .halfedges + .map(function (e) { + return Fu(n, t[e]) + }); + return e.data = n.site.data, + e + }) + }, + triangles: function () { + var t = [], + n = this.edges; + return this + .cells + .forEach(function (e, r) { + for (var i, o = e.site, u = e.halfedges, a = -1, c = u.length, s = n[u[c - 1]], f = s.left === o + ? s.right + : s.left; ++a < c;) + i = f, + s = n[u[a]], + f = s.left === o + ? s.right + : s.left, + i && f && r < i.index && r < f.index && Ku(o, i, f) < 0 && t.push([o.data, i.data, f.data]) + }), + t + }, + links: function () { + return this + .edges + .filter(function (t) { + return t.right + }) + .map(function (t) { + return {source: t.left.data, target: t.right.data} + }) + }, + find: function (t, n, e) { + var r, + i = this, + o = i._found || 0, + u = i.cells[o] || i.cells[o = 0], + a = t - u.site[0], + c = n - u.site[1], + s = a * a + c * c; + do + u = i.cells[r = o], + o = null, + u + .halfedges + .forEach(function (e) { + var r = i.edges[e], + a = r.left; + if (a !== u.site && a || (a = r.right)) { + var c = t - a[0], + f = n - a[1], + l = c * c + f * f; + l < s && (s = l, o = a.index) + } + }); + while (null !== o); + return i._found = r, + null == e || s <= e * e + ? u.site + : null + } + }; + var dm = function () { + function t(t) { + return new na(t.map(function (r, i) { + var o = [ + Math.round(n(r, i, t) / hm) * hm, + Math.round(e(r, i, t) / hm) * hm + ]; + return o.index = i, + o.data = r, + o + }), r) + } + var n = Tu, + e = Nu, + r = null; + return t.polygons = function (n) { + return t(n).polygons() + }, + t.links = function (n) { + return t(n).links() + }, + t.triangles = function (n) { + return t(n).triangles() + }, + t.x = function (e) { + return arguments.length + ? (n = "function" == typeof e + ? e + : im(+ e), t) + : n + }, + t.y = function (n) { + return arguments.length + ? (e = "function" == typeof n + ? n + : im(+ n), t) + : e + }, + t.extent = function (n) { + return arguments.length + ? (r = null == n + ? null + : [ + [ + n[0][0], + n[0][1] + ], + [ + n[1][0], + n[1][1] + ] + ], t) + : r && [ + [r[0][0], r[0][1] + ], + [r[1][0], r[1][1] + ] + ] + }, + t.size = function (n) { + return arguments.length + ? (r = null == n + ? null + : [ + [ + 0, 0 + ], + [ + n[0], + n[1] + ] + ], t) + : r && [r[1][0] - r[0][0], + r[1][1] - r[0][1] + ] + }, + t + }, + vm = function (t) { + return function () { + return t + } + }; + ra.prototype = { + constructor: ra, + scale: function (t) { + return 1 === t + ? this + : new ra(this.k * t, this.x, this.y) + }, + translate: function (t, n) { + return 0 === t & 0 === n + ? this + : new ra(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 _m = new ra(1, 0, 0); + ia.prototype = ra.prototype; + var ym = function () { + t + .event + .preventDefault(), + t + .event + .stopImmediatePropagation() + }, + gm = function () { + function n(t) { + t + .on("wheel.zoom", s) + .on("mousedown.zoom", f) + .on("dblclick.zoom", l) + .on("touchstart.zoom", h) + .on("touchmove.zoom", p) + .on("touchend.zoom touchcancel.zoom", d) + .style("-webkit-tap-highlight-color", "rgba(0,0,0,0)") + .property("__zoom", ca) + } + function e(t, n) { + return n = Math.max(m, Math.min(x, n)), + n === t.k + ? t + : new ra(n, t.x, t.y) + } + function r(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 ra(t.k, r, i) + } + function i(t, n) { + var e = Math.min(0, t.invertX(n[0][0]) - b) || Math.max(0, t.invertX(n[1][0]) - w), + r = Math.min(0, t.invertY(n[0][1]) - M) || Math.max(0, t.invertY(n[1][1]) - T); + return e || r + ? t.translate(e, r) + : t + } + function o(t) { + return [ + ( + t[0][0] + + t[1][0]) / 2, + ( + t[0][1] + + t[1][1]) / 2 + ] + } + function u(t, n, e) { + t + .on("start.zoom", function () { + a(this, arguments).start() + }) + .on("interrupt.zoom end.zoom", function () { + a(this, arguments).end() + }) + .tween("zoom", function () { + var t = this, + r = arguments, + i = a(t, r), + u = g.apply(t, r), + c = e || o(u), + s = Math.max(u[1][0] - u[0][0], u[1][1] - u[0][1]), + f = t.__zoom, + l = "function" == typeof n + ? n.apply(t, r) + : n, + h = Sp(f.invert(c).concat(s / f.k), l.invert(c).concat(s / l.k)); + return function (t) { + if (1 === t) + t = l; + else { + var n = h(t), + e = s / n[2]; + t = new ra(e, c[0] - n[0] * e, c[1] - n[1] * e) + } + i.zoom(null, t) + } + }) + } + function a(t, n) { + for (var e, r = 0, i = k.length; r < i; ++r) + if ((e = k[r]).that === t) + return e; + return new c(t, n) + } + function c(t, n) { + this.that = t, + this.args = n, + this.index = -1, + this.active = 0, + this.extent = g.apply(t, n) + } + function s() { + function n() { + o.wheel = null, + o.end() + } + if (y.apply(this, arguments)) { + var o = a(this, arguments), + u = this.__zoom, + c = Math.max(m, Math.min(x, u.k * Math.pow(2, -t.event.deltaY * (t.event.deltaMode + ? 120 + : 1) / 500))), + s = U_(this); + if (o.wheel) + o.mouse[0][0] === s[0] && o.mouse[0][1] === s[1] || (o.mouse[1] = u.invert(o.mouse[0] = s)), + clearTimeout(o.wheel); + else { + if (u.k === c) + return; + o.mouse = [ + s, u.invert(s) + ], + Py(this), + o.start() + } + ym(), + o.wheel = setTimeout(n, E), + o.zoom("mouse", i(r(e(u, c), o.mouse[0], o.mouse[1]), o.extent)) + } + } + function f() { + function n() { + ym(), + o.moved = !0, + o.zoom("mouse", i(r(o.that.__zoom, o.mouse[0] = U_(o.that), o.mouse[1]), o.extent)) + } + function e() { + u.on("mousemove.zoom mouseup.zoom", null), + mu(t.event.view, o.moved), + ym(), + o.end() + } + if (!_ && y.apply(this, arguments)) { + var o = a(this, arguments), + u = gy(t.event.view) + .on("mousemove.zoom", n, !0) + .on("mouseup.zoom", e, !0), + c = U_(this); + nm(t.event.view), + oa(), + o.mouse = [ + c, + this + .__zoom + .invert(c) + ], + Py(this), + o.start() + } + } + function l() { + if (y.apply(this, arguments)) { + var o = this.__zoom, + a = U_(this), + c = o.invert(a), + s = o.k * (t.event.shiftKey + ? .5 + : 2), + f = i(r(e(o, s), a, c), g.apply(this, arguments)); + ym(), + N > 0 + ? gy(this) + .transition() + .duration(N) + .call(u, f, a) + : gy(this).call(n.transform, f) + } + } + function h() { + if (y.apply(this, arguments)) { + var n, + e, + r, + i = a(this, arguments), + o = t.event.changedTouches, + u = o.length; + for (oa(), n = 0; n < u; ++n) + e = o[n], + r = xy(this, o, e.identifier), + r = [ + r, + this + .__zoom + .invert(r), + e.identifier + ], + i.touch0 + ? i.touch1 || (i.touch1 = r) + : i.touch0 = r; + return v && (v = clearTimeout(v), !i.touch1) + ? (i.end(), l.apply(this, arguments)) + : void(t.event.touches.length === u && (v = setTimeout(function () { + v = null + }, A), Py(this), i.start())) + } + } + function p() { + var n, + o, + u, + c, + s = a(this, arguments), + f = t.event.changedTouches, + l = f.length; + for (ym(), v && (v = clearTimeout(v)), n = 0; n < l; ++n) + o = f[n], + u = xy(this, f, o.identifier), + s.touch0 && s.touch0[2] === o.identifier + ? s.touch0[0] = u + : s.touch1 && s.touch1[2] === o.identifier && (s.touch1[0] = u); + if (o = s.that.__zoom, s.touch1) { + var h = s.touch0[0], + p = s.touch0[1], + d = s.touch1[0], + _ = s.touch1[1], + y = (y = d[0] - h[0]) * y + (y = d[1] - h[1]) * y, + g = (g = _[0] - p[0]) * g + (g = _[1] - p[1]) * g; + o = e(o, Math.sqrt(y / g)), + u = [ + (h[0] + d[0]) / 2, + (h[1] + d[1]) / 2 + ], + c = [ + (p[0] + _[0]) / 2, + (p[1] + _[1]) / 2 + ] + } else { + if (!s.touch0) + return; + u = s.touch0[0], + c = s.touch0[1] + } + s.zoom("touch", i(r(o, u, c), s.extent)) + } + function d() { + var n, + e, + r = a(this, arguments), + i = t.event.changedTouches, + o = i.length; + for (oa(), _ && clearTimeout(_), _ = setTimeout(function () { + _ = null + }, A), n = 0; n < o; ++n) + e = i[n], + r.touch0 && r.touch0[2] === e.identifier + ? delete r.touch0 + : r.touch1 && r.touch1[2] === e.identifier && delete r.touch1; + r.touch1 && !r.touch0 && (r.touch0 = r.touch1, delete r.touch1), + r.touch0 || r.end() + } + var v, + _, + y = ua, + g = aa, + m = 0, + x = 1 / 0, + b = -x, + w = x, + M = b, + T = w, + N = 250, + k = [], + S = Pn("start", "zoom", "end"), + A = 500, + E = 150; + return n.transform = function (t, n) { + var e = t.selection + ? t.selection() + : t; + e.property("__zoom", ca), + t !== e + ? u(t, n) + : e + .interrupt() + .each(function () { + a(this, arguments) + .start() + .zoom(null, "function" == typeof n + ? n.apply(this, arguments) + : n) + .end() + }) + }, + n.scaleBy = function (t, e) { + n + .scaleTo(t, function () { + var t = this.__zoom.k, + n = "function" == typeof e + ? e.apply(this, arguments) + : e; + return t * n + }) + }, + n.scaleTo = function (t, u) { + n + .transform(t, function () { + var t = g.apply(this, arguments), + n = this.__zoom, + a = o(t), + c = n.invert(a), + s = "function" == typeof u + ? u.apply(this, arguments) + : u; + return i(r(e(n, s), a, c), t) + }) + }, + n.translateBy = function (t, e, r) { + n + .transform(t, function () { + return i(this.__zoom.translate("function" == typeof e + ? e.apply(this, arguments) + : e, "function" == typeof r + ? r.apply(this, arguments) + : r), g.apply(this, arguments)) + }) + }, + c.prototype = { + start: function () { + return 1 === ++this.active && (this.index = k.push(this) - 1, 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 && (k.splice(this.index, 1), this.index = -1, this.emit("end")), + this + }, + emit: function (t) { + Xr(new ea(n, t, this.that.__zoom), S.apply, S, [t, this.that, this.args]) + } + }, + n.filter = function (t) { + return arguments.length + ? (y = "function" == typeof t + ? t + : vm(!!t), n) + : y + }, + n.extent = function (t) { + return arguments.length + ? (g = "function" == typeof t + ? t + : vm([ + [ + t[0][0], + t[0][1] + ], + [ + t[1][0], + t[1][1] + ] + ]), n) + : g + }, + n.scaleExtent = function (t) { + return arguments.length + ? (m =+ t[0], x =+ t[1], n) + : [m, x] + }, + n.translateExtent = function (t) { + return arguments.length + ? (b =+ t[0][0], w =+ t[1][0], M =+ t[0][1], T =+ t[1][1], n) + : [ + [ + b, M + ], + [w, T] + ] + }, + n.duration = function (t) { + return arguments.length + ? (N =+ t, n) + : N + }, + n.on = function () { + var t = S + .on + .apply(S, arguments); + return t === S + ? n + : t + }, + n + }, + mm = function (t) { + return function () { + return t + } + }, + xm = function (t, n, e) { + this.target = t, + this.type = n, + this.selection = e + }, + bm = function () { + t + .event + .preventDefault(), + t + .event + .stopImmediatePropagation() + }, + wm = { + name: "drag" + }, + Mm = { + name: "space" + }, + Tm = { + name: "handle" + }, + Nm = { + name: "center" + }, + km = { + name: "x", + handles: ["e", "w"].map(fa), + input: function (t, n) { + return t && [ + [t[0], n[0][1] + ], + [t[1], n[1][1] + ] + ] + }, + output: function (t) { + return t && [t[0][0], t[1][0] + ] + } + }, + Sm = { + name: "y", + handles: ["n", "s"].map(fa), + input: function (t, n) { + return t && [ + [ + n[0][0], t[0] + ], + [n[1][0], t[1]] + ] + }, + output: function (t) { + return t && [t[0][1], t[1][1] + ] + } + }, + Am = { + name: "xy", + handles: [ + "n", + "e", + "s", + "w", + "nw", + "ne", + "se", + "sw" + ].map(fa), + input: function (t) { + return t + }, + output: function (t) { + return t + } + }, + Em = { + 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" + }, + Cm = { + e: "w", + w: "e", + nw: "ne", + ne: "nw", + se: "sw", + sw: "se" + }, + zm = { + n: "s", + s: "n", + nw: "sw", + ne: "se", + se: "ne", + sw: "nw" + }, + Pm = { + overlay: 1, + selection: 1, + n: null, + e: 1, + s: null, + w: -1, + nw: -1, + ne: 1, + se: 1, + sw: -1 + }, + qm = { + overlay: 1, + selection: 1, + n: -1, + e: null, + s: 1, + w: null, + nw: -1, + ne: -1, + se: 1, + sw: 1 + }, + Lm = function () { + return ga(Am) + }, + Rm = Math.cos, + Um = Math.sin, + Dm = Math.PI, + Om = Dm / 2, + Fm = 2 * Dm, + Im = Math.max, + Ym = function () { + function t(t) { + var o, + u, + a, + c, + s, + f, + l = t.length, + h = [], + p = Os(l), + d = [], + v = [], + _ = v.groups = new Array(l), + y = new Array(l * l); + for (o = 0, s = -1; ++s < l;) { + for (u = 0, f = -1; ++f < l;) + u += t[s][f]; + h.push(u), + d.push(Os(l)), + o += u + } + for (e && p.sort(function (t, n) { + return e(h[t], h[n]) + }), r && d.forEach(function (n, e) { + n + .sort(function (n, i) { + return r(t[e][n], t[e][i]) + }) + }), o = Im(0, Fm - n * l) / o, c = o + ? n + : Fm / l, u = 0, s = -1; ++s < l;) { + for (a = u, f = -1; ++f < l;) { + var g = p[s], + m = d[g][f], + x = t[g][m], + b = u, + w = u += x * o; + y[m * l + g] = { + index: g, + subindex: m, + startAngle: b, + endAngle: w, + value: x + } + } + _[g] = { + index: g, + startAngle: a, + endAngle: u, + value: h[g] + }, + u += c + } + for (s = -1; ++s < l;) + for (f = s - 1; ++f < l;) { + var M = y[f * l + s], + T = y[s * l + f]; + (M.value || T.value) && v.push(M.value < T.value + ? { + source: T, + target: M + } + : { + source: M, + target: T + }) + } + return i + ? v.sort(i) + : v + } + var n = 0, + e = null, + r = null, + i = null; + return t.padAngle = function (e) { + return arguments.length + ? (n = Im(0, e), t) + : n + }, + t.sortGroups = function (n) { + return arguments.length + ? (e = n, t) + : e + }, + t.sortSubgroups = function (n) { + return arguments.length + ? (r = n, t) + : r + }, + t.sortChords = function (n) { + return arguments.length + ? (null == n + ? i = null + : (i = ma(n))._ = n, t) + : i && i._ + }, + t + }, + Bm = Array.prototype.slice, + jm = function (t) { + return function () { + return t + } + }, + Hm = function () { + function t() { + var t, + a = Bm.call(arguments), + c = n.apply(this, a), + s = e.apply(this, a), + f =+ r.apply(this, (a[0] = c, a)), + l = i.apply(this, a) - Om, + h = o.apply(this, a) - Om, + p = f * Rm(l), + d = f * Um(l), + v =+ r.apply(this, (a[0] = s, a)), + _ = i.apply(this, a) - Om, + y = o.apply(this, a) - Om; + if (u || (u = t = L()), u.moveTo(p, d), u.arc(0, 0, f, l, h), l === _ && h === y || (u.quadraticCurveTo(0, 0, v * Rm(_), v * Um(_)), u.arc(0, 0, v, _, y)), u.quadraticCurveTo(0, 0, p, d), u.closePath(), t) + return u = null, + t + "" || null + } + var n = xa, + e = ba, + r = wa, + i = Ma, + o = Ta, + u = null; + return t.radius = function (n) { + return arguments.length + ? (r = "function" == typeof n + ? n + : jm(+ n), t) + : r + }, + t.startAngle = function (n) { + return arguments.length + ? (i = "function" == typeof n + ? n + : jm(+ n), t) + : i + }, + t.endAngle = function (n) { + return arguments.length + ? (o = "function" == typeof n + ? n + : jm(+ n), t) + : o + }, + t.source = function (e) { + return arguments.length + ? (n = e, t) + : n + }, + t.target = function (n) { + return arguments.length + ? (e = n, t) + : e + }, + t.context = function (n) { + return arguments.length + ? (u = null == n + ? null + : n, t) + : u + }, + t + }, + Xm = function () { + return new Na + }; + Na.prototype = { + constructor: Na, + reset: function () { + this.s = this.t = 0 + }, + add: function (t) { + ka(Mx, t, this.t), + ka(this, Mx.s, this.s), + this.s + ? this.t += Mx.t + : this.s = Mx.t + }, + valueOf: function () { + return this.s + } + }; + var Vm, + Wm, + $m, + Zm, + Gm, + Jm, + Qm, + Km, + tx, + nx, + ex, + rx, + ix, + ox, + ux, + ax, + cx, + sx, + fx, + lx, + hx, + px, + dx, + vx, + _x, + yx, + gx, + mx, + xx, + bx, + wx, + Mx = new Na, + Tx = 1e-6, + Nx = 1e-12, + kx = Math.PI, + Sx = kx / 2, + Ax = kx / 4, + Ex = 2 * kx, + Cx = 180 / kx, + zx = kx / 180, + Px = Math.abs, + qx = Math.atan, + Lx = Math.atan2, + Rx = Math.cos, + Ux = Math.ceil, + Dx = Math.exp, + Ox = Math.log, + Fx = Math.pow, + Ix = Math.sin, + Yx = Math.sign || function (t) { + return t > 0 + ? 1 + : t < 0 + ? -1 + : 0; + }, + Bx = Math.sqrt, + jx = Math.tan, + Hx = { + Feature: function (t, n) { + za(t.geometry, n) + }, + FeatureCollection: function (t, n) { + for (var e = t.features, r = -1, i = e.length; ++r < i;) + za(e[r].geometry, n) + } + }, + Xx = { + 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) { + Pa(t.coordinates, n, 0) + }, + MultiLineString: function (t, n) { + for (var e = t.coordinates, r = -1, i = e.length; ++r < i;) + Pa(e[r], n, 0) + }, + Polygon: function (t, n) { + qa(t.coordinates, n) + }, + MultiPolygon: function (t, n) { + for (var e = t.coordinates, r = -1, i = e.length; ++r < i;) + qa(e[r], n) + }, + GeometryCollection: function (t, n) { + for (var e = t.geometries, r = -1, i = e.length; ++r < i;) + za(e[r], n) + } + }, + Vx = function (t, n) { + t && Hx.hasOwnProperty(t.type) + ? Hx[t.type](t, n) + : za(t, n) + }, + Wx = Xm(), + $x = Xm(), + Zx = { + point: Ca, + lineStart: Ca, + lineEnd: Ca, + polygonStart: function () { + Wx.reset(), + Zx.lineStart = La, + Zx.lineEnd = Ra + }, + polygonEnd: function () { + var t =+ Wx; + $x.add(t < 0 + ? Ex + t + : t), + this.lineStart = this.lineEnd = this.point = Ca + }, + sphere: function () { + $x.add(Ex) + } + }, + Gx = function (t) { + return $x.reset(), + Vx(t, Zx), + 2 * $x + }, + Jx = Xm(), + Qx = { + point: Xa, + lineStart: Wa, + lineEnd: $a, + polygonStart: function () { + Qx.point = Za, + Qx.lineStart = Ga, + Qx.lineEnd = Ja, + Jx.reset(), + Zx.polygonStart() + }, + polygonEnd: function () { + Zx.polygonEnd(), + Qx.point = Xa, + Qx.lineStart = Wa, + Qx.lineEnd = $a, + Wx < 0 + ? (Jm = -(Km = 180), Qm = -(tx = 90)) + : Jx > Tx + ? tx = 90 + : Jx < -Tx && (Qm = -90), + ux[0] = Jm, + ux[1] = Km + } + }, + Kx = function (t) { + var n, + e, + r, + i, + o, + u, + a; + if (tx = Km = -(Jm = Qm = 1 / 0), ox = [], Vx(t, Qx), e = ox.length) { + for (ox.sort(Ka), n = 1, r = ox[0], o = [r]; n < e; ++n) + i = ox[n], + tc(r, i[0]) || tc(r, i[1]) + ? (Qa(r[0], i[1]) > Qa(r[0], r[1]) && (r[1] = i[1]), Qa(i[0], r[1]) > Qa(r[0], r[1]) && (r[0] = i[0])) + : o.push(r = i); + for (u = -(1 / 0), e = o.length - 1, n = 0, r = o[e]; n <= e; r = i, ++n) + i = o[n], + (a = Qa(r[1], i[0])) > u && (u = a, Jm = i[0], Km = r[1]) + } + return ox = ux = null, + Jm === 1 / 0 || Qm === 1 / 0 + ? [ + [ + NaN, NaN + ], + [NaN, NaN] + ] + : [ + [ + Jm, Qm + ], + [Km, tx] + ] + }, + tb = { + sphere: Ca, + point: nc, + lineStart: rc, + lineEnd: uc, + polygonStart: function () { + tb.lineStart = ac, + tb.lineEnd = cc + }, + polygonEnd: function () { + tb.lineStart = rc, + tb.lineEnd = uc + } + }, + nb = function (t) { + ax = cx = sx = fx = lx = hx = px = dx = vx = _x = yx = 0, + Vx(t, tb); + var n = vx, + e = _x, + r = yx, + i = n * n + e * e + r * r; + return i < Nx && (n = hx, e = px, r = dx, cx < Tx && (n = sx, e = fx, r = lx), i = n * n + e * e + r * r, i < Nx) + ? [NaN, NaN] + : [ + Lx(e, n) * Cx, + Aa(r / Bx(i)) * Cx + ] + }, + eb = function (t) { + return function () { + return t + } + }, + rb = function (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), + e && t.invert(e[0], e[1]) + }), + e + }; + lc.invert = lc; + var ib, + ob, + ub, + ab, + cb, + sb, + fb, + lb, + hb, + pb, + db, + vb = function (t) { + function n(n) { + return n = t(n[0] * zx, n[1] * zx), + n[0] *= Cx, + n[1] *= Cx, + n + } + return t = hc(t[0] * zx, t[1] * zx, t.length > 2 + ? t[2] * zx + : 0), + n.invert = function (n) { + return n = t.invert(n[0] * zx, n[1] * zx), + n[0] *= Cx, + n[1] *= Cx, + n + }, + n + }, + _b = function () { + function t(t, n) { + e.push(t = r(t, n)), + t[0] *= Cx, + t[1] *= Cx + } + function n() { + var t = i.apply(this, arguments), + n = o.apply(this, arguments) * zx, + c = u.apply(this, arguments) * zx; + return e = [], + r = hc(-t[0] * zx, -t[1] * zx, 0).invert, + _c(a, n, c, 1), + t = { + type: "Polygon", + coordinates: [e] + }, + e = r = null, + t + } + var e, + r, + i = eb([0, 0]), + o = eb(90), + u = eb(6), + a = { + point: t + }; + return n.center = function (t) { + return arguments.length + ? (i = "function" == typeof t + ? t + : eb([ + t[0], + t[1] + ]), n) + : i + }, + n.radius = function (t) { + return arguments.length + ? (o = "function" == typeof t + ? t + : eb(+ t), n) + : o + }, + n.precision = function (t) { + return arguments.length + ? (u = "function" == typeof t + ? t + : eb(+ t), n) + : u + }, + n + }, + yb = function () { + var t, + n = []; + return { + point: function (n, e) { + t.push([n, e]) + }, + lineStart: function () { + n.push(t = []) + }, + lineEnd: Ca, + rejoin: function () { + n.length > 1 && n.push(n.pop().concat(n.shift())) + }, + result: function () { + var e = n; + return n = [], + t = null, + e + } + } + }, + gb = function (t, n, e, r, i, o) { + var u, + a = t[0], + c = t[1], + s = n[0], + f = n[1], + l = 0, + h = 1, + p = s - a, + d = f - c; + if (u = e - a, p || !(u > 0)) { + if (u /= p, p < 0) { + if (u < l) + return; + u < h && (h = u) + } else if (p > 0) { + if (u > h) + return; + u > l && (l = u) + } + if (u = i - a, p || !(u < 0)) { + if (u /= p, p < 0) { + if (u > h) + return; + u > l && (l = u) + } else if (p > 0) { + if (u < l) + return; + u < h && (h = u) + } + if (u = r - c, d || !(u > 0)) { + if (u /= d, d < 0) { + if (u < l) + return; + u < h && (h = u) + } else if (d > 0) { + if (u > h) + return; + u > l && (l = u) + } + if (u = o - c, d || !(u < 0)) { + if (u /= d, d < 0) { + if (u > h) + return; + u > l && (l = u) + } else if (d > 0) { + if (u < l) + return; + u < h && (h = u) + } + return l > 0 && (t[0] = a + l * p, t[1] = c + l * d), + h < 1 && (n[0] = a + h * p, n[1] = c + h * d), + !0 + } + } + } + } + }, + mb = function (t, n) { + return Px(t[0] - n[0]) < Tx && Px(t[1] - n[1]) < Tx + }, + xb = function (t, n, e, r, i) { + var o, + u, + a = [], + c = []; + if (t.forEach(function (t) { + if (!((n = t.length - 1) <= 0)) { + var n, + e, + r = t[0], + u = t[n]; + if (mb(r, u)) { + for (i.lineStart(), o = 0; o < n; ++o) + i.point((r = t[o])[0], r[1]); + return void i.lineEnd() + } + a.push(e = new gc(r, t, null, !0)), + c.push(e.o = new gc(r, null, e, !1)), + a.push(e = new gc(u, t, null, !1)), + c.push(e.o = new gc(u, null, e, !0)) + } + }), a.length) { + for (c.sort(n), mc(a), mc(c), o = 0, u = c.length; o < u; ++o) + c[o].e = e = !e; + for (var s, f, l = a[0];;) { + for (var h = l, p = !0; h.v;) + if ((h = h.n) === l) + return; + s = h.z, + i.lineStart(); + do { + if (h.v = h.o.v = !0, h.e) { + if (p) + for (o = 0, u = s.length; o < u; ++o) + i.point((f = s[o])[0], f[1]); + else + r(h.x, h.n.x, 1, i); + h = h.n + } else { + if (p) + for (s = h.p.z, o = s.length - 1; o >= 0; --o) + i.point((f = s[o])[0], f[1]); + else + r(h.x, h.p.x, -1, i); + h = h.p + } + h = h.o, + s = h.z, + p = !p + } while (!h.v); + i.lineEnd() + } + } + }, + bb = 1e9, + wb = -bb, + Mb = function () { + var t, + n, + e, + r = 0, + i = 0, + o = 960, + u = 500; + return e = { + stream: function (e) { + return t && n === e + ? t + : t = xc(r, i, o, u)(n = e) + }, + extent: function (a) { + return arguments.length + ? (r =+ a[0][0], i =+ a[0][1], o =+ a[1][0], u =+ a[1][1], t = n = null, e) + : [ + [ + r, i + ], + [o, u] + ] + } + } + }, + Tb = Xm(), + Nb = { + sphere: Ca, + point: Ca, + lineStart: bc, + lineEnd: Ca, + polygonStart: Ca, + polygonEnd: Ca + }, + kb = function (t) { + return Tb.reset(), + Vx(t, Nb), + Tb + }, + Sb = [ + null, null + ], + Ab = { + type: "LineString", + coordinates: Sb + }, + Eb = function (t, n) { + return Sb[0] = t, + Sb[1] = n, + kb(Ab) + }, + Cb = function (t, n) { + var e = t[0] * zx, + r = t[1] * zx, + i = n[0] * zx, + o = n[1] * zx, + u = Rx(r), + a = Ix(r), + c = Rx(o), + s = Ix(o), + f = u * Rx(e), + l = u * Ix(e), + h = c * Rx(i), + p = c * Ix(i), + d = 2 * Aa(Bx(Ea(o - r) + u * c * Ea(i - e))), + v = Ix(d), + _ = d + ? function (t) { + var n = Ix(t *= d) / v, + e = Ix(d - t) / v, + r = e * f + n * h, + i = e * l + n * p, + o = e * a + n * s; + return [ + Lx(i, r) * Cx, + Lx(o, Bx(r * r + i * i)) * Cx + ] + } + : function () { + return [ + e * Cx, + r * Cx + ] + }; + return _.distance = d, + _ + }, + zb = function (t) { + return t + }, + Pb = Xm(), + qb = Xm(), + Lb = { + point: Ca, + lineStart: Ca, + lineEnd: Ca, + polygonStart: function () { + Lb.lineStart = Ec, + Lb.lineEnd = Pc + }, + polygonEnd: function () { + Lb.lineStart = Lb.lineEnd = Lb.point = Ca, + Pb.add(Px(qb)), + qb.reset() + }, + result: function () { + var t = Pb / 2; + return Pb.reset(), + t + } + }, + Rb = 1 / 0, + Ub = Rb, + Db = -Rb, + Ob = Db, + Fb = { + point: qc, + lineStart: Ca, + lineEnd: Ca, + polygonStart: Ca, + polygonEnd: Ca, + result: function () { + var t = [ + [ + Rb, Ub + ], + [Db, Ob] + ]; + return Db = Ob = -(Ub = Rb = 1 / 0), + t + } + }, + Ib = 0, + Yb = 0, + Bb = 0, + jb = 0, + Hb = 0, + Xb = 0, + Vb = 0, + Wb = 0, + $b = 0, + Zb = { + point: Lc, + lineStart: Rc, + lineEnd: Oc, + polygonStart: function () { + Zb.lineStart = Fc, + Zb.lineEnd = Ic + }, + polygonEnd: function () { + Zb.point = Lc, + Zb.lineStart = Rc, + Zb.lineEnd = Oc + }, + result: function () { + var t = $b + ? [ + Vb / $b, + Wb / $b + ] + : Xb + ? [ + jb / Xb, + Hb / Xb + ] + : Bb + ? [ + Ib / Bb, + Yb / Bb + ] + : [NaN, NaN]; + return Ib = Yb = Bb = jb = Hb = Xb = Vb = Wb = $b = 0, + t + } + }; + jc.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, Ex) + } + }, + result: Ca + }, + Hc.prototype = { + _circle: Xc(4.5), + pointRadius: function (t) { + return this._circle = Xc(t), + this + }, + polygonStart: function () { + this._line = 0 + }, + polygonEnd: function () { + this._line = NaN + }, + lineStart: function () { + this._point = 0 + }, + lineEnd: function () { + 0 === this._line && this + ._string + .push("Z"), + this._point = NaN + }, + point: function (t, n) { + switch (this._point) { + case 0: + this + ._string + .push("M", t, ",", n), + this._point = 1; + break; + case 1: + this + ._string + .push("L", t, ",", n); + break; + default: + this + ._string + .push("M", t, ",", n, this._circle) + } + }, + result: function () { + if (this._string.length) { + var t = this + ._string + .join(""); + return this._string = [], + t + } + } + }; + var Gb = function (t, n) { + function e(t) { + return t && ("function" == typeof o && i.pointRadius(+ o.apply(this, arguments)), Vx(t, r(i))), + i.result() + } + var r, + i, + o = 4.5; + return e.area = function (t) { + return Vx(t, r(Lb)), + Lb.result() + }, + e.bounds = function (t) { + return Vx(t, r(Fb)), + Fb.result() + }, + e.centroid = function (t) { + return Vx(t, r(Zb)), + Zb.result() + }, + e.projection = function (n) { + return arguments.length + ? (r = null == (t = n) + ? zb + : n.stream, e) + : t + }, + e.context = function (t) { + return arguments.length + ? (i = null == (n = t) + ? new Hc + : new jc(t), "function" != typeof o && i.pointRadius(o), e) + : n + }, + e.pointRadius = function (t) { + return arguments.length + ? (o = "function" == typeof t + ? t + : (i.pointRadius(+ t), + t), e) + : o + }, + e + .projection(t) + .context(n) + }, + Jb = Xm(), + Qb = function (t, n) { + var e = n[0], + r = n[1], + i = [ + Ix(e), -Rx(e), + 0 + ], + o = 0, + u = 0; + Jb.reset(); + for (var a = 0, c = t.length; a < c; ++a) + if (f = (s = t[a]).length) + for (var s, f, l = s[f - 1], h = l[0], p = l[1] / 2 + Ax, d = Ix(p), v = Rx(p), _ = 0; _ < f; ++_, h = g, d = x, v = b, l = y) { + var y = s[_], + g = y[0], + m = y[1] / 2 + Ax, + x = Ix(m), + b = Rx(m), + w = g - h, + M = w >= 0 + ? 1 + : -1, + T = M * w, + N = T > kx, + k = d * x; + if (Jb.add(Lx(k * M * Ix(T), v * b + k * Rx(T))), o += N + ? w + M * Ex + : w, N ^ h >= e ^ g >= e) { + var S = Ya(Fa(l), Fa(y)); + Ha(S); + var A = Ya(i, S); + Ha(A); + var E = (N ^ w >= 0 + ? -1 + : 1) * Aa(A[2]); + (r > E || r === E && (S[0] || S[1])) && (u += N ^ w >= 0 + ? 1 + : -1) + } + } + return (o < -Tx || o < Tx && Jb < -Tx) ^ 1 & u + }, + Kb = function (t, n, e, r) { + return function (i, o) { + function u(n, e) { + var r = i(n, e); + t(n = r[0], e = r[1]) && o.point(n, e) + } + function a(t, n) { + var e = i(t, n); + _.point(e[0], e[1]) + } + function c() { + b.point = a, + _.lineStart() + } + function s() { + b.point = u, + _.lineEnd() + } + function f(t, n) { + v.push([t, n]); + var e = i(t, n); + m.point(e[0], e[1]) + } + function l() { + m.lineStart(), + v = [] + } + function h() { + f(v[0][0], v[0][1]), + m.lineEnd(); + var t, + n, + e, + r, + i = m.clean(), + u = g.result(), + a = u.length; + if (v.pop(), p.push(v), v = null, a) + if (1 & i) { + if (e = u[0], (n = e.length - 1) > 0) { + for (x || (o.polygonStart(), x = !0), o.lineStart(), t = 0; t < n; ++t) + o.point((r = e[t])[0], r[1]); + o.lineEnd() + } + } else + a > 1 && 2 & i && u.push(u.pop().concat(u.shift())), + d.push(u.filter(Vc)) + } + var p, + d, + v, + _ = n(o), + y = i.invert(r[0], r[1]), + g = yb(), + m = n(g), + x = !1, + b = { + point: u, + lineStart: c, + lineEnd: s, + polygonStart: function () { + b.point = f, + b.lineStart = l, + b.lineEnd = h, + d = [], + p = [] + }, + polygonEnd: function () { + b.point = u, + b.lineStart = c, + b.lineEnd = s, + d = Js(d); + var t = Qb(p, y); + d.length + ? (x || (o.polygonStart(), x = !0), xb(d, Wc, t, e, o)) + : t && (x || (o.polygonStart(), x = !0), o.lineStart(), e(null, null, 1, o), o.lineEnd()), + x && (o.polygonEnd(), x = !1), + d = p = null + }, + sphere: function () { + o.polygonStart(), + o.lineStart(), + e(null, null, 1, o), + o.lineEnd(), + o.polygonEnd() + } + }; + return b + } + }, + tw = Kb(function () { + return !0 + }, $c, Gc, [-kx, -Sx + ]), + nw = function (t, n) { + function e(e, r, i, o) { + _c(o, t, n, i, e, r) + } + function r(t, n) { + return Rx(t) * Rx(n) > a + } + function i(t) { + var n, + e, + i, + a, + f; + return { + lineStart: function () { + a = i = !1, + f = 1 + }, + point: function (l, h) { + var p, + d = [ + l, h + ], + v = r(l, h), + _ = c + ? v + ? 0 + : u(l, h) + : v + ? u(l + (l < 0 + ? kx + : -kx), h) + : 0; + if (!n && (a = i = v) && t.lineStart(), v !== i && (p = o(n, d), (mb(n, p) || mb(d, p)) && (d[0] += Tx, d[1] += Tx, v = r(d[0], d[1]))), v !== i) + f = 0, + v + ? (t.lineStart(), p = o(d, n), t.point(p[0], p[1])) + : (p = o(n, d), t.point(p[0], p[1]), t.lineEnd()), + n = p; + else if (s && n && c ^ v) { + var y; + _ & e || !(y = o(d, n, !0)) || (f = 0, c + ? (t.lineStart(), t.point(y[0][0], y[0][1]), t.point(y[1][0], y[1][1]), t.lineEnd()) + : (t.point(y[1][0], y[1][1]), t.lineEnd(), t.lineStart(), t.point(y[0][0], y[0][1]))) + } + !v || n && mb(n, d) || t.point(d[0], d[1]), + n = d, + i = v, + e = _ + }, + lineEnd: function () { + i && t.lineEnd(), + n = null + }, + clean: function () { + return f | (a && i) << 1 + } + } + } + function o(t, n, e) { + var r = Fa(t), + i = Fa(n), + o = [ + 1, 0, 0 + ], + u = Ya(r, i), + c = Ia(u, u), + s = u[0], + f = c - s * s; + if (!f) + return !e && t; + var l = a * c / f, + h = -a * s / f, + p = Ya(o, u), + d = ja(o, l), + v = ja(u, h); + Ba(d, v); + var _ = p, + y = Ia(d, _), + g = Ia(_, _), + m = y * y - g * (Ia(d, d) - 1); + if (!(m < 0)) { + var x = Bx(m), + b = ja(_, (-y - x) / g); + if (Ba(b, d), b = Oa(b), !e) + return b; + var w, + M = t[0], + T = n[0], + N = t[1], + k = n[1]; + T < M && (w = M, M = T, T = w); + var S = T - M, + A = Px(S - kx) < Tx, + E = A || S < Tx; + if (!A && k < N && (w = N, N = k, k = w), E + ? A + ? N + k > 0 ^ b[1] < (Px(b[0] - M) < Tx + ? N + : k) + : N <= b[1] && b[1] <= k + : S > kx ^ (M <= b[0] && b[0] <= T)) { + var C = ja(_, (-y + x) / g); + return Ba(C, d), + [b, Oa(C)] + } + } + } + function u(n, e) { + var r = c + ? t + : kx - t, + i = 0; + return n < -r + ? i |= 1 + : n > r && (i |= 2), + e < -r + ? i |= 4 + : e > r && (i |= 8), + i + } + var a = Rx(t), + c = a > 0, + s = Px(a) > Tx; + return Kb(r, i, e, c + ? [ + 0, -t + ] + : [-kx, + t - kx + ]) + }, + ew = function (t) { + return {stream: Jc(t)} + }; + Qc.prototype = { + constructor: Qc, + 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 rw = 16, + iw = Rx(30 * zx), + ow = function (t, n) { + return + n + ? es(t, n) + : ns(t) + }, + uw = Jc({ + point: function (t, n) { + this + .stream + .point(t * zx, n * zx) + } + }), + aw = function () { + return os(as) + .scale(155.424) + .center([0, 33.6442]) + }, + cw = function () { + return aw() + .parallels([29.5, 45.5]) + .scale(1070) + .translate([480, 250]) + .rotate([96, 0]) + .center([-.6, 38.7]) + }, + sw = function () { + function t(t) { + var n = t[0], + e = t[1]; + return a = null, + i.point(n, e), + a || (o.point(n, e), a) || (u.point(n, e), a) + } + function n() { + return e = r = null, + t + } + var e, + r, + i, + o, + u, + a, + c = cw(), + s = aw() + .rotate([154, 0]) + .center([-2, 58.5]) + .parallels([55, 65]), + f = aw() + .rotate([157, 0]) + .center([-3, 19.9]) + .parallels([8, 18]), + l = { + point: function (t, n) { + a = [t, n] + } + }; + return t.invert = function (t) { + var n = c.scale(), + e = c.translate(), + r = (t[0] - e[0]) / n, + i = (t[1] - e[1]) / n; + return (i >= .12 && i < .234 && r >= -.425 && r < -.214 + ? s + : i >= .166 && i < .234 && r >= -.214 && r < -.115 + ? f + : c).invert(t) + }, + t.stream = function (t) { + return e && r === t + ? e + : e = cs([ + c.stream(r = t), + s.stream(t), + f.stream(t) + ]) + }, + t.precision = function (t) { + return arguments.length + ? (c.precision(t), s.precision(t), f.precision(t), n()) + : c.precision() + }, + t.scale = function (n) { + return arguments.length + ? (c.scale(n), s.scale(.35 * n), f.scale(n), t.translate(c.translate())) + : c.scale() + }, + t.translate = function (t) { + if (!arguments.length) + return c.translate(); + var e = c.scale(), + r =+ t[0], + a =+ t[1]; + return i = c + .translate(t) + .clipExtent([ + [ + r - .455 * e, + a - .238 * e + ], + [ + r + .455 * e, + a + .238 * e + ] + ]) + .stream(l), + o = s + .translate([ + r - .307 * e, + a + .201 * e + ]) + .clipExtent([ + [ + r - .425 * e + Tx, + a + .12 * e + Tx + ], + [ + r - .214 * e - Tx, + a + .234 * e - Tx + ] + ]) + .stream(l), + u = f + .translate([ + r - .205 * e, + a + .212 * e + ]) + .clipExtent([ + [ + r - .214 * e + Tx, + a + .166 * e + Tx + ], + [ + r - .115 * e - Tx, + a + .234 * e - Tx + ] + ]) + .stream(l), + n() + }, + t.fitExtent = function (n, e) { + return Kc(t, n, e) + }, + t.fitSize = function (n, e) { + return ts(t, n, e) + }, + t.scale(1070) + }, + fw = ss(function (t) { + return Bx(2 / (1 + t)) + }); + fw.invert = fs(function (t) { + return 2 * Aa(t / 2) + }); + var lw = function () { + return rs(fw) + .scale(124.75) + .clipAngle(179.999) + }, + hw = ss(function (t) { + return (t = Sa(t)) && t / Ix(t) + }); + hw.invert = fs(function (t) { + return t + }); + var pw = function () { + return rs(hw) + .scale(79.4188) + .clipAngle(179.999) + }; + ls.invert = function (t, n) { + return [ + t, 2 * qx(Dx(n)) - Sx + ] + }; + var dw = function () { + return hs(ls).scale(961 / Ex) + }, + vw = function () { + return os(ds) + .scale(109.5) + .parallels([30, 30]) + }; + vs.invert = vs; + var _w = function () { + return rs(vs).scale(152.63) + }, + yw = function () { + return os(_s) + .scale(131.154) + .center([0, 13.9389]) + }; + ys.invert = fs(qx); + var gw = function () { + return rs(ys) + .scale(144.049) + .clipAngle(60) + }, + mw = function () { + function t() { + return i = o = null, + u + } + var n, + e, + r, + i, + o, + u, + a = 1, + c = 0, + s = 0, + f = zb, + l = null, + h = zb; + return u = { + stream: function (t) { + return i && o === t + ? i + : i = f(h(o = t)) + }, + clipExtent: function (i) { + return arguments.length + ? (h = null == i + ? (l = n = e = r = null, zb) + : xc(l =+ i[0][0], n =+ i[0][1], e =+ i[1][0], r =+ i[1][1]), t()) + : null == l + ? null + : [ + [ + l, n + ], + [e, r] + ] + }, + scale: function (n) { + return arguments.length + ? (f = gs(a =+ n, c, s), t()) + : a + }, + translate: function (n) { + return arguments.length + ? (f = gs(a, c =+ n[0], s =+ n[1]), t()) + : [c, s] + }, + fitExtent: function (t, n) { + return Kc(u, t, n) + }, + fitSize: function (t, n) { + return ts(u, t, n) + } + } + }; + ms.invert = fs(Aa); + var xw = function () { + return rs(ms) + .scale(249.5) + .clipAngle(90 + Tx) + }; + xs.invert = fs(function (t) { + return 2 * qx(t) + }); + var bw = function () { + return rs(xs) + .scale(250) + .clipAngle(142) + }; + bs.invert = function (t, n) { + return [-n, + 2 * qx(Dx(t)) - Sx + ] + }; + var ww = function () { + var t = hs(bs), + n = t.center, + e = t.rotate; + return t.center = function (t) { + return arguments.length + ? n([-t[1], + t[0] + ]) + : (t = n(), [ + t[1], -t[0] + ]) + }, + t.rotate = function (t) { + return arguments.length + ? e([ + t[0], t[1], t.length > 2 + ? t[2] + 90 + : 90 + ]) + : (t = e(), [ + t[0], t[1], t[2] - 90 + ]) + }, + e([0, 0, 90]).scale(159.155) + }; + t.version = ws, + t.bisect = ks, + t.bisectRight = ks, + t.bisectLeft = Ss, + t.ascending = Ms, + t.bisector = Ts, + t.descending = As, + t.deviation = zs, + t.extent = Ps, + t.histogram = Hs, + t.thresholdFreedmanDiaconis = Vs, + t.thresholdScott = Ws, + t.thresholdSturges = js, + t.max = $s, + t.mean = Zs, + t.median = Gs, + t.merge = Js, + t.min = Qs, + t.pairs = Ks, + t.permute = tf, + t.quantile = Xs, + t.range = Os, + t.scan = nf, + t.shuffle = ef, + t.sum = rf, + t.ticks = Bs, + t.tickStep = e, + t.transpose = of, + t.variance = Cs, + t.zip = uf, + t.entries = hf, + t.keys = ff, + t.values = lf, + t.map = o, + t.set = l, + t.nest = cf, + t.randomUniform = pf, + t.randomNormal = df, + t.randomLogNormal = vf, + t.randomBates = yf, + t.randomIrwinHall = _f, + t.randomExponential = gf, + t.easeLinear = h, + t.easeQuad = v, + t.easeQuadIn = p, + t.easeQuadOut = d, + t.easeQuadInOut = v, + t.easeCubic = g, + t.easeCubicIn = _, + t.easeCubicOut = y, + t.easeCubicInOut = g, + t.easePoly = wf, + t.easePolyIn = xf, + t.easePolyOut = bf, + t.easePolyInOut = wf, + t.easeSin = b, + t.easeSinIn = m, + t.easeSinOut = x, + t.easeSinInOut = b, + t.easeExp = T, + t.easeExpIn = w, + t.easeExpOut = M, + t.easeExpInOut = T, + t.easeCircle = S, + t.easeCircleIn = N, + t.easeCircleOut = k, + t.easeCircleInOut = S, + t.easeBounce = E, + t.easeBounceIn = A, + t.easeBounceOut = E, + t.easeBounceInOut = C, + t.easeBack = Of, + t.easeBackIn = Uf, + t.easeBackOut = Df, + t.easeBackInOut = Of, + t.easeElastic = jf, + t.easeElasticIn = Bf, + t.easeElasticOut = jf, + t.easeElasticInOut = Hf, + t.polygonArea = Xf, + t.polygonCentroid = Vf, + t.polygonHull = $f, + t.polygonContains = Zf, + t.polygonLength = Gf, + t.path = L, + t.quadtree = I, + t.queue = Z, + t.arc = wl, + t.area = Nl, + t.line = Tl, + t.pie = Al, + t.radialArea = zl, + t.radialLine = Cl, + t.symbol = Jl, + t.symbols = Gl, + t.symbolCircle = Pl, + t.symbolCross = ql, + t.symbolDiamond = Ul, + t.symbolSquare = Bl, + t.symbolStar = Yl, + t.symbolTriangle = Hl, + t.symbolWye = Zl, + t.curveBasisClosed = th, + t.curveBasisOpen = nh, + t.curveBasis = Kl, + t.curveBundle = eh, + t.curveCardinalClosed = ih, + t.curveCardinalOpen = oh, + t.curveCardinal = rh, + t.curveCatmullRomClosed = ah, + t.curveCatmullRomOpen = ch, + t.curveCatmullRom = uh, + t.curveLinearClosed = sh, + t.curveLinear = Ml, + t.curveMonotoneX = zt, + t.curveMonotoneY = Pt, + t.curveNatural = fh, + t.curveStep = lh, + t.curveStepAfter = Dt, + t.curveStepBefore = Ut, + t.stack = vh, + t.stackOffsetExpand = _h, + t.stackOffsetNone = ph, + t.stackOffsetSilhouette = yh, + t.stackOffsetWiggle = gh, + t.stackOrderAscending = mh, + t.stackOrderDescending = xh, + t.stackOrderInsideOut = bh, + t.stackOrderNone = dh, + t.stackOrderReverse = wh, + t.color = Bt, + t.rgb = Vt, + t.hsl = Gt, + t.lab = tn, + t.hcl = cn, + t.cubehelix = ln, + t.interpolate = _p, + t.interpolateArray = sp, + t.interpolateDate = fp, + t.interpolateNumber = lp, + t.interpolateObject = hp, + t.interpolateRound = yp, + t.interpolateString = vp, + t.interpolateTransformCss = bp, + t.interpolateTransformSvg = wp, + t.interpolateZoom = Sp, + t.interpolateRgb = up, + t.interpolateRgbBasis = ap, + t.interpolateRgbBasisClosed = cp, + t.interpolateHsl = Ap, + t.interpolateHslLong = Ep, + t.interpolateLab = En, + t.interpolateHcl = Cp, + t.interpolateHclLong = zp, + t.interpolateCubehelix = Pp, + t.interpolateCubehelixLong = qp, + t.interpolateBasis = rp, + t.interpolateBasisClosed = ip, + t.quantize = Lp, + t.dispatch = Pn, + t.dsvFormat = Op, + t.csvParse = Ip, + t.csvParseRows = Yp, + t.csvFormat = Bp, + t.csvFormatRows = jp, + t.tsvParse = Xp, + t.tsvParseRows = Vp, + t.tsvFormat = Wp, + t.tsvFormatRows = $p, + t.request = Zp, + t.html = Jp, + t.json = Qp, + t.text = Kp, + t.xml = td, + t.csv = ed, + t.tsv = rd, + t.now = jn, + t.timer = Vn, + t.timerFlush = Wn, + t.timeout = pd, + t.interval = dd, + t.timeInterval = Qn, + t.timeMillisecond = yd, + t.timeMilliseconds = gd, + t.timeSecond = Td, + t.timeSeconds = Nd, + t.timeMinute = kd, + t.timeMinutes = Sd, + t.timeHour = Ad, + t.timeHours = Ed, + t.timeDay = Cd, + t.timeDays = zd, + t.timeWeek = Pd, + t.timeWeeks = Fd, + t.timeSunday = Pd, + t.timeSundays = Fd, + t.timeMonday = qd, + t.timeMondays = Id, + t.timeTuesday = Ld, + t.timeTuesdays = Yd; + t.timeWednesday = Rd; + t.timeWednesdays = Bd, + t.timeThursday = Ud, + t.timeThursdays = jd, + t.timeFriday = Dd, + t.timeFridays = Hd, + t.timeSaturday = Od, + t.timeSaturdays = Xd, + t.timeMonth = Vd, + t.timeMonths = Wd, + t.timeYear = $d, + t.timeYears = Zd, + t.utcMillisecond = yd, + t.utcMilliseconds = gd, + t.utcSecond = Td, + t.utcSeconds = Nd, + t.utcMinute = Gd, + t.utcMinutes = Jd, + t.utcHour = Qd, + t.utcHours = Kd, + t.utcDay = tv, + t.utcDays = nv, + t.utcWeek = ev, + t.utcWeeks = sv, + t.utcSunday = ev, + t.utcSundays = sv, + t.utcMonday = rv, + t.utcMondays = fv, + t.utcTuesday = iv, + t.utcTuesdays = lv, + t.utcWednesday = ov, + t.utcWednesdays = hv, + t.utcThursday = uv, + t.utcThursdays = pv, + t.utcFriday = av, + t.utcFridays = dv, + t.utcSaturday = cv, + t.utcSaturdays = vv, + t.utcMonth = _v, + t.utcMonths = yv, + t.utcYear = gv, + t.utcYears = xv, + t.formatLocale = Pv, + t.formatDefaultLocale = re, + t.formatSpecifier = Ev, + t.precisionFixed = Lv, + t.precisionPrefix = Rv, + t.precisionRound = Uv, + t.isoFormat = Bv, + t.isoParse = jv, + t.timeFormatLocale = ae, + t.timeFormatDefaultLocale = nr, + t.scaleBand = or, + t.scalePoint = ar, + t.scaleIdentity = yr, + t.scaleLinear = _r, + t.scaleLog = Tr, + t.scaleOrdinal = ir, + t.scaleImplicit = Wv, + t.scalePow = kr, + t.scaleSqrt = Sr, + t.scaleQuantile = Ar, + t.scaleQuantize = Er, + t.scaleThreshold = Cr, + t.scaleTime = u_, + t.scaleUtc = a_, + t.schemeCategory10 = s_, + t.schemeCategory20b = f_, + t.schemeCategory20c = l_, + t.schemeCategory20 = h_, + t.scaleSequential = Rr, + t.interpolateCubehelixDefault = p_, + t.interpolateRainbow = y_, + t.interpolateWarm = d_, + t.interpolateCool = v_, + t.interpolateViridis = g_, + t.interpolateMagma = m_, + t.interpolateInferno = x_, + t.interpolatePlasma = b_, + t.creator = N_, + t.customEvent = Xr, + t.local = Or, + t.matcher = C_, + t.mouse = U_, + t.namespace = T_, + t.namespaces = M_, + t.select = gy, + t.selectAll = my, + t.selection = Pi, + t.selector = D_, + t.selectorAll = F_, + t.touch = xy, + t.touches = by, + t.window = iy, + t.active = ig, + t.interrupt = Py, + t.transition = fo, + t.axisTop = mo, + t.axisRight = xo, + t.axisBottom = bo, + t.axisLeft = wo, + t.cluster = hg, + t.hierarchy = zo, + t.pack = Sg, + t.packSiblings = Ng, + t.packEnclose = Tg, + t.partition = Cg, + t.stratify = Lg, + t.tree = Rg, + t.treemap = Fg, + t.treemapBinary = Ig, + t.treemapDice = Eg, + t.treemapSlice = Ug, + t.treemapSliceDice = Yg, + t.treemapSquarify = Og, + t.treemapResquarify = Bg, + t.forceCenter = jg, + t.forceCollide = Vg, + t.forceLink = Wg, + t.forceManyBody = Jg, + t.forceSimulation = Gg, + t.forceX = Qg, + t.forceY = Kg, + t.drag = rm, + t.dragDisable = nm, + t.dragEnable = mu, + t.voronoi = dm, + t.zoom = gm, + t.zoomIdentity = _m, + t.zoomTransform = ia, + t.brush = Lm, + t.brushX = _a, + t.brushY = ya, + t.brushSelection = va, + t.chord = Ym, + t.ribbon = Hm, + t.geoAlbers = cw, + t.geoAlbersUsa = sw, + t.geoArea = Gx, + t.geoAzimuthalEqualArea = lw, + t.geoAzimuthalEqualAreaRaw = fw, + t.geoAzimuthalEquidistant = pw, + t.geoAzimuthalEquidistantRaw = hw, + t.geoBounds = Kx, + t.geoCentroid = nb, + t.geoCircle = _b, + t.geoClipExtent = Mb, + t.geoConicConformal = vw, + t.geoConicConformalRaw = ds, + t.geoConicEqualArea = aw, + t.geoConicEqualAreaRaw = as, + t.geoConicEquidistant = yw, + t.geoConicEquidistantRaw = _s, + t.geoDistance = Eb, + t.geoEquirectangular = _w, + t.geoEquirectangularRaw = vs, + t.geoGnomonic = gw, + t.geoGnomonicRaw = ys, + t.geoGraticule = Sc, + t.geoGraticule10 = Ac, + t.geoIdentity = mw, + t.geoInterpolate = Cb, + t.geoLength = kb, + t.geoMercator = dw, + t.geoMercatorRaw = ls, + t.geoOrthographic = xw, + t.geoOrthographicRaw = ms, + t.geoPath = Gb, + t.geoProjection = rs, + t.geoProjectionMutator = is, + t.geoRotation = vb, + t.geoStereographic = bw, + t.geoStereographicRaw = xs, + t.geoStream = Vx, + t.geoTransform = ew, + t.geoTransverseMercator = ww, + t.geoTransverseMercatorRaw = bs, + Object.defineProperty(t, "__esModule", { + value: !0 + }) + }); \ No newline at end of file From 8172f79dad61b271482d4d51ea5adc8283560cf5 Mon Sep 17 00:00:00 2001 From: deathrow Date: Tue, 17 Jan 2023 18:15:40 -0500 Subject: [PATCH 076/169] Format jquery.min.js --- assets/js/jquery.min.js | 5317 ++++++++++++++++++++++++++++++++++++++- 1 file changed, 5314 insertions(+), 3 deletions(-) diff --git a/assets/js/jquery.min.js b/assets/js/jquery.min.js index 4c5be4c..ac35a19 100644 --- a/assets/js/jquery.min.js +++ b/assets/js/jquery.min.js @@ -1,4 +1,5315 @@ /*! jQuery v3.1.1 | (c) jQuery Foundation | jquery.org/license */ -!function(a,b){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw new Error("jQuery requires a window with a document");return b(a)}:b(a)}("undefined"!=typeof window?window:this,function(a,b){"use strict";var c=[],d=a.document,e=Object.getPrototypeOf,f=c.slice,g=c.concat,h=c.push,i=c.indexOf,j={},k=j.toString,l=j.hasOwnProperty,m=l.toString,n=m.call(Object),o={};function p(a,b){b=b||d;var c=b.createElement("script");c.text=a,b.head.appendChild(c).parentNode.removeChild(c)}var q="3.1.1",r=function(a,b){return new r.fn.init(a,b)},s=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,t=/^-ms-/,u=/-([a-z])/g,v=function(a,b){return b.toUpperCase()};r.fn=r.prototype={jquery:q,constructor:r,length:0,toArray:function(){return f.call(this)},get:function(a){return null==a?f.call(this):a<0?this[a+this.length]:this[a]},pushStack:function(a){var b=r.merge(this.constructor(),a);return b.prevObject=this,b},each:function(a){return r.each(this,a)},map:function(a){return this.pushStack(r.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(f.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(a<0?b:0);return this.pushStack(c>=0&&c0&&b-1 in a)}var x=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u="sizzle"+1*new Date,v=a.document,w=0,x=0,y=ha(),z=ha(),A=ha(),B=function(a,b){return a===b&&(l=!0),0},C={}.hasOwnProperty,D=[],E=D.pop,F=D.push,G=D.push,H=D.slice,I=function(a,b){for(var c=0,d=a.length;c+~]|"+K+")"+K+"*"),S=new RegExp("="+K+"*([^\\]'\"]*?)"+K+"*\\]","g"),T=new RegExp(N),U=new RegExp("^"+L+"$"),V={ID:new RegExp("^#("+L+")"),CLASS:new RegExp("^\\.("+L+")"),TAG:new RegExp("^("+L+"|[*])"),ATTR:new RegExp("^"+M),PSEUDO:new RegExp("^"+N),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+K+"*(even|odd|(([+-]|)(\\d*)n|)"+K+"*(?:([+-]|)"+K+"*(\\d+)|))"+K+"*\\)|)","i"),bool:new RegExp("^(?:"+J+")$","i"),needsContext:new RegExp("^"+K+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+K+"*((?:-\\d)?\\d*)"+K+"*\\)|)(?=[^-]|$)","i")},W=/^(?:input|select|textarea|button)$/i,X=/^h\d$/i,Y=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,$=/[+~]/,_=new RegExp("\\\\([\\da-f]{1,6}"+K+"?|("+K+")|.)","ig"),aa=function(a,b,c){var d="0x"+b-65536;return d!==d||c?b:d<0?String.fromCharCode(d+65536):String.fromCharCode(d>>10|55296,1023&d|56320)},ba=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ca=function(a,b){return b?"\0"===a?"\ufffd":a.slice(0,-1)+"\\"+a.charCodeAt(a.length-1).toString(16)+" ":"\\"+a},da=function(){m()},ea=ta(function(a){return a.disabled===!0&&("form"in a||"label"in a)},{dir:"parentNode",next:"legend"});try{G.apply(D=H.call(v.childNodes),v.childNodes),D[v.childNodes.length].nodeType}catch(fa){G={apply:D.length?function(a,b){F.apply(a,H.call(b))}:function(a,b){var c=a.length,d=0;while(a[c++]=b[d++]);a.length=c-1}}}function ga(a,b,d,e){var f,h,j,k,l,o,r,s=b&&b.ownerDocument,w=b?b.nodeType:9;if(d=d||[],"string"!=typeof a||!a||1!==w&&9!==w&&11!==w)return d;if(!e&&((b?b.ownerDocument||b:v)!==n&&m(b),b=b||n,p)){if(11!==w&&(l=Z.exec(a)))if(f=l[1]){if(9===w){if(!(j=b.getElementById(f)))return d;if(j.id===f)return d.push(j),d}else if(s&&(j=s.getElementById(f))&&t(b,j)&&j.id===f)return d.push(j),d}else{if(l[2])return G.apply(d,b.getElementsByTagName(a)),d;if((f=l[3])&&c.getElementsByClassName&&b.getElementsByClassName)return G.apply(d,b.getElementsByClassName(f)),d}if(c.qsa&&!A[a+" "]&&(!q||!q.test(a))){if(1!==w)s=b,r=a;else if("object"!==b.nodeName.toLowerCase()){(k=b.getAttribute("id"))?k=k.replace(ba,ca):b.setAttribute("id",k=u),o=g(a),h=o.length;while(h--)o[h]="#"+k+" "+sa(o[h]);r=o.join(","),s=$.test(a)&&qa(b.parentNode)||b}if(r)try{return G.apply(d,s.querySelectorAll(r)),d}catch(x){}finally{k===u&&b.removeAttribute("id")}}}return i(a.replace(P,"$1"),b,d,e)}function ha(){var a=[];function b(c,e){return a.push(c+" ")>d.cacheLength&&delete b[a.shift()],b[c+" "]=e}return b}function ia(a){return a[u]=!0,a}function ja(a){var b=n.createElement("fieldset");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function ka(a,b){var c=a.split("|"),e=c.length;while(e--)d.attrHandle[c[e]]=b}function la(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&a.sourceIndex-b.sourceIndex;if(d)return d;if(c)while(c=c.nextSibling)if(c===b)return-1;return a?1:-1}function ma(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function na(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function oa(a){return function(b){return"form"in b?b.parentNode&&b.disabled===!1?"label"in b?"label"in b.parentNode?b.parentNode.disabled===a:b.disabled===a:b.isDisabled===a||b.isDisabled!==!a&&ea(b)===a:b.disabled===a:"label"in b&&b.disabled===a}}function pa(a){return ia(function(b){return b=+b,ia(function(c,d){var e,f=a([],c.length,b),g=f.length;while(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function qa(a){return a&&"undefined"!=typeof a.getElementsByTagName&&a}c=ga.support={},f=ga.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return!!b&&"HTML"!==b.nodeName},m=ga.setDocument=function(a){var b,e,g=a?a.ownerDocument||a:v;return g!==n&&9===g.nodeType&&g.documentElement?(n=g,o=n.documentElement,p=!f(n),v!==n&&(e=n.defaultView)&&e.top!==e&&(e.addEventListener?e.addEventListener("unload",da,!1):e.attachEvent&&e.attachEvent("onunload",da)),c.attributes=ja(function(a){return a.className="i",!a.getAttribute("className")}),c.getElementsByTagName=ja(function(a){return a.appendChild(n.createComment("")),!a.getElementsByTagName("*").length}),c.getElementsByClassName=Y.test(n.getElementsByClassName),c.getById=ja(function(a){return o.appendChild(a).id=u,!n.getElementsByName||!n.getElementsByName(u).length}),c.getById?(d.filter.ID=function(a){var b=a.replace(_,aa);return function(a){return a.getAttribute("id")===b}},d.find.ID=function(a,b){if("undefined"!=typeof b.getElementById&&p){var c=b.getElementById(a);return c?[c]:[]}}):(d.filter.ID=function(a){var b=a.replace(_,aa);return function(a){var c="undefined"!=typeof a.getAttributeNode&&a.getAttributeNode("id");return c&&c.value===b}},d.find.ID=function(a,b){if("undefined"!=typeof b.getElementById&&p){var c,d,e,f=b.getElementById(a);if(f){if(c=f.getAttributeNode("id"),c&&c.value===a)return[f];e=b.getElementsByName(a),d=0;while(f=e[d++])if(c=f.getAttributeNode("id"),c&&c.value===a)return[f]}return[]}}),d.find.TAG=c.getElementsByTagName?function(a,b){return"undefined"!=typeof b.getElementsByTagName?b.getElementsByTagName(a):c.qsa?b.querySelectorAll(a):void 0}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if("*"===a){while(c=f[e++])1===c.nodeType&&d.push(c);return d}return f},d.find.CLASS=c.getElementsByClassName&&function(a,b){if("undefined"!=typeof b.getElementsByClassName&&p)return b.getElementsByClassName(a)},r=[],q=[],(c.qsa=Y.test(n.querySelectorAll))&&(ja(function(a){o.appendChild(a).innerHTML="",a.querySelectorAll("[msallowcapture^='']").length&&q.push("[*^$]="+K+"*(?:''|\"\")"),a.querySelectorAll("[selected]").length||q.push("\\["+K+"*(?:value|"+J+")"),a.querySelectorAll("[id~="+u+"-]").length||q.push("~="),a.querySelectorAll(":checked").length||q.push(":checked"),a.querySelectorAll("a#"+u+"+*").length||q.push(".#.+[+~]")}),ja(function(a){a.innerHTML="";var b=n.createElement("input");b.setAttribute("type","hidden"),a.appendChild(b).setAttribute("name","D"),a.querySelectorAll("[name=d]").length&&q.push("name"+K+"*[*^$|!~]?="),2!==a.querySelectorAll(":enabled").length&&q.push(":enabled",":disabled"),o.appendChild(a).disabled=!0,2!==a.querySelectorAll(":disabled").length&&q.push(":enabled",":disabled"),a.querySelectorAll("*,:x"),q.push(",.*:")})),(c.matchesSelector=Y.test(s=o.matches||o.webkitMatchesSelector||o.mozMatchesSelector||o.oMatchesSelector||o.msMatchesSelector))&&ja(function(a){c.disconnectedMatch=s.call(a,"*"),s.call(a,"[s!='']:x"),r.push("!=",N)}),q=q.length&&new RegExp(q.join("|")),r=r.length&&new RegExp(r.join("|")),b=Y.test(o.compareDocumentPosition),t=b||Y.test(o.contains)?function(a,b){var c=9===a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a===d||!(!d||1!==d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)while(b=b.parentNode)if(b===a)return!0;return!1},B=b?function(a,b){if(a===b)return l=!0,0;var d=!a.compareDocumentPosition-!b.compareDocumentPosition;return d?d:(d=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&d||!c.sortDetached&&b.compareDocumentPosition(a)===d?a===n||a.ownerDocument===v&&t(v,a)?-1:b===n||b.ownerDocument===v&&t(v,b)?1:k?I(k,a)-I(k,b):0:4&d?-1:1)}:function(a,b){if(a===b)return l=!0,0;var c,d=0,e=a.parentNode,f=b.parentNode,g=[a],h=[b];if(!e||!f)return a===n?-1:b===n?1:e?-1:f?1:k?I(k,a)-I(k,b):0;if(e===f)return la(a,b);c=a;while(c=c.parentNode)g.unshift(c);c=b;while(c=c.parentNode)h.unshift(c);while(g[d]===h[d])d++;return d?la(g[d],h[d]):g[d]===v?-1:h[d]===v?1:0},n):n},ga.matches=function(a,b){return ga(a,null,null,b)},ga.matchesSelector=function(a,b){if((a.ownerDocument||a)!==n&&m(a),b=b.replace(S,"='$1']"),c.matchesSelector&&p&&!A[b+" "]&&(!r||!r.test(b))&&(!q||!q.test(b)))try{var d=s.call(a,b);if(d||c.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(e){}return ga(b,n,null,[a]).length>0},ga.contains=function(a,b){return(a.ownerDocument||a)!==n&&m(a),t(a,b)},ga.attr=function(a,b){(a.ownerDocument||a)!==n&&m(a);var e=d.attrHandle[b.toLowerCase()],f=e&&C.call(d.attrHandle,b.toLowerCase())?e(a,b,!p):void 0;return void 0!==f?f:c.attributes||!p?a.getAttribute(b):(f=a.getAttributeNode(b))&&f.specified?f.value:null},ga.escape=function(a){return(a+"").replace(ba,ca)},ga.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},ga.uniqueSort=function(a){var b,d=[],e=0,f=0;if(l=!c.detectDuplicates,k=!c.sortStable&&a.slice(0),a.sort(B),l){while(b=a[f++])b===a[f]&&(e=d.push(f));while(e--)a.splice(d[e],1)}return k=null,a},e=ga.getText=function(a){var b,c="",d=0,f=a.nodeType;if(f){if(1===f||9===f||11===f){if("string"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=e(a)}else if(3===f||4===f)return a.nodeValue}else while(b=a[d++])c+=e(b);return c},d=ga.selectors={cacheLength:50,createPseudo:ia,match:V,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(_,aa),a[3]=(a[3]||a[4]||a[5]||"").replace(_,aa),"~="===a[2]&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),"nth"===a[1].slice(0,3)?(a[3]||ga.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*("even"===a[3]||"odd"===a[3])),a[5]=+(a[7]+a[8]||"odd"===a[3])):a[3]&&ga.error(a[0]),a},PSEUDO:function(a){var b,c=!a[6]&&a[2];return V.CHILD.test(a[0])?null:(a[3]?a[2]=a[4]||a[5]||"":c&&T.test(c)&&(b=g(c,!0))&&(b=c.indexOf(")",c.length-b)-c.length)&&(a[0]=a[0].slice(0,b),a[2]=c.slice(0,b)),a.slice(0,3))}},filter:{TAG:function(a){var b=a.replace(_,aa).toLowerCase();return"*"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=y[a+" "];return b||(b=new RegExp("(^|"+K+")"+a+"("+K+"|$)"))&&y(a,function(a){return b.test("string"==typeof a.className&&a.className||"undefined"!=typeof a.getAttribute&&a.getAttribute("class")||"")})},ATTR:function(a,b,c){return function(d){var e=ga.attr(d,a);return null==e?"!="===b:!b||(e+="","="===b?e===c:"!="===b?e!==c:"^="===b?c&&0===e.indexOf(c):"*="===b?c&&e.indexOf(c)>-1:"$="===b?c&&e.slice(-c.length)===c:"~="===b?(" "+e.replace(O," ")+" ").indexOf(c)>-1:"|="===b&&(e===c||e.slice(0,c.length+1)===c+"-"))}},CHILD:function(a,b,c,d,e){var f="nth"!==a.slice(0,3),g="last"!==a.slice(-4),h="of-type"===b;return 1===d&&0===e?function(a){return!!a.parentNode}:function(b,c,i){var j,k,l,m,n,o,p=f!==g?"nextSibling":"previousSibling",q=b.parentNode,r=h&&b.nodeName.toLowerCase(),s=!i&&!h,t=!1;if(q){if(f){while(p){m=b;while(m=m[p])if(h?m.nodeName.toLowerCase()===r:1===m.nodeType)return!1;o=p="only"===a&&!o&&"nextSibling"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&s){m=q,l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),j=k[a]||[],n=j[0]===w&&j[1],t=n&&j[2],m=n&&q.childNodes[n];while(m=++n&&m&&m[p]||(t=n=0)||o.pop())if(1===m.nodeType&&++t&&m===b){k[a]=[w,n,t];break}}else if(s&&(m=b,l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),j=k[a]||[],n=j[0]===w&&j[1],t=n),t===!1)while(m=++n&&m&&m[p]||(t=n=0)||o.pop())if((h?m.nodeName.toLowerCase()===r:1===m.nodeType)&&++t&&(s&&(l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),k[a]=[w,t]),m===b))break;return t-=e,t===d||t%d===0&&t/d>=0}}},PSEUDO:function(a,b){var c,e=d.pseudos[a]||d.setFilters[a.toLowerCase()]||ga.error("unsupported pseudo: "+a);return e[u]?e(b):e.length>1?(c=[a,a,"",b],d.setFilters.hasOwnProperty(a.toLowerCase())?ia(function(a,c){var d,f=e(a,b),g=f.length;while(g--)d=I(a,f[g]),a[d]=!(c[d]=f[g])}):function(a){return e(a,0,c)}):e}},pseudos:{not:ia(function(a){var b=[],c=[],d=h(a.replace(P,"$1"));return d[u]?ia(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)(f=g[h])&&(a[h]=!(b[h]=f))}):function(a,e,f){return b[0]=a,d(b,null,f,c),b[0]=null,!c.pop()}}),has:ia(function(a){return function(b){return ga(a,b).length>0}}),contains:ia(function(a){return a=a.replace(_,aa),function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)>-1}}),lang:ia(function(a){return U.test(a||"")||ga.error("unsupported lang: "+a),a=a.replace(_,aa).toLowerCase(),function(b){var c;do if(c=p?b.lang:b.getAttribute("xml:lang")||b.getAttribute("lang"))return c=c.toLowerCase(),c===a||0===c.indexOf(a+"-");while((b=b.parentNode)&&1===b.nodeType);return!1}}),target:function(b){var c=a.location&&a.location.hash;return c&&c.slice(1)===b.id},root:function(a){return a===o},focus:function(a){return a===n.activeElement&&(!n.hasFocus||n.hasFocus())&&!!(a.type||a.href||~a.tabIndex)},enabled:oa(!1),disabled:oa(!0),checked:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&!!a.checked||"option"===b&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType<6)return!1;return!0},parent:function(a){return!d.pseudos.empty(a)},header:function(a){return X.test(a.nodeName)},input:function(a){return W.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&"button"===a.type||"button"===b},text:function(a){var b;return"input"===a.nodeName.toLowerCase()&&"text"===a.type&&(null==(b=a.getAttribute("type"))||"text"===b.toLowerCase())},first:pa(function(){return[0]}),last:pa(function(a,b){return[b-1]}),eq:pa(function(a,b,c){return[c<0?c+b:c]}),even:pa(function(a,b){for(var c=0;c=0;)a.push(d);return a}),gt:pa(function(a,b,c){for(var d=c<0?c+b:c;++d1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!1;return!0}:a[0]}function va(a,b,c){for(var d=0,e=b.length;d-1&&(f[j]=!(g[j]=l))}}else r=wa(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):G.apply(g,r)})}function ya(a){for(var b,c,e,f=a.length,g=d.relative[a[0].type],h=g||d.relative[" "],i=g?1:0,k=ta(function(a){return a===b},h,!0),l=ta(function(a){return I(b,a)>-1},h,!0),m=[function(a,c,d){var e=!g&&(d||c!==j)||((b=c).nodeType?k(a,c,d):l(a,c,d));return b=null,e}];i1&&ua(m),i>1&&sa(a.slice(0,i-1).concat({value:" "===a[i-2].type?"*":""})).replace(P,"$1"),c,i0,e=a.length>0,f=function(f,g,h,i,k){var l,o,q,r=0,s="0",t=f&&[],u=[],v=j,x=f||e&&d.find.TAG("*",k),y=w+=null==v?1:Math.random()||.1,z=x.length;for(k&&(j=g===n||g||k);s!==z&&null!=(l=x[s]);s++){if(e&&l){o=0,g||l.ownerDocument===n||(m(l),h=!p);while(q=a[o++])if(q(l,g||n,h)){i.push(l);break}k&&(w=y)}c&&((l=!q&&l)&&r--,f&&t.push(l))}if(r+=s,c&&s!==r){o=0;while(q=b[o++])q(t,u,g,h);if(f){if(r>0)while(s--)t[s]||u[s]||(u[s]=E.call(i));u=wa(u)}G.apply(i,u),k&&!f&&u.length>0&&r+b.length>1&&ga.uniqueSort(i)}return k&&(w=y,j=v),t};return c?ia(f):f}return h=ga.compile=function(a,b){var c,d=[],e=[],f=A[a+" "];if(!f){b||(b=g(a)),c=b.length;while(c--)f=ya(b[c]),f[u]?d.push(f):e.push(f);f=A(a,za(e,d)),f.selector=a}return f},i=ga.select=function(a,b,c,e){var f,i,j,k,l,m="function"==typeof a&&a,n=!e&&g(a=m.selector||a);if(c=c||[],1===n.length){if(i=n[0]=n[0].slice(0),i.length>2&&"ID"===(j=i[0]).type&&9===b.nodeType&&p&&d.relative[i[1].type]){if(b=(d.find.ID(j.matches[0].replace(_,aa),b)||[])[0],!b)return c;m&&(b=b.parentNode),a=a.slice(i.shift().value.length)}f=V.needsContext.test(a)?0:i.length;while(f--){if(j=i[f],d.relative[k=j.type])break;if((l=d.find[k])&&(e=l(j.matches[0].replace(_,aa),$.test(i[0].type)&&qa(b.parentNode)||b))){if(i.splice(f,1),a=e.length&&sa(i),!a)return G.apply(c,e),c;break}}}return(m||h(a,n))(e,b,!p,c,!b||$.test(a)&&qa(b.parentNode)||b),c},c.sortStable=u.split("").sort(B).join("")===u,c.detectDuplicates=!!l,m(),c.sortDetached=ja(function(a){return 1&a.compareDocumentPosition(n.createElement("fieldset"))}),ja(function(a){return a.innerHTML="","#"===a.firstChild.getAttribute("href")})||ka("type|href|height|width",function(a,b,c){if(!c)return a.getAttribute(b,"type"===b.toLowerCase()?1:2)}),c.attributes&&ja(function(a){return a.innerHTML="",a.firstChild.setAttribute("value",""),""===a.firstChild.getAttribute("value")})||ka("value",function(a,b,c){if(!c&&"input"===a.nodeName.toLowerCase())return a.defaultValue}),ja(function(a){return null==a.getAttribute("disabled")})||ka(J,function(a,b,c){var d;if(!c)return a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),ga}(a);r.find=x,r.expr=x.selectors,r.expr[":"]=r.expr.pseudos,r.uniqueSort=r.unique=x.uniqueSort,r.text=x.getText,r.isXMLDoc=x.isXML,r.contains=x.contains,r.escapeSelector=x.escape;var y=function(a,b,c){var d=[],e=void 0!==c;while((a=a[b])&&9!==a.nodeType)if(1===a.nodeType){if(e&&r(a).is(c))break;d.push(a)}return d},z=function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c},A=r.expr.match.needsContext,B=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i,C=/^.[^:#\[\.,]*$/;function D(a,b,c){return r.isFunction(b)?r.grep(a,function(a,d){return!!b.call(a,d,a)!==c}):b.nodeType?r.grep(a,function(a){return a===b!==c}):"string"!=typeof b?r.grep(a,function(a){return i.call(b,a)>-1!==c}):C.test(b)?r.filter(b,a,c):(b=r.filter(b,a),r.grep(a,function(a){return i.call(b,a)>-1!==c&&1===a.nodeType}))}r.filter=function(a,b,c){var d=b[0];return c&&(a=":not("+a+")"),1===b.length&&1===d.nodeType?r.find.matchesSelector(d,a)?[d]:[]:r.find.matches(a,r.grep(b,function(a){return 1===a.nodeType}))},r.fn.extend({find:function(a){var b,c,d=this.length,e=this;if("string"!=typeof a)return this.pushStack(r(a).filter(function(){for(b=0;b1?r.uniqueSort(c):c},filter:function(a){return this.pushStack(D(this,a||[],!1))},not:function(a){return this.pushStack(D(this,a||[],!0))},is:function(a){return!!D(this,"string"==typeof a&&A.test(a)?r(a):a||[],!1).length}});var E,F=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/,G=r.fn.init=function(a,b,c){var e,f;if(!a)return this;if(c=c||E,"string"==typeof a){if(e="<"===a[0]&&">"===a[a.length-1]&&a.length>=3?[null,a,null]:F.exec(a),!e||!e[1]&&b)return!b||b.jquery?(b||c).find(a):this.constructor(b).find(a);if(e[1]){if(b=b instanceof r?b[0]:b,r.merge(this,r.parseHTML(e[1],b&&b.nodeType?b.ownerDocument||b:d,!0)),B.test(e[1])&&r.isPlainObject(b))for(e in b)r.isFunction(this[e])?this[e](b[e]):this.attr(e,b[e]);return this}return f=d.getElementById(e[2]),f&&(this[0]=f,this.length=1),this}return a.nodeType?(this[0]=a,this.length=1,this):r.isFunction(a)?void 0!==c.ready?c.ready(a):a(r):r.makeArray(a,this)};G.prototype=r.fn,E=r(d);var H=/^(?:parents|prev(?:Until|All))/,I={children:!0,contents:!0,next:!0,prev:!0};r.fn.extend({has:function(a){var b=r(a,this),c=b.length;return this.filter(function(){for(var a=0;a-1:1===c.nodeType&&r.find.matchesSelector(c,a))){f.push(c);break}return this.pushStack(f.length>1?r.uniqueSort(f):f)},index:function(a){return a?"string"==typeof a?i.call(r(a),this[0]):i.call(this,a.jquery?a[0]:a):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){return this.pushStack(r.uniqueSort(r.merge(this.get(),r(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}});function J(a,b){while((a=a[b])&&1!==a.nodeType);return a}r.each({parent:function(a){var b=a.parentNode;return b&&11!==b.nodeType?b:null},parents:function(a){return y(a,"parentNode")},parentsUntil:function(a,b,c){return y(a,"parentNode",c)},next:function(a){return J(a,"nextSibling")},prev:function(a){return J(a,"previousSibling")},nextAll:function(a){return y(a,"nextSibling")},prevAll:function(a){return y(a,"previousSibling")},nextUntil:function(a,b,c){return y(a,"nextSibling",c)},prevUntil:function(a,b,c){return y(a,"previousSibling",c)},siblings:function(a){return z((a.parentNode||{}).firstChild,a)},children:function(a){return z(a.firstChild)},contents:function(a){return a.contentDocument||r.merge([],a.childNodes)}},function(a,b){r.fn[a]=function(c,d){var e=r.map(this,b,c);return"Until"!==a.slice(-5)&&(d=c),d&&"string"==typeof d&&(e=r.filter(d,e)),this.length>1&&(I[a]||r.uniqueSort(e),H.test(a)&&e.reverse()),this.pushStack(e)}});var K=/[^\x20\t\r\n\f]+/g;function L(a){var b={};return r.each(a.match(K)||[],function(a,c){b[c]=!0}),b}r.Callbacks=function(a){a="string"==typeof a?L(a):r.extend({},a);var b,c,d,e,f=[],g=[],h=-1,i=function(){for(e=a.once,d=b=!0;g.length;h=-1){c=g.shift();while(++h-1)f.splice(c,1),c<=h&&h--}),this},has:function(a){return a?r.inArray(a,f)>-1:f.length>0},empty:function(){return f&&(f=[]),this},disable:function(){return e=g=[],f=c="",this},disabled:function(){return!f},lock:function(){return e=g=[],c||b||(f=c=""),this},locked:function(){return!!e},fireWith:function(a,c){return e||(c=c||[],c=[a,c.slice?c.slice():c],g.push(c),b||i()),this},fire:function(){return j.fireWith(this,arguments),this},fired:function(){return!!d}};return j};function M(a){return a}function N(a){throw a}function O(a,b,c){var d;try{a&&r.isFunction(d=a.promise)?d.call(a).done(b).fail(c):a&&r.isFunction(d=a.then)?d.call(a,b,c):b.call(void 0,a)}catch(a){c.call(void 0,a)}}r.extend({Deferred:function(b){var c=[["notify","progress",r.Callbacks("memory"),r.Callbacks("memory"),2],["resolve","done",r.Callbacks("once memory"),r.Callbacks("once memory"),0,"resolved"],["reject","fail",r.Callbacks("once memory"),r.Callbacks("once memory"),1,"rejected"]],d="pending",e={state:function(){return d},always:function(){return f.done(arguments).fail(arguments),this},"catch":function(a){return e.then(null,a)},pipe:function(){var a=arguments;return r.Deferred(function(b){r.each(c,function(c,d){var e=r.isFunction(a[d[4]])&&a[d[4]];f[d[1]](function(){var a=e&&e.apply(this,arguments);a&&r.isFunction(a.promise)?a.promise().progress(b.notify).done(b.resolve).fail(b.reject):b[d[0]+"With"](this,e?[a]:arguments)})}),a=null}).promise()},then:function(b,d,e){var f=0;function g(b,c,d,e){return function(){var h=this,i=arguments,j=function(){var a,j;if(!(b=f&&(d!==N&&(h=void 0,i=[a]),c.rejectWith(h,i))}};b?k():(r.Deferred.getStackHook&&(k.stackTrace=r.Deferred.getStackHook()),a.setTimeout(k))}}return r.Deferred(function(a){c[0][3].add(g(0,a,r.isFunction(e)?e:M,a.notifyWith)),c[1][3].add(g(0,a,r.isFunction(b)?b:M)),c[2][3].add(g(0,a,r.isFunction(d)?d:N))}).promise()},promise:function(a){return null!=a?r.extend(a,e):e}},f={};return r.each(c,function(a,b){var g=b[2],h=b[5];e[b[1]]=g.add,h&&g.add(function(){d=h},c[3-a][2].disable,c[0][2].lock),g.add(b[3].fire),f[b[0]]=function(){return f[b[0]+"With"](this===f?void 0:this,arguments),this},f[b[0]+"With"]=g.fireWith}),e.promise(f),b&&b.call(f,f),f},when:function(a){var b=arguments.length,c=b,d=Array(c),e=f.call(arguments),g=r.Deferred(),h=function(a){return function(c){d[a]=this,e[a]=arguments.length>1?f.call(arguments):c,--b||g.resolveWith(d,e)}};if(b<=1&&(O(a,g.done(h(c)).resolve,g.reject),"pending"===g.state()||r.isFunction(e[c]&&e[c].then)))return g.then();while(c--)O(e[c],h(c),g.reject);return g.promise()}});var P=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;r.Deferred.exceptionHook=function(b,c){a.console&&a.console.warn&&b&&P.test(b.name)&&a.console.warn("jQuery.Deferred exception: "+b.message,b.stack,c)},r.readyException=function(b){a.setTimeout(function(){throw b})};var Q=r.Deferred();r.fn.ready=function(a){return Q.then(a)["catch"](function(a){r.readyException(a)}),this},r.extend({isReady:!1,readyWait:1,holdReady:function(a){a?r.readyWait++:r.ready(!0)},ready:function(a){(a===!0?--r.readyWait:r.isReady)||(r.isReady=!0,a!==!0&&--r.readyWait>0||Q.resolveWith(d,[r]))}}),r.ready.then=Q.then;function R(){d.removeEventListener("DOMContentLoaded",R), -a.removeEventListener("load",R),r.ready()}"complete"===d.readyState||"loading"!==d.readyState&&!d.documentElement.doScroll?a.setTimeout(r.ready):(d.addEventListener("DOMContentLoaded",R),a.addEventListener("load",R));var S=function(a,b,c,d,e,f,g){var h=0,i=a.length,j=null==c;if("object"===r.type(c)){e=!0;for(h in c)S(a,b,h,c[h],!0,f,g)}else if(void 0!==d&&(e=!0,r.isFunction(d)||(g=!0),j&&(g?(b.call(a,d),b=null):(j=b,b=function(a,b,c){return j.call(r(a),c)})),b))for(;h1,null,!0)},removeData:function(a){return this.each(function(){W.remove(this,a)})}}),r.extend({queue:function(a,b,c){var d;if(a)return b=(b||"fx")+"queue",d=V.get(a,b),c&&(!d||r.isArray(c)?d=V.access(a,b,r.makeArray(c)):d.push(c)),d||[]},dequeue:function(a,b){b=b||"fx";var c=r.queue(a,b),d=c.length,e=c.shift(),f=r._queueHooks(a,b),g=function(){r.dequeue(a,b)};"inprogress"===e&&(e=c.shift(),d--),e&&("fx"===b&&c.unshift("inprogress"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return V.get(a,c)||V.access(a,c,{empty:r.Callbacks("once memory").add(function(){V.remove(a,[b+"queue",c])})})}}),r.fn.extend({queue:function(a,b){var c=2;return"string"!=typeof a&&(b=a,a="fx",c--),arguments.length\x20\t\r\n\f]+)/i,ka=/^$|\/(?:java|ecma)script/i,la={option:[1,""],thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};la.optgroup=la.option,la.tbody=la.tfoot=la.colgroup=la.caption=la.thead,la.th=la.td;function ma(a,b){var c;return c="undefined"!=typeof a.getElementsByTagName?a.getElementsByTagName(b||"*"):"undefined"!=typeof a.querySelectorAll?a.querySelectorAll(b||"*"):[],void 0===b||b&&r.nodeName(a,b)?r.merge([a],c):c}function na(a,b){for(var c=0,d=a.length;c-1)e&&e.push(f);else if(j=r.contains(f.ownerDocument,f),g=ma(l.appendChild(f),"script"),j&&na(g),c){k=0;while(f=g[k++])ka.test(f.type||"")&&c.push(f)}return l}!function(){var a=d.createDocumentFragment(),b=a.appendChild(d.createElement("div")),c=d.createElement("input");c.setAttribute("type","radio"),c.setAttribute("checked","checked"),c.setAttribute("name","t"),b.appendChild(c),o.checkClone=b.cloneNode(!0).cloneNode(!0).lastChild.checked,b.innerHTML="",o.noCloneChecked=!!b.cloneNode(!0).lastChild.defaultValue}();var qa=d.documentElement,ra=/^key/,sa=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,ta=/^([^.]*)(?:\.(.+)|)/;function ua(){return!0}function va(){return!1}function wa(){try{return d.activeElement}catch(a){}}function xa(a,b,c,d,e,f){var g,h;if("object"==typeof b){"string"!=typeof c&&(d=d||c,c=void 0);for(h in b)xa(a,h,c,d,b[h],f);return a}if(null==d&&null==e?(e=c,d=c=void 0):null==e&&("string"==typeof c?(e=d,d=void 0):(e=d,d=c,c=void 0)),e===!1)e=va;else if(!e)return a;return 1===f&&(g=e,e=function(a){return r().off(a),g.apply(this,arguments)},e.guid=g.guid||(g.guid=r.guid++)),a.each(function(){r.event.add(this,b,e,d,c)})}r.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q=V.get(a);if(q){c.handler&&(f=c,c=f.handler,e=f.selector),e&&r.find.matchesSelector(qa,e),c.guid||(c.guid=r.guid++),(i=q.events)||(i=q.events={}),(g=q.handle)||(g=q.handle=function(b){return"undefined"!=typeof r&&r.event.triggered!==b.type?r.event.dispatch.apply(a,arguments):void 0}),b=(b||"").match(K)||[""],j=b.length;while(j--)h=ta.exec(b[j])||[],n=p=h[1],o=(h[2]||"").split(".").sort(),n&&(l=r.event.special[n]||{},n=(e?l.delegateType:l.bindType)||n,l=r.event.special[n]||{},k=r.extend({type:n,origType:p,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&r.expr.match.needsContext.test(e),namespace:o.join(".")},f),(m=i[n])||(m=i[n]=[],m.delegateCount=0,l.setup&&l.setup.call(a,d,o,g)!==!1||a.addEventListener&&a.addEventListener(n,g)),l.add&&(l.add.call(a,k),k.handler.guid||(k.handler.guid=c.guid)),e?m.splice(m.delegateCount++,0,k):m.push(k),r.event.global[n]=!0)}},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q=V.hasData(a)&&V.get(a);if(q&&(i=q.events)){b=(b||"").match(K)||[""],j=b.length;while(j--)if(h=ta.exec(b[j])||[],n=p=h[1],o=(h[2]||"").split(".").sort(),n){l=r.event.special[n]||{},n=(d?l.delegateType:l.bindType)||n,m=i[n]||[],h=h[2]&&new RegExp("(^|\\.)"+o.join("\\.(?:.*\\.|)")+"(\\.|$)"),g=f=m.length;while(f--)k=m[f],!e&&p!==k.origType||c&&c.guid!==k.guid||h&&!h.test(k.namespace)||d&&d!==k.selector&&("**"!==d||!k.selector)||(m.splice(f,1),k.selector&&m.delegateCount--,l.remove&&l.remove.call(a,k));g&&!m.length&&(l.teardown&&l.teardown.call(a,o,q.handle)!==!1||r.removeEvent(a,n,q.handle),delete i[n])}else for(n in i)r.event.remove(a,n+b[j],c,d,!0);r.isEmptyObject(i)&&V.remove(a,"handle events")}},dispatch:function(a){var b=r.event.fix(a),c,d,e,f,g,h,i=new Array(arguments.length),j=(V.get(this,"events")||{})[b.type]||[],k=r.event.special[b.type]||{};for(i[0]=b,c=1;c=1))for(;j!==this;j=j.parentNode||this)if(1===j.nodeType&&("click"!==a.type||j.disabled!==!0)){for(f=[],g={},c=0;c-1:r.find(e,this,null,[j]).length),g[e]&&f.push(d);f.length&&h.push({elem:j,handlers:f})}return j=this,i\x20\t\r\n\f]*)[^>]*)\/>/gi,za=/\s*$/g;function Da(a,b){return r.nodeName(a,"table")&&r.nodeName(11!==b.nodeType?b:b.firstChild,"tr")?a.getElementsByTagName("tbody")[0]||a:a}function Ea(a){return a.type=(null!==a.getAttribute("type"))+"/"+a.type,a}function Fa(a){var b=Ba.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function Ga(a,b){var c,d,e,f,g,h,i,j;if(1===b.nodeType){if(V.hasData(a)&&(f=V.access(a),g=V.set(b,f),j=f.events)){delete g.handle,g.events={};for(e in j)for(c=0,d=j[e].length;c1&&"string"==typeof q&&!o.checkClone&&Aa.test(q))return a.each(function(e){var f=a.eq(e);s&&(b[0]=q.call(this,e,f.html())),Ia(f,b,c,d)});if(m&&(e=pa(b,a[0].ownerDocument,!1,a,d),f=e.firstChild,1===e.childNodes.length&&(e=f),f||d)){for(h=r.map(ma(e,"script"),Ea),i=h.length;l")},clone:function(a,b,c){var d,e,f,g,h=a.cloneNode(!0),i=r.contains(a.ownerDocument,a);if(!(o.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||r.isXMLDoc(a)))for(g=ma(h),f=ma(a),d=0,e=f.length;d0&&na(g,!i&&ma(a,"script")),h},cleanData:function(a){for(var b,c,d,e=r.event.special,f=0;void 0!==(c=a[f]);f++)if(T(c)){if(b=c[V.expando]){if(b.events)for(d in b.events)e[d]?r.event.remove(c,d):r.removeEvent(c,d,b.handle);c[V.expando]=void 0}c[W.expando]&&(c[W.expando]=void 0)}}}),r.fn.extend({detach:function(a){return Ja(this,a,!0)},remove:function(a){return Ja(this,a)},text:function(a){return S(this,function(a){return void 0===a?r.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=a)})},null,a,arguments.length)},append:function(){return Ia(this,arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=Da(this,a);b.appendChild(a)}})},prepend:function(){return Ia(this,arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=Da(this,a);b.insertBefore(a,b.firstChild)}})},before:function(){return Ia(this,arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this)})},after:function(){return Ia(this,arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this.nextSibling)})},empty:function(){for(var a,b=0;null!=(a=this[b]);b++)1===a.nodeType&&(r.cleanData(ma(a,!1)),a.textContent="");return this},clone:function(a,b){return a=null!=a&&a,b=null==b?a:b,this.map(function(){return r.clone(this,a,b)})},html:function(a){return S(this,function(a){var b=this[0]||{},c=0,d=this.length;if(void 0===a&&1===b.nodeType)return b.innerHTML;if("string"==typeof a&&!za.test(a)&&!la[(ja.exec(a)||["",""])[1].toLowerCase()]){a=r.htmlPrefilter(a);try{for(;c1)}});function Ya(a,b,c,d,e){return new Ya.prototype.init(a,b,c,d,e)}r.Tween=Ya,Ya.prototype={constructor:Ya,init:function(a,b,c,d,e,f){this.elem=a,this.prop=c,this.easing=e||r.easing._default,this.options=b,this.start=this.now=this.cur(),this.end=d,this.unit=f||(r.cssNumber[c]?"":"px")},cur:function(){var a=Ya.propHooks[this.prop];return a&&a.get?a.get(this):Ya.propHooks._default.get(this)},run:function(a){var b,c=Ya.propHooks[this.prop];return this.options.duration?this.pos=b=r.easing[this.easing](a,this.options.duration*a,0,1,this.options.duration):this.pos=b=a,this.now=(this.end-this.start)*b+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),c&&c.set?c.set(this):Ya.propHooks._default.set(this),this}},Ya.prototype.init.prototype=Ya.prototype,Ya.propHooks={_default:{get:function(a){var b;return 1!==a.elem.nodeType||null!=a.elem[a.prop]&&null==a.elem.style[a.prop]?a.elem[a.prop]:(b=r.css(a.elem,a.prop,""),b&&"auto"!==b?b:0)},set:function(a){r.fx.step[a.prop]?r.fx.step[a.prop](a):1!==a.elem.nodeType||null==a.elem.style[r.cssProps[a.prop]]&&!r.cssHooks[a.prop]?a.elem[a.prop]=a.now:r.style(a.elem,a.prop,a.now+a.unit)}}},Ya.propHooks.scrollTop=Ya.propHooks.scrollLeft={set:function(a){a.elem.nodeType&&a.elem.parentNode&&(a.elem[a.prop]=a.now)}},r.easing={linear:function(a){return a},swing:function(a){return.5-Math.cos(a*Math.PI)/2},_default:"swing"},r.fx=Ya.prototype.init,r.fx.step={};var Za,$a,_a=/^(?:toggle|show|hide)$/,ab=/queueHooks$/;function bb(){$a&&(a.requestAnimationFrame(bb),r.fx.tick())}function cb(){return a.setTimeout(function(){Za=void 0}),Za=r.now()}function db(a,b){var c,d=0,e={height:a};for(b=b?1:0;d<4;d+=2-b)c=ba[d],e["margin"+c]=e["padding"+c]=a;return b&&(e.opacity=e.width=a),e}function eb(a,b,c){for(var d,e=(hb.tweeners[b]||[]).concat(hb.tweeners["*"]),f=0,g=e.length;f1)},removeAttr:function(a){return this.each(function(){r.removeAttr(this,a)})}}),r.extend({attr:function(a,b,c){var d,e,f=a.nodeType;if(3!==f&&8!==f&&2!==f)return"undefined"==typeof a.getAttribute?r.prop(a,b,c):(1===f&&r.isXMLDoc(a)||(e=r.attrHooks[b.toLowerCase()]||(r.expr.match.bool.test(b)?ib:void 0)), -void 0!==c?null===c?void r.removeAttr(a,b):e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:(a.setAttribute(b,c+""),c):e&&"get"in e&&null!==(d=e.get(a,b))?d:(d=r.find.attr(a,b),null==d?void 0:d))},attrHooks:{type:{set:function(a,b){if(!o.radioValue&&"radio"===b&&r.nodeName(a,"input")){var c=a.value;return a.setAttribute("type",b),c&&(a.value=c),b}}}},removeAttr:function(a,b){var c,d=0,e=b&&b.match(K);if(e&&1===a.nodeType)while(c=e[d++])a.removeAttribute(c)}}),ib={set:function(a,b,c){return b===!1?r.removeAttr(a,c):a.setAttribute(c,c),c}},r.each(r.expr.match.bool.source.match(/\w+/g),function(a,b){var c=jb[b]||r.find.attr;jb[b]=function(a,b,d){var e,f,g=b.toLowerCase();return d||(f=jb[g],jb[g]=e,e=null!=c(a,b,d)?g:null,jb[g]=f),e}});var kb=/^(?:input|select|textarea|button)$/i,lb=/^(?:a|area)$/i;r.fn.extend({prop:function(a,b){return S(this,r.prop,a,b,arguments.length>1)},removeProp:function(a){return this.each(function(){delete this[r.propFix[a]||a]})}}),r.extend({prop:function(a,b,c){var d,e,f=a.nodeType;if(3!==f&&8!==f&&2!==f)return 1===f&&r.isXMLDoc(a)||(b=r.propFix[b]||b,e=r.propHooks[b]),void 0!==c?e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:a[b]=c:e&&"get"in e&&null!==(d=e.get(a,b))?d:a[b]},propHooks:{tabIndex:{get:function(a){var b=r.find.attr(a,"tabindex");return b?parseInt(b,10):kb.test(a.nodeName)||lb.test(a.nodeName)&&a.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}}),o.optSelected||(r.propHooks.selected={get:function(a){var b=a.parentNode;return b&&b.parentNode&&b.parentNode.selectedIndex,null},set:function(a){var b=a.parentNode;b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex)}}),r.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){r.propFix[this.toLowerCase()]=this});function mb(a){var b=a.match(K)||[];return b.join(" ")}function nb(a){return a.getAttribute&&a.getAttribute("class")||""}r.fn.extend({addClass:function(a){var b,c,d,e,f,g,h,i=0;if(r.isFunction(a))return this.each(function(b){r(this).addClass(a.call(this,b,nb(this)))});if("string"==typeof a&&a){b=a.match(K)||[];while(c=this[i++])if(e=nb(c),d=1===c.nodeType&&" "+mb(e)+" "){g=0;while(f=b[g++])d.indexOf(" "+f+" ")<0&&(d+=f+" ");h=mb(d),e!==h&&c.setAttribute("class",h)}}return this},removeClass:function(a){var b,c,d,e,f,g,h,i=0;if(r.isFunction(a))return this.each(function(b){r(this).removeClass(a.call(this,b,nb(this)))});if(!arguments.length)return this.attr("class","");if("string"==typeof a&&a){b=a.match(K)||[];while(c=this[i++])if(e=nb(c),d=1===c.nodeType&&" "+mb(e)+" "){g=0;while(f=b[g++])while(d.indexOf(" "+f+" ")>-1)d=d.replace(" "+f+" "," ");h=mb(d),e!==h&&c.setAttribute("class",h)}}return this},toggleClass:function(a,b){var c=typeof a;return"boolean"==typeof b&&"string"===c?b?this.addClass(a):this.removeClass(a):r.isFunction(a)?this.each(function(c){r(this).toggleClass(a.call(this,c,nb(this),b),b)}):this.each(function(){var b,d,e,f;if("string"===c){d=0,e=r(this),f=a.match(K)||[];while(b=f[d++])e.hasClass(b)?e.removeClass(b):e.addClass(b)}else void 0!==a&&"boolean"!==c||(b=nb(this),b&&V.set(this,"__className__",b),this.setAttribute&&this.setAttribute("class",b||a===!1?"":V.get(this,"__className__")||""))})},hasClass:function(a){var b,c,d=0;b=" "+a+" ";while(c=this[d++])if(1===c.nodeType&&(" "+mb(nb(c))+" ").indexOf(b)>-1)return!0;return!1}});var ob=/\r/g;r.fn.extend({val:function(a){var b,c,d,e=this[0];{if(arguments.length)return d=r.isFunction(a),this.each(function(c){var e;1===this.nodeType&&(e=d?a.call(this,c,r(this).val()):a,null==e?e="":"number"==typeof e?e+="":r.isArray(e)&&(e=r.map(e,function(a){return null==a?"":a+""})),b=r.valHooks[this.type]||r.valHooks[this.nodeName.toLowerCase()],b&&"set"in b&&void 0!==b.set(this,e,"value")||(this.value=e))});if(e)return b=r.valHooks[e.type]||r.valHooks[e.nodeName.toLowerCase()],b&&"get"in b&&void 0!==(c=b.get(e,"value"))?c:(c=e.value,"string"==typeof c?c.replace(ob,""):null==c?"":c)}}}),r.extend({valHooks:{option:{get:function(a){var b=r.find.attr(a,"value");return null!=b?b:mb(r.text(a))}},select:{get:function(a){var b,c,d,e=a.options,f=a.selectedIndex,g="select-one"===a.type,h=g?null:[],i=g?f+1:e.length;for(d=f<0?i:g?f:0;d-1)&&(c=!0);return c||(a.selectedIndex=-1),f}}}}),r.each(["radio","checkbox"],function(){r.valHooks[this]={set:function(a,b){if(r.isArray(b))return a.checked=r.inArray(r(a).val(),b)>-1}},o.checkOn||(r.valHooks[this].get=function(a){return null===a.getAttribute("value")?"on":a.value})});var pb=/^(?:focusinfocus|focusoutblur)$/;r.extend(r.event,{trigger:function(b,c,e,f){var g,h,i,j,k,m,n,o=[e||d],p=l.call(b,"type")?b.type:b,q=l.call(b,"namespace")?b.namespace.split("."):[];if(h=i=e=e||d,3!==e.nodeType&&8!==e.nodeType&&!pb.test(p+r.event.triggered)&&(p.indexOf(".")>-1&&(q=p.split("."),p=q.shift(),q.sort()),k=p.indexOf(":")<0&&"on"+p,b=b[r.expando]?b:new r.Event(p,"object"==typeof b&&b),b.isTrigger=f?2:3,b.namespace=q.join("."),b.rnamespace=b.namespace?new RegExp("(^|\\.)"+q.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,b.result=void 0,b.target||(b.target=e),c=null==c?[b]:r.makeArray(c,[b]),n=r.event.special[p]||{},f||!n.trigger||n.trigger.apply(e,c)!==!1)){if(!f&&!n.noBubble&&!r.isWindow(e)){for(j=n.delegateType||p,pb.test(j+p)||(h=h.parentNode);h;h=h.parentNode)o.push(h),i=h;i===(e.ownerDocument||d)&&o.push(i.defaultView||i.parentWindow||a)}g=0;while((h=o[g++])&&!b.isPropagationStopped())b.type=g>1?j:n.bindType||p,m=(V.get(h,"events")||{})[b.type]&&V.get(h,"handle"),m&&m.apply(h,c),m=k&&h[k],m&&m.apply&&T(h)&&(b.result=m.apply(h,c),b.result===!1&&b.preventDefault());return b.type=p,f||b.isDefaultPrevented()||n._default&&n._default.apply(o.pop(),c)!==!1||!T(e)||k&&r.isFunction(e[p])&&!r.isWindow(e)&&(i=e[k],i&&(e[k]=null),r.event.triggered=p,e[p](),r.event.triggered=void 0,i&&(e[k]=i)),b.result}},simulate:function(a,b,c){var d=r.extend(new r.Event,c,{type:a,isSimulated:!0});r.event.trigger(d,null,b)}}),r.fn.extend({trigger:function(a,b){return this.each(function(){r.event.trigger(a,b,this)})},triggerHandler:function(a,b){var c=this[0];if(c)return r.event.trigger(a,b,c,!0)}}),r.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(a,b){r.fn[b]=function(a,c){return arguments.length>0?this.on(b,null,a,c):this.trigger(b)}}),r.fn.extend({hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}}),o.focusin="onfocusin"in a,o.focusin||r.each({focus:"focusin",blur:"focusout"},function(a,b){var c=function(a){r.event.simulate(b,a.target,r.event.fix(a))};r.event.special[b]={setup:function(){var d=this.ownerDocument||this,e=V.access(d,b);e||d.addEventListener(a,c,!0),V.access(d,b,(e||0)+1)},teardown:function(){var d=this.ownerDocument||this,e=V.access(d,b)-1;e?V.access(d,b,e):(d.removeEventListener(a,c,!0),V.remove(d,b))}}});var qb=a.location,rb=r.now(),sb=/\?/;r.parseXML=function(b){var c;if(!b||"string"!=typeof b)return null;try{c=(new a.DOMParser).parseFromString(b,"text/xml")}catch(d){c=void 0}return c&&!c.getElementsByTagName("parsererror").length||r.error("Invalid XML: "+b),c};var tb=/\[\]$/,ub=/\r?\n/g,vb=/^(?:submit|button|image|reset|file)$/i,wb=/^(?:input|select|textarea|keygen)/i;function xb(a,b,c,d){var e;if(r.isArray(b))r.each(b,function(b,e){c||tb.test(a)?d(a,e):xb(a+"["+("object"==typeof e&&null!=e?b:"")+"]",e,c,d)});else if(c||"object"!==r.type(b))d(a,b);else for(e in b)xb(a+"["+e+"]",b[e],c,d)}r.param=function(a,b){var c,d=[],e=function(a,b){var c=r.isFunction(b)?b():b;d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(null==c?"":c)};if(r.isArray(a)||a.jquery&&!r.isPlainObject(a))r.each(a,function(){e(this.name,this.value)});else for(c in a)xb(c,a[c],b,e);return d.join("&")},r.fn.extend({serialize:function(){return r.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var a=r.prop(this,"elements");return a?r.makeArray(a):this}).filter(function(){var a=this.type;return this.name&&!r(this).is(":disabled")&&wb.test(this.nodeName)&&!vb.test(a)&&(this.checked||!ia.test(a))}).map(function(a,b){var c=r(this).val();return null==c?null:r.isArray(c)?r.map(c,function(a){return{name:b.name,value:a.replace(ub,"\r\n")}}):{name:b.name,value:c.replace(ub,"\r\n")}}).get()}});var yb=/%20/g,zb=/#.*$/,Ab=/([?&])_=[^&]*/,Bb=/^(.*?):[ \t]*([^\r\n]*)$/gm,Cb=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Db=/^(?:GET|HEAD)$/,Eb=/^\/\//,Fb={},Gb={},Hb="*/".concat("*"),Ib=d.createElement("a");Ib.href=qb.href;function Jb(a){return function(b,c){"string"!=typeof b&&(c=b,b="*");var d,e=0,f=b.toLowerCase().match(K)||[];if(r.isFunction(c))while(d=f[e++])"+"===d[0]?(d=d.slice(1)||"*",(a[d]=a[d]||[]).unshift(c)):(a[d]=a[d]||[]).push(c)}}function Kb(a,b,c,d){var e={},f=a===Gb;function g(h){var i;return e[h]=!0,r.each(a[h]||[],function(a,h){var j=h(b,c,d);return"string"!=typeof j||f||e[j]?f?!(i=j):void 0:(b.dataTypes.unshift(j),g(j),!1)}),i}return g(b.dataTypes[0])||!e["*"]&&g("*")}function Lb(a,b){var c,d,e=r.ajaxSettings.flatOptions||{};for(c in b)void 0!==b[c]&&((e[c]?a:d||(d={}))[c]=b[c]);return d&&r.extend(!0,a,d),a}function Mb(a,b,c){var d,e,f,g,h=a.contents,i=a.dataTypes;while("*"===i[0])i.shift(),void 0===d&&(d=a.mimeType||b.getResponseHeader("Content-Type"));if(d)for(e in h)if(h[e]&&h[e].test(d)){i.unshift(e);break}if(i[0]in c)f=i[0];else{for(e in c){if(!i[0]||a.converters[e+" "+i[0]]){f=e;break}g||(g=e)}f=f||g}if(f)return f!==i[0]&&i.unshift(f),c[f]}function Nb(a,b,c,d){var e,f,g,h,i,j={},k=a.dataTypes.slice();if(k[1])for(g in a.converters)j[g.toLowerCase()]=a.converters[g];f=k.shift();while(f)if(a.responseFields[f]&&(c[a.responseFields[f]]=b),!i&&d&&a.dataFilter&&(b=a.dataFilter(b,a.dataType)),i=f,f=k.shift())if("*"===f)f=i;else if("*"!==i&&i!==f){if(g=j[i+" "+f]||j["* "+f],!g)for(e in j)if(h=e.split(" "),h[1]===f&&(g=j[i+" "+h[0]]||j["* "+h[0]])){g===!0?g=j[e]:j[e]!==!0&&(f=h[0],k.unshift(h[1]));break}if(g!==!0)if(g&&a["throws"])b=g(b);else try{b=g(b)}catch(l){return{state:"parsererror",error:g?l:"No conversion from "+i+" to "+f}}}return{state:"success",data:b}}r.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:qb.href,type:"GET",isLocal:Cb.test(qb.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Hb,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":r.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(a,b){return b?Lb(Lb(a,r.ajaxSettings),b):Lb(r.ajaxSettings,a)},ajaxPrefilter:Jb(Fb),ajaxTransport:Jb(Gb),ajax:function(b,c){"object"==typeof b&&(c=b,b=void 0),c=c||{};var e,f,g,h,i,j,k,l,m,n,o=r.ajaxSetup({},c),p=o.context||o,q=o.context&&(p.nodeType||p.jquery)?r(p):r.event,s=r.Deferred(),t=r.Callbacks("once memory"),u=o.statusCode||{},v={},w={},x="canceled",y={readyState:0,getResponseHeader:function(a){var b;if(k){if(!h){h={};while(b=Bb.exec(g))h[b[1].toLowerCase()]=b[2]}b=h[a.toLowerCase()]}return null==b?null:b},getAllResponseHeaders:function(){return k?g:null},setRequestHeader:function(a,b){return null==k&&(a=w[a.toLowerCase()]=w[a.toLowerCase()]||a,v[a]=b),this},overrideMimeType:function(a){return null==k&&(o.mimeType=a),this},statusCode:function(a){var b;if(a)if(k)y.always(a[y.status]);else for(b in a)u[b]=[u[b],a[b]];return this},abort:function(a){var b=a||x;return e&&e.abort(b),A(0,b),this}};if(s.promise(y),o.url=((b||o.url||qb.href)+"").replace(Eb,qb.protocol+"//"),o.type=c.method||c.type||o.method||o.type,o.dataTypes=(o.dataType||"*").toLowerCase().match(K)||[""],null==o.crossDomain){j=d.createElement("a");try{j.href=o.url,j.href=j.href,o.crossDomain=Ib.protocol+"//"+Ib.host!=j.protocol+"//"+j.host}catch(z){o.crossDomain=!0}}if(o.data&&o.processData&&"string"!=typeof o.data&&(o.data=r.param(o.data,o.traditional)),Kb(Fb,o,c,y),k)return y;l=r.event&&o.global,l&&0===r.active++&&r.event.trigger("ajaxStart"),o.type=o.type.toUpperCase(),o.hasContent=!Db.test(o.type),f=o.url.replace(zb,""),o.hasContent?o.data&&o.processData&&0===(o.contentType||"").indexOf("application/x-www-form-urlencoded")&&(o.data=o.data.replace(yb,"+")):(n=o.url.slice(f.length),o.data&&(f+=(sb.test(f)?"&":"?")+o.data,delete o.data),o.cache===!1&&(f=f.replace(Ab,"$1"),n=(sb.test(f)?"&":"?")+"_="+rb++ +n),o.url=f+n),o.ifModified&&(r.lastModified[f]&&y.setRequestHeader("If-Modified-Since",r.lastModified[f]),r.etag[f]&&y.setRequestHeader("If-None-Match",r.etag[f])),(o.data&&o.hasContent&&o.contentType!==!1||c.contentType)&&y.setRequestHeader("Content-Type",o.contentType),y.setRequestHeader("Accept",o.dataTypes[0]&&o.accepts[o.dataTypes[0]]?o.accepts[o.dataTypes[0]]+("*"!==o.dataTypes[0]?", "+Hb+"; q=0.01":""):o.accepts["*"]);for(m in o.headers)y.setRequestHeader(m,o.headers[m]);if(o.beforeSend&&(o.beforeSend.call(p,y,o)===!1||k))return y.abort();if(x="abort",t.add(o.complete),y.done(o.success),y.fail(o.error),e=Kb(Gb,o,c,y)){if(y.readyState=1,l&&q.trigger("ajaxSend",[y,o]),k)return y;o.async&&o.timeout>0&&(i=a.setTimeout(function(){y.abort("timeout")},o.timeout));try{k=!1,e.send(v,A)}catch(z){if(k)throw z;A(-1,z)}}else A(-1,"No Transport");function A(b,c,d,h){var j,m,n,v,w,x=c;k||(k=!0,i&&a.clearTimeout(i),e=void 0,g=h||"",y.readyState=b>0?4:0,j=b>=200&&b<300||304===b,d&&(v=Mb(o,y,d)),v=Nb(o,v,y,j),j?(o.ifModified&&(w=y.getResponseHeader("Last-Modified"),w&&(r.lastModified[f]=w),w=y.getResponseHeader("etag"),w&&(r.etag[f]=w)),204===b||"HEAD"===o.type?x="nocontent":304===b?x="notmodified":(x=v.state,m=v.data,n=v.error,j=!n)):(n=x,!b&&x||(x="error",b<0&&(b=0))),y.status=b,y.statusText=(c||x)+"",j?s.resolveWith(p,[m,x,y]):s.rejectWith(p,[y,x,n]),y.statusCode(u),u=void 0,l&&q.trigger(j?"ajaxSuccess":"ajaxError",[y,o,j?m:n]),t.fireWith(p,[y,x]),l&&(q.trigger("ajaxComplete",[y,o]),--r.active||r.event.trigger("ajaxStop")))}return y},getJSON:function(a,b,c){return r.get(a,b,c,"json")},getScript:function(a,b){return r.get(a,void 0,b,"script")}}),r.each(["get","post"],function(a,b){r[b]=function(a,c,d,e){return r.isFunction(c)&&(e=e||d,d=c,c=void 0),r.ajax(r.extend({url:a,type:b,dataType:e,data:c,success:d},r.isPlainObject(a)&&a))}}),r._evalUrl=function(a){return r.ajax({url:a,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,"throws":!0})},r.fn.extend({wrapAll:function(a){var b;return this[0]&&(r.isFunction(a)&&(a=a.call(this[0])),b=r(a,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstElementChild)a=a.firstElementChild;return a}).append(this)),this},wrapInner:function(a){return r.isFunction(a)?this.each(function(b){r(this).wrapInner(a.call(this,b))}):this.each(function(){var b=r(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=r.isFunction(a);return this.each(function(c){r(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(a){return this.parent(a).not("body").each(function(){r(this).replaceWith(this.childNodes)}),this}}),r.expr.pseudos.hidden=function(a){return!r.expr.pseudos.visible(a)},r.expr.pseudos.visible=function(a){return!!(a.offsetWidth||a.offsetHeight||a.getClientRects().length)},r.ajaxSettings.xhr=function(){try{return new a.XMLHttpRequest}catch(b){}};var Ob={0:200,1223:204},Pb=r.ajaxSettings.xhr();o.cors=!!Pb&&"withCredentials"in Pb,o.ajax=Pb=!!Pb,r.ajaxTransport(function(b){var c,d;if(o.cors||Pb&&!b.crossDomain)return{send:function(e,f){var g,h=b.xhr();if(h.open(b.type,b.url,b.async,b.username,b.password),b.xhrFields)for(g in b.xhrFields)h[g]=b.xhrFields[g];b.mimeType&&h.overrideMimeType&&h.overrideMimeType(b.mimeType),b.crossDomain||e["X-Requested-With"]||(e["X-Requested-With"]="XMLHttpRequest");for(g in e)h.setRequestHeader(g,e[g]);c=function(a){return function(){c&&(c=d=h.onload=h.onerror=h.onabort=h.onreadystatechange=null,"abort"===a?h.abort():"error"===a?"number"!=typeof h.status?f(0,"error"):f(h.status,h.statusText):f(Ob[h.status]||h.status,h.statusText,"text"!==(h.responseType||"text")||"string"!=typeof h.responseText?{binary:h.response}:{text:h.responseText},h.getAllResponseHeaders()))}},h.onload=c(),d=h.onerror=c("error"),void 0!==h.onabort?h.onabort=d:h.onreadystatechange=function(){4===h.readyState&&a.setTimeout(function(){c&&d()})},c=c("abort");try{h.send(b.hasContent&&b.data||null)}catch(i){if(c)throw i}},abort:function(){c&&c()}}}),r.ajaxPrefilter(function(a){a.crossDomain&&(a.contents.script=!1)}),r.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(a){return r.globalEval(a),a}}}),r.ajaxPrefilter("script",function(a){void 0===a.cache&&(a.cache=!1),a.crossDomain&&(a.type="GET")}),r.ajaxTransport("script",function(a){if(a.crossDomain){var b,c;return{send:function(e,f){b=r(" - - - \ No newline at end of file diff --git a/assets/js/bootstrap.min.js b/assets/js/bootstrap.min.js deleted file mode 100644 index 2dd5553..0000000 --- a/assets/js/bootstrap.min.js +++ /dev/null @@ -1,1758 +0,0 @@ -/*! - * Bootstrap v3.3.7 (http://getbootstrap.com) - * Copyright 2011-2016 Twitter, Inc. - * Licensed under the MIT license - */ -if ("undefined" == typeof jQuery) - throw new Error("Bootstrap's JavaScript requires jQuery"); - -+ function (a) { - "use strict"; - var b = a - .fn - .jquery - .split(" ")[0] - .split("."); - if (b[0] < 2 && b[1] < 9 || 1 == b[0] && 9 == b[1] && b[2] < 1 || b[0] > 3) - throw new Error("Bootstrap's JavaScript requires jQuery version 1.9.1 or higher, but lower than v" + - "ersion 4") - }(jQuery), + function (a) { - "use strict"; - function b() { - var a = document.createElement("bootstrap"), - b = { - WebkitTransition: "webkitTransitionEnd", - MozTransition: "transitionend", - OTransition: "oTransitionEnd otransitionend", - transition: "transitionend" - }; - for (var c in b) - if (void 0 !== a.style[c]) - return {end: b[c]}; - return !1 - } - a.fn.emulateTransitionEnd = function (b) { - var c = !1, - d = this; - a(this).one("bsTransitionEnd", function () { - c = !0 - }); - var e = function () { - c || a(d).trigger(a.support.transition.end) - }; - return setTimeout(e, b), - this - }, - a(function () { - a.support.transition = b(), - a.support.transition && (a.event.special.bsTransitionEnd = { - bindType: a.support.transition.end, - delegateType: a.support.transition.end, - handle: function (b) { - if (a(b.target).is(this)) - return b.handleObj.handler.apply(this, arguments) - } - }) - }) -}(jQuery), + function (a) { - "use strict"; - function b(b) { - return this.each(function () { - var c = a(this), - e = c.data("bs.alert"); - e || c.data("bs.alert", e = new d(this)), - "string" == typeof b && e[b].call(c) - }) - } - var c = '[data-dismiss="alert"]', - d = function (b) { - a(b).on("click", c, this.close) - }; - d.VERSION = "3.3.7", - d.TRANSITION_DURATION = 150, - d.prototype.close = function (b) { - function c() { - g - .detach() - .trigger("closed.bs.alert") - .remove() - } - var e = a(this), - f = e.attr("data-target"); - f || (f = e.attr("href"), f = f && f.replace(/.*(?=#[^\s]*$)/, "")); - var g = a("#" === f - ? [] - : f); - b && b.preventDefault(), - g.length || (g = e.closest(".alert")), - g.trigger(b = a.Event("close.bs.alert")), - b.isDefaultPrevented() || (g.removeClass("in"), a.support.transition && g.hasClass("fade") - ? g.one("bsTransitionEnd", c).emulateTransitionEnd(d.TRANSITION_DURATION) - : c()) - }; - var e = a.fn.alert; - a.fn.alert = b, - a.fn.alert.Constructor = d, - a.fn.alert.noConflict = function () { - return a.fn.alert = e, - this - }, - a(document).on("click.bs.alert.data-api", c, d.prototype.close) -}(jQuery), + function (a) { - "use strict"; - function b(b) { - return this.each(function () { - var d = a(this), - e = d.data("bs.button"), - f = "object" == typeof b && b; - e || d.data("bs.button", e = new c(this, f)), - "toggle" == b - ? e.toggle() - : b && e.setState(b) - }) - } - var c = function (b, d) { - this.$element = a(b), - this.options = a.extend({}, c.DEFAULTS, d), - this.isLoading = !1 - }; - c.VERSION = "3.3.7", - c.DEFAULTS = { - loadingText: "loading..." - }, - c.prototype.setState = function (b) { - var c = "disabled", - d = this.$element, - e = d.is("input") - ? "val" - : "html", - f = d.data(); - b += "Text", - null == f.resetText && d.data("resetText", d[e]()), - setTimeout(a.proxy(function () { - d[e](null == f[b] - ? this.options[b] - : f[b]), - "loadingText" == b - ? (this.isLoading = !0, d.addClass(c).attr(c, c).prop(c, !0)) - : this.isLoading && (this.isLoading = !1, d.removeClass(c).removeAttr(c).prop(c, !1)) - }, this), 0) - }, - c.prototype.toggle = function () { - var a = !0, - b = this - .$element - .closest('[data-toggle="buttons"]'); - if (b.length) { - var c = this - .$element - .find("input"); - "radio" == c.prop("type") - ? (c.prop("checked") && (a = !1), b.find(".active").removeClass("active"), this.$element.addClass("active")) - : "checkbox" == c.prop("type") && (c.prop("checked") !== this.$element.hasClass("active") && (a = !1), this.$element.toggleClass("active")), - c.prop("checked", this.$element.hasClass("active")), - a && c.trigger("change") - } else - this - .$element - .attr("aria-pressed", !this.$element.hasClass("active")), - this - .$element - .toggleClass("active") - }; - var d = a.fn.button; - a.fn.button = b, - a.fn.button.Constructor = c, - a.fn.button.noConflict = function () { - return a.fn.button = d, - this - }, - a(document).on("click.bs.button.data-api", '[data-toggle^="button"]', function (c) { - var d = a(c.target).closest(".btn"); - b.call(d, "toggle"), - a(c.target).is('input[type="radio"], input[type="checkbox"]') || (c.preventDefault(), d.is("input,button") - ? d.trigger("focus") - : d.find("input:visible,button:visible").first().trigger("focus")) - }) - .on("focus.bs.button.data-api blur.bs.button.data-api", '[data-toggle^="button"]', function (b) { - a(b.target) - .closest(".btn") - .toggleClass("focus", /^focus(in)?$/.test(b.type)) - }) -}(jQuery), + function (a) { - "use strict"; - function b(b) { - return this.each(function () { - var d = a(this), - e = d.data("bs.carousel"), - f = a.extend({}, c.DEFAULTS, d.data(), "object" == typeof b && b), - g = "string" == typeof b - ? b - : f.slide; - e || d.data("bs.carousel", e = new c(this, f)), - "number" == typeof b - ? e.to(b) - : g - ? e[g]() - : f.interval && e - .pause() - .cycle() - }) - } - var c = function (b, c) { - this.$element = a(b), - this.$indicators = this - .$element - .find(".carousel-indicators"), - this.options = c, - this.paused = null, - this.sliding = null, - this.interval = null, - this.$active = null, - this.$items = null, - this.options.keyboard && this - .$element - .on("keydown.bs.carousel", a.proxy(this.keydown, this)), - "hover" == this.options.pause && !("ontouchstart" in document.documentElement) && this - .$element - .on("mouseenter.bs.carousel", a.proxy(this.pause, this)) - .on("mouseleave.bs.carousel", a.proxy(this.cycle, this)) - }; - c.VERSION = "3.3.7", - c.TRANSITION_DURATION = 600, - c.DEFAULTS = { - interval: 5e3, - pause: "hover", - wrap: !0, - keyboard: !0 - }, - c.prototype.keydown = function (a) { - if (!/input|textarea/i.test(a.target.tagName)) { - switch (a.which) { - case 37: - this.prev(); - break; - case 39: - this.next(); - break; - default: - return - } - a.preventDefault() - } - }, - c.prototype.cycle = function (b) { - return b || (this.paused = !1), - this.interval && clearInterval(this.interval), - this.options.interval && !this.paused && (this.interval = setInterval(a.proxy(this.next, this), this.options.interval)), - this - }, - c.prototype.getItemIndex = function (a) { - return this.$items = a - .parent() - .children(".item"), - this - .$items - .index(a || this.$active) - }, - c.prototype.getItemForDirection = function (a, b) { - var c = this.getItemIndex(b), - d = "prev" == a && 0 === c || "next" == a && c == this.$items.length - 1; - if (d && !this.options.wrap) - return b; - var e = "prev" == a - ? -1 - : 1, - f = (c + e) % this.$items.length; - return this - .$items - .eq(f) - }, - c.prototype.to = function (a) { - var b = this, - c = this.getItemIndex(this.$active = this.$element.find(".item.active")); - if (!(a > this.$items.length - 1 || a < 0)) - return this.sliding - ? this.$element.one("slid.bs.carousel", function () { - b.to(a) - }) - : c == a - ? this.pause().cycle() - : this.slide(a > c - ? "next" - : "prev", this.$items.eq(a)) - }, - c.prototype.pause = function (b) { - return b || (this.paused = !0), - this - .$element - .find(".next, .prev") - .length && a.support.transition && (this.$element.trigger(a.support.transition.end), this.cycle(!0)), - this.interval = clearInterval(this.interval), - this - }, - c.prototype.next = function () { - if (!this.sliding) - return this.slide("next") - }, - c.prototype.prev = function () { - if (!this.sliding) - return this.slide("prev") - }, - c.prototype.slide = function (b, d) { - var e = this - .$element - .find(".item.active"), - f = d || this.getItemForDirection(b, e), - g = this.interval, - h = "next" == b - ? "left" - : "right", - i = this; - if (f.hasClass("active")) - return this.sliding = !1; - var j = f[0], - k = a.Event("slide.bs.carousel", { - relatedTarget: j, - direction: h - }); - if (this.$element.trigger(k), !k.isDefaultPrevented()) { - if (this.sliding = !0, g && this.pause(), this.$indicators.length) { - this - .$indicators - .find(".active") - .removeClass("active"); - var l = a(this.$indicators.children()[this.getItemIndex(f)]); - l && l.addClass("active") - } - var m = a.Event("slid.bs.carousel", { - relatedTarget: j, - direction: h - }); - return a.support.transition && this - .$element - .hasClass("slide") - ? (f.addClass(b), f[0].offsetWidth, e.addClass(h), f.addClass(h), e.one("bsTransitionEnd", function () { - f - .removeClass([b, h].join(" ")) - .addClass("active"), - e.removeClass(["active", h].join(" ")), - i.sliding = !1, - setTimeout(function () { - i - .$element - .trigger(m) - }, 0) - }).emulateTransitionEnd(c.TRANSITION_DURATION)) - : (e.removeClass("active"), f.addClass("active"), this.sliding = !1, this.$element.trigger(m)), - g && this.cycle(), - this - } - }; - var d = a.fn.carousel; - a.fn.carousel = b, - a.fn.carousel.Constructor = c, - a.fn.carousel.noConflict = function () { - return a.fn.carousel = d, - this - }; - var e = function (c) { - var d, - e = a(this), - f = a(e.attr("data-target") || (d = e.attr("href")) && d.replace(/.*(?=#[^\s]+$)/, "")); - if (f.hasClass("carousel")) { - var g = a.extend({}, f.data(), e.data()), - h = e.attr("data-slide-to"); - h && (g.interval = !1), - b.call(f, g), - h && f - .data("bs.carousel") - .to(h), - c.preventDefault() - } - }; - a(document) - .on("click.bs.carousel.data-api", "[data-slide]", e) - .on("click.bs.carousel.data-api", "[data-slide-to]", e), - a(window).on("load", function () { - a('[data-ride="carousel"]') - .each(function () { - var c = a(this); - b.call(c, c.data()) - }) - }) -}(jQuery), + function (a) { - "use strict"; - function b(b) { - var c, - d = b.attr("data-target") || (c = b.attr("href")) && c.replace(/.*(?=#[^\s]+$)/, ""); - return a(d) - } - function c(b) { - return this.each(function () { - var c = a(this), - e = c.data("bs.collapse"), - f = a.extend({}, d.DEFAULTS, c.data(), "object" == typeof b && b); - !e && f.toggle && /show|hide/.test(b) && (f.toggle = !1), - e || c.data("bs.collapse", e = new d(this, f)), - "string" == typeof b && e[b]() - }) - } - var d = function (b, c) { - this.$element = a(b), - this.options = a.extend({}, d.DEFAULTS, c), - this.$trigger = a('[data-toggle="collapse"][href="#' + b.id + '"],[data-toggle="collapse"][data-target="#' + b.id + '"]'), - this.transitioning = null, - this.options.parent - ? this.$parent = this.getParent() - : this.addAriaAndCollapsedClass(this.$element, this.$trigger), - this.options.toggle && this.toggle() - }; - d.VERSION = "3.3.7", - d.TRANSITION_DURATION = 350, - d.DEFAULTS = { - toggle: !0 - }, - d.prototype.dimension = function () { - var a = this - .$element - .hasClass("width"); - return a - ? "width" - : "height" - }, - d.prototype.show = function () { - if (!this.transitioning && !this.$element.hasClass("in")) { - var b, - e = this.$parent && this - .$parent - .children(".panel") - .children(".in, .collapsing"); - if (!(e && e.length && (b = e.data("bs.collapse"), b && b.transitioning))) { - var f = a.Event("show.bs.collapse"); - if (this.$element.trigger(f), !f.isDefaultPrevented()) { - e && e.length && (c.call(e, "hide"), b || e.data("bs.collapse", null)); - var g = this.dimension(); - this - .$element - .removeClass("collapse") - .addClass("collapsing")[g](0) - .attr("aria-expanded", !0), - this - .$trigger - .removeClass("collapsed") - .attr("aria-expanded", !0), - this.transitioning = 1; - var h = function () { - this - .$element - .removeClass("collapsing") - .addClass("collapse in")[g](""), - this.transitioning = 0, - this - .$element - .trigger("shown.bs.collapse") - }; - if (!a.support.transition) - return h.call(this); - var i = a.camelCase(["scroll", g].join("-")); - this - .$element - .one("bsTransitionEnd", a.proxy(h, this)) - .emulateTransitionEnd(d.TRANSITION_DURATION)[g](this.$element[0][i]) - } - } - } - }, - d.prototype.hide = function () { - if (!this.transitioning && this.$element.hasClass("in")) { - var b = a.Event("hide.bs.collapse"); - if (this.$element.trigger(b), !b.isDefaultPrevented()) { - var c = this.dimension(); - this.$element[c](this.$element[c]())[0].offsetHeight, - this - .$element - .addClass("collapsing") - .removeClass("collapse in") - .attr("aria-expanded", !1), - this - .$trigger - .addClass("collapsed") - .attr("aria-expanded", !1), - this.transitioning = 1; - var e = function () { - this.transitioning = 0, - this - .$element - .removeClass("collapsing") - .addClass("collapse") - .trigger("hidden.bs.collapse") - }; - return a.support.transition - ? void this - .$element[c](0) - .one("bsTransitionEnd", a.proxy(e, this)) - .emulateTransitionEnd(d.TRANSITION_DURATION) - : e.call(this) - } - } - }, - d.prototype.toggle = function () { - this[this - .$element - .hasClass("in") - ? "hide" - : "show"]() - }, - d.prototype.getParent = function () { - return a(this.options.parent) - .find('[data-toggle="collapse"][data-parent="' + this.options.parent + '"]') - .each(a.proxy(function (c, d) { - var e = a(d); - this.addAriaAndCollapsedClass(b(e), e) - }, this)) - .end() - }, - d.prototype.addAriaAndCollapsedClass = function (a, b) { - var c = a.hasClass("in"); - a.attr("aria-expanded", c), - b - .toggleClass("collapsed", !c) - .attr("aria-expanded", c) - }; - var e = a.fn.collapse; - a.fn.collapse = c, - a.fn.collapse.Constructor = d, - a.fn.collapse.noConflict = function () { - return a.fn.collapse = e, - this - }, - a(document).on("click.bs.collapse.data-api", '[data-toggle="collapse"]', function (d) { - var e = a(this); - e.attr("data-target") || d.preventDefault(); - var f = b(e), - g = f.data("bs.collapse"), - h = g - ? "toggle" - : e.data(); - c.call(f, h) - }) -}(jQuery), + function (a) { - "use strict"; - function b(b) { - var c = b.attr("data-target"); - c || (c = b.attr("href"), c = c && /#[A-Za-z]/.test(c) && c.replace(/.*(?=#[^\s]*$)/, "")); - var d = c && a(c); - return d && d.length - ? d - : b.parent() - } - function c(c) { - c && 3 === c.which || (a(e).remove(), a(f).each(function () { - var d = a(this), - e = b(d), - f = { - relatedTarget: this - }; - e.hasClass("open") && (c && "click" == c.type && /input|textarea/i.test(c.target.tagName) && a.contains(e[0], c.target) || (e.trigger(c = a.Event("hide.bs.dropdown", f)), c.isDefaultPrevented() || (d.attr("aria-expanded", "false"), e.removeClass("open").trigger(a.Event("hidden.bs.dropdown", f))))) - })) - } - function d(b) { - return this.each(function () { - var c = a(this), - d = c.data("bs.dropdown"); - d || c.data("bs.dropdown", d = new g(this)), - "string" == typeof b && d[b].call(c) - }) - } - var e = ".dropdown-backdrop", - f = '[data-toggle="dropdown"]', - g = function (b) { - a(b).on("click.bs.dropdown", this.toggle) - }; - g.VERSION = "3.3.7", - g.prototype.toggle = function (d) { - var e = a(this); - if (!e.is(".disabled, :disabled")) { - var f = b(e), - g = f.hasClass("open"); - if (c(), !g) { - "ontouchstart" in document.documentElement && !f - .closest(".navbar-nav") - .length && a(document.createElement("div")) - .addClass("dropdown-backdrop") - .insertAfter(a(this)) - .on("click", c); - var h = { - relatedTarget: this - }; - if (f.trigger(d = a.Event("show.bs.dropdown", h)), d.isDefaultPrevented()) - return; - e - .trigger("focus") - .attr("aria-expanded", "true"), - f - .toggleClass("open") - .trigger(a.Event("shown.bs.dropdown", h)) - } - return !1 - } - }, - g.prototype.keydown = function (c) { - if (/(38|40|27|32)/.test(c.which) && !/input|textarea/i.test(c.target.tagName)) { - var d = a(this); - if (c.preventDefault(), c.stopPropagation(), !d.is(".disabled, :disabled")) { - var e = b(d), - g = e.hasClass("open"); - if (!g && 27 != c.which || g && 27 == c.which) - return 27 == c.which && e.find(f).trigger("focus"), - d.trigger("click"); - var h = " li:not(.disabled):visible a", - i = e.find(".dropdown-menu" + h); - if (i.length) { - var j = i.index(c.target); - 38 == c.which && j > 0 && j--, - 40 == c.which && j < i.length - 1 && j++, ~ j || (j = 0), - i - .eq(j) - .trigger("focus") - } - } - } - }; - var h = a.fn.dropdown; - a.fn.dropdown = d, - a.fn.dropdown.Constructor = g, - a.fn.dropdown.noConflict = function () { - return a.fn.dropdown = h, - this - }, - a(document) - .on("click.bs.dropdown.data-api", c) - .on("click.bs.dropdown.data-api", ".dropdown form", function (a) { - a.stopPropagation() - }) - .on("click.bs.dropdown.data-api", f, g.prototype.toggle) - .on("keydown.bs.dropdown.data-api", f, g.prototype.keydown) - .on("keydown.bs.dropdown.data-api", ".dropdown-menu", g.prototype.keydown) -}(jQuery), + function (a) { - "use strict"; - function b(b, d) { - return this.each(function () { - var e = a(this), - f = e.data("bs.modal"), - g = a.extend({}, c.DEFAULTS, e.data(), "object" == typeof b && b); - f || e.data("bs.modal", f = new c(this, g)), - "string" == typeof b - ? f[b](d) - : g.show && f.show(d) - }) - } - var c = function (b, c) { - this.options = c, - this.$body = a(document.body), - this.$element = a(b), - this.$dialog = this - .$element - .find(".modal-dialog"), - this.$backdrop = null, - this.isShown = null, - this.originalBodyPad = null, - this.scrollbarWidth = 0, - this.ignoreBackdropClick = !1, - this.options.remote && this - .$element - .find(".modal-content") - .load(this.options.remote, a.proxy(function () { - this - .$element - .trigger("loaded.bs.modal") - }, this)) - }; - c.VERSION = "3.3.7", - c.TRANSITION_DURATION = 300, - c.BACKDROP_TRANSITION_DURATION = 150, - c.DEFAULTS = { - backdrop: !0, - keyboard: !0, - show: !0 - }, - c.prototype.toggle = function (a) { - return this.isShown - ? this.hide() - : this.show(a) - }, - c.prototype.show = function (b) { - var d = this, - e = a.Event("show.bs.modal", {relatedTarget: b}); - this - .$element - .trigger(e), - this.isShown || e.isDefaultPrevented() || (this.isShown = !0, this.checkScrollbar(), this.setScrollbar(), this.$body.addClass("modal-open"), this.escape(), this.resize(), this.$element.on("click.dismiss.bs.modal", '[data-dismiss="modal"]', a.proxy(this.hide, this)), this.$dialog.on("mousedown.dismiss.bs.modal", function () { - d - .$element - .one("mouseup.dismiss.bs.modal", function (b) { - a(b.target).is(d.$element) && (d.ignoreBackdropClick = !0) - }) - }), this.backdrop(function () { - var e = a.support.transition && d - .$element - .hasClass("fade"); - d - .$element - .parent() - .length || d - .$element - .appendTo(d.$body), - d - .$element - .show() - .scrollTop(0), - d.adjustDialog(), - e && d.$element[0].offsetWidth, - d - .$element - .addClass("in"), - d.enforceFocus(); - var f = a.Event("shown.bs.modal", {relatedTarget: b}); - e - ? d - .$dialog - .one("bsTransitionEnd", function () { - d - .$element - .trigger("focus") - .trigger(f) - }) - .emulateTransitionEnd(c.TRANSITION_DURATION) - : d - .$element - .trigger("focus") - .trigger(f) - })) - }, - c.prototype.hide = function (b) { - b && b.preventDefault(), - b = a.Event("hide.bs.modal"), - this - .$element - .trigger(b), - this.isShown && !b.isDefaultPrevented() && (this.isShown = !1, this.escape(), this.resize(), a(document).off("focusin.bs.modal"), this.$element.removeClass("in").off("click.dismiss.bs.modal").off("mouseup.dismiss.bs.modal"), this.$dialog.off("mousedown.dismiss.bs.modal"), a.support.transition && this.$element.hasClass("fade") - ? this.$element.one("bsTransitionEnd", a.proxy(this.hideModal, this)).emulateTransitionEnd(c.TRANSITION_DURATION) - : this.hideModal()) - }, - c.prototype.enforceFocus = function () { - a(document) - .off("focusin.bs.modal") - .on("focusin.bs.modal", a.proxy(function (a) { - document === a.target || this.$element[0] === a.target || this - .$element - .has(a.target) - .length || this - .$element - .trigger("focus") - }, this)) - }, - c.prototype.escape = function () { - this.isShown && this.options.keyboard - ? this - .$element - .on("keydown.dismiss.bs.modal", a.proxy(function (a) { - 27 == a.which && this.hide() - }, this)) - : this.isShown || this - .$element - .off("keydown.dismiss.bs.modal") - }, - c.prototype.resize = function () { - this.isShown - ? a(window).on("resize.bs.modal", a.proxy(this.handleUpdate, this)) - : a(window).off("resize.bs.modal") - }, - c.prototype.hideModal = function () { - var a = this; - this - .$element - .hide(), - this.backdrop(function () { - a - .$body - .removeClass("modal-open"), - a.resetAdjustments(), - a.resetScrollbar(), - a - .$element - .trigger("hidden.bs.modal") - }) - }, - c.prototype.removeBackdrop = function () { - this.$backdrop && this - .$backdrop - .remove(), - this.$backdrop = null - }, - c.prototype.backdrop = function (b) { - var d = this, - e = this - .$element - .hasClass("fade") - ? "fade" - : ""; - if (this.isShown && this.options.backdrop) { - var f = a.support.transition && e; - if (this.$backdrop = a(document.createElement("div")).addClass("modal-backdrop " + e).appendTo(this.$body), this.$element.on("click.dismiss.bs.modal", a.proxy(function (a) { - return this.ignoreBackdropClick - ? void(this.ignoreBackdropClick = !1) - : void(a.target === a.currentTarget && ("static" == this.options.backdrop - ? this.$element[0].focus() - : this.hide())) - }, this)), f && this.$backdrop[0].offsetWidth, this.$backdrop.addClass("in"), !b) - return; - f - ? this - .$backdrop - .one("bsTransitionEnd", b) - .emulateTransitionEnd(c.BACKDROP_TRANSITION_DURATION) - : b() - } else if (!this.isShown && this.$backdrop) { - this - .$backdrop - .removeClass("in"); - var g = function () { - d.removeBackdrop(), - b && b() - }; - a.support.transition && this - .$element - .hasClass("fade") - ? this - .$backdrop - .one("bsTransitionEnd", g) - .emulateTransitionEnd(c.BACKDROP_TRANSITION_DURATION) - : g() - } else - b && b() - }, - c.prototype.handleUpdate = function () { - this.adjustDialog() - }, - c.prototype.adjustDialog = function () { - var a = this.$element[0].scrollHeight > document.documentElement.clientHeight; - this - .$element - .css({ - paddingLeft: !this.bodyIsOverflowing && a - ? this.scrollbarWidth - : "", - paddingRight: this.bodyIsOverflowing && !a - ? this.scrollbarWidth - : "" - }) - }, - c.prototype.resetAdjustments = function () { - this - .$element - .css({paddingLeft: "", paddingRight: ""}) - }, - c.prototype.checkScrollbar = function () { - var a = window.innerWidth; - if (!a) { - var b = document - .documentElement - .getBoundingClientRect(); - a = b.right - Math.abs(b.left) - } - this.bodyIsOverflowing = document.body.clientWidth < a, - this.scrollbarWidth = this.measureScrollbar() - }, - c.prototype.setScrollbar = function () { - var a = parseInt(this.$body.css("padding-right") || 0, 10); - this.originalBodyPad = document.body.style.paddingRight || "", - this.bodyIsOverflowing && this - .$body - .css("padding-right", a + this.scrollbarWidth) - }, - c.prototype.resetScrollbar = function () { - this - .$body - .css("padding-right", this.originalBodyPad) - }, - c.prototype.measureScrollbar = function () { - var a = document.createElement("div"); - a.className = "modal-scrollbar-measure", - this - .$body - .append(a); - var b = a.offsetWidth - a.clientWidth; - return this - .$body[0] - .removeChild(a), - b - }; - var d = a.fn.modal; - a.fn.modal = b, - a.fn.modal.Constructor = c, - a.fn.modal.noConflict = function () { - return a.fn.modal = d, - this - }, - a(document).on("click.bs.modal.data-api", '[data-toggle="modal"]', function (c) { - var d = a(this), - e = d.attr("href"), - f = a(d.attr("data-target") || e && e.replace(/.*(?=#[^\s]+$)/, "")), - g = f.data("bs.modal") - ? "toggle" - : a.extend({ - remote: !/#/.test(e) && e - }, f.data(), d.data()); - d.is("a") && c.preventDefault(), - f.one("show.bs.modal", function (a) { - a.isDefaultPrevented() || f.one("hidden.bs.modal", function () { - d.is(":visible") && d.trigger("focus") - }) - }), - b.call(f, g, this) - }) -}(jQuery), + function (a) { - "use strict"; - function b(b) { - return this.each(function () { - var d = a(this), - e = d.data("bs.tooltip"), - f = "object" == typeof b && b; - !e && /destroy|hide/.test(b) || (e || d.data("bs.tooltip", e = new c(this, f)), "string" == typeof b && e[b]()) - }) - } - var c = function (a, b) { - this.type = null, - this.options = null, - this.enabled = null, - this.timeout = null, - this.hoverState = null, - this.$element = null, - this.inState = null, - this.init("tooltip", a, b) - }; - c.VERSION = "3.3.7", - c.TRANSITION_DURATION = 150, - c.DEFAULTS = { - animation: !0, - placement: "top", - selector: !1, - template: '', - trigger: "hover focus", - title: "", - delay: 0, - html: !1, - container: !1, - viewport: { - selector: "body", - padding: 0 - } - }, - c.prototype.init = function (b, c, d) { - if (this.enabled = !0, this.type = b, this.$element = a(c), this.options = this.getOptions(d), this.$viewport = this.options.viewport && a(a.isFunction(this.options.viewport) - ? this.options.viewport.call(this, this.$element) - : this.options.viewport.selector || this.options.viewport), this.inState = { - click: !1, - hover: !1, - focus: !1 - }, this.$element[0]instanceof document.constructor && !this.options.selector) - throw new Error("`selector` option must be specified when initializing " + this.type + " on the window.document object!"); - for (var e = this.options.trigger.split(" "), f = e.length; f--;) { - var g = e[f]; - if ("click" == g) - this.$element.on("click." + this.type, this.options.selector, a.proxy(this.toggle, this)); - else if ("manual" != g) { - var h = "hover" == g - ? "mouseenter" - : "focusin", - i = "hover" == g - ? "mouseleave" - : "focusout"; - this - .$element - .on(h + "." + this.type, this.options.selector, a.proxy(this.enter, this)), - this - .$element - .on(i + "." + this.type, this.options.selector, a.proxy(this.leave, this)) - } - } - this.options.selector - ? this._options = a.extend({}, this.options, { - trigger: "manual", - selector: "" - }) - : this.fixTitle() - }, - c.prototype.getDefaults = function () { - return c.DEFAULTS - }, - c.prototype.getOptions = function (b) { - return b = a.extend({}, this.getDefaults(), this.$element.data(), b), - b.delay && "number" == typeof b.delay && (b.delay = { - show: b.delay, - hide: b.delay - }), - b - }, - c.prototype.getDelegateOptions = function () { - var b = {}, - c = this.getDefaults(); - return this._options && a.each(this._options, function (a, d) { - c[a] != d && (b[a] = d) - }), - b - }, - c.prototype.enter = function (b) { - var c = b instanceof this.constructor - ? b - : a(b.currentTarget).data("bs." + this.type); - return c || (c = new this.constructor(b.currentTarget, this.getDelegateOptions()), a(b.currentTarget).data("bs." + this.type, c)), - b instanceof a.Event && (c.inState["focusin" == b.type - ? "focus" - : "hover"] = !0), - c - .tip() - .hasClass("in") || "in" == c.hoverState - ? void(c.hoverState = "in") - : (clearTimeout(c.timeout), c.hoverState = "in", c.options.delay && c.options.delay.show - ? void(c.timeout = setTimeout(function () { - "in" == c.hoverState && c.show() - }, c.options.delay.show)) - : c.show()) - }, - c.prototype.isInStateTrue = function () { - for (var a in this.inState) - if (this.inState[a]) - return !0; - return !1 - }, - c.prototype.leave = function (b) { - var c = b instanceof this.constructor - ? b - : a(b.currentTarget).data("bs." + this.type); - if (c || (c = new this.constructor(b.currentTarget, this.getDelegateOptions()), a(b.currentTarget).data("bs." + this.type, c)), b instanceof a.Event && (c.inState["focusout" == b.type - ? "focus" - : "hover"] = !1), !c.isInStateTrue()) - return clearTimeout(c.timeout), - c.hoverState = "out", - c.options.delay && c.options.delay.hide - ? void(c.timeout = setTimeout(function () { - "out" == c.hoverState && c.hide() - }, c.options.delay.hide)) - : c.hide() - }, - c.prototype.show = function () { - var b = a.Event("show.bs." + this.type); - if (this.hasContent() && this.enabled) { - this - .$element - .trigger(b); - var d = a.contains(this.$element[0].ownerDocument.documentElement, this.$element[0]); - if (b.isDefaultPrevented() || !d) - return; - var e = this, - f = this.tip(), - g = this.getUID(this.type); - this.setContent(), - f.attr("id", g), - this - .$element - .attr("aria-describedby", g), - this.options.animation && f.addClass("fade"); - var h = "function" == typeof this.options.placement - ? this - .options - .placement - .call(this, f[0], this.$element[0]) - : this.options.placement, - i = /\s?auto?\s?/i, - j = i.test(h); - j && (h = h.replace(i, "") || "top"), - f - .detach() - .css({top: 0, left: 0, display: "block"}) - .addClass(h) - .data("bs." + this.type, this), - this.options.container - ? f.appendTo(this.options.container) - : f.insertAfter(this.$element), - this - .$element - .trigger("inserted.bs." + this.type); - var k = this.getPosition(), - l = f[0].offsetWidth, - m = f[0].offsetHeight; - if (j) { - var n = h, - o = this.getPosition(this.$viewport); - h = "bottom" == h && k.bottom + m > o.bottom - ? "top" - : "top" == h && k.top - m < o.top - ? "bottom" - : "right" == h && k.right + l > o.width - ? "left" - : "left" == h && k.left - l < o.left - ? "right" - : h, - f - .removeClass(n) - .addClass(h) - } - var p = this.getCalculatedOffset(h, k, l, m); - this.applyPlacement(p, h); - var q = function () { - var a = e.hoverState; - e - .$element - .trigger("shown.bs." + e.type), - e.hoverState = null, - "out" == a && e.leave(e) - }; - a.support.transition && this - .$tip - .hasClass("fade") - ? f - .one("bsTransitionEnd", q) - .emulateTransitionEnd(c.TRANSITION_DURATION) - : q() - } - }, - c.prototype.applyPlacement = function (b, c) { - var d = this.tip(), - e = d[0].offsetWidth, - f = d[0].offsetHeight, - g = parseInt(d.css("margin-top"), 10), - h = parseInt(d.css("margin-left"), 10); - isNaN(g) && (g = 0), - isNaN(h) && (h = 0), - b.top += g, - b.left += h, - a - .offset - .setOffset(d[0], a.extend({ - using: function (a) { - d.css({ - top: Math.round(a.top), - left: Math.round(a.left) - }) - } - }, b), 0), - d.addClass("in"); - var i = d[0].offsetWidth, - j = d[0].offsetHeight; - "top" == c && j != f && (b.top = b.top + f - j); - var k = this.getViewportAdjustedDelta(c, b, i, j); - k.left - ? b.left += k.left - : b.top += k.top; - var l = /top|bottom/.test(c), - m = l - ? 2 * k.left - e + i - : 2 * k.top - f + j, - n = l - ? "offsetWidth" - : "offsetHeight"; - d.offset(b), - this.replaceArrow(m, d[0][n], l) - }, - c.prototype.replaceArrow = function (a, b, c) { - this - .arrow() - .css(c - ? "left" - : "top", 50 * (1 - a / b) + "%") - .css(c - ? "top" - : "left", "") - }, - c.prototype.setContent = function () { - var a = this.tip(), - b = this.getTitle(); - a.find(".tooltip-inner")[this.options.html - ? "html" - : "text"](b), - a.removeClass("fade in top bottom left right") - }, - c.prototype.hide = function (b) { - function d() { - "in" != e.hoverState && f.detach(), - e.$element && e - .$element - .removeAttr("aria-describedby") - .trigger("hidden.bs." + e.type), - b && b() - } - var e = this, - f = a(this.$tip), - g = a.Event("hide.bs." + this.type); - if (this.$element.trigger(g), !g.isDefaultPrevented()) - return f.removeClass("in"), - a.support.transition && f.hasClass("fade") - ? f.one("bsTransitionEnd", d).emulateTransitionEnd(c.TRANSITION_DURATION) - : d(), - this.hoverState = null, - this - }, - c.prototype.fixTitle = function () { - var a = this.$element; - (a.attr("title") || "string" != typeof a.attr("data-original-title")) && a.attr("data-original-title", a.attr("title") || "").attr("title", "") - }, - c.prototype.hasContent = function () { - return this.getTitle() - }, - c.prototype.getPosition = function (b) { - b = b || this.$element; - var c = b[0], - d = "BODY" == c.tagName, - e = c.getBoundingClientRect(); - null == e.width && (e = a.extend({}, e, { - width: e.right - e.left, - height: e.bottom - e.top - })); - var f = window.SVGElement && c instanceof window.SVGElement, - g = d - ? { - top: 0, - left: 0 - } - : f - ? null - : b.offset(), - h = { - scroll: d - ? document.documentElement.scrollTop || document.body.scrollTop - : b.scrollTop() - }, - i = d - ? { - width: a(window).width(), - height: a(window).height() - } - : null; - return a.extend({}, e, h, i, g) - }, - c.prototype.getCalculatedOffset = function (a, b, c, d) { - return "bottom" == a - ? { - top: b.top + b.height, - left: b.left + b.width / 2 - c / 2 - } - : "top" == a - ? { - top: b.top - d, - left: b.left + b.width / 2 - c / 2 - } - : "left" == a - ? { - top: b.top + b.height / 2 - d / 2, - left: b.left - c - } - : { - top: b.top + b.height / 2 - d / 2, - left: b.left + b.width - } - }, - c.prototype.getViewportAdjustedDelta = function (a, b, c, d) { - var e = { - top: 0, - left: 0 - }; - if (!this.$viewport) - return e; - var f = this.options.viewport && this.options.viewport.padding || 0, - g = this.getPosition(this.$viewport); - if (/right|left/.test(a)) { - var h = b.top - f - g.scroll, - i = b.top + f - g.scroll + d; - h < g.top - ? e.top = g.top - h - : i > g.top + g.height && (e.top = g.top + g.height - i) - } else { - var j = b.left - f, - k = b.left + f + c; - j < g.left - ? e.left = g.left - j - : k > g.right && (e.left = g.left + g.width - k) - } - return e - }, - c.prototype.getTitle = function () { - var a, - b = this.$element, - c = this.options; - return a = b.attr("data-original-title") || ("function" == typeof c.title - ? c.title.call(b[0]) - : c.title) - }, - c.prototype.getUID = function (a) { - do - a += ~~ (1e6 * Math.random()); - while (document.getElementById(a)); - return a - }, - c.prototype.tip = function () { - if (!this.$tip && (this.$tip = a(this.options.template), 1 != this.$tip.length)) - throw new Error(this.type + " `template` option must consist of exactly 1 top-level element!"); - return this.$tip - }, - c.prototype.arrow = function () { - return this.$arrow = this.$arrow || this - .tip() - .find(".tooltip-arrow") - }, - c.prototype.enable = function () { - this.enabled = !0 - }, - c.prototype.disable = function () { - this.enabled = !1 - }, - c.prototype.toggleEnabled = function () { - this.enabled = !this.enabled - }, - c.prototype.toggle = function (b) { - var c = this; - b && (c = a(b.currentTarget).data("bs." + this.type), c || (c = new this.constructor(b.currentTarget, this.getDelegateOptions()), a(b.currentTarget).data("bs." + this.type, c))), - b - ? (c.inState.click = !c.inState.click, c.isInStateTrue() - ? c.enter(c) - : c.leave(c)) - : c - .tip() - .hasClass("in") - ? c.leave(c) - : c.enter(c) - }, - c.prototype.destroy = function () { - var a = this; - clearTimeout(this.timeout), - this.hide(function () { - a - .$element - .off("." + a.type) - .removeData("bs." + a.type), - a.$tip && a - .$tip - .detach(), - a.$tip = null, - a.$arrow = null, - a.$viewport = null, - a.$element = null - }) - }; - var d = a.fn.tooltip; - a.fn.tooltip = b, - a.fn.tooltip.Constructor = c, - a.fn.tooltip.noConflict = function () { - return a.fn.tooltip = d, - this - } -}(jQuery), + function (a) { - "use strict"; - function b(b) { - return this.each(function () { - var d = a(this), - e = d.data("bs.popover"), - f = "object" == typeof b && b; - !e && /destroy|hide/.test(b) || (e || d.data("bs.popover", e = new c(this, f)), "string" == typeof b && e[b]()) - }) - } - var c = function (a, b) { - this.init("popover", a, b) - }; - if (!a.fn.tooltip) - throw new Error("Popover requires tooltip.js"); - c.VERSION = "3.3.7", - c.DEFAULTS = a.extend({}, a.fn.tooltip.Constructor.DEFAULTS, { - placement: "right", - trigger: "click", - content: "", - template: '' - }), - c.prototype = a.extend({}, a.fn.tooltip.Constructor.prototype), - c.prototype.constructor = c, - c.prototype.getDefaults = function () { - return c.DEFAULTS - }, - c.prototype.setContent = function () { - var a = this.tip(), - b = this.getTitle(), - c = this.getContent(); - a.find(".popover-title")[this.options.html - ? "html" - : "text"](b), - a - .find(".popover-content") - .children() - .detach() - .end()[this.options.html - ? "string" == typeof c - ? "html" - : "append" - : "text"](c), - a.removeClass("fade top bottom left right in"), - a - .find(".popover-title") - .html() || a - .find(".popover-title") - .hide() - }, - c.prototype.hasContent = function () { - return this.getTitle() || this.getContent() - }, - c.prototype.getContent = function () { - var a = this.$element, - b = this.options; - return a.attr("data-content") || ("function" == typeof b.content - ? b.content.call(a[0]) - : b.content) - }, - c.prototype.arrow = function () { - return this.$arrow = this.$arrow || this - .tip() - .find(".arrow") - }; - var d = a.fn.popover; - a.fn.popover = b, - a.fn.popover.Constructor = c, - a.fn.popover.noConflict = function () { - return a.fn.popover = d, - this - } -}(jQuery), + function (a) { - "use strict"; - function b(c, d) { - this.$body = a(document.body), - this.$scrollElement = a(a(c).is(document.body) - ? window - : c), - this.options = a.extend({}, b.DEFAULTS, d), - this.selector = (this.options.target || "") + " .nav li > a", - this.offsets = [], - this.targets = [], - this.activeTarget = null, - this.scrollHeight = 0, - this - .$scrollElement - .on("scroll.bs.scrollspy", a.proxy(this.process, this)), - this.refresh(), - this.process() - } - function c(c) { - return this.each(function () { - var d = a(this), - e = d.data("bs.scrollspy"), - f = "object" == typeof c && c; - e || d.data("bs.scrollspy", e = new b(this, f)), - "string" == typeof c && e[c]() - }) - } - b.VERSION = "3.3.7", - b.DEFAULTS = { - offset: 10 - }, - b.prototype.getScrollHeight = function () { - return this.$scrollElement[0].scrollHeight || Math.max(this.$body[0].scrollHeight, document.documentElement.scrollHeight) - }, - b.prototype.refresh = function () { - var b = this, - c = "offset", - d = 0; - this.offsets = [], - this.targets = [], - this.scrollHeight = this.getScrollHeight(), - a.isWindow(this.$scrollElement[0]) || (c = "position", d = this.$scrollElement.scrollTop()), - this - .$body - .find(this.selector) - .map(function () { - var b = a(this), - e = b.data("target") || b.attr("href"), - f = /^#./.test(e) && a(e); - return f && f.length && f.is(":visible") && [ - [ - f[c]().top + d, - e - ] - ] || null - }) - .sort(function (a, b) { - return a[0] - b[0] - }) - .each(function () { - b - .offsets - .push(this[0]), - b - .targets - .push(this[1]) - }) - }, - b.prototype.process = function () { - var a, - b = this - .$scrollElement - .scrollTop() + this.options.offset, - c = this.getScrollHeight(), - d = this.options.offset + c - this - .$scrollElement - .height(), - e = this.offsets, - f = this.targets, - g = this.activeTarget; - if (this.scrollHeight != c && this.refresh(), b >= d) - return g != (a = f[f.length - 1]) && this.activate(a); - if (g && b < e[0]) - return this.activeTarget = null, - this.clear(); - for (a = e.length; a--;) - g != f[a] && b >= e[a] && (void 0 === e[a + 1] || b < e[a + 1]) && this.activate(f[a]) - }, - b.prototype.activate = function (b) { - this.activeTarget = b, - this.clear(); - var c = this.selector + '[data-target="' + b + '"],' + this.selector + '[href="' + b + '"]', - d = a(c) - .parents("li") - .addClass("active"); - d - .parent(".dropdown-menu") - .length && (d = d.closest("li.dropdown").addClass("active")), - d.trigger("activate.bs.scrollspy") - }, - b.prototype.clear = function () { - a(this.selector) - .parentsUntil(this.options.target, ".active") - .removeClass("active") - }; - var d = a.fn.scrollspy; - a.fn.scrollspy = c, - a.fn.scrollspy.Constructor = b, - a.fn.scrollspy.noConflict = function () { - return a.fn.scrollspy = d, - this - }, - a(window).on("load.bs.scrollspy.data-api", function () { - a('[data-spy="scroll"]') - .each(function () { - var b = a(this); - c.call(b, b.data()) - }) - }) -}(jQuery), + function (a) { - "use strict"; - function b(b) { - return this.each(function () { - var d = a(this), - e = d.data("bs.tab"); - e || d.data("bs.tab", e = new c(this)), - "string" == typeof b && e[b]() - }) - } - var c = function (b) { - this.element = a(b) - }; - c.VERSION = "3.3.7", - c.TRANSITION_DURATION = 150, - c.prototype.show = function () { - var b = this.element, - c = b.closest("ul:not(.dropdown-menu)"), - d = b.data("target"); - if (d || (d = b.attr("href"), d = d && d.replace(/.*(?=#[^\s]*$)/, "")), !b.parent("li").hasClass("active")) { - var e = c.find(".active:last a"), - f = a.Event("hide.bs.tab", {relatedTarget: b[0]}), - g = a.Event("show.bs.tab", {relatedTarget: e[0]}); - if (e.trigger(f), b.trigger(g), !g.isDefaultPrevented() && !f.isDefaultPrevented()) { - var h = a(d); - this.activate(b.closest("li"), c), - this.activate(h, h.parent(), function () { - e.trigger({type: "hidden.bs.tab", relatedTarget: b[0]}), - b.trigger({type: "shown.bs.tab", relatedTarget: e[0]}) - }) - } - } - }, - c.prototype.activate = function (b, d, e) { - function f() { - g - .removeClass("active") - .find("> .dropdown-menu > .active") - .removeClass("active") - .end() - .find('[data-toggle="tab"]') - .attr("aria-expanded", !1), - b - .addClass("active") - .find('[data-toggle="tab"]') - .attr("aria-expanded", !0), - h - ? (b[0].offsetWidth, b.addClass("in")) - : b.removeClass("fade"), - b - .parent(".dropdown-menu") - .length && b - .closest("li.dropdown") - .addClass("active") - .end() - .find('[data-toggle="tab"]') - .attr("aria-expanded", !0), - e && e() - } - var g = d.find("> .active"), - h = e && a.support.transition && (g.length && g.hasClass("fade") || !!d.find("> .fade").length); - g.length && h - ? g - .one("bsTransitionEnd", f) - .emulateTransitionEnd(c.TRANSITION_DURATION) - : f(), - g.removeClass("in") - }; - var d = a.fn.tab; - a.fn.tab = b, - a.fn.tab.Constructor = c, - a.fn.tab.noConflict = function () { - return a.fn.tab = d, - this - }; - var e = function (c) { - c.preventDefault(), - b.call(a(this), "show") - }; - a(document) - .on("click.bs.tab.data-api", '[data-toggle="tab"]', e) - .on("click.bs.tab.data-api", '[data-toggle="pill"]', e) -}(jQuery), + function (a) { - "use strict"; - function b(b) { - return this.each(function () { - var d = a(this), - e = d.data("bs.affix"), - f = "object" == typeof b && b; - e || d.data("bs.affix", e = new c(this, f)), - "string" == typeof b && e[b]() - }) - } - var c = function (b, d) { - this.options = a.extend({}, c.DEFAULTS, d), - this.$target = a(this.options.target) - .on("scroll.bs.affix.data-api", a.proxy(this.checkPosition, this)) - .on("click.bs.affix.data-api", a.proxy(this.checkPositionWithEventLoop, this)), - this.$element = a(b), - this.affixed = null, - this.unpin = null, - this.pinnedOffset = null, - this.checkPosition() - }; - c.VERSION = "3.3.7", - c.RESET = "affix affix-top affix-bottom", - c.DEFAULTS = { - offset: 0, - target: window - }, - c.prototype.getState = function (a, b, c, d) { - var e = this - .$target - .scrollTop(), - f = this - .$element - .offset(), - g = this - .$target - .height(); - if (null != c && "top" == this.affixed) - return e < c && "top"; - if ("bottom" == this.affixed) - return null != c - ? !(e + this.unpin <= f.top) && "bottom" - : !(e + g <= a - d) && "bottom"; - var h = null == this.affixed, - i = h - ? e - : f.top, - j = h - ? g - : b; - return null != c && e <= c - ? "top" - : null != d && i + j >= a - d && "bottom" - }, - c.prototype.getPinnedOffset = function () { - if (this.pinnedOffset) - return this.pinnedOffset; - this - .$element - .removeClass(c.RESET) - .addClass("affix"); - var a = this - .$target - .scrollTop(), - b = this - .$element - .offset(); - return this.pinnedOffset = b.top - a - }, - c.prototype.checkPositionWithEventLoop = function () { - setTimeout(a.proxy(this.checkPosition, this), 1) - }, - c.prototype.checkPosition = function () { - if (this.$element.is(":visible")) { - var b = this - .$element - .height(), - d = this.options.offset, - e = d.top, - f = d.bottom, - g = Math.max(a(document).height(), a(document.body).height()); - "object" != typeof d && (f = e = d), - "function" == typeof e && (e = d.top(this.$element)), - "function" == typeof f && (f = d.bottom(this.$element)); - var h = this.getState(g, b, e, f); - if (this.affixed != h) { - null != this.unpin && this - .$element - .css("top", ""); - var i = "affix" + (h - ? "-" + h - : ""), - j = a.Event(i + ".bs.affix"); - if (this.$element.trigger(j), j.isDefaultPrevented()) - return; - this.affixed = h, - this.unpin = "bottom" == h - ? this.getPinnedOffset() - : null, - this - .$element - .removeClass(c.RESET) - .addClass(i) - .trigger(i.replace("affix", "affixed") + ".bs.affix") - } - "bottom" == h && this - .$element - .offset({ - top: g - b - f - }) - } - }; - var d = a.fn.affix; - a.fn.affix = b, - a.fn.affix.Constructor = c, - a.fn.affix.noConflict = function () { - return a.fn.affix = d, - this - }, - a(window).on("load", function () { - a('[data-spy="affix"]') - .each(function () { - var c = a(this), - d = c.data(); - d.offset = d.offset || {}, - null != d.offsetBottom && (d.offset.bottom = d.offsetBottom), - null != d.offsetTop && (d.offset.top = d.offsetTop), - b.call(c, d) - }) - }) -}(jQuery); \ No newline at end of file diff --git a/assets/js/d3.min.js b/assets/js/d3.min.js deleted file mode 100644 index e47efc6..0000000 --- a/assets/js/d3.min.js +++ /dev/null @@ -1,15924 +0,0 @@ -// https://d3js.org Version 4.3.0. Copyright 2016 Mike Bostock. -(function (t, n) { - "object" == typeof exports && "undefined" != typeof module - ? n(exports) - : "function" == typeof define && define.amd - ? define(["exports"], n) - : n(t.d3 = t.d3 || {}) -})(this, function (t) { - "use strict"; - function n(t) { - return function (n, e) { - return Ms(t(n), e) - } - } - function e(t, n, e) { - var r = Math.abs(n - t) / Math.max(0, e), - i = Math.pow(10, Math.floor(Math.log(r) / Math.LN10)), - o = r / i; - return o >= Fs - ? i *= 10 - : o >= Is - ? i *= 5 - : o >= Ys && (i *= 2), - n < t - ? -i - : i - } - function r(t) { - return t.length - } - function i() {} - function o(t, n) { - var e = new i; - if (t instanceof i) - t.each(function (t, n) { - e.set(n, t) - }); - else if (Array.isArray(t)) { - var r, - o = -1, - u = t.length; - if (null == n) - for (; ++o < u;) - e.set(o, t[o]); - else - for (; ++o < u;) - e.set(n(r = t[o], o, t), r) - } else if (t) - for (var a in t) - e.set(a, t[a]); - return e - } - function u() { - return {} - } - function a(t, n, e) { - t[n] = e - } - function c() { - return o() - } - function s(t, n, e) { - t.set(n, e) - } - function f() {} - function l(t, n) { - var e = new f; - if (t instanceof f) - t.each(function (t) { - e.add(t) - }); - else if (t) { - var r = -1, - i = t.length; - if (null == n) - for (; ++r < i;) - e.add(t[r]); - else - for (; ++r < i;) - e.add(n(t[r], r, t)) - } - return e - } - function h(t) { - return + t - } - function p(t) { - return t * t - } - function d(t) { - return t * (2 - t) - } - function v(t) { - return ((t *= 2) <= 1 - ? t * t - : --t * (2 - t) + 1) / 2 - } - function _(t) { - return t * t * t - } - function y(t) { - return-- t * t * t + 1 - } - function g(t) { - return ((t *= 2) <= 1 - ? t * t * t - : (t -= 2) * t * t + 2) / 2 - } - function m(t) { - return 1 - Math.cos(t * Tf) - } - function x(t) { - return Math.sin(t * Tf) - } - function b(t) { - return (1 - Math.cos(Mf * t)) / 2 - } - function w(t) { - return Math.pow(2, 10 * t - 10) - } - function M(t) { - return 1 - Math.pow(2, -10 * t) - } - function T(t) { - return ((t *= 2) <= 1 - ? Math.pow(2, 10 * t - 10) - : 2 - Math.pow(2, 10 - 10 * t)) / 2 - } - function N(t) { - return 1 - Math.sqrt(1 - t * t) - } - function k(t) { - return Math.sqrt(1 - --t * t) - } - function S(t) { - return ((t *= 2) <= 1 - ? 1 - Math.sqrt(1 - t * t) - : Math.sqrt(1 - (t -= 2) * t) + 1) / 2 - } - function A(t) { - return 1 - E(1 - t) - } - function E(t) { - return (t =+ t) < Nf - ? Lf * t * t - : t < Sf - ? Lf * (t -= kf) * t + Af - : t < Cf - ? Lf * (t -= Ef) * t + zf - : Lf * (t -= Pf) * t + qf - } - function C(t) { - return ((t *= 2) <= 1 - ? 1 - E(1 - t) - : E(t - 1) + 1) / 2 - } - function z(t, n) { - return t[0] - n[0] || t[1] - n[1] - } - function P(t) { - for (var n = t.length, e = [ - 0, 1 - ], r = 2, i = 2; i < n; ++i) { - for (; r > 1 && Wf(t[e[r - 2]], t[e[r - 1]], t[i]) <= 0;) - --r; - e[r++] = i - } - return e.slice(0, r) - } - function q() { - this._x0 = this._y0 = this._x1 = this._y1 = null, - this._ = [] - } - function L() { - return new q - } - function R(t, n, e, r) { - if (isNaN(n) || isNaN(e)) - return t; - var i, - o, - u, - a, - c, - s, - f, - l, - h, - p = t._root, - d = { - data: r - }, - v = t._x0, - _ = t._y0, - y = t._x1, - g = t._y1; - if (!p) - return t._root = d, - t; - for (; p.length;) - if ((s = n >= (o = (v + y) / 2)) - ? v = o - : y = o, (f = e >= (u = (_ + g) / 2)) - ? _ = u - : g = u, i = p, !(p = p[l = f << 1 | s])) - return i[l] = d, - t; - if (a =+ t._x.call(null, p.data), c =+ t._y.call(null, p.data), n === a && e === c) - return d.next = p, - i - ? i[l] = d - : t._root = d, - t; - do - i = i - ? i[l] = new Array(4) - : t._root = new Array(4), - (s = n >= (o = (v + y) / 2)) - ? v = o - : y = o, - (f = e >= (u = (_ + g) / 2)) - ? _ = u - : g = u; - while ((l = f << 1 | s) === (h = (c >= u) << 1 | a >= o)); - return i[h] = p, - i[l] = d, - t - } - function U(t) { - var n, - e, - r, - i, - o = t.length, - u = new Array(o), - a = new Array(o), - c = 1 / 0, - s = 1 / 0, - f = -(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)) || (u[e] = r, a[e] = i, r < c && (c = r), r > f && (f = r), i < s && (s = i), i > l && (l = i)); - for (f < c && (c = this._x0, f = this._x1), l < s && (s = this._y0, l = this._y1), this.cover(c, s).cover(f, l), e = 0; e < o; ++e) - R(this, u[e], a[e], t[e]); - return this - } - function D(t) { - for (var n = 0, e = t.length; n < e; ++n) - this.remove(t[n]); - return this - } - function O(t) { - return t[0] - } - function F(t) { - return t[1] - } - function I(t, n, e) { - var r = new Y(null == n - ? O - : n, null == e - ? F - : e, NaN, NaN, NaN, NaN); - return null == t - ? r - : r.addAll(t) - } - function Y(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 B(t) { - for (var n = { - data: t.data - }, e = n; t = t.next;) - e = e.next = { - data: t.data - }; - return n - } - function j(t) { - if (!(t >= 1)) - throw new Error; - this._size = t, - this._call = this._error = null, - this._tasks = [], - this._data = [], - this._waiting = this._active = this._ended = this._start = 0 - } - function H(t) { - if (!t._start) - try { - X(t) - } catch (n) { - if (t._tasks[t._ended + t._active - 1]) - W(t, n); - else if (!t._data) - throw n - } - } - function X(t) { - for (; t._start = t._waiting && t._active < t._size;) { - var n = t._ended + t._active, - e = t._tasks[n], - r = e.length - 1, - i = e[r]; - e[r] = V(t, n), - --t._waiting, - ++t._active, - e = i.apply(null, e), - t._tasks[n] && (t._tasks[n] = e || _l) - } - } - function V(t, n) { - return function (e, r) { - t._tasks[n] && (--t._active, ++t._ended, t._tasks[n] = null, null == t._error && (null != e - ? W(t, e) - : (t._data[n] = r, t._waiting - ? H(t) - : $(t)))) - } - } - function W(t, n) { - var e, - r = t._tasks.length; - for (t._error = n, t._data = void 0, t._waiting = NaN; --r >= 0;) - if ((e = t._tasks[r]) && (t._tasks[r] = null, e.abort)) - try { - e.abort() - } catch (t) {} - t._active = NaN, - $(t) - } - function $(t) { - if (!t._active && t._call) { - var n = t._data; - t._data = void 0, - t._call(t._error, n) - } - } - function Z(t) { - return new j(arguments.length ?+ t : 1 / 0) - } - function G(t) { - return t.innerRadius - } - function J(t) { - return t.outerRadius - } - function Q(t) { - return t.startAngle - } - function K(t) { - return t.endAngle - } - function tt(t) { - return t && t.padAngle - } - function nt(t) { - return t >= 1 - ? xl - : t <= -1 - ? -xl - : Math.asin(t) - } - function et(t, n, e, r, i, o, u, a) { - var c = e - t, - s = r - n, - f = u - i, - l = a - o, - h = (f * (n - o) - l * (t - i)) / (l * c - f * s); - return [ - t + h * c, - n + h * s - ] - } - function rt(t, n, e, r, i, o, u) { - var a = t - e, - c = n - r, - s = (u - ? o - : -o) / Math.sqrt(a * a + c * c), - f = s * c, - l = -s * a, - h = t + f, - p = n + l, - d = e + f, - v = r + l, - _ = (h + d) / 2, - y = (p + v) / 2, - g = d - h, - m = v - p, - x = g * g + m * m, - b = i - o, - w = h * v - d * p, - M = (m < 0 - ? -1 - : 1) * Math.sqrt(Math.max(0, b * b * x - w * w)), - T = (w * m - g * M) / x, - N = (-w * g - m * M) / x, - k = (w * m + g * M) / x, - S = (-w * g + m * M) / x, - A = T - _, - E = N - y, - C = k - _, - z = S - y; - return A * A + E * E > C * C + z * z && (T = k, N = S), { - cx: T, - cy: N, - x01: -f, - y01: -l, - x11: *(i / b - 1), - y11: *(i / b - 1) - } - } - function it(t) { - this._context = t - } - function ot(t) { - return t[0] - } - function ut(t) { - return t[1] - } - function at(t) { - this._curve = t - } - function ct(t) { - function n(n) { - return new at(t(n)) - } - return n._curve = t, - n - } - function st(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(ct(t)) - : n()._curve - }, - t - } - function ft(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 lt(t) { - this._context = t - } - function ht(t) { - this._context = t - } - function pt(t) { - this._context = t - } - function dt(t, n) { - this._basis = new lt(t), - this._beta = n - } - function vt(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 _t(t, n) { - this._context = t, - this._k = (1 - n) / 6 - } - function yt(t, n) { - this._context = t, - this._k = (1 - n) / 6 - } - function gt(t, n) { - this._context = t, - this._k = (1 - n) / 6 - } - function mt(t, n, e) { - var r = t._x1, - i = t._y1, - o = t._x2, - u = t._y2; - if (t._l01_a > gl) { - var a = 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 * a - t._x0 * t._l12_2a + t._x2 * t._l01_2a) / c, - i = (i * a - t._y0 * t._l12_2a + t._y2 * t._l01_2a) / c - } - if (t._l23_a > gl) { - var s = 2 * t._l23_2a + 3 * t._l23_a * t._l12_a + t._l12_2a, - f = 3 * t._l23_a * (t._l23_a + t._l12_a); - o = (o * s + t._x1 * t._l23_2a - n * t._l12_2a) / f, - u = (u * s + t._y1 * t._l23_2a - e * t._l12_2a) / f - } - t - ._context - .bezierCurveTo(r, i, o, u, t._x2, t._y2) - } - function xt(t, n) { - this._context = t, - this._alpha = n - } - function bt(t, n) { - this._context = t, - this._alpha = n - } - function wt(t, n) { - this._context = t, - this._alpha = n - } - function Mt(t) { - this._context = t - } - function Tt(t) { - return t < 0 - ? -1 - : 1 - } - function Nt(t, n, e) { - var r = t._x1 - t._x0, - i = n - t._x1, - o = (t._y1 - t._y0) / (r || i < 0 && -0), - u = (e - t._y1) / (i || r < 0 && -0), - a = (o * i + u * r) / (r + i); - return (Tt(o) + Tt(u)) * Math.min(Math.abs(o), Math.abs(u), .5 * Math.abs(a)) || 0 - } - function kt(t, n) { - var e = t._x1 - t._x0; - return e - ? (3 * (t._y1 - t._y0) / e - n) / 2 - : n - } - function St(t, n, e) { - var r = t._x0, - i = t._y0, - o = t._x1, - u = t._y1, - a = (o - r) / 3; - t - ._context - .bezierCurveTo(r + a, i + a * n, o - a, u - a * e, o, u) - } - function At(t) { - this._context = t - } - function Et(t) { - this._context = new Ct(t) - } - function Ct(t) { - this._context = t - } - function zt(t) { - return new At(t) - } - function Pt(t) { - return new Et(t) - } - function qt(t) { - this._context = t - } - function Lt(t) { - var n, - e, - r = t.length - 1, - i = new Array(r), - o = new Array(r), - u = new Array(r); - for (i[0] = 0, o[0] = 2, u[0] = t[0] + 2 * t[1], n = 1; n < r - 1; ++n) - i[n] = 1, - o[n] = 4, - u[n] = 4 * t[n] + 2 * t[n + 1]; - for (i[r - 1] = 2, o[r - 1] = 7, u[r - 1] = 8 * t[r - 1] + t[r], n = 1; n < r; ++n) - e = i[n] / o[n - 1], - o[n] -= e, - u[n] -= e * u[n - 1]; - for (i[r - 1] = u[r - 1] / o[r - 1], n = r - 2; n >= 0; --n) - i[n] = (u[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 Rt(t, n) { - this._context = t, - this._t = n - } - function Ut(t) { - return new Rt(t, 0) - } - function Dt(t) { - return new Rt(t, 1) - } - function Ot(t, n) { - return t[n] - } - function Ft(t) { - for (var n, e = 0, r = -1, i = t.length; ++r < i;) - (n =+ t[r][1]) && (e += n); - return e - } - function It(t, n) { - var e = Object.create(t.prototype); - for (var r in n) - e[r] = n[r]; - return e - } - function Yt() {} - function Bt(t) { - var n; - return t = (t + "") - .trim() - .toLowerCase(), - (n = kh.exec(t)) - ? (n = parseInt(n[1], 16), new Wt(n >> 8 & 15 | n >> 4 & 240, n >> 4 & 15 | 240 & n, (15 & n) << 4 | 15 & n, 1)) - : (n = Sh.exec(t)) - ? jt(parseInt(n[1], 16)) - : (n = Ah.exec(t)) - ? new Wt(n[1], n[2], n[3], 1) - : (n = Eh.exec(t)) - ? new Wt(255 * n[1] / 100, 255 * n[2] / 100, 255 * n[3] / 100, 1) - : (n = Ch.exec(t)) - ? Ht(n[1], n[2], n[3], n[4]) - : (n = zh.exec(t)) - ? Ht(255 * n[1] / 100, 255 * n[2] / 100, 255 * n[3] / 100, n[4]) - : (n = Ph.exec(t)) - ? $t(n[1], n[2] / 100, n[3] / 100, 1) - : (n = qh.exec(t)) - ? $t(n[1], n[2] / 100, n[3] / 100, n[4]) - : Lh.hasOwnProperty(t) - ? jt(Lh[t]) - : "transparent" === t - ? new Wt(NaN, NaN, NaN, 0) - : null - } - function jt(t) { - return new Wt(t >> 16 & 255, t >> 8 & 255, 255 & t, 1) - } - function Ht(t, n, e, r) { - return r <= 0 && (t = n = e = NaN), - new Wt(t, n, e, r) - } - function Xt(t) { - return t instanceof Yt || (t = Bt(t)), - t - ? (t = t.rgb(), new Wt(t.r, t.g, t.b, t.opacity)) - : new Wt - } - function Vt(t, n, e, r) { - return 1 === arguments.length - ? Xt(t) - : new Wt(t, n, e, null == r - ? 1 - : r) - } - function Wt(t, n, e, r) { - this.r =+ t, - this.g =+ n, - this.b =+ e, - this.opacity =+ r - } - function $t(t, n, e, r) { - return r <= 0 - ? t = n = e = NaN - : e <= 0 || e >= 1 - ? t = n = NaN - : n <= 0 && (t = NaN), - new Jt(t, n, e, r) - } - function Zt(t) { - if (t instanceof Jt) - return new Jt(t.h, t.s, t.l, t.opacity); - if (t instanceof Yt || (t = Bt(t)), !t) - return new Jt; - if (t instanceof Jt) - return t; - t = t.rgb(); - var n = t.r / 255, - e = t.g / 255, - r = t.b / 255, - i = Math.min(n, e, r), - o = Math.max(n, e, r), - u = NaN, - a = o - i, - c = (o + i) / 2; - return a - ? (u = n === o - ? (e - r) / a + 6 * (e < r) - : e === o - ? (r - n) / a + 2 - : (n - e) / a + 4, a /= c < .5 - ? o + i - : 2 - o - i, u *= 60) - : a = c > 0 && c < 1 - ? 0 - : u, - new Jt(u, a, c, t.opacity) - } - function Gt(t, n, e, r) { - return 1 === arguments.length - ? Zt(t) - : new Jt(t, n, e, null == r - ? 1 - : r) - } - function Jt(t, n, e, r) { - this.h =+ t, - this.s =+ n, - this.l =+ e, - this.opacity =+ r - } - function Qt(t, n, e) { - return 255 * (t < 60 - ? n + (e - n) * t / 60 - : t < 180 - ? e - : t < 240 - ? n + (e - n) * (240 - t) / 60 - : n) - } - function Kt(t) { - if (t instanceof nn) - return new nn(t.l, t.a, t.b, t.opacity); - if (t instanceof sn) { - var n = t.h * Rh; - return new nn(t.l, Math.cos(n) * t.c, Math.sin(n) * t.c, t.opacity) - } - t instanceof Wt || (t = Xt(t)); - var e = un(t.r), - r = un(t.g), - i = un(t.b), - o = en((.4124564 * e + .3575761 * r + .1804375 * i) / Oh), - u = en((.2126729 * e + .7151522 * r + .072175 * i) / Fh), - a = en((.0193339 * e + .119192 * r + .9503041 * i) / Ih); - return new nn(116 * u - 16, 500 * (o - u), 200 * (u - a), t.opacity) - } - function tn(t, n, e, r) { - return 1 === arguments.length - ? Kt(t) - : new nn(t, n, e, null == r - ? 1 - : r) - } - function nn(t, n, e, r) { - this.l =+ t, - this.a =+ n, - this.b =+ e, - this.opacity =+ r - } - function en(t) { - return t > Hh - ? Math.pow(t, 1 / 3) - : t / jh + Yh - } - function rn(t) { - return t > Bh - ? t * t * t - : jh * (t - Yh) - } - function on(t) { - return 255 * (t <= .0031308 - ? 12.92 * t - : 1.055 * Math.pow(t, 1 / 2.4) - .055) - } - function un(t) { - return (t /= 255) <= .04045 - ? t / 12.92 - : Math.pow((t + .055) / 1.055, 2.4) - } - function an(t) { - if (t instanceof sn) - return new sn(t.h, t.c, t.l, t.opacity); - t instanceof nn || (t = Kt(t)); - var n = Math.atan2(t.b, t.a) * Uh; - return new sn(n < 0 - ? n + 360 - : n, Math.sqrt(t.a * t.a + t.b * t.b), t.l, t.opacity) - } - function cn(t, n, e, r) { - return 1 === arguments.length - ? an(t) - : new sn(t, n, e, null == r - ? 1 - : r) - } - function sn(t, n, e, r) { - this.h =+ t, - this.c =+ n, - this.l =+ e, - this.opacity =+ r - } - function fn(t) { - if (t instanceof hn) - return new hn(t.h, t.s, t.l, t.opacity); - t instanceof Wt || (t = Xt(t)); - var n = t.r / 255, - e = t.g / 255, - r = t.b / 255, - i = (Qh * r + Gh * n - Jh * e) / (Qh + Gh - Jh), - o = r - i, - u = (Zh * (e - i) - Wh * o) / $h, - a = Math.sqrt(u * u + o * o) / (Zh * i * (1 - i)), - c = a - ? Math.atan2(u, o) * Uh - 120 - : NaN; - return new hn(c < 0 - ? c + 360 - : c, a, i, t.opacity) - } - function ln(t, n, e, r) { - return 1 === arguments.length - ? fn(t) - : new hn(t, n, e, null == r - ? 1 - : r) - } - function hn(t, n, e, r) { - this.h =+ t, - this.s =+ n, - this.l =+ e, - this.opacity =+ r - } - function pn(t, n, e, r, i) { - var o = t * t, - u = o * t; - return ((1 - 3 * t + 3 * o - u) * n + (4 - 6 * o + 3 * u) * e + (1 + 3 * t + 3 * o - 3 * u) * r + u * i) / 6 - } - function dn(t, n) { - return function (e) { - return t + e * n - } - } - function vn(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) - } - } - function _n(t, n) { - var e = n - t; - return e - ? dn(t, e > 180 || e < -180 - ? e - 360 * Math.round(e / 360) - : e) - : op(isNaN(t) - ? n - : t) - } - function yn(t) { - return 1 === (t =+ t) - ? gn - : function (n, e) { - return e - n - ? vn(n, e, t) - : op(isNaN(n) - ? e - : n) - } - } - function gn(t, n) { - var e = n - t; - return e - ? dn(t, e) - : op(isNaN(t) - ? n - : t) - } - function mn(t) { - return function (n) { - var e, - r, - i = n.length, - o = new Array(i), - u = new Array(i), - a = new Array(i); - for (e = 0; e < i; ++e) - r = Vt(n[e]), - o[e] = r.r || 0, - u[e] = r.g || 0, - a[e] = r.b || 0; - return o = t(o), - u = t(u), - a = t(a), - r.opacity = 1, - function (t) { - return r.r = o(t), - r.g = u(t), - r.b = a(t), - r + "" - } - } - } - function xn(t) { - return function () { - return t - } - } - function bn(t) { - return function (n) { - return t(n) + "" - } - } - function wn(t) { - return "none" === t - ? mp - : (Kh || (Kh = document.createElement("DIV"), tp = document.documentElement, np = document.defaultView), Kh.style.transform = t, t = np.getComputedStyle(tp.appendChild(Kh), null).getPropertyValue("transform"), tp.removeChild(Kh), t = t.slice(7, -1).split(","), xp(+ t[0], + t[1], + t[2], + t[3], + t[4], + t[5])) - } - function Mn(t) { - return null == t - ? mp - : (ep || (ep = document.createElementNS("http://www.w3.org/2000/svg", "g")), ep.setAttribute("transform", t), (t = ep.transform.baseVal.consolidate()) - ? (t = t.matrix, xp(t.a, t.b, t.c, t.d, t.e, t.f)) - : mp) - } - function Tn(t, n, e, r) { - function i(t) { - return t.length - ? t.pop() + " " - : "" - } - function o(t, r, i, o, u, a) { - if (t !== i || r !== o) { - var c = u.push("translate(", null, n, null, e); - a.push({ - i: c - 4, - x: lp(t, i) - }, { - i: c - 2, - x: lp(r, o) - }) - } else - (i || o) && u.push("translate(" + i + n + o + e) - } - function u(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: lp(t, n) - })) - : n && e.push(i(e) + "rotate(" + n + r) - } - function a(t, n, e, o) { - t !== n - ? o.push({ - i: e.push(i(e) + "skewX(", null, r) - 2, - x: lp(t, n) - }) - : n && e.push(i(e) + "skewX(" + n + r) - } - function c(t, n, e, r, o, u) { - if (t !== e || n !== r) { - var a = o.push(i(o) + "scale(", null, ",", null, ")"); - u.push({ - i: a - 4, - x: lp(t, e) - }, { - i: a - 2, - x: lp(n, r) - }) - } else - 1 === e && 1 === r || o.push(i(o) + "scale(" + e + "," + r + ")") - } - return function (n, e) { - var r = [], - i = []; - return n = t(n), - e = t(e), - o(n.translateX, n.translateY, e.translateX, e.translateY, r, i), - u(n.rotate, e.rotate, r, i), - a(n.skewX, e.skewX, r, i), - c(n.scaleX, n.scaleY, e.scaleX, e.scaleY, r, i), - n = e = null, - function (t) { - for (var n, e = -1, o = i.length; ++e < o;) - r[(n = i[e]).i] = n.x(t); - return r.join("") - } - } - } - function Nn(t) { - return ((t = Math.exp(t)) + 1 / t) / 2 - } - function kn(t) { - return ((t = Math.exp(t)) - 1 / t) / 2 - } - function Sn(t) { - return ((t = Math.exp(2 * t)) - 1) / (t + 1) - } - function An(t) { - return function (n, e) { - var r = t((n = Gt(n)).h, (e = Gt(e)).h), - i = gn(n.s, e.s), - o = gn(n.l, e.l), - u = gn(n.opacity, e.opacity); - return function (t) { - return n.h = r(t), - n.s = i(t), - n.l = o(t), - n.opacity = u(t), - n + "" - } - } - } - function En(t, n) { - var e = gn((t = tn(t)).l, (n = tn(n)).l), - r = gn(t.a, n.a), - i = gn(t.b, n.b), - o = gn(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 + "" - } - } - function Cn(t) { - return function (n, e) { - var r = t((n = cn(n)).h, (e = cn(e)).h), - i = gn(n.c, e.c), - o = gn(n.l, e.l), - u = gn(n.opacity, e.opacity); - return function (t) { - return n.h = r(t), - n.c = i(t), - n.l = o(t), - n.opacity = u(t), - n + "" - } - } - } - function zn(t) { - return function n(e) { - function r(n, r) { - var i = t((n = ln(n)).h, (r = ln(r)).h), - o = gn(n.s, r.s), - u = gn(n.l, r.l), - a = gn(n.opacity, r.opacity); - return function (t) { - return n.h = i(t), - n.s = o(t), - n.l = u(Math.pow(t, e)), - n.opacity = a(t), - n + "" - } - } - return e =+ e, - r.gamma = n, - r - }(1) - } - function Pn() { - for (var t, n = 0, e = arguments.length, r = {}; n < e; ++n) { - if (!(t = arguments[n] + "") || t in r) - throw new Error("illegal type: " + t); - r[t] = [] - } - return new qn(r) - } - function qn(t) { - this._ = t - } - function Ln(t, n) { - return t - .trim() - .split(/^|\s+/) - .map(function (t) { - var e = "", - r = t.indexOf("."); - if (r >= 0 && (e = t.slice(r + 1), t = t.slice(0, r)), t && !n.hasOwnProperty(t)) - throw new Error("unknown type: " + t); - return {type: t, name: e} - }) - } - function Rn(t, n) { - for (var e, r = 0, i = t.length; r < i; ++r) - if ((e = t[r]).name === n) - return e.value - } - function Un(t, n, e) { - for (var r = 0, i = t.length; r < i; ++r) - if (t[r].name === n) { - t[r] = Rp, - t = t - .slice(0, r) - .concat(t.slice(r + 1)); - break - } - return null != e && t.push({name: n, value: e}), - t - } - function Dn(t) { - return new Function("d", "return {" + t.map(function (t, n) { - return JSON.stringify(t) + ": d[" + n + "]" - }).join(",") + "}") - } - function On(t, n) { - var e = Dn(t); - return function (r, i) { - return n(e(r), i, t) - } - } - function Fn(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 In(t) { - return function (n, e) { - t(null == n - ? e - : null) - } - } - function Yn(t) { - var n = t.responseType; - return n && "text" !== n - ? t.response - : t.responseText - } - function Bn(t, n) { - return function (e) { - return t(e.responseText, n) - } - } - function jn() { - return sd || (hd(Hn), sd = ld.now() + fd) - } - function Hn() { - sd = 0 - } - function Xn() { - this._call = this._time = this._next = null - } - function Vn(t, n, e) { - var r = new Xn; - return r.restart(t, n, e), - r - } - function Wn() { - jn(), - ++id; - for (var t, n = Up; n;) - (t = sd - n._time) >= 0 && n._call.call(null, t), - n = n._next; - - --id - } - function $n() { - sd = (cd = ld.now()) + fd, - id = od = 0; - try { - Wn() - } finally { - id = 0, - Gn(), - sd = 0 - } - } - function Zn() { - var t = ld.now(), - n = t - cd; - n > ad && (fd -= n, cd = t) - } - function Gn() { - for (var t, n, e = Up, r = 1 / 0; 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 - : Up = n); - Dp = t, - Jn(r) - } - function Jn(t) { - if (!id) { - od && (od = clearTimeout(od)); - var n = t - sd; - n > 24 - ? (t < 1 / 0 && (od = setTimeout($n, n)), ud && (ud = clearInterval(ud))) - : (ud || (ud = setInterval(Zn, ad)), id = 1, hd($n)) - } - } - function Qn(t, n, e, r) { - function i(n) { - return t(n = new Date(+ n)), - n - } - return i.floor = i, - i.ceil = function (e) { - return t(e = new Date(e - 1)), - n(e, 1), - t(e), - e - }, - i.round = function (t) { - var n = i(t), - e = i.ceil(t); - return t - n < e - t - ? n - : e - }, - i.offset = function (t, e) { - return n(t = new Date(+ t), null == e - ? 1 - : Math.floor(e)), - t - }, - i.range = function (e, r, o) { - var u = []; - if (e = i.ceil(e), o = null == o - ? 1 - : Math.floor(o), !(e < r && o > 0)) - return u; - do - u.push(new Date(+ e)); - while (n(e, o), t(e), e < r); - return u - }, - i.filter = function (e) { - return Qn(function (n) { - if (n >= n) - for (; t(n), !e(n);) - n.setTime(n - 1) - }, function (t, r) { - if (t >= t) - for (; --r >= 0;) - for (; n(t, 1), !e(t);) ; - } - ) - }, - e && (i.count = function (n, r) { - return vd.setTime(+ n), - _d.setTime(+ r), - t(vd), - t(_d), - Math.floor(e(vd, _d)) - }, - i.every = function (t) { - return t = Math.floor(t), - isFinite(t) && t > 0 - ? t > 1 - ? i.filter(r - ? function (n) { - return r(n) % t === 0 - } - : function (n) { - return i.count(0, n) % t === 0 - }) - : i - : null - }), - i - } - function Kn(t) { - return Qn(function (n) { - n.setDate(n.getDate() - (n.getDay() + 7 - t) % 7), - n.setHours(0, 0, 0, 0) - }, function (t, n) { - t.setDate(t.getDate() + 7 * n) - }, function (t, n) { - return (n - t - (n.getTimezoneOffset() - t.getTimezoneOffset()) * xd) / Md - }) - } - function te(t) { - return Qn(function (n) { - n.setUTCDate(n.getUTCDate() - (n.getUTCDay() + 7 - t) % 7), - n.setUTCHours(0, 0, 0, 0) - }, function (t, n) { - t.setUTCDate(t.getUTCDate() + 7 * n) - }, function (t, n) { - return (n - t) / Md - }) - } - function ne(t) { - if (!(n = Av.exec(t))) - throw new Error("invalid format: " + t); - var n, - e = n[1] || " ", - r = n[2] || ">", - i = n[3] || "-", - o = n[4] || "", - u = !!n[5], - a = n[6] &&+ n[6], - c = !!n[7], - s = n[8] &&+ n[8].slice(1), - f = n[9] || ""; - "n" === f - ? (c = !0, f = "g") - : Sv[f] || (f = ""), - (u || "0" === e && "=" === r) && (u = !0, e = "0", r = "="), - this.fill = e, - this.align = r, - this.sign = i, - this.symbol = o, - this.zero = u, - this.width = a, - this.comma = c, - this.precision = s, - this.type = f - } - function ee(t) { - return t - } - function re(n) { - return Cv = Pv(n), - t.format = Cv.format, - t.formatPrefix = Cv.formatPrefix, - Cv - } - function ie(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 oe(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 ue(t) { - return { - y: t, - m: 0, - d: 1, - H: 0, - M: 0, - S: 0, - L: 0 - } - } - function ae(t) { - function n(t, n) { - return function (e) { - var r, - i, - o, - u = [], - a = -1, - c = 0, - s = t.length; - for (e instanceof Date || (e = new Date(+ e)); ++a < s;) - 37 === t.charCodeAt(a) && (u.push(t.slice(c, a)), null != (i = Dv[r = t.charAt(++a)]) - ? r = t.charAt(++a) - : i = "e" === r - ? " " - : "0", (o = n[r]) && (r = o(e, i)), u.push(r), c = a + 1); - return u.push(t.slice(c, a)), - u.join("") - } - } - function e(t, n) { - return function (e) { - var i = ue(1900), - o = r(i, t, e += "", 0); - if (o != e.length) - return null; - if ("p" in i && (i.H = i.H % 12 + 12 * i.p), "W" in i || "U" in i) { - "w" in i || (i.w = "W" in i - ? 1 - : 0); - var u = "Z" in i - ? oe(ue(i.y)).getUTCDay() - : n(ue(i.y)).getDay(); - i.m = 0, - i.d = "W" in i - ? (i.w + 6) % 7 + 7 * i.W - (u + 5) % 7 - : i.w + 7 * i.U - (u + 6) % 7 - } - return "Z" in i - ? (i.H += i.Z / 100 | 0, i.M += i.Z % 100, oe(i)) - : n(i) - } - } - function r(t, n, e, r) { - for (var i, o, u = 0, a = n.length, c = e.length; u < a;) { - if (r >= c) - return -1; - if (i = n.charCodeAt(u++), 37 === i) { - if (i = n.charAt(u++), o = B[i in Dv - ? n.charAt(u++) - : i], !o || (r = o(t, e, r)) < 0) - return -1 - } else if (i != e.charCodeAt(r++)) - return -1 - } - return r - } - function i(t, n, e) { - var r = C.exec(n.slice(e)); - return r - ? (t.p = z[r[0].toLowerCase()], e + r[0].length) - : -1 - } - function o(t, n, e) { - var r = L.exec(n.slice(e)); - return r - ? (t.w = R[r[0].toLowerCase()], e + r[0].length) - : -1 - } - function u(t, n, e) { - var r = P.exec(n.slice(e)); - return r - ? (t.w = q[r[0].toLowerCase()], e + r[0].length) - : -1 - } - function a(t, n, e) { - var r = O.exec(n.slice(e)); - return r - ? (t.m = F[r[0].toLowerCase()], e + r[0].length) - : -1 - } - function c(t, n, e) { - var r = U.exec(n.slice(e)); - return r - ? (t.m = D[r[0].toLowerCase()], e + r[0].length) - : -1 - } - function s(t, n, e) { - return r(t, w, n, e) - } - function f(t, n, e) { - return r(t, M, n, e) - } - function l(t, n, e) { - return r(t, T, n, e) - } - function h(t) { - return S[t.getDay()] - } - function p(t) { - return k[t.getDay()] - } - function d(t) { - return E[t.getMonth()] - } - function v(t) { - return A[t.getMonth()] - } - function _(t) { - return N[+ (t.getHours() >= 12)] - } - function y(t) { - return S[t.getUTCDay()] - } - function g(t) { - return k[t.getUTCDay()] - } - function m(t) { - return E[t.getUTCMonth()] - } - function x(t) { - return A[t.getUTCMonth()] - } - function b(t) { - return N[+ (t.getUTCHours() >= 12)] - } - var w = t.dateTime, - M = t.date, - T = t.time, - N = t.periods, - k = t.days, - S = t.shortDays, - A = t.months, - E = t.shortMonths, - C = fe(N), - z = le(N), - P = fe(k), - q = le(k), - L = fe(S), - R = le(S), - U = fe(A), - D = le(A), - O = fe(E), - F = le(E), - I = { - a: h, - A: p, - b: d, - B: v, - c: null, - d: ke, - e: ke, - H: Se, - I: Ae, - j: Ee, - L: Ce, - m: ze, - M: Pe, - p: _, - S: qe, - U: Le, - w: Re, - W: Ue, - x: null, - X: null, - y: De, - Y: Oe, - Z: Fe, - "%": tr - }, - Y = { - a: y, - A: g, - b: m, - B: x, - c: null, - d: Ie, - e: Ie, - H: Ye, - I: Be, - j: je, - L: He, - m: Xe, - M: Ve, - p: b, - S: We, - U: $e, - w: Ze, - W: Ge, - x: null, - X: null, - y: Je, - Y: Qe, - Z: Ke, - "%": tr - }, - B = { - a: o, - A: u, - b: a, - B: c, - c: s, - d: me, - e: me, - H: be, - I: be, - j: xe, - L: Te, - m: ge, - M: we, - p: i, - S: Me, - U: pe, - w: he, - W: de, - x: f, - X: l, - y: _e, - Y: ve, - Z: ye, - "%": Ne - }; - return I.x = n(M, I), - I.X = n(T, I), - I.c = n(w, I), - Y.x = n(M, Y), - Y.X = n(T, Y), - Y.c = n(w, Y), { - format: function (t) { - var e = n(t += "", I); - return e.toString = function () { - return t - }, - e - }, - parse: function (t) { - var n = e(t += "", ie); - return n.toString = function () { - return t - }, - n - }, - utcFormat: function (t) { - var e = n(t += "", Y); - return e.toString = function () { - return t - }, - e - }, - utcParse: function (t) { - var n = e(t, oe); - return n.toString = function () { - return t - }, - n - } - } - } - function ce(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 se(t) { - return t.replace(Iv, "\\$&") - } - function fe(t) { - return new RegExp("^(?:" + t.map(se).join("|") + ")", "i") - } - function le(t) { - for (var n = {}, e = -1, r = t.length; ++e < r;) - n[t[e].toLowerCase()] = e; - return n - } - function he(t, n, e) { - var r = Ov.exec(n.slice(e, e + 1)); - return r - ? (t.w =+ r[0], e + r[0].length) - : -1 - } - function pe(t, n, e) { - var r = Ov.exec(n.slice(e)); - return r - ? (t.U =+ r[0], e + r[0].length) - : -1 - } - function de(t, n, e) { - var r = Ov.exec(n.slice(e)); - return r - ? (t.W =+ r[0], e + r[0].length) - : -1 - } - function ve(t, n, e) { - var r = Ov.exec(n.slice(e, e + 4)); - return r - ? (t.y =+ r[0], e + r[0].length) - : -1 - } - function _e(t, n, e) { - var r = Ov.exec(n.slice(e, e + 2)); - return r - ? (t.y =+ r[0] + (+ r[0] > 68 - ? 1900 - : 2e3), e + r[0].length) - : -1 - } - function ye(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 ge(t, n, e) { - var r = Ov.exec(n.slice(e, e + 2)); - return r - ? (t.m = r[0] - 1, e + r[0].length) - : -1 - } - function me(t, n, e) { - var r = Ov.exec(n.slice(e, e + 2)); - return r - ? (t.d =+ r[0], e + r[0].length) - : -1 - } - function xe(t, n, e) { - var r = Ov.exec(n.slice(e, e + 3)); - return r - ? (t.m = 0, t.d =+ r[0], e + r[0].length) - : -1 - } - function be(t, n, e) { - var r = Ov.exec(n.slice(e, e + 2)); - return r - ? (t.H =+ r[0], e + r[0].length) - : -1 - } - function we(t, n, e) { - var r = Ov.exec(n.slice(e, e + 2)); - return r - ? (t.M =+ r[0], e + r[0].length) - : -1 - } - function Me(t, n, e) { - var r = Ov.exec(n.slice(e, e + 2)); - return r - ? (t.S =+ r[0], e + r[0].length) - : -1 - } - function Te(t, n, e) { - var r = Ov.exec(n.slice(e, e + 3)); - return r - ? (t.L =+ r[0], e + r[0].length) - : -1 - } - function Ne(t, n, e) { - var r = Fv.exec(n.slice(e, e + 1)); - return r - ? e + r[0].length - : -1 - } - function ke(t, n) { - return ce(t.getDate(), n, 2) - } - function Se(t, n) { - return ce(t.getHours(), n, 2) - } - function Ae(t, n) { - return ce(t.getHours() % 12 || 12, n, 2) - } - function Ee(t, n) { - return ce(1 + Cd.count($d(t), t), n, 3) - } - function Ce(t, n) { - return ce(t.getMilliseconds(), n, 3) - } - function ze(t, n) { - return ce(t.getMonth() + 1, n, 2) - } - function Pe(t, n) { - return ce(t.getMinutes(), n, 2) - } - function qe(t, n) { - return ce(t.getSeconds(), n, 2) - } - function Le(t, n) { - return ce(Pd.count($d(t), t), n, 2) - } - function Re(t) { - return t.getDay() - } - function Ue(t, n) { - return ce(qd.count($d(t), t), n, 2) - } - function De(t, n) { - return ce(t.getFullYear() % 100, n, 2) - } - function Oe(t, n) { - return ce(t.getFullYear() % 1e4, n, 4) - } - function Fe(t) { - var n = t.getTimezoneOffset(); - return (n > 0 - ? "-" - : (n *= -1, "+")) + ce(n / 60 | 0, "0", 2) + ce(n % 60, "0", 2) - } - function Ie(t, n) { - return ce(t.getUTCDate(), n, 2) - } - function Ye(t, n) { - return ce(t.getUTCHours(), n, 2) - } - function Be(t, n) { - return ce(t.getUTCHours() % 12 || 12, n, 2) - } - function je(t, n) { - return ce(1 + tv.count(gv(t), t), n, 3) - } - function He(t, n) { - return ce(t.getUTCMilliseconds(), n, 3) - } - function Xe(t, n) { - return ce(t.getUTCMonth() + 1, n, 2) - } - function Ve(t, n) { - return ce(t.getUTCMinutes(), n, 2) - } - function We(t, n) { - return ce(t.getUTCSeconds(), n, 2) - } - function $e(t, n) { - return ce(ev.count(gv(t), t), n, 2) - } - function Ze(t) { - return t.getUTCDay() - } - function Ge(t, n) { - return ce(rv.count(gv(t), t), n, 2) - } - function Je(t, n) { - return ce(t.getUTCFullYear() % 100, n, 2) - } - function Qe(t, n) { - return ce(t.getUTCFullYear() % 1e4, n, 4) - } - function Ke() { - return "+0000" - } - function tr() { - return "%" - } - function nr(n) { - return qv = ae(n), - t.timeFormat = qv.format, - t.timeParse = qv.parse, - t.utcFormat = qv.utcFormat, - t.utcParse = qv.utcParse, - qv - } - function er(t) { - return t.toISOString() - } - function rr(t) { - var n = new Date(t); - return isNaN(n) - ? null - : n - } - function ir(t) { - function n(n) { - var o = n + "", - u = e.get(o); - if (!u) { - if (i !== Wv) - return i; - e.set(o, u = r.push(n)) - } - return t[(u - 1) % t.length] - } - var e = o(), - r = [], - i = Wv; - return t = null == t - ? [] - : Vv.call(t), - n.domain = function (t) { - if (!arguments.length) - return r.slice(); - r = [], - e = o(); - for (var i, u, a = -1, c = t.length; ++a < c;) - e.has(u = (i = t[a]) + "") || e.set(u, r.push(i)); - return n - }, - n.range = function (e) { - return arguments.length - ? (t = Vv.call(e), n) - : t.slice() - }, - n.unknown = function (t) { - return arguments.length - ? (i = t, n) - : i - }, - n.copy = function () { - return ir() - .domain(r) - .range(t) - .unknown(i) - }, - n - } - function or() { - function t() { - var t = i().length, - r = u[1] < u[0], - l = u[r - 0], - h = u[1 - r]; - n = (h - l) / Math.max(1, t - c + 2 * s), - a && (n = Math.floor(n)), - l += (h - l - n * (t - c)) * f, - e = n * (1 - c), - a && (l = Math.round(l), e = Math.round(e)); - var p = Os(t).map(function (t) { - return l + n * t - }); - return o(r - ? p.reverse() - : p) - } - var n, - e, - r = ir().unknown(void 0), - i = r.domain, - o = r.range, - u = [ - 0, 1 - ], - a = !1, - c = 0, - s = 0, - f = .5; - return delete r.unknown, - r.domain = function (n) { - return arguments.length - ? (i(n), t()) - : i() - }, - r.range = function (n) { - return arguments.length - ? (u = [ + n[0], + n[1] - ], t()) - : u.slice() - }, - r.rangeRound = function (n) { - return u = [ + n[0], + n[1] - ], - a = !0, - t() - }, - r.bandwidth = function () { - return e - }, - r.step = function () { - return n - }, - r.round = function (n) { - return arguments.length - ? (a = !!n, t()) - : a - }, - r.padding = function (n) { - return arguments.length - ? (c = s = Math.max(0, Math.min(1, n)), t()) - : c - }, - r.paddingInner = function (n) { - return arguments.length - ? (c = Math.max(0, Math.min(1, n)), t()) - : c - }, - r.paddingOuter = function (n) { - return arguments.length - ? (s = Math.max(0, Math.min(1, n)), t()) - : s - }, - r.align = function (n) { - return arguments.length - ? (f = Math.max(0, Math.min(1, n)), t()) - : f - }, - r.copy = function () { - return or() - .domain(i()) - .range(u) - .round(a) - .paddingInner(c) - .paddingOuter(s) - .align(f) - }, - t() - } - function ur(t) { - var n = t.copy; - return t.padding = t.paddingOuter, - delete t.paddingInner, - delete t.paddingOuter, - t.copy = function () { - return ur(n()) - }, - t - } - function ar() { - return ur(or().paddingInner(1)) - } - function cr(t, n) { - return (n -= t =+ t) - ? function (e) { - return (e - t) / n - } - : $v(n) - } - function sr(t) { - return function (n, e) { - var r = t(n =+ n, e =+ e); - return function (t) { - return t <= n - ? 0 - : t >= e - ? 1 - : r(t) - } - } - } - function fr(t) { - return function (n, e) { - var r = t(n =+ n, e =+ e); - return function (t) { - return t <= 0 - ? n - : t >= 1 - ? e - : r(t) - } - } - } - function lr(t, n, e, r) { - var i = t[0], - o = t[1], - u = n[0], - a = n[1]; - return o < i - ? (i = e(o, i), u = r(a, u)) - : (i = e(i, o), u = r(u, a)), - function (t) { - return u(i(t)) - } - } - function hr(t, n, e, r) { - var i = Math.min(t.length, n.length) - 1, - o = new Array(i), - u = new Array(i), - a = -1; - for (t[i] < t[0] && (t = t.slice().reverse(), n = n.slice().reverse()); ++a < i;) - o[a] = e(t[a], t[a + 1]), - u[a] = r(n[a], n[a + 1]); - return function (n) { - var e = ks(t, n, 1, i) - 1; - return u[e](o[e](n)) - } - } - function pr(t, n) { - return n - .domain(t.domain()) - .range(t.range()) - .interpolate(t.interpolate()) - .clamp(t.clamp()) - } - function dr(t, n) { - function e() { - return i = Math.min(a.length, c.length) > 2 - ? hr - : lr, - o = u = null, - r - } - function r(n) { - return (o || (o = i(a, c, f - ? sr(t) - : t, s)))(+ n) - } - var i, - o, - u, - a = Gv, - c = Gv, - s = _p, - f = !1; - return r.invert = function (t) { - return (u || (u = i(c, a, cr, f - ? fr(n) - : n)))(+ t) - }, - r.domain = function (t) { - return arguments.length - ? (a = Xv.call(t, Zv), e()) - : a.slice() - }, - r.range = function (t) { - return arguments.length - ? (c = Vv.call(t), e()) - : c.slice() - }, - r.rangeRound = function (t) { - return c = Vv.call(t), - s = yp, - e() - }, - r.clamp = function (t) { - return arguments.length - ? (f = !!t, e()) - : f - }, - r.interpolate = function (t) { - return arguments.length - ? (s = t, e()) - : s - }, - e() - } - function vr(t) { - var n = t.domain; - return t.ticks = function (t) { - var e = n(); - return Bs(e[0], e[e.length - 1], null == t - ? 10 - : t) - }, - t.tickFormat = function (t, e) { - return Jv(n(), t, e) - }, - t.nice = function (r) { - var i = n(), - o = i.length - 1, - u = null == r - ? 10 - : r, - a = i[0], - c = i[o], - s = e(a, c, u); - return s && (s = e(Math.floor(a / s) * s, Math.ceil(c / s) * s, u), i[0] = Math.floor(a / s) * s, i[o] = Math.ceil(c / s) * s, n(i)), - t - }, - t - } - function _r() { - var t = dr(cr, lp); - return t.copy = function () { - return pr(t, _r()) - }, - vr(t) - } - function yr() { - function t(t) { - return + t - } - var n = [0, 1]; - return t.invert = t, - t.domain = t.range = function (e) { - return arguments.length - ? (n = Xv.call(e, Zv), t) - : n.slice() - }, - t.copy = function () { - return yr().domain(n) - }, - vr(t) - } - function gr(t, n) { - return (n = Math.log(n / t)) - ? function (e) { - return Math.log(e / t) / n - } - : $v(n) - } - function mr(t, n) { - return t < 0 - ? function (e) { - return -Math.pow(-n, e) * Math.pow(-t, 1 - e) - } - : function (e) { - return Math.pow(n, e) * Math.pow(t, 1 - e) - } - } - function xr(t) { - return isFinite(t) ?+ ("1e" + t) : t < 0 - ? 0 - : t - } - function br(t) { - return 10 === t - ? xr - : t === Math.E - ? Math.exp - : function (n) { - return Math.pow(t, n) - } - } - function wr(t) { - return t === Math.E - ? Math.log - : 10 === t && Math.log10 || 2 === t && Math.log2 || (t = Math.log(t), function (n) { - return Math.log(n) / t - }) - } - function Mr(t) { - return function (n) { - return -t(-n) - } - } - function Tr() { - function n() { - return o = wr(i), - u = br(i), - r()[0] < 0 && (o = Mr(o), u = Mr(u)), - e - } - var e = dr(gr, mr).domain([1, 10]), - r = e.domain, - i = 10, - o = wr(10), - u = br(10); - return e.base = function (t) { - return arguments.length - ? (i =+ t, n()) - : i - }, - e.domain = function (t) { - return arguments.length - ? (r(t), n()) - : r() - }, - e.ticks = function (t) { - var n, - e = r(), - a = e[0], - c = e[e.length - 1]; - (n = c < a) && (h = a, a = c, c = h); - var s, - f, - l, - h = o(a), - p = o(c), - d = null == t - ? 10 :+ t, - v = []; - if (!(i % 1) && p - h < d) { - if (h = Math.round(h) - 1, p = Math.round(p) + 1, a > 0) { - for (; h < p; ++h) - for (f = 1, s = u(h); f < i; ++f) - if (l = s * f, !(l < a)) { - if (l > c) - break; - v.push(l) - } - } else - for (; h < p; ++h) - for (f = i - 1, s = u(h); f >= 1; --f) - if (l = s * f, !(l < a)) { - if (l > c) - break; - v.push(l) - } - } else - v = Bs(h, p, Math.min(p - h, d)).map(u); - return n - ? v.reverse() - : v - }, - e.tickFormat = function (n, r) { - if (null == r && (r = 10 === i - ? ".0e" - : ","), "function" != typeof r && (r = t.format(r)), n === 1 / 0) - return r; - null == n && (n = 10); - var a = Math.max(1, i * n / e.ticks().length); - return function (t) { - var n = t / u(Math.round(o(t))); - return n * i < i - .5 && (n *= i), - n <= a - ? r(t) - : "" - } - }, - e.nice = function () { - return r(Qv(r(), { - floor: function (t) { - return u(Math.floor(o(t))) - }, - ceil: function (t) { - return u(Math.ceil(o(t))) - } - })) - }, - e.copy = function () { - return pr(e, Tr().base(i)) - }, - e - } - function Nr(t, n) { - return t < 0 - ? -Math.pow(-t, n) - : Math.pow(t, n) - } - function kr() { - function t(t, n) { - return (n = Nr(n, e) - (t = Nr(t, e))) - ? function (r) { - return (Nr(r, e) - t) / n - } - : $v(n) - } - function n(t, n) { - return n = Nr(n, e) - (t = Nr(t, e)), - function (r) { - return Nr(t + n * r, 1 / e) - } - } - var e = 1, - r = dr(t, n), - i = r.domain; - return r.exponent = function (t) { - return arguments.length - ? (e =+ t, i(i())) - : e - }, - r.copy = function () { - return pr(r, kr().exponent(e)) - }, - vr(r) - } - function Sr() { - return kr().exponent(.5) - } - function Ar() { - function t() { - var t = 0, - o = Math.max(1, r.length); - for (i = new Array(o - 1); ++t < o;) - i[t - 1] = Xs(e, t / o); - return n - } - function n(t) { - if (!isNaN(t =+ t)) - return r[ks(i, t)] - } - var e = [], - r = [], - i = []; - return n.invertExtent = function (t) { - var n = r.indexOf(t); - return n < 0 - ? [NaN, NaN] - : [ - n > 0 - ? i[n - 1] - : e[0], - n < i.length - ? i[n] - : e[e.length - 1] - ] - }, - n.domain = function (n) { - if (!arguments.length) - return e.slice(); - e = []; - for (var r, i = 0, o = n.length; i < o; ++i) - r = n[i], - null == r || isNaN(r =+ r) || e.push(r); - return e.sort(Ms), - t() - }, - n.range = function (n) { - return arguments.length - ? (r = Vv.call(n), t()) - : r.slice() - }, - n.quantiles = function () { - return i.slice() - }, - n.copy = function () { - return Ar() - .domain(e) - .range(r) - }, - n - } - function Er() { - function t(t) { - if (t <= t) - return u[ks(o, t, 0, i)] - } - function n() { - var n = -1; - for (o = new Array(i); ++n < i;) - o[n] = ((n + 1) * r - (n - i) * e) / (i + 1); - return t - } - var e = 0, - r = 1, - i = 1, - o = [.5], - u = [0, 1]; - return t.domain = function (t) { - return arguments.length - ? (e =+ t[0], r =+ t[1], n()) - : [e, r] - }, - t.range = function (t) { - return arguments.length - ? (i = (u = Vv.call(t)).length - 1, n()) - : u.slice() - }, - t.invertExtent = function (t) { - var n = u.indexOf(t); - return n < 0 - ? [NaN, NaN] - : n < 1 - ? [e, o[0]] - : n >= i - ? [ - o[i - 1], - r - ] - : [ - o[n - 1], - o[n] - ] - }, - t.copy = function () { - return Er() - .domain([e, r]) - .range(u) - }, - vr(t) - } - function Cr() { - function t(t) { - if (t <= t) - return e[ks(n, t, 0, r)] - } - var n = [.5], - e = [ - 0, 1 - ], - r = 1; - return t.domain = function (i) { - return arguments.length - ? (n = Vv.call(i), r = Math.min(n.length, e.length - 1), t) - : n.slice() - }, - t.range = function (i) { - return arguments.length - ? (e = Vv.call(i), r = Math.min(n.length, e.length - 1), t) - : e.slice() - }, - t.invertExtent = function (t) { - var r = e.indexOf(t); - return [ - n[r - 1], - n[r] - ] - }, - t.copy = function () { - return Cr() - .domain(n) - .range(e) - }, - t - } - function zr(t) { - return new Date(t); - } - function Pr(t) { - return t instanceof Date ?+ t :+ new Date(+ t) - } - function qr(t, n, r, i, o, u, a, c, s) { - function f(e) { - return (a(e) < e - ? v - : u(e) < e - ? _ - : o(e) < e - ? y - : i(e) < e - ? g - : n(e) < e - ? r(e) < e - ? m - : x - : t(e) < e - ? b - : w)(e) - } - function l(n, r, i, o) { - if (null == n && (n = 10), "number" == typeof n) { - var u = Math.abs(i - r) / n, - a = Ts(function (t) { - return t[2] - }).right(M, u); - a === M.length - ? (o = e(r / o_, i / o_, n), n = t) - : a - ? (a = M[u / M[a - 1][2] < M[a][2] / u - ? a - 1 - : a], o = a[1], n = a[0]) - : (o = e(r, i, n), n = c) - } - return null == o - ? n - : n.every(o) - } - var h = dr(cr, lp), - p = h.invert, - d = h.domain, - v = s(".%L"), - _ = s(":%S"), - y = s("%I:%M"), - g = s("%I %p"), - m = s("%a %d"), - x = s("%b %d"), - b = s("%B"), - w = s("%Y"), - M = [ - [ - a, 1, Kv - ], - [ - a, 5, 5 * Kv - ], - [ - a, 15, 15 * Kv - ], - [ - a, 30, 30 * Kv - ], - [ - u, 1, t_ - ], - [ - u, 5, 5 * t_ - ], - [ - u, 15, 15 * t_ - ], - [ - u, 30, 30 * t_ - ], - [ - o, 1, n_ - ], - [ - o, 3, 3 * n_ - ], - [ - o, 6, 6 * n_ - ], - [ - o, 12, 12 * n_ - ], - [ - i, 1, e_ - ], - [ - i, 2, 2 * e_ - ], - [ - r, 1, r_ - ], - [ - n, 1, i_ - ], - [ - n, 3, 3 * i_ - ], - [t, 1, o_] - ]; - return h.invert = function (t) { - return new Date(p(t)) - }, - h.domain = function (t) { - return arguments.length - ? d(Xv.call(t, Pr)) - : d().map(zr) - }, - h.ticks = function (t, n) { - var e, - r = d(), - i = r[0], - o = r[r.length - 1], - u = o < i; - return u && (e = i, i = o, o = e), - e = l(t, i, o, n), - e = e - ? e.range(i, o + 1) - : [], - u - ? e.reverse() - : e - }, - h.tickFormat = function (t, n) { - return null == n - ? f - : s(n) - }, - h.nice = function (t, n) { - var e = d(); - return (t = l(t, e[0], e[e.length - 1], n)) - ? d(Qv(e, t)) - : h - }, - h.copy = function () { - return pr(h, qr(t, n, r, i, o, u, a, c, s)) - }, - h - } - function Lr(t) { - var n = t.length; - return function (e) { - return t[Math.max(0, Math.min(n - 1, Math.floor(e * n)))] - } - } - function Rr(t) { - function n(n) { - var o = (n - e) / (r - e); - return t(i - ? Math.max(0, Math.min(1, o)) - : o) - } - var e = 0, - r = 1, - i = !1; - return n.domain = function (t) { - return arguments.length - ? (e =+ t[0], r =+ t[1], n) - : [e, r] - }, - n.clamp = function (t) { - return arguments.length - ? (i = !!t, n) - : i - }, - n.interpolator = function (e) { - return arguments.length - ? (t = e, n) - : t - }, - n.copy = function () { - return Rr(t) - .domain([e, r]) - .clamp(i) - }, - vr(n) - } - function Ur(t) { - return function () { - var n = this.ownerDocument, - e = this.namespaceURI; - return e === w_ && n.documentElement.namespaceURI === w_ - ? n.createElement(t) - : n.createElementNS(e, t) - } - } - function Dr(t) { - return function () { - return this - .ownerDocument - .createElementNS(t.space, t.local) - } - } - function Or() { - return new Fr - } - function Fr() { - this._ = "@" + (++k_).toString(36) - } - function Ir(t, n, e) { - return t = Yr(t, n, e), - function (n) { - var e = n.relatedTarget; - e && (e === this || 8 & e.compareDocumentPosition(this)) || t.call(this, n) - } - } - function Yr(n, e, r) { - return function (i) { - var o = t.event; - t.event = i; - try { - n.call(this, this.__data__, e, r) - } finally { - t.event = o - } - } - } - function Br(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 - } - }) - } - function jr(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.capture); - - ++i - ? n.length = i - : delete this.__on - } - } - } - function Hr(t, n, e) { - var r = z_.hasOwnProperty(t.type) - ? Ir - : Yr; - return function (i, o, u) { - var a, - c = this.__on, - s = r(n, o, u); - if (c) - for (var f = 0, l = c.length; f < l; ++f) - if ((a = c[f]).type === t.type && a.name === t.name) - return this.removeEventListener(a.type, a.listener, a.capture), - this.addEventListener(a.type, a.listener = s, a.capture = e), - void(a.value = n); - this.addEventListener(t.type, s, e), - a = { - type: t.type, - name: t.name, - value: n, - listener: s, - capture: e - }, - c - ? c.push(a) - : this.__on = [a] - } - } - function Xr(n, e, r, i) { - var o = t.event; - n.sourceEvent = t.event, - t.event = n; - try { - return e.apply(r, i) - } finally { - t.event = o - } - } - function Vr() {} - function Wr() { - return [] - } - function $r(t, n) { - this.ownerDocument = t.ownerDocument, - this.namespaceURI = t.namespaceURI, - this._next = null, - this._parent = t, - this.__data__ = n - } - function Zr(t, n, e, r, i, o) { - for (var u, a = 0, c = n.length, s = o.length; a < s; ++a) - (u = n[a]) - ? (u.__data__ = o[a], r[a] = u) - : e[a] = new $r(t, o[a]); - for (; a < c; ++a) - (u = n[a]) && (i[a] = u) - } - function Gr(t, n, e, r, i, o, u) { - var a, - c, - s, - f = {}, - l = n.length, - h = o.length, - p = new Array(l); - for (a = 0; a < l; ++a) - (c = n[a]) && (p[a] = s = X_ + u.call(c, c.__data__, a, n), s in f - ? i[a] = c - : f[s] = c); - for (a = 0; a < h; ++a) - s = X_ + u.call(t, o[a], a, o), - (c = f[s]) - ? (r[a] = c, c.__data__ = o[a], f[s] = null) - : e[a] = new $r(t, o[a]); - for (a = 0; a < l; ++a) - (c = n[a]) && f[p[a]] === c && (i[a] = c) - } - function Jr(t, n) { - return t < n - ? -1 - : t > n - ? 1 - : t >= n - ? 0 - : NaN - } - function Qr(t) { - return function () { - this.removeAttribute(t) - } - } - function Kr(t) { - return function () { - this.removeAttributeNS(t.space, t.local) - } - } - function ti(t, n) { - return function () { - this.setAttribute(t, n) - } - } - function ni(t, n) { - return function () { - this.setAttributeNS(t.space, t.local, n) - } - } - function ei(t, n) { - return function () { - var e = n.apply(this, arguments); - null == e - ? this.removeAttribute(t) - : this.setAttribute(t, e) - } - } - function ri(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 ii(t) { - return function () { - this - .style - .removeProperty(t) - } - } - function oi(t, n, e) { - return function () { - this - .style - .setProperty(t, n, e) - } - } - function ui(t, n, e) { - return function () { - var r = n.apply(this, arguments); - null == r - ? this - .style - .removeProperty(t) - : this - .style - .setProperty(t, r, e) - } - } - function ai(t) { - return function () { - delete this[t] - } - } - function ci(t, n) { - return function () { - this[t] = n - } - } - function si(t, n) { - return function () { - var e = n.apply(this, arguments); - null == e - ? delete this[t] - : this[t] = e - } - } - function fi(t) { - return t - .trim() - .split(/^|\s+/) - } - function li(t) { - return t.classList || new hi(t) - } - function hi(t) { - this._node = t, - this._names = fi(t.getAttribute("class") || "") - } - function pi(t, n) { - for (var e = li(t), r = -1, i = n.length; ++r < i;) - e.add(n[r]) - } - function di(t, n) { - for (var e = li(t), r = -1, i = n.length; ++r < i;) - e.remove(n[r]) - } - function vi(t) { - return function () { - pi(this, t) - } - } - function _i(t) { - return function () { - di(this, t) - } - } - function yi(t, n) { - return function () { - (n.apply(this, arguments) - ? pi - : di)(this, t) - } - } - function gi() { - this.textContent = "" - } - function mi(t) { - return function () { - this.textContent = t - } - } - function xi(t) { - return function () { - var n = t.apply(this, arguments); - this.textContent = null == n - ? "" - : n - } - } - function bi() { - this.innerHTML = "" - } - function wi(t) { - return function () { - this.innerHTML = t - } - } - function Mi(t) { - return function () { - var n = t.apply(this, arguments); - this.innerHTML = null == n - ? "" - : n - } - } - function Ti() { - this.nextSibling && this - .parentNode - .appendChild(this) - } - function Ni() { - this.previousSibling && this - .parentNode - .insertBefore(this, this.parentNode.firstChild) - } - function ki() { - return null - } - function Si() { - var t = this.parentNode; - t && t.removeChild(this) - } - function Ai(t, n, e) { - var r = iy(t), - i = r.CustomEvent; - 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 Ei(t, n) { - return function () { - return Ai(this, t, n) - } - } - function Ci(t, n) { - return function () { - return Ai(this, t, n.apply(this, arguments)) - } - } - function zi(t, n) { - this._groups = t, - this._parents = n - } - function Pi() { - return new zi([ - [document.documentElement] - ], yy) - } - function qi(t, n) { - var e = t.__transition; - if (!e || !(e = e[n]) || e.state > Ty) - throw new Error("too late"); - return e - } - function Li(t, n) { - var e = t.__transition; - if (!e || !(e = e[n]) || e.state > ky) - throw new Error("too late"); - return e - } - function Ri(t, n) { - var e = t.__transition; - if (!e || !(e = e[n])) - throw new Error("too late"); - return e - } - function Ui(t, n, e) { - function r(t) { - e.state = Ny, - e - .timer - .restart(i, e.delay, e.time), - e.delay <= t && i(t - e.delay) - } - function i(r) { - var s, - f, - l, - h; - if (e.state !== Ny) - return u(); - for (s in c) - if (h = c[s], h.name === e.name) { - if (h.state === Sy) - return pd(i); - h.state === Ay - ? (h.state = Cy, h.timer.stop(), h.on.call("interrupt", t, t.__data__, h.index, h.group), delete c[s]) :+ s < n && (h.state = Cy, h.timer.stop(), delete c[s]) - } - if (pd(function () { - e.state === Sy && (e.state = Ay, e.timer.restart(o, e.delay, e.time), o(r)) - }), e.state = ky, e.on.call("start", t, t.__data__, e.index, e.group), e.state === ky) { - for (e.state = Sy, a = new Array(l = e.tween.length), s = 0, f = -1; s < l; ++s) - (h = e.tween[s].value.call(t, t.__data__, e.index, e.group)) && (a[++f] = h); - a.length = f + 1 - } - } - function o(n) { - for (var r = n < e.duration - ? e.ease.call(null, n / e.duration) - : (e.timer.restart(u), e.state = Ey, 1), i = -1, o = a.length; ++i < o;) - a[i].call(null, r); - e.state === Ey && (e.on.call("end", t, t.__data__, e.index, e.group), u()) - } - function u() { - e.state = Cy, - e - .timer - .stop(), - delete c[n]; - for (var r in c) - return; - delete t.__transition - } - var a, - c = t.__transition; - c[n] = e, - e.timer = Vn(r, 0, e.time) - } - function Di(t, n) { - var e, - r; - return function () { - var i = Li(this, t), - o = i.tween; - if (o !== e) { - r = e = o; - for (var u = 0, a = r.length; u < a; ++u) - if (r[u].name === n) { - r = r.slice(), - r.splice(u, 1); - break - } - } - i.tween = r - } - } - function Oi(t, n, e) { - var r, - i; - if ("function" != typeof e) - throw new Error; - return function () { - var o = Li(this, t), - u = o.tween; - if (u !== r) { - i = (r = u).slice(); - for (var a = { - name: n, - value: e - }, c = 0, s = i.length; c < s; ++c) - if (i[c].name === n) { - i[c] = a; - break - } - c === s && i.push(a) - } - o.tween = i - } - } - function Fi(t, n, e) { - var r = t._id; - return t.each(function () { - var t = Li(this, r); - (t.value || (t.value = {}))[n] = e.apply(this, arguments) - }), - function (t) { - return Ri(t, r).value[n] - } - } - function Ii(t) { - return function () { - this.removeAttribute(t) - } - } - function Yi(t) { - return function () { - this.removeAttributeNS(t.space, t.local) - } - } - function Bi(t, n, e) { - var r, - i; - return function () { - var o = this.getAttribute(t); - return o === e - ? null - : o === r - ? i - : i = n(r = o, e) - } - } - function ji(t, n, e) { - var r, - i; - return function () { - var o = this.getAttributeNS(t.space, t.local); - return o === e - ? null - : o === r - ? i - : i = n(r = o, e) - } - } - function Hi(t, n, e) { - var r, - i, - o; - return function () { - var u, - a = e(this); - return null == a - ? void this.removeAttribute(t) - : (u = this.getAttribute(t), u === a - ? null - : u === r && a === i - ? o - : o = n(r = u, i = a)) - } - } - function Xi(t, n, e) { - var r, - i, - o; - return function () { - var u, - a = e(this); - return null == a - ? void this.removeAttributeNS(t.space, t.local) - : (u = this.getAttributeNS(t.space, t.local), u === a - ? null - : u === r && a === i - ? o - : o = n(r = u, i = a)) - } - } - function Vi(t, n) { - function e() { - var e = this, - r = n.apply(e, arguments); - return r && function (n) { - e.setAttributeNS(t.space, t.local, r(n)) - } - } - return e._value = n, - e - } - function Wi(t, n) { - function e() { - var e = this, - r = n.apply(e, arguments); - return r && function (n) { - e.setAttribute(t, r(n)) - } - } - return e._value = n, - e - } - function $i(t, n) { - return function () { - qi(this, t).delay =+ n.apply(this, arguments) - } - } - function Zi(t, n) { - return n =+ n, - function () { - qi(this, t).delay = n - } - } - function Gi(t, n) { - return function () { - Li(this, t).duration =+ n.apply(this, arguments) - } - } - function Ji(t, n) { - return n =+ n, - function () { - Li(this, t).duration = n - } - } - function Qi(t, n) { - if ("function" != typeof n) - throw new Error; - return function () { - Li(this, t).ease = n - } - } - function Ki(t) { - return (t + "") - .trim() - .split(/^|\s+/) - .every(function (t) { - var n = t.indexOf("."); - return n >= 0 && (t = t.slice(0, n)), - !t || "start" === t - }) - } - function to(t, n, e) { - var r, - i, - o = Ki(n) - ? qi - : Li; - return function () { - var u = o(this, t), - a = u.on; - a !== r && (i = (r = a).copy()).on(n, e), - u.on = i - } - } - function no(t) { - return function () { - var n = this.parentNode; - for (var e in this.__transition) - if (+ e !== t) - return; - n && n.removeChild(this) - } - } - function eo(t, n) { - var e, - r, - i; - return function () { - var o = iy(this).getComputedStyle(this, null), - u = o.getPropertyValue(t), - a = (this.style.removeProperty(t), o.getPropertyValue(t)); - return u === a - ? null - : u === e && a === r - ? i - : i = n(e = u, r = a) - } - } - function ro(t) { - return function () { - this - .style - .removeProperty(t) - } - } - function io(t, n, e) { - var r, - i; - return function () { - var o = iy(this) - .getComputedStyle(this, null) - .getPropertyValue(t); - return o === e - ? null - : o === r - ? i - : i = n(r = o, e) - } - } - function oo(t, n, e) { - var r, - i, - o; - return function () { - var u = iy(this).getComputedStyle(this, null), - a = u.getPropertyValue(t), - c = e(this); - return null == c && (this.style.removeProperty(t), c = u.getPropertyValue(t)), - a === c - ? null - : a === r && c === i - ? o - : o = n(r = a, i = c) - } - } - function uo(t, n, e) { - function r() { - var r = this, - i = n.apply(r, arguments); - return i && function (n) { - r - .style - .setProperty(t, i(n), e) - } - } - return r._value = n, - r - } - function ao(t) { - return function () { - this.textContent = t - } - } - function co(t) { - return function () { - var n = t(this); - this.textContent = null == n - ? "" - : n - } - } - function so(t, n, e, r) { - this._groups = t, - this._parents = n, - this._name = e, - this._id = r - } - function fo(t) { - return Pi().transition(t) - } - function lo() { - return++ Ky - } - function ho(t, n) { - for (var e; !(e = t.__transition) || !(e = e[n]);) - if (!(t = t.parentNode)) - return ng.time = jn(), - ng; - return e - } - function po(t, n, e) { - var r = t(e); - return "translate(" + (isFinite(r) - ? r - : n(e)) + ",0)" - } - function vo(t, n, e) { - var r = t(e); - return "translate(0," + (isFinite(r) - ? r - : n(e)) + ")" - } - function _o(t) { - var n = t.bandwidth() / 2; - return t.round() && (n = Math.round(n)), - function (e) { - return t(e) + n - } - } - function yo() { - return !this.__axis - } - function go(t, n) { - function e(e) { - var s, - f = null == i - ? n.ticks - ? n - .ticks - .apply(n, r) - : n.domain() - : i, - l = null == o - ? n.tickFormat - ? n - .tickFormat - .apply(n, r) - : ug - : o, - h = Math.max(u, 0) + c, - p = t === ag || t === sg - ? po - : vo, - d = n.range(), - v = d[0] + .5, - _ = d[d.length - 1] + .5, - y = (n.bandwidth - ? _o - : ug)(n.copy()), - g = e.selection - ? e.selection() - : e, - m = g - .selectAll(".domain") - .data([null]), - x = g - .selectAll(".tick") - .data(f, n) - .order(), - b = x.exit(), - w = x - .enter() - .append("g") - .attr("class", "tick"), - M = x.select("line"), - T = x.select("text"), - N = t === ag || t === fg - ? -1 - : 1, - k = t === fg || t === cg - ? (s = "x", "y") - : (s = "y", "x"); - m = m.merge(m.enter().insert("path", ".tick").attr("class", "domain").attr("stroke", "#000")), - x = x.merge(w), - M = M.merge(w.append("line").attr("stroke", "#000").attr(s + "2", N * u).attr(k + "1", .5).attr(k + "2", .5)), - T = T.merge(w.append("text").attr("fill", "#000").attr(s, N * h).attr(k, .5).attr("dy", t === ag - ? "0em" - : t === sg - ? "0.71em" - : "0.32em")), - e !== g && (m = m.transition(e), x = x.transition(e), M = M.transition(e), T = T.transition(e), b = b.transition(e).attr("opacity", lg).attr("transform", function (t) { - return p(y, this.parentNode.__axis || y, t) - }), w.attr("opacity", lg).attr("transform", function (t) { - return p(this.parentNode.__axis || y, y, t) - })), - b.remove(), - m.attr("d", t === fg || t == cg - ? "M" + N * a + "," + v + "H0.5V" + _ + "H" + N * a - : "M" + v + "," + N * a + "V0.5H" + _ + "V" + N * a), - x - .attr("opacity", 1) - .attr("transform", function (t) { - return p(y, y, t) - }), - M.attr(s + "2", N * u), - T - .attr(s, N * h) - .text(l), - g - .filter(yo) - .attr("fill", "none") - .attr("font-size", 10) - .attr("font-family", "sans-serif") - .attr("text-anchor", t === cg - ? "start" - : t === fg - ? "end" - : "middle"), - g.each(function () { - this.__axis = y - }) - } - var r = [], - i = null, - o = null, - u = 6, - a = 6, - c = 3; - return e.scale = function (t) { - return arguments.length - ? (n = t, e) - : n - }, - e.ticks = function () { - return r = og.call(arguments), - e - }, - e.tickArguments = function (t) { - return arguments.length - ? (r = null == t - ? [] - : og.call(t), e) - : r.slice() - }, - e.tickValues = function (t) { - return arguments.length - ? (i = null == t - ? null - : og.call(t), e) - : i && i.slice() - }, - e.tickFormat = function (t) { - return arguments.length - ? (o = t, e) - : o - }, - e.tickSize = function (t) { - return arguments.length - ? (u = a =+ t, e) - : u - }, - e.tickSizeInner = function (t) { - return arguments.length - ? (u =+ t, e) - : u - }, - e.tickSizeOuter = function (t) { - return arguments.length - ? (a =+ t, e) - : a - }, - e.tickPadding = function (t) { - return arguments.length - ? (c =+ t, e) - : c - }, - e - } - function mo(t) { - return go(ag, t) - } - function xo(t) { - return go(cg, t) - } - function bo(t) { - return go(sg, t) - } - function wo(t) { - return go(fg, t) - } - function Mo(t, n) { - return t.parent === n.parent - ? 1 - : 2 - } - function To(t) { - return t.reduce(No, 0) / t.length - } - function No(t, n) { - return t + n.x - } - function ko(t) { - return 1 + t.reduce(So, 0) - } - function So(t, n) { - return Math.max(t, n.y) - } - function Ao(t) { - for (var n; n = t.children;) - t = n[0]; - return t - } - function Eo(t) { - for (var n; n = t.children;) - t = n[n.length - 1]; - return t - } - function Co(t, n) { - if (t === n) - return t; - var e = t.ancestors(), - r = n.ancestors(), - i = null; - for (t = e.pop(), n = r.pop(); t === n;) - i = t, - t = e.pop(), - n = r.pop(); - return i - } - function zo(t, n) { - var e, - r, - i, - o, - u, - a = new Uo(t), - c =+ t.value && (a.value = t.value), - s = [a]; - for (null == n && (n = qo); e = s.pop();) - if (c && (e.value =+ e.data.value), (i = n(e.data)) && (u = i.length)) - for (e.children = new Array(u), o = u - 1; o >= 0; --o) - s.push(r = e.children[o] = new Uo(i[o])), - r.parent = e, - r.depth = e.depth + 1; - return a.eachBefore(Ro) - } - function Po() { - return zo(this).eachBefore(Lo) - } - function qo(t) { - return t.children - } - function Lo(t) { - t.data = t.data.data - } - function Ro(t) { - var n = 0; - do - t.height = n; - while ((t = t.parent) && t.height < ++n) - } - function Uo(t) { - this.data = t, - this.depth = this.height = 0, - this.parent = null - } - function Do(t) { - this._ = t, - this.next = null - } - function Oo(t, n) { - var e = n.x - t.x, - r = n.y - t.y, - i = t.r - n.r; - return i * i + 1e-6 > e * e + r * r - } - function Fo(t, n) { - var e, - r, - i, - o = null, - u = t.head; - switch (n.length) { - case 1: - e = Io(n[0]); - break; - case 2: - e = Yo(n[0], n[1]); - break; - case 3: - e = Bo(n[0], n[1], n[2]) - } - for (; u;) - i = u._, - r = u.next, - e && Oo(e, i) - ? o = u - : (o - ? (t.tail = o, o.next = null) - : t.head = t.tail = null, n.push(i), e = Fo(t, n), n.pop(), t.head - ? (u.next = t.head, t.head = u) - : (u.next = null, t.head = t.tail = u), o = t.tail, o.next = r), - u = r; - return t.tail = o, - e - } - function Io(t) { - return {x: t.x, y: t.y, r: t.r} - } - function Yo(t, n) { - var e = t.x, - r = t.y, - i = t.r, - o = n.x, - u = n.y, - a = n.r, - c = o - e, - s = u - r, - f = a - i, - l = Math.sqrt(c * c + s * s); - return { - x: (e + o + c / l * f) / 2, - y: (r + u + s / l * f) / 2, - r: (l + i + a) / 2 - } - } - function Bo(t, n, e) { - var r = t.x, - i = t.y, - o = t.r, - u = n.x, - a = n.y, - c = n.r, - s = e.x, - f = e.y, - l = e.r, - h = 2 * (r - u), - p = 2 * (i - a), - d = 2 * (c - o), - v = r * r + i * i - o * o - u * u - a * a + c * c, - _ = 2 * (r - s), - y = 2 * (i - f), - g = 2 * (l - o), - m = r * r + i * i - o * o - s * s - f * f + l * l, - x = _ * p - h * y, - b = (p * m - y * v) / x - r, - w = (y * d - p * g) / x, - M = (_ * v - h * m) / x - i, - T = (h * g - _ * d) / x, - N = w * w + T * T - 1, - k = 2 * (b * w + M * T + o), - S = b * b + M * M - o * o, - A = (-k - Math.sqrt(k * k - 4 * N * S)) / (2 * N); - return { - x: b + *A + r, - y: M + *A + i, - r: A - } - } - function jo(t, n, e) { - var r = t.x, - i = t.y, - o = n.r + e.r, - u = t.r + e.r, - a = n.x - r, - c = n.y - i, - s = a * a + c * c; - if (s) { - var f = .5 + ((u *= u) - (o *= o)) / (2 * s), - l = Math.sqrt(Math.max(0, 2 * o * (u + s) - (u -= s) * u - o * o)) / (2 * s); - e.x = r + f * a + l * c, - e.y = i + f * c - l * a - } else - e.x = r + u, - e.y = i - } - function Ho(t, n) { - var e = n.x - t.x, - r = n.y - t.y, - i = t.r + n.r; - return i * i > e * e + r * r - } - function Xo(t, n, e) { - var r = t.x - n, - i = t.y - e; - return r * r + i * i - } - function Vo(t) { - this._ = t, - this.next = null, - this.previous = null - } - function Wo(t) { - if (!(i = t.length)) - return 0; - var n, - e, - r, - i; - if (n = t[0], n.x = 0, n.y = 0, !(i > 1)) - return n.r; - if (e = t[1], n.x = -e.r, e.x = n.r, e.y = 0, !(i > 2)) - return n.r + e.r; - jo(e, n, r = t[2]); - var o, - u, - a, - c, - s, - f, - l, - h = n.r * n.r, - p = e.r * e.r, - d = r.r * r.r, - v = h + p + d, - _ = h * n.x + p * e.x + d * r.x, - y = h * n.y + p * e.y + d * r.y; - n = new Vo(n), - e = new Vo(e), - r = new Vo(r), - n.next = r.previous = e, - e.next = n.previous = r, - r.next = e.previous = n; - t : for (a = 3; a < i; ++a) { - if (jo(n._, e._, r = t[a]), r = new Vo(r), (s = n.previous) === (c = e.next)) { - if (Ho(c._, r._)) { - n = e, - e = c, - --a; - continue t - } - } else { - f = c._.r, - l = s._.r; - do - if (f <= l) { - if (Ho(c._, r._)) { - e = c, - n.next = e, - e.previous = n, - --a; - continue t - } - c = c.next, - f += c._.r - } - else { - if (Ho(s._, r._)) { - n = s, - n.next = e, - e.previous = n, - --a; - continue t - } - s = s.previous, - l += s._.r - } - while (c !== s.next) - } - for (r.previous = n, r.next = e, n.next = e.previous = e = r, v += d = r._.r * r._.r, _ += d * r._.x, y += d * r._.y, h = Xo(n._, o = _ / v, u = y / v); (r = r.next) !== e;) - (d = Xo(r._, o, u)) < h && (n = r, h = d); - e = n.next - } - for (n = [e._], r = e; (r = r.next) !== e;) - n.push(r._); - for (r = Tg(n), a = 0; a < i; ++a) - n = t[a], - n.x -= r.x, - n.y -= r.y; - return r.r - } - function $o(t) { - return null == t - ? null - : Zo(t) - } - function Zo(t) { - if ("function" != typeof t) - throw new Error; - return t - } - function Go() { - return 0 - } - function Jo(t) { - return Math.sqrt(t.value) - } - function Qo(t) { - return function (n) { - n.children || (n.r = Math.max(0, + t(n) || 0)) - } - } - function Ko(t, n) { - return function (e) { - if (r = e.children) { - var r, - i, - o, - u = r.length, - a = t(e) * n || 0; - if (a) - for (i = 0; i < u; ++i) - r[i].r += a; - if (o = Wo(r), a) - for (i = 0; i < u; ++i) - r[i].r -= a; - e.r = o + a - } - } - } - function tu(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 nu(t) { - return t.id - } - function eu(t) { - return t.parentId - } - function ru(t, n) { - return t.parent === n.parent - ? 1 - : 2 - } - function iu(t) { - var n = t.children; - return n - ? n[0] - : t.t - } - function ou(t) { - var n = t.children; - return n - ? n[n.length - 1] - : t.t - } - function uu(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 au(t) { - for (var n, e = 0, r = 0, i = t.children, o = i.length; --o >= 0;) - n = i[o], - n.z += e, - n.m += e, - e += n.s + (r += n.c) - } - function cu(t, n, e) { - return t.a.parent === n.parent - ? t.a - : e - } - function su(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 fu(t) { - for (var n, e, r, i, o, u = new su(t, 0), a = [u]; n = a.pop();) - if (r = n._.children) - for (n.children = new Array(o = r.length), i = o - 1; i >= 0; --i) - a.push(e = n.children[i] = new su(r[i], i)), - e.parent = n; - return (u.parent = new su(null, 0)).children = [u], - u - } - function lu(t, n, e, r, i, o) { - for (var u, a, c, s, f, l, h, p, d, v, _, y, g = [], m = n.children, x = 0, b = m.length, w = n.value; x < b;) { - for (s = i - e, f = o - r, h = p = l = m[x].value, _ = Math.max(f / s, s / f) / (w * t), y = l * l * _, v = Math.max(p / y, y / h), c = x + 1; c < b; ++c) { - if (l += a = m[c].value, a < h && (h = a), a > p && (p = a), y = l * l * _, d = Math.max(p / y, y / h), d > v) { - l -= a; - break - } - v = d - } - g.push(u = { - value: l, - dice: s < f, - children: m.slice(x, c) - }), - u.dice - ? Eg(u, e, r, i, w - ? r += f * l / w - : o) - : Ug(u, e, r, w - ? e += s * l / w - : i, o), - w -= l, - x = c - } - return g - } - function hu(t) { - return t.x + t.vx - } - function pu(t) { - return t.y + t.vy - } - function du(t, n) { - return n - } - function vu(t, n) { - var e = t.get(n); - if (!e) - throw new Error("missing: " + n); - return e - } - function _u(t) { - return t.x - } - function yu(t) { - return t.y - } - function gu() { - t - .event - .stopImmediatePropagation() - } - function mu(t, n) { - var e = t.document.documentElement, - r = gy(t).on("dragstart.drag", null); - n && (r.on("click.drag", tm, !0), setTimeout(function () { - r.on("click.drag", null) - }, 0)), - "onselectstart" in e - ? r.on("selectstart.drag", null) - : (e.style.MozUserSelect = e.__noselect, delete e.__noselect) - } - function xu(t, n, e, r, i, o, u, a, c, s) { - this.target = t, - this.type = n, - this.subject = e, - this.identifier = r, - this.active = i, - this.x = o, - this.y = u, - this.dx = a, - this.dy = c, - this._ = s - } - function bu() { - return !t.event.button - } - function wu() { - return this.parentNode - } - function Mu(n) { - return null == n - ? { - x: t.event.x, - y: t.event.y - } - : n - } - function Tu(t) { - return t[0] - } - function Nu(t) { - return t[1] - } - function ku() { - this._ = null - } - function Su(t) { - t.U = t.C = t.L = t.R = t.P = t.N = null - } - function Au(t, n) { - var e = n, - r = n.R, - i = e.U; - i - ? i.L === e - ? i.L = r - : i.R = r - : t._ = r, - r.U = i, - e.U = r, - e.R = r.L, - e.R && (e.R.U = e), - r.L = e - } - function Eu(t, n) { - var e = n, - r = n.L, - i = e.U; - i - ? i.L === e - ? i.L = r - : i.R = r - : t._ = r, - r.U = i, - e.U = r, - e.L = r.R, - e.L && (e.L.U = e), - r.R = e - } - function Cu(t) { - for (; t.L;) - t = t.L; - return t - } - function zu(t, n, e, r) { - var i = [ - null, null - ], - o = sm.push(i) - 1; - return i.left = t, - i.right = n, - e && qu(i, t, n, e), - r && qu(i, n, t, r), - am[t.index] - .halfedges - .push(o), - am[n.index] - .halfedges - .push(o), - i - } - function Pu(t, n, e) { - var r = [n, e]; - return r.left = t, - r - } - function qu(t, n, e, r) { - t[0] || t[1] - ? t.left === e - ? t[1] = r - : t[0] = r - : (t[0] = r, t.left = n, t.right = e) - } - function Lu(t, n, e, r, i) { - var o, - u = t[0], - a = t[1], - c = u[0], - s = u[1], - f = a[0], - l = a[1], - h = 0, - p = 1, - d = f - c, - v = l - s; - if (o = n - c, d || !(o > 0)) { - if (o /= d, d < 0) { - if (o < h) - return; - o < p && (p = o) - } else if (d > 0) { - if (o > p) - return; - o > h && (h = o) - } - if (o = r - c, d || !(o < 0)) { - if (o /= d, d < 0) { - if (o > p) - return; - o > h && (h = o) - } else if (d > 0) { - if (o < h) - return; - o < p && (p = o) - } - if (o = e - s, v || !(o > 0)) { - if (o /= v, v < 0) { - if (o < h) - return; - o < p && (p = o) - } else if (v > 0) { - if (o > p) - return; - o > h && (h = o) - } - if (o = i - s, v || !(o < 0)) { - if (o /= v, v < 0) { - if (o > p) - return; - o > h && (h = o) - } else if (v > 0) { - if (o < h) - return; - o < p && (p = o) - } - return !(h > 0 || p < 1) || (h > 0 && (t[0] = [ - c + h * d, - s + h * v - ]), p < 1 && (t[1] = [ - c + p * d, - s + p * v - ]), !0) - } - } - } - } - } - function Ru(t, n, e, r, i) { - var o = t[1]; - if (o) - return !0; - var u, - a, - c = t[0], - s = t.left, - f = t.right, - l = s[0], - h = s[1], - p = f[0], - d = f[1], - v = (l + p) / 2, - _ = (h + d) / 2; - if (d === h) { - if (v < n || v >= r) - return; - if (l > p) { - if (c) { - if (c[1] >= i) - return - } else - c = [v, e]; - o = [v, i] - } else { - if (c) { - if (c[1] < e) - return - } else - c = [v, i]; - o = [v, e] - } - } else if (u = (l - p) / (d - h), a = _ - u * v, u < -1 || u > 1) - if (l > p) { - if (c) { - if (c[1] >= i) - return - } else - c = [ - (e - a) / u, - e - ]; - o = [ - (i - a) / u, - i - ] - } - else { - if (c) { - if (c[1] < e) - return - } else - c = [ - (i - a) / u, - i - ]; - o = [ - (e - a) / u, - e - ] - } else if (h < d) { - if (c) { - if (c[0] >= r) - return - } else - c = [ - n, u * n + a - ]; - o = [ - r, u * r + a - ] - } else { - if (c) { - if (c[0] < n) - return - } else - c = [ - r, u * r + a - ]; - o = [ - n, u * n + a - ] - } - return t[0] = c, - t[1] = o, - !0 - } - function Uu(t, n, e, r) { - for (var i, o = sm.length; o--;) - Ru(i = sm[o], t, n, e, r) && Lu(i, t, n, e, r) && (Math.abs(i[0][0] - i[1][0]) > hm || Math.abs(i[0][1] - i[1][1]) > hm) || delete sm[o] - } - function Du(t) { - return am[t.index] = { - site: t, - halfedges: [] - } - } - function Ou(t, n) { - var e = t.site, - r = n.left, - i = n.right; - return e === i && (i = r, r = e), - i - ? Math.atan2(i[1] - r[1], i[0] - r[0]) - : (e === r - ? (r = n[1], i = n[0]) - : (r = n[0], i = n[1]), Math.atan2(r[0] - i[0], i[1] - r[1])) - } - function Fu(t, n) { - return n[+ (n.left !== t.site)] - } - function Iu(t, n) { - return n[+ (n.left === t.site)] - } - function Yu() { - for (var t, n, e, r, i = 0, o = am.length; i < o; ++i) - if ((t = am[i]) && (r = (n = t.halfedges).length)) { - var u = new Array(r), - a = new Array(r); - for (e = 0; e < r; ++e) - u[e] = e, - a[e] = Ou(t, sm[n[e]]); - for (u.sort(function (t, n) { - return a[n] - a[t] - }), e = 0; e < r; ++e) - a[e] = n[u[e]]; - for (e = 0; e < r; ++e) - n[e] = a[e] - } - } - function Bu(t, n, e, r) { - var i, - o, - u, - a, - c, - s, - f, - l, - h, - p, - d, - v, - _ = am.length, - y = !0; - for (i = 0; i < _; ++i) - if (o = am[i]) { - for (u = o.site, c = o.halfedges, a = c.length; a--;) - sm[c[a]] || c.splice(a, 1); - for (a = 0, s = c.length; a < s;) - p = Iu(o, sm[c[a]]), - d = p[0], - v = p[1], - f = Fu(o, sm[c[++a % s]]), - l = f[0], - h = f[1], - (Math.abs(d - l) > hm || Math.abs(v - h) > hm) && (c.splice(a, 0, sm.push(Pu(u, p, Math.abs(d - t) < hm && r - v > hm - ? [ - t, Math.abs(l - t) < hm - ? h - : r - ] - : Math.abs(v - r) < hm && e - d > hm - ? [ - Math.abs(h - r) < hm - ? l - : e, - r - ] - : Math.abs(d - e) < hm && v - n > hm - ? [ - e, Math.abs(l - e) < hm - ? h - : n - ] - : Math.abs(v - n) < hm && d - t > hm - ? [ - Math.abs(h - n) < hm - ? l - : t, - n - ] - : null)) - 1), ++s); - s && (y = !1) - } - if (y) { - var g, - m, - x, - b = 1 / 0; - for (i = 0, y = null; i < _; ++i) - (o = am[i]) && (u = o.site, g = u[0] - t, m = u[1] - n, x = g * g + m * m, x < b && (b = x, y = o)); - if (y) { - var w = [ - t, n - ], - M = [ - t, r - ], - T = [ - e, r - ], - N = [e, n]; - y - .halfedges - .push(sm.push(Pu(u = y.site, w, M)) - 1, sm.push(Pu(u, M, T)) - 1, sm.push(Pu(u, T, N)) - 1, sm.push(Pu(u, N, w)) - 1) - } - } - for (i = 0; i < _; ++i) - (o = am[i]) && (o.halfedges.length || delete am[i]) - } - function ju() { - Su(this), - this.x = this.y = this.arc = this.site = this.cy = null - } - function Hu(t) { - var n = t.P, - e = t.N; - if (n && e) { - var r = n.site, - i = t.site, - o = e.site; - if (r !== o) { - var u = i[0], - a = i[1], - c = r[0] - u, - s = r[1] - a, - f = o[0] - u, - l = o[1] - a, - h = 2 * (c * l - s * f); - if (!(h >= -pm)) { - var p = c * c + s * s, - d = f * f + l * l, - v = (l * p - s * d) / h, - _ = (c * d - f * p) / h, - y = fm.pop() || new ju; - y.arc = t, - y.site = i, - y.x = v + u, - y.y = (y.cy = _ + a) + Math.sqrt(v * v + _ * _), - t.circle = y; - for (var g = null, m = cm._; m;) - if (y.y < m.y || y.y === m.y && y.x <= m.x) { - if (!m.L) { - g = m.P; - break - } - m = m.L - } - else { - if (!m.R) { - g = m; - break - } - m = m.R - } - cm.insert(g, y), - g || (om = y) - } - } - } - } - function Xu(t) { - var n = t.circle; - n && (n.P || (om = n.N), cm.remove(n), fm.push(n), Su(n), t.circle = null) - } - function Vu() { - Su(this), - this.edge = this.site = this.circle = null - } - function Wu(t) { - var n = lm.pop() || new Vu; - return n.site = t, - n - } - function $u(t) { - Xu(t), - um.remove(t), - lm.push(t), - Su(t) - } - function Zu(t) { - var n = t.circle, - e = n.x, - r = n.cy, - i = [ - e, r - ], - o = t.P, - u = t.N, - a = [t]; - $u(t); - for (var c = o; c.circle && Math.abs(e - c.circle.x) < hm && Math.abs(r - c.circle.cy) < hm;) - o = c.P, - a.unshift(c), - $u(c), - c = o; - a.unshift(c), - Xu(c); - for (var s = u; s.circle && Math.abs(e - s.circle.x) < hm && Math.abs(r - s.circle.cy) < hm;) - u = s.N, - a.push(s), - $u(s), - s = u; - a.push(s), - Xu(s); - var f, - l = a.length; - for (f = 1; f < l; ++f) - s = a[f], - c = a[f - 1], - qu(s.edge, c.site, s.site, i); - c = a[0], - s = a[l - 1], - s.edge = zu(c.site, s.site, null, i), - Hu(c), - Hu(s) - } - function Gu(t) { - for (var n, e, r, i, o = t[0], u = t[1], a = um._; a;) - if (r = Ju(a, u) - o, r > hm) - a = a.L; - else { - if (i = o - Qu(a, u), !(i > hm)) { - r > -hm - ? (n = a.P, e = a) - : i > -hm - ? (n = a, e = a.N) - : n = e = a; - break - } - if (!a.R) { - n = a; - break - } - a = a.R - } - Du(t); - var c = Wu(t); - if (um.insert(n, c), n || e) { - if (n === e) - return Xu(n), - e = Wu(n.site), - um.insert(c, e), - c.edge = e.edge = zu(n.site, c.site), - Hu(n), - void Hu(e); - if (!e) - return void(c.edge = zu(n.site, c.site)); - Xu(n), - Xu(e); - var s = n.site, - f = s[0], - l = s[1], - h = t[0] - f, - p = t[1] - l, - d = e.site, - v = d[0] - f, - _ = d[1] - l, - y = 2 * (h * _ - p * v), - g = h * h + p * p, - m = v * v + _ * _, - x = [ - (_ * g - p * m) / y + f, - (h * m - v * g) / y + l - ]; - qu(e.edge, s, d, x), - c.edge = zu(s, t, null, x), - e.edge = zu(t, d, null, x), - Hu(n), - Hu(e) - } - } - function Ju(t, n) { - var e = t.site, - r = e[0], - i = e[1], - o = i - n; - if (!o) - return r; - var u = t.P; - if (!u) - return -(1 / 0); - e = u.site; - var a = e[0], - c = e[1], - s = c - n; - if (!s) - return a; - var f = a - r, - l = 1 / o - 1 / s, - h = f / s; - return l - ? (-h + Math.sqrt(h * h - 2 * l * (f * f / (-2 * s) - c + s / 2 + i - o / 2))) / l + r - : (r + a) / 2 - } - function Qu(t, n) { - var e = t.N; - if (e) - return Ju(e, n); - var r = t.site; - return r[1] === n - ? r[0] - : 1 / 0 - } - function Ku(t, n, e) { - return (t[0] - e[0]) * (n[1] - t[1]) - (t[0] - n[0]) * (e[1] - t[1]) - } - function ta(t, n) { - return n[1] - t[1] || n[0] - t[0] - } - function na(t, n) { - var e, - r, - i, - o = t - .sort(ta) - .pop(); - for (sm = [], am = new Array(t.length), um = new ku, cm = new ku;;) - if (i = om, o && (!i || o[1] < i.y || o[1] === i.y && o[0] < i.x)) - o[0] === e && o[1] === r || (Gu(o), e = o[0], r = o[1]), - o = t.pop(); - else { - if (!i) - break; - Zu(i.arc) - } - if (Yu(), n) { - var u =+ n[0][0], - a =+ n[0][1], - c =+ n[1][0], - s =+ n[1][1]; - Uu(u, a, c, s), - Bu(u, a, c, s) - } - this.edges = sm, - this.cells = am, - um = cm = sm = am = null - } - function ea(t, n, e) { - this.target = t, - this.type = n, - this.transform = e - } - function ra(t, n, e) { - this.k = t, - this.x = n, - this.y = e - } - function ia(t) { - return t.__zoom || _m - } - function oa() { - t - .event - .stopImmediatePropagation() - } - function ua() { - return !t.event.button - } - function aa() { - var t, - n, - e = this; - return e instanceof SVGElement - ? (e = e.ownerSVGElement || e, t = e.width.baseVal.value, n = e.height.baseVal.value) - : (t = e.clientWidth, n = e.clientHeight), - [ - [ - 0, 0 - ], - [t, n] - ] - } - function ca() { - return this.__zoom || _m - } - function sa() { - t - .event - .stopImmediatePropagation() - } - function fa(t) { - return {type: t} - } - function la() { - return !t.event.button - } - function ha() { - var t = this.ownerSVGElement || this; - return [ - [ - 0, 0 - ], - [t.width.baseVal.value, t.height.baseVal.value] - ] - } - function pa(t) { - for (; !t.__brush;) - if (!(t = t.parentNode)) - return; - return t.__brush - } - function da(t) { - return t[0][0] === t[1][0] || t[0][1] === t[1][1] - } - function va(t) { - var n = t.__brush; - return n - ? n - .dim - .output(n.selection) - : null - } - function _a() { - return ga(km) - } - function ya() { - return ga(Sm) - } - function ga(n) { - function e(t) { - var e = t - .property("__brush", a) - .selectAll(".overlay") - .data([fa("overlay")]); - e - .enter() - .append("rect") - .attr("class", "overlay") - .attr("pointer-events", "all") - .attr("cursor", Em.overlay) - .merge(e) - .each(function () { - var t = pa(this).extent; - gy(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]) - }), - t - .selectAll(".selection") - .data([fa("selection")]) - .enter() - .append("rect") - .attr("class", "selection") - .attr("cursor", Em.selection) - .attr("fill", "#777") - .attr("fill-opacity", .3) - .attr("stroke", "#fff") - .attr("shape-rendering", "crispEdges"); - var i = t - .selectAll(".handle") - .data(n.handles, function (t) { - return t.type - }); - i - .exit() - .remove(), - i - .enter() - .append("rect") - .attr("class", function (t) { - return "handle handle--" + t.type - }) - .attr("cursor", function (t) { - return Em[t.type] - }), - t - .each(r) - .attr("fill", "none") - .attr("pointer-events", "all") - .style("-webkit-tap-highlight-color", "rgba(0,0,0,0)") - .on("mousedown.brush touchstart.brush", u) - } - function r() { - var t = gy(this), - n = pa(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] - h / 2 - : n[0][0] - h / 2 - }).attr("y", function (t) { - return "s" === t.type[0] - ? n[1][1] - h / 2 - : n[0][1] - h / 2 - }).attr("width", function (t) { - return "n" === t.type || "s" === t.type - ? n[1][0] - n[0][0] + h - : h - }).attr("height", function (t) { - return "e" === t.type || "w" === t.type - ? n[1][1] - n[0][1] + h - : h - })) - : t - .selectAll(".selection,.handle") - .style("display", "none") - .attr("x", null) - .attr("y", null) - .attr("width", null) - .attr("height", null) - } - function i(t, n) { - return t.__brush.emitter || new o(t, n) - } - function o(t, n) { - this.that = t, - this.args = n, - this.state = t.__brush, - this.active = 0 - } - function u() { - function e() { - var t = U_(T); - !U || w || M || (Math.abs(t[0] - O[0]) > Math.abs(t[1] - O[1]) - ? M = !0 - : w = !0), - O = t, - b = !0, - bm(), - o() - } - function o() { - var t; - switch (m = O[0] - D[0], x = O[1] - D[1], k) { - case Mm: - case wm: - S && (m = Math.max(P - l, Math.min(L - v, m)), h = l + m, _ = v + m), - A && (x = Math.max(q - p, Math.min(R - y, x)), d = p + x, g = y + x); - break; - case Tm: - S < 0 - ? (m = Math.max(P - l, Math.min(L - l, m)), h = l + m, _ = v) - : S > 0 && (m = Math.max(P - v, Math.min(L - v, m)), h = l, _ = v + m), - A < 0 - ? (x = Math.max(q - p, Math.min(R - p, x)), d = p + x, g = y) - : A > 0 && (x = Math.max(q - y, Math.min(R - y, x)), d = p, g = y + x); - break; - case Nm: - S && (h = Math.max(P, Math.min(L, l - m * S)), _ = Math.max(P, Math.min(L, v + m * S))), - A && (d = Math.max(q, Math.min(R, p - x * A)), g = Math.max(q, Math.min(R, y + x * A))) - } - _ < h && (S *= -1, t = l, l = v, v = t, t = h, h = _, _ = t, N in Cm && Y.attr("cursor", Em[N = Cm[N]])), - g < d && (A *= -1, t = p, p = y, y = t, t = d, d = g, g = t, N in zm && Y.attr("cursor", Em[N = zm[N]])), - E.selection && (z = E.selection), - w && (h = z[0][0], _ = z[1][0]), - M && (d = z[0][1], g = z[1][1]), - z[0][0] === h && z[0][1] === d && z[1][0] === _ && z[1][1] === g || (E.selection = [ - [ - h, d - ], - [_, g] - ], r.call(T), F.brush()) - } - function u() { - if (sa(), t.event.touches) { - if (t.event.touches.length) - return; - c && clearTimeout(c), - c = setTimeout(function () { - c = null - }, 500), - I.on("touchmove.brush touchend.brush touchcancel.brush", null) - } else - mu(t.event.view, b), - B.on("keydown.brush keyup.brush mousemove.brush mouseup.brush", null); - I.attr("pointer-events", "all"), - Y.attr("cursor", Em.overlay), - E.selection && (z = E.selection), - da(z) && (E.selection = null, r.call(T)), - F.end() - } - function a() { - switch (t.event.keyCode) { - case 16: - U = S && A; - break; - case 18: - k === Tm && (S && (v = _ - m * S, l = h + m * S), A && (y = g - x * A, p = d + x * A), k = Nm, o()); - break; - case 32: - k !== Tm && k !== Nm || (S < 0 - ? v = _ - m - : S > 0 && (l = h - m), A < 0 - ? y = g - x - : A > 0 && (p = d - x), k = Mm, Y.attr("cursor", Em.selection), o()); - break; - default: - return - } - bm() - } - function s() { - switch (t.event.keyCode) { - case 16: - U && (w = M = U = !1, o()); - break; - case 18: - k === Nm && (S < 0 - ? v = _ - : S > 0 && (l = h), A < 0 - ? y = g - : A > 0 && (p = d), k = Tm, o()); - break; - case 32: - k === Mm && (t.event.altKey - ? (S && (v = _ - m * S, l = h + m * S), A && (y = g - x * A, p = d + x * A), k = Nm) - : (S < 0 - ? v = _ - : S > 0 && (l = h), A < 0 - ? y = g - : A > 0 && (p = d), k = Tm), Y.attr("cursor", Em[N]), o()); - break; - default: - return - } - bm() - } - if (t.event.touches) { - if (t.event.changedTouches.length < t.event.touches.length) - return bm() - } else if (c) - return; - if (f.apply(this, arguments)) { - var l, - h, - p, - d, - v, - _, - y, - g, - m, - x, - b, - w, - M, - T = this, - N = t.event.target.__data__.type, - k = "selection" === (t.event.metaKey - ? N = "overlay" - : N) - ? wm - : t.event.altKey - ? Nm - : Tm, - S = n === Sm - ? null - : Pm[N], - A = n === km - ? null - : qm[N], - E = pa(T), - C = E.extent, - z = E.selection, - P = C[0][0], - q = C[0][1], - L = C[1][0], - R = C[1][1], - U = S && A && t.event.shiftKey, - D = U_(T), - O = D, - F = i(T, arguments).beforestart(); - "overlay" === N - ? E.selection = z = [ - [ - l = n === Sm - ? P - : D[0], - p = n === km - ? q - : D[1] - ], - [ - v = n === Sm - ? L - : l, - y = n === km - ? R - : p - ] - ] - : (l = z[0][0], p = z[0][1], v = z[1][0], y = z[1][1]), - h = l, - d = p, - _ = v, - g = y; - var I = gy(T).attr("pointer-events", "none"), - Y = I - .selectAll(".overlay") - .attr("cursor", Em[N]); - if (t.event.touches) - I.on("touchmove.brush", e, !0).on("touchend.brush touchcancel.brush", u, !0); - else { - var B = gy(t.event.view) - .on("keydown.brush", a, !0) - .on("keyup.brush", s, !0) - .on("mousemove.brush", e, !0) - .on("mouseup.brush", u, !0); - nm(t.event.view) - } - sa(), - Py(T), - r.call(T), - F.start() - } - } - function a() { - var t = this.__brush || { - selection: null - }; - return t.extent = s.apply(this, arguments), - t.dim = n, - t - } - var c, - s = ha, - f = la, - l = Pn(e, "start", "brush", "end"), - h = 6; - return e.move = function (t, e) { - t.selection - ? t.on("start.brush", function () { - i(this, arguments) - .beforestart() - .start() - }) - .on("interrupt.brush end.brush", function () { - i(this, arguments).end() - }) - .tween("brush", function () { - function t(t) { - u.selection = 1 === t && da(s) - ? null - : f(t), - r.call(o), - a.brush() - } - var o = this, - u = o.__brush, - a = i(o, arguments), - c = u.selection, - s = n.input("function" == typeof e - ? e.apply(this, arguments) - : e, u.extent), - f = _p(c, s); - return c && s - ? t - : t(1) - }) - : t.each(function () { - var t = this, - o = arguments, - u = t.__brush, - a = n.input("function" == typeof e - ? e.apply(t, o) - : e, u.extent), - c = i(t, o).beforestart(); - Py(t), - u.selection = null == a || da(a) - ? null - : a, - r.call(t), - c - .start() - .brush() - .end() - }) - }, - o.prototype = { - beforestart: function () { - return 1 === ++this.active && (this.state.emitter = this, this.starting = !0), - this - }, - start: function () { - return this.starting && (this.starting = !1, this.emit("start")), - this - }, - brush: function () { - return this.emit("brush"), - this - }, - end: function () { - return 0 === --this.active && (delete this.state.emitter, this.emit("end")), - this - }, - emit: function (t) { - Xr(new xm(e, t, n.output(this.state.selection)), l.apply, l, [t, this.that, this.args]) - } - }, - e.extent = function (t) { - return arguments.length - ? (s = "function" == typeof t - ? t - : mm([ - [ + t[0][0], + t[0][1] - ], - [ + t[1][0], + t[1][1] - ] - ]), e) - : s - }, - e.filter = function (t) { - return arguments.length - ? (f = "function" == typeof t - ? t - : mm(!!t), e) - : f - }, - e.handleSize = function (t) { - return arguments.length - ? (h =+ t, e) - : h - }, - e.on = function () { - var t = l - .on - .apply(l, arguments); - return t === l - ? e - : t - }, - e - } - function ma(t) { - return function (n, e) { - return t(n.source.value + n.target.value, e.source.value + e.target.value) - } - } - function xa(t) { - return t.source - } - function ba(t) { - return t.target - } - function wa(t) { - return t.radius - } - function Ma(t) { - return t.startAngle - } - function Ta(t) { - return t.endAngle - } - function Na() { - this.reset() - } - function ka(t, n, e) { - var r = t.s = n + e, - i = r - n, - o = r - i; - t.t = n - o + (e - i) - } - function Sa(t) { - return t > 1 - ? 0 - : t < -1 - ? kx - : Math.acos(t) - } - function Aa(t) { - return t > 1 - ? Sx - : t < -1 - ? -Sx - : Math.asin(t) - } - function Ea(t) { - return (t = Ix(t / 2)) * t - } - function Ca() {} - function za(t, n) { - t && Xx.hasOwnProperty(t.type) && Xx[t.type](t, n) - } - function Pa(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 qa(t, n) { - var e = -1, - r = t.length; - for (n.polygonStart(); ++e < r;) - Pa(t[e], n, 1); - n.polygonEnd() - } - function La() { - Zx.point = Ua - } - function Ra() { - Da(Vm, Wm) - } - function Ua(t, n) { - Zx.point = Da, - Vm = t, - Wm = n, - t *= zx, - n *= zx, - $m = t, - Zm = Rx(n = n / 2 + Ax), - Gm = Ix(n) - } - function Da(t, n) { - t *= zx, - n *= zx, - n = n / 2 + Ax; - var e = t - $m, - r = e >= 0 - ? 1 - : -1, - i = r * e, - o = Rx(n), - u = Ix(n), - a = Gm * u, - c = Zm * o + a * Rx(i), - s = a * r * Ix(i); - Wx.add(Lx(s, c)), - $m = t, - Zm = o, - Gm = u - } - function Oa(t) { - return [ - Lx(t[1], t[0]), - Aa(t[2]) - ] - } - function Fa(t) { - var n = t[0], - e = t[1], - r = Rx(e); - return [ - r * Rx(n), - r * Ix(n), - Ix(e) - ] - } - function Ia(t, n) { - return t[0] * n[0] + t[1] * n[1] + t[2] * n[2] - } - function Ya(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 Ba(t, n) { - t[0] += n[0], - t[1] += n[1], - t[2] += n[2] - } - function ja(t, n) { - return [ - t[0] * n, - t[1] * n, - t[2] * n - ] - } - function Ha(t) { - var n = Bx(t[0] * t[0] + t[1] * t[1] + t[2] * t[2]); - t[0] /= n, - t[1] /= n, - t[2] /= n - } - function Xa(t, n) { - ox.push(ux = [ - Jm = t, - Km = t - ]), - n < Qm && (Qm = n), - n > tx && (tx = n) - } - function Va(t, n) { - var e = Fa([ - t * zx, - n * zx - ]); - if (ix) { - var r = Ya(ix, e), - i = [ - r[1], -r[0], - 0 - ], - o = Ya(i, r); - Ha(o), - o = Oa(o); - var u, - a = t - nx, - c = a > 0 - ? 1 - : -1, - s = o[0] * Cx * c, - f = Px(a) > 180; - f ^ (c * nx < s && s < c * t) - ? (u = o[1] * Cx, u > tx && (tx = u)) - : (s = (s + 360) % 360 - 180, f ^ (c * nx < s && s < c * t) - ? (u = -o[1] * Cx, u < Qm && (Qm = u)) - : (n < Qm && (Qm = n), n > tx && (tx = n))), - f - ? t < nx - ? Qa(Jm, t) > Qa(Jm, Km) && (Km = t) - : Qa(t, Km) > Qa(Jm, Km) && (Jm = t) - : Km >= Jm - ? (t < Jm && (Jm = t), t > Km && (Km = t)) - : t > nx - ? Qa(Jm, t) > Qa(Jm, Km) && (Km = t) - : Qa(t, Km) > Qa(Jm, Km) && (Jm = t) - } else - Xa(t, n); - ix = e, - nx = t - } - function Wa() { - Qx.point = Va - } - function $a() { - ux[0] = Jm, - ux[1] = Km, - Qx.point = Xa, - ix = null - } - function Za(t, n) { - if (ix) { - var e = t - nx; - Jx.add(Px(e) > 180 - ? e + (e > 0 - ? 360 - : -360) - : e) - } else - ex = t, - rx = n; - Zx.point(t, n), - Va(t, n) - } - function Ga() { - Zx.lineStart() - } - function Ja() { - Za(ex, rx), - Zx.lineEnd(), - Px(Jx) > Tx && (Jm = -(Km = 180)), - ux[0] = Jm, - ux[1] = Km, - ix = null - } - function Qa(t, n) { - return (n -= t) < 0 - ? n + 360 - : n - } - function Ka(t, n) { - return t[0] - n[0] - } - function tc(t, n) { - return t[0] <= t[1] - ? t[0] <= n && n <= t[1] - : n < t[0] || t[1] < n - } - function nc(t, n) { - t *= zx, - n *= zx; - var e = Rx(n); - ec(e * Rx(t), e * Ix(t), Ix(n)) - } - function ec(t, n, e) { - ++ax, - sx += (t - sx) / ax, - fx += (n - fx) / ax, - lx += (e - lx) / ax - } - function rc() { - tb.point = ic - } - function ic(t, n) { - t *= zx, - n *= zx; - var e = Rx(n); - xx = e * Rx(t), - bx = e * Ix(t), - wx = Ix(n), - tb.point = oc, - ec(xx, bx, wx) - } - function oc(t, n) { - t *= zx, - n *= zx; - var e = Rx(n), - r = e * Rx(t), - i = e * Ix(t), - o = Ix(n), - u = Lx(Bx((u = bx * o - wx * i) * u + (u = wx * r - xx * o) * u + (u = xx * i - bx * r) * u), xx * r + bx * i + wx * o); - cx += u, - hx += u * (xx + (xx = r)), - px += u * (bx + (bx = i)), - dx += u * (wx + (wx = o)), - ec(xx, bx, wx) - } - function uc() { - tb.point = nc - } - function ac() { - tb.point = sc - } - function cc() { - fc(gx, mx), - tb.point = nc - } - function sc(t, n) { - gx = t, - mx = n, - t *= zx, - n *= zx, - tb.point = fc; - var e = Rx(n); - xx = e * Rx(t), - bx = e * Ix(t), - wx = Ix(n), - ec(xx, bx, wx) - } - function fc(t, n) { - t *= zx, - n *= zx; - var e = Rx(n), - r = e * Rx(t), - i = e * Ix(t), - o = Ix(n), - u = bx * o - wx * i, - a = wx * r - xx * o, - c = xx * i - bx * r, - s = Bx(u * u + a * a + c * c), - f = xx * r + bx * i + wx * o, - l = s && -Sa(f) / s, - h = Lx(s, f); - vx += l * u, - _x += l * a, - yx += l * c, - cx += h, - hx += h * (xx + (xx = r)), - px += h * (bx + (bx = i)), - dx += h * (wx + (wx = o)), - ec(xx, bx, wx) - } - function lc(t, n) { - return [ - t > kx - ? t - Ex - : t < -kx - ? t + Ex - : t, - n - ] - } - function hc(t, n, e) { - return (t %= Ex) - ? n || e - ? rb(dc(t), vc(n, e)) - : dc(t) - : n || e - ? vc(n, e) - : lc - } - function pc(t) { - return function (n, e) { - return n += t, - [ - n > kx - ? n - Ex - : n < -kx - ? n + Ex - : n, - e - ] - } - } - function dc(t) { - var n = pc(t); - return n.invert = pc(-t), - n - } - function vc(t, n) { - function e(t, n) { - var e = Rx(n), - a = Rx(t) * e, - c = Ix(t) * e, - s = Ix(n), - f = s * r + a * i; - return [ - Lx(c * o - f * u, a * r - s * i), - Aa(f * o + c * u) - ] - } - var r = Rx(t), - i = Ix(t), - o = Rx(n), - u = Ix(n); - return e.invert = function (t, n) { - var e = Rx(n), - a = Rx(t) * e, - c = Ix(t) * e, - s = Ix(n), - f = s * o - c * u; - return [ - Lx(c * o + s * u, a * r + f * i), - Aa(f * r - a * i) - ] - }, - e - } - function _c(t, n, e, r, i, o) { - if (e) { - var u = Rx(n), - a = Ix(n), - c = r * e; - null == i - ? (i = n + r * Ex, o = n - c / 2) - : (i = yc(u, i), o = yc(u, o), (r > 0 - ? i < o - : i > o) && (i += r * Ex)); - for (var s, f = i; r > 0 - ? f > o - : f < o; f -= c) - s = Oa([ - u, -a * Rx(f), -a * Ix(f) - ]), - t.point(s[0], s[1]) - } - } - function yc(t, n) { - n = Fa(n), - n[0] -= t, - Ha(n); - var e = Sa(-n[1]); - return ((-n[2] < 0 - ? -e - : e) + Ex - Tx) % Ex - } - function gc(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 mc(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 xc(t, n, e, r) { - function i(i, o) { - return t <= i && i <= e && n <= o && o <= r - } - function o(i, o, a, s) { - var f = 0, - l = 0; - if (null == i || (f = u(i, a)) !== (l = u(o, a)) || c(i, o) < 0 ^ a > 0) { - do - s.point(0 === f || 3 === f - ? t - : e, f > 1 - ? r - : n); - while ((f = (f + a + 4) % 4) !== l) - } else - s.point(o[0], o[1]) - } - function u(r, i) { - return Px(r[0] - t) < Tx - ? i > 0 - ? 0 - : 3 - : Px(r[0] - e) < Tx - ? i > 0 - ? 2 - : 1 - : Px(r[1] - n) < Tx - ? i > 0 - ? 1 - : 0 - : i > 0 - ? 3 - : 2 - } - function a(t, n) { - return c(t.x, n.x) - } - function c(t, n) { - var e = u(t, 1), - r = u(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 (u) { - function c(t, n) { - i(t, n) && k.point(t, n) - } - function s() { - for (var n = 0, e = 0, i = _.length; e < i; ++e) - for (var o, u, a = _[e], c = 1, s = a.length, f = a[0], l = f[0], h = f[1]; c < s; ++c) - o = l, - u = h, - f = a[c], - l = f[0], - h = f[1], - u <= r - ? h > r && (l - o) * (r - u) > (h - u) * (t - o) && ++n - : h <= r && (l - o) * (r - u) < (h - u) * (t - o) && --n; - return n - } - function f() { - k = S, - v = [], - _ = [], - N = !0 - } - function l() { - var t = s(), - n = N && t, - e = (v = Js(v)).length; - (n || e) && (u.polygonStart(), n && (u.lineStart(), o(null, null, 1, u), u.lineEnd()), e && xb(v, a, t, o, u), u.polygonEnd()), - k = u, - v = _ = y = null - } - function h() { - A.point = d, - _ && _.push(y = []), - T = !0, - M = !1, - b = w = NaN - } - function p() { - v && (d(g, m), x && M && S.rejoin(), v.push(S.result())), - A.point = c, - M && k.lineEnd() - } - function d(o, u) { - var a = i(o, u); - if (_ && y.push([o, u]), T) - g = o, - m = u, - x = a, - T = !1, - a && (k.lineStart(), k.point(o, u)); - else if (a && M) - k.point(o, u); - else { - var c = [ - b = Math.max(wb, Math.min(bb, b)), - w = Math.max(wb, Math.min(bb, w)) - ], - s = [ - o = Math.max(wb, Math.min(bb, o)), - u = Math.max(wb, Math.min(bb, u)) - ]; - gb(c, s, t, n, e, r) - ? (M || (k.lineStart(), k.point(c[0], c[1])), k.point(s[0], s[1]), a || k.lineEnd(), N = !1) - : a && (k.lineStart(), k.point(o, u), N = !1) - } - b = o, - w = u, - M = a - } - var v, - _, - y, - g, - m, - x, - b, - w, - M, - T, - N, - k = u, - S = yb(), - A = { - point: c, - lineStart: h, - lineEnd: p, - polygonStart: f, - polygonEnd: l - }; - return A - } - } - function bc() { - Nb.point = Mc, - Nb.lineEnd = wc - } - function wc() { - Nb.point = Nb.lineEnd = Ca - } - function Mc(t, n) { - t *= zx, - n *= zx, - ib = t, - ob = Ix(n), - ub = Rx(n), - Nb.point = Tc - } - function Tc(t, n) { - t *= zx, - n *= zx; - var e = Ix(n), - r = Rx(n), - i = Px(t - ib), - o = Rx(i), - u = Ix(i), - a = r * u, - c = ub * e - ob * r * o, - s = ob * e + ub * r * o; - Tb.add(Lx(Bx(a * a + c * c), s)), - ib = t, - ob = e, - ub = r - } - function Nc(t, n, e) { - var r = Os(t, n - Tx, e).concat(n); - return function (t) { - return r.map(function (n) { - return [t, n] - }) - } - } - function kc(t, n, e) { - var r = Os(t, n - Tx, e).concat(n); - return function (t) { - return r.map(function (n) { - return [n, t] - }) - } - } - function Sc() { - function t() { - return {type: "MultiLineString", coordinates: n()} - } - function n() { - return Os(Ux(o / _) * _, i, _) - .map(h) - .concat(Os(Ux(s / y) * y, c, y).map(p)) - .concat(Os(Ux(r / d) * d, e, d).filter(function (t) { - return Px(t % _) > Tx - }).map(f)) - .concat(Os(Ux(a / v) * v, u, v).filter(function (t) { - return Px(t % y) > Tx - }).map(l)) - } - var e, - r, - i, - o, - u, - a, - c, - s, - f, - l, - h, - p, - d = 10, - v = d, - _ = 90, - y = 360, - g = 2.5; - return t.lines = function () { - return n().map(function (t) { - return {type: "LineString", coordinates: t} - }) - }, - t.outline = function () { - return { - type: "Polygon", - coordinates: [h(o).concat(p(c).slice(1), h(i).reverse().slice(1), p(s).reverse().slice(1))] - } - }, - t.extent = function (n) { - return arguments.length - ? t - .extentMajor(n) - .extentMinor(n) - : t.extentMinor() - }, - t.extentMajor = function (n) { - return arguments.length - ? (o =+ n[0][0], i =+ n[1][0], s =+ n[0][1], c =+ n[1][1], o > i && (n = o, o = i, i = n), s > c && (n = s, s = c, c = n), t.precision(g)) - : [ - [ - o, s - ], - [i, c] - ] - }, - t.extentMinor = function (n) { - return arguments.length - ? (r =+ n[0][0], e =+ n[1][0], a =+ n[0][1], u =+ n[1][1], r > e && (n = r, r = e, e = n), a > u && (n = a, a = u, u = n), t.precision(g)) - : [ - [ - r, a - ], - [e, u] - ] - }, - t.step = function (n) { - return arguments.length - ? t - .stepMajor(n) - .stepMinor(n) - : t.stepMinor() - }, - t.stepMajor = function (n) { - return arguments.length - ? (_ =+ n[0], y =+ n[1], t) - : [_, y] - }, - t.stepMinor = function (n) { - return arguments.length - ? (d =+ n[0], v =+ n[1], t) - : [d, v] - }, - t.precision = function (n) { - return arguments.length - ? (g =+ n, f = Nc(a, u, 90), l = kc(r, e, g), h = Nc(s, c, 90), p = kc(o, i, g), t) - : g - }, - t.extentMajor([ - [ - -180, -90 + Tx - ], - [ - 180, 90 - Tx - ] - ]).extentMinor([ - [ - -180, -80 - Tx - ], - [ - 180, 80 + Tx - ] - ]) - } - function Ac() { - return Sc()() - } - function Ec() { - Lb.point = Cc - } - function Cc(t, n) { - Lb.point = zc, - ab = sb = t, - cb = fb = n - } - function zc(t, n) { - qb.add(fb * t - sb * n), - sb = t, - fb = n - } - function Pc() { - zc(ab, cb) - } - function qc(t, n) { - t < Rb && (Rb = t), - t > Db && (Db = t), - n < Ub && (Ub = n), - n > Ob && (Ob = n) - } - function Lc(t, n) { - Ib += t, - Yb += n, - ++Bb - } - function Rc() { - Zb.point = Uc - } - function Uc(t, n) { - Zb.point = Dc, - Lc(pb = t, db = n) - } - function Dc(t, n) { - var e = t - pb, - r = n - db, - i = Bx(e * e + r * r); - jb += i * (pb + t) / 2, - Hb += i * (db + n) / 2, - Xb += i, - Lc(pb = t, db = n) - } - function Oc() { - Zb.point = Lc - } - function Fc() { - Zb.point = Yc - } - function Ic() { - Bc(lb, hb) - } - function Yc(t, n) { - Zb.point = Bc, - Lc(lb = pb = t, hb = db = n) - } - function Bc(t, n) { - var e = t - pb, - r = n - db, - i = Bx(e * e + r * r); - jb += i * (pb + t) / 2, - Hb += i * (db + n) / 2, - Xb += i, - i = db * t - pb * n, - Vb += i * (pb + t), - Wb += i * (db + n), - $b += 3 * i, - Lc(pb = t, db = n) - } - function jc(t) { - this._context = t - } - function Hc() { - this._string = [] - } - function Xc(t) { - return "m0," + t + "a" + t + "," + t + " 0 1,1 0," + -2 * t + "a" + t + "," + t + " 0 1,1 0," + 2 * t + "z" - } - function Vc(t) { - return t.length > 1 - } - function Wc(t, n) { - return ((t = t.x)[0] < 0 - ? t[1] - Sx - Tx - : Sx - t[1]) - ((n = n.x)[0] < 0 - ? n[1] - Sx - Tx - : Sx - n[1]) - } - function $c(t) { - var n, - e = NaN, - r = NaN, - i = NaN; - return { - lineStart: function () { - t.lineStart(), - n = 1 - }, - point: function (o, u) { - var a = o > 0 - ? kx - : -kx, - c = Px(o - e); - Px(c - kx) < Tx - ? (t.point(e, r = (r + u) / 2 > 0 - ? Sx - : -Sx), t.point(i, r), t.lineEnd(), t.lineStart(), t.point(a, r), t.point(o, r), n = 0) - : i !== a && c >= kx && (Px(e - i) < Tx && (e -= i * Tx), Px(o - a) < Tx && (o -= a * Tx), r = Zc(e, r, o, u), t.point(i, r), t.lineEnd(), t.lineStart(), t.point(a, r), n = 0), - t.point(e = o, r = u), - i = a - }, - lineEnd: function () { - t.lineEnd(), - e = r = NaN - }, - clean: function () { - return 2 - n - } - } - } - function Zc(t, n, e, r) { - var i, - o, - u = Ix(t - e); - return Px(u) > Tx - ? qx((Ix(n) * (o = Rx(r)) * Ix(e) - Ix(r) * (i = Rx(n)) * Ix(t)) / (i * o * u)) - : (n + r) / 2 - } - function Gc(t, n, e, r) { - var i; - if (null == t) - i = e * Sx, - r.point(-kx, i), - r.point(0, i), - r.point(kx, i), - r.point(kx, 0), - r.point(kx, -i), - r.point(0, -i), - r.point(-kx, -i), - r.point(-kx, 0), - r.point(-kx, i); - else if (Px(t[0] - n[0]) > Tx) { - var o = t[0] < n[0] - ? kx - : -kx; - i = e * o / 2, - r.point(-o, i), - r.point(0, i), - r.point(o, i) - } else - r.point(n[0], n[1]) - } - function Jc(t) { - return function (n) { - var e = new Qc; - for (var r in t) - e[r] = t[r]; - return e.stream = n, - e - } - } - function Qc() {} - function Kc(t, n, e) { - var r = n[1][0] - n[0][0], - i = n[1][1] - n[0][1], - o = t.clipExtent && t.clipExtent(); - t - .scale(150) - .translate([0, 0]), - null != o && t.clipExtent(null), - Vx(e, t.stream(Fb)); - var u = Fb.result(), - a = Math.min(r / (u[1][0] - u[0][0]), i / (u[1][1] - u[0][1])), - c =+ n[0][0] + (r - a * (u[1][0] + u[0][0])) / 2, - s =+ n[0][1] + (i - a * (u[1][1] + u[0][1])) / 2; - return null != o && t.clipExtent(o), - t - .scale(150 * a) - .translate([c, s]) - } - function ts(t, n, e) { - return Kc(t, [ - [ - 0, 0 - ], - n - ], e) - } - function ns(t) { - return Jc({ - point: function (n, e) { - n = t(n, e), - this - .stream - .point(n[0], n[1]) - } - }) - } - function es(t, n) { - function e(r, i, o, u, a, c, s, f, l, h, p, d, v, _) { - var y = s - r, - g = f - i, - m = y * y + g * g; - if (m > 4 * n && v--) { - var x = u + h, - b = a + p, - w = c + d, - M = Bx(x * x + b * b + w * w), - T = Aa(w /= M), - N = Px(Px(w) - 1) < Tx || Px(o - l) < Tx - ? (o + l) / 2 - : Lx(b, x), - k = t(N, T), - S = k[0], - A = k[1], - E = S - r, - C = A - i, - z = g * E - y * C; - (z * z / m > n || Px((y * E + g * C) / m - .5) > .3 || u * h + a * p + c * d < iw) && (e(r, i, o, u, a, c, S, A, N, x /= M, b /= M, w, v, _), _.point(S, A), e(S, A, N, x, b, w, s, f, l, h, p, d, v, _)) - } - } - return function (n) { - function r(e, r) { - e = t(e, r), - n.point(e[0], e[1]) - } - function i() { - y = NaN, - w.point = o, - n.lineStart() - } - function o(r, i) { - var o = Fa([r, i]), - u = t(r, i); - e(y, g, _, m, x, b, y = u[0], g = u[1], _ = r, m = o[0], x = o[1], b = o[2], rw, n), - n.point(y, g) - } - function u() { - w.point = r, - n.lineEnd() - } - function a() { - i(), - w.point = c, - w.lineEnd = s - } - function c(t, n) { - o(f = t, n), - l = y, - h = g, - p = m, - d = x, - v = b, - w.point = o - } - function s() { - e(y, g, _, m, x, b, l, h, f, p, d, v, rw, n), - w.lineEnd = u, - u() - } - var f, - l, - h, - p, - d, - v, - _, - y, - g, - m, - x, - b, - w = { - point: r, - lineStart: i, - lineEnd: u, - polygonStart: function () { - n.polygonStart(), - w.lineStart = a - }, - polygonEnd: function () { - n.polygonEnd(), - w.lineStart = i - } - }; - return w - } - } - function rs(t) { - return is(function () { - return t - })() - } - function is(t) { - function n(t) { - return t = f(t[0] * zx, t[1] * zx), - [ - t[0] * _ + a, - c - t[1] * _ - ] - } - function e(t) { - return t = f.invert((t[0] - a) / _, (c - t[1]) / _), - t && [ - t[0] * Cx, - t[1] * Cx - ] - } - function r(t, n) { - return t = u(t, n), - [ - t[0] * _ + a, - c - t[1] * _ - ] - } - function i() { - f = rb(s = hc(b, w, M), u); - var t = u(m, x); - return a = y - t[0] * _, - c = g + t[1] * _, - o() - } - function o() { - return d = v = null, - n - } - var u, - a, - c, - s, - f, - l, - h, - p, - d, - v, - _ = 150, - y = 480, - g = 250, - m = 0, - x = 0, - b = 0, - w = 0, - M = 0, - T = null, - N = tw, - k = null, - S = zb, - A = .5, - E = ow(r, A); - return n.stream = function (t) { - return d && v === t - ? d - : d = uw(N(s, E(S(v = t)))) - }, - n.clipAngle = function (t) { - return arguments.length - ? (N =+ t - ? nw(T = t * zx, 6 * zx) - : (T = null, tw), o()) - : T * Cx - }, - n.clipExtent = function (t) { - return arguments.length - ? (S = null == t - ? (k = l = h = p = null, zb) - : xc(k =+ t[0][0], l =+ t[0][1], h =+ t[1][0], p =+ t[1][1]), o()) - : null == k - ? null - : [ - [ - k, l - ], - [h, p] - ] - }, - n.scale = function (t) { - return arguments.length - ? (_ =+ t, i()) - : _ - }, - n.translate = function (t) { - return arguments.length - ? (y =+ t[0], g =+ t[1], i()) - : [y, g] - }, - n.center = function (t) { - return arguments.length - ? (m = t[0] % 360 * zx, x = t[1] % 360 * zx, i()) - : [ - m * Cx, - x * Cx - ] - }, - n.rotate = function (t) { - return arguments.length - ? (b = t[0] % 360 * zx, w = t[1] % 360 * zx, M = t.length > 2 - ? t[2] % 360 * zx - : 0, i()) - : [ - b * Cx, - w * Cx, - M * Cx - ] - }, - n.precision = function (t) { - return arguments.length - ? (E = ow(r, A = t * t), o()) - : Bx(A) - }, - n.fitExtent = function (t, e) { - return Kc(n, t, e) - }, - n.fitSize = function (t, e) { - return ts(n, t, e) - }, - function () { - return u = t.apply(this, arguments), - n.invert = u.invert && e, - i() - } - } - function os(t) { - var n = 0, - e = kx / 3, - r = is(t), - i = r(n, e); - return i.parallels = function (t) { - return arguments.length - ? r(n = t[0] * zx, e = t[1] * zx) - : [ - n * Cx, - e * Cx - ] - }, - i - } - function us(t) { - function n(t, n) { - return [ - t * e, - Ix(n) / e - ] - } - var e = Rx(t); - return n.invert = function (t, n) { - return [ - t / e, - Aa(n * e) - ] - }, - n - } - function as(t, n) { - function e(t, n) { - var e = Bx(o - 2 * i * Ix(n)) / i; - return [ - e * Ix(t *= i), - u - e * Rx(t) - ] - } - var r = Ix(t), - i = (r + Ix(n)) / 2; - if (Px(i) < Tx) - return us(t); - var o = 1 + r * (2 * i - r), - u = Bx(o) / i; - return e.invert = function (t, n) { - var e = u - n; - return [ - Lx(t, Px(e)) / i * Yx(e), - Aa((o - (t * t + e * e) * i * i) / (2 * i)) - ] - }, - e - } - function cs(t) { - var n = t.length; - return { - point: function (e, r) { - for (var i = -1; ++i < n;) - t[i].point(e, r) - }, - sphere: function () { - for (var e = -1; ++e < n;) - t[e].sphere() - }, - lineStart: function () { - for (var e = -1; ++e < n;) - t[e].lineStart() - }, - lineEnd: function () { - for (var e = -1; ++e < n;) - t[e].lineEnd() - }, - polygonStart: function () { - for (var e = -1; ++e < n;) - t[e].polygonStart() - }, - polygonEnd: function () { - for (var e = -1; ++e < n;) - t[e].polygonEnd() - } - } - } - function ss(t) { - return function (n, e) { - var r = Rx(n), - i = Rx(e), - o = t(r * i); - return [ - o * i * Ix(n), - o * Ix(e) - ] - } - } - function fs(t) { - return function (n, e) { - var r = Bx(n * n + e * e), - i = t(r), - o = Ix(i), - u = Rx(i); - return [ - Lx(n * o, r * u), - Aa(r && e * o / r) - ] - } - } - function ls(t, n) { - return [ - t, - Ox(jx((Sx + n) / 2)) - ] - } - function hs(t) { - var n, - e = rs(t), - r = e.scale, - i = e.translate, - o = e.clipExtent; - return e.scale = function (t) { - return arguments.length - ? (r(t), n && e.clipExtent(null), e) - : r() - }, - e.translate = function (t) { - return arguments.length - ? (i(t), n && e.clipExtent(null), e) - : i() - }, - e.clipExtent = function (t) { - if (!arguments.length) - return n - ? null - : o(); - if (n = null == t) { - var u = kx * r(), - a = i(); - t = [ - [ - a[0] - u, - a[1] - u - ], - [ - a[0] + u, - a[1] + u - ] - ] - } - return o(t), - e - }, - e.clipExtent(null) - } - function ps(t) { - return jx((Sx + t) / 2) - } - function ds(t, n) { - function e(t, n) { - o > 0 - ? n < -Sx + Tx && (n = -Sx + Tx) - : n > Sx - Tx && (n = Sx - Tx); - var e = o / Fx(ps(n), i); - return [ - e * Ix(i * t), - o - e * Rx(i * t) - ] - } - var r = Rx(t), - i = t === n - ? Ix(t) - : Ox(r / Rx(n)) / Ox(ps(n) / ps(t)), - o = r * Fx(ps(t), i) / i; - return i - ? (e.invert = function (t, n) { - var e = o - n, - r = Yx(i) * Bx(t * t + e * e); - return [ - Lx(t, Px(e)) / i * Yx(e), - 2 * qx(Fx(o / r, 1 / i)) - Sx - ] - }, - e) - : ls - } - function vs(t, n) { - return [t, n] - } - function _s(t, n) { - function e(t, n) { - var e = o - n, - r = i * t; - return [ - e * Ix(r), - o - e * Rx(r) - ] - } - var r = Rx(t), - i = t === n - ? Ix(t) - : (r - Rx(n)) / (n - t), - o = r / i + t; - return Px(i) < Tx - ? vs - : (e.invert = function (t, n) { - var e = o - n; - return [ - Lx(t, Px(e)) / i * Yx(e), - o - Yx(i) * Bx(t * t + e * e) - ] - }, - e) - } - function ys(t, n) { - var e = Rx(n), - r = Rx(t) * e; - return [ - e * Ix(t) / r, - Ix(n) / r - ] - } - function gs(t, n, e) { - return 1 === t && 0 === n && 0 === e - ? zb - : Jc({ - point: function (r, i) { - this - .stream - .point(r * t + n, i * t + e) - } - }) - } - function ms(t, n) { - return [ - Rx(n) * Ix(t), - Ix(n) - ] - } - function xs(t, n) { - var e = Rx(n), - r = 1 + Rx(t) * e; - return [ - e * Ix(t) / r, - Ix(n) / r - ] - } - function bs(t, n) { - return [ - Ox(jx((Sx + n) / 2)), -t - ] - } - var ws = "4.3.0", - Ms = function (t, n) { - return t < n - ? -1 - : t > n - ? 1 - : t >= n - ? 0 - : NaN - }, - Ts = function (t) { - return 1 === t.length && (t = n(t)), { - left: function (n, e, r, i) { - for (null == r && (r = 0), null == i && (i = n.length); r < i;) { - var o = r + i >>> 1; - t(n[o], e) < 0 - ? r = o + 1 - : i = o - } - return r - }, - right: function (n, e, r, i) { - for (null == r && (r = 0), null == i && (i = n.length); r < i;) { - var o = r + i >>> 1; - t(n[o], e) > 0 - ? i = o - : r = o + 1 - } - return r - } - } - }, - Ns = Ts(Ms), - ks = Ns.right, - Ss = Ns.left, - As = function (t, n) { - return n < t - ? -1 - : n > t - ? 1 - : n >= t - ? 0 - : NaN - }, - Es = function (t) { - return null === t - ? NaN :+ t - }, - Cs = function (t, n) { - var e, - r, - i = t.length, - o = 0, - u = 0, - a = -1, - c = 0; - if (null == n) - for (; ++a < i;) - isNaN(e = Es(t[a])) || (r = e - o, o += r / ++c, u += r * (e - o)); - else - for (; ++a < i;) - isNaN(e = Es(n(t[a], a, t))) || (r = e - o, o += r / ++c, u += r * (e - o)); - if (c > 1) - return u / (c - 1) - }, - zs = function (t, n) { - var e = Cs(t, n); - return e - ? Math.sqrt(e) - : e - }, - Ps = function (t, n) { - var e, - r, - i, - o = -1, - u = t.length; - if (null == n) { - for (; ++o < u;) - if (null != (r = t[o]) && r >= r) { - e = i = r; - break - } - for (; ++o < u;) - null != (r = t[o]) && (e > r && (e = r), i < r && (i = r)) - } else { - for (; ++o < u;) - if (null != (r = n(t[o], o, t)) && r >= r) { - e = i = r; - break - } - for (; ++o < u;) - null != (r = n(t[o], o, t)) && (e > r && (e = r), i < r && (i = r)) - } - return [e, i] - }, - qs = Array.prototype, - Ls = qs.slice, - Rs = qs.map, - Us = function (t) { - return function () { - return t - } - }, - Ds = function (t) { - return t - }, - Os = function (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 - }, - Fs = Math.sqrt(50), - Is = Math.sqrt(10), - Ys = Math.sqrt(2), - Bs = function (t, n, r) { - var i = e(t, n, r); - return Os(Math.ceil(t / i) * i, Math.floor(n / i) * i + i / 2, i) - }, - js = function (t) { - return Math.ceil(Math.log(t.length) / Math.LN2) + 1 - }, - Hs = function () { - function t(t) { - var i, - o, - u = t.length, - a = new Array(u); - for (i = 0; i < u; ++i) - a[i] = n(t[i], i, t); - var c = e(a), - s = c[0], - f = c[1], - l = r(a, s, f); - Array.isArray(l) || (l = Bs(s, f, l)); - for (var h = l.length; l[0] <= s;) - l.shift(), - --h; - for (; l[h - 1] >= f;) - l.pop(), - --h; - var p, - d = new Array(h + 1); - for (i = 0; i <= h; ++i) - p = d[i] = [], - p.x0 = i > 0 - ? l[i - 1] - : s, - p.x1 = i < h - ? l[i] - : f; - for (i = 0; i < u; ++i) - o = a[i], - s <= o && o <= f && d[ks(l, o, 0, h)].push(t[i]); - return d - } - var n = Ds, - e = Ps, - r = js; - return t.value = function (e) { - return arguments.length - ? (n = "function" == typeof e - ? e - : Us(e), t) - : n - }, - t.domain = function (n) { - return arguments.length - ? (e = "function" == typeof n - ? n - : Us([n[0], n[1]]), t) - : e - }, - t.thresholds = function (n) { - return arguments.length - ? (r = "function" == typeof n - ? n - : Us(Array.isArray(n) - ? Ls.call(n) - : n), t) - : r - }, - t - }, - Xs = function (t, n, e) { - if (null == e && (e = Es), r = t.length) { - if ((n =+ 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, - o = Math.floor(i), - u =+ e(t[o], o, t), - a =+ e(t[o + 1], o + 1, t); - return u + (a - u) * (i - o) - } - }, - Vs = function (t, n, e) { - return t = Rs - .call(t, Es) - .sort(Ms), - Math.ceil((e - n) / (2 * (Xs(t, .75) - Xs(t, .25)) * Math.pow(t.length, -1 / 3))) - }, - Ws = function (t, n, e) { - return Math.ceil((e - n) / (3.5 * zs(t) * Math.pow(t.length, -1 / 3))) - }, - $s = function (t, n) { - var e, - r, - i = -1, - o = t.length; - if (null == n) { - for (; ++i < o;) - if (null != (r = t[i]) && r >= r) { - e = r; - break - } - for (; ++i < o;) - null != (r = t[i]) && r > e && (e = r) - } else { - for (; ++i < o;) - if (null != (r = n(t[i], i, t)) && r >= r) { - e = r; - break - } - for (; ++i < o;) - null != (r = n(t[i], i, t)) && r > e && (e = r) - } - return e - }, - Zs = function (t, n) { - var e, - r = 0, - i = t.length, - o = -1, - u = i; - if (null == n) - for (; ++o < i;) - isNaN(e = Es(t[o])) - ? --u - : r += e; - else - for (; ++o < i;) - isNaN(e = Es(n(t[o], o, t))) - ? --u - : r += e; - if (u) - return r / u - }, - Gs = function (t, n) { - var e, - r = [], - i = t.length, - o = -1; - if (null == n) - for (; ++o < i;) - isNaN(e = Es(t[o])) || r.push(e); - else - for (; ++o < i;) - isNaN(e = Es(n(t[o], o, t))) || r.push(e); - return Xs(r.sort(Ms), .5) - }, - Js = function (t) { - for (var n, e, r, i = t.length, o = -1, u = 0; ++o < i;) - u += t[o].length; - for (e = new Array(u); --i >= 0;) - for (r = t[i], n = r.length; --n >= 0;) - e[--u] = r[n]; - return e - }, - Qs = function (t, n) { - var e, - r, - i = -1, - o = t.length; - if (null == n) { - for (; ++i < o;) - if (null != (r = t[i]) && r >= r) { - e = r; - break - } - for (; ++i < o;) - null != (r = t[i]) && e > r && (e = r) - } else { - for (; ++i < o;) - if (null != (r = n(t[i], i, t)) && r >= r) { - e = r; - break - } - for (; ++i < o;) - null != (r = n(t[i], i, t)) && e > r && (e = r) - } - return e - }, - Ks = function (t) { - for (var n = 0, e = t.length - 1, r = t[0], i = new Array(e < 0 - ? 0 - : e); n < e;) - i[n] = [ - r, r = t[++n] - ]; - return i - }, - tf = function (t, n) { - for (var e = n.length, r = new Array(e); e--;) - r[e] = t[n[e]]; - return r - }, - nf = function (t, n) { - if (e = t.length) { - var e, - r, - i = 0, - o = 0, - u = t[o]; - for (n || (n = Ms); ++i < e;) - (n(r = t[i], u) < 0 || 0 !== n(u, u)) && (u = r, o = i); - return 0 === n(u, u) - ? o - : void 0 - } - }, - ef = function (t, n, e) { - for (var r, i, o = (null == e - ? t.length - : e) - (n = null == n - ? 0 :+ n); o;) - i = Math.random() * o-- | 0, - r = t[o + n], - t[o + n] = t[i + n], - t[i + n] = r; - return t - }, - rf = function (t, n) { - var e, - r = 0, - i = t.length, - o = -1; - if (null == n) - for (; ++o < i;) - (e =+ t[o]) && (r += e); - else - for (; ++o < i;) - (e =+ n(t[o], o, t)) && (r += e); - return r - }, - of = function (t) { - if (!(o = t.length)) - return []; - for (var n = -1, e = Qs(t, r), i = new Array(e); ++n < e;) - for (var o, u = -1, a = i[n] = new Array(o); ++u < o;) - a[u] = t[u][n]; - return i - }, - uf = function () { - return of(arguments) - }, - af = "$"; - i.prototype = o.prototype = { - constructor: i, - has: function (t) { - return af + t in this - }, - get: function (t) { - return this[af + t] - }, - set: function (t, n) { - return this[af + t] = n, - this - }, - remove: function (t) { - var n = af + t; - return n in this && delete this[n] - }, - clear: function () { - for (var t in this) - t[0] === af && delete this[t] - }, - keys: function () { - var t = []; - for (var n in this) - n[0] === af && t.push(n.slice(1)); - return t - }, - values: function () { - var t = []; - for (var n in this) - n[0] === af && t.push(this[n]); - return t - }, - entries: function () { - var t = []; - for (var n in this) - n[0] === af && t.push({ - key: n.slice(1), - value: this[n] - }); - return t - }, - size: function () { - var t = 0; - for (var n in this) - n[0] === af && ++t; - return t - }, - empty: function () { - for (var t in this) - if (t[0] === af) - return !1; - return !0 - }, - each: function (t) { - for (var n in this) - n[0] === af && t(this[n], n.slice(1), this) - } - }; - var cf = function () { - function t(n, i, u, a) { - if (i >= f.length) - return null != r - ? r(n) - : null != e - ? n.sort(e) - : n; - for (var c, s, l, h = -1, p = n.length, d = f[i++], v = o(), _ = u(); ++h < p;) - (l = v.get(c = d(s = n[h]) + "")) - ? l.push(s) - : v.set(c, [s]); - return v.each(function (n, e) { - a(_, e, t(n, i, u, a)) - }), - _ - } - function n(t, e) { - if (++e > f.length) - return t; - var i, - o = l[e - 1]; - return null != r && e >= f.length - ? i = t.entries() - : (i = [], t.each(function (t, r) { - i.push({ - key: r, - values: n(t, e) - }) - })), - null != o - ? i.sort(function (t, n) { - return o(t.key, n.key) - }) - : i - } - var e, - r, - i, - f = [], - l = []; - return i = { - object: function (n) { - return t(n, 0, u, a) - }, - map: function (n) { - return t(n, 0, c, s) - }, - entries: function (e) { - return n(t(e, 0, c, s), 0) - }, - key: function (t) { - return f.push(t), - i - }, - sortKeys: function (t) { - return l[f.length - 1] = t, - i - }, - sortValues: function (t) { - return e = t, - i - }, - rollup: function (t) { - return r = t, - i - } - } - }, - sf = o.prototype; - f.prototype = l.prototype = { - constructor: f, - has: sf.has, - add: function (t) { - return t += "", - this[af + t] = t, - this - }, - remove: sf.remove, - clear: sf.clear, - values: sf.keys, - size: sf.size, - empty: sf.empty, - each: sf.each - }; - var ff = function (t) { - var n = []; - for (var e in t) - n.push(e); - return n - }, - lf = function (t) { - var n = []; - for (var e in t) - n.push(t[e]); - return n - }, - hf = function (t) { - var n = []; - for (var e in t) - n.push({key: e, value: t[e]}); - return n - }, - pf = function (t, n) { - return t = null == t - ? 0 :+ t, - n = null == n - ? 1 :+ n, - 1 === arguments.length - ? (n = t, t = 0) - : n -= t, - function () { - return Math.random() * n + t - } - }, - df = function (t, n) { - var e, - r; - return t = null == t - ? 0 :+ t, - n = null == n - ? 1 :+ n, - function () { - var i; - if (null != e) - i = e, - e = null; - else - do - e = 2 * Math.random() - 1, - i = 2 * Math.random() - 1, - r = e * e + i * i; - while (!r || r > 1) - ; - return t + n * i * Math.sqrt(-2 * Math.log(r) / r) - } - }, - vf = function () { - var t = df.apply(this, arguments); - return function () { - return Math.exp(t()) - } - }, - _f = function (t) { - return function () { - for (var n = 0, e = 0; e < t; ++e) - n += Math.random(); - return n - } - }, - yf = function (t) { - var n = _f(t); - return function () { - return n() / t - } - }, - gf = function (t) { - return function () { - return -Math.log(1 - Math.random()) / t - } - }, - mf = 3, - xf = function t(n) { - function e(t) { - return Math.pow(t, n) - } - return n =+ n, - e.exponent = t, - e - }(mf), - bf = function t(n) { - function e(t) { - return 1 - Math.pow(1 - t, n) - } - return n =+ n, - e.exponent = t, - e - }(mf), - wf = 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 - }(mf), - Mf = Math.PI, - Tf = Mf / 2, - Nf = 4 / 11, - kf = 6 / 11, - Sf = 8 / 11, - Af = .75, - Ef = 9 / 11, - Cf = 10 / 11, - zf = .9375, - Pf = 21 / 22, - qf = 63 / 64, - Lf = 1 / Nf / Nf, - Rf = 1.70158, - Uf = function t(n) { - function e(t) { - return t * t * ((n + 1) * t - n) - } - return n =+ n, - e.overshoot = t, - e - }(Rf), - Df = function t(n) { - function e(t) { - return-- t * t * ((n + 1) * t + n) + 1 - } - return n =+ n, - e.overshoot = t, - e - }(Rf), - Of = 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 - }(Rf), - Ff = 2 * Math.PI, - If = 1, - Yf = .3, - Bf = function t(n, e) { - function r(t) { - return n * Math.pow(2, 10 * --t) * Math.sin((i - t) / e) - } - var i = Math.asin(1 / (n = Math.max(1, n))) * (e /= Ff); - return r.amplitude = function (n) { - return t(n, e * Ff) - }, - r.period = function (e) { - return t(n, e) - }, - r - }(If, Yf), - jf = function t(n, e) { - function r(t) { - return 1 - n * Math.pow(2, -10 * (t =+ t)) * Math.sin((t + i) / e) - } - var i = Math.asin(1 / (n = Math.max(1, n))) * (e /= Ff); - return r.amplitude = function (n) { - return t(n, e * Ff) - }, - r.period = function (e) { - return t(n, e) - }, - r - }(If, Yf), - Hf = function t(n, e) { - function r(t) { - return ((t = 2 * t - 1) < 0 - ? n * Math.pow(2, 10 * t) * Math.sin((i - t) / e) - : 2 - n * Math.pow(2, -10 * t) * Math.sin((i + t) / e)) / 2 - } - var i = Math.asin(1 / (n = Math.max(1, n))) * (e /= Ff); - return r.amplitude = function (n) { - return t(n, e * Ff) - }, - r.period = function (e) { - return t(n, e) - }, - r - }(If, Yf), - Xf = 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 - }, - Vf = function (t) { - for (var n, e, r = -1, i = t.length, o = 0, u = 0, a = t[i - 1], c = 0; ++r < i;) - n = a, - a = t[r], - c += e = n[0] * a[1] - a[0] * n[1], - o += (n[0] + a[0]) * e, - u += (n[1] + a[1]) * e; - return c *= 3, - [ - o / c, - u / c - ] - }, - Wf = function (t, n, e) { - return (n[0] - t[0]) * (e[1] - t[1]) - (n[1] - t[1]) * (e[0] - t[0]) - }, - $f = 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(z), n = 0; n < e; ++n) - i[n] = [ - r[n][0], -r[n][1] - ]; - var o = P(r), - u = P(i), - a = u[0] === o[0], - c = u[u.length - 1] === o[o.length - 1], - s = []; - for (n = o.length - 1; n >= 0; --n) - s.push(t[r[o[n]][2]]); - for (n =+ a; n < u.length - c; ++n) - s.push(t[r[u[n]][2]]); - return s - }, - Zf = function (t, n) { - for (var e, r, i = t.length, o = t[i - 1], u = n[0], a = n[1], c = o[0], s = o[1], f = !1, l = 0; l < i; ++l) - o = t[l], - e = o[0], - r = o[1], - r > a != s > a && u < (c - e) * (a - r) / (s - r) + e && (f = !f), - c = e, - s = r; - return f - }, - Gf = function (t) { - for (var n, e, r = -1, i = t.length, o = t[i - 1], u = o[0], a = o[1], c = 0; ++r < i;) - n = u, - e = a, - o = t[r], - u = o[0], - a = o[1], - n -= u, - e -= a, - c += Math.sqrt(n * n + e * e); - return c - }, - Jf = Math.PI, - Qf = 2 * Jf, - Kf = 1e-6, - tl = Qf - Kf; - q.prototype = L.prototype = { - constructor: q, - moveTo: function (t, n) { - this - ._ - .push("M", this._x0 = this._x1 =+ t, ",", this._y0 = this._y1 =+ n) - }, - closePath: function () { - null !== this._x1 && (this._x1 = this._x0, this._y1 = this._y0, this._.push("Z")) - }, - lineTo: function (t, n) { - this - ._ - .push("L", this._x1 =+ t, ",", this._y1 =+ n) - }, - quadraticCurveTo: function (t, n, e, r) { - this - ._ - .push("Q", + t, ",", + n, ",", this._x1 =+ e, ",", this._y1 =+ r) - }, - bezierCurveTo: function (t, n, e, r, i, o) { - this - ._ - .push("C", + t, ",", + n, ",", + e, ",", + r, ",", this._x1 =+ i, ",", this._y1 =+ o) - }, - arcTo: function (t, n, e, r, i) { - t =+ t, - n =+ n, - e =+ e, - r =+ r, - i =+ i; - var o = this._x1, - u = this._y1, - a = e - t, - c = r - n, - s = o - t, - f = u - n, - l = s * s + f * f; - if (i < 0) - throw new Error("negative radius: " + i); - if (null === this._x1) - this._.push("M", this._x1 = t, ",", this._y1 = n); - else if (l > Kf) - if (Math.abs(f * a - c * s) > Kf && i) { - var h = e - o, - p = r - u, - d = a * a + c * c, - v = h * h + p * p, - _ = Math.sqrt(d), - y = Math.sqrt(l), - g = i * Math.tan((Jf - Math.acos((d + l - v) / (2 * _ * y))) / 2), - m = g / y, - x = g / _; - Math.abs(m - 1) > Kf && this - ._ - .push("L", t + m * s, ",", n + m * f), - this - ._ - .push("A", i, ",", i, ",0,0,", + (f * h > s * p), ",", this._x1 = t + x * a, ",", this._y1 = n + x * c) - } else - this - ._ - .push("L", this._x1 = t, ",", this._y1 = n); - else ; - } - , - arc: function (t, n, e, r, i, o) { - t =+ t, - n =+ n, - e =+ e; - var u = e * Math.cos(r), - a = e * Math.sin(r), - c = t + u, - s = n + a, - f = 1 ^ o, - l = o - ? r - i - : i - r; - if (e < 0) - throw new Error("negative radius: " + e); - null === this._x1 - ? this - ._ - .push("M", c, ",", s) - : (Math.abs(this._x1 - c) > Kf || Math.abs(this._y1 - s) > Kf) && this - ._ - .push("L", c, ",", s), - e && (l > tl - ? this._.push("A", e, ",", e, ",0,1,", f, ",", t - u, ",", n - a, "A", e, ",", e, ",0,1,", f, ",", this._x1 = c, ",", this._y1 = s) - : (l < 0 && (l = l % Qf + Qf), this._.push("A", e, ",", e, ",0,", + (l >= Jf), ",", f, ",", this._x1 = t + e * Math.cos(i), ",", this._y1 = n + e * Math.sin(i)))) - }, - rect: function (t, n, e, r) { - this - ._ - .push("M", this._x0 = this._x1 =+ t, ",", this._y0 = this._y1 =+ n, "h", + e, "v", + r, "h", -e, "Z") - }, - toString: function () { - return this - ._ - .join("") - } - }; - var nl = function (t) { - var n =+ this - ._x - .call(null, t), - e =+ this - ._y - .call(null, t); - return R(this.cover(n, e), n, e, t) - }, - el = 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 { - if (!(e > t || t > i || r > n || n > o)) - return this; - var u, - a, - c = i - e, - s = this._root; - switch (a = (n < (r + o) / 2) << 1 | t < (e + i) / 2) { - case 0: - do - u = new Array(4), - u[a] = s, - s = u; - while (c *= 2, i = e + c, o = r + c, t > i || n > o); - break; - case 1: - do - u = new Array(4), - u[a] = s, - s = u; - while (c *= 2, e = i - c, o = r + c, e > t || n > o); - break; - case 2: - do - u = new Array(4), - u[a] = s, - s = u; - while (c *= 2, i = e + c, r = o - c, t > i || r > n); - break; - case 3: - do - u = new Array(4), - u[a] = s, - s = u; - while (c *= 2, e = i - c, r = o - c, e > t || r > n) - } - this._root && this._root.length && (this._root = s) - } - return this._x0 = e, - this._y0 = r, - this._x1 = i, - this._y1 = o, - this - }, - rl = function () { - var t = []; - return this.visit(function (n) { - if (!n.length) - do - t.push(n.data); - while (n = n.next) - } - ), - t - }, - il = 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] - ] - }, - ol = function (t, n, e, r, i) { - this.node = t, - this.x0 = n, - this.y0 = e, - this.x1 = r, - this.y1 = i - }, - ul = function (t, n, e) { - var r, - i, - o, - u, - a, - c, - s, - f = this._x0, - l = this._y0, - h = this._x1, - p = this._y1, - d = [], - v = this._root; - for (v && d.push(new ol(v, f, l, h, p)), null == e - ? e = 1 / 0 - : (f = t - e, l = n - e, h = t + e, p = n + e, e *= e); c = d.pop();) - if (!(!(v = c.node) || (i = c.x0) > h || (o = c.y0) > p || (u = c.x1) < f || (a = c.y1) < l)) - if (v.length) { - var _ = (i + u) / 2, - y = (o + a) / 2; - d.push(new ol(v[3], _, y, u, a), new ol(v[2], i, y, _, a), new ol(v[1], _, o, u, y), new ol(v[0], i, o, _, y)), - (s = (n >= y) << 1 | t >= _) && (c = d[d.length - 1], d[d.length - 1] = d[d.length - 1 - s], d[d.length - 1 - s] = c) - } - else { - var g = t - + this - ._x - .call(null, v.data), - m = n - + this - ._y - .call(null, v.data), - x = g * g + m * m; - if (x < e) { - var b = Math.sqrt(e = x); - f = t - b, - l = n - b, - h = t + b, - p = n + b, - r = v.data - } - } - return r - }, - al = function (t) { - if (isNaN(o =+ this._x.call(null, t)) || isNaN(u =+ this._y.call(null, t))) - return this; - var n, - e, - r, - i, - o, - u, - a, - c, - s, - f, - l, - h, - p = this._root, - d = this._x0, - v = this._y0, - _ = this._x1, - y = this._y1; - if (!p) - return this; - if (p.length) - for (;;) { - if ((s = o >= (a = (d + _) / 2)) - ? d = a - : _ = a, (f = u >= (c = (v + y) / 2)) - ? v = c - : y = c, n = p, !(p = p[l = f << 1 | s])) - return this; - if (!p.length) - break; - - (n[l + 1 & 3] || n[l + 2 & 3] || n[l + 3 & 3]) && (e = n, h = l) - } - for (; p.data !== t;) - if (r = p, !(p = p.next)) - return this; - return (i = p.next) && delete p.next, - r - ? (i - ? r.next = i - : delete r.next, this) - : n - ? (i - ? n[l] = i - : delete n[l], (p = n[0] || n[1] || n[2] || n[3]) && p === (n[3] || n[2] || n[1] || n[0]) && !p.length && (e - ? e[h] = p - : this._root = p), this) - : (this._root = i, this) - }, - cl = function () { - return this._root - }, - sl = function () { - var t = 0; - return this.visit(function (n) { - if (!n.length) - do - ++t; - while (n = n.next) - } - ), - t - }, - fl = function (t) { - var n, - e, - r, - i, - o, - u, - a = [], - c = this._root; - for (c && a.push(new ol(c, this._x0, this._y0, this._x1, this._y1)); n = a.pop();) - if (!t(c = n.node, r = n.x0, i = n.y0, o = n.x1, u = n.y1) && c.length) { - var s = (r + o) / 2, - f = (i + u) / 2; - (e = c[3]) && a.push(new ol(e, s, f, o, u)), - (e = c[2]) && a.push(new ol(e, r, f, s, u)), - (e = c[1]) && a.push(new ol(e, s, i, o, f)), - (e = c[0]) && a.push(new ol(e, r, i, s, f)) - } - return this - }, - ll = function (t) { - var n, - e = [], - r = []; - for (this._root && e.push(new ol(this._root, this._x0, this._y0, this._x1, this._y1)); n = e.pop();) { - var i = n.node; - if (i.length) { - var o, - u = n.x0, - a = n.y0, - c = n.x1, - s = n.y1, - f = (u + c) / 2, - l = (a + s) / 2; - (o = i[0]) && e.push(new ol(o, u, a, f, l)), - (o = i[1]) && e.push(new ol(o, f, a, c, l)), - (o = i[2]) && e.push(new ol(o, u, l, f, s)), - (o = i[3]) && e.push(new ol(o, f, l, c, s)) - } - r.push(n) - } - for (; n = r.pop();) - t(n.node, n.x0, n.y0, n.x1, n.y1); - return this - }, - hl = function (t) { - return arguments.length - ? (this._x = t, this) - : this._x - }, - pl = function (t) { - return arguments.length - ? (this._y = t, this) - : this._y - }, - dl = I.prototype = Y.prototype; - dl.copy = function () { - var t, - n, - e = new Y(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 = B(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] = B(n)); - return e - }, - dl.add = nl, - dl.addAll = U, - dl.cover = el, - dl.data = rl, - dl.extent = il, - dl.find = ul, - dl.remove = al, - dl.removeAll = D, - dl.root = cl, - dl.size = sl, - dl.visit = fl, - dl.visitAfter = ll, - dl.x = hl, - dl.y = pl; - var vl = [].slice, - _l = {}; - j.prototype = Z.prototype = { - constructor: j, - defer: function (t) { - if ("function" != typeof t || this._call) - throw new Error; - if (null != this._error) - return this; - var n = vl.call(arguments, 1); - return n.push(t), - ++this._waiting, - this - ._tasks - .push(n), - H(this), - this - }, - abort: function () { - return null == this._error && W(this, new Error("abort")), - this - }, - await: function (t) { - if ("function" != typeof t || this._call) - throw new Error; - return this._call = function (n, e) { - t.apply(null, [n].concat(e)) - }, - $(this), - this - }, - awaitAll: function (t) { - if ("function" != typeof t || this._call) - throw new Error; - return this._call = t, - $(this), - this - } - }; - var yl = function (t) { - return function () { - return t - } - }, - gl = 1e-12, - ml = Math.PI, - xl = ml / 2, - bl = 2 * ml, - wl = function () { - function t() { - var t, - s, - f =+ n.apply(this, arguments), - l =+ e.apply(this, arguments), - h = o.apply(this, arguments) - xl, - p = u.apply(this, arguments) - xl, - d = Math.abs(p - h), - v = p > h; - if (c || (c = t = L()), l < f && (s = l, l = f, f = s), l > gl) - if (d > bl - gl) - c.moveTo(l * Math.cos(h), l * Math.sin(h)), - c.arc(0, 0, l, h, p, !v), - f > gl && (c.moveTo(f * Math.cos(p), f * Math.sin(p)), c.arc(0, 0, f, p, h, v)); - else { - var _, - y, - g = h, - m = p, - x = h, - b = p, - w = d, - M = d, - T = a.apply(this, arguments) / 2, - N = T > gl && (i ?+ i.apply(this, arguments) : Math.sqrt(f * f + l * l)), - k = Math.min(Math.abs(l - f) / 2, + r.apply(this, arguments)), - S = k, - A = k; - if (N > gl) { - var E = nt(N / f * Math.sin(T)), - C = nt(N / l * Math.sin(T)); - (w -= 2 * E) > gl - ? (E *= v - ? 1 - : -1, x += E, b -= E) - : (w = 0, x = b = (h + p) / 2), - (M -= 2 * C) > gl - ? (C *= v - ? 1 - : -1, g += C, m -= C) - : (M = 0, g = m = (h + p) / 2) - } - var z = l * Math.cos(g), - P = l * Math.sin(g), - q = f * Math.cos(b), - R = f * Math.sin(b); - if (k > gl) { - var U = l * Math.cos(m), - D = l * Math.sin(m), - O = f * Math.cos(x), - F = f * Math.sin(x); - if (d < ml) { - var I = w > gl - ? et(z, P, O, F, U, D, q, R) - : [ - q, R - ], - Y = z - I[0], - B = P - I[1], - j = U - I[0], - H = D - I[1], - X = 1 / Math.sin(Math.acos((Y * j + B * H) / (Math.sqrt(Y * Y + B * B) * Math.sqrt(j * j + H * H))) / 2), - V = Math.sqrt(I[0] * I[0] + I[1] * I[1]); - S = Math.min(k, (f - V) / (X - 1)), - A = Math.min(k, (l - V) / (X + 1)) - } - } - M > gl - ? A > gl - ? (_ = rt(O, F, z, P, l, A, v), y = rt(U, D, q, R, l, A, v), c.moveTo(_.cx + _.x01, _.cy + _.y01), A < k - ? c.arc(_.cx, _.cy, A, Math.atan2(_.y01, _.x01), Math.atan2(y.y01, y.x01), !v) - : (c.arc(_.cx, _.cy, A, Math.atan2(_.y01, _.x01), Math.atan2(_.y11, _.x11), !v), c.arc(0, 0, l, Math.atan2(_.cy + _.y11, _.cx + _.x11), Math.atan2(y.cy + y.y11, y.cx + y.x11), !v), c.arc(y.cx, y.cy, A, Math.atan2(y.y11, y.x11), Math.atan2(y.y01, y.x01), !v))) - : (c.moveTo(z, P), c.arc(0, 0, l, g, m, !v)) - : c.moveTo(z, P), - f > gl && w > gl - ? S > gl - ? (_ = rt(q, R, U, D, f, -S, v), y = rt(z, P, O, F, f, -S, v), c.lineTo(_.cx + _.x01, _.cy + _.y01), S < k - ? c.arc(_.cx, _.cy, S, Math.atan2(_.y01, _.x01), Math.atan2(y.y01, y.x01), !v) - : (c.arc(_.cx, _.cy, S, Math.atan2(_.y01, _.x01), Math.atan2(_.y11, _.x11), !v), c.arc(0, 0, f, Math.atan2(_.cy + _.y11, _.cx + _.x11), Math.atan2(y.cy + y.y11, y.cx + y.x11), v), c.arc(y.cx, y.cy, S, Math.atan2(y.y11, y.x11), Math.atan2(y.y01, y.x01), !v))) - : c.arc(0, 0, f, b, x, v) - : c.lineTo(q, R) - } - else - c.moveTo(0, 0); - if (c.closePath(), t) - return c = null, - t + "" || null - } - var n = G, - e = J, - r = yl(0), - i = null, - o = Q, - u = K, - a = tt, - c = null; - return t.centroid = function () { - var t = (+ n.apply(this, arguments) + + e.apply(this, arguments)) / 2, - r = (+ o.apply(this, arguments) + + u.apply(this, arguments)) / 2 - ml / 2; - return [ - Math.cos(r) * t, - Math.sin(r) * t - ] - }, - t.innerRadius = function (e) { - return arguments.length - ? (n = "function" == typeof e - ? e - : yl(+ e), t) - : n - }, - t.outerRadius = function (n) { - return arguments.length - ? (e = "function" == typeof n - ? n - : yl(+ n), t) - : e - }, - t.cornerRadius = function (n) { - return arguments.length - ? (r = "function" == typeof n - ? n - : yl(+ n), t) - : r - }, - t.padRadius = function (n) { - return arguments.length - ? (i = null == n - ? null - : "function" == typeof n - ? n - : yl(+ n), t) - : i - }, - t.startAngle = function (n) { - return arguments.length - ? (o = "function" == typeof n - ? n - : yl(+ n), t) - : o - }, - t.endAngle = function (n) { - return arguments.length - ? (u = "function" == typeof n - ? n - : yl(+ n), t) - : u - }, - t.padAngle = function (n) { - return arguments.length - ? (a = "function" == typeof n - ? n - : yl(+ n), t) - : a - }, - t.context = function (n) { - return arguments.length - ? (c = null == n - ? null - : n, t) - : c - }, - t - }; - it.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 Ml = function (t) { - return new it(t) - }, - Tl = function () { - function t(t) { - var a, - c, - s, - f = t.length, - l = !1; - for (null == i && (u = o(s = L())), a = 0; a <= f; ++a) - !(a < f && r(c = t[a], a, t)) === l && ((l = !l) - ? u.lineStart() - : u.lineEnd()), - l && u.point(+ n(c, a, t), + e(c, a, t)); - if (s) - return u = null, - s + "" || null - } - var n = ot, - e = ut, - r = yl(!0), - i = null, - o = Ml, - u = null; - return t.x = function (e) { - return arguments.length - ? (n = "function" == typeof e - ? e - : yl(+ e), t) - : n - }, - t.y = function (n) { - return arguments.length - ? (e = "function" == typeof n - ? n - : yl(+ n), t) - : e - }, - t.defined = function (n) { - return arguments.length - ? (r = "function" == typeof n - ? n - : yl(!!n), t) - : r - }, - t.curve = function (n) { - return arguments.length - ? (o = n, null != i && (u = o(i)), t) - : o - }, - t.context = function (n) { - return arguments.length - ? (null == n - ? i = u = null - : u = o(i = n), t) - : i - }, - t - }, - Nl = function () { - function t(t) { - var n, - f, - l, - h, - p, - d = t.length, - v = !1, - _ = new Array(d), - y = new Array(d); - for (null == a && (s = c(p = L())), n = 0; n <= d; ++n) { - if (!(n < d && u(h = t[n], n, t)) === v) - if (v = !v) - f = n, - s.areaStart(), - s.lineStart(); - else { - for (s.lineEnd(), s.lineStart(), l = n - 1; l >= f; --l) - s.point(_[l], y[l]); - s.lineEnd(), - s.areaEnd() - } - v && (_[n] =+ e(h, n, t), y[n] =+ i(h, n, t), s.point(r ?+ r(h, n, t) : _[n], o ?+ o(h, n, t) : y[n])) - } - if (p) - return s = null, - p + "" || null - } - function n() { - return Tl() - .defined(u) - .curve(c) - .context(a) - } - var e = ot, - r = null, - i = yl(0), - o = ut, - u = yl(!0), - a = null, - c = Ml, - s = null; - return t.x = function (n) { - return arguments.length - ? (e = "function" == typeof n - ? n - : yl(+ n), r = null, t) - : e - }, - t.x0 = function (n) { - return arguments.length - ? (e = "function" == typeof n - ? n - : yl(+ n), t) - : e - }, - t.x1 = function (n) { - return arguments.length - ? (r = null == n - ? null - : "function" == typeof n - ? n - : yl(+ n), t) - : r - }, - t.y = function (n) { - return arguments.length - ? (i = "function" == typeof n - ? n - : yl(+ n), o = null, t) - : i - }, - t.y0 = function (n) { - return arguments.length - ? (i = "function" == typeof n - ? n - : yl(+ n), t) - : i - }, - t.y1 = function (n) { - return arguments.length - ? (o = null == n - ? null - : "function" == typeof n - ? n - : yl(+ n), t) - : o - }, - t.lineX0 = t.lineY0 = function () { - return n() - .x(e) - .y(i) - }, - t.lineY1 = function () { - return n() - .x(e) - .y(o) - }, - t.lineX1 = function () { - return n() - .x(r) - .y(i) - }, - t.defined = function (n) { - return arguments.length - ? (u = "function" == typeof n - ? n - : yl(!!n), t) - : u - }, - t.curve = function (n) { - return arguments.length - ? (c = n, null != a && (s = c(a)), t) - : c - }, - t.context = function (n) { - return arguments.length - ? (null == n - ? a = s = null - : s = c(a = n), t) - : a - }, - t - }, - kl = function (t, n) { - return n < t - ? -1 - : n > t - ? 1 - : n >= t - ? 0 - : NaN - }, - Sl = function (t) { - return t - }, - Al = function () { - function t(t) { - var a, - c, - s, - f, - l, - h = t.length, - p = 0, - d = new Array(h), - v = new Array(h), - _ =+ i.apply(this, arguments), - y = Math.min(bl, Math.max(-bl, o.apply(this, arguments) - _)), - g = Math.min(Math.abs(y) / h, u.apply(this, arguments)), - m = g * (y < 0 - ? -1 - : 1); - for (a = 0; a < h; ++a) - (l = v[d[a] = a] =+ n(t[a], a, t)) > 0 && (p += l); - for (null != e - ? d.sort(function (t, n) { - return e(v[t], v[n]) - }) - : null != r && d.sort(function (n, e) { - return r(t[n], t[e]) - }), a = 0, s = p - ? (y - h * m) / p - : 0; a < h; ++a, _ = f) - c = d[a], - l = v[c], - f = _ + (l > 0 - ? l * s - : 0) + m, - v[c] = { - data: t[c], - index: a, - value: l, - startAngle: _, - endAngle: f, - padAngle: g - }; - return v - } - var n = Sl, - e = kl, - r = null, - i = yl(0), - o = yl(bl), - u = yl(0); - return t.value = function (e) { - return arguments.length - ? (n = "function" == typeof e - ? e - : yl(+ e), t) - : n - }, - t.sortValues = function (n) { - return arguments.length - ? (e = n, r = null, t) - : e - }, - t.sort = function (n) { - return arguments.length - ? (r = n, e = null, t) - : r - }, - t.startAngle = function (n) { - return arguments.length - ? (i = "function" == typeof n - ? n - : yl(+ n), t) - : i - }, - t.endAngle = function (n) { - return arguments.length - ? (o = "function" == typeof n - ? n - : yl(+ n), t) - : o - }, - t.padAngle = function (n) { - return arguments.length - ? (u = "function" == typeof n - ? n - : yl(+ n), t) - : u - }, - t - }, - El = ct(Ml); - at.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)) - } - }; - var Cl = function () { - return st(Tl().curve(El)) - }, - zl = function () { - var t = Nl().curve(El), - 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 st(e()) - }, - delete t.lineX0, - t.lineEndAngle = function () { - return st(r()) - }, - delete t.lineX1, - t.lineInnerRadius = function () { - return st(i()) - }, - delete t.lineY0, - t.lineOuterRadius = function () { - return st(o()) - }, - delete t.lineY1, - t.curve = function (t) { - return arguments.length - ? n(ct(t)) - : n()._curve - }, - t - }, - Pl = { - draw: function (t, n) { - var e = Math.sqrt(n / ml); - t.moveTo(e, 0), - t.arc(0, 0, e, 0, bl) - } - }, - ql = { - draw: function (t, n) { - var e = Math.sqrt(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() - } - }, - Ll = Math.sqrt(1 / 3), - Rl = 2 * Ll, - Ul = { - draw: function (t, n) { - var e = Math.sqrt(n / Rl), - r = e * Ll; - t.moveTo(0, -e), - t.lineTo(r, 0), - t.lineTo(0, e), - t.lineTo(-r, 0), - t.closePath() - } - }, - Dl = .8908130915292852, - Ol = Math.sin(ml / 10) / Math.sin(7 * ml / 10), - Fl = Math.sin(bl / 10) * Ol, - Il = -Math.cos(bl / 10) * Ol, - Yl = { - draw: function (t, n) { - var e = Math.sqrt(n * Dl), - r = Fl * e, - i = Il * e; - t.moveTo(0, -e), - t.lineTo(r, i); - for (var o = 1; o < 5; ++o) { - var u = bl * o / 5, - a = Math.cos(u), - c = Math.sin(u); - t.lineTo(c * e, -a * e), - t.lineTo(a * r - c * i, c * r + a * i) - } - t.closePath() - } - }, - Bl = { - draw: function (t, n) { - var e = Math.sqrt(n), - r = -e / 2; - t.rect(r, r, e, e) - } - }, - jl = Math.sqrt(3), - Hl = { - draw: function (t, n) { - var e = -Math.sqrt(n / (3 * jl)); - t.moveTo(0, 2 * e), - t.lineTo(-jl * e, -e), - t.lineTo(jl * e, -e), - t.closePath() - } - }, - Xl = -.5, - Vl = Math.sqrt(3) / 2, - Wl = 1 / Math.sqrt(12), - $l = 3 * (Wl / 2 + 1), - Zl = { - draw: function (t, n) { - var e = Math.sqrt(n / $l), - r = e / 2, - i = e * Wl, - o = r, - u = e * Wl + e, - a = -o, - c = u; - t.moveTo(r, i), - t.lineTo(o, u), - t.lineTo(a, c), - t.lineTo(Xl * r - Vl * i, Vl * r + Xl * i), - t.lineTo(Xl * o - Vl * u, Vl * o + Xl * u), - t.lineTo(Xl * a - Vl * c, Vl * a + Xl * c), - t.lineTo(Xl * r + Vl * i, Xl * i - Vl * r), - t.lineTo(Xl * o + Vl * u, Xl * u - Vl * o), - t.lineTo(Xl * a + Vl * c, Xl * c - Vl * a), - t.closePath() - } - }, - Gl = [ - Pl, - ql, - Ul, - Bl, - Yl, - Hl, - Zl - ], - Jl = function () { - function t() { - var t; - if (r || (r = t = L()), n.apply(this, arguments).draw(r, + e.apply(this, arguments)), t) - return r = null, - t + "" || null - } - var n = yl(Pl), - e = yl(64), - r = null; - return t.type = function (e) { - return arguments.length - ? (n = "function" == typeof e - ? e - : yl(e), t) - : n - }, - t.size = function (n) { - return arguments.length - ? (e = "function" == typeof n - ? n - : yl(+ n), t) - : e - }, - t.context = function (n) { - return arguments.length - ? (r = null == n - ? null - : n, t) - : r - }, - t - }, - Ql = function () {}; - lt.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: - ft(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: - ft(this, t, n) - } - this._x0 = this._x1, - this._x1 = t, - this._y0 = this._y1, - this._y1 = n - } - }; - var Kl = function (t) { - return new lt(t) - }; - ht.prototype = { - areaStart: Ql, - areaEnd: Ql, - 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: - ft(this, t, n) - } - this._x0 = this._x1, - this._x1 = t, - this._y0 = this._y1, - this._y1 = n - } - }; - var th = function (t) { - return new ht(t) - }; - pt.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: - ft(this, t, n) - } - this._x0 = this._x1, - this._x1 = t, - this._y0 = this._y1, - this._y1 = n - } - }; - var nh = function (t) { - return new pt(t) - }; - dt.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], u = t[e] - i, a = n[e] - o, c = -1; ++c <= e;) - r = c / e, - this._basis.point(this._beta * t[c] + (1 - this._beta) * (i + r * u), this._beta * n[c] + (1 - this._beta) * (o + r * a)); - this._x = this._y = null, - this - ._basis - .lineEnd() - }, - point: function (t, n) { - this - ._x - .push(+ t), - this - ._y - .push(+ n) - } - }; - var eh = function t(n) { - function e(t) { - return 1 === n - ? new lt(t) - : new dt(t, n) - } - return e.beta = function (n) { - return t(+ n) - }, - e - }(.85); - _t.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: - vt(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: - vt(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 rh = function t(n) { - function e(t) { - return new _t(t, n) - } - return e.tension = function (n) { - return t(+ n) - }, - e - }(0); - yt.prototype = { - areaStart: Ql, - areaEnd: Ql, - 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: - vt(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 ih = function t(n) { - function e(t) { - return new yt(t, n) - } - return e.tension = function (n) { - return t(+ n) - }, - e - }(0); - gt.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: - vt(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 oh = function t(n) { - function e(t) { - return new gt(t, n) - } - return e.tension = function (n) { - return t(+ n) - }, - e - }(0); - xt.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: - mt(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 uh = function t(n) { - function e(t) { - return n - ? new xt(t, n) - : new _t(t, 0) - } - return e.alpha = function (n) { - return t(+ n) - }, - e - }(.5); - bt.prototype = { - areaStart: Ql, - areaEnd: Ql, - 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: - mt(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 ah = function t(n) { - function e(t) { - return n - ? new bt(t, n) - : new yt(t, 0) - } - return e.alpha = function (n) { - return t(+ n) - }, - e - }(.5); - wt.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: - mt(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 ch = function t(n) { - function e(t) { - return n - ? new wt(t, n) - : new gt(t, 0) - } - return e.alpha = function (n) { - return t(+ n) - }, - e - }(.5); - Mt.prototype = { - areaStart: Ql, - areaEnd: Ql, - 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)) - } - }; - var sh = function (t) { - return new Mt(t) - }; - At.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: - St(this, this._t0, kt(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 (t =+ t, n =+ n, 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, - St(this, kt(this, e = Nt(this, t, n)), e); - break; - default: - St(this, this._t0, e = Nt(this, t, n)) - } - this._x0 = this._x1, - this._x1 = t, - this._y0 = this._y1, - this._y1 = n, - this._t0 = e - } - } - }, - (Et.prototype = Object.create(At.prototype)).point = function (t, n) { - At - .prototype - .point - .call(this, n, t) - }, - Ct.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) - } - }, - qt.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 = Lt(t), i = Lt(n), o = 0, u = 1; u < e; ++o, ++u) - this._context.bezierCurveTo(r[0][o], i[0][o], r[1][o], i[1][o], t[u], n[u]); - (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) - } - }; - var fh = function (t) { - return new qt(t) - }; - Rt.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 lh = function (t) { - return new Rt(t, .5) - }, - hh = Array.prototype.slice, - ph = function (t, n) { - if ((r = t.length) > 1) - for (var e, r, i = 1, o = t[n[0]], u = o.length; i < r; ++i) { - e = o, - o = t[n[i]]; - for (var a = 0; a < u; ++a) - o[a][1] += o[a][0] = isNaN(e[a][1]) - ? e[a][0] - : e[a][1] - } - }, - dh = function (t) { - for (var n = t.length, e = new Array(n); --n >= 0;) - e[n] = n; - return e - }, - vh = function () { - function t(t) { - var o, - u, - a = n.apply(this, arguments), - c = t.length, - s = a.length, - f = new Array(s); - for (o = 0; o < s; ++o) { - for (var l, h = a[o], p = f[o] = new Array(c), d = 0; d < c; ++d) - p[d] = l = [ - 0, + i(t[d], h, d, t) - ], - l.data = t[d]; - p.key = h - } - for (o = 0, u = e(f); o < s; ++o) - f[u[o]].index = o; - return r(f, u), - f - } - var n = yl([]), - e = dh, - r = ph, - i = Ot; - return t.keys = function (e) { - return arguments.length - ? (n = "function" == typeof e - ? e - : yl(hh.call(e)), t) - : n - }, - t.value = function (n) { - return arguments.length - ? (i = "function" == typeof n - ? n - : yl(+ n), t) - : i - }, - t.order = function (n) { - return arguments.length - ? (e = null == n - ? dh - : "function" == typeof n - ? n - : yl(hh.call(n)), t) - : e - }, - t.offset = function (n) { - return arguments.length - ? (r = null == n - ? ph - : n, t) - : r - }, - t - }, - _h = function (t, n) { - if ((r = t.length) > 0) { - for (var e, r, i, o = 0, u = t[0].length; o < u; ++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 - } - ph(t, n) - } - }, - yh = 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 u = 0, a = 0; u < e; ++u) - a += t[u][r][1] || 0; - i[r][1] += i[r][0] = -a / 2 - } - ph(t, n) - } - }, - gh = function (t, n) { - if ((i = t.length) > 0 && (r = (e = t[n[0]]).length) > 0) { - for (var e, r, i, o = 0, u = 1; u < r; ++u) { - for (var a = 0, c = 0, s = 0; a < i; ++a) { - for (var f = t[n[a]], l = f[u][1] || 0, - h = f[u - 1][1] || 0, - p = (l - h) / 2, - d = 0; d < a; ++d) { - var v = t[n[d]], - _ = v[u][1] || 0, - y = v[u - 1][1] || 0; - p += _ - y - } - c += l, - s += p * l - } - e[u - 1][1] += e[u - 1][0] = o, - c && (o -= s / c) - } - e[u - 1][1] += e[u - 1][0] = o, - ph(t, n) - } - }, - mh = function (t) { - var n = t.map(Ft); - return dh(t).sort(function (t, e) { - return n[t] - n[e] - }) - }, - xh = function (t) { - return mh(t).reverse() - }, - bh = function (t) { - var n, - e, - r = t.length, - i = t.map(Ft), - o = dh(t).sort(function (t, n) { - return i[n] - i[t] - }), - u = 0, - a = 0, - c = [], - s = []; - for (n = 0; n < r; ++n) - e = o[n], - u < a - ? (u += i[e], c.push(e)) - : (a += i[e], s.push(e)); - return s - .reverse() - .concat(c) - }, - wh = function (t) { - return dh(t).reverse() - }, - Mh = function (t, n, e) { - t.prototype = n.prototype = e, - e.constructor = t - }, - Th = .7, - Nh = 1 / Th, - kh = /^#([0-9a-f]{3})$/, - Sh = /^#([0-9a-f]{6})$/, - Ah = /^rgb\(\s*([-+]?\d+)\s*,\s*([-+]?\d+)\s*,\s*([-+]?\d+)\s*\)$/, - Eh = /^rgb\(\s*([-+]?\d+(?:\.\d+)?)%\s*,\s*([-+]?\d+(?:\.\d+)?)%\s*,\s*([-+]?\d+(?:\.\d+)?)%\s*\)$/, - Ch = /^rgba\(\s*([-+]?\d+)\s*,\s*([-+]?\d+)\s*,\s*([-+]?\d+)\s*,\s*([-+]?\d+(?:\.\d+)?)\s*\)$/, - zh = /^rgba\(\s*([-+]?\d+(?:\.\d+)?)%\s*,\s*([-+]?\d+(?:\.\d+)?)%\s*,\s*([-+]?\d+(?:\.\d+)?)%\s*,\s*([-+]?\d+(?:\.\d+)?)\s*\)$/, - Ph = /^hsl\(\s*([-+]?\d+(?:\.\d+)?)\s*,\s*([-+]?\d+(?:\.\d+)?)%\s*,\s*([-+]?\d+(?:\.\d+)?)%\s*\)$/, - qh = /^hsla\(\s*([-+]?\d+(?:\.\d+)?)\s*,\s*([-+]?\d+(?:\.\d+)?)%\s*,\s*([-+]?\d+(?:\.\d+)?)%\s*,\s*([-+]?\d+(?:\.\d+)?)\s*\)$/, - Lh = { - 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 - }; - Mh(Yt, Bt, { - displayable: function () { - return this - .rgb() - .displayable() - }, - toString: function () { - return this.rgb() + "" - } - }), - Mh(Wt, Vt, It(Yt, { - brighter: function (t) { - return t = null == t - ? Nh - : Math.pow(Nh, t), - new Wt(this.r * t, this.g * t, this.b * t, this.opacity) - }, - darker: function (t) { - return t = null == t - ? Th - : Math.pow(Th, t), - new Wt(this.r * t, this.g * t, this.b * t, this.opacity) - }, - rgb: function () { - return this - }, - displayable: function () { - return 0 <= this.r && this.r <= 255 && 0 <= this.g && this.g <= 255 && 0 <= this.b && this.b <= 255 && 0 <= this.opacity && this.opacity <= 1 - }, - toString: function () { - var t = this.opacity; - return t = isNaN(t) - ? 1 - : Math.max(0, Math.min(1, t)), - (1 === t - ? "rgb(" - : "rgba(") + Math.max(0, Math.min(255, Math.round(this.r) || 0)) + ", " + Math.max(0, Math.min(255, Math.round(this.g) || 0)) + ", " + Math.max(0, Math.min(255, Math.round(this.b) || 0)) + (1 === t - ? ")" - : ", " + t + ")") - } - })), - Mh(Jt, Gt, It(Yt, { - brighter: function (t) { - return t = null == t - ? Nh - : Math.pow(Nh, t), - new Jt(this.h, this.s, this.l * t, this.opacity) - }, - darker: function (t) { - return t = null == t - ? Th - : Math.pow(Th, t), - new Jt(this.h, this.s, this.l * t, this.opacity) - }, - rgb: function () { - 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 Wt(Qt(t >= 240 - ? t - 240 - : t + 120, i, r), Qt(t, i, r), Qt(t < 120 - ? t + 240 - : t - 120, i, r), this.opacity) - }, - displayable: function () { - return (0 <= this.s && this.s <= 1 || isNaN(this.s)) && 0 <= this.l && this.l <= 1 && 0 <= this.opacity && this.opacity <= 1 - } - })); - var Rh = Math.PI / 180, - Uh = 180 / Math.PI, - Dh = 18, - Oh = .95047, - Fh = 1, - Ih = 1.08883, - Yh = 4 / 29, - Bh = 6 / 29, - jh = 3 * Bh * Bh, - Hh = Bh * Bh * Bh; - Mh(nn, tn, It(Yt, { - brighter: function (t) { - return new nn(this.l + Dh * (null == t - ? 1 - : t), this.a, this.b, this.opacity) - }, - darker: function (t) { - return new nn(this.l - Dh * (null == t - ? 1 - : t), this.a, this.b, this.opacity) - }, - rgb: function () { - 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 t = Fh * rn(t), - n = Oh * rn(n), - e = Ih * rn(e), - new Wt(on(3.2404542 * n - 1.5371385 * t - .4985314 * e), on(-.969266 * n + 1.8760108 * t + .041556 * e), on(.0556434 * n - .2040259 * t + 1.0572252 * e), this.opacity) - } - })), - Mh(sn, cn, It(Yt, { - brighter: function (t) { - return new sn(this.h, this.c, this.l + Dh * (null == t - ? 1 - : t), this.opacity) - }, - darker: function (t) { - return new sn(this.h, this.c, this.l - Dh * (null == t - ? 1 - : t), this.opacity) - }, - rgb: function () { - return Kt(this).rgb() - } - })); - var Xh = -.14861, - Vh = 1.78277, - Wh = -.29227, - $h = -.90649, - Zh = 1.97294, - Gh = Zh * $h, - Jh = Zh * Vh, - Qh = Vh * Wh - $h * Xh; - Mh(hn, ln, It(Yt, { - brighter: function (t) { - return t = null == t - ? Nh - : Math.pow(Nh, t), - new hn(this.h, this.s, this.l * t, this.opacity) - }, - darker: function (t) { - return t = null == t - ? Th - : Math.pow(Th, t), - new hn(this.h, this.s, this.l * t, this.opacity) - }, - rgb: function () { - var t = isNaN(this.h) - ? 0 - : (this.h + 120) * Rh, - n =+ this.l, - e = isNaN(this.s) - ? 0 - : this.s * n * (1 - n), - r = Math.cos(t), - i = Math.sin(t); - return new Wt(255 * (n + e * (Xh * r + Vh * i)), 255 * (n + e * (Wh * r + $h * i)), 255 * (n + e * (Zh * r)), this.opacity) - } - })); - var Kh, - tp, - np, - ep, - rp = function (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], - u = r > 0 - ? t[r - 1] - : 2 * i - o, - a = r < n - 1 - ? t[r + 2] - : 2 * o - i; - return pn((e - r / n) * n, u, i, o, a) - } - }, - ip = function (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], - u = t[(r + 1) % n], - a = t[(r + 2) % n]; - return pn((e - r / n) * n, i, o, u, a) - } - }, - op = function (t) { - return function () { - return t - } - }, - up = function t(n) { - function e(t, n) { - var e = r((t = Vt(t)).r, (n = Vt(n)).r), - i = r(t.g, n.g), - o = r(t.b, n.b), - u = r(t.opacity, n.opacity); - return function (n) { - return t.r = e(n), - t.g = i(n), - t.b = o(n), - t.opacity = u(n), - t + "" - } - } - var r = yn(n); - return e.gamma = t, - e - }(1), - ap = mn(rp), - cp = mn(ip), - sp = function (t, n) { - var e, - r = n - ? n.length - : 0, - i = t - ? Math.min(r, t.length) - : 0, - o = new Array(r), - u = new Array(r); - for (e = 0; e < i; ++e) - o[e] = _p(t[e], n[e]); - for (; e < r; ++e) - u[e] = n[e]; - return function (t) { - for (e = 0; e < i; ++e) - u[e] = o[e](t); - return u - } - }, - fp = function (t, n) { - var e = new Date; - return t =+ t, - n -= t, - function (r) { - return e.setTime(t + n * r), - e - } - }, - lp = function (t, n) { - return t =+ t, - n -= t, - function (e) { - return t + n * e - } - }, - hp = function (t, n) { - var e, - r = {}, - i = {}; - null !== t && "object" == typeof t || (t = {}), - null !== n && "object" == typeof n || (n = {}); - for (e in n) - e in t - ? r[e] = _p(t[e], n[e]) - : i[e] = n[e]; - return function (t) { - for (e in r) - i[e] = r[e](t); - return i - } - }, - pp = /[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g, - dp = new RegExp(pp.source, "g"), - vp = function (t, n) { - var e, - r, - i, - o = pp.lastIndex = dp.lastIndex = 0, - u = -1, - a = [], - c = []; - for (t += "", n += ""; (e = pp.exec(t)) && (r = dp.exec(n));) - (i = r.index) > o && (i = n.slice(o, i), a[u] - ? a[u] += i - : a[++u] = i), - (e = e[0]) === (r = r[0]) - ? a[u] - ? a[u] += r - : a[++u] = r - : (a[++u] = null, c.push({ - i: u, - x: lp(e, r) - })), - o = dp.lastIndex; - return o < n.length && (i = n.slice(o), a[u] - ? a[u] += i - : a[++u] = i), - a.length < 2 - ? c[0] - ? bn(c[0].x) - : xn(n) - : (n = c.length, function (t) { - for (var e, r = 0; r < n; ++r) - a[(e = c[r]).i] = e.x(t); - return a.join("") - }) - }, - _p = function (t, n) { - var e, - r = typeof n; - return null == n || "boolean" === r - ? op(n) - : ("number" === r - ? lp - : "string" === r - ? (e = Bt(n)) - ? (n = e, up) - : vp - : n instanceof Bt - ? up - : n instanceof Date - ? fp - : Array.isArray(n) - ? sp - : isNaN(n) - ? hp - : lp)(t, n) - }, - yp = function (t, n) { - return t =+ t, - n -= t, - function (e) { - return Math.round(t + n * e) - } - }, - gp = 180 / Math.PI, - mp = { - translateX: 0, - translateY: 0, - rotate: 0, - skewX: 0, - scaleX: 1, - scaleY: 1 - }, - xp = function (t, n, e, r, i, o) { - var u, - a, - c; - return (u = Math.sqrt(t * t + n * n)) && (t /= u, n /= u), - (c = t * e + n * r) && (e -= t * c, r -= n * c), - (a = Math.sqrt(e * e + r * r)) && (e /= a, r /= a, c /= a), - t * r < n * e && (t = -t, n = -n, c = -c, u = -u), { - translateX: i, - translateY: o, - rotate: Math.atan2(n, t) * gp, - skewX: Math.atan(c) * gp, - scaleX: u, - scaleY: a - } - }, - bp = Tn(wn, "px, ", "px)", "deg)"), - wp = Tn(Mn, ", ", ")", ")"), - Mp = Math.SQRT2, - Tp = 2, - Np = 4, - kp = 1e-12, - Sp = function (t, n) { - var e, - r, - i = t[0], - o = t[1], - u = t[2], - a = n[0], - c = n[1], - s = n[2], - f = a - i, - l = c - o, - h = f * f + l * l; - if (h < kp) - r = Math.log(s / u) / Mp, - e = function (t) { - return [ - i + t * f, - o + t * l, - u * Math.exp(Mp * t * r) - ] - }; - else { - var p = Math.sqrt(h), - d = (s * s - u * u + Np * h) / (2 * u * Tp * p), - v = (s * s - u * u - Np * h) / (2 * s * Tp * p), - _ = Math.log(Math.sqrt(d * d + 1) - d), - y = Math.log(Math.sqrt(v * v + 1) - v); - r = (y - _) / Mp, - e = function (t) { - var n = t * r, - e = Nn(_), - a = u / (Tp * p) * (e * Sn(Mp * n + _) - kn(_)); - return [ - i + a * f, - o + a * l, - u * e / Nn(Mp * n + _) - ] - } - } - return e.duration = 1e3 * r, - e - }, - Ap = An(_n), - Ep = An(gn), - Cp = Cn(_n), - zp = Cn(gn), - Pp = zn(_n), - qp = zn(gn), - Lp = function (t, n) { - for (var e = new Array(n), r = 0; r < n; ++r) - e[r] = t(r / (n - 1)); - return e - }, - Rp = { - value: function () {} - }; - qn.prototype = Pn.prototype = { - constructor: qn, - on: function (t, n) { - var e, - r = this._, - i = Ln(t + "", r), - o = -1, - u = i.length; - { - if (!(arguments.length < 2)) { - if (null != n && "function" != typeof n) - throw new Error("invalid callback: " + n); - for (; ++o < u;) - if (e = (t = i[o]).type) - r[e] = Un(r[e], t.name, n); - else if (null == n) - for (e in r) - r[e] = Un(r[e], t.name, null); - return this - } - for (; ++o < u;) - if ((e = (t = i[o]).type) && (e = Rn(r[e], t.name))) - return e - } - }, - copy: function () { - var t = {}, - n = this._; - for (var e in n) - t[e] = n[e].slice(); - return new qn(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 (r = this._[t], o = 0, e = r.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 Up, - Dp, - Op = function (t) { - function n(t, n) { - var r, - i, - o = e(t, function (t, e) { - return r - ? r(t, e - 1) - : (i = t, void(r = n - ? On(t, n) - : Dn(t))) - }); - return o.columns = i, - o - } - function e(t, n) { - function e() { - if (f >= s) - return u; - if (i) - return i = !1, - o; - var n, - e = f; - if (34 === t.charCodeAt(e)) { - for (var r = e; r++ < s;) - if (34 === t.charCodeAt(r)) { - if (34 !== t.charCodeAt(r + 1)) - break; - - ++r - } - return f = r + 2, - n = t.charCodeAt(r + 1), - 13 === n - ? (i = !0, 10 === t.charCodeAt(r + 2) && ++f) - : 10 === n && (i = !0), - t - .slice(e + 1, r) - .replace(/""/g, '"') - } - for (; f < s;) { - var a = 1; - if (n = t.charCodeAt(f++), 10 === n) - i = !0; - else if (13 === n) - i = !0, - 10 === t.charCodeAt(f) && (++f, ++a); - else if (n !== c) - continue; - return t.slice(e, f - a) - } - return t.slice(e) - } - for (var r, i, o = {}, u = {}, a = [], s = t.length, f = 0, l = 0; (r = e()) !== u;) { - for (var h = []; r !== o && r !== u;) - h.push(r), - r = e(); - n && null == (h = n(h, l++)) || a.push(h) - } - return a - } - function r(n, e) { - return null == e && (e = Fn(n)), - [ - e - .map(u) - .join(t) - ].concat(n.map(function (n) { - return e.map(function (t) { - return u(n[t]) - }).join(t) - })).join("\n") - } - function i(t) { - return t - .map(o) - .join("\n") - } - function o(n) { - return n - .map(u) - .join(t) - } - function u(t) { - return null == t - ? "" - : a.test(t += "") - ? '"' + t.replace(/\"/g, '""') + '"' - : t - } - var a = new RegExp('["' + t + "\n]"), - c = t.charCodeAt(0); - return {parse: n, parseRows: e, format: r, formatRows: i} - }, - Fp = Op(","), - Ip = Fp.parse, - Yp = Fp.parseRows, - Bp = Fp.format, - jp = Fp.formatRows, - Hp = Op("\t"), - Xp = Hp.parse, - Vp = Hp.parseRows, - Wp = Hp.format, - $p = Hp.formatRows, - Zp = function (t, n) { - function e(t) { - var n, - e = f.status; - if (!e && Yn(f) || e >= 200 && e < 300 || 304 === e) { - if (u) - try { - n = u.call(r, f) - } catch (t) { - return void c.call("error", r, t) - } - else - n = f; - c.call("load", r, n) - } else - c.call("error", r, t) - } - var r, - i, - u, - a, - c = Pn("beforesend", "progress", "load", "error"), - s = o(), - f = new XMLHttpRequest, - l = null, - h = null, - p = 0; - if ("undefined" == typeof XDomainRequest || "withCredentials" in f || !/^(http(s)?:)?\/\//.test(t) || (f = new XDomainRequest), "onload" in f - ? f.onload = f.onerror = f.ontimeout = e - : f.onreadystatechange = function (t) { - f.readyState > 3 && e(t) - }, - f.onprogress = function (t) { - c.call("progress", r, t) - }, - r = { - header: function (t, n) { - return t = (t + "").toLowerCase(), - arguments.length < 2 - ? s.get(t) - : (null == n - ? s.remove(t) - : s.set(t, n + ""), r) - }, - mimeType: function (t) { - return arguments.length - ? (i = null == t - ? null - : t + "", r) - : i - }, - responseType: function (t) { - return arguments.length - ? (a = t, r) - : a - }, - timeout: function (t) { - return arguments.length - ? (p =+ t, r) - : p - }, - user: function (t) { - return arguments.length < 1 - ? l - : (l = null == t - ? null - : t + "", r) - }, - password: function (t) { - return arguments.length < 1 - ? h - : (h = null == t - ? null - : t + "", r) - }, - response: function (t) { - return u = t, - r - }, - get: function (t, n) { - return r.send("GET", t, n) - }, - post: function (t, n) { - return r.send("POST", t, n) - }, - send: function (n, e, o) { - return f.open(n, t, !0, l, h), - null == i || s.has("accept") || s.set("accept", i + ",*/*"), - f.setRequestHeader && s.each(function (t, n) { - f.setRequestHeader(n, t) - }), - null != i && f.overrideMimeType && f.overrideMimeType(i), - null != a && (f.responseType = a), - p > 0 && (f.timeout = p), - null == o && "function" == typeof e && (o = e, e = null), - null != o && 1 === o.length && (o = In(o)), - null != o && r - .on("error", o) - .on("load", function (t) { - o(null, t) - }), - c.call("beforesend", r, f), - f.send(null == e - ? null - : e), - r - }, - abort: function () { - return f.abort(), - r - }, - on: function () { - var t = c - .on - .apply(c, arguments); - return t === c - ? r - : t - } - }, - null != n) { - if ("function" != typeof n) - throw new Error("invalid callback: " + n); - return r.get(n) - } - return r - }, - Gp = function (t, n) { - return function (e, r) { - var i = Zp(e) - .mimeType(t) - .response(n); - if (null != r) { - if ("function" != typeof r) - throw new Error("invalid callback: " + r); - return i.get(r) - } - return i - } - }, - Jp = Gp("text/html", function (t) { - return document - .createRange() - .createContextualFragment(t.responseText) - }), - Qp = Gp("application/json", function (t) { - return JSON.parse(t.responseText) - }), - Kp = Gp("text/plain", function (t) { - return t.responseText - }), - td = Gp("application/xml", function (t) { - var n = t.responseXML; - if (!n) - throw new Error("parse error"); - return n - }), - nd = function (t, n) { - return function (e, r, i) { - arguments.length < 3 && (i = r, r = null); - var o = Zp(e).mimeType(t); - return o.row = function (t) { - return arguments.length - ? o.response(Bn(n, r = t)) - : r - }, - o.row(r), - i - ? o.get(i) - : o - } - }, - ed = nd("text/csv", Ip), - rd = nd("text/tab-separated-values", Xp), - id = 0, - od = 0, - ud = 0, - ad = 1e3, - cd = 0, - sd = 0, - fd = 0, - ld = "object" == typeof performance && performance.now - ? performance - : Date, - hd = "function" == typeof requestAnimationFrame - ? requestAnimationFrame - : function (t) { - setTimeout(t, 17) - }; - Xn.prototype = Vn.prototype = { - constructor: Xn, - restart: function (t, n, e) { - if ("function" != typeof t) - throw new TypeError("callback is not a function"); - e = (null == e - ? jn() :+ e) + (null == n - ? 0 :+ n), - this._next || Dp === this || (Dp - ? Dp._next = this - : Up = this, Dp = this), - this._call = t, - this._time = e, - Jn() - }, - stop: function () { - this._call && (this._call = null, this._time = 1 / 0, Jn()) - } - }; - var pd = function (t, n, e) { - var r = new Xn; - return n = null == n - ? 0 :+ n, - r.restart(function (e) { - r.stop(), - t(e + n) - }, n, e), - r - }, - dd = function (t, n, e) { - var r = new Xn, - i = n; - return null == n - ? (r.restart(t, n, e), r) - : (n =+ n, e = null == e - ? jn() :+ e, r.restart(function o(u) { - u += i, - r.restart(o, i += n, e), - t(u) - }, n, e), r) - }, - vd = new Date, - _d = new Date, - yd = Qn(function () {}, function (t, n) { - t.setTime(+ t + n) - }, function (t, n) { - return n - t - }); - yd.every = function (t) { - return t = Math.floor(t), - isFinite(t) && t > 0 - ? t > 1 - ? Qn(function (n) { - n.setTime(Math.floor(n / t) * t) - }, function (n, e) { - n.setTime(+ n + e * t) - }, function (n, e) { - return (e - n) / t - }) - : yd - : null - }; - var gd = yd.range, - md = 1e3, - xd = 6e4, - bd = 36e5, - wd = 864e5, - Md = 6048e5, - Td = Qn(function (t) { - t.setTime(Math.floor(t / md) * md) - }, function (t, n) { - t.setTime(+ t + n * md) - }, function (t, n) { - return (n - t) / md - }, function (t) { - return t.getUTCSeconds() - }), - Nd = Td.range, - kd = Qn(function (t) { - t.setTime(Math.floor(t / xd) * xd) - }, function (t, n) { - t.setTime(+ t + n * xd) - }, function (t, n) { - return (n - t) / xd - }, function (t) { - return t.getMinutes() - }), - Sd = kd.range, - Ad = Qn(function (t) { - var n = t.getTimezoneOffset() * xd % bd; - n < 0 && (n += bd), - t.setTime(Math.floor((+ t - n) / bd) * bd + n) - }, function (t, n) { - t.setTime(+ t + n * bd) - }, function (t, n) { - return (n - t) / bd - }, function (t) { - return t.getHours() - }), - Ed = Ad.range, - Cd = Qn(function (t) { - t.setHours(0, 0, 0, 0) - }, function (t, n) { - t.setDate(t.getDate() + n) - }, function (t, n) { - return (n - t - (n.getTimezoneOffset() - t.getTimezoneOffset()) * xd) / wd - }, function (t) { - return t.getDate() - 1 - }), - zd = Cd.range, - Pd = Kn(0), - qd = Kn(1), - Ld = Kn(2), - Rd = Kn(3), - Ud = Kn(4), - Dd = Kn(5), - Od = Kn(6), - Fd = Pd.range, - Id = qd.range, - Yd = Ld.range, - Bd = Rd.range, - jd = Ud.range, - Hd = Dd.range, - Xd = Od.range, - Vd = Qn(function (t) { - t.setDate(1), - t.setHours(0, 0, 0, 0) - }, function (t, n) { - t.setMonth(t.getMonth() + n) - }, function (t, n) { - return n.getMonth() - t.getMonth() + 12 * (n.getFullYear() - t.getFullYear()) - }, function (t) { - return t.getMonth() - }), - Wd = Vd.range, - $d = Qn(function (t) { - t.setMonth(0, 1), - t.setHours(0, 0, 0, 0) - }, function (t, n) { - t.setFullYear(t.getFullYear() + n) - }, function (t, n) { - return n.getFullYear() - t.getFullYear() - }, function (t) { - return t.getFullYear() - }); - $d.every = function (t) { - return isFinite(t = Math.floor(t)) && t > 0 - ? Qn(function (n) { - n.setFullYear(Math.floor(n.getFullYear() / t) * t), - n.setMonth(0, 1), - n.setHours(0, 0, 0, 0) - }, function (n, e) { - n.setFullYear(n.getFullYear() + e * t) - }) - : null - }; - var Zd = $d.range, - Gd = Qn(function (t) { - t.setUTCSeconds(0, 0) - }, function (t, n) { - t.setTime(+ t + n * xd) - }, function (t, n) { - return (n - t) / xd - }, function (t) { - return t.getUTCMinutes() - }), - Jd = Gd.range, - Qd = Qn(function (t) { - t.setUTCMinutes(0, 0, 0) - }, function (t, n) { - t.setTime(+ t + n * bd) - }, function (t, n) { - return (n - t) / bd - }, function (t) { - return t.getUTCHours() - }), - Kd = Qd.range, - tv = Qn(function (t) { - t.setUTCHours(0, 0, 0, 0) - }, function (t, n) { - t.setUTCDate(t.getUTCDate() + n) - }, function (t, n) { - return (n - t) / wd - }, function (t) { - return t.getUTCDate() - 1 - }), - nv = tv.range, - ev = te(0), - rv = te(1), - iv = te(2), - ov = te(3), - uv = te(4), - av = te(5), - cv = te(6), - sv = ev.range, - fv = rv.range, - lv = iv.range, - hv = ov.range, - pv = uv.range, - dv = av.range, - vv = cv.range, - _v = Qn(function (t) { - t.setUTCDate(1), - t.setUTCHours(0, 0, 0, 0) - }, function (t, n) { - t.setUTCMonth(t.getUTCMonth() + n) - }, function (t, n) { - return n.getUTCMonth() - t.getUTCMonth() + 12 * (n.getUTCFullYear() - t.getUTCFullYear()) - }, function (t) { - return t.getUTCMonth() - }), - yv = _v.range, - gv = Qn(function (t) { - t.setUTCMonth(0, 1), - t.setUTCHours(0, 0, 0, 0) - }, function (t, n) { - t.setUTCFullYear(t.getUTCFullYear() + n) - }, function (t, n) { - return n.getUTCFullYear() - t.getUTCFullYear() - }, function (t) { - return t.getUTCFullYear() - }); - gv.every = function (t) { - return isFinite(t = Math.floor(t)) && t > 0 - ? Qn(function (n) { - n.setUTCFullYear(Math.floor(n.getUTCFullYear() / t) * t), - n.setUTCMonth(0, 1), - n.setUTCHours(0, 0, 0, 0) - }, function (n, e) { - n.setUTCFullYear(n.getUTCFullYear() + e * t) - }) - : null - }; - var mv, - xv = gv.range, - bv = function (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) - ] - }, - wv = function (t) { - return t = bv(Math.abs(t)), - t - ? t[1] - : NaN - }, - Mv = function (t, n) { - return function (e, r) { - for (var i = e.length, o = [], u = 0, a = t[0], c = 0; i > 0 && a > 0 && (c + a + 1 > r && (a = Math.max(1, r - c)), o.push(e.substring(i -= a, i + a)), !((c += a + 1) > r));) - a = t[u = (u + 1) % t.length]; - return o - .reverse() - .join(n) - } - }, - Tv = function (t, n) { - t = t.toPrecision(n); - t : for (var e, r = t.length, i = 1, o = -1; i < r; ++i) - switch (t[i]) { - case ".": - o = e = i; - break; - case "0": - 0 === o && (o = i), - e = i; - break; - case "e": - break t; - default: - o > 0 && (o = 0) - } - return o > 0 - ? t.slice(0, o) + t.slice(e + 1) - : t - }, - Nv = function (t, n) { - var e = bv(t, n); - if (!e) - return t + ""; - var r = e[0], - i = e[1], - o = i - (mv = 3 * Math.max(-8, Math.min(8, Math.floor(i / 3)))) + 1, - u = r.length; - return o === u - ? r - : o > u - ? r + new Array(o - u + 1).join("0") - : o > 0 - ? r.slice(0, o) + "." + r.slice(o) - : "0." + new Array(1 - o).join("0") + bv(t, Math.max(0, n + o - 1))[0] - }, - kv = function (t, n) { - var e = bv(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") - }, - Sv = { - "": Tv, - "%": function (t, n) { - return (100 * t).toFixed(n) - }, - b: function (t) { - return Math - .round(t) - .toString(2) - }, - c: function (t) { - return t + "" - }, - d: function (t) { - return Math - .round(t) - .toString(10) - }, - e: function (t, n) { - return t.toExponential(n) - }, - f: function (t, n) { - return t.toFixed(n) - }, - g: function (t, n) { - return t.toPrecision(n) - }, - o: function (t) { - return Math - .round(t) - .toString(8) - }, - p: function (t, n) { - return kv(100 * t, n) - }, - r: kv, - s: Nv, - X: function (t) { - return Math - .round(t) - .toString(16) - .toUpperCase() - }, - x: function (t) { - return Math - .round(t) - .toString(16) - } - }, - Av = /^(?:(.)?([<>=^]))?([+\-\( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?([a-z%])?$/i, - Ev = function (t) { - return new ne(t) - }; - ne.prototype.toString = function () { - return this.fill + this.align + this.sign + this.symbol + (this.zero - ? "0" - : "") + (null == this.width - ? "" - : Math.max(1, 0 | this.width)) + (this.comma - ? "," - : "") + (null == this.precision - ? "" - : "." + Math.max(0, 0 | this.precision)) + this.type - }; - var Cv, - zv = [ - "y", - "z", - "a", - "f", - "p", - "n", - "µ", - "m", - "", - "k", - "M", - "G", - "T", - "P", - "E", - "Z", - "Y" - ], - Pv = function (t) { - function n(t) { - function n(t) { - var n, - i, - c, - g = d, - m = v; - if ("c" === p) - m = _(t) + m, - t = ""; - else { - t =+ t; - var x = (t < 0 || 1 / t < 0) && (t *= -1, !0); - if (t = _(t, h), x) - for (n = -1, i = t.length, x = !1; ++n < i;) - if (c = t.charCodeAt(n), 48 < c && c < 58 || "x" === p && 96 < c && c < 103 || "X" === p && 64 < c && c < 71) { - x = !0; - break - } - if (g = (x - ? "(" === a - ? a - : "-" - : "-" === a || "(" === a - ? "" - : a) + g, m = m + ("s" === p - ? zv[8 + mv / 3] - : "") + (x && "(" === a - ? ")" - : ""), y) - for (n = -1, i = t.length; ++n < i;) - if (c = t.charCodeAt(n), 48 > c || c > 57) { - m = (46 === c - ? o + t.slice(n + 1) - : t.slice(n)) + m, - t = t.slice(0, n); - break - } - } - l && !s && (t = r(t, 1 / 0)); - var b = g.length + t.length + m.length, - w = b < f - ? new Array(f - b + 1).join(e) - : ""; - switch (l && s && (t = r(w + t, w.length - ? f - m.length - : 1 / 0), w = ""), u) { - case "<": - return g + t + m + w; - case "=": - return g + w + t + m; - case "^": - return w.slice(0, b = w.length >> 1) + g + t + m + w.slice(b) - } - return w + g + t + m - } - t = Ev(t); - var e = t.fill, - u = t.align, - a = t.sign, - c = t.symbol, - s = t.zero, - f = t.width, - l = t.comma, - h = t.precision, - p = t.type, - d = "$" === c - ? i[0] - : "#" === c && /[boxX]/.test(p) - ? "0" + p.toLowerCase() - : "", - v = "$" === c - ? i[1] - : /[%p]/.test(p) - ? "%" - : "", - _ = Sv[p], - y = !p || /[defgprs%]/.test(p); - return h = null == h - ? p - ? 6 - : 12 - : /[gprs]/.test(p) - ? Math.max(1, Math.min(21, h)) - : Math.max(0, Math.min(20, h)), - n.toString = function () { - return t + "" - }, - n - } - function e(t, e) { - var r = n((t = Ev(t), t.type = "f", t)), - i = 3 * Math.max(-8, Math.min(8, Math.floor(wv(e) / 3))), - o = Math.pow(10, -i), - u = zv[8 + i / 3]; - return function (t) { - return r(o * t) + u - } - } - var r = t.grouping && t.thousands - ? Mv(t.grouping, t.thousands) - : ee, - i = t.currency, - o = t.decimal; - return {format: n, formatPrefix: e} - }; - re({ - decimal: ".", - thousands: ",", - grouping: [3], - currency: ["$", ""] - }); - var qv, - Lv = function (t) { - return Math.max(0, -wv(Math.abs(t))) - }, - Rv = function (t, n) { - return Math.max(0, 3 * Math.max(-8, Math.min(8, Math.floor(wv(n) / 3))) - wv(Math.abs(t))) - }, - Uv = function (t, n) { - return t = Math.abs(t), - n = Math.abs(n) - t, - Math.max(0, wv(n) - wv(t)) + 1 - }, - Dv = { - "-": "", - _: " ", - 0: "0" - }, - Ov = /^\s*\d+/, - Fv = /^%/, - Iv = /[\\\^\$\*\+\?\|\[\]\(\)\.\{\}]/g; - nr({ - 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 Yv = "%Y-%m-%dT%H:%M:%S.%LZ", - Bv = Date.prototype.toISOString - ? er - : t.utcFormat(Yv), - jv =+ new Date("2000-01-01T00:00:00.000Z") - ? rr - : t.utcParse(Yv), - Hv = Array.prototype, - Xv = Hv.map, - Vv = Hv.slice, - Wv = { - name: "implicit" - }, - $v = function (t) { - return function () { - return t - } - }, - Zv = function (t) { - return + t - }, - Gv = [ - 0, 1 - ], - Jv = function (n, r, i) { - var o, - u = n[0], - a = n[n.length - 1], - c = e(u, a, null == r - ? 10 - : r); - switch (i = Ev(null == i - ? ",f" - : i), i.type) { - case "s": - var s = Math.max(Math.abs(u), Math.abs(a)); - return null != i.precision || isNaN(o = Rv(c, s)) || (i.precision = o), - t.formatPrefix(i, s); - case "": - case "e": - case "g": - case "p": - case "r": - null != i.precision || isNaN(o = Uv(c, Math.max(Math.abs(u), Math.abs(a)))) || (i.precision = o - ("e" === i.type)); - break; - case "f": - case "%": - null != i.precision || isNaN(o = Lv(c)) || (i.precision = o - 2 * ("%" === i.type)) - } - return t.format(i) - }, - Qv = function (t, n) { - t = t.slice(); - var e, - r = 0, - i = t.length - 1, - o = t[r], - u = t[i]; - return u < o && (e = r, r = i, i = e, e = o, o = u, u = e), - t[r] = n.floor(o), - t[i] = n.ceil(u), - t - }, - Kv = 1e3, - t_ = 60 * Kv, - n_ = 60 * t_, - e_ = 24 * n_, - r_ = 7 * e_, - i_ = 30 * e_, - o_ = 365 * e_, - u_ = function () { - return qr($d, Vd, Pd, Cd, Ad, kd, Td, yd, t.timeFormat).domain([ - new Date(2e3, 0, 1), - new Date(2e3, 0, 2) - ]) - }, - a_ = function () { - return qr(gv, _v, ev, tv, Qd, Gd, Td, yd, t.utcFormat).domain([ - Date.UTC(2e3, 0, 1), - Date.UTC(2e3, 0, 2) - ]) - }, - c_ = function (t) { - return t - .match(/.{6}/g) - .map(function (t) { - return "#" + t - }) - }, - s_ = c_("1f77b4ff7f0e2ca02cd627289467bd8c564be377c27f7f7fbcbd2217becf"), - f_ = c_("393b795254a36b6ecf9c9ede6379398ca252b5cf6bcedb9c8c6d31bd9e39e7ba52e7cb94843c39ad" + - "494ad6616be7969c7b4173a55194ce6dbdde9ed6"), - l_ = c_("3182bd6baed69ecae1c6dbefe6550dfd8d3cfdae6bfdd0a231a35474c476a1d99bc7e9c0756bb19e" + - "9ac8bcbddcdadaeb636363969696bdbdbdd9d9d9"), - h_ = c_("1f77b4aec7e8ff7f0effbb782ca02c98df8ad62728ff98969467bdc5b0d58c564bc49c94e377c2f7" + - "b6d27f7f7fc7c7c7bcbd22dbdb8d17becf9edae5"), - p_ = qp(ln(300, .5, 0), ln(-240, .5, 1)), - d_ = qp(ln(-100, .75, .35), ln(80, 1.5, .8)), - v_ = qp(ln(260, .75, .35), ln(80, 1.5, .8)), - __ = ln(), - y_ = function (t) { - (t < 0 || t > 1) && (t -= Math.floor(t)); - var n = Math.abs(t - .5); - return __.h = 360 * t - 100, - __.s = 1.5 - 1.5 * n, - __.l = .8 - .9 * n, - __ + "" - }, - g_ = Lr(c_("44015444025645045745055946075a46085c460a5d460b5e470d60470e6147106347116447136548" + - "146748166848176948186a481a6c481b6d481c6e481d6f481f704820714821734823744824754825" + - "76482677482878482979472a7a472c7a472d7b472e7c472f7d46307e46327e46337f463480453581" + - "453781453882443983443a83443b84433d84433e85423f8542408642418641428741448740458840" + - "46883f47883f48893e49893e4a893e4c8a3d4d8a3d4e8a3c4f8a3c508b3b518b3b528b3a538b3a54" + - "8c39558c39568c38588c38598c375a8c375b8d365c8d365d8d355e8d355f8d34608d34618d33628d" + - "33638d32648e32658e31668e31678e31688e30698e306a8e2f6b8e2f6c8e2e6d8e2e6e8e2e6f8e2d" + - "708e2d718e2c718e2c728e2c738e2b748e2b758e2a768e2a778e2a788e29798e297a8e297b8e287c" + - "8e287d8e277e8e277f8e27808e26818e26828e26828e25838e25848e25858e24868e24878e23888e" + - "23898e238a8d228b8d228c8d228d8d218e8d218f8d21908d21918c20928c20928c20938c1f948c1f" + - "958b1f968b1f978b1f988b1f998a1f9a8a1e9b8a1e9c891e9d891f9e891f9f881fa0881fa1881fa1" + - "871fa28720a38620a48621a58521a68522a78522a88423a98324aa8325ab8225ac8226ad8127ad81" + - "28ae8029af7f2ab07f2cb17e2db27d2eb37c2fb47c31b57b32b67a34b67935b77937b87838b9773a" + - "ba763bbb753dbc743fbc7340bd7242be7144bf7046c06f48c16e4ac16d4cc26c4ec36b50c46a52c5" + - "6954c56856c66758c7655ac8645cc8635ec96260ca6063cb5f65cb5e67cc5c69cd5b6ccd5a6ece58" + - "70cf5773d05675d05477d1537ad1517cd2507fd34e81d34d84d44b86d54989d5488bd6468ed64590" + - "d74393d74195d84098d83e9bd93c9dd93ba0da39a2da37a5db36a8db34aadc32addc30b0dd2fb2dd" + - "2db5de2bb8de29bade28bddf26c0df25c2df23c5e021c8e020cae11fcde11dd0e11cd2e21bd5e21a" + - "d8e219dae319dde318dfe318e2e418e5e419e7e419eae51aece51befe51cf1e51df4e61ef6e620f8" + - "e621fbe723fde725")), - m_ = Lr(c_("00000401000501010601010802010902020b02020d03030f03031204041405041606051806051a07" + - "061c08071e0907200a08220b09240c09260d0a290e0b2b100b2d110c2f120d31130d34140e36150e" + - "38160f3b180f3d19103f1a10421c10441d11471e114920114b21114e221150241253251255271258" + - "29115a2a115c2c115f2d11612f116331116533106734106936106b38106c390f6e3b0f703d0f713f" + - "0f72400f74420f75440f764510774710784910784a10794c117a4e117b4f127b51127c52137c5413" + - "7d56147d57157e59157e5a167e5c167f5d177f5f187f601880621980641a80651a80671b80681c81" + - "6a1c816b1d816d1d816e1e81701f81721f817320817521817621817822817922827b23827c23827e" + - "24828025828125818326818426818627818827818928818b29818c29818e2a81902a81912b81932b" + - "80942c80962c80982d80992d809b2e7f9c2e7f9e2f7fa02f7fa1307ea3307ea5317ea6317da8327d" + - "aa337dab337cad347cae347bb0357bb2357bb3367ab5367ab73779b83779ba3878bc3978bd3977bf" + - "3a77c03a76c23b75c43c75c53c74c73d73c83e73ca3e72cc3f71cd4071cf4070d0416fd2426fd343" + - "6ed5446dd6456cd8456cd9466bdb476adc4869de4968df4a68e04c67e24d66e34e65e44f64e55064" + - "e75263e85362e95462ea5661eb5760ec5860ed5a5fee5b5eef5d5ef05f5ef1605df2625df2645cf3" + - "655cf4675cf4695cf56b5cf66c5cf66e5cf7705cf7725cf8745cf8765cf9785df9795df97b5dfa7d" + - "5efa7f5efa815ffb835ffb8560fb8761fc8961fc8a62fc8c63fc8e64fc9065fd9266fd9467fd9668" + - "fd9869fd9a6afd9b6bfe9d6cfe9f6dfea16efea36ffea571fea772fea973feaa74feac76feae77fe" + - "b078feb27afeb47bfeb67cfeb77efeb97ffebb81febd82febf84fec185fec287fec488fec68afec8" + - "8cfeca8dfecc8ffecd90fecf92fed194fed395fed597fed799fed89afdda9cfddc9efddea0fde0a1" + - "fde2a3fde3a5fde5a7fde7a9fde9aafdebacfcecaefceeb0fcf0b2fcf2b4fcf4b6fcf6b8fcf7b9fc" + - "f9bbfcfbbdfcfdbf")), - x_ = Lr(c_("00000401000501010601010802010a02020c02020e03021004031204031405041706041907051b08" + - "051d09061f0a07220b07240c08260d08290e092b10092d110a30120a32140b34150b37160b39180c" + - "3c190c3e1b0c411c0c431e0c451f0c48210c4a230c4c240c4f260c51280b53290b552b0b572d0b59" + - "2f0a5b310a5c320a5e340a5f3609613809623909633b09643d09653e0966400a67420a68440a6845" + - "0a69470b6a490b6a4a0c6b4c0c6b4d0d6c4f0d6c510e6c520e6d540f6d550f6d57106e59106e5a11" + - "6e5c126e5d126e5f136e61136e62146e64156e65156e67166e69166e6a176e6c186e6d186e6f196e" + - "71196e721a6e741a6e751b6e771c6d781c6d7a1d6d7c1d6d7d1e6d7f1e6c801f6c82206c84206b85" + - "216b87216b88226a8a226a8c23698d23698f24699025689225689326679526679727669827669a28" + - "659b29649d29649f2a63a02a63a22b62a32c61a52c60a62d60a82e5fa92e5eab2f5ead305dae305c" + - "b0315bb1325ab3325ab43359b63458b73557b93556ba3655bc3754bd3853bf3952c03a51c13a50c3" + - "3b4fc43c4ec63d4dc73e4cc83f4bca404acb4149cc4248ce4347cf4446d04545d24644d34743d448" + - "42d54a41d74b3fd84c3ed94d3dda4e3cdb503bdd513ade5238df5337e05536e15635e25734e35933" + - "e45a31e55c30e65d2fe75e2ee8602de9612bea632aeb6429eb6628ec6726ed6925ee6a24ef6c23ef" + - "6e21f06f20f1711ff1731df2741cf3761bf37819f47918f57b17f57d15f67e14f68013f78212f784" + - "10f8850ff8870ef8890cf98b0bf98c0af98e09fa9008fa9207fa9407fb9606fb9706fb9906fb9b06" + - "fb9d07fc9f07fca108fca309fca50afca60cfca80dfcaa0ffcac11fcae12fcb014fcb216fcb418fb" + - "b61afbb81dfbba1ffbbc21fbbe23fac026fac228fac42afac62df9c72ff9c932f9cb35f8cd37f8cf" + - "3af7d13df7d340f6d543f6d746f5d949f5db4cf4dd4ff4df53f4e156f3e35af3e55df2e661f2e865" + - "f2ea69f1ec6df1ed71f1ef75f1f179f2f27df2f482f3f586f3f68af4f88ef5f992f6fa96f8fb9af9" + - "fc9dfafda1fcffa4")), - b_ = Lr(c_("0d088710078813078916078a19068c1b068d1d068e20068f2206902406912605912805922a05932c" + - "05942e05952f059631059733059735049837049938049a3a049a3c049b3e049c3f049c41049d4303" + - "9e44039e46039f48039f4903a04b03a14c02a14e02a25002a25102a35302a35502a45601a45801a4" + - "5901a55b01a55c01a65e01a66001a66100a76300a76400a76600a76700a86900a86a00a86c00a86e" + - "00a86f00a87100a87201a87401a87501a87701a87801a87a02a87b02a87d03a87e03a88004a88104" + - "a78305a78405a78606a68707a68808a68a09a58b0aa58d0ba58e0ca48f0da4910ea3920fa39410a2" + - "9511a19613a19814a099159f9a169f9c179e9d189d9e199da01a9ca11b9ba21d9aa31e9aa51f99a6" + - "2098a72197a82296aa2395ab2494ac2694ad2793ae2892b02991b12a90b22b8fb32c8eb42e8db52f" + - "8cb6308bb7318ab83289ba3388bb3488bc3587bd3786be3885bf3984c03a83c13b82c23c81c33d80" + - "c43e7fc5407ec6417dc7427cc8437bc9447aca457acb4679cc4778cc4977cd4a76ce4b75cf4c74d0" + - "4d73d14e72d24f71d35171d45270d5536fd5546ed6556dd7566cd8576bd9586ada5a6ada5b69db5c" + - "68dc5d67dd5e66de5f65de6164df6263e06363e16462e26561e26660e3685fe4695ee56a5de56b5d" + - "e66c5ce76e5be76f5ae87059e97158e97257ea7457eb7556eb7655ec7754ed7953ed7a52ee7b51ef" + - "7c51ef7e50f07f4ff0804ef1814df1834cf2844bf3854bf3874af48849f48948f58b47f58c46f68d" + - "45f68f44f79044f79143f79342f89441f89540f9973ff9983ef99a3efa9b3dfa9c3cfa9e3bfb9f3a" + - "fba139fba238fca338fca537fca636fca835fca934fdab33fdac33fdae32fdaf31fdb130fdb22ffd" + - "b42ffdb52efeb72dfeb82cfeba2cfebb2bfebd2afebe2afec029fdc229fdc328fdc527fdc627fdc8" + - "27fdca26fdcb26fccd25fcce25fcd025fcd225fbd324fbd524fbd724fad824fada24f9dc24f9dd25" + - "f8df25f8e125f7e225f7e425f6e626f6e826f5e926f5eb27f4ed27f3ee27f3f027f2f227f1f426f1" + - "f525f0f724f0f921")), - w_ = "http://www.w3.org/1999/xhtml", - M_ = { - svg: "http://www.w3.org/2000/svg", - xhtml: w_, - xlink: "http://www.w3.org/1999/xlink", - xml: "http://www.w3.org/XML/1998/namespace", - xmlns: "http://www.w3.org/2000/xmlns/" - }, - T_ = function (t) { - var n = t += "", - e = n.indexOf(":"); - return e >= 0 && "xmlns" !== (n = t.slice(0, e)) && (t = t.slice(e + 1)), - M_.hasOwnProperty(n) - ? { - space: M_[n], - local: t - } - : t - }, - N_ = function (t) { - var n = T_(t); - return (n.local - ? Dr - : Ur)(n) - }, - k_ = 0; - Fr.prototype = Or.prototype = { - constructor: Fr, - 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._ - } - }; - var S_ = function (t) { - return function () { - return this.matches(t) - } - }; - if ("undefined" != typeof document) { - var A_ = document.documentElement; - if (!A_.matches) { - var E_ = A_.webkitMatchesSelector || A_.msMatchesSelector || A_.mozMatchesSelector || A_.oMatchesSelector; - S_ = function (t) { - return function () { - return E_.call(this, t) - } - } - } - } - var C_ = S_, - z_ = {}; - if (t.event = null, "undefined" != typeof document) { - var P_ = document.documentElement; - "onmouseenter" in P_ || (z_ = { - mouseenter: "mouseover", - mouseleave: "mouseout" - }) - } - var q_ = function (t, n, e) { - var r, - i, - o = Br(t + ""), - u = o.length; - { - if (!(arguments.length < 2)) { - for (a = n - ? Hr - : jr, null == e && (e = !1), r = 0; r < u; ++r) - this.each(a(o[r], n, e)); - return this - } - var a = this - .node() - .__on; - if (a) - for (var c, s = 0, f = a.length; s < f; ++s) - for (r = 0, c = a[s]; r < u; ++r) - if ((i = o[r]).type === c.type && i.name === c.name) - return c.value - } - }, - L_ = function () { - for (var n, e = t.event; n = e.sourceEvent;) - e = n; - return e - }, - R_ = function (t, n) { - var e = t.ownerSVGElement || t; - if (e.createSVGPoint) { - var r = e.createSVGPoint(); - return r.x = n.clientX, - r.y = n.clientY, - r = r.matrixTransform(t.getScreenCTM().inverse()), - [r.x, r.y] - } - var i = t.getBoundingClientRect(); - return [ - n.clientX - i.left - t.clientLeft, - n.clientY - i.top - t.clientTop - ] - }, - U_ = function (t) { - var n = L_(); - return n.changedTouches && (n = n.changedTouches[0]), - R_(t, n) - }, - D_ = function (t) { - return null == t - ? Vr - : function () { - return this.querySelector(t) - } - }, - O_ = function (t) { - "function" != typeof t && (t = D_(t)); - for (var n = this._groups, e = n.length, r = new Array(e), i = 0; i < e; ++i) - for (var o, u, a = n[i], c = a.length, s = r[i] = new Array(c), f = 0; f < c; ++f) - (o = a[f]) && (u = t.call(o, o.__data__, f, a)) && ("__data__" in o && (u.__data__ = o.__data__), s[f] = u); - return new zi(r, this._parents) - }, - F_ = function (t) { - return null == t - ? Wr - : function () { - return this.querySelectorAll(t) - } - }, - I_ = function (t) { - "function" != typeof t && (t = F_(t)); - for (var n = this._groups, e = n.length, r = [], i = [], o = 0; o < e; ++o) - for (var u, a = n[o], c = a.length, s = 0; s < c; ++s) - (u = a[s]) && (r.push(t.call(u, u.__data__, s, a)), i.push(u)); - return new zi(r, i) - }, - Y_ = function (t) { - "function" != typeof t && (t = C_(t)); - for (var n = this._groups, e = n.length, r = new Array(e), i = 0; i < e; ++i) - for (var o, u = n[i], a = u.length, c = r[i] = [], s = 0; s < a; ++s) - (o = u[s]) && t.call(o, o.__data__, s, u) && c.push(o); - return new zi(r, this._parents) - }, - B_ = function (t) { - return new Array(t.length) - }, - j_ = function () { - return new zi(this._enter || this._groups.map(B_), this._parents) - }; - $r.prototype = { - constructor: $r, - 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) - } - }; - var H_ = function (t) { - return function () { - return t - } - }, - X_ = "$", - V_ = function (t, n) { - if (!t) - return p = new Array(this.size()), - s = -1, - this.each(function (t) { - p[++s] = t - }), - p; - var e = n - ? Gr - : Zr, - r = this._parents, - i = this._groups; - "function" != typeof t && (t = H_(t)); - for (var o = i.length, u = new Array(o), a = new Array(o), c = new Array(o), s = 0; s < o; ++s) { - var f = r[s], - l = i[s], - h = l.length, - p = t.call(f, f && f.__data__, s, r), - d = p.length, - v = a[s] = new Array(d), - _ = u[s] = new Array(d), - y = c[s] = new Array(h); - e(f, l, v, _, y, p, n); - for (var g, m, x = 0, b = 0; x < d; ++x) - if (g = v[x]) { - for (x >= b && (b = x + 1); !(m = _[b]) && ++b < d;) - ; - g._next = m || null - } - } - return u = new zi(u, r), - u._enter = a, - u._exit = c, - u - }, - W_ = function () { - return new zi(this._exit || this._groups.map(B_), this._parents) - }, - $_ = function (t) { - for (var n = this._groups, e = t._groups, r = n.length, i = e.length, o = Math.min(r, i), u = new Array(r), a = 0; a < o; ++a) - for (var c, s = n[a], f = e[a], l = s.length, h = u[a] = new Array(l), p = 0; p < l; ++p) - (c = s[p] || f[p]) && (h[p] = c); - for (; a < r; ++a) - u[a] = n[a]; - return new zi(u, this._parents) - }, - Z_ = function () { - for (var t = this._groups, n = -1, e = t.length; ++n < e;) - for (var r, i = t[n], o = i.length - 1, u = i[o]; --o >= 0;) - (r = i[o]) && (u && u !== r.nextSibling && u.parentNode.insertBefore(r, u), u = r); - return this - }, - G_ = function (t) { - function n(n, e) { - return n && e - ? t(n.__data__, e.__data__) - : !n - !e - } - t || (t = Jr); - for (var e = this._groups, r = e.length, i = new Array(r), o = 0; o < r; ++o) { - for (var u, a = e[o], c = a.length, s = i[o] = new Array(c), f = 0; f < c; ++f) - (u = a[f]) && (s[f] = u); - s.sort(n) - } - return new zi(i, this._parents).order() - }, - J_ = function () { - var t = arguments[0]; - return arguments[0] = this, - t.apply(null, arguments), - this - }, - Q_ = function () { - var t = new Array(this.size()), - n = -1; - return this.each(function () { - t[++n] = this - }), - t - }, - K_ = 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 u = r[i]; - if (u) - return u - } - return null - }, - ty = function () { - var t = 0; - return this.each(function () { - ++t - }), - t - }, - ny = function () { - return !this.node() - }, - ey = function (t) { - for (var n = this._groups, e = 0, r = n.length; e < r; ++e) - for (var i, o = n[e], u = 0, a = o.length; u < a; ++u) - (i = o[u]) && t.call(i, i.__data__, u, o); - return this - }, - ry = function (t, n) { - var e = T_(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 - ? Kr - : Qr - : "function" == typeof n - ? e.local - ? ri - : ei - : e.local - ? ni - : ti)(e, n)) - }, - iy = function (t) { - return t.ownerDocument && t.ownerDocument.defaultView || t.document && t || t.defaultView - }, - oy = function (t, n, e) { - var r; - return arguments.length > 1 - ? this.each((null == n - ? ii - : "function" == typeof n - ? ui - : oi)(t, n, null == e - ? "" - : e)) - : iy(r = this.node()) - .getComputedStyle(r, null) - .getPropertyValue(t) - }, - uy = function (t, n) { - return arguments.length > 1 - ? this.each((null == n - ? ai - : "function" == typeof n - ? si - : ci)(t, n)) - : this.node()[t] - }; - hi.prototype = { - add: function (t) { - var n = this - ._names - .indexOf(t); - n < 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 ay = function (t, n) { - var e = fi(t + ""); - if (arguments.length < 2) { - for (var r = li(this.node()), i = -1, o = e.length; ++i < o;) - if (!r.contains(e[i])) - return !1; - return !0 - } - return this.each(("function" == typeof n - ? yi - : n - ? vi - : _i)(e, n)) - }, - cy = function (t) { - return arguments.length - ? this.each(null == t - ? gi - : ("function" == typeof t - ? xi - : mi)(t)) - : this - .node() - .textContent - }, - sy = function (t) { - return arguments.length - ? this.each(null == t - ? bi - : ("function" == typeof t - ? Mi - : wi)(t)) - : this - .node() - .innerHTML - }, - fy = function () { - return this.each(Ti) - }, - ly = function () { - return this.each(Ni) - }, - hy = function (t) { - var n = "function" == typeof t - ? t - : N_(t); - return this.select(function () { - return this.appendChild(n.apply(this, arguments)) - }) - }, - py = function (t, n) { - var e = "function" == typeof t - ? t - : N_(t), - r = null == n - ? ki - : "function" == typeof n - ? n - : D_(n); - return this.select(function () { - return this.insertBefore(e.apply(this, arguments), r.apply(this, arguments) || null) - }) - }, - dy = function () { - return this.each(Si) - }, - vy = function (t) { - return arguments.length - ? this.property("__data__", t) - : this - .node() - .__data__ - }, - _y = function (t, n) { - return this.each(("function" == typeof n - ? Ci - : Ei)(t, n)) - }, - yy = [null]; - zi.prototype = Pi.prototype = { - constructor: zi, - select: O_, - selectAll: I_, - filter: Y_, - data: V_, - enter: j_, - exit: W_, - merge: $_, - order: Z_, - sort: G_, - call: J_, - nodes: Q_, - node: K_, - size: ty, - empty: ny, - each: ey, - attr: ry, - style: oy, - property: uy, - classed: ay, - text: cy, - html: sy, - raise: fy, - lower: ly, - append: hy, - insert: py, - remove: dy, - datum: vy, - on: q_, - dispatch: _y - }; - var gy = function (t) { - return "string" == typeof t - ? new zi([ - [document.querySelector(t)] - ], [document.documentElement]) - : new zi([ - [t] - ], yy) - }, - my = function (t) { - return "string" == typeof t - ? new zi([document.querySelectorAll(t)], [document.documentElement]) - : new zi([null == t - ? [] - : t], yy) - }, - xy = function (t, n, e) { - arguments.length < 3 && (e = n, n = L_().changedTouches); - for (var r, i = 0, o = n - ? n.length - : 0; i < o; ++i) - if ((r = n[i]).identifier === e) - return R_(t, r); - return null - }, - by = function (t, n) { - null == n && (n = L_().touches); - for (var e = 0, r = n - ? n.length - : 0, i = new Array(r); e < r; ++e) - i[e] = R_(t, n[e]); - return i - }, - wy = Pn("start", "end", "interrupt"), - My = [], - Ty = 0, - Ny = 1, - ky = 2, - Sy = 3, - Ay = 4, - Ey = 5, - Cy = 6, - zy = function (t, n, e, r, i, o) { - var u = t.__transition; - if (u) { - if (e in u) - return - } else - t.__transition = {}; - Ui(t, e, { - name: n, - index: r, - group: i, - on: wy, - tween: My, - time: o.time, - delay: o.delay, - duration: o.duration, - ease: o.ease, - timer: null, - state: Ty - }) - }, - Py = function (t, n) { - var e, - r, - i, - o = t.__transition, - u = !0; - if (o) { - n = null == n - ? null - : n + ""; - for (i in o) - (e = o[i]).name === n - ? (r = e.state > ky && e.state < Ey, e.state = Cy, e.timer.stop(), r && e.on.call("interrupt", t, t.__data__, e.index, e.group), delete o[i]) - : u = !1; - u && delete t.__transition - } - }, - qy = function (t) { - return this.each(function () { - Py(this, t) - }) - }, - Ly = function (t, n) { - var e = this._id; - if (t += "", arguments.length < 2) { - for (var r, i = Ri(this.node(), e).tween, o = 0, u = i.length; o < u; ++o) - if ((r = i[o]).name === t) - return r.value; - return null - } - return this.each((null == n - ? Di - : Oi)(e, t, n)) - }, - Ry = function (t, n) { - var e; - return ("number" == typeof n - ? lp - : n instanceof Bt - ? up - : (e = Bt(n)) - ? (n = e, up) - : vp)(t, n) - }, - Uy = function (t, n) { - var e = T_(t), - r = "transform" === e - ? wp - : Ry; - return this.attrTween(t, "function" == typeof n - ? (e.local - ? Xi - : Hi)(e, r, Fi(this, "attr." + t, n)) - : null == n - ? (e.local - ? Yi - : Ii)(e) - : (e.local - ? ji - : Bi)(e, r, n)) - }, - Dy = 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 = T_(t); - return this.tween(e, (r.local - ? Vi - : Wi)(r, n)) - }, - Oy = function (t) { - var n = this._id; - return arguments.length - ? this.each(("function" == typeof t - ? $i - : Zi)(n, t)) - : Ri(this.node(), n).delay - }, - Fy = function (t) { - var n = this._id; - return arguments.length - ? this.each(("function" == typeof t - ? Gi - : Ji)(n, t)) - : Ri(this.node(), n).duration - }, - Iy = function (t) { - var n = this._id; - return arguments.length - ? this.each(Qi(n, t)) - : Ri(this.node(), n).ease - }, - Yy = function (t) { - "function" != typeof t && (t = C_(t)); - for (var n = this._groups, e = n.length, r = new Array(e), i = 0; i < e; ++i) - for (var o, u = n[i], a = u.length, c = r[i] = [], s = 0; s < a; ++s) - (o = u[s]) && t.call(o, o.__data__, s, u) && c.push(o); - return new so(r, this._parents, this._name, this._id) - }, - By = 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), u = new Array(r), a = 0; a < o; ++a) - for (var c, s = n[a], f = e[a], l = s.length, h = u[a] = new Array(l), p = 0; p < l; ++p) - (c = s[p] || f[p]) && (h[p] = c); - for (; a < r; ++a) - u[a] = n[a]; - return new so(u, this._parents, this._name, this._id) - }, - jy = function (t, n) { - var e = this._id; - return arguments.length < 2 - ? Ri(this.node(), e) - .on - .on(t) - : this.each(to(e, t, n)) - }, - Hy = function () { - return this.on("end.remove", no(this._id)) - }, - Xy = function (t) { - var n = this._name, - e = this._id; - "function" != typeof t && (t = D_(t)); - for (var r = this._groups, i = r.length, o = new Array(i), u = 0; u < i; ++u) - for (var a, c, s = r[u], f = s.length, l = o[u] = new Array(f), h = 0; h < f; ++h) - (a = s[h]) && (c = t.call(a, a.__data__, h, s)) && ("__data__" in a && (c.__data__ = a.__data__), l[h] = c, zy(l[h], n, e, h, l, Ri(a, e))); - return new so(o, this._parents, n, e) - }, - Vy = function (t) { - var n = this._name, - e = this._id; - "function" != typeof t && (t = F_(t)); - for (var r = this._groups, i = r.length, o = [], u = [], a = 0; a < i; ++a) - for (var c, s = r[a], f = s.length, l = 0; l < f; ++l) - if (c = s[l]) { - for (var h, p = t.call(c, c.__data__, l, s), d = Ri(c, e), v = 0, _ = p.length; v < _; ++v) - (h = p[v]) && zy(h, n, e, v, p, d); - o.push(p), - u.push(c) - } - return new so(o, u, n, e) - }, - Wy = Pi.prototype.constructor, - $y = function () { - return new Wy(this._groups, this._parents) - }, - Zy = function (t, n, e) { - var r = "transform" == (t += "") - ? bp - : Ry; - return null == n - ? this - .styleTween(t, eo(t, r)) - .on("end.style." + t, ro(t)) - : this.styleTween(t, "function" == typeof n - ? oo(t, r, Fi(this, "style." + t, n)) - : io(t, r, n), e) - }, - Gy = 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, uo(t, n, null == e - ? "" - : e)) - }, - Jy = function (t) { - return this.tween("text", "function" == typeof t - ? co(Fi(this, "text", t)) - : ao(null == t - ? "" - : t + "")) - }, - Qy = function () { - for (var t = this._name, n = this._id, e = lo(), r = this._groups, i = r.length, o = 0; o < i; ++o) - for (var u, a = r[o], c = a.length, s = 0; s < c; ++s) - if (u = a[s]) { - var f = Ri(u, n); - zy(u, t, e, s, a, { - time: f.time + f.delay + f.duration, - delay: 0, - duration: f.duration, - ease: f.ease - }) - } - return new so(r, this._parents, t, e) - }, - Ky = 0, - tg = Pi.prototype; - so.prototype = fo.prototype = { - constructor: so, - select: Xy, - selectAll: Vy, - filter: Yy, - merge: By, - selection: $y, - transition: Qy, - call: tg.call, - nodes: tg.nodes, - node: tg.node, - size: tg.size, - empty: tg.empty, - each: tg.each, - on: jy, - attr: Uy, - attrTween: Dy, - style: Zy, - styleTween: Gy, - text: Jy, - remove: Hy, - tween: Ly, - delay: Oy, - duration: Fy, - ease: Iy - }; - var ng = { - time: null, - delay: 0, - duration: 250, - ease: g - }, - eg = function (t) { - var n, - e; - t instanceof so - ? (n = t._id, t = t._name) - : (n = lo(), (e = ng).time = jn(), t = null == t - ? null - : t + ""); - for (var r = this._groups, i = r.length, o = 0; o < i; ++o) - for (var u, a = r[o], c = a.length, s = 0; s < c; ++s) - (u = a[s]) && zy(u, t, n, s, a, e || ho(u, n)); - return new so(r, this._parents, t, n) - }; - Pi.prototype.interrupt = qy, - Pi.prototype.transition = eg; - var rg = [null], - ig = function (t, n) { - var e, - r, - i = t.__transition; - if (i) { - n = null == n - ? null - : n + ""; - for (r in i) - if ((e = i[r]).state > Ny && e.name === n) - return new so([ - [t] - ], rg, n, + r) - } - return null - }, - og = Array.prototype.slice, - ug = function (t) { - return t - }, - ag = 1, - cg = 2, - sg = 3, - fg = 4, - lg = 1e-6, - hg = function () { - function t(t) { - var o, - u = 0; - t.eachAfter(function (t) { - var e = t.children; - e - ? (t.x = To(e), t.y = ko(e)) - : (t.x = o - ? u += n(t, o) - : 0, t.y = 0, o = t) - }); - var a = Ao(t), - c = Eo(t), - s = a.x - n(a, c) / 2, - f = c.x + n(c, a) / 2; - return t.eachAfter(i - ? function (n) { - n.x = (n.x - t.x) * e, - n.y = (t.y - n.y) * r - } - : function (n) { - n.x = (n.x - s) / (f - s) * e, - n.y = (1 - (t.y - ? n.y / t.y - : 1)) * r - }) - } - var n = Mo, - e = 1, - r = 1, - i = !1; - return t.separation = function (e) { - return arguments.length - ? (n = e, t) - : n - }, - t.size = function (n) { - return arguments.length - ? (i = !1, e =+ n[0], r =+ n[1], t) - : i - ? null - : [e, r] - }, - t.nodeSize = function (n) { - return arguments.length - ? (i = !0, e =+ n[0], r =+ n[1], t) - : i - ? [e, r] - : null - }, - t - }, - pg = function (t) { - var n, - e, - r, - i, - o = this, - u = [o]; - do - for (n = u.reverse(), u = []; o = n.pop();) - if (t(o), e = o.children) - for (r = 0, i = e.length; r < i; ++r) - u.push(e[r]); - while (u.length); - return this - }, - dg = function (t) { - for (var n, e, r = this, i = [r]; r = i.pop();) - if (t(r), n = r.children) - for (e = n.length - 1; e >= 0; --e) - i.push(n[e]); - return this - }, - vg = function (t) { - for (var n, e, r, i = this, o = [i], u = []; i = o.pop();) - if (u.push(i), n = i.children) - for (e = 0, r = n.length; e < r; ++e) - o.push(n[e]); - for (; i = u.pop();) - t(i); - return this - }, - _g = 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 - }) - }, - yg = function (t) { - return this.eachBefore(function (n) { - n.children && n - .children - .sort(t) - }) - }, - gg = function (t) { - for (var n = this, e = Co(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 - }, - mg = function () { - for (var t = this, n = [t]; t = t.parent;) - n.push(t); - return n - }, - xg = function () { - var t = []; - return this.each(function (n) { - t.push(n) - }), - t - }, - bg = function () { - var t = []; - return this.eachBefore(function (n) { - n.children || t.push(n) - }), - t - }, - wg = function () { - var t = this, - n = []; - return t.each(function (e) { - e !== t && n.push({source: e.parent, target: e}) - }), - n - }; - Uo.prototype = zo.prototype = { - constructor: Uo, - each: pg, - eachAfter: vg, - eachBefore: dg, - sum: _g, - sort: yg, - path: gg, - ancestors: mg, - descendants: xg, - leaves: bg, - links: wg, - copy: Po - }; - var Mg = function (t) { - for (var n, e = (t = t.slice()).length, r = null, i = r; e;) { - var o = new Do(t[e - 1]); - i = i - ? i.next = o - : r = o, - t[n] = t[--e] - } - return {head: r, tail: i} - }, - Tg = function (t) { - return Fo(Mg(t), []) - }, - Ng = function (t) { - return Wo(t), - t - }, - kg = function (t) { - return function () { - return t - } - }, - Sg = function () { - function t(t) { - return t.x = e / 2, - t.y = r / 2, - n - ? t - .eachBefore(Qo(n)) - .eachAfter(Ko(i, .5)) - .eachBefore(tu(1)) - : t - .eachBefore(Qo(Jo)) - .eachAfter(Ko(Go, 1)) - .eachAfter(Ko(i, t.r / Math.min(e, r))) - .eachBefore(tu(Math.min(e, r) / (2 * t.r))), - t - } - var n = null, - e = 1, - r = 1, - i = Go; - return t.radius = function (e) { - return arguments.length - ? (n = $o(e), t) - : n - }, - t.size = function (n) { - return arguments.length - ? (e =+ n[0], r =+ n[1], t) - : [e, r] - }, - t.padding = function (n) { - return arguments.length - ? (i = "function" == typeof n - ? n - : kg(+ n), t) - : i - }, - t - }, - Ag = function (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) - }, - Eg = function (t, n, e, r, i) { - for (var o, u = t.children, a = -1, c = u.length, s = t.value && (r - n) / t.value; ++a < c;) - o = u[a], - o.y0 = e, - o.y1 = i, - o.x0 = n, - o.x1 = n += o.value * s - }, - Cg = function () { - function t(t) { - var u = t.height + 1; - return t.x0 = t.y0 = i, - t.x1 = e, - t.y1 = r / u, - t.eachBefore(n(r, u)), - o && t.eachBefore(Ag), - t - } - function n(t, n) { - return function (e) { - e.children && Eg(e, e.x0, t * (e.depth + 1) / n, e.x1, t * (e.depth + 2) / n); - var r = e.x0, - o = e.y0, - u = e.x1 - i, - a = e.y1 - i; - u < r && (r = u = (r + u) / 2), - a < o && (o = a = (o + a) / 2), - e.x0 = r, - e.y0 = o, - e.x1 = u, - e.y1 = a - } - } - var e = 1, - r = 1, - i = 0, - o = !1; - return t.round = function (n) { - return arguments.length - ? (o = !!n, t) - : o - }, - t.size = function (n) { - return arguments.length - ? (e =+ n[0], r =+ n[1], t) - : [e, r] - }, - t.padding = function (n) { - return arguments.length - ? (i =+ n, t) - : i - }, - t - }, - zg = "$", - Pg = { - depth: -1 - }, - qg = {}, - Lg = function () { - function t(t) { - var r, - i, - o, - u, - a, - c, - s, - f = t.length, - l = new Array(f), - h = {}; - for (i = 0; i < f; ++i) - r = t[i], - a = l[i] = new Uo(r), - null != (c = n(r, i, t)) && (c += "") && (s = zg + (a.id = c), h[s] = s in h - ? qg - : a); - for (i = 0; i < f; ++i) - if (a = l[i], c = e(t[i], i, t), null != c && (c += "")) { - if (u = h[zg + c], !u) - throw new Error("missing: " + c); - if (u === qg) - throw new Error("ambiguous: " + c); - u.children - ? u - .children - .push(a) - : u.children = [a], - a.parent = u - } - else { - if (o) - throw new Error("multiple roots"); - o = a - } - if (!o) - throw new Error("no root"); - if (o.parent = Pg, o.eachBefore(function (t) { - t.depth = t.parent.depth + 1, - --f - }).eachBefore(Ro), o.parent = null, f > 0) - throw new Error("cycle"); - return o - } - var n = nu, - e = eu; - return t.id = function (e) { - return arguments.length - ? (n = Zo(e), t) - : n - }, - t.parentId = function (n) { - return arguments.length - ? (e = Zo(n), t) - : e - }, - t - }; - su.prototype = Object.create(Uo.prototype); - var Rg = function () { - function t(t) { - var r = fu(t); - if (r.eachAfter(n), r.parent.m = -r.z, r.eachBefore(e), c) - t.eachBefore(i); - else { - var s = t, - f = t, - l = t; - t.eachBefore(function (t) { - t.x < s.x && (s = t), - t.x > f.x && (f = t), - t.depth > l.depth && (l = t) - }); - var h = s === f - ? 1 - : o(s, f) / 2, - p = h - s.x, - d = u / (f.x + h + p), - v = a / (l.depth || 1); - t.eachBefore(function (t) { - t.x = (t.x + p) * d, - t.y = t.depth * v - }) - } - return t - } - function n(t) { - var n = t.children, - e = t.parent.children, - i = t.i - ? e[t.i - 1] - : null; - if (n) { - au(t); - var u = (n[0].z + n[n.length - 1].z) / 2; - i - ? (t.z = i.z + o(t._, i._), t.m = t.z - u) - : t.z = u - } else - i && (t.z = i.z + o(t._, i._)); - t.parent.A = r(t, i, t.parent.A || e[0]) - } - function e(t) { - t._.x = t.z + t.parent.m, - t.m += t.parent.m - } - function r(t, n, e) { - if (n) { - for (var r, i = t, u = t, a = n, c = i.parent.children[0], s = i.m, f = u.m, l = a.m, h = c.m; a = ou(a), i = iu(i), a && i;) - c = iu(c), - u = ou(u), - u.a = t, - r = a.z + l - i.z - s + o(a._, i._), - r > 0 && (uu(cu(a, t, e), t, r), s += r, f += r), - l += a.m, - s += i.m, - h += c.m, - f += u.m; - a && !ou(u) && (u.t = a, u.m += l - f), - i && !iu(c) && (c.t = i, c.m += s - h, e = t) - } - return e - } - function i(t) { - t.x *= u, - t.y = t.depth * a - } - var o = ru, - u = 1, - a = 1, - c = null; - return t.separation = function (n) { - return arguments.length - ? (o = n, t) - : o - }, - t.size = function (n) { - return arguments.length - ? (c = !1, u =+ n[0], a =+ n[1], t) - : c - ? null - : [u, a] - }, - t.nodeSize = function (n) { - return arguments.length - ? (c = !0, u =+ n[0], a =+ n[1], t) - : c - ? [u, a] - : null - }, - t - }, - Ug = function (t, n, e, r, i) { - for (var o, u = t.children, a = -1, c = u.length, s = t.value && (i - e) / t.value; ++a < c;) - o = u[a], - o.x0 = n, - o.x1 = r, - o.y0 = e, - o.y1 = e += o.value * s - }, - Dg = (1 + Math.sqrt(5)) / 2, - Og = function t(n) { - function e(t, e, r, i, o) { - lu(n, t, e, r, i, o) - } - return e.ratio = function (n) { - return t((n =+ n) > 1 - ? n - : 1) - }, - e - }(Dg), - Fg = function () { - function t(t) { - return t.x0 = t.y0 = 0, - t.x1 = i, - t.y1 = o, - t.eachBefore(n), - u = [0], - r && t.eachBefore(Ag), - t - } - function n(t) { - var n = u[t.depth], - r = t.x0 + n, - i = t.y0 + n, - o = t.x1 - n, - h = t.y1 - n; - o < r && (r = o = (r + o) / 2), - h < i && (i = h = (i + h) / 2), - t.x0 = r, - t.y0 = i, - t.x1 = o, - t.y1 = h, - t.children && (n = u[t.depth + 1] = a(t) / 2, r += l(t) - n, i += c(t) - n, o -= s(t) - n, h -= f(t) - n, o < r && (r = o = (r + o) / 2), h < i && (i = h = (i + h) / 2), e(t, r, i, o, h)) - } - var e = Og, - r = !1, - i = 1, - o = 1, - u = [0], - a = Go, - c = Go, - s = Go, - f = Go, - l = Go; - return t.round = function (n) { - return arguments.length - ? (r = !!n, t) - : r - }, - t.size = function (n) { - return arguments.length - ? (i =+ n[0], o =+ n[1], t) - : [i, o] - }, - t.tile = function (n) { - return arguments.length - ? (e = Zo(n), t) - : e - }, - t.padding = function (n) { - return arguments.length - ? t - .paddingInner(n) - .paddingOuter(n) - : t.paddingInner() - }, - t.paddingInner = function (n) { - return arguments.length - ? (a = "function" == typeof n - ? n - : kg(+ n), t) - : a - }, - t.paddingOuter = function (n) { - return arguments.length - ? t - .paddingTop(n) - .paddingRight(n) - .paddingBottom(n) - .paddingLeft(n) - : t.paddingTop() - }, - t.paddingTop = function (n) { - return arguments.length - ? (c = "function" == typeof n - ? n - : kg(+ n), t) - : c - }, - t.paddingRight = function (n) { - return arguments.length - ? (s = "function" == typeof n - ? n - : kg(+ n), t) - : s - }, - t.paddingBottom = function (n) { - return arguments.length - ? (f = "function" == typeof n - ? n - : kg(+ n), t) - : f - }, - t.paddingLeft = function (n) { - return arguments.length - ? (l = "function" == typeof n - ? n - : kg(+ n), t) - : l - }, - t - }, - Ig = function (t, n, e, r, i) { - function o(t, n, e, r, i, u, a) { - if (t >= n - 1) { - var s = c[t]; - return s.x0 = r, - s.y0 = i, - s.x1 = u, - s.y1 = a, - void 0 - } - for (var l = f[t], h = e / 2 + l, p = t + 1, d = n - 1; p < d;) { - var v = p + d >>> 1; - f[v] < h - ? p = v + 1 - : d = v - } - var _ = f[p] - l, - y = e - _; - if (a - i > u - r) { - var g = (i * y + a * _) / e; - o(t, p, _, r, i, u, g), - o(p, n, y, r, g, u, a) - } else { - var m = (r * y + u * _) / e; - o(t, p, _, r, i, m, a), - o(p, n, y, m, i, u, a) - } - } - var u, - a, - c = t.children, - s = c.length, - f = new Array(s + 1); - for (f[0] = a = u = 0; u < s; ++u) - f[u + 1] = a += c[u].value; - o(0, s, t.value, n, e, r, i) - }, - Yg = function (t, n, e, r, i) { - (1 & t.depth - ? Ug - : Eg)(t, n, e, r, i) - }, - Bg = function t(n) { - function e(t, e, r, i, o) { - if ((u = t._squarify) && u.ratio === n) - for (var u, a, c, s, f, l = -1, h = u.length, p = t.value; ++l < h;) { - for (a = u[l], c = a.children, s = a.value = 0, f = c.length; s < f; ++s) - a.value += c[s].value; - a.dice - ? Eg(a, e, r, i, r += (o - r) * a.value / p) - : Ug(a, e, r, e += (i - e) * a.value / p, o), - p -= a.value - } - else - t._squarify = u = lu(n, t, e, r, i, o), - u.ratio = n - } - return e.ratio = function (n) { - return t((n =+ n) > 1 - ? n - : 1) - }, - e - }(Dg), - jg = function (t, n) { - function e() { - var e, - i, - o = r.length, - u = 0, - a = 0; - for (e = 0; e < o; ++e) - i = r[e], - u += i.x, - a += i.y; - for (u = u / o - t, a = a / o - n, e = 0; e < o; ++e) - i = r[e], - i.x -= u, - i.y -= a - } - var r; - return null == t && (t = 0), - null == n && (n = 0), - e.initialize = function (t) { - r = t - }, - e.x = function (n) { - return arguments.length - ? (t =+ n, e) - : t - }, - e.y = function (t) { - return arguments.length - ? (n =+ t, e) - : n - }, - e - }, - Hg = function (t) { - return function () { - return t - } - }, - Xg = function () { - return 1e-6 * (Math.random() - .5) - }, - Vg = function (t) { - function n() { - function t(t, e, r, i, o) { - var a = t.data, - p = t.r, - d = l + p; - { - if (!a) - return e > s + d || i < s - d || r > f + d || o < f - d; - if (a.index > n) { - var v = s - a.x - a.vx, - _ = f - a.y - a.vy, - y = v * v + _ * _; - y < d * d && (0 === v && (v = Xg(), y += v * v), 0 === _ && (_ = Xg(), y += _ * _), y = (d - (y = Math.sqrt(y))) / y * u, c.vx += (v *= y) * (d = (p *= p) / (h + p)), c.vy += (_ *= y) * d, a.vx -= v * (d = 1 - d), a.vy -= _ * d) - } - } - } - for (var n, r, c, s, f, l, h, p = i.length, d = 0; d < a; ++d) - for (r = I(i, hu, pu).visitAfter(e), n = 0; n < p; ++n) - c = i[n], - l = o[n], - h = l * l, - s = c.x + c.vx, - f = c.y + c.vy, - r.visit(t) - } - function e(t) { - if (t.data) - return t.r = o[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 r() { - if (i) { - var n, - e = i.length; - for (o = new Array(e), n = 0; n < e; ++n) - o[n] =+ t(i[n], n, i) - } - } - var i, - o, - u = 1, - a = 1; - return "function" != typeof t && (t = Hg(null == t - ? 1 :+ t)), - n.initialize = function (t) { - i = t, - r() - }, - n.iterations = function (t) { - return arguments.length - ? (a =+ t, n) - : a - }, - n.strength = function (t) { - return arguments.length - ? (u =+ t, n) - : u - }, - n.radius = function (e) { - return arguments.length - ? (t = "function" == typeof e - ? e - : Hg(+ e), r(), n) - : t - }, - n - }, - Wg = function (t) { - function n(t) { - return 1 / Math.min(f[t.source.index], f[t.target.index]) - } - function e(n) { - for (var e = 0, r = t.length; e < v; ++e) - for (var i, o, u, s, f, h, p, d = 0; d < r; ++d) - i = t[d], - o = i.source, - u = i.target, - s = u.x + u.vx - o.x - o.vx || Xg(), - f = u.y + u.vy - o.y - o.vy || Xg(), - h = Math.sqrt(s * s + f * f), - h = (h - c[d]) / h * n * a[d], - s *= h, - f *= h, - u.vx -= s * (p = l[d]), - u.vy -= f * p, - o.vx += s * (p = 1 - p), - o.vy += f * p - } - function r() { - if (s) { - var n, - e, - r = s.length, - p = t.length, - d = o(s, h); - for (n = 0, f = new Array(r); n < r; ++n) - f[n] = 0; - for (n = 0; n < p; ++n) - e = t[n], - e.index = n, - "object" != typeof e.source && (e.source = vu(d, e.source)), - "object" != typeof e.target && (e.target = vu(d, e.target)), - ++f[e.source.index], - ++f[e.target.index]; - for (n = 0, l = new Array(p); n < p; ++n) - e = t[n], - l[n] = f[e.source.index] / (f[e.source.index] + f[e.target.index]); - a = new Array(p), - i(), - c = new Array(p), - u() - } - } - function i() { - if (s) - for (var n = 0, e = t.length; n < e; ++n) - a[n] =+ p(t[n], n, t) - } - function u() { - if (s) - for (var n = 0, e = t.length; n < e; ++n) - c[n] =+ d(t[n], n, t) - } - var a, - c, - s, - f, - l, - h = du, - p = n, - d = Hg(30), - v = 1; - return null == t && (t = []), - e.initialize = function (t) { - s = t, - r() - }, - e.links = function (n) { - return arguments.length - ? (t = n, r(), e) - : t - }, - e.id = function (t) { - return arguments.length - ? (h = t, e) - : h - }, - e.iterations = function (t) { - return arguments.length - ? (v =+ t, e) - : v - }, - e.strength = function (t) { - return arguments.length - ? (p = "function" == typeof t - ? t - : Hg(+ t), i(), e) - : p - }, - e.distance = function (t) { - return arguments.length - ? (d = "function" == typeof t - ? t - : Hg(+ t), u(), e) - : d - }, - e - }, - $g = 10, - Zg = Math.PI * (3 - Math.sqrt(5)), - Gg = function (t) { - function n() { - e(), - d.call("tick", u), - a < c && (p.stop(), d.call("end", u)) - } - function e() { - var n, - e, - r = t.length; - for (a += (f - a) * s, h.each(function (t) { - t(a) - }), n = 0; n < r; ++n) - e = t[n], - null == e.fx - ? e.x += e.vx *= l - : (e.x = e.fx, e.vx = 0), - null == e.fy - ? e.y += e.vy *= l - : (e.y = e.fy, e.vy = 0) - } - function r() { - for (var n, e = 0, r = t.length; e < r; ++e) { - if (n = t[e], n.index = e, isNaN(n.x) || isNaN(n.y)) { - var i = $g * Math.sqrt(e), - o = e * Zg; - n.x = i * Math.cos(o), - n.y = i * Math.sin(o) - } - (isNaN(n.vx) || isNaN(n.vy)) && (n.vx = n.vy = 0) - } - } - function i(n) { - return n.initialize && n.initialize(t), - n - } - var u, - a = 1, - c = .001, - s = 1 - Math.pow(c, 1 / 300), - f = 0, - l = .6, - h = o(), - p = Vn(n), - d = Pn("tick", "end"); - return null == t && (t = []), - r(), - u = { - tick: e, - restart: function () { - return p.restart(n), - u - }, - stop: function () { - return p.stop(), - u - }, - nodes: function (n) { - return arguments.length - ? (t = n, r(), h.each(i), u) - : t - }, - alpha: function (t) { - return arguments.length - ? (a =+ t, u) - : a - }, - alphaMin: function (t) { - return arguments.length - ? (c =+ t, u) - : c - }, - alphaDecay: function (t) { - return arguments.length - ? (s =+ t, u) :+ s - }, - alphaTarget: function (t) { - return arguments.length - ? (f =+ t, u) - : f - }, - velocityDecay: function (t) { - return arguments.length - ? (l = 1 - t, u) - : 1 - l - }, - force: function (t, n) { - return arguments.length > 1 - ? (null == n - ? h.remove(t) - : h.set(t, i(n)), u) - : h.get(t) - }, - find: function (n, e, r) { - var i, - o, - u, - a, - c, - s = 0, - f = t.length; - for (null == r - ? r = 1 / 0 - : r *= r, s = 0; s < f; ++s) - a = t[s], - i = n - a.x, - o = e - a.y, - u = i * i + o * o, - u < r && (c = a, r = u); - return c - }, - on: function (t, n) { - return arguments.length > 1 - ? (d.on(t, n), u) - : d.on(t) - } - } - }, - Jg = function () { - function t(t) { - var n, - a = i.length, - c = I(i, _u, yu).visitAfter(e); - for (u = t, n = 0; n < a; ++n) - o = i[n], - c.visit(r) - } - function n() { - if (i) { - var t, - n = i.length; - for (a = new Array(n), t = 0; t < n; ++t) - a[t] =+ c(i[t], t, i) - } - } - function e(t) { - var n, - e, - r, - i, - o, - u = 0; - if (t.length) { - for (r = i = o = 0; o < 4; ++o) - (n = t[o]) && (e = n.value) && (u += e, r += e * n.x, i += e * n.y); - t.x = r / u, - t.y = i / u - } else { - n = t, - n.x = n.data.x, - n.y = n.data.y; - do - u += a[n.data.index]; - while (n = n.next) - } - t.value = u - } - function r(t, n, e, r) { - if (!t.value) - return !0; - var i = t.x - o.x, - c = t.y - o.y, - h = r - n, - p = i * i + c * c; - if (h * h / l < p) - return p < f && (0 === i && (i = Xg(), p += i * i), 0 === c && (c = Xg(), p += c * c), p < s && (p = Math.sqrt(s * p)), o.vx += i * t.value * u / p, o.vy += c * t.value * u / p), - !0; - if (!(t.length || p >= f)) { - (t.data !== o || t.next) && (0 === i && (i = Xg(), p += i * i), 0 === c && (c = Xg(), p += c * c), p < s && (p = Math.sqrt(s * p))); - do - t.data !== o && (h = a[t.data.index] * u / p, o.vx += i * h, o.vy += c * h); - while (t = t.next) - } - } - var i, - o, - u, - a, - c = Hg(-30), - s = 1, - f = 1 / 0, - l = .81; - return t.initialize = function (t) { - i = t, - n() - }, - t.strength = function (e) { - return arguments.length - ? (c = "function" == typeof e - ? e - : Hg(+ e), n(), t) - : c - }, - t.distanceMin = function (n) { - return arguments.length - ? (s = n * n, t) - : Math.sqrt(s) - }, - t.distanceMax = function (n) { - return arguments.length - ? (f = n * n, t) - : Math.sqrt(f) - }, - t.theta = function (n) { - return arguments.length - ? (l = n * n, t) - : Math.sqrt(l) - }, - t - }, - Qg = function (t) { - function n(t) { - for (var n, e = 0, u = r.length; e < u; ++e) - n = r[e], - n.vx += (o[e] - n.x) * i[e] * t - } - function e() { - if (r) { - var n, - e = r.length; - for (i = new Array(e), o = new Array(e), n = 0; n < e; ++n) - i[n] = isNaN(o[n] =+ t(r[n], n, r)) - ? 0 :+ u(r[n], n, r) - } - } - var r, - i, - o, - u = Hg(.1); - return "function" != typeof t && (t = Hg(null == t - ? 0 :+ t)), - n.initialize = function (t) { - r = t, - e() - }, - n.strength = function (t) { - return arguments.length - ? (u = "function" == typeof t - ? t - : Hg(+ t), e(), n) - : u - }, - n.x = function (r) { - return arguments.length - ? (t = "function" == typeof r - ? r - : Hg(+ r), e(), n) - : t - }, - n - }, - Kg = function (t) { - function n(t) { - for (var n, e = 0, u = r.length; e < u; ++e) - n = r[e], - n.vy += (o[e] - n.y) * i[e] * t - } - function e() { - if (r) { - var n, - e = r.length; - for (i = new Array(e), o = new Array(e), n = 0; n < e; ++n) - i[n] = isNaN(o[n] =+ t(r[n], n, r)) - ? 0 :+ u(r[n], n, r) - } - } - var r, - i, - o, - u = Hg(.1); - return "function" != typeof t && (t = Hg(null == t - ? 0 :+ t)), - n.initialize = function (t) { - r = t, - e() - }, - n.strength = function (t) { - return arguments.length - ? (u = "function" == typeof t - ? t - : Hg(+ t), e(), n) - : u - }, - n.y = function (r) { - return arguments.length - ? (t = "function" == typeof r - ? r - : Hg(+ r), e(), n) - : t - }, - n - }, - tm = function () { - t - .event - .preventDefault(), - t - .event - .stopImmediatePropagation() - }, - nm = function (t) { - var n = t.document.documentElement, - e = gy(t).on("dragstart.drag", tm, !0); - "onselectstart" in n - ? e.on("selectstart.drag", tm, !0) - : (n.__noselect = n.style.MozUserSelect, n.style.MozUserSelect = "none") - }, - em = function (t) { - return function () { - return t - } - }; - xu.prototype.on = function () { - var t = this - ._ - .on - .apply(this._, arguments); - return t === this._ - ? this - : t - }; - var rm = function () { - function n(t) { - t - .on("mousedown.drag", e) - .on("touchstart.drag", o) - .on("touchmove.drag", u) - .on("touchend.drag touchcancel.drag", a) - .style("-webkit-tap-highlight-color", "rgba(0,0,0,0)") - } - function e() { - if (!f && l.apply(this, arguments)) { - var n = c("mouse", h.apply(this, arguments), U_, this, arguments); - n && (gy(t.event.view).on("mousemove.drag", r, !0).on("mouseup.drag", i, !0), nm(t.event.view), gu(), s = !1, n("start")) - } - } - function r() { - tm(), - s = !0, - d.mouse("drag") - } - function i() { - gy(t.event.view).on("mousemove.drag mouseup.drag", null), - mu(t.event.view, s), - tm(), - d.mouse("end") - } - function o() { - if (l.apply(this, arguments)) { - var n, - e, - r = t.event.changedTouches, - i = h.apply(this, arguments), - o = r.length; - for (n = 0; n < o; ++n) - (e = c(r[n].identifier, i, xy, this, arguments)) && (gu(), e("start")) - } - } - function u() { - var n, - e, - r = t.event.changedTouches, - i = r.length; - for (n = 0; n < i; ++n) - (e = d[r[n].identifier]) && (tm(), e("drag")) - } - function a() { - var n, - e, - r = t.event.changedTouches, - i = r.length; - for (f && clearTimeout(f), f = setTimeout(function () { - f = null - }, 500), n = 0; n < i; ++n) - (e = d[r[n].identifier]) && (gu(), e("end")) - } - function c(e, r, i, o, u) { - var a, - c, - s, - f = i(r, e), - l = v.copy(); - if (Xr(new xu(n, "beforestart", a, e, _, f[0], f[1], 0, 0, l), function () { - return null != (t.event.subject = a = p.apply(o, u)) && (c = a.x - f[0] || 0, s = a.y - f[1] || 0, !0) - })) - return function t(h) { - var p, - v = f; - switch (h) { - case "start": - d[e] = t, - p = _++; - break; - case "end": - delete d[e], - --_; - case "drag": - f = i(r, e), - p = _ - } - Xr(new xu(n, h, a, e, p, f[0] + c, f[1] + s, f[0] - v[0], f[1] - v[1], l), l.apply, l, [h, o, u]) - } - } - var s, - f, - l = bu, - h = wu, - p = Mu, - d = {}, - v = Pn("start", "drag", "end"), - _ = 0; - return n.filter = function (t) { - return arguments.length - ? (l = "function" == typeof t - ? t - : em(!!t), n) - : l - }, - n.container = function (t) { - return arguments.length - ? (h = "function" == typeof t - ? t - : em(t), n) - : h - }, - n.subject = function (t) { - return arguments.length - ? (p = "function" == typeof t - ? t - : em(t), n) - : p - }, - n.on = function () { - var t = v - .on - .apply(v, arguments); - return t === v - ? n - : t - }, - n - }, - im = function (t) { - return function () { - return t - } - }; - ku.prototype = { - constructor: ku, - insert: function (t, n) { - var e, - r, - i; - if (t) { - if (n.P = t, n.N = t.N, t.N && (t.N.P = n), t.N = n, t.R) { - for (t = t.R; t.L;) - t = t.L; - t.L = n - } else - t.R = n; - e = t - } else - this._ - ? (t = Cu(this._), n.P = null, n.N = t, t.P = t.L = n, e = t) - : (n.P = n.N = null, this._ = n, e = null); - for (n.L = n.R = null, n.U = e, n.C = !0, t = n; e && e.C;) - r = e.U, - e === r.L - ? (i = r.R, i && i.C - ? (e.C = i.C = !1, r.C = !0, t = r) - : (t === e.R && (Au(this, e), t = e, e = t.U), e.C = !1, r.C = !0, Eu(this, r))) - : (i = r.L, i && i.C - ? (e.C = i.C = !1, r.C = !0, t = r) - : (t === e.L && (Eu(this, e), t = e, e = t.U), e.C = !1, r.C = !0, Au(this, r))), - e = t.U; - this._.C = !1 - }, - remove: function (t) { - t.N && (t.N.P = t.P), - t.P && (t.P.N = t.N), - t.N = t.P = null; - var n, - e, - r, - i = t.U, - o = t.L, - u = t.R; - if (e = o - ? u - ? Cu(u) - : o - : u, i - ? i.L === t - ? i.L = e - : i.R = e - : this._ = e, o && u - ? (r = e.C, e.C = t.C, e.L = o, o.U = e, e !== u - ? (i = e.U, e.U = t.U, t = e.R, i.L = t, e.R = u, u.U = e) - : (e.U = i, i = e, t = e.R)) - : (r = t.C, t = e), t && (t.U = i), !r) { - if (t && t.C) - return void(t.C = !1); - do { - if (t === this._) - break; - if (t === i.L) { - if (n = i.R, n.C && (n.C = !1, i.C = !0, Au(this, i), n = i.R), n.L && n.L.C || n.R && n.R.C) { - n.R && n.R.C || (n.L.C = !1, n.C = !0, Eu(this, n), n = i.R), - n.C = i.C, - i.C = n.R.C = !1, - Au(this, i), - t = this._; - break - } - } else if (n = i.L, n.C && (n.C = !1, i.C = !0, Eu(this, i), n = i.L), n.L && n.L.C || n.R && n.R.C) { - n.L && n.L.C || (n.R.C = !1, n.C = !0, Au(this, n), n = i.L), - n.C = i.C, - i.C = n.L.C = !1, - Eu(this, i), - t = this._; - break - } - n.C = !0, - t = i, - i = i.U - } while (!t.C); - t && (t.C = !1) - } - } - }; - var om, - um, - am, - cm, - sm, - fm = [], - lm = [], - hm = 1e-6, - pm = 1e-12; - na.prototype = { - constructor: na, - polygons: function () { - var t = this.edges; - return this - .cells - .map(function (n) { - var e = n - .halfedges - .map(function (e) { - return Fu(n, t[e]) - }); - return e.data = n.site.data, - e - }) - }, - triangles: function () { - var t = [], - n = this.edges; - return this - .cells - .forEach(function (e, r) { - for (var i, o = e.site, u = e.halfedges, a = -1, c = u.length, s = n[u[c - 1]], f = s.left === o - ? s.right - : s.left; ++a < c;) - i = f, - s = n[u[a]], - f = s.left === o - ? s.right - : s.left, - i && f && r < i.index && r < f.index && Ku(o, i, f) < 0 && t.push([o.data, i.data, f.data]) - }), - t - }, - links: function () { - return this - .edges - .filter(function (t) { - return t.right - }) - .map(function (t) { - return {source: t.left.data, target: t.right.data} - }) - }, - find: function (t, n, e) { - var r, - i = this, - o = i._found || 0, - u = i.cells[o] || i.cells[o = 0], - a = t - u.site[0], - c = n - u.site[1], - s = a * a + c * c; - do - u = i.cells[r = o], - o = null, - u - .halfedges - .forEach(function (e) { - var r = i.edges[e], - a = r.left; - if (a !== u.site && a || (a = r.right)) { - var c = t - a[0], - f = n - a[1], - l = c * c + f * f; - l < s && (s = l, o = a.index) - } - }); - while (null !== o); - return i._found = r, - null == e || s <= e * e - ? u.site - : null - } - }; - var dm = function () { - function t(t) { - return new na(t.map(function (r, i) { - var o = [ - Math.round(n(r, i, t) / hm) * hm, - Math.round(e(r, i, t) / hm) * hm - ]; - return o.index = i, - o.data = r, - o - }), r) - } - var n = Tu, - e = Nu, - r = null; - return t.polygons = function (n) { - return t(n).polygons() - }, - t.links = function (n) { - return t(n).links() - }, - t.triangles = function (n) { - return t(n).triangles() - }, - t.x = function (e) { - return arguments.length - ? (n = "function" == typeof e - ? e - : im(+ e), t) - : n - }, - t.y = function (n) { - return arguments.length - ? (e = "function" == typeof n - ? n - : im(+ n), t) - : e - }, - t.extent = function (n) { - return arguments.length - ? (r = null == n - ? null - : [ - [ + n[0][0], + n[0][1] - ], - [ + n[1][0], + n[1][1] - ] - ], t) - : r && [ - [r[0][0], r[0][1] - ], - [r[1][0], r[1][1] - ] - ] - }, - t.size = function (n) { - return arguments.length - ? (r = null == n - ? null - : [ - [ - 0, 0 - ], - [ + n[0], + n[1] - ] - ], t) - : r && [r[1][0] - r[0][0], - r[1][1] - r[0][1] - ] - }, - t - }, - vm = function (t) { - return function () { - return t - } - }; - ra.prototype = { - constructor: ra, - scale: function (t) { - return 1 === t - ? this - : new ra(this.k * t, this.x, this.y) - }, - translate: function (t, n) { - return 0 === t & 0 === n - ? this - : new ra(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 _m = new ra(1, 0, 0); - ia.prototype = ra.prototype; - var ym = function () { - t - .event - .preventDefault(), - t - .event - .stopImmediatePropagation() - }, - gm = function () { - function n(t) { - t - .on("wheel.zoom", s) - .on("mousedown.zoom", f) - .on("dblclick.zoom", l) - .on("touchstart.zoom", h) - .on("touchmove.zoom", p) - .on("touchend.zoom touchcancel.zoom", d) - .style("-webkit-tap-highlight-color", "rgba(0,0,0,0)") - .property("__zoom", ca) - } - function e(t, n) { - return n = Math.max(m, Math.min(x, n)), - n === t.k - ? t - : new ra(n, t.x, t.y) - } - function r(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 ra(t.k, r, i) - } - function i(t, n) { - var e = Math.min(0, t.invertX(n[0][0]) - b) || Math.max(0, t.invertX(n[1][0]) - w), - r = Math.min(0, t.invertY(n[0][1]) - M) || Math.max(0, t.invertY(n[1][1]) - T); - return e || r - ? t.translate(e, r) - : t - } - function o(t) { - return [ - ( + t[0][0] + + t[1][0]) / 2, - ( + t[0][1] + + t[1][1]) / 2 - ] - } - function u(t, n, e) { - t - .on("start.zoom", function () { - a(this, arguments).start() - }) - .on("interrupt.zoom end.zoom", function () { - a(this, arguments).end() - }) - .tween("zoom", function () { - var t = this, - r = arguments, - i = a(t, r), - u = g.apply(t, r), - c = e || o(u), - s = Math.max(u[1][0] - u[0][0], u[1][1] - u[0][1]), - f = t.__zoom, - l = "function" == typeof n - ? n.apply(t, r) - : n, - h = Sp(f.invert(c).concat(s / f.k), l.invert(c).concat(s / l.k)); - return function (t) { - if (1 === t) - t = l; - else { - var n = h(t), - e = s / n[2]; - t = new ra(e, c[0] - n[0] * e, c[1] - n[1] * e) - } - i.zoom(null, t) - } - }) - } - function a(t, n) { - for (var e, r = 0, i = k.length; r < i; ++r) - if ((e = k[r]).that === t) - return e; - return new c(t, n) - } - function c(t, n) { - this.that = t, - this.args = n, - this.index = -1, - this.active = 0, - this.extent = g.apply(t, n) - } - function s() { - function n() { - o.wheel = null, - o.end() - } - if (y.apply(this, arguments)) { - var o = a(this, arguments), - u = this.__zoom, - c = Math.max(m, Math.min(x, u.k * Math.pow(2, -t.event.deltaY * (t.event.deltaMode - ? 120 - : 1) / 500))), - s = U_(this); - if (o.wheel) - o.mouse[0][0] === s[0] && o.mouse[0][1] === s[1] || (o.mouse[1] = u.invert(o.mouse[0] = s)), - clearTimeout(o.wheel); - else { - if (u.k === c) - return; - o.mouse = [ - s, u.invert(s) - ], - Py(this), - o.start() - } - ym(), - o.wheel = setTimeout(n, E), - o.zoom("mouse", i(r(e(u, c), o.mouse[0], o.mouse[1]), o.extent)) - } - } - function f() { - function n() { - ym(), - o.moved = !0, - o.zoom("mouse", i(r(o.that.__zoom, o.mouse[0] = U_(o.that), o.mouse[1]), o.extent)) - } - function e() { - u.on("mousemove.zoom mouseup.zoom", null), - mu(t.event.view, o.moved), - ym(), - o.end() - } - if (!_ && y.apply(this, arguments)) { - var o = a(this, arguments), - u = gy(t.event.view) - .on("mousemove.zoom", n, !0) - .on("mouseup.zoom", e, !0), - c = U_(this); - nm(t.event.view), - oa(), - o.mouse = [ - c, - this - .__zoom - .invert(c) - ], - Py(this), - o.start() - } - } - function l() { - if (y.apply(this, arguments)) { - var o = this.__zoom, - a = U_(this), - c = o.invert(a), - s = o.k * (t.event.shiftKey - ? .5 - : 2), - f = i(r(e(o, s), a, c), g.apply(this, arguments)); - ym(), - N > 0 - ? gy(this) - .transition() - .duration(N) - .call(u, f, a) - : gy(this).call(n.transform, f) - } - } - function h() { - if (y.apply(this, arguments)) { - var n, - e, - r, - i = a(this, arguments), - o = t.event.changedTouches, - u = o.length; - for (oa(), n = 0; n < u; ++n) - e = o[n], - r = xy(this, o, e.identifier), - r = [ - r, - this - .__zoom - .invert(r), - e.identifier - ], - i.touch0 - ? i.touch1 || (i.touch1 = r) - : i.touch0 = r; - return v && (v = clearTimeout(v), !i.touch1) - ? (i.end(), l.apply(this, arguments)) - : void(t.event.touches.length === u && (v = setTimeout(function () { - v = null - }, A), Py(this), i.start())) - } - } - function p() { - var n, - o, - u, - c, - s = a(this, arguments), - f = t.event.changedTouches, - l = f.length; - for (ym(), v && (v = clearTimeout(v)), n = 0; n < l; ++n) - o = f[n], - u = xy(this, f, o.identifier), - s.touch0 && s.touch0[2] === o.identifier - ? s.touch0[0] = u - : s.touch1 && s.touch1[2] === o.identifier && (s.touch1[0] = u); - if (o = s.that.__zoom, s.touch1) { - var h = s.touch0[0], - p = s.touch0[1], - d = s.touch1[0], - _ = s.touch1[1], - y = (y = d[0] - h[0]) * y + (y = d[1] - h[1]) * y, - g = (g = _[0] - p[0]) * g + (g = _[1] - p[1]) * g; - o = e(o, Math.sqrt(y / g)), - u = [ - (h[0] + d[0]) / 2, - (h[1] + d[1]) / 2 - ], - c = [ - (p[0] + _[0]) / 2, - (p[1] + _[1]) / 2 - ] - } else { - if (!s.touch0) - return; - u = s.touch0[0], - c = s.touch0[1] - } - s.zoom("touch", i(r(o, u, c), s.extent)) - } - function d() { - var n, - e, - r = a(this, arguments), - i = t.event.changedTouches, - o = i.length; - for (oa(), _ && clearTimeout(_), _ = setTimeout(function () { - _ = null - }, A), n = 0; n < o; ++n) - e = i[n], - r.touch0 && r.touch0[2] === e.identifier - ? delete r.touch0 - : r.touch1 && r.touch1[2] === e.identifier && delete r.touch1; - r.touch1 && !r.touch0 && (r.touch0 = r.touch1, delete r.touch1), - r.touch0 || r.end() - } - var v, - _, - y = ua, - g = aa, - m = 0, - x = 1 / 0, - b = -x, - w = x, - M = b, - T = w, - N = 250, - k = [], - S = Pn("start", "zoom", "end"), - A = 500, - E = 150; - return n.transform = function (t, n) { - var e = t.selection - ? t.selection() - : t; - e.property("__zoom", ca), - t !== e - ? u(t, n) - : e - .interrupt() - .each(function () { - a(this, arguments) - .start() - .zoom(null, "function" == typeof n - ? n.apply(this, arguments) - : n) - .end() - }) - }, - n.scaleBy = function (t, e) { - n - .scaleTo(t, function () { - var t = this.__zoom.k, - n = "function" == typeof e - ? e.apply(this, arguments) - : e; - return t * n - }) - }, - n.scaleTo = function (t, u) { - n - .transform(t, function () { - var t = g.apply(this, arguments), - n = this.__zoom, - a = o(t), - c = n.invert(a), - s = "function" == typeof u - ? u.apply(this, arguments) - : u; - return i(r(e(n, s), a, c), t) - }) - }, - n.translateBy = function (t, e, r) { - n - .transform(t, function () { - return i(this.__zoom.translate("function" == typeof e - ? e.apply(this, arguments) - : e, "function" == typeof r - ? r.apply(this, arguments) - : r), g.apply(this, arguments)) - }) - }, - c.prototype = { - start: function () { - return 1 === ++this.active && (this.index = k.push(this) - 1, 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 && (k.splice(this.index, 1), this.index = -1, this.emit("end")), - this - }, - emit: function (t) { - Xr(new ea(n, t, this.that.__zoom), S.apply, S, [t, this.that, this.args]) - } - }, - n.filter = function (t) { - return arguments.length - ? (y = "function" == typeof t - ? t - : vm(!!t), n) - : y - }, - n.extent = function (t) { - return arguments.length - ? (g = "function" == typeof t - ? t - : vm([ - [ + t[0][0], + t[0][1] - ], - [ + t[1][0], + t[1][1] - ] - ]), n) - : g - }, - n.scaleExtent = function (t) { - return arguments.length - ? (m =+ t[0], x =+ t[1], n) - : [m, x] - }, - n.translateExtent = function (t) { - return arguments.length - ? (b =+ t[0][0], w =+ t[1][0], M =+ t[0][1], T =+ t[1][1], n) - : [ - [ - b, M - ], - [w, T] - ] - }, - n.duration = function (t) { - return arguments.length - ? (N =+ t, n) - : N - }, - n.on = function () { - var t = S - .on - .apply(S, arguments); - return t === S - ? n - : t - }, - n - }, - mm = function (t) { - return function () { - return t - } - }, - xm = function (t, n, e) { - this.target = t, - this.type = n, - this.selection = e - }, - bm = function () { - t - .event - .preventDefault(), - t - .event - .stopImmediatePropagation() - }, - wm = { - name: "drag" - }, - Mm = { - name: "space" - }, - Tm = { - name: "handle" - }, - Nm = { - name: "center" - }, - km = { - name: "x", - handles: ["e", "w"].map(fa), - input: function (t, n) { - return t && [ - [t[0], n[0][1] - ], - [t[1], n[1][1] - ] - ] - }, - output: function (t) { - return t && [t[0][0], t[1][0] - ] - } - }, - Sm = { - name: "y", - handles: ["n", "s"].map(fa), - input: function (t, n) { - return t && [ - [ - n[0][0], t[0] - ], - [n[1][0], t[1]] - ] - }, - output: function (t) { - return t && [t[0][1], t[1][1] - ] - } - }, - Am = { - name: "xy", - handles: [ - "n", - "e", - "s", - "w", - "nw", - "ne", - "se", - "sw" - ].map(fa), - input: function (t) { - return t - }, - output: function (t) { - return t - } - }, - Em = { - 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" - }, - Cm = { - e: "w", - w: "e", - nw: "ne", - ne: "nw", - se: "sw", - sw: "se" - }, - zm = { - n: "s", - s: "n", - nw: "sw", - ne: "se", - se: "ne", - sw: "nw" - }, - Pm = { - overlay: 1, - selection: 1, - n: null, - e: 1, - s: null, - w: -1, - nw: -1, - ne: 1, - se: 1, - sw: -1 - }, - qm = { - overlay: 1, - selection: 1, - n: -1, - e: null, - s: 1, - w: null, - nw: -1, - ne: -1, - se: 1, - sw: 1 - }, - Lm = function () { - return ga(Am) - }, - Rm = Math.cos, - Um = Math.sin, - Dm = Math.PI, - Om = Dm / 2, - Fm = 2 * Dm, - Im = Math.max, - Ym = function () { - function t(t) { - var o, - u, - a, - c, - s, - f, - l = t.length, - h = [], - p = Os(l), - d = [], - v = [], - _ = v.groups = new Array(l), - y = new Array(l * l); - for (o = 0, s = -1; ++s < l;) { - for (u = 0, f = -1; ++f < l;) - u += t[s][f]; - h.push(u), - d.push(Os(l)), - o += u - } - for (e && p.sort(function (t, n) { - return e(h[t], h[n]) - }), r && d.forEach(function (n, e) { - n - .sort(function (n, i) { - return r(t[e][n], t[e][i]) - }) - }), o = Im(0, Fm - n * l) / o, c = o - ? n - : Fm / l, u = 0, s = -1; ++s < l;) { - for (a = u, f = -1; ++f < l;) { - var g = p[s], - m = d[g][f], - x = t[g][m], - b = u, - w = u += x * o; - y[m * l + g] = { - index: g, - subindex: m, - startAngle: b, - endAngle: w, - value: x - } - } - _[g] = { - index: g, - startAngle: a, - endAngle: u, - value: h[g] - }, - u += c - } - for (s = -1; ++s < l;) - for (f = s - 1; ++f < l;) { - var M = y[f * l + s], - T = y[s * l + f]; - (M.value || T.value) && v.push(M.value < T.value - ? { - source: T, - target: M - } - : { - source: M, - target: T - }) - } - return i - ? v.sort(i) - : v - } - var n = 0, - e = null, - r = null, - i = null; - return t.padAngle = function (e) { - return arguments.length - ? (n = Im(0, e), t) - : n - }, - t.sortGroups = function (n) { - return arguments.length - ? (e = n, t) - : e - }, - t.sortSubgroups = function (n) { - return arguments.length - ? (r = n, t) - : r - }, - t.sortChords = function (n) { - return arguments.length - ? (null == n - ? i = null - : (i = ma(n))._ = n, t) - : i && i._ - }, - t - }, - Bm = Array.prototype.slice, - jm = function (t) { - return function () { - return t - } - }, - Hm = function () { - function t() { - var t, - a = Bm.call(arguments), - c = n.apply(this, a), - s = e.apply(this, a), - f =+ r.apply(this, (a[0] = c, a)), - l = i.apply(this, a) - Om, - h = o.apply(this, a) - Om, - p = f * Rm(l), - d = f * Um(l), - v =+ r.apply(this, (a[0] = s, a)), - _ = i.apply(this, a) - Om, - y = o.apply(this, a) - Om; - if (u || (u = t = L()), u.moveTo(p, d), u.arc(0, 0, f, l, h), l === _ && h === y || (u.quadraticCurveTo(0, 0, v * Rm(_), v * Um(_)), u.arc(0, 0, v, _, y)), u.quadraticCurveTo(0, 0, p, d), u.closePath(), t) - return u = null, - t + "" || null - } - var n = xa, - e = ba, - r = wa, - i = Ma, - o = Ta, - u = null; - return t.radius = function (n) { - return arguments.length - ? (r = "function" == typeof n - ? n - : jm(+ n), t) - : r - }, - t.startAngle = function (n) { - return arguments.length - ? (i = "function" == typeof n - ? n - : jm(+ n), t) - : i - }, - t.endAngle = function (n) { - return arguments.length - ? (o = "function" == typeof n - ? n - : jm(+ n), t) - : o - }, - t.source = function (e) { - return arguments.length - ? (n = e, t) - : n - }, - t.target = function (n) { - return arguments.length - ? (e = n, t) - : e - }, - t.context = function (n) { - return arguments.length - ? (u = null == n - ? null - : n, t) - : u - }, - t - }, - Xm = function () { - return new Na - }; - Na.prototype = { - constructor: Na, - reset: function () { - this.s = this.t = 0 - }, - add: function (t) { - ka(Mx, t, this.t), - ka(this, Mx.s, this.s), - this.s - ? this.t += Mx.t - : this.s = Mx.t - }, - valueOf: function () { - return this.s - } - }; - var Vm, - Wm, - $m, - Zm, - Gm, - Jm, - Qm, - Km, - tx, - nx, - ex, - rx, - ix, - ox, - ux, - ax, - cx, - sx, - fx, - lx, - hx, - px, - dx, - vx, - _x, - yx, - gx, - mx, - xx, - bx, - wx, - Mx = new Na, - Tx = 1e-6, - Nx = 1e-12, - kx = Math.PI, - Sx = kx / 2, - Ax = kx / 4, - Ex = 2 * kx, - Cx = 180 / kx, - zx = kx / 180, - Px = Math.abs, - qx = Math.atan, - Lx = Math.atan2, - Rx = Math.cos, - Ux = Math.ceil, - Dx = Math.exp, - Ox = Math.log, - Fx = Math.pow, - Ix = Math.sin, - Yx = Math.sign || function (t) { - return t > 0 - ? 1 - : t < 0 - ? -1 - : 0; - }, - Bx = Math.sqrt, - jx = Math.tan, - Hx = { - Feature: function (t, n) { - za(t.geometry, n) - }, - FeatureCollection: function (t, n) { - for (var e = t.features, r = -1, i = e.length; ++r < i;) - za(e[r].geometry, n) - } - }, - Xx = { - 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) { - Pa(t.coordinates, n, 0) - }, - MultiLineString: function (t, n) { - for (var e = t.coordinates, r = -1, i = e.length; ++r < i;) - Pa(e[r], n, 0) - }, - Polygon: function (t, n) { - qa(t.coordinates, n) - }, - MultiPolygon: function (t, n) { - for (var e = t.coordinates, r = -1, i = e.length; ++r < i;) - qa(e[r], n) - }, - GeometryCollection: function (t, n) { - for (var e = t.geometries, r = -1, i = e.length; ++r < i;) - za(e[r], n) - } - }, - Vx = function (t, n) { - t && Hx.hasOwnProperty(t.type) - ? Hx[t.type](t, n) - : za(t, n) - }, - Wx = Xm(), - $x = Xm(), - Zx = { - point: Ca, - lineStart: Ca, - lineEnd: Ca, - polygonStart: function () { - Wx.reset(), - Zx.lineStart = La, - Zx.lineEnd = Ra - }, - polygonEnd: function () { - var t =+ Wx; - $x.add(t < 0 - ? Ex + t - : t), - this.lineStart = this.lineEnd = this.point = Ca - }, - sphere: function () { - $x.add(Ex) - } - }, - Gx = function (t) { - return $x.reset(), - Vx(t, Zx), - 2 * $x - }, - Jx = Xm(), - Qx = { - point: Xa, - lineStart: Wa, - lineEnd: $a, - polygonStart: function () { - Qx.point = Za, - Qx.lineStart = Ga, - Qx.lineEnd = Ja, - Jx.reset(), - Zx.polygonStart() - }, - polygonEnd: function () { - Zx.polygonEnd(), - Qx.point = Xa, - Qx.lineStart = Wa, - Qx.lineEnd = $a, - Wx < 0 - ? (Jm = -(Km = 180), Qm = -(tx = 90)) - : Jx > Tx - ? tx = 90 - : Jx < -Tx && (Qm = -90), - ux[0] = Jm, - ux[1] = Km - } - }, - Kx = function (t) { - var n, - e, - r, - i, - o, - u, - a; - if (tx = Km = -(Jm = Qm = 1 / 0), ox = [], Vx(t, Qx), e = ox.length) { - for (ox.sort(Ka), n = 1, r = ox[0], o = [r]; n < e; ++n) - i = ox[n], - tc(r, i[0]) || tc(r, i[1]) - ? (Qa(r[0], i[1]) > Qa(r[0], r[1]) && (r[1] = i[1]), Qa(i[0], r[1]) > Qa(r[0], r[1]) && (r[0] = i[0])) - : o.push(r = i); - for (u = -(1 / 0), e = o.length - 1, n = 0, r = o[e]; n <= e; r = i, ++n) - i = o[n], - (a = Qa(r[1], i[0])) > u && (u = a, Jm = i[0], Km = r[1]) - } - return ox = ux = null, - Jm === 1 / 0 || Qm === 1 / 0 - ? [ - [ - NaN, NaN - ], - [NaN, NaN] - ] - : [ - [ - Jm, Qm - ], - [Km, tx] - ] - }, - tb = { - sphere: Ca, - point: nc, - lineStart: rc, - lineEnd: uc, - polygonStart: function () { - tb.lineStart = ac, - tb.lineEnd = cc - }, - polygonEnd: function () { - tb.lineStart = rc, - tb.lineEnd = uc - } - }, - nb = function (t) { - ax = cx = sx = fx = lx = hx = px = dx = vx = _x = yx = 0, - Vx(t, tb); - var n = vx, - e = _x, - r = yx, - i = n * n + e * e + r * r; - return i < Nx && (n = hx, e = px, r = dx, cx < Tx && (n = sx, e = fx, r = lx), i = n * n + e * e + r * r, i < Nx) - ? [NaN, NaN] - : [ - Lx(e, n) * Cx, - Aa(r / Bx(i)) * Cx - ] - }, - eb = function (t) { - return function () { - return t - } - }, - rb = function (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), - e && t.invert(e[0], e[1]) - }), - e - }; - lc.invert = lc; - var ib, - ob, - ub, - ab, - cb, - sb, - fb, - lb, - hb, - pb, - db, - vb = function (t) { - function n(n) { - return n = t(n[0] * zx, n[1] * zx), - n[0] *= Cx, - n[1] *= Cx, - n - } - return t = hc(t[0] * zx, t[1] * zx, t.length > 2 - ? t[2] * zx - : 0), - n.invert = function (n) { - return n = t.invert(n[0] * zx, n[1] * zx), - n[0] *= Cx, - n[1] *= Cx, - n - }, - n - }, - _b = function () { - function t(t, n) { - e.push(t = r(t, n)), - t[0] *= Cx, - t[1] *= Cx - } - function n() { - var t = i.apply(this, arguments), - n = o.apply(this, arguments) * zx, - c = u.apply(this, arguments) * zx; - return e = [], - r = hc(-t[0] * zx, -t[1] * zx, 0).invert, - _c(a, n, c, 1), - t = { - type: "Polygon", - coordinates: [e] - }, - e = r = null, - t - } - var e, - r, - i = eb([0, 0]), - o = eb(90), - u = eb(6), - a = { - point: t - }; - return n.center = function (t) { - return arguments.length - ? (i = "function" == typeof t - ? t - : eb([ + t[0], + t[1] - ]), n) - : i - }, - n.radius = function (t) { - return arguments.length - ? (o = "function" == typeof t - ? t - : eb(+ t), n) - : o - }, - n.precision = function (t) { - return arguments.length - ? (u = "function" == typeof t - ? t - : eb(+ t), n) - : u - }, - n - }, - yb = function () { - var t, - n = []; - return { - point: function (n, e) { - t.push([n, e]) - }, - lineStart: function () { - n.push(t = []) - }, - lineEnd: Ca, - rejoin: function () { - n.length > 1 && n.push(n.pop().concat(n.shift())) - }, - result: function () { - var e = n; - return n = [], - t = null, - e - } - } - }, - gb = function (t, n, e, r, i, o) { - var u, - a = t[0], - c = t[1], - s = n[0], - f = n[1], - l = 0, - h = 1, - p = s - a, - d = f - c; - if (u = e - a, p || !(u > 0)) { - if (u /= p, p < 0) { - if (u < l) - return; - u < h && (h = u) - } else if (p > 0) { - if (u > h) - return; - u > l && (l = u) - } - if (u = i - a, p || !(u < 0)) { - if (u /= p, p < 0) { - if (u > h) - return; - u > l && (l = u) - } else if (p > 0) { - if (u < l) - return; - u < h && (h = u) - } - if (u = r - c, d || !(u > 0)) { - if (u /= d, d < 0) { - if (u < l) - return; - u < h && (h = u) - } else if (d > 0) { - if (u > h) - return; - u > l && (l = u) - } - if (u = o - c, d || !(u < 0)) { - if (u /= d, d < 0) { - if (u > h) - return; - u > l && (l = u) - } else if (d > 0) { - if (u < l) - return; - u < h && (h = u) - } - return l > 0 && (t[0] = a + l * p, t[1] = c + l * d), - h < 1 && (n[0] = a + h * p, n[1] = c + h * d), - !0 - } - } - } - } - }, - mb = function (t, n) { - return Px(t[0] - n[0]) < Tx && Px(t[1] - n[1]) < Tx - }, - xb = function (t, n, e, r, i) { - var o, - u, - a = [], - c = []; - if (t.forEach(function (t) { - if (!((n = t.length - 1) <= 0)) { - var n, - e, - r = t[0], - u = t[n]; - if (mb(r, u)) { - for (i.lineStart(), o = 0; o < n; ++o) - i.point((r = t[o])[0], r[1]); - return void i.lineEnd() - } - a.push(e = new gc(r, t, null, !0)), - c.push(e.o = new gc(r, null, e, !1)), - a.push(e = new gc(u, t, null, !1)), - c.push(e.o = new gc(u, null, e, !0)) - } - }), a.length) { - for (c.sort(n), mc(a), mc(c), o = 0, u = c.length; o < u; ++o) - c[o].e = e = !e; - for (var s, f, l = a[0];;) { - for (var h = l, p = !0; h.v;) - if ((h = h.n) === l) - return; - s = h.z, - i.lineStart(); - do { - if (h.v = h.o.v = !0, h.e) { - if (p) - for (o = 0, u = s.length; o < u; ++o) - i.point((f = s[o])[0], f[1]); - else - r(h.x, h.n.x, 1, i); - h = h.n - } else { - if (p) - for (s = h.p.z, o = s.length - 1; o >= 0; --o) - i.point((f = s[o])[0], f[1]); - else - r(h.x, h.p.x, -1, i); - h = h.p - } - h = h.o, - s = h.z, - p = !p - } while (!h.v); - i.lineEnd() - } - } - }, - bb = 1e9, - wb = -bb, - Mb = function () { - var t, - n, - e, - r = 0, - i = 0, - o = 960, - u = 500; - return e = { - stream: function (e) { - return t && n === e - ? t - : t = xc(r, i, o, u)(n = e) - }, - extent: function (a) { - return arguments.length - ? (r =+ a[0][0], i =+ a[0][1], o =+ a[1][0], u =+ a[1][1], t = n = null, e) - : [ - [ - r, i - ], - [o, u] - ] - } - } - }, - Tb = Xm(), - Nb = { - sphere: Ca, - point: Ca, - lineStart: bc, - lineEnd: Ca, - polygonStart: Ca, - polygonEnd: Ca - }, - kb = function (t) { - return Tb.reset(), - Vx(t, Nb), + Tb - }, - Sb = [ - null, null - ], - Ab = { - type: "LineString", - coordinates: Sb - }, - Eb = function (t, n) { - return Sb[0] = t, - Sb[1] = n, - kb(Ab) - }, - Cb = function (t, n) { - var e = t[0] * zx, - r = t[1] * zx, - i = n[0] * zx, - o = n[1] * zx, - u = Rx(r), - a = Ix(r), - c = Rx(o), - s = Ix(o), - f = u * Rx(e), - l = u * Ix(e), - h = c * Rx(i), - p = c * Ix(i), - d = 2 * Aa(Bx(Ea(o - r) + u * c * Ea(i - e))), - v = Ix(d), - _ = d - ? function (t) { - var n = Ix(t *= d) / v, - e = Ix(d - t) / v, - r = e * f + n * h, - i = e * l + n * p, - o = e * a + n * s; - return [ - Lx(i, r) * Cx, - Lx(o, Bx(r * r + i * i)) * Cx - ] - } - : function () { - return [ - e * Cx, - r * Cx - ] - }; - return _.distance = d, - _ - }, - zb = function (t) { - return t - }, - Pb = Xm(), - qb = Xm(), - Lb = { - point: Ca, - lineStart: Ca, - lineEnd: Ca, - polygonStart: function () { - Lb.lineStart = Ec, - Lb.lineEnd = Pc - }, - polygonEnd: function () { - Lb.lineStart = Lb.lineEnd = Lb.point = Ca, - Pb.add(Px(qb)), - qb.reset() - }, - result: function () { - var t = Pb / 2; - return Pb.reset(), - t - } - }, - Rb = 1 / 0, - Ub = Rb, - Db = -Rb, - Ob = Db, - Fb = { - point: qc, - lineStart: Ca, - lineEnd: Ca, - polygonStart: Ca, - polygonEnd: Ca, - result: function () { - var t = [ - [ - Rb, Ub - ], - [Db, Ob] - ]; - return Db = Ob = -(Ub = Rb = 1 / 0), - t - } - }, - Ib = 0, - Yb = 0, - Bb = 0, - jb = 0, - Hb = 0, - Xb = 0, - Vb = 0, - Wb = 0, - $b = 0, - Zb = { - point: Lc, - lineStart: Rc, - lineEnd: Oc, - polygonStart: function () { - Zb.lineStart = Fc, - Zb.lineEnd = Ic - }, - polygonEnd: function () { - Zb.point = Lc, - Zb.lineStart = Rc, - Zb.lineEnd = Oc - }, - result: function () { - var t = $b - ? [ - Vb / $b, - Wb / $b - ] - : Xb - ? [ - jb / Xb, - Hb / Xb - ] - : Bb - ? [ - Ib / Bb, - Yb / Bb - ] - : [NaN, NaN]; - return Ib = Yb = Bb = jb = Hb = Xb = Vb = Wb = $b = 0, - t - } - }; - jc.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, Ex) - } - }, - result: Ca - }, - Hc.prototype = { - _circle: Xc(4.5), - pointRadius: function (t) { - return this._circle = Xc(t), - this - }, - polygonStart: function () { - this._line = 0 - }, - polygonEnd: function () { - this._line = NaN - }, - lineStart: function () { - this._point = 0 - }, - lineEnd: function () { - 0 === this._line && this - ._string - .push("Z"), - this._point = NaN - }, - point: function (t, n) { - switch (this._point) { - case 0: - this - ._string - .push("M", t, ",", n), - this._point = 1; - break; - case 1: - this - ._string - .push("L", t, ",", n); - break; - default: - this - ._string - .push("M", t, ",", n, this._circle) - } - }, - result: function () { - if (this._string.length) { - var t = this - ._string - .join(""); - return this._string = [], - t - } - } - }; - var Gb = function (t, n) { - function e(t) { - return t && ("function" == typeof o && i.pointRadius(+ o.apply(this, arguments)), Vx(t, r(i))), - i.result() - } - var r, - i, - o = 4.5; - return e.area = function (t) { - return Vx(t, r(Lb)), - Lb.result() - }, - e.bounds = function (t) { - return Vx(t, r(Fb)), - Fb.result() - }, - e.centroid = function (t) { - return Vx(t, r(Zb)), - Zb.result() - }, - e.projection = function (n) { - return arguments.length - ? (r = null == (t = n) - ? zb - : n.stream, e) - : t - }, - e.context = function (t) { - return arguments.length - ? (i = null == (n = t) - ? new Hc - : new jc(t), "function" != typeof o && i.pointRadius(o), e) - : n - }, - e.pointRadius = function (t) { - return arguments.length - ? (o = "function" == typeof t - ? t - : (i.pointRadius(+ t), + t), e) - : o - }, - e - .projection(t) - .context(n) - }, - Jb = Xm(), - Qb = function (t, n) { - var e = n[0], - r = n[1], - i = [ - Ix(e), -Rx(e), - 0 - ], - o = 0, - u = 0; - Jb.reset(); - for (var a = 0, c = t.length; a < c; ++a) - if (f = (s = t[a]).length) - for (var s, f, l = s[f - 1], h = l[0], p = l[1] / 2 + Ax, d = Ix(p), v = Rx(p), _ = 0; _ < f; ++_, h = g, d = x, v = b, l = y) { - var y = s[_], - g = y[0], - m = y[1] / 2 + Ax, - x = Ix(m), - b = Rx(m), - w = g - h, - M = w >= 0 - ? 1 - : -1, - T = M * w, - N = T > kx, - k = d * x; - if (Jb.add(Lx(k * M * Ix(T), v * b + k * Rx(T))), o += N - ? w + M * Ex - : w, N ^ h >= e ^ g >= e) { - var S = Ya(Fa(l), Fa(y)); - Ha(S); - var A = Ya(i, S); - Ha(A); - var E = (N ^ w >= 0 - ? -1 - : 1) * Aa(A[2]); - (r > E || r === E && (S[0] || S[1])) && (u += N ^ w >= 0 - ? 1 - : -1) - } - } - return (o < -Tx || o < Tx && Jb < -Tx) ^ 1 & u - }, - Kb = function (t, n, e, r) { - return function (i, o) { - function u(n, e) { - var r = i(n, e); - t(n = r[0], e = r[1]) && o.point(n, e) - } - function a(t, n) { - var e = i(t, n); - _.point(e[0], e[1]) - } - function c() { - b.point = a, - _.lineStart() - } - function s() { - b.point = u, - _.lineEnd() - } - function f(t, n) { - v.push([t, n]); - var e = i(t, n); - m.point(e[0], e[1]) - } - function l() { - m.lineStart(), - v = [] - } - function h() { - f(v[0][0], v[0][1]), - m.lineEnd(); - var t, - n, - e, - r, - i = m.clean(), - u = g.result(), - a = u.length; - if (v.pop(), p.push(v), v = null, a) - if (1 & i) { - if (e = u[0], (n = e.length - 1) > 0) { - for (x || (o.polygonStart(), x = !0), o.lineStart(), t = 0; t < n; ++t) - o.point((r = e[t])[0], r[1]); - o.lineEnd() - } - } else - a > 1 && 2 & i && u.push(u.pop().concat(u.shift())), - d.push(u.filter(Vc)) - } - var p, - d, - v, - _ = n(o), - y = i.invert(r[0], r[1]), - g = yb(), - m = n(g), - x = !1, - b = { - point: u, - lineStart: c, - lineEnd: s, - polygonStart: function () { - b.point = f, - b.lineStart = l, - b.lineEnd = h, - d = [], - p = [] - }, - polygonEnd: function () { - b.point = u, - b.lineStart = c, - b.lineEnd = s, - d = Js(d); - var t = Qb(p, y); - d.length - ? (x || (o.polygonStart(), x = !0), xb(d, Wc, t, e, o)) - : t && (x || (o.polygonStart(), x = !0), o.lineStart(), e(null, null, 1, o), o.lineEnd()), - x && (o.polygonEnd(), x = !1), - d = p = null - }, - sphere: function () { - o.polygonStart(), - o.lineStart(), - e(null, null, 1, o), - o.lineEnd(), - o.polygonEnd() - } - }; - return b - } - }, - tw = Kb(function () { - return !0 - }, $c, Gc, [-kx, -Sx - ]), - nw = function (t, n) { - function e(e, r, i, o) { - _c(o, t, n, i, e, r) - } - function r(t, n) { - return Rx(t) * Rx(n) > a - } - function i(t) { - var n, - e, - i, - a, - f; - return { - lineStart: function () { - a = i = !1, - f = 1 - }, - point: function (l, h) { - var p, - d = [ - l, h - ], - v = r(l, h), - _ = c - ? v - ? 0 - : u(l, h) - : v - ? u(l + (l < 0 - ? kx - : -kx), h) - : 0; - if (!n && (a = i = v) && t.lineStart(), v !== i && (p = o(n, d), (mb(n, p) || mb(d, p)) && (d[0] += Tx, d[1] += Tx, v = r(d[0], d[1]))), v !== i) - f = 0, - v - ? (t.lineStart(), p = o(d, n), t.point(p[0], p[1])) - : (p = o(n, d), t.point(p[0], p[1]), t.lineEnd()), - n = p; - else if (s && n && c ^ v) { - var y; - _ & e || !(y = o(d, n, !0)) || (f = 0, c - ? (t.lineStart(), t.point(y[0][0], y[0][1]), t.point(y[1][0], y[1][1]), t.lineEnd()) - : (t.point(y[1][0], y[1][1]), t.lineEnd(), t.lineStart(), t.point(y[0][0], y[0][1]))) - } - !v || n && mb(n, d) || t.point(d[0], d[1]), - n = d, - i = v, - e = _ - }, - lineEnd: function () { - i && t.lineEnd(), - n = null - }, - clean: function () { - return f | (a && i) << 1 - } - } - } - function o(t, n, e) { - var r = Fa(t), - i = Fa(n), - o = [ - 1, 0, 0 - ], - u = Ya(r, i), - c = Ia(u, u), - s = u[0], - f = c - s * s; - if (!f) - return !e && t; - var l = a * c / f, - h = -a * s / f, - p = Ya(o, u), - d = ja(o, l), - v = ja(u, h); - Ba(d, v); - var _ = p, - y = Ia(d, _), - g = Ia(_, _), - m = y * y - g * (Ia(d, d) - 1); - if (!(m < 0)) { - var x = Bx(m), - b = ja(_, (-y - x) / g); - if (Ba(b, d), b = Oa(b), !e) - return b; - var w, - M = t[0], - T = n[0], - N = t[1], - k = n[1]; - T < M && (w = M, M = T, T = w); - var S = T - M, - A = Px(S - kx) < Tx, - E = A || S < Tx; - if (!A && k < N && (w = N, N = k, k = w), E - ? A - ? N + k > 0 ^ b[1] < (Px(b[0] - M) < Tx - ? N - : k) - : N <= b[1] && b[1] <= k - : S > kx ^ (M <= b[0] && b[0] <= T)) { - var C = ja(_, (-y + x) / g); - return Ba(C, d), - [b, Oa(C)] - } - } - } - function u(n, e) { - var r = c - ? t - : kx - t, - i = 0; - return n < -r - ? i |= 1 - : n > r && (i |= 2), - e < -r - ? i |= 4 - : e > r && (i |= 8), - i - } - var a = Rx(t), - c = a > 0, - s = Px(a) > Tx; - return Kb(r, i, e, c - ? [ - 0, -t - ] - : [-kx, - t - kx - ]) - }, - ew = function (t) { - return {stream: Jc(t)} - }; - Qc.prototype = { - constructor: Qc, - 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 rw = 16, - iw = Rx(30 * zx), - ow = function (t, n) { - return + n - ? es(t, n) - : ns(t) - }, - uw = Jc({ - point: function (t, n) { - this - .stream - .point(t * zx, n * zx) - } - }), - aw = function () { - return os(as) - .scale(155.424) - .center([0, 33.6442]) - }, - cw = function () { - return aw() - .parallels([29.5, 45.5]) - .scale(1070) - .translate([480, 250]) - .rotate([96, 0]) - .center([-.6, 38.7]) - }, - sw = function () { - function t(t) { - var n = t[0], - e = t[1]; - return a = null, - i.point(n, e), - a || (o.point(n, e), a) || (u.point(n, e), a) - } - function n() { - return e = r = null, - t - } - var e, - r, - i, - o, - u, - a, - c = cw(), - s = aw() - .rotate([154, 0]) - .center([-2, 58.5]) - .parallels([55, 65]), - f = aw() - .rotate([157, 0]) - .center([-3, 19.9]) - .parallels([8, 18]), - l = { - point: function (t, n) { - a = [t, n] - } - }; - return t.invert = function (t) { - var n = c.scale(), - e = c.translate(), - r = (t[0] - e[0]) / n, - i = (t[1] - e[1]) / n; - return (i >= .12 && i < .234 && r >= -.425 && r < -.214 - ? s - : i >= .166 && i < .234 && r >= -.214 && r < -.115 - ? f - : c).invert(t) - }, - t.stream = function (t) { - return e && r === t - ? e - : e = cs([ - c.stream(r = t), - s.stream(t), - f.stream(t) - ]) - }, - t.precision = function (t) { - return arguments.length - ? (c.precision(t), s.precision(t), f.precision(t), n()) - : c.precision() - }, - t.scale = function (n) { - return arguments.length - ? (c.scale(n), s.scale(.35 * n), f.scale(n), t.translate(c.translate())) - : c.scale() - }, - t.translate = function (t) { - if (!arguments.length) - return c.translate(); - var e = c.scale(), - r =+ t[0], - a =+ t[1]; - return i = c - .translate(t) - .clipExtent([ - [ - r - .455 * e, - a - .238 * e - ], - [ - r + .455 * e, - a + .238 * e - ] - ]) - .stream(l), - o = s - .translate([ - r - .307 * e, - a + .201 * e - ]) - .clipExtent([ - [ - r - .425 * e + Tx, - a + .12 * e + Tx - ], - [ - r - .214 * e - Tx, - a + .234 * e - Tx - ] - ]) - .stream(l), - u = f - .translate([ - r - .205 * e, - a + .212 * e - ]) - .clipExtent([ - [ - r - .214 * e + Tx, - a + .166 * e + Tx - ], - [ - r - .115 * e - Tx, - a + .234 * e - Tx - ] - ]) - .stream(l), - n() - }, - t.fitExtent = function (n, e) { - return Kc(t, n, e) - }, - t.fitSize = function (n, e) { - return ts(t, n, e) - }, - t.scale(1070) - }, - fw = ss(function (t) { - return Bx(2 / (1 + t)) - }); - fw.invert = fs(function (t) { - return 2 * Aa(t / 2) - }); - var lw = function () { - return rs(fw) - .scale(124.75) - .clipAngle(179.999) - }, - hw = ss(function (t) { - return (t = Sa(t)) && t / Ix(t) - }); - hw.invert = fs(function (t) { - return t - }); - var pw = function () { - return rs(hw) - .scale(79.4188) - .clipAngle(179.999) - }; - ls.invert = function (t, n) { - return [ - t, 2 * qx(Dx(n)) - Sx - ] - }; - var dw = function () { - return hs(ls).scale(961 / Ex) - }, - vw = function () { - return os(ds) - .scale(109.5) - .parallels([30, 30]) - }; - vs.invert = vs; - var _w = function () { - return rs(vs).scale(152.63) - }, - yw = function () { - return os(_s) - .scale(131.154) - .center([0, 13.9389]) - }; - ys.invert = fs(qx); - var gw = function () { - return rs(ys) - .scale(144.049) - .clipAngle(60) - }, - mw = function () { - function t() { - return i = o = null, - u - } - var n, - e, - r, - i, - o, - u, - a = 1, - c = 0, - s = 0, - f = zb, - l = null, - h = zb; - return u = { - stream: function (t) { - return i && o === t - ? i - : i = f(h(o = t)) - }, - clipExtent: function (i) { - return arguments.length - ? (h = null == i - ? (l = n = e = r = null, zb) - : xc(l =+ i[0][0], n =+ i[0][1], e =+ i[1][0], r =+ i[1][1]), t()) - : null == l - ? null - : [ - [ - l, n - ], - [e, r] - ] - }, - scale: function (n) { - return arguments.length - ? (f = gs(a =+ n, c, s), t()) - : a - }, - translate: function (n) { - return arguments.length - ? (f = gs(a, c =+ n[0], s =+ n[1]), t()) - : [c, s] - }, - fitExtent: function (t, n) { - return Kc(u, t, n) - }, - fitSize: function (t, n) { - return ts(u, t, n) - } - } - }; - ms.invert = fs(Aa); - var xw = function () { - return rs(ms) - .scale(249.5) - .clipAngle(90 + Tx) - }; - xs.invert = fs(function (t) { - return 2 * qx(t) - }); - var bw = function () { - return rs(xs) - .scale(250) - .clipAngle(142) - }; - bs.invert = function (t, n) { - return [-n, - 2 * qx(Dx(t)) - Sx - ] - }; - var ww = function () { - var t = hs(bs), - n = t.center, - e = t.rotate; - return t.center = function (t) { - return arguments.length - ? n([-t[1], - t[0] - ]) - : (t = n(), [ - t[1], -t[0] - ]) - }, - t.rotate = function (t) { - return arguments.length - ? e([ - t[0], t[1], t.length > 2 - ? t[2] + 90 - : 90 - ]) - : (t = e(), [ - t[0], t[1], t[2] - 90 - ]) - }, - e([0, 0, 90]).scale(159.155) - }; - t.version = ws, - t.bisect = ks, - t.bisectRight = ks, - t.bisectLeft = Ss, - t.ascending = Ms, - t.bisector = Ts, - t.descending = As, - t.deviation = zs, - t.extent = Ps, - t.histogram = Hs, - t.thresholdFreedmanDiaconis = Vs, - t.thresholdScott = Ws, - t.thresholdSturges = js, - t.max = $s, - t.mean = Zs, - t.median = Gs, - t.merge = Js, - t.min = Qs, - t.pairs = Ks, - t.permute = tf, - t.quantile = Xs, - t.range = Os, - t.scan = nf, - t.shuffle = ef, - t.sum = rf, - t.ticks = Bs, - t.tickStep = e, - t.transpose = of, - t.variance = Cs, - t.zip = uf, - t.entries = hf, - t.keys = ff, - t.values = lf, - t.map = o, - t.set = l, - t.nest = cf, - t.randomUniform = pf, - t.randomNormal = df, - t.randomLogNormal = vf, - t.randomBates = yf, - t.randomIrwinHall = _f, - t.randomExponential = gf, - t.easeLinear = h, - t.easeQuad = v, - t.easeQuadIn = p, - t.easeQuadOut = d, - t.easeQuadInOut = v, - t.easeCubic = g, - t.easeCubicIn = _, - t.easeCubicOut = y, - t.easeCubicInOut = g, - t.easePoly = wf, - t.easePolyIn = xf, - t.easePolyOut = bf, - t.easePolyInOut = wf, - t.easeSin = b, - t.easeSinIn = m, - t.easeSinOut = x, - t.easeSinInOut = b, - t.easeExp = T, - t.easeExpIn = w, - t.easeExpOut = M, - t.easeExpInOut = T, - t.easeCircle = S, - t.easeCircleIn = N, - t.easeCircleOut = k, - t.easeCircleInOut = S, - t.easeBounce = E, - t.easeBounceIn = A, - t.easeBounceOut = E, - t.easeBounceInOut = C, - t.easeBack = Of, - t.easeBackIn = Uf, - t.easeBackOut = Df, - t.easeBackInOut = Of, - t.easeElastic = jf, - t.easeElasticIn = Bf, - t.easeElasticOut = jf, - t.easeElasticInOut = Hf, - t.polygonArea = Xf, - t.polygonCentroid = Vf, - t.polygonHull = $f, - t.polygonContains = Zf, - t.polygonLength = Gf, - t.path = L, - t.quadtree = I, - t.queue = Z, - t.arc = wl, - t.area = Nl, - t.line = Tl, - t.pie = Al, - t.radialArea = zl, - t.radialLine = Cl, - t.symbol = Jl, - t.symbols = Gl, - t.symbolCircle = Pl, - t.symbolCross = ql, - t.symbolDiamond = Ul, - t.symbolSquare = Bl, - t.symbolStar = Yl, - t.symbolTriangle = Hl, - t.symbolWye = Zl, - t.curveBasisClosed = th, - t.curveBasisOpen = nh, - t.curveBasis = Kl, - t.curveBundle = eh, - t.curveCardinalClosed = ih, - t.curveCardinalOpen = oh, - t.curveCardinal = rh, - t.curveCatmullRomClosed = ah, - t.curveCatmullRomOpen = ch, - t.curveCatmullRom = uh, - t.curveLinearClosed = sh, - t.curveLinear = Ml, - t.curveMonotoneX = zt, - t.curveMonotoneY = Pt, - t.curveNatural = fh, - t.curveStep = lh, - t.curveStepAfter = Dt, - t.curveStepBefore = Ut, - t.stack = vh, - t.stackOffsetExpand = _h, - t.stackOffsetNone = ph, - t.stackOffsetSilhouette = yh, - t.stackOffsetWiggle = gh, - t.stackOrderAscending = mh, - t.stackOrderDescending = xh, - t.stackOrderInsideOut = bh, - t.stackOrderNone = dh, - t.stackOrderReverse = wh, - t.color = Bt, - t.rgb = Vt, - t.hsl = Gt, - t.lab = tn, - t.hcl = cn, - t.cubehelix = ln, - t.interpolate = _p, - t.interpolateArray = sp, - t.interpolateDate = fp, - t.interpolateNumber = lp, - t.interpolateObject = hp, - t.interpolateRound = yp, - t.interpolateString = vp, - t.interpolateTransformCss = bp, - t.interpolateTransformSvg = wp, - t.interpolateZoom = Sp, - t.interpolateRgb = up, - t.interpolateRgbBasis = ap, - t.interpolateRgbBasisClosed = cp, - t.interpolateHsl = Ap, - t.interpolateHslLong = Ep, - t.interpolateLab = En, - t.interpolateHcl = Cp, - t.interpolateHclLong = zp, - t.interpolateCubehelix = Pp, - t.interpolateCubehelixLong = qp, - t.interpolateBasis = rp, - t.interpolateBasisClosed = ip, - t.quantize = Lp, - t.dispatch = Pn, - t.dsvFormat = Op, - t.csvParse = Ip, - t.csvParseRows = Yp, - t.csvFormat = Bp, - t.csvFormatRows = jp, - t.tsvParse = Xp, - t.tsvParseRows = Vp, - t.tsvFormat = Wp, - t.tsvFormatRows = $p, - t.request = Zp, - t.html = Jp, - t.json = Qp, - t.text = Kp, - t.xml = td, - t.csv = ed, - t.tsv = rd, - t.now = jn, - t.timer = Vn, - t.timerFlush = Wn, - t.timeout = pd, - t.interval = dd, - t.timeInterval = Qn, - t.timeMillisecond = yd, - t.timeMilliseconds = gd, - t.timeSecond = Td, - t.timeSeconds = Nd, - t.timeMinute = kd, - t.timeMinutes = Sd, - t.timeHour = Ad, - t.timeHours = Ed, - t.timeDay = Cd, - t.timeDays = zd, - t.timeWeek = Pd, - t.timeWeeks = Fd, - t.timeSunday = Pd, - t.timeSundays = Fd, - t.timeMonday = qd, - t.timeMondays = Id, - t.timeTuesday = Ld, - t.timeTuesdays = Yd; - t.timeWednesday = Rd; - t.timeWednesdays = Bd, - t.timeThursday = Ud, - t.timeThursdays = jd, - t.timeFriday = Dd, - t.timeFridays = Hd, - t.timeSaturday = Od, - t.timeSaturdays = Xd, - t.timeMonth = Vd, - t.timeMonths = Wd, - t.timeYear = $d, - t.timeYears = Zd, - t.utcMillisecond = yd, - t.utcMilliseconds = gd, - t.utcSecond = Td, - t.utcSeconds = Nd, - t.utcMinute = Gd, - t.utcMinutes = Jd, - t.utcHour = Qd, - t.utcHours = Kd, - t.utcDay = tv, - t.utcDays = nv, - t.utcWeek = ev, - t.utcWeeks = sv, - t.utcSunday = ev, - t.utcSundays = sv, - t.utcMonday = rv, - t.utcMondays = fv, - t.utcTuesday = iv, - t.utcTuesdays = lv, - t.utcWednesday = ov, - t.utcWednesdays = hv, - t.utcThursday = uv, - t.utcThursdays = pv, - t.utcFriday = av, - t.utcFridays = dv, - t.utcSaturday = cv, - t.utcSaturdays = vv, - t.utcMonth = _v, - t.utcMonths = yv, - t.utcYear = gv, - t.utcYears = xv, - t.formatLocale = Pv, - t.formatDefaultLocale = re, - t.formatSpecifier = Ev, - t.precisionFixed = Lv, - t.precisionPrefix = Rv, - t.precisionRound = Uv, - t.isoFormat = Bv, - t.isoParse = jv, - t.timeFormatLocale = ae, - t.timeFormatDefaultLocale = nr, - t.scaleBand = or, - t.scalePoint = ar, - t.scaleIdentity = yr, - t.scaleLinear = _r, - t.scaleLog = Tr, - t.scaleOrdinal = ir, - t.scaleImplicit = Wv, - t.scalePow = kr, - t.scaleSqrt = Sr, - t.scaleQuantile = Ar, - t.scaleQuantize = Er, - t.scaleThreshold = Cr, - t.scaleTime = u_, - t.scaleUtc = a_, - t.schemeCategory10 = s_, - t.schemeCategory20b = f_, - t.schemeCategory20c = l_, - t.schemeCategory20 = h_, - t.scaleSequential = Rr, - t.interpolateCubehelixDefault = p_, - t.interpolateRainbow = y_, - t.interpolateWarm = d_, - t.interpolateCool = v_, - t.interpolateViridis = g_, - t.interpolateMagma = m_, - t.interpolateInferno = x_, - t.interpolatePlasma = b_, - t.creator = N_, - t.customEvent = Xr, - t.local = Or, - t.matcher = C_, - t.mouse = U_, - t.namespace = T_, - t.namespaces = M_, - t.select = gy, - t.selectAll = my, - t.selection = Pi, - t.selector = D_, - t.selectorAll = F_, - t.touch = xy, - t.touches = by, - t.window = iy, - t.active = ig, - t.interrupt = Py, - t.transition = fo, - t.axisTop = mo, - t.axisRight = xo, - t.axisBottom = bo, - t.axisLeft = wo, - t.cluster = hg, - t.hierarchy = zo, - t.pack = Sg, - t.packSiblings = Ng, - t.packEnclose = Tg, - t.partition = Cg, - t.stratify = Lg, - t.tree = Rg, - t.treemap = Fg, - t.treemapBinary = Ig, - t.treemapDice = Eg, - t.treemapSlice = Ug, - t.treemapSliceDice = Yg, - t.treemapSquarify = Og, - t.treemapResquarify = Bg, - t.forceCenter = jg, - t.forceCollide = Vg, - t.forceLink = Wg, - t.forceManyBody = Jg, - t.forceSimulation = Gg, - t.forceX = Qg, - t.forceY = Kg, - t.drag = rm, - t.dragDisable = nm, - t.dragEnable = mu, - t.voronoi = dm, - t.zoom = gm, - t.zoomIdentity = _m, - t.zoomTransform = ia, - t.brush = Lm, - t.brushX = _a, - t.brushY = ya, - t.brushSelection = va, - t.chord = Ym, - t.ribbon = Hm, - t.geoAlbers = cw, - t.geoAlbersUsa = sw, - t.geoArea = Gx, - t.geoAzimuthalEqualArea = lw, - t.geoAzimuthalEqualAreaRaw = fw, - t.geoAzimuthalEquidistant = pw, - t.geoAzimuthalEquidistantRaw = hw, - t.geoBounds = Kx, - t.geoCentroid = nb, - t.geoCircle = _b, - t.geoClipExtent = Mb, - t.geoConicConformal = vw, - t.geoConicConformalRaw = ds, - t.geoConicEqualArea = aw, - t.geoConicEqualAreaRaw = as, - t.geoConicEquidistant = yw, - t.geoConicEquidistantRaw = _s, - t.geoDistance = Eb, - t.geoEquirectangular = _w, - t.geoEquirectangularRaw = vs, - t.geoGnomonic = gw, - t.geoGnomonicRaw = ys, - t.geoGraticule = Sc, - t.geoGraticule10 = Ac, - t.geoIdentity = mw, - t.geoInterpolate = Cb, - t.geoLength = kb, - t.geoMercator = dw, - t.geoMercatorRaw = ls, - t.geoOrthographic = xw, - t.geoOrthographicRaw = ms, - t.geoPath = Gb, - t.geoProjection = rs, - t.geoProjectionMutator = is, - t.geoRotation = vb, - t.geoStereographic = bw, - t.geoStereographicRaw = xs, - t.geoStream = Vx, - t.geoTransform = ew, - t.geoTransverseMercator = ww, - t.geoTransverseMercatorRaw = bs, - Object.defineProperty(t, "__esModule", { - value: !0 - }) - }); \ No newline at end of file diff --git a/assets/js/jquery.min.js b/assets/js/jquery.min.js deleted file mode 100644 index ac35a19..0000000 --- a/assets/js/jquery.min.js +++ /dev/null @@ -1,5315 +0,0 @@ -/*! jQuery v3.1.1 | (c) jQuery Foundation | jquery.org/license */ -!function (a, b) { - "use strict"; - "object" == typeof module && "object" == typeof module.exports - ? module.exports = a.document - ? b(a, !0) - : function (a) { - if (!a.document) - throw new Error("jQuery requires a window with a document"); - return b(a) - } - : b(a) -}("undefined" != typeof window - ? window - : this, function (a, b) { - "use strict"; - var c = [], - d = a.document, - e = Object.getPrototypeOf, - f = c.slice, - g = c.concat, - h = c.push, - i = c.indexOf, - j = {}, - k = j.toString, - l = j.hasOwnProperty, - m = l.toString, - n = m.call(Object), - o = {}; - function p(a, b) { - b = b || d; - var c = b.createElement("script"); - c.text = a, - b - .head - .appendChild(c) - .parentNode - .removeChild(c) - } - var q = "3.1.1", - r = function (a, b) { - return new r - .fn - .init(a, b) - }, - s = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, - t = /^-ms-/, - u = /-([a-z])/g, - v = function (a, b) { - return b.toUpperCase() - }; - r.fn = r.prototype = { - jquery: q, - constructor: r, - length: 0, - toArray: function () { - return f.call(this) - }, - get: function (a) { - return null == a - ? f.call(this) - : a < 0 - ? this[a + this.length] - : this[a] - }, - pushStack: function (a) { - var b = r.merge(this.constructor(), a); - return b.prevObject = this, - b - }, - each: function (a) { - return r.each(this, a) - }, - map: function (a) { - return this.pushStack(r.map(this, function (b, c) { - return a.call(b, c, b) - })) - }, - slice: function () { - return this.pushStack(f.apply(this, arguments)) - }, - first: function () { - return this.eq(0) - }, - last: function () { - return this.eq(-1) - }, - eq: function (a) { - var b = this.length, - c =+ a + (a < 0 - ? b - : 0); - return this.pushStack(c >= 0 && c < b - ? [this[c]] - : []) - }, - end: function () { - return this.prevObject || this.constructor() - }, - push: h, - sort: c.sort, - splice: c.splice - }, - r.extend = r.fn.extend = function () { - var a, - b, - c, - d, - e, - f, - g = arguments[0] || {}, - h = 1, - i = arguments.length, - j = !1; - for ("boolean" == typeof g && (j = g, g = arguments[h] || {}, h++), "object" == typeof g || r.isFunction(g) || (g = {}), h === i && (g = this, h--); h < i; h++) - if (null != (a = arguments[h])) - for (b in a) - c = g[b], - d = a[b], - g !== d && (j && d && (r.isPlainObject(d) || (e = r.isArray(d))) - ? (e - ? (e = !1, f = c && r.isArray(c) - ? c - : []) - : f = c && r.isPlainObject(c) - ? c - : {}, g[b] = r.extend(j, f, d)) - : void 0 !== d && (g[b] = d)); - return g - }, - r.extend({ - expando: "jQuery" + (q + Math.random()).replace(/\D/g, ""), - isReady: !0, - error: function (a) { - throw new Error(a) - }, - noop: function () {}, - isFunction: function (a) { - return "function" === r.type(a) - }, - isArray: Array.isArray, - isWindow: function (a) { - return null != a && a === a.window - }, - isNumeric: function (a) { - var b = r.type(a); - return ("number" === b || "string" === b) && !isNaN(a - parseFloat(a)) - }, - isPlainObject: function (a) { - var b, - c; - return !(!a || "[object Object]" !== k.call(a)) && (!(b = e(a)) || (c = l.call(b, "constructor") && b.constructor, "function" == typeof c && m.call(c) === n)) - }, - isEmptyObject: function (a) { - var b; - for (b in a) - return !1; - return !0 - }, - type: function (a) { - return null == a - ? a + "" - : "object" == typeof a || "function" == typeof a - ? j[k.call(a)] || "object" - : typeof a - }, - globalEval: function (a) { - p(a) - }, - camelCase: function (a) { - return a - .replace(t, "ms-") - .replace(u, v) - }, - nodeName: function (a, b) { - return a.nodeName && a - .nodeName - .toLowerCase() === b.toLowerCase() - }, - each: function (a, b) { - var c, - d = 0; - if (w(a)) { - for (c = a.length; d < c; d++) - if (b.call(a[d], d, a[d]) === !1) - break - } - else - for (d in a) - if (b.call(a[d], d, a[d]) === !1) - break; - return a - }, - trim: function (a) { - return null == a - ? "" - : (a + "").replace(s, "") - }, - makeArray: function (a, b) { - var c = b || []; - return null != a && (w(Object(a)) - ? r.merge(c, "string" == typeof a - ? [a] - : a) - : h.call(c, a)), - c - }, - inArray: function (a, b, c) { - return null == b - ? -1 - : i.call(b, a, c) - }, - merge: function (a, b) { - for (var c =+ b.length, d = 0, e = a.length; d < c; d++) - a[e++] = b[d]; - return a.length = e, - a - }, - grep: function (a, b, c) { - for (var d, e = [], f = 0, g = a.length, h = !c; f < g; f++) - d = !b(a[f], f), - d !== h && e.push(a[f]); - return e - }, - map: function (a, b, c) { - var d, - e, - f = 0, - h = []; - if (w(a)) - for (d = a.length; f < d; f++) - e = b(a[f], f, c), - null != e && h.push(e); - else - for (f in a) - e = b(a[f], f, c), - null != e && h.push(e); - return g.apply([], h) - }, - guid: 1, - proxy: function (a, b) { - var c, - d, - e; - if ("string" == typeof b && (c = a[b], b = a, a = c), r.isFunction(a)) - return d = f.call(arguments, 2), - e = function () { - return a.apply(b || this, d.concat(f.call(arguments))) - } - , - e.guid = a.guid = a.guid || r.guid++, - e - }, - now: Date.now, - support: o - }), - "function" == typeof Symbol && (r.fn[Symbol.iterator] = c[Symbol.iterator]), - r.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "), function (a, b) { - j["[object " + b + "]"] = b.toLowerCase() - }); - function w(a) { - var b = !!a && "length" in a && a.length, - c = r.type(a); - return "function" !== c && !r.isWindow(a) && ("array" === c || 0 === b || "number" == typeof b && b > 0 && b - 1 in a) - } - var x = function (a) { - var b, - c, - d, - e, - f, - g, - h, - i, - j, - k, - l, - m, - n, - o, - p, - q, - r, - s, - t, - u = "sizzle" + 1 * new Date, - v = a.document, - w = 0, - x = 0, - y = ha(), - z = ha(), - A = ha(), - B = function (a, b) { - return a === b && (l = !0), - 0 - }, - C = {}.hasOwnProperty, - D = [], - E = D.pop, - F = D.push, - G = D.push, - H = D.slice, - I = function (a, b) { - for (var c = 0, d = a.length; c < d; c++) - if (a[c] === b) - return c; - return -1 - }, - J = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|l" + - "oop|multiple|open|readonly|required|scoped", - K = "[\\x20\\t\\r\\n\\f]", - L = "(?:\\\\.|[\\w-]|[^\0-\\xa0])+", - M = "\\[" + K + "*(" + L + ")(?:" + K + "*([*^$|!~]?=)" + K + "*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + L + "))|)" + K + "*\\]", - N = ":(" + L + ")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[" + - "\\]]|" + M + ")*)|.*)\\)|)", - O = new RegExp(K + "+", "g"), - P = new RegExp("^" + K + "+|((?:^|[^\\\\])(?:\\\\.)*)" + K + "+$", "g"), - Q = new RegExp("^" + K + "*," + K + "*"), - R = new RegExp("^" + K + "*([>+~]|" + K + ")" + K + "*"), - S = new RegExp("=" + K + "*([^\\]'\"]*?)" + K + "*\\]", "g"), - T = new RegExp(N), - U = new RegExp("^" + L + "$"), - V = { - ID: new RegExp("^#(" + L + ")"), - CLASS: new RegExp("^\\.(" + L + ")"), - TAG: new RegExp("^(" + L + "|[*])"), - ATTR: new RegExp("^" + M), - PSEUDO: new RegExp("^" + N), - CHILD: new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + K + "*(even|odd|(([+-]|)(\\d*)n|)" + K + "*(?:([+-]|)" + K + "*(\\d+)|))" + K + "*\\)|)", "i"), - bool: new RegExp("^(?:" + J + ")$", "i"), - needsContext: new RegExp("^" + K + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + K + "*((?:-\\d)?\\d*)" + K + "*\\)|)(?=[^-]|$)", "i") - }, - W = /^(?:input|select|textarea|button)$/i, - X = /^h\d$/i, - Y = /^[^{]+\{\s*\[native \w/, - Z = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/, - $ = /[+~]/, - _ = new RegExp("\\\\([\\da-f]{1,6}" + K + "?|(" + K + ")|.)", "ig"), - aa = function (a, b, c) { - var d = "0x" + b - 65536; - return d !== d || c - ? b - : d < 0 - ? String.fromCharCode(d + 65536) - : String.fromCharCode(d >> 10 | 55296, 1023 & d | 56320) - }, - ba = /([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g, - ca = function (a, b) { - return b - ? "\0" === a - ? "\ufffd" - : a.slice(0, -1) + "\\" + a - .charCodeAt(a.length - 1) - .toString(16) + " " - : "\\" + a - }, - da = function () { - m() - }, - ea = ta(function (a) { - return a.disabled === !0 && ("form" in a || "label" in a) - }, { - dir: "parentNode", - next: "legend" - }); - try { - G.apply(D = H.call(v.childNodes), v.childNodes), - D[v.childNodes.length].nodeType - } catch (fa) { - G = { - apply: D.length - ? function (a, b) { - F.apply(a, H.call(b)) - } - : function (a, b) { - var c = a.length, - d = 0; - while (a[c++] = b[d++]) - ; - a.length = c - 1 - } - } - } - function ga(a, b, d, e) { - var f, - h, - j, - k, - l, - o, - r, - s = b && b.ownerDocument, - w = b - ? b.nodeType - : 9; - if (d = d || [], "string" != typeof a || !a || 1 !== w && 9 !== w && 11 !== w) - return d; - if (!e && ((b - ? b.ownerDocument || b - : v) !== n && m(b), b = b || n, p)) { - if (11 !== w && (l = Z.exec(a))) - if (f = l[1]) { - if (9 === w) { - if (!(j = b.getElementById(f))) - return d; - if (j.id === f) - return d.push(j), - d - } else if (s && (j = s.getElementById(f)) && t(b, j) && j.id === f) - return d.push(j), - d - } - else { - if (l[2]) - return G.apply(d, b.getElementsByTagName(a)), - d; - if ((f = l[3]) && c.getElementsByClassName && b.getElementsByClassName) - return G.apply(d, b.getElementsByClassName(f)), - d - } - if (c.qsa && !A[a + " "] && (!q || !q.test(a))) { - if (1 !== w) - s = b, - r = a; - else if ("object" !== b.nodeName.toLowerCase()) { - (k = b.getAttribute("id")) - ? k = k.replace(ba, ca) - : b.setAttribute("id", k = u), - o = g(a), - h = o.length; - while (h--) - o[h] = "#" + k + " " + sa(o[h]); - r = o.join(","), - s = $.test(a) && qa(b.parentNode) || b - } - if (r) - try { - return G.apply(d, s.querySelectorAll(r)), - d - } catch (x) {} - finally { - k === u && b.removeAttribute("id") - } - } - } - return i(a.replace(P, "$1"), b, d, e) - } - function ha() { - var a = []; - function b(c, e) { - return a.push(c + " ") > d.cacheLength && delete b[a.shift()], - b[c + " "] = e - } - return b - } - function ia(a) { - return a[u] = !0, - a - } - function ja(a) { - var b = n.createElement("fieldset"); - try { - return !!a(b) - } catch (c) { - return !1 - } finally { - b.parentNode && b - .parentNode - .removeChild(b), - b = null - } - } - function ka(a, b) { - var c = a.split("|"), - e = c.length; - while (e--) - d.attrHandle[c[e]] = b - } - function la(a, b) { - var c = b && a, - d = c && 1 === a.nodeType && 1 === b.nodeType && a.sourceIndex - b.sourceIndex; - if (d) - return d; - if (c) - while (c = c.nextSibling) - if (c === b) - return -1; - return a - ? 1 - : -1 - } - function ma(a) { - return function (b) { - var c = b - .nodeName - .toLowerCase(); - return "input" === c && b.type === a - } - } - function na(a) { - return function (b) { - var c = b - .nodeName - .toLowerCase(); - return ("input" === c || "button" === c) && b.type === a - } - } - function oa(a) { - return function (b) { - return "form" in b - ? b.parentNode && b.disabled === !1 - ? "label" in b - ? "label" in b.parentNode - ? b.parentNode.disabled === a - : b.disabled === a - : b.isDisabled === a || b.isDisabled !== !a && ea(b) === a - : b.disabled === a - : "label" in b && b.disabled === a - } - } - function pa(a) { - return ia(function (b) { - return b =+ b, - ia(function (c, d) { - var e, - f = a([], c.length, b), - g = f.length; - while (g--) - c[e = f[g]] && (c[e] = !(d[e] = c[e])) - }) - }) - } - function qa(a) { - return a && "undefined" != typeof a.getElementsByTagName && a - } - c = ga.support = {}, - f = ga.isXML = function (a) { - var b = a && (a.ownerDocument || a).documentElement; - return !!b && "HTML" !== b.nodeName - }, - m = ga.setDocument = function (a) { - var b, - e, - g = a - ? a.ownerDocument || a - : v; - return g !== n && 9 === g.nodeType && g.documentElement - ? (n = g, o = n.documentElement, p = !f(n), v !== n && (e = n.defaultView) && e.top !== e && (e.addEventListener - ? e.addEventListener("unload", da, !1) - : e.attachEvent && e.attachEvent("onunload", da)), c.attributes = ja(function (a) { - return a.className = "i", - !a.getAttribute("className") - }), c.getElementsByTagName = ja(function (a) { - return a.appendChild(n.createComment("")), - !a - .getElementsByTagName("*") - .length - }), c.getElementsByClassName = Y.test(n.getElementsByClassName), c.getById = ja(function (a) { - return o - .appendChild(a) - .id = u, - !n.getElementsByName || !n - .getElementsByName(u) - .length - }), c.getById - ? (d.filter.ID = function (a) { - var b = a.replace(_, aa); - return function (a) { - return a.getAttribute("id") === b - } - }, - d.find.ID = function (a, b) { - if ("undefined" != typeof b.getElementById && p) { - var c = b.getElementById(a); - return c - ? [c] - : [] - } - }) - : (d.filter.ID = function (a) { - var b = a.replace(_, aa); - return function (a) { - var c = "undefined" != typeof a.getAttributeNode && a.getAttributeNode("id"); - return c && c.value === b - } - }, - d.find.ID = function (a, b) { - if ("undefined" != typeof b.getElementById && p) { - var c, - d, - e, - f = b.getElementById(a); - if (f) { - if (c = f.getAttributeNode("id"), c && c.value === a) - return [f]; - e = b.getElementsByName(a), - d = 0; - while (f = e[d++]) - if (c = f.getAttributeNode("id"), c && c.value === a) - return [f] - } - return [] - } - }), d.find.TAG = c.getElementsByTagName - ? function (a, b) { - return "undefined" != typeof b.getElementsByTagName - ? b.getElementsByTagName(a) - : c.qsa - ? b.querySelectorAll(a) - : void 0 - } - : function (a, b) { - var c, - d = [], - e = 0, - f = b.getElementsByTagName(a); - if ("*" === a) { - while (c = f[e++]) - 1 === c.nodeType && d.push(c); - return d - } - return f - }, - d.find.CLASS = c.getElementsByClassName && function (a, b) { - if ("undefined" != typeof b.getElementsByClassName && p) - return b.getElementsByClassName(a) - }, - r = [], - q = [], - (c.qsa = Y.test(n.querySelectorAll)) && (ja(function (a) { - o - .appendChild(a) - .innerHTML = "", - a - .querySelectorAll("[msallowcapture^='']") - .length && q.push("[*^$]=" + K + "*(?:''|\"\")"), - a - .querySelectorAll("[selected]") - .length || q.push("\\[" + K + "*(?:value|" + J + ")"), - a - .querySelectorAll("[id~=" + u + "-]") - .length || q.push("~="), - a - .querySelectorAll(":checked") - .length || q.push(":checked"), - a - .querySelectorAll("a#" + u + "+*") - .length || q.push(".#.+[+~]") - }), ja(function (a) { - a.innerHTML = "", - a - .firstChild - .setAttribute("value", ""), - "" === a - .firstChild - .getAttribute("value") - }) || ka("value", function (a, b, c) { - if (!c && "input" === a.nodeName.toLowerCase()) - return a.defaultValue - }), - ja(function (a) { - return null == a.getAttribute("disabled") - }) || ka(J, function (a, b, c) { - var d; - if (!c) - return a[b] === !0 - ? b.toLowerCase() - : (d = a.getAttributeNode(b)) && d.specified - ? d.value - : null - }), - ga - }(a); - r.find = x, - r.expr = x.selectors, - r.expr[":"] = r.expr.pseudos, - r.uniqueSort = r.unique = x.uniqueSort, - r.text = x.getText, - r.isXMLDoc = x.isXML, - r.contains = x.contains, - r.escapeSelector = x.escape; - var y = function (a, b, c) { - var d = [], - e = void 0 !== c; - while ((a = a[b]) && 9 !== a.nodeType) - if (1 === a.nodeType) { - if (e && r(a).is(c)) - break; - d.push(a) - } - return d - }, - z = function (a, b) { - for (var c = []; a; a = a.nextSibling) - 1 === a.nodeType && a !== b && c.push(a); - return c - }, - A = r.expr.match.needsContext, - B = /^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i, - C = /^.[^:#\[\.,]*$/; - function D(a, b, c) { - return r.isFunction(b) - ? r.grep(a, function (a, d) { - return !!b.call(a, d, a) !== c - }) - : b.nodeType - ? r.grep(a, function (a) { - return a === b !== c - }) - : "string" != typeof b - ? r.grep(a, function (a) { - return i.call(b, a) > -1 !== c - }) - : C.test(b) - ? r.filter(b, a, c) - : (b = r.filter(b, a), r.grep(a, function (a) { - return i.call(b, a) > -1 !== c && 1 === a.nodeType - })) - } - r.filter = function (a, b, c) { - var d = b[0]; - return c && (a = ":not(" + a + ")"), - 1 === b.length && 1 === d.nodeType - ? r - .find - .matchesSelector(d, a) - ? [d] - : [] - : r - .find - .matches(a, r.grep(b, function (a) { - return 1 === a.nodeType - })) - }, - r - .fn - .extend({ - find: function (a) { - var b, - c, - d = this.length, - e = this; - if ("string" != typeof a) - return this.pushStack(r(a).filter(function () { - for (b = 0; b < d; b++) - if (r.contains(e[b], this)) - return !0 - })); - for (c = this.pushStack([]), b = 0; b < d; b++) - r.find(a, e[b], c); - return d > 1 - ? r.uniqueSort(c) - : c - }, - filter: function (a) { - return this.pushStack(D(this, a || [], !1)) - }, - not: function (a) { - return this.pushStack(D(this, a || [], !0)) - }, - is: function (a) { - return !!D(this, "string" == typeof a && A.test(a) - ? r(a) - : a || [], !1).length - } - }); - var E, - F = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/, - G = r.fn.init = function (a, b, c) { - var e, - f; - if (!a) - return this; - if (c = c || E, "string" == typeof a) { - if (e = "<" === a[0] && ">" === a[a.length - 1] && a.length >= 3 - ? [null, a, null] - : F.exec(a), !e || !e[1] && b) - return !b || b.jquery - ? (b || c).find(a) - : this.constructor(b).find(a); - if (e[1]) { - if (b = b instanceof r - ? b[0] - : b, r.merge(this, r.parseHTML(e[1], b && b.nodeType - ? b.ownerDocument || b - : d, !0)), B.test(e[1]) && r.isPlainObject(b)) - for (e in b) - r.isFunction(this[e]) - ? this[e](b[e]) - : this.attr(e, b[e]); - return this - } - return f = d.getElementById(e[2]), - f && (this[0] = f, this.length = 1), - this - } - return a.nodeType - ? (this[0] = a, this.length = 1, this) - : r.isFunction(a) - ? void 0 !== c.ready - ? c.ready(a) - : a(r) - : r.makeArray(a, this) - }; - G.prototype = r.fn, - E = r(d); - var H = /^(?:parents|prev(?:Until|All))/, - I = { - children: !0, - contents: !0, - next: !0, - prev: !0 - }; - r - .fn - .extend({ - has: function (a) { - var b = r(a, this), - c = b.length; - return this.filter(function () { - for (var a = 0; a < c; a++) - if (r.contains(this, b[a])) - return !0 - }) - }, - closest: function (a, b) { - var c, - d = 0, - e = this.length, - f = [], - g = "string" != typeof a && r(a); - if (!A.test(a)) - for (; d < e; d++) - for (c = this[d]; c && c !== b; c = c.parentNode) - if (c.nodeType < 11 && (g - ? g.index(c) > -1 - : 1 === c.nodeType && r.find.matchesSelector(c, a))) { - f.push(c); - break - } - return this.pushStack(f.length > 1 - ? r.uniqueSort(f) - : f) - }, - index: function (a) { - return a - ? "string" == typeof a - ? i.call(r(a), this[0]) - : i.call(this, a.jquery - ? a[0] - : a) - : this[0] && this[0].parentNode - ? this - .first() - .prevAll() - .length - : -1 - }, - add: function (a, b) { - return this.pushStack(r.uniqueSort(r.merge(this.get(), r(a, b)))) - }, - addBack: function (a) { - return this.add(null == a - ? this.prevObject - : this.prevObject.filter(a)) - } - }); - function J(a, b) { - while ((a = a[b]) && 1 !== a.nodeType) - ; - return a - } - r - .each({ - parent: function (a) { - var b = a.parentNode; - return b && 11 !== b.nodeType - ? b - : null - }, - parents: function (a) { - return y(a, "parentNode") - }, - parentsUntil: function (a, b, c) { - return y(a, "parentNode", c) - }, - next: function (a) { - return J(a, "nextSibling") - }, - prev: function (a) { - return J(a, "previousSibling") - }, - nextAll: function (a) { - return y(a, "nextSibling") - }, - prevAll: function (a) { - return y(a, "previousSibling") - }, - nextUntil: function (a, b, c) { - return y(a, "nextSibling", c) - }, - prevUntil: function (a, b, c) { - return y(a, "previousSibling", c) - }, - siblings: function (a) { - return z((a.parentNode || {}).firstChild, a) - }, - children: function (a) { - return z(a.firstChild) - }, - contents: function (a) { - return a.contentDocument || r.merge([], a.childNodes) - } - }, function (a, b) { - r.fn[a] = function (c, d) { - var e = r.map(this, b, c); - return "Until" !== a.slice(-5) && (d = c), - d && "string" == typeof d && (e = r.filter(d, e)), - this.length > 1 && (I[a] || r.uniqueSort(e), H.test(a) && e.reverse()), - this.pushStack(e) - } - }); - var K = /[^\x20\t\r\n\f]+/g; - function L(a) { - var b = {}; - return r.each(a.match(K) || [], function (a, c) { - b[c] = !0 - }), - b - } - r.Callbacks = function (a) { - a = "string" == typeof a - ? L(a) - : r.extend({}, a); - var b, - c, - d, - e, - f = [], - g = [], - h = -1, - i = function () { - for (e = a.once, d = b = !0; g.length; h = -1) { - c = g.shift(); - while (++h < f.length) - f[h].apply(c[0], c[1]) === !1 && a.stopOnFalse && (h = f.length, c = !1) - } - a.memory || (c = !1), - b = !1, - e && (f = c - ? [] - : "") - }, - j = { - add: function () { - return f && (c && !b && (h = f.length - 1, g.push(c)), function d(b) { - r - .each(b, function (b, c) { - r.isFunction(c) - ? a.unique && j.has(c) || f.push(c) - : c && c.length && "string" !== r.type(c) && d(c) - }) - }(arguments), - c && !b && i()), - this - }, - remove: function () { - return r.each(arguments, function (a, b) { - var c; - while ((c = r.inArray(b, f, c)) > -1) - f.splice(c, 1), - c <= h && h-- - }), - this - }, - has: function (a) { - return a - ? r.inArray(a, f) > -1 - : f.length > 0 - }, - empty: function () { - return f && (f = []), - this - }, - disable: function () { - return e = g = [], - f = c = "", - this - }, - disabled: function () { - return !f - }, - lock: function () { - return e = g = [], - c || b || (f = c = ""), - this - }, - locked: function () { - return !!e - }, - fireWith: function (a, c) { - return e || (c = c || [], c = [ - a, c.slice - ? c.slice() - : c - ], g.push(c), b || i()), - this - }, - fire: function () { - return j.fireWith(this, arguments), - this - }, - fired: function () { - return !!d - } - }; - return j - }; - function M(a) { - return a - } - function N(a) { - throw a - } - function O(a, b, c) { - var d; - try { - a && r.isFunction(d = a.promise) - ? d - .call(a) - .done(b) - .fail(c) - : a && r.isFunction(d = a.then) - ? d.call(a, b, c) - : b.call(void 0, a) - } catch (a) { - c.call(void 0, a) - } - } - r.extend({ - Deferred: function (b) { - var c = [ - [ - "notify", "progress", r.Callbacks("memory"), - r.Callbacks("memory"), - 2 - ], - [ - "resolve", "done", r.Callbacks("once memory"), - r.Callbacks("once memory"), - 0, - "resolved" - ], - [ - "reject", "fail", r.Callbacks("once memory"), - r.Callbacks("once memory"), - 1, - "rejected" - ] - ], - d = "pending", - e = { - state: function () { - return d - }, - always: function () { - return f - .done(arguments) - .fail(arguments), - this - }, - "catch": function (a) { - return e.then(null, a) - }, - pipe: function () { - var a = arguments; - return r.Deferred(function (b) { - r - .each(c, function (c, d) { - var e = r.isFunction(a[d[4]]) && a[d[4]]; - f[d[1]](function () { - var a = e && e.apply(this, arguments); - a && r.isFunction(a.promise) - ? a - .promise() - .progress(b.notify) - .done(b.resolve) - .fail(b.reject) - : b[d[0] + "With"](this, e - ? [a] - : arguments) - }) - }), - a = null - }).promise() - }, - then: function (b, d, e) { - var f = 0; - function g(b, c, d, e) { - return function () { - var h = this, - i = arguments, - j = function () { - var a, - j; - if (!(b < f)) { - if (a = d.apply(h, i), a === c.promise()) - throw new TypeError("Thenable self-resolution"); - j = a && ("object" == typeof a || "function" == typeof a) && a.then, - r.isFunction(j) - ? e - ? j.call(a, g(f, c, M, e), g(f, c, N, e)) - : (f++, j.call(a, g(f, c, M, e), g(f, c, N, e), g(f, c, M, c.notifyWith))) - : (d !== M && (h = void 0, i = [a]), (e || c.resolveWith)(h, i)) - } - }, - k = e - ? j - : function () { - try { - j() - } catch (a) { - r.Deferred.exceptionHook && r - .Deferred - .exceptionHook(a, k.stackTrace), - b + 1 >= f && (d !== N && (h = void 0, i = [a]), c.rejectWith(h, i)) - } - }; - b - ? k() - : (r.Deferred.getStackHook && (k.stackTrace = r.Deferred.getStackHook()), a.setTimeout(k)) - } - } - return r.Deferred(function (a) { - c[0][3].add(g(0, a, r.isFunction(e) - ? e - : M, a.notifyWith)), - c[1][3].add(g(0, a, r.isFunction(b) - ? b - : M)), - c[2][3].add(g(0, a, r.isFunction(d) - ? d - : N)) - }).promise() - }, - promise: function (a) { - return null != a - ? r.extend(a, e) - : e - } - }, - f = {}; - return r.each(c, function (a, b) { - var g = b[2], - h = b[5]; - e[b[1]] = g.add, - h && g.add(function () { - d = h - }, c[3 - a][2].disable, c[0][2].lock), - g.add(b[3].fire), - f[b[0]] = function () { - return f[b[0] + "With"](this === f - ? void 0 - : this, arguments), - this - }, - f[b[0] + "With"] = g.fireWith - }), - e.promise(f), - b && b.call(f, f), - f - }, - when: function (a) { - var b = arguments.length, - c = b, - d = Array(c), - e = f.call(arguments), - g = r.Deferred(), - h = function (a) { - return function (c) { - d[a] = this, - e[a] = arguments.length > 1 - ? f.call(arguments) - : c, - --b || g.resolveWith(d, e) - } - }; - if (b <= 1 && (O(a, g.done(h(c)).resolve, g.reject), "pending" === g.state() || r.isFunction(e[c] && e[c].then))) - return g.then(); - while (c--) - O(e[c], h(c), g.reject); - return g.promise() - } - }); - var P = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/; - r.Deferred.exceptionHook = function (b, c) { - a.console && a.console.warn && b && P.test(b.name) && a - .console - .warn("jQuery.Deferred exception: " + b.message, b.stack, c) - }, - r.readyException = function (b) { - a - .setTimeout(function () { - throw b - }) - }; - var Q = r.Deferred(); - r.fn.ready = function (a) { - return Q.then(a)["catch"](function (a) { - r.readyException(a) - }), - this - }, - r.extend({ - isReady: !1, - readyWait: 1, - holdReady: function (a) { - a - ? r.readyWait++ - : r.ready(!0) - }, - ready: function (a) { - (a === !0 - ? --r.readyWait - : r.isReady) || (r.isReady = !0, a !== !0 && --r.readyWait > 0 || Q.resolveWith(d, [r])) - } - }), - r.ready.then = Q.then; - function R() { - d.removeEventListener("DOMContentLoaded", R), - a.removeEventListener("load", R), - r.ready() - } - "complete" === d.readyState || "loading" !== d.readyState && !d.documentElement.doScroll - ? a.setTimeout(r.ready) - : (d.addEventListener("DOMContentLoaded", R), a.addEventListener("load", R)); - var S = function (a, b, c, d, e, f, g) { - var h = 0, - i = a.length, - j = null == c; - if ("object" === r.type(c)) { - e = !0; - for (h in c) - S(a, b, h, c[h], !0, f, g) - } else if (void 0 !== d && (e = !0, r.isFunction(d) || (g = !0), j && (g - ? (b.call(a, d), b = null) - : (j = b, b = function (a, b, c) { - return j.call(r(a), c) - })), b)) - for (; h < i; h++) - b(a[h], c, g - ? d - : d.call(a[h], h, b(a[h], c))); - return e - ? a - : j - ? b.call(a) - : i - ? b(a[0], c) - : f - }, - T = function (a) { - return 1 === a.nodeType || 9 === a.nodeType || !+ a.nodeType - }; - function U() { - this.expando = r.expando + U.uid++ - } - U.uid = 1, - U.prototype = { - cache: function (a) { - var b = a[this.expando]; - return b || (b = {}, T(a) && (a.nodeType - ? a[this.expando] = b - : Object.defineProperty(a, this.expando, { - value: b, - configurable: !0 - }))), - b - }, - set: function (a, b, c) { - var d, - e = this.cache(a); - if ("string" == typeof b) - e[r.camelCase(b)] = c; - else - for (d in b) - e[r.camelCase(d)] = b[d]; - return e - }, - get: function (a, b) { - return void 0 === b - ? this.cache(a) - : a[this.expando] && a[this.expando][r.camelCase(b)] - }, - access: function (a, b, c) { - return void 0 === b || b && "string" == typeof b && void 0 === c - ? this.get(a, b) - : (this.set(a, b, c), void 0 !== c - ? c - : b) - }, - remove: function (a, b) { - var c, - d = a[this.expando]; - if (void 0 !== d) { - if (void 0 !== b) { - r.isArray(b) - ? b = b.map(r.camelCase) - : (b = r.camelCase(b), b = b in d - ? [b] - : b.match(K) || []), - c = b.length; - while (c--) - delete d[b[c]] - } - (void 0 === b || r.isEmptyObject(d)) && (a.nodeType - ? a[this.expando] = void 0 - : delete a[this.expando]) - } - }, - hasData: function (a) { - var b = a[this.expando]; - return void 0 !== b && !r.isEmptyObject(b) - } - }; - var V = new U, - W = new U, - X = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/, - Y = /[A-Z]/g; - function Z(a) { - return "true" === a || "false" !== a && ("null" === a - ? null - : a ===+ a + "" ?+ a : X.test(a) - ? JSON.parse(a) - : a) - } - function $(a, b, c) { - var d; - if (void 0 === c && 1 === a.nodeType) - if (d = "data-" + b.replace(Y, "-$&").toLowerCase(), c = a.getAttribute(d), "string" == typeof c) { - try { - c = Z(c) - } catch (e) {} - W.set(a, b, c) - } else - c = void 0; - return c - } - r.extend({ - hasData: function (a) { - return W.hasData(a) || V.hasData(a) - }, - data: function (a, b, c) { - return W.access(a, b, c) - }, - removeData: function (a, b) { - W.remove(a, b) - }, - _data: function (a, b, c) { - return V.access(a, b, c) - }, - _removeData: function (a, b) { - V.remove(a, b) - } - }), - r - .fn - .extend({ - data: function (a, b) { - var c, - d, - e, - f = this[0], - g = f && f.attributes; - if (void 0 === a) { - if (this.length && (e = W.get(f), 1 === f.nodeType && !V.get(f, "hasDataAttrs"))) { - c = g.length; - while (c--) - g[c] && (d = g[c].name, 0 === d.indexOf("data-") && (d = r.camelCase(d.slice(5)), $(f, d, e[d]))); - V.set(f, "hasDataAttrs", !0) - } - return e - } - return "object" == typeof a - ? this.each(function () { - W.set(this, a) - }) - : S(this, function (b) { - var c; - if (f && void 0 === b) { - if (c = W.get(f, a), void 0 !== c) - return c; - if (c = $(f, a), void 0 !== c) - return c - } else - this - .each(function () { - W.set(this, a, b) - }) - }, null, b, arguments.length > 1, null, !0) - }, - removeData: function (a) { - return this.each(function () { - W.remove(this, a) - }) - } - }), - r.extend({ - queue: function (a, b, c) { - var d; - if (a) - return b = (b || "fx") + "queue", - d = V.get(a, b), - c && (!d || r.isArray(c) - ? d = V.access(a, b, r.makeArray(c)) - : d.push(c)), - d || [] - }, - dequeue: function (a, b) { - b = b || "fx"; - var c = r.queue(a, b), - d = c.length, - e = c.shift(), - f = r._queueHooks(a, b), - g = function () { - r.dequeue(a, b) - }; - "inprogress" === e && (e = c.shift(), d--), - e && ("fx" === b && c.unshift("inprogress"), delete f.stop, e.call(a, g, f)), - !d && f && f - .empty - .fire() - }, - _queueHooks: function (a, b) { - var c = b + "queueHooks"; - return V.get(a, c) || V.access(a, c, { - empty: r - .Callbacks("once memory") - .add(function () { - V.remove(a, [ - b + "queue", - c - ]) - }) - }) - } - }), - r - .fn - .extend({ - queue: function (a, b) { - var c = 2; - return "string" != typeof a && (b = a, a = "fx", c--), - arguments.length < c - ? r.queue(this[0], a) - : void 0 === b - ? this - : this.each(function () { - var c = r.queue(this, a, b); - r._queueHooks(this, a), - "fx" === a && "inprogress" !== c[0] && r.dequeue(this, a) - }) - }, - dequeue: function (a) { - return this.each(function () { - r.dequeue(this, a) - }) - }, - clearQueue: function (a) { - return this.queue(a || "fx", []) - }, - promise: function (a, b) { - var c, - d = 1, - e = r.Deferred(), - f = this, - g = this.length, - h = function () { - --d || e.resolveWith(f, [f]) - }; - "string" != typeof a && (b = a, a = void 0), - a = a || "fx"; - while (g--) - c = V.get(f[g], a + "queueHooks"), - c && c.empty && (d++, c.empty.add(h)); - return h(), - e.promise(b) - } - }); - var _ = /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source, - aa = new RegExp("^(?:([+-])=|)(" + _ + ")([a-z%]*)$", "i"), - ba = [ - "Top", "Right", "Bottom", "Left" - ], - ca = function (a, b) { - return a = b || a, - "none" === a.style.display || "" === a.style.display && r.contains(a.ownerDocument, a) && "none" === r.css(a, "display") - }, - da = function (a, b, c, d) { - var e, - f, - g = {}; - for (f in b) - g[f] = a.style[f], - a.style[f] = b[f]; - e = c.apply(a, d || []); - for (f in b) - a.style[f] = g[f]; - return e - }; - function ea(a, b, c, d) { - var e, - f = 1, - g = 20, - h = d - ? function () { - return d.cur() - } - : function () { - return r.css(a, b, "") - }, - i = h(), - j = c && c[3] || (r.cssNumber[b] - ? "" - : "px"), - k = (r.cssNumber[b] || "px" !== j &&+ i) && aa.exec(r.css(a, b)); - if (k && k[3] !== j) { - j = j || k[3], - c = c || [], - k =+ i || 1; - do - f = f || ".5", - k /= f, - r.style(a, b, k + j); - while (f !== (f = h() / i) && 1 !== f && --g) - } - return c && (k =+ k ||+ i || 0, e = c[1] - ? k + (c[1] + 1) * c[2] :+ c[2], d && (d.unit = j, d.start = k, d.end = e)), - e - } - var fa = {}; - function ga(a) { - var b, - c = a.ownerDocument, - d = a.nodeName, - e = fa[d]; - return e - ? e - : (b = c.body.appendChild(c.createElement(d)), e = r.css(b, "display"), b.parentNode.removeChild(b), "none" === e && (e = "block"), fa[d] = e, e) - } - function ha(a, b) { - for (var c, d, e = [], f = 0, g = a.length; f < g; f++) - d = a[f], - d.style && (c = d.style.display, b - ? ("none" === c && (e[f] = V.get(d, "display") || null, e[f] || (d.style.display = "")), "" === d.style.display && ca(d) && (e[f] = ga(d))) - : "none" !== c && (e[f] = "none", V.set(d, "display", c))); - for (f = 0; f < g; f++) - null != e[f] && (a[f].style.display = e[f]); - return a - } - r - .fn - .extend({ - show: function () { - return ha(this, !0) - }, - hide: function () { - return ha(this) - }, - toggle: function (a) { - return "boolean" == typeof a - ? a - ? this.show() - : this.hide() - : this.each(function () { - ca(this) - ? r(this).show() - : r(this).hide() - }) - } - }); - var ia = /^(?:checkbox|radio)$/i, - ja = /<([a-z][^\/\0>\x20\t\r\n\f]+)/i, - ka = /^$|\/(?:java|ecma)script/i, - la = { - option: [ - 1, "" - ], - thead: [ - 1, "", "
" - ], - col: [ - 2, "", "
" - ], - tr: [ - 2, "", "
" - ], - td: [ - 3, "", "
" - ], - _default: [0, "", ""] - }; - la.optgroup = la.option, - la.tbody = la.tfoot = la.colgroup = la.caption = la.thead, - la.th = la.td; - function ma(a, b) { - var c; - return c = "undefined" != typeof a.getElementsByTagName - ? a.getElementsByTagName(b || "*") - : "undefined" != typeof a.querySelectorAll - ? a.querySelectorAll(b || "*") - : [], - void 0 === b || b && r.nodeName(a, b) - ? r.merge([a], c) - : c - } - function na(a, b) { - for (var c = 0, d = a.length; c < d; c++) - V.set(a[c], "globalEval", !b || V.get(b[c], "globalEval")) - } - var oa = /<|&#?\w+;/; - function pa(a, b, c, d, e) { - for (var f, g, h, i, j, k, l = b.createDocumentFragment(), m = [], n = 0, o = a.length; n < o; n++) - if (f = a[n], f || 0 === f) - if ("object" === r.type(f)) - r.merge(m, f.nodeType - ? [f] - : f); - else if (oa.test(f)) { - g = g || l.appendChild(b.createElement("div")), - h = (ja.exec(f) || ["", ""])[1].toLowerCase(), - i = la[h] || la._default, - g.innerHTML = i[1] + r.htmlPrefilter(f) + i[2], - k = i[0]; - while (k--) - g = g.lastChild; - r.merge(m, g.childNodes), - g = l.firstChild, - g.textContent = "" - } - else - m.push(b.createTextNode(f)); - l.textContent = "", - n = 0; - while (f = m[n++]) - if (d && r.inArray(f, d) > -1) - e && e.push(f); - else if (j = r.contains(f.ownerDocument, f), g = ma(l.appendChild(f), "script"), j && na(g), c) { - k = 0; - while (f = g[k++]) - ka.test(f.type || "") && c.push(f) - } - return l - } - !function () { - var a = d.createDocumentFragment(), - b = a.appendChild(d.createElement("div")), - c = d.createElement("input"); - c.setAttribute("type", "radio"), - c.setAttribute("checked", "checked"), - c.setAttribute("name", "t"), - b.appendChild(c), - o.checkClone = b - .cloneNode(!0) - .cloneNode(!0) - .lastChild - .checked, - b.innerHTML = "", - o.noCloneChecked = !!b - .cloneNode(!0) - .lastChild - .defaultValue - }(); - var qa = d.documentElement, - ra = /^key/, - sa = /^(?:mouse|pointer|contextmenu|drag|drop)|click/, - ta = /^([^.]*)(?:\.(.+)|)/; - function ua() { - return !0 - } - function va() { - return !1 - } - function wa() { - try { - return d.activeElement - } catch (a) {} - } - function xa(a, b, c, d, e, f) { - var g, - h; - if ("object" == typeof b) { - "string" != typeof c && (d = d || c, c = void 0); - for (h in b) - xa(a, h, c, d, b[h], f); - return a - } - if (null == d && null == e - ? (e = c, d = c = void 0) - : null == e && ("string" == typeof c - ? (e = d, d = void 0) - : (e = d, d = c, c = void 0)), e === !1) - e = va; - else if (!e) - return a; - return 1 === f && (g = e, e = function (a) { - return r().off(a), - g.apply(this, arguments) - }, - e.guid = g.guid || (g.guid = r.guid++)), - a.each(function () { - r - .event - .add(this, b, e, d, c) - }) - } - r.event = { - global: {}, - add: function (a, b, c, d, e) { - var f, - g, - h, - i, - j, - k, - l, - m, - n, - o, - p, - q = V.get(a); - if (q) { - c.handler && (f = c, c = f.handler, e = f.selector), - e && r - .find - .matchesSelector(qa, e), - c.guid || (c.guid = r.guid++), - (i = q.events) || (i = q.events = {}), - (g = q.handle) || (g = q.handle = function (b) { - return "undefined" != typeof r && r.event.triggered !== b.type - ? r - .event - .dispatch - .apply(a, arguments) - : void 0 - }), - b = (b || "").match(K) || [""], - j = b.length; - while (j--) - h = ta.exec(b[j]) || [], - n = p = h[1], - o = (h[2] || "").split(".").sort(), - n && (l = r.event.special[n] || {}, n = (e - ? l.delegateType - : l.bindType) || n, l = r.event.special[n] || {}, k = r.extend({ - type: n, - origType: p, - data: d, - handler: c, - guid: c.guid, - selector: e, - needsContext: e && r - .expr - .match - .needsContext - .test(e), - namespace: o.join(".") - }, f), (m = i[n]) || (m = i[n] = [], m.delegateCount = 0, l.setup && l.setup.call(a, d, o, g) !== !1 || a.addEventListener && a.addEventListener(n, g)), l.add && (l.add.call(a, k), k.handler.guid || (k.handler.guid = c.guid)), e - ? m.splice(m.delegateCount++, 0, k) - : m.push(k), r.event.global[n] = !0) - } - }, - remove: function (a, b, c, d, e) { - var f, - g, - h, - i, - j, - k, - l, - m, - n, - o, - p, - q = V.hasData(a) && V.get(a); - if (q && (i = q.events)) { - b = (b || "").match(K) || [""], - j = b.length; - while (j--) - if (h = ta.exec(b[j]) || [], n = p = h[1], o = (h[2] || "").split(".").sort(), n) { - l = r.event.special[n] || {}, - n = (d - ? l.delegateType - : l.bindType) || n, - m = i[n] || [], - h = h[2] && new RegExp("(^|\\.)" + o.join("\\.(?:.*\\.|)") + "(\\.|$)"), - g = f = m.length; - while (f--) - k = m[f], - !e && p !== k.origType || c && c.guid !== k.guid || h && !h.test(k.namespace) || d && d !== k.selector && ("**" !== d || !k.selector) || (m.splice(f, 1), k.selector && m.delegateCount--, l.remove && l.remove.call(a, k)); - g && !m.length && (l.teardown && l.teardown.call(a, o, q.handle) !== !1 || r.removeEvent(a, n, q.handle), delete i[n]) - } - else - for (n in i) - r.event.remove(a, n + b[j], c, d, !0); - r.isEmptyObject(i) && V.remove(a, "handle events") - } - }, - dispatch: function (a) { - var b = r - .event - .fix(a), - c, - d, - e, - f, - g, - h, - i = new Array(arguments.length), - j = (V.get(this, "events") || {})[b.type] || [], - k = r.event.special[b.type] || {}; - for (i[0] = b, c = 1; c < arguments.length; c++) - i[c] = arguments[c]; - if (b.delegateTarget = this, !k.preDispatch || k.preDispatch.call(this, b) !== !1) { - h = r - .event - .handlers - .call(this, b, j), - c = 0; - while ((f = h[c++]) && !b.isPropagationStopped()) { - b.currentTarget = f.elem, - d = 0; - while ((g = f.handlers[d++]) && !b.isImmediatePropagationStopped()) - b.rnamespace && !b.rnamespace.test(g.namespace) || (b.handleObj = g, b.data = g.data, e = ((r.event.special[g.origType] || {}).handle || g.handler).apply(f.elem, i), void 0 !== e && (b.result = e) === !1 && (b.preventDefault(), b.stopPropagation())) - } - return k.postDispatch && k - .postDispatch - .call(this, b), - b.result - } - }, - handlers: function (a, b) { - var c, - d, - e, - f, - g, - h = [], - i = b.delegateCount, - j = a.target; - if (i && j.nodeType && !("click" === a.type && a.button >= 1)) - for (; j !== this; j = j.parentNode || this) - if (1 === j.nodeType && ("click" !== a.type || j.disabled !== !0)) { - for (f = [], g = {}, c = 0; c < i; c++) - d = b[c], - e = d.selector + " ", - void 0 === g[e] && (g[e] = d.needsContext - ? r(e, this).index(j) > -1 - : r.find(e, this, null, [j]).length), - g[e] && f.push(d); - f.length && h.push({elem: j, handlers: f}) - } - return j = this, - i < b.length && h.push({ - elem: j, - handlers: b.slice(i) - }), - h - }, - addProp: function (a, b) { - Object.defineProperty(r.Event.prototype, a, { - enumerable: !0, - configurable: !0, - get: r.isFunction(b) - ? function () { - if (this.originalEvent) - return b(this.originalEvent) - } - : function () { - if (this.originalEvent) - return this.originalEvent[a] - }, - set: function (b) { - Object.defineProperty(this, a, { - enumerable: !0, - configurable: !0, - writable: !0, - value: b - }) - } - }) - }, - fix: function (a) { - return a[r.expando] - ? a - : new r.Event(a) - }, - special: { - load: { - noBubble: !0 - }, - focus: { - trigger: function () { - if (this !== wa() && this.focus) - return this.focus(), - !1 - }, - delegateType: "focusin" - }, - blur: { - trigger: function () { - if (this === wa() && this.blur) - return this.blur(), - !1 - }, - delegateType: "focusout" - }, - click: { - trigger: function () { - if ("checkbox" === this.type && this.click && r.nodeName(this, "input")) - return this.click(), - !1 - }, - _default: function (a) { - return r.nodeName(a.target, "a") - } - }, - beforeunload: { - postDispatch: function (a) { - void 0 !== a.result && a.originalEvent && (a.originalEvent.returnValue = a.result) - } - } - } - }, - r.removeEvent = function (a, b, c) { - a.removeEventListener && a.removeEventListener(b, c) - }, - r.Event = function (a, b) { - return this instanceof r.Event - ? (a && a.type - ? (this.originalEvent = a, this.type = a.type, this.isDefaultPrevented = a.defaultPrevented || void 0 === a.defaultPrevented && a.returnValue === !1 - ? ua - : va, this.target = a.target && 3 === a.target.nodeType - ? a.target.parentNode - : a.target, this.currentTarget = a.currentTarget, this.relatedTarget = a.relatedTarget) - : this.type = a, b && r.extend(this, b), this.timeStamp = a && a.timeStamp || r.now(), void(this[r.expando] = !0)) - : new r.Event(a, b) - }, - r.Event.prototype = { - constructor: r.Event, - isDefaultPrevented: va, - isPropagationStopped: va, - isImmediatePropagationStopped: va, - isSimulated: !1, - preventDefault: function () { - var a = this.originalEvent; - this.isDefaultPrevented = ua, - a && !this.isSimulated && a.preventDefault() - }, - stopPropagation: function () { - var a = this.originalEvent; - this.isPropagationStopped = ua, - a && !this.isSimulated && a.stopPropagation() - }, - stopImmediatePropagation: function () { - var a = this.originalEvent; - this.isImmediatePropagationStopped = ua, - a && !this.isSimulated && a.stopImmediatePropagation(), - this.stopPropagation() - } - }, - r.each({ - altKey: !0, - bubbles: !0, - cancelable: !0, - changedTouches: !0, - ctrlKey: !0, - detail: !0, - eventPhase: !0, - metaKey: !0, - pageX: !0, - pageY: !0, - shiftKey: !0, - view: !0, - "char": !0, - charCode: !0, - key: !0, - keyCode: !0, - button: !0, - buttons: !0, - clientX: !0, - clientY: !0, - offsetX: !0, - offsetY: !0, - pointerId: !0, - pointerType: !0, - screenX: !0, - screenY: !0, - targetTouches: !0, - toElement: !0, - touches: !0, - which: function (a) { - var b = a.button; - return null == a.which && ra.test(a.type) - ? null != a.charCode - ? a.charCode - : a.keyCode - : !a.which && void 0 !== b && sa.test(a.type) - ? 1 & b - ? 1 - : 2 & b - ? 3 - : 4 & b - ? 2 - : 0 - : a.which - } - }, r.event.addProp), - r.each({ - mouseenter: "mouseover", - mouseleave: "mouseout", - pointerenter: "pointerover", - pointerleave: "pointerout" - }, function (a, b) { - r.event.special[a] = { - delegateType: b, - bindType: b, - handle: function (a) { - var c, - d = this, - e = a.relatedTarget, - f = a.handleObj; - return e && (e === d || r.contains(d, e)) || (a.type = f.origType, c = f.handler.apply(this, arguments), a.type = b), - c - } - } - }), - r - .fn - .extend({ - on: function (a, b, c, d) { - return xa(this, a, b, c, d) - }, - one: function (a, b, c, d) { - return xa(this, a, b, c, d, 1) - }, - off: function (a, b, c) { - var d, - e; - if (a && a.preventDefault && a.handleObj) - return d = a.handleObj, - r(a.delegateTarget).off(d.namespace - ? d.origType + "." + d.namespace - : d.origType, d.selector, d.handler), - this; - if ("object" == typeof a) { - for (e in a) - this.off(e, b, a[e]); - return this - } - return b !== !1 && "function" != typeof b || (c = b, b = void 0), - c === !1 && (c = va), - this.each(function () { - r - .event - .remove(this, a, c, b) - }) - } - }); - var ya = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\/\0>\x20\t\r\n\f]*)[^>]*)\/>/gi, - za = /\s*$/g; - function Da(a, b) { - return r.nodeName(a, "table") && r.nodeName(11 !== b.nodeType - ? b - : b.firstChild, "tr") - ? a.getElementsByTagName("tbody")[0] || a - : a - } - function Ea(a) { - return a.type = (null !== a.getAttribute("type")) + "/" + a.type, - a - } - function Fa(a) { - var b = Ba.exec(a.type); - return b - ? a.type = b[1] - : a.removeAttribute("type"), - a - } - function Ga(a, b) { - var c, - d, - e, - f, - g, - h, - i, - j; - if (1 === b.nodeType) { - if (V.hasData(a) && (f = V.access(a), g = V.set(b, f), j = f.events)) { - delete g.handle, - g.events = {}; - for (e in j) - for (c = 0, d = j[e].length; c < d; c++) - r.event.add(b, e, j[e][c]) - } - W.hasData(a) && (h = W.access(a), i = r.extend({}, h), W.set(b, i)) - } - } - function Ha(a, b) { - var c = b - .nodeName - .toLowerCase(); - "input" === c && ia.test(a.type) - ? b.checked = a.checked - : "input" !== c && "textarea" !== c || (b.defaultValue = a.defaultValue) - } - function Ia(a, b, c, d) { - b = g.apply([], b); - var e, - f, - h, - i, - j, - k, - l = 0, - m = a.length, - n = m - 1, - q = b[0], - s = r.isFunction(q); - if (s || m > 1 && "string" == typeof q && !o.checkClone && Aa.test(q)) - return a.each(function (e) { - var f = a.eq(e); - s && (b[0] = q.call(this, e, f.html())), - Ia(f, b, c, d) - }); - if (m && (e = pa(b, a[0].ownerDocument, !1, a, d), f = e.firstChild, 1 === e.childNodes.length && (e = f), f || d)) { - for (h = r.map(ma(e, "script"), Ea), i = h.length; l < m; l++) - j = e, - l !== n && (j = r.clone(j, !0, !0), i && r.merge(h, ma(j, "script"))), - c.call(a[l], j, l); - if (i) - for (k = h[h.length - 1].ownerDocument, r.map(h, Fa), l = 0; l < i; l++) - j = h[l], - ka.test(j.type || "") && !V.access(j, "globalEval") && r.contains(k, j) && (j.src - ? r._evalUrl && r._evalUrl(j.src) - : p(j.textContent.replace(Ca, ""), k)) - } - return a - } - function Ja(a, b, c) { - for (var d, e = b - ? r.filter(b, a) - : a, f = 0; null != (d = e[f]); f++) - c || 1 !== d.nodeType || r.cleanData(ma(d)), - d.parentNode && (c && r.contains(d.ownerDocument, d) && na(ma(d, "script")), d.parentNode.removeChild(d)); - return a - } - r.extend({ - htmlPrefilter: function (a) { - return a.replace(ya, "<$1>") - }, - clone: function (a, b, c) { - var d, - e, - f, - g, - h = a.cloneNode(!0), - i = r.contains(a.ownerDocument, a); - if (!(o.noCloneChecked || 1 !== a.nodeType && 11 !== a.nodeType || r.isXMLDoc(a))) - for (g = ma(h), f = ma(a), d = 0, e = f.length; d < e; d++) - Ha(f[d], g[d]); - if (b) - if (c) - for (f = f || ma(a), g = g || ma(h), d = 0, e = f.length; d < e; d++) - Ga(f[d], g[d]); - else - Ga(a, h); - return g = ma(h, "script"), - g.length > 0 && na(g, !i && ma(a, "script")), - h - }, - cleanData: function (a) { - for (var b, c, d, e = r.event.special, f = 0; void 0 !== (c = a[f]); f++) - if (T(c)) { - if (b = c[V.expando]) { - if (b.events) - for (d in b.events) - e[d] - ? r.event.remove(c, d) - : r.removeEvent(c, d, b.handle); - c[V.expando] = void 0 - } - c[W.expando] && (c[W.expando] = void 0) - } - } - }), - r - .fn - .extend({ - detach: function (a) { - return Ja(this, a, !0) - }, - remove: function (a) { - return Ja(this, a) - }, - text: function (a) { - return S(this, function (a) { - return void 0 === a - ? r.text(this) - : this - .empty() - .each(function () { - 1 !== this.nodeType && 11 !== this.nodeType && 9 !== this.nodeType || (this.textContent = a) - }) - }, null, a, arguments.length) - }, - append: function () { - return Ia(this, arguments, function (a) { - if (1 === this.nodeType || 11 === this.nodeType || 9 === this.nodeType) { - var b = Da(this, a); - b.appendChild(a) - } - }) - }, - prepend: function () { - return Ia(this, arguments, function (a) { - if (1 === this.nodeType || 11 === this.nodeType || 9 === this.nodeType) { - var b = Da(this, a); - b.insertBefore(a, b.firstChild) - } - }) - }, - before: function () { - return Ia(this, arguments, function (a) { - this.parentNode && this - .parentNode - .insertBefore(a, this) - }) - }, - after: function () { - return Ia(this, arguments, function (a) { - this.parentNode && this - .parentNode - .insertBefore(a, this.nextSibling) - }) - }, - empty: function () { - for (var a, b = 0; null != (a = this[b]); b++) - 1 === a.nodeType && (r.cleanData(ma(a, !1)), a.textContent = ""); - return this - }, - clone: function (a, b) { - return a = null != a && a, - b = null == b - ? a - : b, - this.map(function () { - return r.clone(this, a, b) - }) - }, - html: function (a) { - return S(this, function (a) { - var b = this[0] || {}, - c = 0, - d = this.length; - if (void 0 === a && 1 === b.nodeType) - return b.innerHTML; - if ("string" == typeof a && !za.test(a) && !la[(ja.exec(a) || ["", ""])[1].toLowerCase()]) { - a = r.htmlPrefilter(a); - try { - for (; c < d; c++) - b = this[c] || {} - , - 1 === b.nodeType && (r.cleanData(ma(b, !1)), b.innerHTML = a); - b = 0 - } catch (e) {} - } - b && this - .empty() - .append(a) - }, null, a, arguments.length) - }, - replaceWith: function () { - var a = []; - return Ia(this, arguments, function (b) { - var c = this.parentNode; - r.inArray(this, a) < 0 && (r.cleanData(ma(this)), c && c.replaceChild(b, this)) - }, a) - } - }), - r.each({ - appendTo: "append", - prependTo: "prepend", - insertBefore: "before", - insertAfter: "after", - replaceAll: "replaceWith" - }, function (a, b) { - r.fn[a] = function (a) { - for (var c, d = [], e = r(a), f = e.length - 1, g = 0; g <= f; g++) - c = g === f - ? this - : this.clone(!0), - r(e[g])[b](c), - h.apply(d, c.get()); - return this.pushStack(d) - } - }); - var Ka = /^margin/, - La = new RegExp("^(" + _ + ")(?!px)[a-z%]+$", "i"), - Ma = function (b) { - var c = b.ownerDocument.defaultView; - return c && c.opener || (c = a), - c.getComputedStyle(b) - }; - !function () { - function b() { - if (i) { - i.style.cssText = "box-sizing:border-box;position:relative;display:block;margin:auto;border:1px;pad" + - "ding:1px;top:1%;width:50%", - i.innerHTML = "", - qa.appendChild(h); - var b = a.getComputedStyle(i); - c = "1%" !== b.top, - g = "2px" === b.marginLeft, - e = "4px" === b.width, - i.style.marginRight = "50%", - f = "4px" === b.marginRight, - qa.removeChild(h), - i = null - } - } - var c, - e, - f, - g, - h = d.createElement("div"), - i = d.createElement("div"); - i.style && (i.style.backgroundClip = "content-box", i.cloneNode(!0).style.backgroundClip = "", o.clearCloneStyle = "content-box" === i.style.backgroundClip, h.style.cssText = "border:0;width:8px;height:0;top:0;left:-9999px;padding:0;margin-top:1px;position" + - ":absolute", - h.appendChild(i), r.extend(o, { - pixelPosition: function () { - return b(), - c - }, - boxSizingReliable: function () { - return b(), - e - }, - pixelMarginRight: function () { - return b(), - f - }, - reliableMarginLeft: function () { - return b(), - g - } - })) - }(); - function Na(a, b, c) { - var d, - e, - f, - g, - h = a.style; - return c = c || Ma(a), - c && (g = c.getPropertyValue(b) || c[b], "" !== g || r.contains(a.ownerDocument, a) || (g = r.style(a, b)), !o.pixelMarginRight() && La.test(g) && Ka.test(b) && (d = h.width, e = h.minWidth, f = h.maxWidth, h.minWidth = h.maxWidth = h.width = g, g = c.width, h.width = d, h.minWidth = e, h.maxWidth = f)), - void 0 !== g - ? g + "" - : g - } - function Oa(a, b) { - return { - get: function () { - return a() - ? void delete this.get - : (this.get = b).apply(this, arguments) - } - } - } - var Pa = /^(none|table(?!-c[ea]).+)/, - Qa = { - position: "absolute", - visibility: "hidden", - display: "block" - }, - Ra = { - letterSpacing: "0", - fontWeight: "400" - }, - Sa = [ - "Webkit", "Moz", "ms" - ], - Ta = d - .createElement("div") - .style; - function Ua(a) { - if (a in Ta) - return a; - var b = a[0].toUpperCase() + a.slice(1), - c = Sa.length; - while (c--) - if (a = Sa[c] + b, a in Ta) - return a - } - function Va(a, b, c) { - var d = aa.exec(b); - return d - ? Math.max(0, d[2] - (c || 0)) + (d[3] || "px") - : b - } - function Wa(a, b, c, d, e) { - var f, - g = 0; - for (f = c === (d - ? "border" - : "content") - ? 4 - : "width" === b - ? 1 - : 0; f < 4; f += 2) - "margin" === c && (g += r.css(a, c + ba[f], !0, e)), - d - ? ("content" === c && (g -= r.css(a, "padding" + ba[f], !0, e)), "margin" !== c && (g -= r.css(a, "border" + ba[f] + "Width", !0, e))) - : (g += r.css(a, "padding" + ba[f], !0, e), "padding" !== c && (g += r.css(a, "border" + ba[f] + "Width", !0, e))); - return g - } - function Xa(a, b, c) { - var d, - e = !0, - f = Ma(a), - g = "border-box" === r.css(a, "boxSizing", !1, f); - if (a.getClientRects().length && (d = a.getBoundingClientRect()[b]), d <= 0 || null == d) { - if (d = Na(a, b, f), (d < 0 || null == d) && (d = a.style[b]), La.test(d)) - return d; - e = g && (o.boxSizingReliable() || d === a.style[b]), - d = parseFloat(d) || 0 - } - return d + Wa(a, b, c || (g - ? "border" - : "content"), e, f) + "px" - } - r.extend({ - cssHooks: { - opacity: { - get: function (a, b) { - if (b) { - var c = Na(a, "opacity"); - return "" === c - ? "1" - : c - } - } - } - }, - cssNumber: { - animationIterationCount: !0, - columnCount: !0, - fillOpacity: !0, - flexGrow: !0, - flexShrink: !0, - fontWeight: !0, - lineHeight: !0, - opacity: !0, - order: !0, - orphans: !0, - widows: !0, - zIndex: !0, - zoom: !0 - }, - cssProps: { - "float": "cssFloat" - }, - style: function (a, b, c, d) { - if (a && 3 !== a.nodeType && 8 !== a.nodeType && a.style) { - var e, - f, - g, - h = r.camelCase(b), - i = a.style; - return b = r.cssProps[h] || (r.cssProps[h] = Ua(h) || h), - g = r.cssHooks[b] || r.cssHooks[h], - void 0 === c - ? g && "get" in g && void 0 !== (e = g.get(a, !1, d)) - ? e - : i[b] - : (f = typeof c, "string" === f && (e = aa.exec(c)) && e[1] && (c = ea(a, b, e), f = "number"), null != c && c === c && ("number" === f && (c += e && e[3] || (r.cssNumber[h] - ? "" - : "px")), o.clearCloneStyle || "" !== c || 0 !== b.indexOf("background") || (i[b] = "inherit"), g && "set" in g && void 0 === (c = g.set(a, c, d)) || (i[b] = c)), void 0) - } - }, - css: function (a, b, c, d) { - var e, - f, - g, - h = r.camelCase(b); - return b = r.cssProps[h] || (r.cssProps[h] = Ua(h) || h), - g = r.cssHooks[b] || r.cssHooks[h], - g && "get" in g && (e = g.get(a, !0, c)), - void 0 === e && (e = Na(a, b, d)), - "normal" === e && b in Ra && (e = Ra[b]), - "" === c || c - ? (f = parseFloat(e), c === !0 || isFinite(f) - ? f || 0 - : e) - : e - } - }), - r.each([ - "height", "width" - ], function (a, b) { - r.cssHooks[b] = { - get: function (a, c, d) { - if (c) - return !Pa.test(r.css(a, "display")) || a.getClientRects().length && a.getBoundingClientRect().width - ? Xa(a, b, d) - : da(a, Qa, function () { - return Xa(a, b, d) - }) - }, - set: function (a, c, d) { - var e, - f = d && Ma(a), - g = d && Wa(a, b, d, "border-box" === r.css(a, "boxSizing", !1, f), f); - return g && (e = aa.exec(c)) && "px" !== (e[3] || "px") && (a.style[b] = c, c = r.css(a, b)), - Va(a, c, g) - } - } - }), - r.cssHooks.marginLeft = Oa(o.reliableMarginLeft, function (a, b) { - if (b) - return (parseFloat(Na(a, "marginLeft")) || a.getBoundingClientRect().left - da(a, { - marginLeft: 0 - }, function () { - return a - .getBoundingClientRect() - .left - })) + "px" - }), - r.each({ - margin: "", - padding: "", - border: "Width" - }, function (a, b) { - r.cssHooks[a + b] = { - expand: function (c) { - for (var d = 0, e = {}, f = "string" == typeof c - ? c.split(" ") - : [c]; d < 4; d++) - e[a + ba[d] + b] = f[d] || f[d - 2] || f[0]; - return e - } - }, - Ka.test(a) || (r.cssHooks[a + b].set = Va) - }), - r - .fn - .extend({ - css: function (a, b) { - return S(this, function (a, b, c) { - var d, - e, - f = {}, - g = 0; - if (r.isArray(b)) { - for (d = Ma(a), e = b.length; g < e; g++) - f[b[g]] = r.css(a, b[g], !1, d); - return f - } - return void 0 !== c - ? r.style(a, b, c) - : r.css(a, b) - }, a, b, arguments.length > 1) - } - }); - function Ya(a, b, c, d, e) { - return new Ya - .prototype - .init(a, b, c, d, e) - } - r.Tween = Ya, - Ya.prototype = { - constructor: Ya, - init: function (a, b, c, d, e, f) { - this.elem = a, - this.prop = c, - this.easing = e || r.easing._default, - this.options = b, - this.start = this.now = this.cur(), - this.end = d, - this.unit = f || (r.cssNumber[c] - ? "" - : "px") - }, - cur: function () { - var a = Ya.propHooks[this.prop]; - return a && a.get - ? a.get(this) - : Ya - .propHooks - ._default - .get(this) - }, - run: function (a) { - var b, - c = Ya.propHooks[this.prop]; - return this.options.duration - ? this.pos = b = r.easing[this.easing](a, this.options.duration * a, 0, 1, this.options.duration) - : this.pos = b = a, - this.now = (this.end - this.start) * b + this.start, - this.options.step && this - .options - .step - .call(this.elem, this.now, this), - c && c.set - ? c.set(this) - : Ya - .propHooks - ._default - .set(this), - this - } - }, - Ya.prototype.init.prototype = Ya.prototype, - Ya.propHooks = { - _default: { - get: function (a) { - var b; - return 1 !== a.elem.nodeType || null != a.elem[a.prop] && null == a.elem.style[a.prop] - ? a.elem[a.prop] - : (b = r.css(a.elem, a.prop, ""), b && "auto" !== b - ? b - : 0) - }, - set: function (a) { - r.fx.step[a.prop] - ? r.fx.step[a.prop](a) - : 1 !== a.elem.nodeType || null == a.elem.style[r.cssProps[a.prop]] && !r.cssHooks[a.prop] - ? a.elem[a.prop] = a.now - : r.style(a.elem, a.prop, a.now + a.unit) - } - } - }, - Ya.propHooks.scrollTop = Ya.propHooks.scrollLeft = { - set: function (a) { - a.elem.nodeType && a.elem.parentNode && (a.elem[a.prop] = a.now) - } - }, - r.easing = { - linear: function (a) { - return a - }, - swing: function (a) { - return.5 - Math.cos(a * Math.PI) / 2 - }, - _default: "swing" - }, - r.fx = Ya.prototype.init, - r.fx.step = {}; - var Za, - $a, - _a = /^(?:toggle|show|hide)$/, - ab = /queueHooks$/; - function bb() { - $a && (a.requestAnimationFrame(bb), r.fx.tick()) - } - function cb() { - return a.setTimeout(function () { - Za = void 0 - }), - Za = r.now() - } - function db(a, b) { - var c, - d = 0, - e = { - height: a - }; - for (b = b - ? 1 - : 0; d < 4; d += 2 - b) - c = ba[d], - e["margin" + c] = e["padding" + c] = a; - return b && (e.opacity = e.width = a), - e - } - function eb(a, b, c) { - for (var d, e = (hb.tweeners[b] || []).concat(hb.tweeners["*"]), f = 0, g = e.length; f < g; f++) - if (d = e[f].call(c, b, a)) - return d - } - function fb(a, b, c) { - var d, - e, - f, - g, - h, - i, - j, - k, - l = "width" in b || "height" in b, - m = this, - n = {}, - o = a.style, - p = a.nodeType && ca(a), - q = V.get(a, "fxshow"); - c.queue || (g = r._queueHooks(a, "fx"), null == g.unqueued && (g.unqueued = 0, h = g.empty.fire, g.empty.fire = function () { - g.unqueued || h() - }), g.unqueued++, m.always(function () { - m - .always(function () { - g.unqueued--, - r - .queue(a, "fx") - .length || g - .empty - .fire() - }) - })); - for (d in b) - if (e = b[d], _a.test(e)) { - if (delete b[d], f = f || "toggle" === e, e === (p - ? "hide" - : "show")) { - if ("show" !== e || !q || void 0 === q[d]) - continue; - p = !0 - } - n[d] = q && q[d] || r.style(a, d) - } - if (i = !r.isEmptyObject(b), i || !r.isEmptyObject(n)) { - l && 1 === a.nodeType && (c.overflow = [ - o.overflow, o.overflowX, o.overflowY - ], j = q && q.display, null == j && (j = V.get(a, "display")), k = r.css(a, "display"), "none" === k && (j - ? k = j - : (ha([a], !0), j = a.style.display || j, k = r.css(a, "display"), ha([a]))), ("inline" === k || "inline-block" === k && null != j) && "none" === r.css(a, "float") && (i || (m.done(function () { - o.display = j - }), null == j && (k = o.display, j = "none" === k - ? "" - : k)), o.display = "inline-block")), - c.overflow && (o.overflow = "hidden", m.always(function () { - o.overflow = c.overflow[0], - o.overflowX = c.overflow[1], - o.overflowY = c.overflow[2] - })), - i = !1; - for (d in n) - i || (q - ? "hidden" in q && (p = q.hidden) - : q = V.access(a, "fxshow", {display: j}), f && (q.hidden = !p), p && ha([a], !0), m.done(function () { - p || ha([a]), - V.remove(a, "fxshow"); - for (d in n) - r.style(a, d, n[d]) - })), - i = eb(p - ? q[d] - : 0, d, m), - d in q || (q[d] = i.start, p && (i.end = i.start, i.start = 0)) - } - } - function gb(a, b) { - var c, - d, - e, - f, - g; - for (c in a) - if (d = r.camelCase(c), e = b[d], f = a[c], r.isArray(f) && (e = f[1], f = a[c] = f[0]), c !== d && (a[d] = f, delete a[c]), g = r.cssHooks[d], g && "expand" in g) { - f = g.expand(f), - delete a[d]; - for (c in f) - c in a || (a[c] = f[c], b[c] = e) - } - else - b[d] = e - } - function hb(a, b, c) { - var d, - e, - f = 0, - g = hb.prefilters.length, - h = r - .Deferred() - .always(function () { - delete i.elem - }), - i = function () { - if (e) - return !1; - for (var b = Za || cb(), c = Math.max(0, j.startTime + j.duration - b), d = c / j.duration || 0, f = 1 - d, g = 0, i = j.tweens.length; g < i; g++) - j.tweens[g].run(f); - return h.notifyWith(a, [j, f, c]), - f < 1 && i - ? c - : (h.resolveWith(a, [j]), !1) - }, - j = h.promise({ - elem: a, - props: r.extend({}, b), - opts: r.extend(!0, { - specialEasing: {}, - easing: r.easing._default - }, c), - originalProperties: b, - originalOptions: c, - startTime: Za || cb(), - duration: c.duration, - tweens: [], - createTween: function (b, c) { - var d = r.Tween(a, j.opts, b, c, j.opts.specialEasing[b] || j.opts.easing); - return j - .tweens - .push(d), - d - }, - stop: function (b) { - var c = 0, - d = b - ? j.tweens.length - : 0; - if (e) - return this; - for (e = !0; c < d; c++) - j.tweens[c].run(1); - return b - ? (h.notifyWith(a, [j, 1, 0]), h.resolveWith(a, [j, b])) - : h.rejectWith(a, [j, b]), - this - } - }), - k = j.props; - for (gb(k, j.opts.specialEasing); f < g; f++) - if (d = hb.prefilters[f].call(j, a, k, j.opts)) - return r.isFunction(d.stop) && (r._queueHooks(j.elem, j.opts.queue).stop = r.proxy(d.stop, d)), - d; - return r.map(k, eb, j), - r.isFunction(j.opts.start) && j - .opts - .start - .call(a, j), - r - .fx - .timer(r.extend(i, { - elem: a, - anim: j, - queue: j.opts.queue - })), - j - .progress(j.opts.progress) - .done(j.opts.done, j.opts.complete) - .fail(j.opts.fail) - .always(j.opts.always) - } - r.Animation = r.extend(hb, { - tweeners: { - "*": [function (a, b) { - var c = this.createTween(a, b); - return ea(c.elem, a, aa.exec(b), c), - c - } - ] - }, - tweener: function (a, b) { - r.isFunction(a) - ? (b = a, a = ["*"]) - : a = a.match(K); - for (var c, d = 0, e = a.length; d < e; d++) - c = a[d], - hb.tweeners[c] = hb.tweeners[c] || [], - hb.tweeners[c].unshift(b) - }, - prefilters: [fb], - prefilter: function (a, b) { - b - ? hb - .prefilters - .unshift(a) - : hb - .prefilters - .push(a) - } - }), - r.speed = function (a, b, c) { - var e = a && "object" == typeof a - ? r.extend({}, a) - : { - complete: c || !c && b || r.isFunction(a) && a, - duration: a, - easing: c && b || b && !r.isFunction(b) && b - }; - return r.fx.off || d.hidden - ? e.duration = 0 - : "number" != typeof e.duration && (e.duration in r.fx.speeds - ? e.duration = r.fx.speeds[e.duration] - : e.duration = r.fx.speeds._default), - null != e.queue && e.queue !== !0 || (e.queue = "fx"), - e.old = e.complete, - e.complete = function () { - r.isFunction(e.old) && e - .old - .call(this), - e.queue && r.dequeue(this, e.queue) - }, - e - }, - r - .fn - .extend({ - fadeTo: function (a, b, c, d) { - return this - .filter(ca) - .css("opacity", 0) - .show() - .end() - .animate({ - opacity: b - }, a, c, d) - }, - animate: function (a, b, c, d) { - var e = r.isEmptyObject(a), - f = r.speed(b, c, d), - g = function () { - var b = hb(this, r.extend({}, a), f); - (e || V.get(this, "finish")) && b.stop(!0) - }; - return g.finish = g, - e || f.queue === !1 - ? this.each(g) - : this.queue(f.queue, g) - }, - stop: function (a, b, c) { - var d = function (a) { - var b = a.stop; - delete a.stop, - b(c) - }; - return "string" != typeof a && (c = b, b = a, a = void 0), - b && a !== !1 && this.queue(a || "fx", []), - this.each(function () { - var b = !0, - e = null != a && a + "queueHooks", - f = r.timers, - g = V.get(this); - if (e) - g[e] && g[e].stop && d(g[e]); - else - for (e in g) - g[e] && g[e].stop && ab.test(e) && d(g[e]); - for (e = f.length; e--;) - f[e].elem !== this || null != a && f[e].queue !== a || (f[e].anim.stop(c), b = !1, f.splice(e, 1)); - - !b && c || r.dequeue(this, a) - }) - }, - finish: function (a) { - return a !== !1 && (a = a || "fx"), - this.each(function () { - var b, - c = V.get(this), - d = c[a + "queue"], - e = c[a + "queueHooks"], - f = r.timers, - g = d - ? d.length - : 0; - for (c.finish = !0, r.queue(this, a, []), e && e.stop && e.stop.call(this, !0), b = f.length; b--;) - f[b].elem === this && f[b].queue === a && (f[b].anim.stop(!0), f.splice(b, 1)); - for (b = 0; b < g; b++) - d[b] && d[b].finish && d[b].finish.call(this); - delete c.finish - }) - } - }), - r.each([ - "toggle", "show", "hide" - ], function (a, b) { - var c = r.fn[b]; - r.fn[b] = function (a, d, e) { - return null == a || "boolean" == typeof a - ? c.apply(this, arguments) - : this.animate(db(b, !0), a, d, e) - } - }), - r.each({ - slideDown: db("show"), - slideUp: db("hide"), - slideToggle: db("toggle"), - fadeIn: { - opacity: "show" - }, - fadeOut: { - opacity: "hide" - }, - fadeToggle: { - opacity: "toggle" - } - }, function (a, b) { - r.fn[a] = function (a, c, d) { - return this.animate(b, a, c, d) - } - }), - r.timers = [], - r.fx.tick = function () { - var a, - b = 0, - c = r.timers; - for (Za = r.now(); b < c.length; b++) - a = c[b], - a() || c[b] !== a || c.splice(b--, 1); - c.length || r - .fx - .stop(), - Za = void 0 - }, - r.fx.timer = function (a) { - r - .timers - .push(a), - a() - ? r - .fx - .start() - : r - .timers - .pop() - }, - r.fx.interval = 13, - r.fx.start = function () { - $a || ($a = a.requestAnimationFrame - ? a.requestAnimationFrame(bb) - : a.setInterval(r.fx.tick, r.fx.interval)) - }, - r.fx.stop = function () { - a.cancelAnimationFrame - ? a.cancelAnimationFrame($a) - : a.clearInterval($a), - $a = null - }, - r.fx.speeds = { - slow: 600, - fast: 200, - _default: 400 - }, - r.fn.delay = function (b, c) { - return b = r.fx - ? r.fx.speeds[b] || b - : b, - c = c || "fx", - this.queue(c, function (c, d) { - var e = a.setTimeout(c, b); - d.stop = function () { - a.clearTimeout(e) - } - }) - }, - function () { - var a = d.createElement("input"), - b = d.createElement("select"), - c = b.appendChild(d.createElement("option")); - a.type = "checkbox", - o.checkOn = "" !== a.value, - o.optSelected = c.selected, - a = d.createElement("input"), - a.value = "t", - a.type = "radio", - o.radioValue = "t" === a.value - }(); - var ib, - jb = r.expr.attrHandle; - r - .fn - .extend({ - attr: function (a, b) { - return S(this, r.attr, a, b, arguments.length > 1) - }, - removeAttr: function (a) { - return this.each(function () { - r.removeAttr(this, a) - }) - } - }), - r.extend({ - attr: function (a, b, c) { - var d, - e, - f = a.nodeType; - if (3 !== f && 8 !== f && 2 !== f) - return "undefined" == typeof a.getAttribute - ? r.prop(a, b, c) - : (1 === f && r.isXMLDoc(a) || (e = r.attrHooks[b.toLowerCase()] || (r.expr.match.bool.test(b) - ? ib - : void 0)), void 0 !== c - ? null === c - ? void r.removeAttr(a, b) - : e && "set" in e && void 0 !== (d = e.set(a, c, b)) - ? d - : (a.setAttribute(b, c + ""), c) - : e && "get" in e && null !== (d = e.get(a, b)) - ? d - : (d = r.find.attr(a, b), null == d - ? void 0 - : d)) - }, - attrHooks: { - type: { - set: function (a, b) { - if (!o.radioValue && "radio" === b && r.nodeName(a, "input")) { - var c = a.value; - return a.setAttribute("type", b), - c && (a.value = c), - b - } - } - } - }, - removeAttr: function (a, b) { - var c, - d = 0, - e = b && b.match(K); - if (e && 1 === a.nodeType) - while (c = e[d++]) - a.removeAttribute(c) - } - }), - ib = { - set: function (a, b, c) { - return b === !1 - ? r.removeAttr(a, c) - : a.setAttribute(c, c), - c - } - }, - r.each(r.expr.match.bool.source.match(/\w+/g), function (a, b) { - var c = jb[b] || r.find.attr; - jb[b] = function (a, b, d) { - var e, - f, - g = b.toLowerCase(); - return d || (f = jb[g], jb[g] = e, e = null != c(a, b, d) - ? g - : null, jb[g] = f), - e - } - }); - var kb = /^(?:input|select|textarea|button)$/i, - lb = /^(?:a|area)$/i; - r - .fn - .extend({ - prop: function (a, b) { - return S(this, r.prop, a, b, arguments.length > 1) - }, - removeProp: function (a) { - return this.each(function () { - delete this[r.propFix[a] || a] - }) - } - }), - r.extend({ - prop: function (a, b, c) { - var d, - e, - f = a.nodeType; - if (3 !== f && 8 !== f && 2 !== f) - return 1 === f && r.isXMLDoc(a) || (b = r.propFix[b] || b, e = r.propHooks[b]), - void 0 !== c - ? e && "set" in e && void 0 !== (d = e.set(a, c, b)) - ? d - : a[b] = c - : e && "get" in e && null !== (d = e.get(a, b)) - ? d - : a[b] - }, - propHooks: { - tabIndex: { - get: function (a) { - var b = r - .find - .attr(a, "tabindex"); - return b - ? parseInt(b, 10) - : kb.test(a.nodeName) || lb.test(a.nodeName) && a.href - ? 0 - : -1 - } - } - }, - propFix: { - "for": "htmlFor", - "class": "className" - } - }), - o.optSelected || (r.propHooks.selected = { - get: function (a) { - var b = a.parentNode; - return b && b.parentNode && b.parentNode.selectedIndex, - null - }, - set: function (a) { - var b = a.parentNode; - b && (b.selectedIndex, b.parentNode && b.parentNode.selectedIndex) - } - }), - r.each([ - "tabIndex", - "readOnly", - "maxLength", - "cellSpacing", - "cellPadding", - "rowSpan", - "colSpan", - "useMap", - "frameBorder", - "contentEditable" - ], function () { - r.propFix[this.toLowerCase()] = this - }); - function mb(a) { - var b = a.match(K) || []; - return b.join(" ") - } - function nb(a) { - return a.getAttribute && a.getAttribute("class") || "" - } - r - .fn - .extend({ - addClass: function (a) { - var b, - c, - d, - e, - f, - g, - h, - i = 0; - if (r.isFunction(a)) - return this.each(function (b) { - r(this).addClass(a.call(this, b, nb(this))) - }); - if ("string" == typeof a && a) { - b = a.match(K) || []; - while (c = this[i++]) - if (e = nb(c), d = 1 === c.nodeType && " " + mb(e) + " ") { - g = 0; - while (f = b[g++]) - d.indexOf(" " + f + " ") < 0 && (d += f + " "); - h = mb(d), - e !== h && c.setAttribute("class", h) - } - } - return this - }, - removeClass: function (a) { - var b, - c, - d, - e, - f, - g, - h, - i = 0; - if (r.isFunction(a)) - return this.each(function (b) { - r(this).removeClass(a.call(this, b, nb(this))) - }); - if (!arguments.length) - return this.attr("class", ""); - if ("string" == typeof a && a) { - b = a.match(K) || []; - while (c = this[i++]) - if (e = nb(c), d = 1 === c.nodeType && " " + mb(e) + " ") { - g = 0; - while (f = b[g++]) - while (d.indexOf(" " + f + " ") > -1) - d = d.replace(" " + f + " ", " "); - h = mb(d), - e !== h && c.setAttribute("class", h) - } - } - return this - }, - toggleClass: function (a, b) { - var c = typeof a; - return "boolean" == typeof b && "string" === c - ? b - ? this.addClass(a) - : this.removeClass(a) - : r.isFunction(a) - ? this.each(function (c) { - r(this).toggleClass(a.call(this, c, nb(this), b), b) - }) - : this.each(function () { - var b, - d, - e, - f; - if ("string" === c) { - d = 0, - e = r(this), - f = a.match(K) || []; - while (b = f[d++]) - e.hasClass(b) - ? e.removeClass(b) - : e.addClass(b) - } else - void 0 !== a && "boolean" !== c || (b = nb(this), b && V.set(this, "__className__", b), this.setAttribute && this.setAttribute("class", b || a === !1 - ? "" - : V.get(this, "__className__") || "")) - }) - }, - hasClass: function (a) { - var b, - c, - d = 0; - b = " " + a + " "; - while (c = this[d++]) - if (1 === c.nodeType && (" " + mb(nb(c)) + " ").indexOf(b) > -1) - return !0; - return !1 - } - }); - var ob = /\r/g; - r - .fn - .extend({ - val: function (a) { - var b, - c, - d, - e = this[0]; - { - if (arguments.length) - return d = r.isFunction(a), - this.each(function (c) { - var e; - 1 === this.nodeType && (e = d - ? a.call(this, c, r(this).val()) - : a, null == e - ? e = "" - : "number" == typeof e - ? e += "" - : r.isArray(e) && (e = r.map(e, function (a) { - return null == a - ? "" - : a + "" - })), b = r.valHooks[this.type] || r.valHooks[ - this - .nodeName - .toLowerCase() - ], b && "set" in b && void 0 !== b.set(this, e, "value") || (this.value = e)) - }); - if (e) - return b = r.valHooks[e.type] || r.valHooks[ - e - .nodeName - .toLowerCase() - ], - b && "get" in b && void 0 !== (c = b.get(e, "value")) - ? c - : (c = e.value, "string" == typeof c - ? c.replace(ob, "") - : null == c - ? "" - : c) - } - } - }), - r.extend({ - valHooks: { - option: { - get: function (a) { - var b = r - .find - .attr(a, "value"); - return null != b - ? b - : mb(r.text(a)) - } - }, - select: { - get: function (a) { - var b, - c, - d, - e = a.options, - f = a.selectedIndex, - g = "select-one" === a.type, - h = g - ? null - : [], - i = g - ? f + 1 - : e.length; - for (d = f < 0 - ? i - : g - ? f - : 0; d < i; d++) - if (c = e[d], (c.selected || d === f) && !c.disabled && (!c.parentNode.disabled || !r.nodeName(c.parentNode, "optgroup"))) { - if (b = r(c).val(), g) - return b; - h.push(b) - } - return h - }, - set: function (a, b) { - var c, - d, - e = a.options, - f = r.makeArray(b), - g = e.length; - while (g--) - d = e[g], - (d.selected = r.inArray(r.valHooks.option.get(d), f) > -1) && (c = !0); - return c || (a.selectedIndex = -1), - f - } - } - } - }), - r.each([ - "radio", "checkbox" - ], function () { - r.valHooks[this] = { - set: function (a, b) { - if (r.isArray(b)) - return a.checked = r.inArray(r(a).val(), b) > -1 - } - }, - o.checkOn || (r.valHooks[this].get = function (a) { - return null === a.getAttribute("value") - ? "on" - : a.value - }) - }); - var pb = /^(?:focusinfocus|focusoutblur)$/; - r.extend(r.event, { - trigger: function (b, c, e, f) { - var g, - h, - i, - j, - k, - m, - n, - o = [e || d], - p = l.call(b, "type") - ? b.type - : b, - q = l.call(b, "namespace") - ? b - .namespace - .split(".") - : []; - if (h = i = e = e || d, 3 !== e.nodeType && 8 !== e.nodeType && !pb.test(p + r.event.triggered) && (p.indexOf(".") > -1 && (q = p.split("."), p = q.shift(), q.sort()), k = p.indexOf(":") < 0 && "on" + p, b = b[r.expando] - ? b - : new r.Event(p, "object" == typeof b && b), b.isTrigger = f - ? 2 - : 3, b.namespace = q.join("."), b.rnamespace = b.namespace - ? new RegExp("(^|\\.)" + q.join("\\.(?:.*\\.|)") + "(\\.|$)") - : null, b.result = void 0, b.target || (b.target = e), c = null == c - ? [b] - : r.makeArray(c, [b]), n = r.event.special[p] || {}, f || !n.trigger || n.trigger.apply(e, c) !== !1)) { - if (!f && !n.noBubble && !r.isWindow(e)) { - for (j = n.delegateType || p, pb.test(j + p) || (h = h.parentNode); h; h = h.parentNode) - o.push(h), - i = h; - i === (e.ownerDocument || d) && o.push(i.defaultView || i.parentWindow || a) - } - g = 0; - while ((h = o[g++]) && !b.isPropagationStopped()) - b.type = g > 1 - ? j - : n.bindType || p, - m = (V.get(h, "events") || {})[b.type] && V.get(h, "handle"), - m && m.apply(h, c), - m = k && h[k], - m && m.apply && T(h) && (b.result = m.apply(h, c), b.result === !1 && b.preventDefault()); - return b.type = p, - f || b.isDefaultPrevented() || n._default && n - ._default - .apply(o.pop(), c) !== !1 || !T(e) || k && r.isFunction(e[p]) && !r.isWindow(e) && (i = e[k], i && (e[k] = null), r.event.triggered = p, e[p](), r.event.triggered = void 0, i && (e[k] = i)), - b.result - } - }, - simulate: function (a, b, c) { - var d = r.extend(new r.Event, c, { - type: a, - isSimulated: !0 - }); - r - .event - .trigger(d, null, b) - } - }), - r - .fn - .extend({ - trigger: function (a, b) { - return this.each(function () { - r - .event - .trigger(a, b, this) - }) - }, - triggerHandler: function (a, b) { - var c = this[0]; - if (c) - return r.event.trigger(a, b, c, !0) - } - }), - r.each(("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mous" + - "emove mouseover mouseout mouseenter mouseleave change select submit keydown keyp" + - "ress keyup contextmenu").split(" "), function (a, b) { - r.fn[b] = function (a, c) { - return arguments.length > 0 - ? this.on(b, null, a, c) - : this.trigger(b) - } - }), - r - .fn - .extend({ - hover: function (a, b) { - return this - .mouseenter(a) - .mouseleave(b || a) - } - }), - o.focusin = "onfocusin" in a, - o.focusin || r.each({ - focus: "focusin", - blur: "focusout" - }, function (a, b) { - var c = function (a) { - r - .event - .simulate(b, a.target, r.event.fix(a)) - }; - r.event.special[b] = { - setup: function () { - var d = this.ownerDocument || this, - e = V.access(d, b); - e || d.addEventListener(a, c, !0), - V.access(d, b, (e || 0) + 1) - }, - teardown: function () { - var d = this.ownerDocument || this, - e = V.access(d, b) - 1; - e - ? V.access(d, b, e) - : (d.removeEventListener(a, c, !0), V.remove(d, b)) - } - } - }); - var qb = a.location, - rb = r.now(), - sb = /\?/; - r.parseXML = function (b) { - var c; - if (!b || "string" != typeof b) - return null; - try { - c = (new a.DOMParser).parseFromString(b, "text/xml") - } catch (d) { - c = void 0 - } - return c && !c - .getElementsByTagName("parsererror") - .length || r.error("Invalid XML: " + b), - c - }; - var tb = /\[\]$/, - ub = /\r?\n/g, - vb = /^(?:submit|button|image|reset|file)$/i, - wb = /^(?:input|select|textarea|keygen)/i; - function xb(a, b, c, d) { - var e; - if (r.isArray(b)) - r.each(b, function (b, e) { - c || tb.test(a) - ? d(a, e) - : xb(a + "[" + ("object" == typeof e && null != e - ? b - : "") + "]", e, c, d) - }); - else if (c || "object" !== r.type(b)) - d(a, b); - else - for (e in b) - xb(a + "[" + e + "]", b[e], c, d) - } - r.param = function (a, b) { - var c, - d = [], - e = function (a, b) { - var c = r.isFunction(b) - ? b() - : b; - d[d.length] = encodeURIComponent(a) + "=" + encodeURIComponent(null == c - ? "" - : c) - }; - if (r.isArray(a) || a.jquery && !r.isPlainObject(a)) - r.each(a, function () { - e(this.name, this.value) - }); - else - for (c in a) - xb(c, a[c], b, e); - return d.join("&") - }, - r - .fn - .extend({ - serialize: function () { - return r.param(this.serializeArray()) - }, - serializeArray: function () { - return this.map(function () { - var a = r.prop(this, "elements"); - return a - ? r.makeArray(a) - : this - }) - .filter(function () { - var a = this.type; - return this.name && !r(this).is(":disabled") && wb.test(this.nodeName) && !vb.test(a) && (this.checked || !ia.test(a)) - }) - .map(function (a, b) { - var c = r(this).val(); - return null == c - ? null - : r.isArray(c) - ? r.map(c, function (a) { - return { - name: b.name, - value: a.replace(ub, "\r\n") - } - }) - : { - name: b.name, - value: c.replace(ub, "\r\n") - } - }) - .get() - } - }); - var yb = /%20/g, - zb = /#.*$/, - Ab = /([?&])_=[^&]*/, - Bb = /^(.*?):[ \t]*([^\r\n]*)$/gm, - Cb = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/, - Db = /^(?:GET|HEAD)$/, - Eb = /^\/\//, - Fb = {}, - Gb = {}, - Hb = "*/".concat("*"), - Ib = d.createElement("a"); - Ib.href = qb.href; - function Jb(a) { - return function (b, c) { - "string" != typeof b && (c = b, b = "*"); - var d, - e = 0, - f = b - .toLowerCase() - .match(K) || []; - if (r.isFunction(c)) - while (d = f[e++]) - "+" === d[0] - ? (d = d.slice(1) || "*", (a[d] = a[d] || []).unshift(c)) - : (a[d] = a[d] || []).push(c) - } - } - function Kb(a, b, c, d) { - var e = {}, - f = a === Gb; - function g(h) { - var i; - return e[h] = !0, - r.each(a[h] || [], function (a, h) { - var j = h(b, c, d); - return "string" != typeof j || f || e[j] - ? f - ? !(i = j) - : void 0 - : (b.dataTypes.unshift(j), g(j), !1) - }), - i - } - return g(b.dataTypes[0]) || !e["*"] && g("*") - } - function Lb(a, b) { - var c, - d, - e = r.ajaxSettings.flatOptions || {}; - for (c in b) - void 0 !== b[c] && ((e[c] - ? a - : d || (d = {}))[c] = b[c]); - return d && r.extend(!0, a, d), - a - } - function Mb(a, b, c) { - var d, - e, - f, - g, - h = a.contents, - i = a.dataTypes; - while ("*" === i[0]) - i.shift(), - void 0 === d && (d = a.mimeType || b.getResponseHeader("Content-Type")); - if (d) - for (e in h) - if (h[e] && h[e].test(d)) { - i.unshift(e); - break - } - if (i[0] in c) - f = i[0]; - else { - for (e in c) { - if (!i[0] || a.converters[e + " " + i[0]]) { - f = e; - break - } - g || (g = e) - } - f = f || g - } - if (f) - return f !== i[0] && i.unshift(f), - c[f] - } - function Nb(a, b, c, d) { - var e, - f, - g, - h, - i, - j = {}, - k = a - .dataTypes - .slice(); - if (k[1]) - for (g in a.converters) - j[g.toLowerCase()] = a.converters[g]; - f = k.shift(); - while (f) - if (a.responseFields[f] && (c[a.responseFields[f]] = b), !i && d && a.dataFilter && (b = a.dataFilter(b, a.dataType)), i = f, f = k.shift()) - if ("*" === f) - f = i; - else if ("*" !== i && i !== f) { - if (g = j[i + " " + f] || j["* " + f], !g) - for (e in j) - if (h = e.split(" "), h[1] === f && (g = j[i + " " + h[0]] || j["* " + h[0]])) { - g === !0 - ? g = j[e] - : j[e] !== !0 && (f = h[0], k.unshift(h[1])); - break - } - if (g !== !0) - if (g && a["throws"]) - b = g(b); - else - try { - b = g(b) - } catch (l) { - return { - state: "parsererror", - error: g - ? l - : "No conversion from " + i + " to " + f - } - } - } - return {state: "success", data: b} - } - r.extend({ - active: 0, - lastModified: {}, - etag: {}, - ajaxSettings: { - url: qb.href, - type: "GET", - isLocal: Cb.test(qb.protocol), - global: !0, - processData: !0, - async: !0, - contentType: "application/x-www-form-urlencoded; charset=UTF-8", - accepts: { - "*": Hb, - text: "text/plain", - html: "text/html", - xml: "application/xml, text/xml", - json: "application/json, text/javascript" - }, - contents: { - xml: /\bxml\b/, - html: /\bhtml/, - json: /\bjson\b/ - }, - responseFields: { - xml: "responseXML", - text: "responseText", - json: "responseJSON" - }, - converters: { - "* text": String, - "text html": !0, - "text json": JSON.parse, - "text xml": r.parseXML - }, - flatOptions: { - url: !0, - context: !0 - } - }, - ajaxSetup: function (a, b) { - return b - ? Lb(Lb(a, r.ajaxSettings), b) - : Lb(r.ajaxSettings, a) - }, - ajaxPrefilter: Jb(Fb), - ajaxTransport: Jb(Gb), - ajax: function (b, c) { - "object" == typeof b && (c = b, b = void 0), - c = c || {}; - var e, - f, - g, - h, - i, - j, - k, - l, - m, - n, - o = r.ajaxSetup({}, c), - p = o.context || o, - q = o.context && (p.nodeType || p.jquery) - ? r(p) - : r.event, - s = r.Deferred(), - t = r.Callbacks("once memory"), - u = o.statusCode || {}, - v = {}, - w = {}, - x = "canceled", - y = { - readyState: 0, - getResponseHeader: function (a) { - var b; - if (k) { - if (!h) { - h = {}; - while (b = Bb.exec(g)) - h[b[1].toLowerCase()] = b[2] - } - b = h[a.toLowerCase()] - } - return null == b - ? null - : b - }, - getAllResponseHeaders: function () { - return k - ? g - : null - }, - setRequestHeader: function (a, b) { - return null == k && (a = w[a.toLowerCase()] = w[a.toLowerCase()] || a, v[a] = b), - this - }, - overrideMimeType: function (a) { - return null == k && (o.mimeType = a), - this - }, - statusCode: function (a) { - var b; - if (a) - if (k) - y.always(a[y.status]); - else - for (b in a) - u[b] = [u[b], a[b]]; - return this - }, - abort: function (a) { - var b = a || x; - return e && e.abort(b), - A(0, b), - this - } - }; - if (s.promise(y), o.url = ((b || o.url || qb.href) + "").replace(Eb, qb.protocol + "//"), o.type = c.method || c.type || o.method || o.type, o.dataTypes = (o.dataType || "*").toLowerCase().match(K) || [""], null == o.crossDomain) { - j = d.createElement("a"); - try { - j.href = o.url, - j.href = j.href, - o.crossDomain = Ib.protocol + "//" + Ib.host != j.protocol + "//" + j.host - } catch (z) { - o.crossDomain = !0 - } - } - if (o.data && o.processData && "string" != typeof o.data && (o.data = r.param(o.data, o.traditional)), Kb(Fb, o, c, y), k) - return y; - l = r.event && o.global, - l && 0 === r.active++ && r - .event - .trigger("ajaxStart"), - o.type = o - .type - .toUpperCase(), - o.hasContent = !Db.test(o.type), - f = o - .url - .replace(zb, ""), - o.hasContent - ? o.data && o.processData && 0 === (o.contentType || "").indexOf("application/x-www-form-urlencoded") && (o.data = o.data.replace(yb, "+")) - : (n = o.url.slice(f.length), o.data && (f += (sb.test(f) - ? "&" - : "?") + o.data, delete o.data), o.cache === !1 && (f = f.replace(Ab, "$1"), n = (sb.test(f) - ? "&" - : "?") + "_=" + rb++ + n), o.url = f + n), - o.ifModified && (r.lastModified[f] && y.setRequestHeader("If-Modified-Since", r.lastModified[f]), r.etag[f] && y.setRequestHeader("If-None-Match", r.etag[f])), - (o.data && o.hasContent && o.contentType !== !1 || c.contentType) && y.setRequestHeader("Content-Type", o.contentType), - y.setRequestHeader("Accept", o.dataTypes[0] && o.accepts[o.dataTypes[0]] - ? o.accepts[o.dataTypes[0]] + ("*" !== o.dataTypes[0] - ? ", " + Hb + "; q=0.01" - : "") - : o.accepts["*"]); - for (m in o.headers) - y.setRequestHeader(m, o.headers[m]); - if (o.beforeSend && (o.beforeSend.call(p, y, o) === !1 || k)) - return y.abort(); - if (x = "abort", t.add(o.complete), y.done(o.success), y.fail(o.error), e = Kb(Gb, o, c, y)) { - if (y.readyState = 1, l && q.trigger("ajaxSend", [y, o]), k) - return y; - o.async && o.timeout > 0 && (i = a.setTimeout(function () { - y.abort("timeout") - }, o.timeout)); - try { - k = !1, - e.send(v, A) - } catch (z) { - if (k) - throw z; - A(-1, z) - } - } else - A(-1, "No Transport"); - function A(b, c, d, h) { - var j, - m, - n, - v, - w, - x = c; - k || (k = !0, i && a.clearTimeout(i), e = void 0, g = h || "", y.readyState = b > 0 - ? 4 - : 0, j = b >= 200 && b < 300 || 304 === b, d && (v = Mb(o, y, d)), v = Nb(o, v, y, j), j - ? (o.ifModified && (w = y.getResponseHeader("Last-Modified"), w && (r.lastModified[f] = w), w = y.getResponseHeader("etag"), w && (r.etag[f] = w)), 204 === b || "HEAD" === o.type - ? x = "nocontent" - : 304 === b - ? x = "notmodified" - : (x = v.state, m = v.data, n = v.error, j = !n)) - : (n = x, !b && x || (x = "error", b < 0 && (b = 0))), y.status = b, y.statusText = (c || x) + "", j - ? s.resolveWith(p, [m, x, y]) - : s.rejectWith(p, [y, x, n]), y.statusCode(u), u = void 0, l && q.trigger(j - ? "ajaxSuccess" - : "ajaxError", [ - y, o, j - ? m - : n - ]), t.fireWith(p, [y, x]), l && (q.trigger("ajaxComplete", [y, o]), --r.active || r.event.trigger("ajaxStop"))) - } - return y - }, - getJSON: function (a, b, c) { - return r.get(a, b, c, "json") - }, - getScript: function (a, b) { - return r.get(a, void 0, b, "script") - } - }), - r.each([ - "get", "post" - ], function (a, b) { - r[b] = function (a, c, d, e) { - return r.isFunction(c) && (e = e || d, d = c, c = void 0), - r.ajax(r.extend({ - url: a, - type: b, - dataType: e, - data: c, - success: d - }, r.isPlainObject(a) && a)) - } - }), - r._evalUrl = function (a) { - return r.ajax({ - url: a, - type: "GET", - dataType: "script", - cache: !0, - async: !1, - global: !1, - "throws": !0 - }) - }, - r - .fn - .extend({ - wrapAll: function (a) { - var b; - return this[0] && (r.isFunction(a) && (a = a.call(this[0])), b = r(a, this[0].ownerDocument).eq(0).clone(!0), this[0].parentNode && b.insertBefore(this[0]), b.map(function () { - var a = this; - while (a.firstElementChild) - a = a.firstElementChild; - return a - }).append(this)), - this - }, - wrapInner: function (a) { - return r.isFunction(a) - ? this.each(function (b) { - r(this).wrapInner(a.call(this, b)) - }) - : this.each(function () { - var b = r(this), - c = b.contents(); - c.length - ? c.wrapAll(a) - : b.append(a) - }) - }, - wrap: function (a) { - var b = r.isFunction(a); - return this.each(function (c) { - r(this).wrapAll(b - ? a.call(this, c) - : a) - }) - }, - unwrap: function (a) { - return this - .parent(a) - .not("body") - .each(function () { - r(this).replaceWith(this.childNodes) - }), - this - } - }), - r.expr.pseudos.hidden = function (a) { - return !r - .expr - .pseudos - .visible(a) - }, - r.expr.pseudos.visible = function (a) { - return !!(a.offsetWidth || a.offsetHeight || a.getClientRects().length) - }, - r.ajaxSettings.xhr = function () { - try { - return new a.XMLHttpRequest - } catch (b) {} - }; - var Ob = { - 0: 200, - 1223: 204 - }, - Pb = r - .ajaxSettings - .xhr(); - o.cors = !!Pb && "withCredentials" in Pb, - o.ajax = Pb = !!Pb, - r.ajaxTransport(function (b) { - var c, - d; - if (o.cors || Pb && !b.crossDomain) - return { - send: function (e, f) { - var g, - h = b.xhr(); - if (h.open(b.type, b.url, b.async, b.username, b.password), b.xhrFields) - for (g in b.xhrFields) - h[g] = b.xhrFields[g]; - b.mimeType && h.overrideMimeType && h.overrideMimeType(b.mimeType), - b.crossDomain || e["X-Requested-With"] || (e["X-Requested-With"] = "XMLHttpRequest"); - for (g in e) - h.setRequestHeader(g, e[g]); - c = function (a) { - return function () { - c && (c = d = h.onload = h.onerror = h.onabort = h.onreadystatechange = null, "abort" === a - ? h.abort() - : "error" === a - ? "number" != typeof h.status - ? f(0, "error") - : f(h.status, h.statusText) - : f(Ob[h.status] || h.status, h.statusText, "text" !== (h.responseType || "text") || "string" != typeof h.responseText - ? { - binary: h.response - } - : { - text: h.responseText - }, h.getAllResponseHeaders())) - } - }, - h.onload = c(), - d = h.onerror = c("error"), - void 0 !== h.onabort - ? h.onabort = d - : h.onreadystatechange = function () { - 4 === h.readyState && a.setTimeout(function () { - c && d() - }) - }, - c = c("abort"); - try { - h.send(b.hasContent && b.data || null) - } catch (i) { - if (c) - throw i - } - }, - abort: function () { - c && c() - } - } - }), - r.ajaxPrefilter(function (a) { - a.crossDomain && (a.contents.script = !1) - }), - r.ajaxSetup({ - accepts: { - script: "text/javascript, application/javascript, application/ecmascript, application/x-e" + - "cmascript" - }, - contents: { - script: /\b(?:java|ecma)script\b/ - }, - converters: { - "text script": function (a) { - return r.globalEval(a), - a - } - } - }), - r.ajaxPrefilter("script", function (a) { - void 0 === a.cache && (a.cache = !1), - a.crossDomain && (a.type = "GET") - }), - r.ajaxTransport("script", function (a) { - if (a.crossDomain) { - var b, - c; - return { - send: function (e, f) { - b = r(" + + + + \ No newline at end of file diff --git a/assets/js/bootstrap.min.js b/assets/js/bootstrap.min.js new file mode 100644 index 0000000..2dd5553 --- /dev/null +++ b/assets/js/bootstrap.min.js @@ -0,0 +1,1758 @@ +/*! + * Bootstrap v3.3.7 (http://getbootstrap.com) + * Copyright 2011-2016 Twitter, Inc. + * Licensed under the MIT license + */ +if ("undefined" == typeof jQuery) + throw new Error("Bootstrap's JavaScript requires jQuery"); + ++ function (a) { + "use strict"; + var b = a + .fn + .jquery + .split(" ")[0] + .split("."); + if (b[0] < 2 && b[1] < 9 || 1 == b[0] && 9 == b[1] && b[2] < 1 || b[0] > 3) + throw new Error("Bootstrap's JavaScript requires jQuery version 1.9.1 or higher, but lower than v" + + "ersion 4") + }(jQuery), + function (a) { + "use strict"; + function b() { + var a = document.createElement("bootstrap"), + b = { + WebkitTransition: "webkitTransitionEnd", + MozTransition: "transitionend", + OTransition: "oTransitionEnd otransitionend", + transition: "transitionend" + }; + for (var c in b) + if (void 0 !== a.style[c]) + return {end: b[c]}; + return !1 + } + a.fn.emulateTransitionEnd = function (b) { + var c = !1, + d = this; + a(this).one("bsTransitionEnd", function () { + c = !0 + }); + var e = function () { + c || a(d).trigger(a.support.transition.end) + }; + return setTimeout(e, b), + this + }, + a(function () { + a.support.transition = b(), + a.support.transition && (a.event.special.bsTransitionEnd = { + bindType: a.support.transition.end, + delegateType: a.support.transition.end, + handle: function (b) { + if (a(b.target).is(this)) + return b.handleObj.handler.apply(this, arguments) + } + }) + }) +}(jQuery), + function (a) { + "use strict"; + function b(b) { + return this.each(function () { + var c = a(this), + e = c.data("bs.alert"); + e || c.data("bs.alert", e = new d(this)), + "string" == typeof b && e[b].call(c) + }) + } + var c = '[data-dismiss="alert"]', + d = function (b) { + a(b).on("click", c, this.close) + }; + d.VERSION = "3.3.7", + d.TRANSITION_DURATION = 150, + d.prototype.close = function (b) { + function c() { + g + .detach() + .trigger("closed.bs.alert") + .remove() + } + var e = a(this), + f = e.attr("data-target"); + f || (f = e.attr("href"), f = f && f.replace(/.*(?=#[^\s]*$)/, "")); + var g = a("#" === f + ? [] + : f); + b && b.preventDefault(), + g.length || (g = e.closest(".alert")), + g.trigger(b = a.Event("close.bs.alert")), + b.isDefaultPrevented() || (g.removeClass("in"), a.support.transition && g.hasClass("fade") + ? g.one("bsTransitionEnd", c).emulateTransitionEnd(d.TRANSITION_DURATION) + : c()) + }; + var e = a.fn.alert; + a.fn.alert = b, + a.fn.alert.Constructor = d, + a.fn.alert.noConflict = function () { + return a.fn.alert = e, + this + }, + a(document).on("click.bs.alert.data-api", c, d.prototype.close) +}(jQuery), + function (a) { + "use strict"; + function b(b) { + return this.each(function () { + var d = a(this), + e = d.data("bs.button"), + f = "object" == typeof b && b; + e || d.data("bs.button", e = new c(this, f)), + "toggle" == b + ? e.toggle() + : b && e.setState(b) + }) + } + var c = function (b, d) { + this.$element = a(b), + this.options = a.extend({}, c.DEFAULTS, d), + this.isLoading = !1 + }; + c.VERSION = "3.3.7", + c.DEFAULTS = { + loadingText: "loading..." + }, + c.prototype.setState = function (b) { + var c = "disabled", + d = this.$element, + e = d.is("input") + ? "val" + : "html", + f = d.data(); + b += "Text", + null == f.resetText && d.data("resetText", d[e]()), + setTimeout(a.proxy(function () { + d[e](null == f[b] + ? this.options[b] + : f[b]), + "loadingText" == b + ? (this.isLoading = !0, d.addClass(c).attr(c, c).prop(c, !0)) + : this.isLoading && (this.isLoading = !1, d.removeClass(c).removeAttr(c).prop(c, !1)) + }, this), 0) + }, + c.prototype.toggle = function () { + var a = !0, + b = this + .$element + .closest('[data-toggle="buttons"]'); + if (b.length) { + var c = this + .$element + .find("input"); + "radio" == c.prop("type") + ? (c.prop("checked") && (a = !1), b.find(".active").removeClass("active"), this.$element.addClass("active")) + : "checkbox" == c.prop("type") && (c.prop("checked") !== this.$element.hasClass("active") && (a = !1), this.$element.toggleClass("active")), + c.prop("checked", this.$element.hasClass("active")), + a && c.trigger("change") + } else + this + .$element + .attr("aria-pressed", !this.$element.hasClass("active")), + this + .$element + .toggleClass("active") + }; + var d = a.fn.button; + a.fn.button = b, + a.fn.button.Constructor = c, + a.fn.button.noConflict = function () { + return a.fn.button = d, + this + }, + a(document).on("click.bs.button.data-api", '[data-toggle^="button"]', function (c) { + var d = a(c.target).closest(".btn"); + b.call(d, "toggle"), + a(c.target).is('input[type="radio"], input[type="checkbox"]') || (c.preventDefault(), d.is("input,button") + ? d.trigger("focus") + : d.find("input:visible,button:visible").first().trigger("focus")) + }) + .on("focus.bs.button.data-api blur.bs.button.data-api", '[data-toggle^="button"]', function (b) { + a(b.target) + .closest(".btn") + .toggleClass("focus", /^focus(in)?$/.test(b.type)) + }) +}(jQuery), + function (a) { + "use strict"; + function b(b) { + return this.each(function () { + var d = a(this), + e = d.data("bs.carousel"), + f = a.extend({}, c.DEFAULTS, d.data(), "object" == typeof b && b), + g = "string" == typeof b + ? b + : f.slide; + e || d.data("bs.carousel", e = new c(this, f)), + "number" == typeof b + ? e.to(b) + : g + ? e[g]() + : f.interval && e + .pause() + .cycle() + }) + } + var c = function (b, c) { + this.$element = a(b), + this.$indicators = this + .$element + .find(".carousel-indicators"), + this.options = c, + this.paused = null, + this.sliding = null, + this.interval = null, + this.$active = null, + this.$items = null, + this.options.keyboard && this + .$element + .on("keydown.bs.carousel", a.proxy(this.keydown, this)), + "hover" == this.options.pause && !("ontouchstart" in document.documentElement) && this + .$element + .on("mouseenter.bs.carousel", a.proxy(this.pause, this)) + .on("mouseleave.bs.carousel", a.proxy(this.cycle, this)) + }; + c.VERSION = "3.3.7", + c.TRANSITION_DURATION = 600, + c.DEFAULTS = { + interval: 5e3, + pause: "hover", + wrap: !0, + keyboard: !0 + }, + c.prototype.keydown = function (a) { + if (!/input|textarea/i.test(a.target.tagName)) { + switch (a.which) { + case 37: + this.prev(); + break; + case 39: + this.next(); + break; + default: + return + } + a.preventDefault() + } + }, + c.prototype.cycle = function (b) { + return b || (this.paused = !1), + this.interval && clearInterval(this.interval), + this.options.interval && !this.paused && (this.interval = setInterval(a.proxy(this.next, this), this.options.interval)), + this + }, + c.prototype.getItemIndex = function (a) { + return this.$items = a + .parent() + .children(".item"), + this + .$items + .index(a || this.$active) + }, + c.prototype.getItemForDirection = function (a, b) { + var c = this.getItemIndex(b), + d = "prev" == a && 0 === c || "next" == a && c == this.$items.length - 1; + if (d && !this.options.wrap) + return b; + var e = "prev" == a + ? -1 + : 1, + f = (c + e) % this.$items.length; + return this + .$items + .eq(f) + }, + c.prototype.to = function (a) { + var b = this, + c = this.getItemIndex(this.$active = this.$element.find(".item.active")); + if (!(a > this.$items.length - 1 || a < 0)) + return this.sliding + ? this.$element.one("slid.bs.carousel", function () { + b.to(a) + }) + : c == a + ? this.pause().cycle() + : this.slide(a > c + ? "next" + : "prev", this.$items.eq(a)) + }, + c.prototype.pause = function (b) { + return b || (this.paused = !0), + this + .$element + .find(".next, .prev") + .length && a.support.transition && (this.$element.trigger(a.support.transition.end), this.cycle(!0)), + this.interval = clearInterval(this.interval), + this + }, + c.prototype.next = function () { + if (!this.sliding) + return this.slide("next") + }, + c.prototype.prev = function () { + if (!this.sliding) + return this.slide("prev") + }, + c.prototype.slide = function (b, d) { + var e = this + .$element + .find(".item.active"), + f = d || this.getItemForDirection(b, e), + g = this.interval, + h = "next" == b + ? "left" + : "right", + i = this; + if (f.hasClass("active")) + return this.sliding = !1; + var j = f[0], + k = a.Event("slide.bs.carousel", { + relatedTarget: j, + direction: h + }); + if (this.$element.trigger(k), !k.isDefaultPrevented()) { + if (this.sliding = !0, g && this.pause(), this.$indicators.length) { + this + .$indicators + .find(".active") + .removeClass("active"); + var l = a(this.$indicators.children()[this.getItemIndex(f)]); + l && l.addClass("active") + } + var m = a.Event("slid.bs.carousel", { + relatedTarget: j, + direction: h + }); + return a.support.transition && this + .$element + .hasClass("slide") + ? (f.addClass(b), f[0].offsetWidth, e.addClass(h), f.addClass(h), e.one("bsTransitionEnd", function () { + f + .removeClass([b, h].join(" ")) + .addClass("active"), + e.removeClass(["active", h].join(" ")), + i.sliding = !1, + setTimeout(function () { + i + .$element + .trigger(m) + }, 0) + }).emulateTransitionEnd(c.TRANSITION_DURATION)) + : (e.removeClass("active"), f.addClass("active"), this.sliding = !1, this.$element.trigger(m)), + g && this.cycle(), + this + } + }; + var d = a.fn.carousel; + a.fn.carousel = b, + a.fn.carousel.Constructor = c, + a.fn.carousel.noConflict = function () { + return a.fn.carousel = d, + this + }; + var e = function (c) { + var d, + e = a(this), + f = a(e.attr("data-target") || (d = e.attr("href")) && d.replace(/.*(?=#[^\s]+$)/, "")); + if (f.hasClass("carousel")) { + var g = a.extend({}, f.data(), e.data()), + h = e.attr("data-slide-to"); + h && (g.interval = !1), + b.call(f, g), + h && f + .data("bs.carousel") + .to(h), + c.preventDefault() + } + }; + a(document) + .on("click.bs.carousel.data-api", "[data-slide]", e) + .on("click.bs.carousel.data-api", "[data-slide-to]", e), + a(window).on("load", function () { + a('[data-ride="carousel"]') + .each(function () { + var c = a(this); + b.call(c, c.data()) + }) + }) +}(jQuery), + function (a) { + "use strict"; + function b(b) { + var c, + d = b.attr("data-target") || (c = b.attr("href")) && c.replace(/.*(?=#[^\s]+$)/, ""); + return a(d) + } + function c(b) { + return this.each(function () { + var c = a(this), + e = c.data("bs.collapse"), + f = a.extend({}, d.DEFAULTS, c.data(), "object" == typeof b && b); + !e && f.toggle && /show|hide/.test(b) && (f.toggle = !1), + e || c.data("bs.collapse", e = new d(this, f)), + "string" == typeof b && e[b]() + }) + } + var d = function (b, c) { + this.$element = a(b), + this.options = a.extend({}, d.DEFAULTS, c), + this.$trigger = a('[data-toggle="collapse"][href="#' + b.id + '"],[data-toggle="collapse"][data-target="#' + b.id + '"]'), + this.transitioning = null, + this.options.parent + ? this.$parent = this.getParent() + : this.addAriaAndCollapsedClass(this.$element, this.$trigger), + this.options.toggle && this.toggle() + }; + d.VERSION = "3.3.7", + d.TRANSITION_DURATION = 350, + d.DEFAULTS = { + toggle: !0 + }, + d.prototype.dimension = function () { + var a = this + .$element + .hasClass("width"); + return a + ? "width" + : "height" + }, + d.prototype.show = function () { + if (!this.transitioning && !this.$element.hasClass("in")) { + var b, + e = this.$parent && this + .$parent + .children(".panel") + .children(".in, .collapsing"); + if (!(e && e.length && (b = e.data("bs.collapse"), b && b.transitioning))) { + var f = a.Event("show.bs.collapse"); + if (this.$element.trigger(f), !f.isDefaultPrevented()) { + e && e.length && (c.call(e, "hide"), b || e.data("bs.collapse", null)); + var g = this.dimension(); + this + .$element + .removeClass("collapse") + .addClass("collapsing")[g](0) + .attr("aria-expanded", !0), + this + .$trigger + .removeClass("collapsed") + .attr("aria-expanded", !0), + this.transitioning = 1; + var h = function () { + this + .$element + .removeClass("collapsing") + .addClass("collapse in")[g](""), + this.transitioning = 0, + this + .$element + .trigger("shown.bs.collapse") + }; + if (!a.support.transition) + return h.call(this); + var i = a.camelCase(["scroll", g].join("-")); + this + .$element + .one("bsTransitionEnd", a.proxy(h, this)) + .emulateTransitionEnd(d.TRANSITION_DURATION)[g](this.$element[0][i]) + } + } + } + }, + d.prototype.hide = function () { + if (!this.transitioning && this.$element.hasClass("in")) { + var b = a.Event("hide.bs.collapse"); + if (this.$element.trigger(b), !b.isDefaultPrevented()) { + var c = this.dimension(); + this.$element[c](this.$element[c]())[0].offsetHeight, + this + .$element + .addClass("collapsing") + .removeClass("collapse in") + .attr("aria-expanded", !1), + this + .$trigger + .addClass("collapsed") + .attr("aria-expanded", !1), + this.transitioning = 1; + var e = function () { + this.transitioning = 0, + this + .$element + .removeClass("collapsing") + .addClass("collapse") + .trigger("hidden.bs.collapse") + }; + return a.support.transition + ? void this + .$element[c](0) + .one("bsTransitionEnd", a.proxy(e, this)) + .emulateTransitionEnd(d.TRANSITION_DURATION) + : e.call(this) + } + } + }, + d.prototype.toggle = function () { + this[this + .$element + .hasClass("in") + ? "hide" + : "show"]() + }, + d.prototype.getParent = function () { + return a(this.options.parent) + .find('[data-toggle="collapse"][data-parent="' + this.options.parent + '"]') + .each(a.proxy(function (c, d) { + var e = a(d); + this.addAriaAndCollapsedClass(b(e), e) + }, this)) + .end() + }, + d.prototype.addAriaAndCollapsedClass = function (a, b) { + var c = a.hasClass("in"); + a.attr("aria-expanded", c), + b + .toggleClass("collapsed", !c) + .attr("aria-expanded", c) + }; + var e = a.fn.collapse; + a.fn.collapse = c, + a.fn.collapse.Constructor = d, + a.fn.collapse.noConflict = function () { + return a.fn.collapse = e, + this + }, + a(document).on("click.bs.collapse.data-api", '[data-toggle="collapse"]', function (d) { + var e = a(this); + e.attr("data-target") || d.preventDefault(); + var f = b(e), + g = f.data("bs.collapse"), + h = g + ? "toggle" + : e.data(); + c.call(f, h) + }) +}(jQuery), + function (a) { + "use strict"; + function b(b) { + var c = b.attr("data-target"); + c || (c = b.attr("href"), c = c && /#[A-Za-z]/.test(c) && c.replace(/.*(?=#[^\s]*$)/, "")); + var d = c && a(c); + return d && d.length + ? d + : b.parent() + } + function c(c) { + c && 3 === c.which || (a(e).remove(), a(f).each(function () { + var d = a(this), + e = b(d), + f = { + relatedTarget: this + }; + e.hasClass("open") && (c && "click" == c.type && /input|textarea/i.test(c.target.tagName) && a.contains(e[0], c.target) || (e.trigger(c = a.Event("hide.bs.dropdown", f)), c.isDefaultPrevented() || (d.attr("aria-expanded", "false"), e.removeClass("open").trigger(a.Event("hidden.bs.dropdown", f))))) + })) + } + function d(b) { + return this.each(function () { + var c = a(this), + d = c.data("bs.dropdown"); + d || c.data("bs.dropdown", d = new g(this)), + "string" == typeof b && d[b].call(c) + }) + } + var e = ".dropdown-backdrop", + f = '[data-toggle="dropdown"]', + g = function (b) { + a(b).on("click.bs.dropdown", this.toggle) + }; + g.VERSION = "3.3.7", + g.prototype.toggle = function (d) { + var e = a(this); + if (!e.is(".disabled, :disabled")) { + var f = b(e), + g = f.hasClass("open"); + if (c(), !g) { + "ontouchstart" in document.documentElement && !f + .closest(".navbar-nav") + .length && a(document.createElement("div")) + .addClass("dropdown-backdrop") + .insertAfter(a(this)) + .on("click", c); + var h = { + relatedTarget: this + }; + if (f.trigger(d = a.Event("show.bs.dropdown", h)), d.isDefaultPrevented()) + return; + e + .trigger("focus") + .attr("aria-expanded", "true"), + f + .toggleClass("open") + .trigger(a.Event("shown.bs.dropdown", h)) + } + return !1 + } + }, + g.prototype.keydown = function (c) { + if (/(38|40|27|32)/.test(c.which) && !/input|textarea/i.test(c.target.tagName)) { + var d = a(this); + if (c.preventDefault(), c.stopPropagation(), !d.is(".disabled, :disabled")) { + var e = b(d), + g = e.hasClass("open"); + if (!g && 27 != c.which || g && 27 == c.which) + return 27 == c.which && e.find(f).trigger("focus"), + d.trigger("click"); + var h = " li:not(.disabled):visible a", + i = e.find(".dropdown-menu" + h); + if (i.length) { + var j = i.index(c.target); + 38 == c.which && j > 0 && j--, + 40 == c.which && j < i.length - 1 && j++, ~ j || (j = 0), + i + .eq(j) + .trigger("focus") + } + } + } + }; + var h = a.fn.dropdown; + a.fn.dropdown = d, + a.fn.dropdown.Constructor = g, + a.fn.dropdown.noConflict = function () { + return a.fn.dropdown = h, + this + }, + a(document) + .on("click.bs.dropdown.data-api", c) + .on("click.bs.dropdown.data-api", ".dropdown form", function (a) { + a.stopPropagation() + }) + .on("click.bs.dropdown.data-api", f, g.prototype.toggle) + .on("keydown.bs.dropdown.data-api", f, g.prototype.keydown) + .on("keydown.bs.dropdown.data-api", ".dropdown-menu", g.prototype.keydown) +}(jQuery), + function (a) { + "use strict"; + function b(b, d) { + return this.each(function () { + var e = a(this), + f = e.data("bs.modal"), + g = a.extend({}, c.DEFAULTS, e.data(), "object" == typeof b && b); + f || e.data("bs.modal", f = new c(this, g)), + "string" == typeof b + ? f[b](d) + : g.show && f.show(d) + }) + } + var c = function (b, c) { + this.options = c, + this.$body = a(document.body), + this.$element = a(b), + this.$dialog = this + .$element + .find(".modal-dialog"), + this.$backdrop = null, + this.isShown = null, + this.originalBodyPad = null, + this.scrollbarWidth = 0, + this.ignoreBackdropClick = !1, + this.options.remote && this + .$element + .find(".modal-content") + .load(this.options.remote, a.proxy(function () { + this + .$element + .trigger("loaded.bs.modal") + }, this)) + }; + c.VERSION = "3.3.7", + c.TRANSITION_DURATION = 300, + c.BACKDROP_TRANSITION_DURATION = 150, + c.DEFAULTS = { + backdrop: !0, + keyboard: !0, + show: !0 + }, + c.prototype.toggle = function (a) { + return this.isShown + ? this.hide() + : this.show(a) + }, + c.prototype.show = function (b) { + var d = this, + e = a.Event("show.bs.modal", {relatedTarget: b}); + this + .$element + .trigger(e), + this.isShown || e.isDefaultPrevented() || (this.isShown = !0, this.checkScrollbar(), this.setScrollbar(), this.$body.addClass("modal-open"), this.escape(), this.resize(), this.$element.on("click.dismiss.bs.modal", '[data-dismiss="modal"]', a.proxy(this.hide, this)), this.$dialog.on("mousedown.dismiss.bs.modal", function () { + d + .$element + .one("mouseup.dismiss.bs.modal", function (b) { + a(b.target).is(d.$element) && (d.ignoreBackdropClick = !0) + }) + }), this.backdrop(function () { + var e = a.support.transition && d + .$element + .hasClass("fade"); + d + .$element + .parent() + .length || d + .$element + .appendTo(d.$body), + d + .$element + .show() + .scrollTop(0), + d.adjustDialog(), + e && d.$element[0].offsetWidth, + d + .$element + .addClass("in"), + d.enforceFocus(); + var f = a.Event("shown.bs.modal", {relatedTarget: b}); + e + ? d + .$dialog + .one("bsTransitionEnd", function () { + d + .$element + .trigger("focus") + .trigger(f) + }) + .emulateTransitionEnd(c.TRANSITION_DURATION) + : d + .$element + .trigger("focus") + .trigger(f) + })) + }, + c.prototype.hide = function (b) { + b && b.preventDefault(), + b = a.Event("hide.bs.modal"), + this + .$element + .trigger(b), + this.isShown && !b.isDefaultPrevented() && (this.isShown = !1, this.escape(), this.resize(), a(document).off("focusin.bs.modal"), this.$element.removeClass("in").off("click.dismiss.bs.modal").off("mouseup.dismiss.bs.modal"), this.$dialog.off("mousedown.dismiss.bs.modal"), a.support.transition && this.$element.hasClass("fade") + ? this.$element.one("bsTransitionEnd", a.proxy(this.hideModal, this)).emulateTransitionEnd(c.TRANSITION_DURATION) + : this.hideModal()) + }, + c.prototype.enforceFocus = function () { + a(document) + .off("focusin.bs.modal") + .on("focusin.bs.modal", a.proxy(function (a) { + document === a.target || this.$element[0] === a.target || this + .$element + .has(a.target) + .length || this + .$element + .trigger("focus") + }, this)) + }, + c.prototype.escape = function () { + this.isShown && this.options.keyboard + ? this + .$element + .on("keydown.dismiss.bs.modal", a.proxy(function (a) { + 27 == a.which && this.hide() + }, this)) + : this.isShown || this + .$element + .off("keydown.dismiss.bs.modal") + }, + c.prototype.resize = function () { + this.isShown + ? a(window).on("resize.bs.modal", a.proxy(this.handleUpdate, this)) + : a(window).off("resize.bs.modal") + }, + c.prototype.hideModal = function () { + var a = this; + this + .$element + .hide(), + this.backdrop(function () { + a + .$body + .removeClass("modal-open"), + a.resetAdjustments(), + a.resetScrollbar(), + a + .$element + .trigger("hidden.bs.modal") + }) + }, + c.prototype.removeBackdrop = function () { + this.$backdrop && this + .$backdrop + .remove(), + this.$backdrop = null + }, + c.prototype.backdrop = function (b) { + var d = this, + e = this + .$element + .hasClass("fade") + ? "fade" + : ""; + if (this.isShown && this.options.backdrop) { + var f = a.support.transition && e; + if (this.$backdrop = a(document.createElement("div")).addClass("modal-backdrop " + e).appendTo(this.$body), this.$element.on("click.dismiss.bs.modal", a.proxy(function (a) { + return this.ignoreBackdropClick + ? void(this.ignoreBackdropClick = !1) + : void(a.target === a.currentTarget && ("static" == this.options.backdrop + ? this.$element[0].focus() + : this.hide())) + }, this)), f && this.$backdrop[0].offsetWidth, this.$backdrop.addClass("in"), !b) + return; + f + ? this + .$backdrop + .one("bsTransitionEnd", b) + .emulateTransitionEnd(c.BACKDROP_TRANSITION_DURATION) + : b() + } else if (!this.isShown && this.$backdrop) { + this + .$backdrop + .removeClass("in"); + var g = function () { + d.removeBackdrop(), + b && b() + }; + a.support.transition && this + .$element + .hasClass("fade") + ? this + .$backdrop + .one("bsTransitionEnd", g) + .emulateTransitionEnd(c.BACKDROP_TRANSITION_DURATION) + : g() + } else + b && b() + }, + c.prototype.handleUpdate = function () { + this.adjustDialog() + }, + c.prototype.adjustDialog = function () { + var a = this.$element[0].scrollHeight > document.documentElement.clientHeight; + this + .$element + .css({ + paddingLeft: !this.bodyIsOverflowing && a + ? this.scrollbarWidth + : "", + paddingRight: this.bodyIsOverflowing && !a + ? this.scrollbarWidth + : "" + }) + }, + c.prototype.resetAdjustments = function () { + this + .$element + .css({paddingLeft: "", paddingRight: ""}) + }, + c.prototype.checkScrollbar = function () { + var a = window.innerWidth; + if (!a) { + var b = document + .documentElement + .getBoundingClientRect(); + a = b.right - Math.abs(b.left) + } + this.bodyIsOverflowing = document.body.clientWidth < a, + this.scrollbarWidth = this.measureScrollbar() + }, + c.prototype.setScrollbar = function () { + var a = parseInt(this.$body.css("padding-right") || 0, 10); + this.originalBodyPad = document.body.style.paddingRight || "", + this.bodyIsOverflowing && this + .$body + .css("padding-right", a + this.scrollbarWidth) + }, + c.prototype.resetScrollbar = function () { + this + .$body + .css("padding-right", this.originalBodyPad) + }, + c.prototype.measureScrollbar = function () { + var a = document.createElement("div"); + a.className = "modal-scrollbar-measure", + this + .$body + .append(a); + var b = a.offsetWidth - a.clientWidth; + return this + .$body[0] + .removeChild(a), + b + }; + var d = a.fn.modal; + a.fn.modal = b, + a.fn.modal.Constructor = c, + a.fn.modal.noConflict = function () { + return a.fn.modal = d, + this + }, + a(document).on("click.bs.modal.data-api", '[data-toggle="modal"]', function (c) { + var d = a(this), + e = d.attr("href"), + f = a(d.attr("data-target") || e && e.replace(/.*(?=#[^\s]+$)/, "")), + g = f.data("bs.modal") + ? "toggle" + : a.extend({ + remote: !/#/.test(e) && e + }, f.data(), d.data()); + d.is("a") && c.preventDefault(), + f.one("show.bs.modal", function (a) { + a.isDefaultPrevented() || f.one("hidden.bs.modal", function () { + d.is(":visible") && d.trigger("focus") + }) + }), + b.call(f, g, this) + }) +}(jQuery), + function (a) { + "use strict"; + function b(b) { + return this.each(function () { + var d = a(this), + e = d.data("bs.tooltip"), + f = "object" == typeof b && b; + !e && /destroy|hide/.test(b) || (e || d.data("bs.tooltip", e = new c(this, f)), "string" == typeof b && e[b]()) + }) + } + var c = function (a, b) { + this.type = null, + this.options = null, + this.enabled = null, + this.timeout = null, + this.hoverState = null, + this.$element = null, + this.inState = null, + this.init("tooltip", a, b) + }; + c.VERSION = "3.3.7", + c.TRANSITION_DURATION = 150, + c.DEFAULTS = { + animation: !0, + placement: "top", + selector: !1, + template: '', + trigger: "hover focus", + title: "", + delay: 0, + html: !1, + container: !1, + viewport: { + selector: "body", + padding: 0 + } + }, + c.prototype.init = function (b, c, d) { + if (this.enabled = !0, this.type = b, this.$element = a(c), this.options = this.getOptions(d), this.$viewport = this.options.viewport && a(a.isFunction(this.options.viewport) + ? this.options.viewport.call(this, this.$element) + : this.options.viewport.selector || this.options.viewport), this.inState = { + click: !1, + hover: !1, + focus: !1 + }, this.$element[0]instanceof document.constructor && !this.options.selector) + throw new Error("`selector` option must be specified when initializing " + this.type + " on the window.document object!"); + for (var e = this.options.trigger.split(" "), f = e.length; f--;) { + var g = e[f]; + if ("click" == g) + this.$element.on("click." + this.type, this.options.selector, a.proxy(this.toggle, this)); + else if ("manual" != g) { + var h = "hover" == g + ? "mouseenter" + : "focusin", + i = "hover" == g + ? "mouseleave" + : "focusout"; + this + .$element + .on(h + "." + this.type, this.options.selector, a.proxy(this.enter, this)), + this + .$element + .on(i + "." + this.type, this.options.selector, a.proxy(this.leave, this)) + } + } + this.options.selector + ? this._options = a.extend({}, this.options, { + trigger: "manual", + selector: "" + }) + : this.fixTitle() + }, + c.prototype.getDefaults = function () { + return c.DEFAULTS + }, + c.prototype.getOptions = function (b) { + return b = a.extend({}, this.getDefaults(), this.$element.data(), b), + b.delay && "number" == typeof b.delay && (b.delay = { + show: b.delay, + hide: b.delay + }), + b + }, + c.prototype.getDelegateOptions = function () { + var b = {}, + c = this.getDefaults(); + return this._options && a.each(this._options, function (a, d) { + c[a] != d && (b[a] = d) + }), + b + }, + c.prototype.enter = function (b) { + var c = b instanceof this.constructor + ? b + : a(b.currentTarget).data("bs." + this.type); + return c || (c = new this.constructor(b.currentTarget, this.getDelegateOptions()), a(b.currentTarget).data("bs." + this.type, c)), + b instanceof a.Event && (c.inState["focusin" == b.type + ? "focus" + : "hover"] = !0), + c + .tip() + .hasClass("in") || "in" == c.hoverState + ? void(c.hoverState = "in") + : (clearTimeout(c.timeout), c.hoverState = "in", c.options.delay && c.options.delay.show + ? void(c.timeout = setTimeout(function () { + "in" == c.hoverState && c.show() + }, c.options.delay.show)) + : c.show()) + }, + c.prototype.isInStateTrue = function () { + for (var a in this.inState) + if (this.inState[a]) + return !0; + return !1 + }, + c.prototype.leave = function (b) { + var c = b instanceof this.constructor + ? b + : a(b.currentTarget).data("bs." + this.type); + if (c || (c = new this.constructor(b.currentTarget, this.getDelegateOptions()), a(b.currentTarget).data("bs." + this.type, c)), b instanceof a.Event && (c.inState["focusout" == b.type + ? "focus" + : "hover"] = !1), !c.isInStateTrue()) + return clearTimeout(c.timeout), + c.hoverState = "out", + c.options.delay && c.options.delay.hide + ? void(c.timeout = setTimeout(function () { + "out" == c.hoverState && c.hide() + }, c.options.delay.hide)) + : c.hide() + }, + c.prototype.show = function () { + var b = a.Event("show.bs." + this.type); + if (this.hasContent() && this.enabled) { + this + .$element + .trigger(b); + var d = a.contains(this.$element[0].ownerDocument.documentElement, this.$element[0]); + if (b.isDefaultPrevented() || !d) + return; + var e = this, + f = this.tip(), + g = this.getUID(this.type); + this.setContent(), + f.attr("id", g), + this + .$element + .attr("aria-describedby", g), + this.options.animation && f.addClass("fade"); + var h = "function" == typeof this.options.placement + ? this + .options + .placement + .call(this, f[0], this.$element[0]) + : this.options.placement, + i = /\s?auto?\s?/i, + j = i.test(h); + j && (h = h.replace(i, "") || "top"), + f + .detach() + .css({top: 0, left: 0, display: "block"}) + .addClass(h) + .data("bs." + this.type, this), + this.options.container + ? f.appendTo(this.options.container) + : f.insertAfter(this.$element), + this + .$element + .trigger("inserted.bs." + this.type); + var k = this.getPosition(), + l = f[0].offsetWidth, + m = f[0].offsetHeight; + if (j) { + var n = h, + o = this.getPosition(this.$viewport); + h = "bottom" == h && k.bottom + m > o.bottom + ? "top" + : "top" == h && k.top - m < o.top + ? "bottom" + : "right" == h && k.right + l > o.width + ? "left" + : "left" == h && k.left - l < o.left + ? "right" + : h, + f + .removeClass(n) + .addClass(h) + } + var p = this.getCalculatedOffset(h, k, l, m); + this.applyPlacement(p, h); + var q = function () { + var a = e.hoverState; + e + .$element + .trigger("shown.bs." + e.type), + e.hoverState = null, + "out" == a && e.leave(e) + }; + a.support.transition && this + .$tip + .hasClass("fade") + ? f + .one("bsTransitionEnd", q) + .emulateTransitionEnd(c.TRANSITION_DURATION) + : q() + } + }, + c.prototype.applyPlacement = function (b, c) { + var d = this.tip(), + e = d[0].offsetWidth, + f = d[0].offsetHeight, + g = parseInt(d.css("margin-top"), 10), + h = parseInt(d.css("margin-left"), 10); + isNaN(g) && (g = 0), + isNaN(h) && (h = 0), + b.top += g, + b.left += h, + a + .offset + .setOffset(d[0], a.extend({ + using: function (a) { + d.css({ + top: Math.round(a.top), + left: Math.round(a.left) + }) + } + }, b), 0), + d.addClass("in"); + var i = d[0].offsetWidth, + j = d[0].offsetHeight; + "top" == c && j != f && (b.top = b.top + f - j); + var k = this.getViewportAdjustedDelta(c, b, i, j); + k.left + ? b.left += k.left + : b.top += k.top; + var l = /top|bottom/.test(c), + m = l + ? 2 * k.left - e + i + : 2 * k.top - f + j, + n = l + ? "offsetWidth" + : "offsetHeight"; + d.offset(b), + this.replaceArrow(m, d[0][n], l) + }, + c.prototype.replaceArrow = function (a, b, c) { + this + .arrow() + .css(c + ? "left" + : "top", 50 * (1 - a / b) + "%") + .css(c + ? "top" + : "left", "") + }, + c.prototype.setContent = function () { + var a = this.tip(), + b = this.getTitle(); + a.find(".tooltip-inner")[this.options.html + ? "html" + : "text"](b), + a.removeClass("fade in top bottom left right") + }, + c.prototype.hide = function (b) { + function d() { + "in" != e.hoverState && f.detach(), + e.$element && e + .$element + .removeAttr("aria-describedby") + .trigger("hidden.bs." + e.type), + b && b() + } + var e = this, + f = a(this.$tip), + g = a.Event("hide.bs." + this.type); + if (this.$element.trigger(g), !g.isDefaultPrevented()) + return f.removeClass("in"), + a.support.transition && f.hasClass("fade") + ? f.one("bsTransitionEnd", d).emulateTransitionEnd(c.TRANSITION_DURATION) + : d(), + this.hoverState = null, + this + }, + c.prototype.fixTitle = function () { + var a = this.$element; + (a.attr("title") || "string" != typeof a.attr("data-original-title")) && a.attr("data-original-title", a.attr("title") || "").attr("title", "") + }, + c.prototype.hasContent = function () { + return this.getTitle() + }, + c.prototype.getPosition = function (b) { + b = b || this.$element; + var c = b[0], + d = "BODY" == c.tagName, + e = c.getBoundingClientRect(); + null == e.width && (e = a.extend({}, e, { + width: e.right - e.left, + height: e.bottom - e.top + })); + var f = window.SVGElement && c instanceof window.SVGElement, + g = d + ? { + top: 0, + left: 0 + } + : f + ? null + : b.offset(), + h = { + scroll: d + ? document.documentElement.scrollTop || document.body.scrollTop + : b.scrollTop() + }, + i = d + ? { + width: a(window).width(), + height: a(window).height() + } + : null; + return a.extend({}, e, h, i, g) + }, + c.prototype.getCalculatedOffset = function (a, b, c, d) { + return "bottom" == a + ? { + top: b.top + b.height, + left: b.left + b.width / 2 - c / 2 + } + : "top" == a + ? { + top: b.top - d, + left: b.left + b.width / 2 - c / 2 + } + : "left" == a + ? { + top: b.top + b.height / 2 - d / 2, + left: b.left - c + } + : { + top: b.top + b.height / 2 - d / 2, + left: b.left + b.width + } + }, + c.prototype.getViewportAdjustedDelta = function (a, b, c, d) { + var e = { + top: 0, + left: 0 + }; + if (!this.$viewport) + return e; + var f = this.options.viewport && this.options.viewport.padding || 0, + g = this.getPosition(this.$viewport); + if (/right|left/.test(a)) { + var h = b.top - f - g.scroll, + i = b.top + f - g.scroll + d; + h < g.top + ? e.top = g.top - h + : i > g.top + g.height && (e.top = g.top + g.height - i) + } else { + var j = b.left - f, + k = b.left + f + c; + j < g.left + ? e.left = g.left - j + : k > g.right && (e.left = g.left + g.width - k) + } + return e + }, + c.prototype.getTitle = function () { + var a, + b = this.$element, + c = this.options; + return a = b.attr("data-original-title") || ("function" == typeof c.title + ? c.title.call(b[0]) + : c.title) + }, + c.prototype.getUID = function (a) { + do + a += ~~ (1e6 * Math.random()); + while (document.getElementById(a)); + return a + }, + c.prototype.tip = function () { + if (!this.$tip && (this.$tip = a(this.options.template), 1 != this.$tip.length)) + throw new Error(this.type + " `template` option must consist of exactly 1 top-level element!"); + return this.$tip + }, + c.prototype.arrow = function () { + return this.$arrow = this.$arrow || this + .tip() + .find(".tooltip-arrow") + }, + c.prototype.enable = function () { + this.enabled = !0 + }, + c.prototype.disable = function () { + this.enabled = !1 + }, + c.prototype.toggleEnabled = function () { + this.enabled = !this.enabled + }, + c.prototype.toggle = function (b) { + var c = this; + b && (c = a(b.currentTarget).data("bs." + this.type), c || (c = new this.constructor(b.currentTarget, this.getDelegateOptions()), a(b.currentTarget).data("bs." + this.type, c))), + b + ? (c.inState.click = !c.inState.click, c.isInStateTrue() + ? c.enter(c) + : c.leave(c)) + : c + .tip() + .hasClass("in") + ? c.leave(c) + : c.enter(c) + }, + c.prototype.destroy = function () { + var a = this; + clearTimeout(this.timeout), + this.hide(function () { + a + .$element + .off("." + a.type) + .removeData("bs." + a.type), + a.$tip && a + .$tip + .detach(), + a.$tip = null, + a.$arrow = null, + a.$viewport = null, + a.$element = null + }) + }; + var d = a.fn.tooltip; + a.fn.tooltip = b, + a.fn.tooltip.Constructor = c, + a.fn.tooltip.noConflict = function () { + return a.fn.tooltip = d, + this + } +}(jQuery), + function (a) { + "use strict"; + function b(b) { + return this.each(function () { + var d = a(this), + e = d.data("bs.popover"), + f = "object" == typeof b && b; + !e && /destroy|hide/.test(b) || (e || d.data("bs.popover", e = new c(this, f)), "string" == typeof b && e[b]()) + }) + } + var c = function (a, b) { + this.init("popover", a, b) + }; + if (!a.fn.tooltip) + throw new Error("Popover requires tooltip.js"); + c.VERSION = "3.3.7", + c.DEFAULTS = a.extend({}, a.fn.tooltip.Constructor.DEFAULTS, { + placement: "right", + trigger: "click", + content: "", + template: '' + }), + c.prototype = a.extend({}, a.fn.tooltip.Constructor.prototype), + c.prototype.constructor = c, + c.prototype.getDefaults = function () { + return c.DEFAULTS + }, + c.prototype.setContent = function () { + var a = this.tip(), + b = this.getTitle(), + c = this.getContent(); + a.find(".popover-title")[this.options.html + ? "html" + : "text"](b), + a + .find(".popover-content") + .children() + .detach() + .end()[this.options.html + ? "string" == typeof c + ? "html" + : "append" + : "text"](c), + a.removeClass("fade top bottom left right in"), + a + .find(".popover-title") + .html() || a + .find(".popover-title") + .hide() + }, + c.prototype.hasContent = function () { + return this.getTitle() || this.getContent() + }, + c.prototype.getContent = function () { + var a = this.$element, + b = this.options; + return a.attr("data-content") || ("function" == typeof b.content + ? b.content.call(a[0]) + : b.content) + }, + c.prototype.arrow = function () { + return this.$arrow = this.$arrow || this + .tip() + .find(".arrow") + }; + var d = a.fn.popover; + a.fn.popover = b, + a.fn.popover.Constructor = c, + a.fn.popover.noConflict = function () { + return a.fn.popover = d, + this + } +}(jQuery), + function (a) { + "use strict"; + function b(c, d) { + this.$body = a(document.body), + this.$scrollElement = a(a(c).is(document.body) + ? window + : c), + this.options = a.extend({}, b.DEFAULTS, d), + this.selector = (this.options.target || "") + " .nav li > a", + this.offsets = [], + this.targets = [], + this.activeTarget = null, + this.scrollHeight = 0, + this + .$scrollElement + .on("scroll.bs.scrollspy", a.proxy(this.process, this)), + this.refresh(), + this.process() + } + function c(c) { + return this.each(function () { + var d = a(this), + e = d.data("bs.scrollspy"), + f = "object" == typeof c && c; + e || d.data("bs.scrollspy", e = new b(this, f)), + "string" == typeof c && e[c]() + }) + } + b.VERSION = "3.3.7", + b.DEFAULTS = { + offset: 10 + }, + b.prototype.getScrollHeight = function () { + return this.$scrollElement[0].scrollHeight || Math.max(this.$body[0].scrollHeight, document.documentElement.scrollHeight) + }, + b.prototype.refresh = function () { + var b = this, + c = "offset", + d = 0; + this.offsets = [], + this.targets = [], + this.scrollHeight = this.getScrollHeight(), + a.isWindow(this.$scrollElement[0]) || (c = "position", d = this.$scrollElement.scrollTop()), + this + .$body + .find(this.selector) + .map(function () { + var b = a(this), + e = b.data("target") || b.attr("href"), + f = /^#./.test(e) && a(e); + return f && f.length && f.is(":visible") && [ + [ + f[c]().top + d, + e + ] + ] || null + }) + .sort(function (a, b) { + return a[0] - b[0] + }) + .each(function () { + b + .offsets + .push(this[0]), + b + .targets + .push(this[1]) + }) + }, + b.prototype.process = function () { + var a, + b = this + .$scrollElement + .scrollTop() + this.options.offset, + c = this.getScrollHeight(), + d = this.options.offset + c - this + .$scrollElement + .height(), + e = this.offsets, + f = this.targets, + g = this.activeTarget; + if (this.scrollHeight != c && this.refresh(), b >= d) + return g != (a = f[f.length - 1]) && this.activate(a); + if (g && b < e[0]) + return this.activeTarget = null, + this.clear(); + for (a = e.length; a--;) + g != f[a] && b >= e[a] && (void 0 === e[a + 1] || b < e[a + 1]) && this.activate(f[a]) + }, + b.prototype.activate = function (b) { + this.activeTarget = b, + this.clear(); + var c = this.selector + '[data-target="' + b + '"],' + this.selector + '[href="' + b + '"]', + d = a(c) + .parents("li") + .addClass("active"); + d + .parent(".dropdown-menu") + .length && (d = d.closest("li.dropdown").addClass("active")), + d.trigger("activate.bs.scrollspy") + }, + b.prototype.clear = function () { + a(this.selector) + .parentsUntil(this.options.target, ".active") + .removeClass("active") + }; + var d = a.fn.scrollspy; + a.fn.scrollspy = c, + a.fn.scrollspy.Constructor = b, + a.fn.scrollspy.noConflict = function () { + return a.fn.scrollspy = d, + this + }, + a(window).on("load.bs.scrollspy.data-api", function () { + a('[data-spy="scroll"]') + .each(function () { + var b = a(this); + c.call(b, b.data()) + }) + }) +}(jQuery), + function (a) { + "use strict"; + function b(b) { + return this.each(function () { + var d = a(this), + e = d.data("bs.tab"); + e || d.data("bs.tab", e = new c(this)), + "string" == typeof b && e[b]() + }) + } + var c = function (b) { + this.element = a(b) + }; + c.VERSION = "3.3.7", + c.TRANSITION_DURATION = 150, + c.prototype.show = function () { + var b = this.element, + c = b.closest("ul:not(.dropdown-menu)"), + d = b.data("target"); + if (d || (d = b.attr("href"), d = d && d.replace(/.*(?=#[^\s]*$)/, "")), !b.parent("li").hasClass("active")) { + var e = c.find(".active:last a"), + f = a.Event("hide.bs.tab", {relatedTarget: b[0]}), + g = a.Event("show.bs.tab", {relatedTarget: e[0]}); + if (e.trigger(f), b.trigger(g), !g.isDefaultPrevented() && !f.isDefaultPrevented()) { + var h = a(d); + this.activate(b.closest("li"), c), + this.activate(h, h.parent(), function () { + e.trigger({type: "hidden.bs.tab", relatedTarget: b[0]}), + b.trigger({type: "shown.bs.tab", relatedTarget: e[0]}) + }) + } + } + }, + c.prototype.activate = function (b, d, e) { + function f() { + g + .removeClass("active") + .find("> .dropdown-menu > .active") + .removeClass("active") + .end() + .find('[data-toggle="tab"]') + .attr("aria-expanded", !1), + b + .addClass("active") + .find('[data-toggle="tab"]') + .attr("aria-expanded", !0), + h + ? (b[0].offsetWidth, b.addClass("in")) + : b.removeClass("fade"), + b + .parent(".dropdown-menu") + .length && b + .closest("li.dropdown") + .addClass("active") + .end() + .find('[data-toggle="tab"]') + .attr("aria-expanded", !0), + e && e() + } + var g = d.find("> .active"), + h = e && a.support.transition && (g.length && g.hasClass("fade") || !!d.find("> .fade").length); + g.length && h + ? g + .one("bsTransitionEnd", f) + .emulateTransitionEnd(c.TRANSITION_DURATION) + : f(), + g.removeClass("in") + }; + var d = a.fn.tab; + a.fn.tab = b, + a.fn.tab.Constructor = c, + a.fn.tab.noConflict = function () { + return a.fn.tab = d, + this + }; + var e = function (c) { + c.preventDefault(), + b.call(a(this), "show") + }; + a(document) + .on("click.bs.tab.data-api", '[data-toggle="tab"]', e) + .on("click.bs.tab.data-api", '[data-toggle="pill"]', e) +}(jQuery), + function (a) { + "use strict"; + function b(b) { + return this.each(function () { + var d = a(this), + e = d.data("bs.affix"), + f = "object" == typeof b && b; + e || d.data("bs.affix", e = new c(this, f)), + "string" == typeof b && e[b]() + }) + } + var c = function (b, d) { + this.options = a.extend({}, c.DEFAULTS, d), + this.$target = a(this.options.target) + .on("scroll.bs.affix.data-api", a.proxy(this.checkPosition, this)) + .on("click.bs.affix.data-api", a.proxy(this.checkPositionWithEventLoop, this)), + this.$element = a(b), + this.affixed = null, + this.unpin = null, + this.pinnedOffset = null, + this.checkPosition() + }; + c.VERSION = "3.3.7", + c.RESET = "affix affix-top affix-bottom", + c.DEFAULTS = { + offset: 0, + target: window + }, + c.prototype.getState = function (a, b, c, d) { + var e = this + .$target + .scrollTop(), + f = this + .$element + .offset(), + g = this + .$target + .height(); + if (null != c && "top" == this.affixed) + return e < c && "top"; + if ("bottom" == this.affixed) + return null != c + ? !(e + this.unpin <= f.top) && "bottom" + : !(e + g <= a - d) && "bottom"; + var h = null == this.affixed, + i = h + ? e + : f.top, + j = h + ? g + : b; + return null != c && e <= c + ? "top" + : null != d && i + j >= a - d && "bottom" + }, + c.prototype.getPinnedOffset = function () { + if (this.pinnedOffset) + return this.pinnedOffset; + this + .$element + .removeClass(c.RESET) + .addClass("affix"); + var a = this + .$target + .scrollTop(), + b = this + .$element + .offset(); + return this.pinnedOffset = b.top - a + }, + c.prototype.checkPositionWithEventLoop = function () { + setTimeout(a.proxy(this.checkPosition, this), 1) + }, + c.prototype.checkPosition = function () { + if (this.$element.is(":visible")) { + var b = this + .$element + .height(), + d = this.options.offset, + e = d.top, + f = d.bottom, + g = Math.max(a(document).height(), a(document.body).height()); + "object" != typeof d && (f = e = d), + "function" == typeof e && (e = d.top(this.$element)), + "function" == typeof f && (f = d.bottom(this.$element)); + var h = this.getState(g, b, e, f); + if (this.affixed != h) { + null != this.unpin && this + .$element + .css("top", ""); + var i = "affix" + (h + ? "-" + h + : ""), + j = a.Event(i + ".bs.affix"); + if (this.$element.trigger(j), j.isDefaultPrevented()) + return; + this.affixed = h, + this.unpin = "bottom" == h + ? this.getPinnedOffset() + : null, + this + .$element + .removeClass(c.RESET) + .addClass(i) + .trigger(i.replace("affix", "affixed") + ".bs.affix") + } + "bottom" == h && this + .$element + .offset({ + top: g - b - f + }) + } + }; + var d = a.fn.affix; + a.fn.affix = b, + a.fn.affix.Constructor = c, + a.fn.affix.noConflict = function () { + return a.fn.affix = d, + this + }, + a(window).on("load", function () { + a('[data-spy="affix"]') + .each(function () { + var c = a(this), + d = c.data(); + d.offset = d.offset || {}, + null != d.offsetBottom && (d.offset.bottom = d.offsetBottom), + null != d.offsetTop && (d.offset.top = d.offsetTop), + b.call(c, d) + }) + }) +}(jQuery); \ No newline at end of file diff --git a/assets/js/d3.min.js b/assets/js/d3.min.js new file mode 100644 index 0000000..e47efc6 --- /dev/null +++ b/assets/js/d3.min.js @@ -0,0 +1,15924 @@ +// https://d3js.org Version 4.3.0. Copyright 2016 Mike Bostock. +(function (t, n) { + "object" == typeof exports && "undefined" != typeof module + ? n(exports) + : "function" == typeof define && define.amd + ? define(["exports"], n) + : n(t.d3 = t.d3 || {}) +})(this, function (t) { + "use strict"; + function n(t) { + return function (n, e) { + return Ms(t(n), e) + } + } + function e(t, n, e) { + var r = Math.abs(n - t) / Math.max(0, e), + i = Math.pow(10, Math.floor(Math.log(r) / Math.LN10)), + o = r / i; + return o >= Fs + ? i *= 10 + : o >= Is + ? i *= 5 + : o >= Ys && (i *= 2), + n < t + ? -i + : i + } + function r(t) { + return t.length + } + function i() {} + function o(t, n) { + var e = new i; + if (t instanceof i) + t.each(function (t, n) { + e.set(n, t) + }); + else if (Array.isArray(t)) { + var r, + o = -1, + u = t.length; + if (null == n) + for (; ++o < u;) + e.set(o, t[o]); + else + for (; ++o < u;) + e.set(n(r = t[o], o, t), r) + } else if (t) + for (var a in t) + e.set(a, t[a]); + return e + } + function u() { + return {} + } + function a(t, n, e) { + t[n] = e + } + function c() { + return o() + } + function s(t, n, e) { + t.set(n, e) + } + function f() {} + function l(t, n) { + var e = new f; + if (t instanceof f) + t.each(function (t) { + e.add(t) + }); + else if (t) { + var r = -1, + i = t.length; + if (null == n) + for (; ++r < i;) + e.add(t[r]); + else + for (; ++r < i;) + e.add(n(t[r], r, t)) + } + return e + } + function h(t) { + return + t + } + function p(t) { + return t * t + } + function d(t) { + return t * (2 - t) + } + function v(t) { + return ((t *= 2) <= 1 + ? t * t + : --t * (2 - t) + 1) / 2 + } + function _(t) { + return t * t * t + } + function y(t) { + return-- t * t * t + 1 + } + function g(t) { + return ((t *= 2) <= 1 + ? t * t * t + : (t -= 2) * t * t + 2) / 2 + } + function m(t) { + return 1 - Math.cos(t * Tf) + } + function x(t) { + return Math.sin(t * Tf) + } + function b(t) { + return (1 - Math.cos(Mf * t)) / 2 + } + function w(t) { + return Math.pow(2, 10 * t - 10) + } + function M(t) { + return 1 - Math.pow(2, -10 * t) + } + function T(t) { + return ((t *= 2) <= 1 + ? Math.pow(2, 10 * t - 10) + : 2 - Math.pow(2, 10 - 10 * t)) / 2 + } + function N(t) { + return 1 - Math.sqrt(1 - t * t) + } + function k(t) { + return Math.sqrt(1 - --t * t) + } + function S(t) { + return ((t *= 2) <= 1 + ? 1 - Math.sqrt(1 - t * t) + : Math.sqrt(1 - (t -= 2) * t) + 1) / 2 + } + function A(t) { + return 1 - E(1 - t) + } + function E(t) { + return (t =+ t) < Nf + ? Lf * t * t + : t < Sf + ? Lf * (t -= kf) * t + Af + : t < Cf + ? Lf * (t -= Ef) * t + zf + : Lf * (t -= Pf) * t + qf + } + function C(t) { + return ((t *= 2) <= 1 + ? 1 - E(1 - t) + : E(t - 1) + 1) / 2 + } + function z(t, n) { + return t[0] - n[0] || t[1] - n[1] + } + function P(t) { + for (var n = t.length, e = [ + 0, 1 + ], r = 2, i = 2; i < n; ++i) { + for (; r > 1 && Wf(t[e[r - 2]], t[e[r - 1]], t[i]) <= 0;) + --r; + e[r++] = i + } + return e.slice(0, r) + } + function q() { + this._x0 = this._y0 = this._x1 = this._y1 = null, + this._ = [] + } + function L() { + return new q + } + function R(t, n, e, r) { + if (isNaN(n) || isNaN(e)) + return t; + var i, + o, + u, + a, + c, + s, + f, + l, + h, + p = t._root, + d = { + data: r + }, + v = t._x0, + _ = t._y0, + y = t._x1, + g = t._y1; + if (!p) + return t._root = d, + t; + for (; p.length;) + if ((s = n >= (o = (v + y) / 2)) + ? v = o + : y = o, (f = e >= (u = (_ + g) / 2)) + ? _ = u + : g = u, i = p, !(p = p[l = f << 1 | s])) + return i[l] = d, + t; + if (a =+ t._x.call(null, p.data), c =+ t._y.call(null, p.data), n === a && e === c) + return d.next = p, + i + ? i[l] = d + : t._root = d, + t; + do + i = i + ? i[l] = new Array(4) + : t._root = new Array(4), + (s = n >= (o = (v + y) / 2)) + ? v = o + : y = o, + (f = e >= (u = (_ + g) / 2)) + ? _ = u + : g = u; + while ((l = f << 1 | s) === (h = (c >= u) << 1 | a >= o)); + return i[h] = p, + i[l] = d, + t + } + function U(t) { + var n, + e, + r, + i, + o = t.length, + u = new Array(o), + a = new Array(o), + c = 1 / 0, + s = 1 / 0, + f = -(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)) || (u[e] = r, a[e] = i, r < c && (c = r), r > f && (f = r), i < s && (s = i), i > l && (l = i)); + for (f < c && (c = this._x0, f = this._x1), l < s && (s = this._y0, l = this._y1), this.cover(c, s).cover(f, l), e = 0; e < o; ++e) + R(this, u[e], a[e], t[e]); + return this + } + function D(t) { + for (var n = 0, e = t.length; n < e; ++n) + this.remove(t[n]); + return this + } + function O(t) { + return t[0] + } + function F(t) { + return t[1] + } + function I(t, n, e) { + var r = new Y(null == n + ? O + : n, null == e + ? F + : e, NaN, NaN, NaN, NaN); + return null == t + ? r + : r.addAll(t) + } + function Y(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 B(t) { + for (var n = { + data: t.data + }, e = n; t = t.next;) + e = e.next = { + data: t.data + }; + return n + } + function j(t) { + if (!(t >= 1)) + throw new Error; + this._size = t, + this._call = this._error = null, + this._tasks = [], + this._data = [], + this._waiting = this._active = this._ended = this._start = 0 + } + function H(t) { + if (!t._start) + try { + X(t) + } catch (n) { + if (t._tasks[t._ended + t._active - 1]) + W(t, n); + else if (!t._data) + throw n + } + } + function X(t) { + for (; t._start = t._waiting && t._active < t._size;) { + var n = t._ended + t._active, + e = t._tasks[n], + r = e.length - 1, + i = e[r]; + e[r] = V(t, n), + --t._waiting, + ++t._active, + e = i.apply(null, e), + t._tasks[n] && (t._tasks[n] = e || _l) + } + } + function V(t, n) { + return function (e, r) { + t._tasks[n] && (--t._active, ++t._ended, t._tasks[n] = null, null == t._error && (null != e + ? W(t, e) + : (t._data[n] = r, t._waiting + ? H(t) + : $(t)))) + } + } + function W(t, n) { + var e, + r = t._tasks.length; + for (t._error = n, t._data = void 0, t._waiting = NaN; --r >= 0;) + if ((e = t._tasks[r]) && (t._tasks[r] = null, e.abort)) + try { + e.abort() + } catch (t) {} + t._active = NaN, + $(t) + } + function $(t) { + if (!t._active && t._call) { + var n = t._data; + t._data = void 0, + t._call(t._error, n) + } + } + function Z(t) { + return new j(arguments.length ?+ t : 1 / 0) + } + function G(t) { + return t.innerRadius + } + function J(t) { + return t.outerRadius + } + function Q(t) { + return t.startAngle + } + function K(t) { + return t.endAngle + } + function tt(t) { + return t && t.padAngle + } + function nt(t) { + return t >= 1 + ? xl + : t <= -1 + ? -xl + : Math.asin(t) + } + function et(t, n, e, r, i, o, u, a) { + var c = e - t, + s = r - n, + f = u - i, + l = a - o, + h = (f * (n - o) - l * (t - i)) / (l * c - f * s); + return [ + t + h * c, + n + h * s + ] + } + function rt(t, n, e, r, i, o, u) { + var a = t - e, + c = n - r, + s = (u + ? o + : -o) / Math.sqrt(a * a + c * c), + f = s * c, + l = -s * a, + h = t + f, + p = n + l, + d = e + f, + v = r + l, + _ = (h + d) / 2, + y = (p + v) / 2, + g = d - h, + m = v - p, + x = g * g + m * m, + b = i - o, + w = h * v - d * p, + M = (m < 0 + ? -1 + : 1) * Math.sqrt(Math.max(0, b * b * x - w * w)), + T = (w * m - g * M) / x, + N = (-w * g - m * M) / x, + k = (w * m + g * M) / x, + S = (-w * g + m * M) / x, + A = T - _, + E = N - y, + C = k - _, + z = S - y; + return A * A + E * E > C * C + z * z && (T = k, N = S), { + cx: T, + cy: N, + x01: -f, + y01: -l, + x11: *(i / b - 1), + y11: *(i / b - 1) + } + } + function it(t) { + this._context = t + } + function ot(t) { + return t[0] + } + function ut(t) { + return t[1] + } + function at(t) { + this._curve = t + } + function ct(t) { + function n(n) { + return new at(t(n)) + } + return n._curve = t, + n + } + function st(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(ct(t)) + : n()._curve + }, + t + } + function ft(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 lt(t) { + this._context = t + } + function ht(t) { + this._context = t + } + function pt(t) { + this._context = t + } + function dt(t, n) { + this._basis = new lt(t), + this._beta = n + } + function vt(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 _t(t, n) { + this._context = t, + this._k = (1 - n) / 6 + } + function yt(t, n) { + this._context = t, + this._k = (1 - n) / 6 + } + function gt(t, n) { + this._context = t, + this._k = (1 - n) / 6 + } + function mt(t, n, e) { + var r = t._x1, + i = t._y1, + o = t._x2, + u = t._y2; + if (t._l01_a > gl) { + var a = 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 * a - t._x0 * t._l12_2a + t._x2 * t._l01_2a) / c, + i = (i * a - t._y0 * t._l12_2a + t._y2 * t._l01_2a) / c + } + if (t._l23_a > gl) { + var s = 2 * t._l23_2a + 3 * t._l23_a * t._l12_a + t._l12_2a, + f = 3 * t._l23_a * (t._l23_a + t._l12_a); + o = (o * s + t._x1 * t._l23_2a - n * t._l12_2a) / f, + u = (u * s + t._y1 * t._l23_2a - e * t._l12_2a) / f + } + t + ._context + .bezierCurveTo(r, i, o, u, t._x2, t._y2) + } + function xt(t, n) { + this._context = t, + this._alpha = n + } + function bt(t, n) { + this._context = t, + this._alpha = n + } + function wt(t, n) { + this._context = t, + this._alpha = n + } + function Mt(t) { + this._context = t + } + function Tt(t) { + return t < 0 + ? -1 + : 1 + } + function Nt(t, n, e) { + var r = t._x1 - t._x0, + i = n - t._x1, + o = (t._y1 - t._y0) / (r || i < 0 && -0), + u = (e - t._y1) / (i || r < 0 && -0), + a = (o * i + u * r) / (r + i); + return (Tt(o) + Tt(u)) * Math.min(Math.abs(o), Math.abs(u), .5 * Math.abs(a)) || 0 + } + function kt(t, n) { + var e = t._x1 - t._x0; + return e + ? (3 * (t._y1 - t._y0) / e - n) / 2 + : n + } + function St(t, n, e) { + var r = t._x0, + i = t._y0, + o = t._x1, + u = t._y1, + a = (o - r) / 3; + t + ._context + .bezierCurveTo(r + a, i + a * n, o - a, u - a * e, o, u) + } + function At(t) { + this._context = t + } + function Et(t) { + this._context = new Ct(t) + } + function Ct(t) { + this._context = t + } + function zt(t) { + return new At(t) + } + function Pt(t) { + return new Et(t) + } + function qt(t) { + this._context = t + } + function Lt(t) { + var n, + e, + r = t.length - 1, + i = new Array(r), + o = new Array(r), + u = new Array(r); + for (i[0] = 0, o[0] = 2, u[0] = t[0] + 2 * t[1], n = 1; n < r - 1; ++n) + i[n] = 1, + o[n] = 4, + u[n] = 4 * t[n] + 2 * t[n + 1]; + for (i[r - 1] = 2, o[r - 1] = 7, u[r - 1] = 8 * t[r - 1] + t[r], n = 1; n < r; ++n) + e = i[n] / o[n - 1], + o[n] -= e, + u[n] -= e * u[n - 1]; + for (i[r - 1] = u[r - 1] / o[r - 1], n = r - 2; n >= 0; --n) + i[n] = (u[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 Rt(t, n) { + this._context = t, + this._t = n + } + function Ut(t) { + return new Rt(t, 0) + } + function Dt(t) { + return new Rt(t, 1) + } + function Ot(t, n) { + return t[n] + } + function Ft(t) { + for (var n, e = 0, r = -1, i = t.length; ++r < i;) + (n =+ t[r][1]) && (e += n); + return e + } + function It(t, n) { + var e = Object.create(t.prototype); + for (var r in n) + e[r] = n[r]; + return e + } + function Yt() {} + function Bt(t) { + var n; + return t = (t + "") + .trim() + .toLowerCase(), + (n = kh.exec(t)) + ? (n = parseInt(n[1], 16), new Wt(n >> 8 & 15 | n >> 4 & 240, n >> 4 & 15 | 240 & n, (15 & n) << 4 | 15 & n, 1)) + : (n = Sh.exec(t)) + ? jt(parseInt(n[1], 16)) + : (n = Ah.exec(t)) + ? new Wt(n[1], n[2], n[3], 1) + : (n = Eh.exec(t)) + ? new Wt(255 * n[1] / 100, 255 * n[2] / 100, 255 * n[3] / 100, 1) + : (n = Ch.exec(t)) + ? Ht(n[1], n[2], n[3], n[4]) + : (n = zh.exec(t)) + ? Ht(255 * n[1] / 100, 255 * n[2] / 100, 255 * n[3] / 100, n[4]) + : (n = Ph.exec(t)) + ? $t(n[1], n[2] / 100, n[3] / 100, 1) + : (n = qh.exec(t)) + ? $t(n[1], n[2] / 100, n[3] / 100, n[4]) + : Lh.hasOwnProperty(t) + ? jt(Lh[t]) + : "transparent" === t + ? new Wt(NaN, NaN, NaN, 0) + : null + } + function jt(t) { + return new Wt(t >> 16 & 255, t >> 8 & 255, 255 & t, 1) + } + function Ht(t, n, e, r) { + return r <= 0 && (t = n = e = NaN), + new Wt(t, n, e, r) + } + function Xt(t) { + return t instanceof Yt || (t = Bt(t)), + t + ? (t = t.rgb(), new Wt(t.r, t.g, t.b, t.opacity)) + : new Wt + } + function Vt(t, n, e, r) { + return 1 === arguments.length + ? Xt(t) + : new Wt(t, n, e, null == r + ? 1 + : r) + } + function Wt(t, n, e, r) { + this.r =+ t, + this.g =+ n, + this.b =+ e, + this.opacity =+ r + } + function $t(t, n, e, r) { + return r <= 0 + ? t = n = e = NaN + : e <= 0 || e >= 1 + ? t = n = NaN + : n <= 0 && (t = NaN), + new Jt(t, n, e, r) + } + function Zt(t) { + if (t instanceof Jt) + return new Jt(t.h, t.s, t.l, t.opacity); + if (t instanceof Yt || (t = Bt(t)), !t) + return new Jt; + if (t instanceof Jt) + return t; + t = t.rgb(); + var n = t.r / 255, + e = t.g / 255, + r = t.b / 255, + i = Math.min(n, e, r), + o = Math.max(n, e, r), + u = NaN, + a = o - i, + c = (o + i) / 2; + return a + ? (u = n === o + ? (e - r) / a + 6 * (e < r) + : e === o + ? (r - n) / a + 2 + : (n - e) / a + 4, a /= c < .5 + ? o + i + : 2 - o - i, u *= 60) + : a = c > 0 && c < 1 + ? 0 + : u, + new Jt(u, a, c, t.opacity) + } + function Gt(t, n, e, r) { + return 1 === arguments.length + ? Zt(t) + : new Jt(t, n, e, null == r + ? 1 + : r) + } + function Jt(t, n, e, r) { + this.h =+ t, + this.s =+ n, + this.l =+ e, + this.opacity =+ r + } + function Qt(t, n, e) { + return 255 * (t < 60 + ? n + (e - n) * t / 60 + : t < 180 + ? e + : t < 240 + ? n + (e - n) * (240 - t) / 60 + : n) + } + function Kt(t) { + if (t instanceof nn) + return new nn(t.l, t.a, t.b, t.opacity); + if (t instanceof sn) { + var n = t.h * Rh; + return new nn(t.l, Math.cos(n) * t.c, Math.sin(n) * t.c, t.opacity) + } + t instanceof Wt || (t = Xt(t)); + var e = un(t.r), + r = un(t.g), + i = un(t.b), + o = en((.4124564 * e + .3575761 * r + .1804375 * i) / Oh), + u = en((.2126729 * e + .7151522 * r + .072175 * i) / Fh), + a = en((.0193339 * e + .119192 * r + .9503041 * i) / Ih); + return new nn(116 * u - 16, 500 * (o - u), 200 * (u - a), t.opacity) + } + function tn(t, n, e, r) { + return 1 === arguments.length + ? Kt(t) + : new nn(t, n, e, null == r + ? 1 + : r) + } + function nn(t, n, e, r) { + this.l =+ t, + this.a =+ n, + this.b =+ e, + this.opacity =+ r + } + function en(t) { + return t > Hh + ? Math.pow(t, 1 / 3) + : t / jh + Yh + } + function rn(t) { + return t > Bh + ? t * t * t + : jh * (t - Yh) + } + function on(t) { + return 255 * (t <= .0031308 + ? 12.92 * t + : 1.055 * Math.pow(t, 1 / 2.4) - .055) + } + function un(t) { + return (t /= 255) <= .04045 + ? t / 12.92 + : Math.pow((t + .055) / 1.055, 2.4) + } + function an(t) { + if (t instanceof sn) + return new sn(t.h, t.c, t.l, t.opacity); + t instanceof nn || (t = Kt(t)); + var n = Math.atan2(t.b, t.a) * Uh; + return new sn(n < 0 + ? n + 360 + : n, Math.sqrt(t.a * t.a + t.b * t.b), t.l, t.opacity) + } + function cn(t, n, e, r) { + return 1 === arguments.length + ? an(t) + : new sn(t, n, e, null == r + ? 1 + : r) + } + function sn(t, n, e, r) { + this.h =+ t, + this.c =+ n, + this.l =+ e, + this.opacity =+ r + } + function fn(t) { + if (t instanceof hn) + return new hn(t.h, t.s, t.l, t.opacity); + t instanceof Wt || (t = Xt(t)); + var n = t.r / 255, + e = t.g / 255, + r = t.b / 255, + i = (Qh * r + Gh * n - Jh * e) / (Qh + Gh - Jh), + o = r - i, + u = (Zh * (e - i) - Wh * o) / $h, + a = Math.sqrt(u * u + o * o) / (Zh * i * (1 - i)), + c = a + ? Math.atan2(u, o) * Uh - 120 + : NaN; + return new hn(c < 0 + ? c + 360 + : c, a, i, t.opacity) + } + function ln(t, n, e, r) { + return 1 === arguments.length + ? fn(t) + : new hn(t, n, e, null == r + ? 1 + : r) + } + function hn(t, n, e, r) { + this.h =+ t, + this.s =+ n, + this.l =+ e, + this.opacity =+ r + } + function pn(t, n, e, r, i) { + var o = t * t, + u = o * t; + return ((1 - 3 * t + 3 * o - u) * n + (4 - 6 * o + 3 * u) * e + (1 + 3 * t + 3 * o - 3 * u) * r + u * i) / 6 + } + function dn(t, n) { + return function (e) { + return t + e * n + } + } + function vn(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) + } + } + function _n(t, n) { + var e = n - t; + return e + ? dn(t, e > 180 || e < -180 + ? e - 360 * Math.round(e / 360) + : e) + : op(isNaN(t) + ? n + : t) + } + function yn(t) { + return 1 === (t =+ t) + ? gn + : function (n, e) { + return e - n + ? vn(n, e, t) + : op(isNaN(n) + ? e + : n) + } + } + function gn(t, n) { + var e = n - t; + return e + ? dn(t, e) + : op(isNaN(t) + ? n + : t) + } + function mn(t) { + return function (n) { + var e, + r, + i = n.length, + o = new Array(i), + u = new Array(i), + a = new Array(i); + for (e = 0; e < i; ++e) + r = Vt(n[e]), + o[e] = r.r || 0, + u[e] = r.g || 0, + a[e] = r.b || 0; + return o = t(o), + u = t(u), + a = t(a), + r.opacity = 1, + function (t) { + return r.r = o(t), + r.g = u(t), + r.b = a(t), + r + "" + } + } + } + function xn(t) { + return function () { + return t + } + } + function bn(t) { + return function (n) { + return t(n) + "" + } + } + function wn(t) { + return "none" === t + ? mp + : (Kh || (Kh = document.createElement("DIV"), tp = document.documentElement, np = document.defaultView), Kh.style.transform = t, t = np.getComputedStyle(tp.appendChild(Kh), null).getPropertyValue("transform"), tp.removeChild(Kh), t = t.slice(7, -1).split(","), xp(+ t[0], + t[1], + t[2], + t[3], + t[4], + t[5])) + } + function Mn(t) { + return null == t + ? mp + : (ep || (ep = document.createElementNS("http://www.w3.org/2000/svg", "g")), ep.setAttribute("transform", t), (t = ep.transform.baseVal.consolidate()) + ? (t = t.matrix, xp(t.a, t.b, t.c, t.d, t.e, t.f)) + : mp) + } + function Tn(t, n, e, r) { + function i(t) { + return t.length + ? t.pop() + " " + : "" + } + function o(t, r, i, o, u, a) { + if (t !== i || r !== o) { + var c = u.push("translate(", null, n, null, e); + a.push({ + i: c - 4, + x: lp(t, i) + }, { + i: c - 2, + x: lp(r, o) + }) + } else + (i || o) && u.push("translate(" + i + n + o + e) + } + function u(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: lp(t, n) + })) + : n && e.push(i(e) + "rotate(" + n + r) + } + function a(t, n, e, o) { + t !== n + ? o.push({ + i: e.push(i(e) + "skewX(", null, r) - 2, + x: lp(t, n) + }) + : n && e.push(i(e) + "skewX(" + n + r) + } + function c(t, n, e, r, o, u) { + if (t !== e || n !== r) { + var a = o.push(i(o) + "scale(", null, ",", null, ")"); + u.push({ + i: a - 4, + x: lp(t, e) + }, { + i: a - 2, + x: lp(n, r) + }) + } else + 1 === e && 1 === r || o.push(i(o) + "scale(" + e + "," + r + ")") + } + return function (n, e) { + var r = [], + i = []; + return n = t(n), + e = t(e), + o(n.translateX, n.translateY, e.translateX, e.translateY, r, i), + u(n.rotate, e.rotate, r, i), + a(n.skewX, e.skewX, r, i), + c(n.scaleX, n.scaleY, e.scaleX, e.scaleY, r, i), + n = e = null, + function (t) { + for (var n, e = -1, o = i.length; ++e < o;) + r[(n = i[e]).i] = n.x(t); + return r.join("") + } + } + } + function Nn(t) { + return ((t = Math.exp(t)) + 1 / t) / 2 + } + function kn(t) { + return ((t = Math.exp(t)) - 1 / t) / 2 + } + function Sn(t) { + return ((t = Math.exp(2 * t)) - 1) / (t + 1) + } + function An(t) { + return function (n, e) { + var r = t((n = Gt(n)).h, (e = Gt(e)).h), + i = gn(n.s, e.s), + o = gn(n.l, e.l), + u = gn(n.opacity, e.opacity); + return function (t) { + return n.h = r(t), + n.s = i(t), + n.l = o(t), + n.opacity = u(t), + n + "" + } + } + } + function En(t, n) { + var e = gn((t = tn(t)).l, (n = tn(n)).l), + r = gn(t.a, n.a), + i = gn(t.b, n.b), + o = gn(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 + "" + } + } + function Cn(t) { + return function (n, e) { + var r = t((n = cn(n)).h, (e = cn(e)).h), + i = gn(n.c, e.c), + o = gn(n.l, e.l), + u = gn(n.opacity, e.opacity); + return function (t) { + return n.h = r(t), + n.c = i(t), + n.l = o(t), + n.opacity = u(t), + n + "" + } + } + } + function zn(t) { + return function n(e) { + function r(n, r) { + var i = t((n = ln(n)).h, (r = ln(r)).h), + o = gn(n.s, r.s), + u = gn(n.l, r.l), + a = gn(n.opacity, r.opacity); + return function (t) { + return n.h = i(t), + n.s = o(t), + n.l = u(Math.pow(t, e)), + n.opacity = a(t), + n + "" + } + } + return e =+ e, + r.gamma = n, + r + }(1) + } + function Pn() { + for (var t, n = 0, e = arguments.length, r = {}; n < e; ++n) { + if (!(t = arguments[n] + "") || t in r) + throw new Error("illegal type: " + t); + r[t] = [] + } + return new qn(r) + } + function qn(t) { + this._ = t + } + function Ln(t, n) { + return t + .trim() + .split(/^|\s+/) + .map(function (t) { + var e = "", + r = t.indexOf("."); + if (r >= 0 && (e = t.slice(r + 1), t = t.slice(0, r)), t && !n.hasOwnProperty(t)) + throw new Error("unknown type: " + t); + return {type: t, name: e} + }) + } + function Rn(t, n) { + for (var e, r = 0, i = t.length; r < i; ++r) + if ((e = t[r]).name === n) + return e.value + } + function Un(t, n, e) { + for (var r = 0, i = t.length; r < i; ++r) + if (t[r].name === n) { + t[r] = Rp, + t = t + .slice(0, r) + .concat(t.slice(r + 1)); + break + } + return null != e && t.push({name: n, value: e}), + t + } + function Dn(t) { + return new Function("d", "return {" + t.map(function (t, n) { + return JSON.stringify(t) + ": d[" + n + "]" + }).join(",") + "}") + } + function On(t, n) { + var e = Dn(t); + return function (r, i) { + return n(e(r), i, t) + } + } + function Fn(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 In(t) { + return function (n, e) { + t(null == n + ? e + : null) + } + } + function Yn(t) { + var n = t.responseType; + return n && "text" !== n + ? t.response + : t.responseText + } + function Bn(t, n) { + return function (e) { + return t(e.responseText, n) + } + } + function jn() { + return sd || (hd(Hn), sd = ld.now() + fd) + } + function Hn() { + sd = 0 + } + function Xn() { + this._call = this._time = this._next = null + } + function Vn(t, n, e) { + var r = new Xn; + return r.restart(t, n, e), + r + } + function Wn() { + jn(), + ++id; + for (var t, n = Up; n;) + (t = sd - n._time) >= 0 && n._call.call(null, t), + n = n._next; + + --id + } + function $n() { + sd = (cd = ld.now()) + fd, + id = od = 0; + try { + Wn() + } finally { + id = 0, + Gn(), + sd = 0 + } + } + function Zn() { + var t = ld.now(), + n = t - cd; + n > ad && (fd -= n, cd = t) + } + function Gn() { + for (var t, n, e = Up, r = 1 / 0; 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 + : Up = n); + Dp = t, + Jn(r) + } + function Jn(t) { + if (!id) { + od && (od = clearTimeout(od)); + var n = t - sd; + n > 24 + ? (t < 1 / 0 && (od = setTimeout($n, n)), ud && (ud = clearInterval(ud))) + : (ud || (ud = setInterval(Zn, ad)), id = 1, hd($n)) + } + } + function Qn(t, n, e, r) { + function i(n) { + return t(n = new Date(+ n)), + n + } + return i.floor = i, + i.ceil = function (e) { + return t(e = new Date(e - 1)), + n(e, 1), + t(e), + e + }, + i.round = function (t) { + var n = i(t), + e = i.ceil(t); + return t - n < e - t + ? n + : e + }, + i.offset = function (t, e) { + return n(t = new Date(+ t), null == e + ? 1 + : Math.floor(e)), + t + }, + i.range = function (e, r, o) { + var u = []; + if (e = i.ceil(e), o = null == o + ? 1 + : Math.floor(o), !(e < r && o > 0)) + return u; + do + u.push(new Date(+ e)); + while (n(e, o), t(e), e < r); + return u + }, + i.filter = function (e) { + return Qn(function (n) { + if (n >= n) + for (; t(n), !e(n);) + n.setTime(n - 1) + }, function (t, r) { + if (t >= t) + for (; --r >= 0;) + for (; n(t, 1), !e(t);) ; + } + ) + }, + e && (i.count = function (n, r) { + return vd.setTime(+ n), + _d.setTime(+ r), + t(vd), + t(_d), + Math.floor(e(vd, _d)) + }, + i.every = function (t) { + return t = Math.floor(t), + isFinite(t) && t > 0 + ? t > 1 + ? i.filter(r + ? function (n) { + return r(n) % t === 0 + } + : function (n) { + return i.count(0, n) % t === 0 + }) + : i + : null + }), + i + } + function Kn(t) { + return Qn(function (n) { + n.setDate(n.getDate() - (n.getDay() + 7 - t) % 7), + n.setHours(0, 0, 0, 0) + }, function (t, n) { + t.setDate(t.getDate() + 7 * n) + }, function (t, n) { + return (n - t - (n.getTimezoneOffset() - t.getTimezoneOffset()) * xd) / Md + }) + } + function te(t) { + return Qn(function (n) { + n.setUTCDate(n.getUTCDate() - (n.getUTCDay() + 7 - t) % 7), + n.setUTCHours(0, 0, 0, 0) + }, function (t, n) { + t.setUTCDate(t.getUTCDate() + 7 * n) + }, function (t, n) { + return (n - t) / Md + }) + } + function ne(t) { + if (!(n = Av.exec(t))) + throw new Error("invalid format: " + t); + var n, + e = n[1] || " ", + r = n[2] || ">", + i = n[3] || "-", + o = n[4] || "", + u = !!n[5], + a = n[6] &&+ n[6], + c = !!n[7], + s = n[8] &&+ n[8].slice(1), + f = n[9] || ""; + "n" === f + ? (c = !0, f = "g") + : Sv[f] || (f = ""), + (u || "0" === e && "=" === r) && (u = !0, e = "0", r = "="), + this.fill = e, + this.align = r, + this.sign = i, + this.symbol = o, + this.zero = u, + this.width = a, + this.comma = c, + this.precision = s, + this.type = f + } + function ee(t) { + return t + } + function re(n) { + return Cv = Pv(n), + t.format = Cv.format, + t.formatPrefix = Cv.formatPrefix, + Cv + } + function ie(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 oe(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 ue(t) { + return { + y: t, + m: 0, + d: 1, + H: 0, + M: 0, + S: 0, + L: 0 + } + } + function ae(t) { + function n(t, n) { + return function (e) { + var r, + i, + o, + u = [], + a = -1, + c = 0, + s = t.length; + for (e instanceof Date || (e = new Date(+ e)); ++a < s;) + 37 === t.charCodeAt(a) && (u.push(t.slice(c, a)), null != (i = Dv[r = t.charAt(++a)]) + ? r = t.charAt(++a) + : i = "e" === r + ? " " + : "0", (o = n[r]) && (r = o(e, i)), u.push(r), c = a + 1); + return u.push(t.slice(c, a)), + u.join("") + } + } + function e(t, n) { + return function (e) { + var i = ue(1900), + o = r(i, t, e += "", 0); + if (o != e.length) + return null; + if ("p" in i && (i.H = i.H % 12 + 12 * i.p), "W" in i || "U" in i) { + "w" in i || (i.w = "W" in i + ? 1 + : 0); + var u = "Z" in i + ? oe(ue(i.y)).getUTCDay() + : n(ue(i.y)).getDay(); + i.m = 0, + i.d = "W" in i + ? (i.w + 6) % 7 + 7 * i.W - (u + 5) % 7 + : i.w + 7 * i.U - (u + 6) % 7 + } + return "Z" in i + ? (i.H += i.Z / 100 | 0, i.M += i.Z % 100, oe(i)) + : n(i) + } + } + function r(t, n, e, r) { + for (var i, o, u = 0, a = n.length, c = e.length; u < a;) { + if (r >= c) + return -1; + if (i = n.charCodeAt(u++), 37 === i) { + if (i = n.charAt(u++), o = B[i in Dv + ? n.charAt(u++) + : i], !o || (r = o(t, e, r)) < 0) + return -1 + } else if (i != e.charCodeAt(r++)) + return -1 + } + return r + } + function i(t, n, e) { + var r = C.exec(n.slice(e)); + return r + ? (t.p = z[r[0].toLowerCase()], e + r[0].length) + : -1 + } + function o(t, n, e) { + var r = L.exec(n.slice(e)); + return r + ? (t.w = R[r[0].toLowerCase()], e + r[0].length) + : -1 + } + function u(t, n, e) { + var r = P.exec(n.slice(e)); + return r + ? (t.w = q[r[0].toLowerCase()], e + r[0].length) + : -1 + } + function a(t, n, e) { + var r = O.exec(n.slice(e)); + return r + ? (t.m = F[r[0].toLowerCase()], e + r[0].length) + : -1 + } + function c(t, n, e) { + var r = U.exec(n.slice(e)); + return r + ? (t.m = D[r[0].toLowerCase()], e + r[0].length) + : -1 + } + function s(t, n, e) { + return r(t, w, n, e) + } + function f(t, n, e) { + return r(t, M, n, e) + } + function l(t, n, e) { + return r(t, T, n, e) + } + function h(t) { + return S[t.getDay()] + } + function p(t) { + return k[t.getDay()] + } + function d(t) { + return E[t.getMonth()] + } + function v(t) { + return A[t.getMonth()] + } + function _(t) { + return N[+ (t.getHours() >= 12)] + } + function y(t) { + return S[t.getUTCDay()] + } + function g(t) { + return k[t.getUTCDay()] + } + function m(t) { + return E[t.getUTCMonth()] + } + function x(t) { + return A[t.getUTCMonth()] + } + function b(t) { + return N[+ (t.getUTCHours() >= 12)] + } + var w = t.dateTime, + M = t.date, + T = t.time, + N = t.periods, + k = t.days, + S = t.shortDays, + A = t.months, + E = t.shortMonths, + C = fe(N), + z = le(N), + P = fe(k), + q = le(k), + L = fe(S), + R = le(S), + U = fe(A), + D = le(A), + O = fe(E), + F = le(E), + I = { + a: h, + A: p, + b: d, + B: v, + c: null, + d: ke, + e: ke, + H: Se, + I: Ae, + j: Ee, + L: Ce, + m: ze, + M: Pe, + p: _, + S: qe, + U: Le, + w: Re, + W: Ue, + x: null, + X: null, + y: De, + Y: Oe, + Z: Fe, + "%": tr + }, + Y = { + a: y, + A: g, + b: m, + B: x, + c: null, + d: Ie, + e: Ie, + H: Ye, + I: Be, + j: je, + L: He, + m: Xe, + M: Ve, + p: b, + S: We, + U: $e, + w: Ze, + W: Ge, + x: null, + X: null, + y: Je, + Y: Qe, + Z: Ke, + "%": tr + }, + B = { + a: o, + A: u, + b: a, + B: c, + c: s, + d: me, + e: me, + H: be, + I: be, + j: xe, + L: Te, + m: ge, + M: we, + p: i, + S: Me, + U: pe, + w: he, + W: de, + x: f, + X: l, + y: _e, + Y: ve, + Z: ye, + "%": Ne + }; + return I.x = n(M, I), + I.X = n(T, I), + I.c = n(w, I), + Y.x = n(M, Y), + Y.X = n(T, Y), + Y.c = n(w, Y), { + format: function (t) { + var e = n(t += "", I); + return e.toString = function () { + return t + }, + e + }, + parse: function (t) { + var n = e(t += "", ie); + return n.toString = function () { + return t + }, + n + }, + utcFormat: function (t) { + var e = n(t += "", Y); + return e.toString = function () { + return t + }, + e + }, + utcParse: function (t) { + var n = e(t, oe); + return n.toString = function () { + return t + }, + n + } + } + } + function ce(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 se(t) { + return t.replace(Iv, "\\$&") + } + function fe(t) { + return new RegExp("^(?:" + t.map(se).join("|") + ")", "i") + } + function le(t) { + for (var n = {}, e = -1, r = t.length; ++e < r;) + n[t[e].toLowerCase()] = e; + return n + } + function he(t, n, e) { + var r = Ov.exec(n.slice(e, e + 1)); + return r + ? (t.w =+ r[0], e + r[0].length) + : -1 + } + function pe(t, n, e) { + var r = Ov.exec(n.slice(e)); + return r + ? (t.U =+ r[0], e + r[0].length) + : -1 + } + function de(t, n, e) { + var r = Ov.exec(n.slice(e)); + return r + ? (t.W =+ r[0], e + r[0].length) + : -1 + } + function ve(t, n, e) { + var r = Ov.exec(n.slice(e, e + 4)); + return r + ? (t.y =+ r[0], e + r[0].length) + : -1 + } + function _e(t, n, e) { + var r = Ov.exec(n.slice(e, e + 2)); + return r + ? (t.y =+ r[0] + (+ r[0] > 68 + ? 1900 + : 2e3), e + r[0].length) + : -1 + } + function ye(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 ge(t, n, e) { + var r = Ov.exec(n.slice(e, e + 2)); + return r + ? (t.m = r[0] - 1, e + r[0].length) + : -1 + } + function me(t, n, e) { + var r = Ov.exec(n.slice(e, e + 2)); + return r + ? (t.d =+ r[0], e + r[0].length) + : -1 + } + function xe(t, n, e) { + var r = Ov.exec(n.slice(e, e + 3)); + return r + ? (t.m = 0, t.d =+ r[0], e + r[0].length) + : -1 + } + function be(t, n, e) { + var r = Ov.exec(n.slice(e, e + 2)); + return r + ? (t.H =+ r[0], e + r[0].length) + : -1 + } + function we(t, n, e) { + var r = Ov.exec(n.slice(e, e + 2)); + return r + ? (t.M =+ r[0], e + r[0].length) + : -1 + } + function Me(t, n, e) { + var r = Ov.exec(n.slice(e, e + 2)); + return r + ? (t.S =+ r[0], e + r[0].length) + : -1 + } + function Te(t, n, e) { + var r = Ov.exec(n.slice(e, e + 3)); + return r + ? (t.L =+ r[0], e + r[0].length) + : -1 + } + function Ne(t, n, e) { + var r = Fv.exec(n.slice(e, e + 1)); + return r + ? e + r[0].length + : -1 + } + function ke(t, n) { + return ce(t.getDate(), n, 2) + } + function Se(t, n) { + return ce(t.getHours(), n, 2) + } + function Ae(t, n) { + return ce(t.getHours() % 12 || 12, n, 2) + } + function Ee(t, n) { + return ce(1 + Cd.count($d(t), t), n, 3) + } + function Ce(t, n) { + return ce(t.getMilliseconds(), n, 3) + } + function ze(t, n) { + return ce(t.getMonth() + 1, n, 2) + } + function Pe(t, n) { + return ce(t.getMinutes(), n, 2) + } + function qe(t, n) { + return ce(t.getSeconds(), n, 2) + } + function Le(t, n) { + return ce(Pd.count($d(t), t), n, 2) + } + function Re(t) { + return t.getDay() + } + function Ue(t, n) { + return ce(qd.count($d(t), t), n, 2) + } + function De(t, n) { + return ce(t.getFullYear() % 100, n, 2) + } + function Oe(t, n) { + return ce(t.getFullYear() % 1e4, n, 4) + } + function Fe(t) { + var n = t.getTimezoneOffset(); + return (n > 0 + ? "-" + : (n *= -1, "+")) + ce(n / 60 | 0, "0", 2) + ce(n % 60, "0", 2) + } + function Ie(t, n) { + return ce(t.getUTCDate(), n, 2) + } + function Ye(t, n) { + return ce(t.getUTCHours(), n, 2) + } + function Be(t, n) { + return ce(t.getUTCHours() % 12 || 12, n, 2) + } + function je(t, n) { + return ce(1 + tv.count(gv(t), t), n, 3) + } + function He(t, n) { + return ce(t.getUTCMilliseconds(), n, 3) + } + function Xe(t, n) { + return ce(t.getUTCMonth() + 1, n, 2) + } + function Ve(t, n) { + return ce(t.getUTCMinutes(), n, 2) + } + function We(t, n) { + return ce(t.getUTCSeconds(), n, 2) + } + function $e(t, n) { + return ce(ev.count(gv(t), t), n, 2) + } + function Ze(t) { + return t.getUTCDay() + } + function Ge(t, n) { + return ce(rv.count(gv(t), t), n, 2) + } + function Je(t, n) { + return ce(t.getUTCFullYear() % 100, n, 2) + } + function Qe(t, n) { + return ce(t.getUTCFullYear() % 1e4, n, 4) + } + function Ke() { + return "+0000" + } + function tr() { + return "%" + } + function nr(n) { + return qv = ae(n), + t.timeFormat = qv.format, + t.timeParse = qv.parse, + t.utcFormat = qv.utcFormat, + t.utcParse = qv.utcParse, + qv + } + function er(t) { + return t.toISOString() + } + function rr(t) { + var n = new Date(t); + return isNaN(n) + ? null + : n + } + function ir(t) { + function n(n) { + var o = n + "", + u = e.get(o); + if (!u) { + if (i !== Wv) + return i; + e.set(o, u = r.push(n)) + } + return t[(u - 1) % t.length] + } + var e = o(), + r = [], + i = Wv; + return t = null == t + ? [] + : Vv.call(t), + n.domain = function (t) { + if (!arguments.length) + return r.slice(); + r = [], + e = o(); + for (var i, u, a = -1, c = t.length; ++a < c;) + e.has(u = (i = t[a]) + "") || e.set(u, r.push(i)); + return n + }, + n.range = function (e) { + return arguments.length + ? (t = Vv.call(e), n) + : t.slice() + }, + n.unknown = function (t) { + return arguments.length + ? (i = t, n) + : i + }, + n.copy = function () { + return ir() + .domain(r) + .range(t) + .unknown(i) + }, + n + } + function or() { + function t() { + var t = i().length, + r = u[1] < u[0], + l = u[r - 0], + h = u[1 - r]; + n = (h - l) / Math.max(1, t - c + 2 * s), + a && (n = Math.floor(n)), + l += (h - l - n * (t - c)) * f, + e = n * (1 - c), + a && (l = Math.round(l), e = Math.round(e)); + var p = Os(t).map(function (t) { + return l + n * t + }); + return o(r + ? p.reverse() + : p) + } + var n, + e, + r = ir().unknown(void 0), + i = r.domain, + o = r.range, + u = [ + 0, 1 + ], + a = !1, + c = 0, + s = 0, + f = .5; + return delete r.unknown, + r.domain = function (n) { + return arguments.length + ? (i(n), t()) + : i() + }, + r.range = function (n) { + return arguments.length + ? (u = [ + n[0], + n[1] + ], t()) + : u.slice() + }, + r.rangeRound = function (n) { + return u = [ + n[0], + n[1] + ], + a = !0, + t() + }, + r.bandwidth = function () { + return e + }, + r.step = function () { + return n + }, + r.round = function (n) { + return arguments.length + ? (a = !!n, t()) + : a + }, + r.padding = function (n) { + return arguments.length + ? (c = s = Math.max(0, Math.min(1, n)), t()) + : c + }, + r.paddingInner = function (n) { + return arguments.length + ? (c = Math.max(0, Math.min(1, n)), t()) + : c + }, + r.paddingOuter = function (n) { + return arguments.length + ? (s = Math.max(0, Math.min(1, n)), t()) + : s + }, + r.align = function (n) { + return arguments.length + ? (f = Math.max(0, Math.min(1, n)), t()) + : f + }, + r.copy = function () { + return or() + .domain(i()) + .range(u) + .round(a) + .paddingInner(c) + .paddingOuter(s) + .align(f) + }, + t() + } + function ur(t) { + var n = t.copy; + return t.padding = t.paddingOuter, + delete t.paddingInner, + delete t.paddingOuter, + t.copy = function () { + return ur(n()) + }, + t + } + function ar() { + return ur(or().paddingInner(1)) + } + function cr(t, n) { + return (n -= t =+ t) + ? function (e) { + return (e - t) / n + } + : $v(n) + } + function sr(t) { + return function (n, e) { + var r = t(n =+ n, e =+ e); + return function (t) { + return t <= n + ? 0 + : t >= e + ? 1 + : r(t) + } + } + } + function fr(t) { + return function (n, e) { + var r = t(n =+ n, e =+ e); + return function (t) { + return t <= 0 + ? n + : t >= 1 + ? e + : r(t) + } + } + } + function lr(t, n, e, r) { + var i = t[0], + o = t[1], + u = n[0], + a = n[1]; + return o < i + ? (i = e(o, i), u = r(a, u)) + : (i = e(i, o), u = r(u, a)), + function (t) { + return u(i(t)) + } + } + function hr(t, n, e, r) { + var i = Math.min(t.length, n.length) - 1, + o = new Array(i), + u = new Array(i), + a = -1; + for (t[i] < t[0] && (t = t.slice().reverse(), n = n.slice().reverse()); ++a < i;) + o[a] = e(t[a], t[a + 1]), + u[a] = r(n[a], n[a + 1]); + return function (n) { + var e = ks(t, n, 1, i) - 1; + return u[e](o[e](n)) + } + } + function pr(t, n) { + return n + .domain(t.domain()) + .range(t.range()) + .interpolate(t.interpolate()) + .clamp(t.clamp()) + } + function dr(t, n) { + function e() { + return i = Math.min(a.length, c.length) > 2 + ? hr + : lr, + o = u = null, + r + } + function r(n) { + return (o || (o = i(a, c, f + ? sr(t) + : t, s)))(+ n) + } + var i, + o, + u, + a = Gv, + c = Gv, + s = _p, + f = !1; + return r.invert = function (t) { + return (u || (u = i(c, a, cr, f + ? fr(n) + : n)))(+ t) + }, + r.domain = function (t) { + return arguments.length + ? (a = Xv.call(t, Zv), e()) + : a.slice() + }, + r.range = function (t) { + return arguments.length + ? (c = Vv.call(t), e()) + : c.slice() + }, + r.rangeRound = function (t) { + return c = Vv.call(t), + s = yp, + e() + }, + r.clamp = function (t) { + return arguments.length + ? (f = !!t, e()) + : f + }, + r.interpolate = function (t) { + return arguments.length + ? (s = t, e()) + : s + }, + e() + } + function vr(t) { + var n = t.domain; + return t.ticks = function (t) { + var e = n(); + return Bs(e[0], e[e.length - 1], null == t + ? 10 + : t) + }, + t.tickFormat = function (t, e) { + return Jv(n(), t, e) + }, + t.nice = function (r) { + var i = n(), + o = i.length - 1, + u = null == r + ? 10 + : r, + a = i[0], + c = i[o], + s = e(a, c, u); + return s && (s = e(Math.floor(a / s) * s, Math.ceil(c / s) * s, u), i[0] = Math.floor(a / s) * s, i[o] = Math.ceil(c / s) * s, n(i)), + t + }, + t + } + function _r() { + var t = dr(cr, lp); + return t.copy = function () { + return pr(t, _r()) + }, + vr(t) + } + function yr() { + function t(t) { + return + t + } + var n = [0, 1]; + return t.invert = t, + t.domain = t.range = function (e) { + return arguments.length + ? (n = Xv.call(e, Zv), t) + : n.slice() + }, + t.copy = function () { + return yr().domain(n) + }, + vr(t) + } + function gr(t, n) { + return (n = Math.log(n / t)) + ? function (e) { + return Math.log(e / t) / n + } + : $v(n) + } + function mr(t, n) { + return t < 0 + ? function (e) { + return -Math.pow(-n, e) * Math.pow(-t, 1 - e) + } + : function (e) { + return Math.pow(n, e) * Math.pow(t, 1 - e) + } + } + function xr(t) { + return isFinite(t) ?+ ("1e" + t) : t < 0 + ? 0 + : t + } + function br(t) { + return 10 === t + ? xr + : t === Math.E + ? Math.exp + : function (n) { + return Math.pow(t, n) + } + } + function wr(t) { + return t === Math.E + ? Math.log + : 10 === t && Math.log10 || 2 === t && Math.log2 || (t = Math.log(t), function (n) { + return Math.log(n) / t + }) + } + function Mr(t) { + return function (n) { + return -t(-n) + } + } + function Tr() { + function n() { + return o = wr(i), + u = br(i), + r()[0] < 0 && (o = Mr(o), u = Mr(u)), + e + } + var e = dr(gr, mr).domain([1, 10]), + r = e.domain, + i = 10, + o = wr(10), + u = br(10); + return e.base = function (t) { + return arguments.length + ? (i =+ t, n()) + : i + }, + e.domain = function (t) { + return arguments.length + ? (r(t), n()) + : r() + }, + e.ticks = function (t) { + var n, + e = r(), + a = e[0], + c = e[e.length - 1]; + (n = c < a) && (h = a, a = c, c = h); + var s, + f, + l, + h = o(a), + p = o(c), + d = null == t + ? 10 :+ t, + v = []; + if (!(i % 1) && p - h < d) { + if (h = Math.round(h) - 1, p = Math.round(p) + 1, a > 0) { + for (; h < p; ++h) + for (f = 1, s = u(h); f < i; ++f) + if (l = s * f, !(l < a)) { + if (l > c) + break; + v.push(l) + } + } else + for (; h < p; ++h) + for (f = i - 1, s = u(h); f >= 1; --f) + if (l = s * f, !(l < a)) { + if (l > c) + break; + v.push(l) + } + } else + v = Bs(h, p, Math.min(p - h, d)).map(u); + return n + ? v.reverse() + : v + }, + e.tickFormat = function (n, r) { + if (null == r && (r = 10 === i + ? ".0e" + : ","), "function" != typeof r && (r = t.format(r)), n === 1 / 0) + return r; + null == n && (n = 10); + var a = Math.max(1, i * n / e.ticks().length); + return function (t) { + var n = t / u(Math.round(o(t))); + return n * i < i - .5 && (n *= i), + n <= a + ? r(t) + : "" + } + }, + e.nice = function () { + return r(Qv(r(), { + floor: function (t) { + return u(Math.floor(o(t))) + }, + ceil: function (t) { + return u(Math.ceil(o(t))) + } + })) + }, + e.copy = function () { + return pr(e, Tr().base(i)) + }, + e + } + function Nr(t, n) { + return t < 0 + ? -Math.pow(-t, n) + : Math.pow(t, n) + } + function kr() { + function t(t, n) { + return (n = Nr(n, e) - (t = Nr(t, e))) + ? function (r) { + return (Nr(r, e) - t) / n + } + : $v(n) + } + function n(t, n) { + return n = Nr(n, e) - (t = Nr(t, e)), + function (r) { + return Nr(t + n * r, 1 / e) + } + } + var e = 1, + r = dr(t, n), + i = r.domain; + return r.exponent = function (t) { + return arguments.length + ? (e =+ t, i(i())) + : e + }, + r.copy = function () { + return pr(r, kr().exponent(e)) + }, + vr(r) + } + function Sr() { + return kr().exponent(.5) + } + function Ar() { + function t() { + var t = 0, + o = Math.max(1, r.length); + for (i = new Array(o - 1); ++t < o;) + i[t - 1] = Xs(e, t / o); + return n + } + function n(t) { + if (!isNaN(t =+ t)) + return r[ks(i, t)] + } + var e = [], + r = [], + i = []; + return n.invertExtent = function (t) { + var n = r.indexOf(t); + return n < 0 + ? [NaN, NaN] + : [ + n > 0 + ? i[n - 1] + : e[0], + n < i.length + ? i[n] + : e[e.length - 1] + ] + }, + n.domain = function (n) { + if (!arguments.length) + return e.slice(); + e = []; + for (var r, i = 0, o = n.length; i < o; ++i) + r = n[i], + null == r || isNaN(r =+ r) || e.push(r); + return e.sort(Ms), + t() + }, + n.range = function (n) { + return arguments.length + ? (r = Vv.call(n), t()) + : r.slice() + }, + n.quantiles = function () { + return i.slice() + }, + n.copy = function () { + return Ar() + .domain(e) + .range(r) + }, + n + } + function Er() { + function t(t) { + if (t <= t) + return u[ks(o, t, 0, i)] + } + function n() { + var n = -1; + for (o = new Array(i); ++n < i;) + o[n] = ((n + 1) * r - (n - i) * e) / (i + 1); + return t + } + var e = 0, + r = 1, + i = 1, + o = [.5], + u = [0, 1]; + return t.domain = function (t) { + return arguments.length + ? (e =+ t[0], r =+ t[1], n()) + : [e, r] + }, + t.range = function (t) { + return arguments.length + ? (i = (u = Vv.call(t)).length - 1, n()) + : u.slice() + }, + t.invertExtent = function (t) { + var n = u.indexOf(t); + return n < 0 + ? [NaN, NaN] + : n < 1 + ? [e, o[0]] + : n >= i + ? [ + o[i - 1], + r + ] + : [ + o[n - 1], + o[n] + ] + }, + t.copy = function () { + return Er() + .domain([e, r]) + .range(u) + }, + vr(t) + } + function Cr() { + function t(t) { + if (t <= t) + return e[ks(n, t, 0, r)] + } + var n = [.5], + e = [ + 0, 1 + ], + r = 1; + return t.domain = function (i) { + return arguments.length + ? (n = Vv.call(i), r = Math.min(n.length, e.length - 1), t) + : n.slice() + }, + t.range = function (i) { + return arguments.length + ? (e = Vv.call(i), r = Math.min(n.length, e.length - 1), t) + : e.slice() + }, + t.invertExtent = function (t) { + var r = e.indexOf(t); + return [ + n[r - 1], + n[r] + ] + }, + t.copy = function () { + return Cr() + .domain(n) + .range(e) + }, + t + } + function zr(t) { + return new Date(t); + } + function Pr(t) { + return t instanceof Date ?+ t :+ new Date(+ t) + } + function qr(t, n, r, i, o, u, a, c, s) { + function f(e) { + return (a(e) < e + ? v + : u(e) < e + ? _ + : o(e) < e + ? y + : i(e) < e + ? g + : n(e) < e + ? r(e) < e + ? m + : x + : t(e) < e + ? b + : w)(e) + } + function l(n, r, i, o) { + if (null == n && (n = 10), "number" == typeof n) { + var u = Math.abs(i - r) / n, + a = Ts(function (t) { + return t[2] + }).right(M, u); + a === M.length + ? (o = e(r / o_, i / o_, n), n = t) + : a + ? (a = M[u / M[a - 1][2] < M[a][2] / u + ? a - 1 + : a], o = a[1], n = a[0]) + : (o = e(r, i, n), n = c) + } + return null == o + ? n + : n.every(o) + } + var h = dr(cr, lp), + p = h.invert, + d = h.domain, + v = s(".%L"), + _ = s(":%S"), + y = s("%I:%M"), + g = s("%I %p"), + m = s("%a %d"), + x = s("%b %d"), + b = s("%B"), + w = s("%Y"), + M = [ + [ + a, 1, Kv + ], + [ + a, 5, 5 * Kv + ], + [ + a, 15, 15 * Kv + ], + [ + a, 30, 30 * Kv + ], + [ + u, 1, t_ + ], + [ + u, 5, 5 * t_ + ], + [ + u, 15, 15 * t_ + ], + [ + u, 30, 30 * t_ + ], + [ + o, 1, n_ + ], + [ + o, 3, 3 * n_ + ], + [ + o, 6, 6 * n_ + ], + [ + o, 12, 12 * n_ + ], + [ + i, 1, e_ + ], + [ + i, 2, 2 * e_ + ], + [ + r, 1, r_ + ], + [ + n, 1, i_ + ], + [ + n, 3, 3 * i_ + ], + [t, 1, o_] + ]; + return h.invert = function (t) { + return new Date(p(t)) + }, + h.domain = function (t) { + return arguments.length + ? d(Xv.call(t, Pr)) + : d().map(zr) + }, + h.ticks = function (t, n) { + var e, + r = d(), + i = r[0], + o = r[r.length - 1], + u = o < i; + return u && (e = i, i = o, o = e), + e = l(t, i, o, n), + e = e + ? e.range(i, o + 1) + : [], + u + ? e.reverse() + : e + }, + h.tickFormat = function (t, n) { + return null == n + ? f + : s(n) + }, + h.nice = function (t, n) { + var e = d(); + return (t = l(t, e[0], e[e.length - 1], n)) + ? d(Qv(e, t)) + : h + }, + h.copy = function () { + return pr(h, qr(t, n, r, i, o, u, a, c, s)) + }, + h + } + function Lr(t) { + var n = t.length; + return function (e) { + return t[Math.max(0, Math.min(n - 1, Math.floor(e * n)))] + } + } + function Rr(t) { + function n(n) { + var o = (n - e) / (r - e); + return t(i + ? Math.max(0, Math.min(1, o)) + : o) + } + var e = 0, + r = 1, + i = !1; + return n.domain = function (t) { + return arguments.length + ? (e =+ t[0], r =+ t[1], n) + : [e, r] + }, + n.clamp = function (t) { + return arguments.length + ? (i = !!t, n) + : i + }, + n.interpolator = function (e) { + return arguments.length + ? (t = e, n) + : t + }, + n.copy = function () { + return Rr(t) + .domain([e, r]) + .clamp(i) + }, + vr(n) + } + function Ur(t) { + return function () { + var n = this.ownerDocument, + e = this.namespaceURI; + return e === w_ && n.documentElement.namespaceURI === w_ + ? n.createElement(t) + : n.createElementNS(e, t) + } + } + function Dr(t) { + return function () { + return this + .ownerDocument + .createElementNS(t.space, t.local) + } + } + function Or() { + return new Fr + } + function Fr() { + this._ = "@" + (++k_).toString(36) + } + function Ir(t, n, e) { + return t = Yr(t, n, e), + function (n) { + var e = n.relatedTarget; + e && (e === this || 8 & e.compareDocumentPosition(this)) || t.call(this, n) + } + } + function Yr(n, e, r) { + return function (i) { + var o = t.event; + t.event = i; + try { + n.call(this, this.__data__, e, r) + } finally { + t.event = o + } + } + } + function Br(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 + } + }) + } + function jr(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.capture); + + ++i + ? n.length = i + : delete this.__on + } + } + } + function Hr(t, n, e) { + var r = z_.hasOwnProperty(t.type) + ? Ir + : Yr; + return function (i, o, u) { + var a, + c = this.__on, + s = r(n, o, u); + if (c) + for (var f = 0, l = c.length; f < l; ++f) + if ((a = c[f]).type === t.type && a.name === t.name) + return this.removeEventListener(a.type, a.listener, a.capture), + this.addEventListener(a.type, a.listener = s, a.capture = e), + void(a.value = n); + this.addEventListener(t.type, s, e), + a = { + type: t.type, + name: t.name, + value: n, + listener: s, + capture: e + }, + c + ? c.push(a) + : this.__on = [a] + } + } + function Xr(n, e, r, i) { + var o = t.event; + n.sourceEvent = t.event, + t.event = n; + try { + return e.apply(r, i) + } finally { + t.event = o + } + } + function Vr() {} + function Wr() { + return [] + } + function $r(t, n) { + this.ownerDocument = t.ownerDocument, + this.namespaceURI = t.namespaceURI, + this._next = null, + this._parent = t, + this.__data__ = n + } + function Zr(t, n, e, r, i, o) { + for (var u, a = 0, c = n.length, s = o.length; a < s; ++a) + (u = n[a]) + ? (u.__data__ = o[a], r[a] = u) + : e[a] = new $r(t, o[a]); + for (; a < c; ++a) + (u = n[a]) && (i[a] = u) + } + function Gr(t, n, e, r, i, o, u) { + var a, + c, + s, + f = {}, + l = n.length, + h = o.length, + p = new Array(l); + for (a = 0; a < l; ++a) + (c = n[a]) && (p[a] = s = X_ + u.call(c, c.__data__, a, n), s in f + ? i[a] = c + : f[s] = c); + for (a = 0; a < h; ++a) + s = X_ + u.call(t, o[a], a, o), + (c = f[s]) + ? (r[a] = c, c.__data__ = o[a], f[s] = null) + : e[a] = new $r(t, o[a]); + for (a = 0; a < l; ++a) + (c = n[a]) && f[p[a]] === c && (i[a] = c) + } + function Jr(t, n) { + return t < n + ? -1 + : t > n + ? 1 + : t >= n + ? 0 + : NaN + } + function Qr(t) { + return function () { + this.removeAttribute(t) + } + } + function Kr(t) { + return function () { + this.removeAttributeNS(t.space, t.local) + } + } + function ti(t, n) { + return function () { + this.setAttribute(t, n) + } + } + function ni(t, n) { + return function () { + this.setAttributeNS(t.space, t.local, n) + } + } + function ei(t, n) { + return function () { + var e = n.apply(this, arguments); + null == e + ? this.removeAttribute(t) + : this.setAttribute(t, e) + } + } + function ri(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 ii(t) { + return function () { + this + .style + .removeProperty(t) + } + } + function oi(t, n, e) { + return function () { + this + .style + .setProperty(t, n, e) + } + } + function ui(t, n, e) { + return function () { + var r = n.apply(this, arguments); + null == r + ? this + .style + .removeProperty(t) + : this + .style + .setProperty(t, r, e) + } + } + function ai(t) { + return function () { + delete this[t] + } + } + function ci(t, n) { + return function () { + this[t] = n + } + } + function si(t, n) { + return function () { + var e = n.apply(this, arguments); + null == e + ? delete this[t] + : this[t] = e + } + } + function fi(t) { + return t + .trim() + .split(/^|\s+/) + } + function li(t) { + return t.classList || new hi(t) + } + function hi(t) { + this._node = t, + this._names = fi(t.getAttribute("class") || "") + } + function pi(t, n) { + for (var e = li(t), r = -1, i = n.length; ++r < i;) + e.add(n[r]) + } + function di(t, n) { + for (var e = li(t), r = -1, i = n.length; ++r < i;) + e.remove(n[r]) + } + function vi(t) { + return function () { + pi(this, t) + } + } + function _i(t) { + return function () { + di(this, t) + } + } + function yi(t, n) { + return function () { + (n.apply(this, arguments) + ? pi + : di)(this, t) + } + } + function gi() { + this.textContent = "" + } + function mi(t) { + return function () { + this.textContent = t + } + } + function xi(t) { + return function () { + var n = t.apply(this, arguments); + this.textContent = null == n + ? "" + : n + } + } + function bi() { + this.innerHTML = "" + } + function wi(t) { + return function () { + this.innerHTML = t + } + } + function Mi(t) { + return function () { + var n = t.apply(this, arguments); + this.innerHTML = null == n + ? "" + : n + } + } + function Ti() { + this.nextSibling && this + .parentNode + .appendChild(this) + } + function Ni() { + this.previousSibling && this + .parentNode + .insertBefore(this, this.parentNode.firstChild) + } + function ki() { + return null + } + function Si() { + var t = this.parentNode; + t && t.removeChild(this) + } + function Ai(t, n, e) { + var r = iy(t), + i = r.CustomEvent; + 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 Ei(t, n) { + return function () { + return Ai(this, t, n) + } + } + function Ci(t, n) { + return function () { + return Ai(this, t, n.apply(this, arguments)) + } + } + function zi(t, n) { + this._groups = t, + this._parents = n + } + function Pi() { + return new zi([ + [document.documentElement] + ], yy) + } + function qi(t, n) { + var e = t.__transition; + if (!e || !(e = e[n]) || e.state > Ty) + throw new Error("too late"); + return e + } + function Li(t, n) { + var e = t.__transition; + if (!e || !(e = e[n]) || e.state > ky) + throw new Error("too late"); + return e + } + function Ri(t, n) { + var e = t.__transition; + if (!e || !(e = e[n])) + throw new Error("too late"); + return e + } + function Ui(t, n, e) { + function r(t) { + e.state = Ny, + e + .timer + .restart(i, e.delay, e.time), + e.delay <= t && i(t - e.delay) + } + function i(r) { + var s, + f, + l, + h; + if (e.state !== Ny) + return u(); + for (s in c) + if (h = c[s], h.name === e.name) { + if (h.state === Sy) + return pd(i); + h.state === Ay + ? (h.state = Cy, h.timer.stop(), h.on.call("interrupt", t, t.__data__, h.index, h.group), delete c[s]) :+ s < n && (h.state = Cy, h.timer.stop(), delete c[s]) + } + if (pd(function () { + e.state === Sy && (e.state = Ay, e.timer.restart(o, e.delay, e.time), o(r)) + }), e.state = ky, e.on.call("start", t, t.__data__, e.index, e.group), e.state === ky) { + for (e.state = Sy, a = new Array(l = e.tween.length), s = 0, f = -1; s < l; ++s) + (h = e.tween[s].value.call(t, t.__data__, e.index, e.group)) && (a[++f] = h); + a.length = f + 1 + } + } + function o(n) { + for (var r = n < e.duration + ? e.ease.call(null, n / e.duration) + : (e.timer.restart(u), e.state = Ey, 1), i = -1, o = a.length; ++i < o;) + a[i].call(null, r); + e.state === Ey && (e.on.call("end", t, t.__data__, e.index, e.group), u()) + } + function u() { + e.state = Cy, + e + .timer + .stop(), + delete c[n]; + for (var r in c) + return; + delete t.__transition + } + var a, + c = t.__transition; + c[n] = e, + e.timer = Vn(r, 0, e.time) + } + function Di(t, n) { + var e, + r; + return function () { + var i = Li(this, t), + o = i.tween; + if (o !== e) { + r = e = o; + for (var u = 0, a = r.length; u < a; ++u) + if (r[u].name === n) { + r = r.slice(), + r.splice(u, 1); + break + } + } + i.tween = r + } + } + function Oi(t, n, e) { + var r, + i; + if ("function" != typeof e) + throw new Error; + return function () { + var o = Li(this, t), + u = o.tween; + if (u !== r) { + i = (r = u).slice(); + for (var a = { + name: n, + value: e + }, c = 0, s = i.length; c < s; ++c) + if (i[c].name === n) { + i[c] = a; + break + } + c === s && i.push(a) + } + o.tween = i + } + } + function Fi(t, n, e) { + var r = t._id; + return t.each(function () { + var t = Li(this, r); + (t.value || (t.value = {}))[n] = e.apply(this, arguments) + }), + function (t) { + return Ri(t, r).value[n] + } + } + function Ii(t) { + return function () { + this.removeAttribute(t) + } + } + function Yi(t) { + return function () { + this.removeAttributeNS(t.space, t.local) + } + } + function Bi(t, n, e) { + var r, + i; + return function () { + var o = this.getAttribute(t); + return o === e + ? null + : o === r + ? i + : i = n(r = o, e) + } + } + function ji(t, n, e) { + var r, + i; + return function () { + var o = this.getAttributeNS(t.space, t.local); + return o === e + ? null + : o === r + ? i + : i = n(r = o, e) + } + } + function Hi(t, n, e) { + var r, + i, + o; + return function () { + var u, + a = e(this); + return null == a + ? void this.removeAttribute(t) + : (u = this.getAttribute(t), u === a + ? null + : u === r && a === i + ? o + : o = n(r = u, i = a)) + } + } + function Xi(t, n, e) { + var r, + i, + o; + return function () { + var u, + a = e(this); + return null == a + ? void this.removeAttributeNS(t.space, t.local) + : (u = this.getAttributeNS(t.space, t.local), u === a + ? null + : u === r && a === i + ? o + : o = n(r = u, i = a)) + } + } + function Vi(t, n) { + function e() { + var e = this, + r = n.apply(e, arguments); + return r && function (n) { + e.setAttributeNS(t.space, t.local, r(n)) + } + } + return e._value = n, + e + } + function Wi(t, n) { + function e() { + var e = this, + r = n.apply(e, arguments); + return r && function (n) { + e.setAttribute(t, r(n)) + } + } + return e._value = n, + e + } + function $i(t, n) { + return function () { + qi(this, t).delay =+ n.apply(this, arguments) + } + } + function Zi(t, n) { + return n =+ n, + function () { + qi(this, t).delay = n + } + } + function Gi(t, n) { + return function () { + Li(this, t).duration =+ n.apply(this, arguments) + } + } + function Ji(t, n) { + return n =+ n, + function () { + Li(this, t).duration = n + } + } + function Qi(t, n) { + if ("function" != typeof n) + throw new Error; + return function () { + Li(this, t).ease = n + } + } + function Ki(t) { + return (t + "") + .trim() + .split(/^|\s+/) + .every(function (t) { + var n = t.indexOf("."); + return n >= 0 && (t = t.slice(0, n)), + !t || "start" === t + }) + } + function to(t, n, e) { + var r, + i, + o = Ki(n) + ? qi + : Li; + return function () { + var u = o(this, t), + a = u.on; + a !== r && (i = (r = a).copy()).on(n, e), + u.on = i + } + } + function no(t) { + return function () { + var n = this.parentNode; + for (var e in this.__transition) + if (+ e !== t) + return; + n && n.removeChild(this) + } + } + function eo(t, n) { + var e, + r, + i; + return function () { + var o = iy(this).getComputedStyle(this, null), + u = o.getPropertyValue(t), + a = (this.style.removeProperty(t), o.getPropertyValue(t)); + return u === a + ? null + : u === e && a === r + ? i + : i = n(e = u, r = a) + } + } + function ro(t) { + return function () { + this + .style + .removeProperty(t) + } + } + function io(t, n, e) { + var r, + i; + return function () { + var o = iy(this) + .getComputedStyle(this, null) + .getPropertyValue(t); + return o === e + ? null + : o === r + ? i + : i = n(r = o, e) + } + } + function oo(t, n, e) { + var r, + i, + o; + return function () { + var u = iy(this).getComputedStyle(this, null), + a = u.getPropertyValue(t), + c = e(this); + return null == c && (this.style.removeProperty(t), c = u.getPropertyValue(t)), + a === c + ? null + : a === r && c === i + ? o + : o = n(r = a, i = c) + } + } + function uo(t, n, e) { + function r() { + var r = this, + i = n.apply(r, arguments); + return i && function (n) { + r + .style + .setProperty(t, i(n), e) + } + } + return r._value = n, + r + } + function ao(t) { + return function () { + this.textContent = t + } + } + function co(t) { + return function () { + var n = t(this); + this.textContent = null == n + ? "" + : n + } + } + function so(t, n, e, r) { + this._groups = t, + this._parents = n, + this._name = e, + this._id = r + } + function fo(t) { + return Pi().transition(t) + } + function lo() { + return++ Ky + } + function ho(t, n) { + for (var e; !(e = t.__transition) || !(e = e[n]);) + if (!(t = t.parentNode)) + return ng.time = jn(), + ng; + return e + } + function po(t, n, e) { + var r = t(e); + return "translate(" + (isFinite(r) + ? r + : n(e)) + ",0)" + } + function vo(t, n, e) { + var r = t(e); + return "translate(0," + (isFinite(r) + ? r + : n(e)) + ")" + } + function _o(t) { + var n = t.bandwidth() / 2; + return t.round() && (n = Math.round(n)), + function (e) { + return t(e) + n + } + } + function yo() { + return !this.__axis + } + function go(t, n) { + function e(e) { + var s, + f = null == i + ? n.ticks + ? n + .ticks + .apply(n, r) + : n.domain() + : i, + l = null == o + ? n.tickFormat + ? n + .tickFormat + .apply(n, r) + : ug + : o, + h = Math.max(u, 0) + c, + p = t === ag || t === sg + ? po + : vo, + d = n.range(), + v = d[0] + .5, + _ = d[d.length - 1] + .5, + y = (n.bandwidth + ? _o + : ug)(n.copy()), + g = e.selection + ? e.selection() + : e, + m = g + .selectAll(".domain") + .data([null]), + x = g + .selectAll(".tick") + .data(f, n) + .order(), + b = x.exit(), + w = x + .enter() + .append("g") + .attr("class", "tick"), + M = x.select("line"), + T = x.select("text"), + N = t === ag || t === fg + ? -1 + : 1, + k = t === fg || t === cg + ? (s = "x", "y") + : (s = "y", "x"); + m = m.merge(m.enter().insert("path", ".tick").attr("class", "domain").attr("stroke", "#000")), + x = x.merge(w), + M = M.merge(w.append("line").attr("stroke", "#000").attr(s + "2", N * u).attr(k + "1", .5).attr(k + "2", .5)), + T = T.merge(w.append("text").attr("fill", "#000").attr(s, N * h).attr(k, .5).attr("dy", t === ag + ? "0em" + : t === sg + ? "0.71em" + : "0.32em")), + e !== g && (m = m.transition(e), x = x.transition(e), M = M.transition(e), T = T.transition(e), b = b.transition(e).attr("opacity", lg).attr("transform", function (t) { + return p(y, this.parentNode.__axis || y, t) + }), w.attr("opacity", lg).attr("transform", function (t) { + return p(this.parentNode.__axis || y, y, t) + })), + b.remove(), + m.attr("d", t === fg || t == cg + ? "M" + N * a + "," + v + "H0.5V" + _ + "H" + N * a + : "M" + v + "," + N * a + "V0.5H" + _ + "V" + N * a), + x + .attr("opacity", 1) + .attr("transform", function (t) { + return p(y, y, t) + }), + M.attr(s + "2", N * u), + T + .attr(s, N * h) + .text(l), + g + .filter(yo) + .attr("fill", "none") + .attr("font-size", 10) + .attr("font-family", "sans-serif") + .attr("text-anchor", t === cg + ? "start" + : t === fg + ? "end" + : "middle"), + g.each(function () { + this.__axis = y + }) + } + var r = [], + i = null, + o = null, + u = 6, + a = 6, + c = 3; + return e.scale = function (t) { + return arguments.length + ? (n = t, e) + : n + }, + e.ticks = function () { + return r = og.call(arguments), + e + }, + e.tickArguments = function (t) { + return arguments.length + ? (r = null == t + ? [] + : og.call(t), e) + : r.slice() + }, + e.tickValues = function (t) { + return arguments.length + ? (i = null == t + ? null + : og.call(t), e) + : i && i.slice() + }, + e.tickFormat = function (t) { + return arguments.length + ? (o = t, e) + : o + }, + e.tickSize = function (t) { + return arguments.length + ? (u = a =+ t, e) + : u + }, + e.tickSizeInner = function (t) { + return arguments.length + ? (u =+ t, e) + : u + }, + e.tickSizeOuter = function (t) { + return arguments.length + ? (a =+ t, e) + : a + }, + e.tickPadding = function (t) { + return arguments.length + ? (c =+ t, e) + : c + }, + e + } + function mo(t) { + return go(ag, t) + } + function xo(t) { + return go(cg, t) + } + function bo(t) { + return go(sg, t) + } + function wo(t) { + return go(fg, t) + } + function Mo(t, n) { + return t.parent === n.parent + ? 1 + : 2 + } + function To(t) { + return t.reduce(No, 0) / t.length + } + function No(t, n) { + return t + n.x + } + function ko(t) { + return 1 + t.reduce(So, 0) + } + function So(t, n) { + return Math.max(t, n.y) + } + function Ao(t) { + for (var n; n = t.children;) + t = n[0]; + return t + } + function Eo(t) { + for (var n; n = t.children;) + t = n[n.length - 1]; + return t + } + function Co(t, n) { + if (t === n) + return t; + var e = t.ancestors(), + r = n.ancestors(), + i = null; + for (t = e.pop(), n = r.pop(); t === n;) + i = t, + t = e.pop(), + n = r.pop(); + return i + } + function zo(t, n) { + var e, + r, + i, + o, + u, + a = new Uo(t), + c =+ t.value && (a.value = t.value), + s = [a]; + for (null == n && (n = qo); e = s.pop();) + if (c && (e.value =+ e.data.value), (i = n(e.data)) && (u = i.length)) + for (e.children = new Array(u), o = u - 1; o >= 0; --o) + s.push(r = e.children[o] = new Uo(i[o])), + r.parent = e, + r.depth = e.depth + 1; + return a.eachBefore(Ro) + } + function Po() { + return zo(this).eachBefore(Lo) + } + function qo(t) { + return t.children + } + function Lo(t) { + t.data = t.data.data + } + function Ro(t) { + var n = 0; + do + t.height = n; + while ((t = t.parent) && t.height < ++n) + } + function Uo(t) { + this.data = t, + this.depth = this.height = 0, + this.parent = null + } + function Do(t) { + this._ = t, + this.next = null + } + function Oo(t, n) { + var e = n.x - t.x, + r = n.y - t.y, + i = t.r - n.r; + return i * i + 1e-6 > e * e + r * r + } + function Fo(t, n) { + var e, + r, + i, + o = null, + u = t.head; + switch (n.length) { + case 1: + e = Io(n[0]); + break; + case 2: + e = Yo(n[0], n[1]); + break; + case 3: + e = Bo(n[0], n[1], n[2]) + } + for (; u;) + i = u._, + r = u.next, + e && Oo(e, i) + ? o = u + : (o + ? (t.tail = o, o.next = null) + : t.head = t.tail = null, n.push(i), e = Fo(t, n), n.pop(), t.head + ? (u.next = t.head, t.head = u) + : (u.next = null, t.head = t.tail = u), o = t.tail, o.next = r), + u = r; + return t.tail = o, + e + } + function Io(t) { + return {x: t.x, y: t.y, r: t.r} + } + function Yo(t, n) { + var e = t.x, + r = t.y, + i = t.r, + o = n.x, + u = n.y, + a = n.r, + c = o - e, + s = u - r, + f = a - i, + l = Math.sqrt(c * c + s * s); + return { + x: (e + o + c / l * f) / 2, + y: (r + u + s / l * f) / 2, + r: (l + i + a) / 2 + } + } + function Bo(t, n, e) { + var r = t.x, + i = t.y, + o = t.r, + u = n.x, + a = n.y, + c = n.r, + s = e.x, + f = e.y, + l = e.r, + h = 2 * (r - u), + p = 2 * (i - a), + d = 2 * (c - o), + v = r * r + i * i - o * o - u * u - a * a + c * c, + _ = 2 * (r - s), + y = 2 * (i - f), + g = 2 * (l - o), + m = r * r + i * i - o * o - s * s - f * f + l * l, + x = _ * p - h * y, + b = (p * m - y * v) / x - r, + w = (y * d - p * g) / x, + M = (_ * v - h * m) / x - i, + T = (h * g - _ * d) / x, + N = w * w + T * T - 1, + k = 2 * (b * w + M * T + o), + S = b * b + M * M - o * o, + A = (-k - Math.sqrt(k * k - 4 * N * S)) / (2 * N); + return { + x: b + *A + r, + y: M + *A + i, + r: A + } + } + function jo(t, n, e) { + var r = t.x, + i = t.y, + o = n.r + e.r, + u = t.r + e.r, + a = n.x - r, + c = n.y - i, + s = a * a + c * c; + if (s) { + var f = .5 + ((u *= u) - (o *= o)) / (2 * s), + l = Math.sqrt(Math.max(0, 2 * o * (u + s) - (u -= s) * u - o * o)) / (2 * s); + e.x = r + f * a + l * c, + e.y = i + f * c - l * a + } else + e.x = r + u, + e.y = i + } + function Ho(t, n) { + var e = n.x - t.x, + r = n.y - t.y, + i = t.r + n.r; + return i * i > e * e + r * r + } + function Xo(t, n, e) { + var r = t.x - n, + i = t.y - e; + return r * r + i * i + } + function Vo(t) { + this._ = t, + this.next = null, + this.previous = null + } + function Wo(t) { + if (!(i = t.length)) + return 0; + var n, + e, + r, + i; + if (n = t[0], n.x = 0, n.y = 0, !(i > 1)) + return n.r; + if (e = t[1], n.x = -e.r, e.x = n.r, e.y = 0, !(i > 2)) + return n.r + e.r; + jo(e, n, r = t[2]); + var o, + u, + a, + c, + s, + f, + l, + h = n.r * n.r, + p = e.r * e.r, + d = r.r * r.r, + v = h + p + d, + _ = h * n.x + p * e.x + d * r.x, + y = h * n.y + p * e.y + d * r.y; + n = new Vo(n), + e = new Vo(e), + r = new Vo(r), + n.next = r.previous = e, + e.next = n.previous = r, + r.next = e.previous = n; + t : for (a = 3; a < i; ++a) { + if (jo(n._, e._, r = t[a]), r = new Vo(r), (s = n.previous) === (c = e.next)) { + if (Ho(c._, r._)) { + n = e, + e = c, + --a; + continue t + } + } else { + f = c._.r, + l = s._.r; + do + if (f <= l) { + if (Ho(c._, r._)) { + e = c, + n.next = e, + e.previous = n, + --a; + continue t + } + c = c.next, + f += c._.r + } + else { + if (Ho(s._, r._)) { + n = s, + n.next = e, + e.previous = n, + --a; + continue t + } + s = s.previous, + l += s._.r + } + while (c !== s.next) + } + for (r.previous = n, r.next = e, n.next = e.previous = e = r, v += d = r._.r * r._.r, _ += d * r._.x, y += d * r._.y, h = Xo(n._, o = _ / v, u = y / v); (r = r.next) !== e;) + (d = Xo(r._, o, u)) < h && (n = r, h = d); + e = n.next + } + for (n = [e._], r = e; (r = r.next) !== e;) + n.push(r._); + for (r = Tg(n), a = 0; a < i; ++a) + n = t[a], + n.x -= r.x, + n.y -= r.y; + return r.r + } + function $o(t) { + return null == t + ? null + : Zo(t) + } + function Zo(t) { + if ("function" != typeof t) + throw new Error; + return t + } + function Go() { + return 0 + } + function Jo(t) { + return Math.sqrt(t.value) + } + function Qo(t) { + return function (n) { + n.children || (n.r = Math.max(0, + t(n) || 0)) + } + } + function Ko(t, n) { + return function (e) { + if (r = e.children) { + var r, + i, + o, + u = r.length, + a = t(e) * n || 0; + if (a) + for (i = 0; i < u; ++i) + r[i].r += a; + if (o = Wo(r), a) + for (i = 0; i < u; ++i) + r[i].r -= a; + e.r = o + a + } + } + } + function tu(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 nu(t) { + return t.id + } + function eu(t) { + return t.parentId + } + function ru(t, n) { + return t.parent === n.parent + ? 1 + : 2 + } + function iu(t) { + var n = t.children; + return n + ? n[0] + : t.t + } + function ou(t) { + var n = t.children; + return n + ? n[n.length - 1] + : t.t + } + function uu(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 au(t) { + for (var n, e = 0, r = 0, i = t.children, o = i.length; --o >= 0;) + n = i[o], + n.z += e, + n.m += e, + e += n.s + (r += n.c) + } + function cu(t, n, e) { + return t.a.parent === n.parent + ? t.a + : e + } + function su(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 fu(t) { + for (var n, e, r, i, o, u = new su(t, 0), a = [u]; n = a.pop();) + if (r = n._.children) + for (n.children = new Array(o = r.length), i = o - 1; i >= 0; --i) + a.push(e = n.children[i] = new su(r[i], i)), + e.parent = n; + return (u.parent = new su(null, 0)).children = [u], + u + } + function lu(t, n, e, r, i, o) { + for (var u, a, c, s, f, l, h, p, d, v, _, y, g = [], m = n.children, x = 0, b = m.length, w = n.value; x < b;) { + for (s = i - e, f = o - r, h = p = l = m[x].value, _ = Math.max(f / s, s / f) / (w * t), y = l * l * _, v = Math.max(p / y, y / h), c = x + 1; c < b; ++c) { + if (l += a = m[c].value, a < h && (h = a), a > p && (p = a), y = l * l * _, d = Math.max(p / y, y / h), d > v) { + l -= a; + break + } + v = d + } + g.push(u = { + value: l, + dice: s < f, + children: m.slice(x, c) + }), + u.dice + ? Eg(u, e, r, i, w + ? r += f * l / w + : o) + : Ug(u, e, r, w + ? e += s * l / w + : i, o), + w -= l, + x = c + } + return g + } + function hu(t) { + return t.x + t.vx + } + function pu(t) { + return t.y + t.vy + } + function du(t, n) { + return n + } + function vu(t, n) { + var e = t.get(n); + if (!e) + throw new Error("missing: " + n); + return e + } + function _u(t) { + return t.x + } + function yu(t) { + return t.y + } + function gu() { + t + .event + .stopImmediatePropagation() + } + function mu(t, n) { + var e = t.document.documentElement, + r = gy(t).on("dragstart.drag", null); + n && (r.on("click.drag", tm, !0), setTimeout(function () { + r.on("click.drag", null) + }, 0)), + "onselectstart" in e + ? r.on("selectstart.drag", null) + : (e.style.MozUserSelect = e.__noselect, delete e.__noselect) + } + function xu(t, n, e, r, i, o, u, a, c, s) { + this.target = t, + this.type = n, + this.subject = e, + this.identifier = r, + this.active = i, + this.x = o, + this.y = u, + this.dx = a, + this.dy = c, + this._ = s + } + function bu() { + return !t.event.button + } + function wu() { + return this.parentNode + } + function Mu(n) { + return null == n + ? { + x: t.event.x, + y: t.event.y + } + : n + } + function Tu(t) { + return t[0] + } + function Nu(t) { + return t[1] + } + function ku() { + this._ = null + } + function Su(t) { + t.U = t.C = t.L = t.R = t.P = t.N = null + } + function Au(t, n) { + var e = n, + r = n.R, + i = e.U; + i + ? i.L === e + ? i.L = r + : i.R = r + : t._ = r, + r.U = i, + e.U = r, + e.R = r.L, + e.R && (e.R.U = e), + r.L = e + } + function Eu(t, n) { + var e = n, + r = n.L, + i = e.U; + i + ? i.L === e + ? i.L = r + : i.R = r + : t._ = r, + r.U = i, + e.U = r, + e.L = r.R, + e.L && (e.L.U = e), + r.R = e + } + function Cu(t) { + for (; t.L;) + t = t.L; + return t + } + function zu(t, n, e, r) { + var i = [ + null, null + ], + o = sm.push(i) - 1; + return i.left = t, + i.right = n, + e && qu(i, t, n, e), + r && qu(i, n, t, r), + am[t.index] + .halfedges + .push(o), + am[n.index] + .halfedges + .push(o), + i + } + function Pu(t, n, e) { + var r = [n, e]; + return r.left = t, + r + } + function qu(t, n, e, r) { + t[0] || t[1] + ? t.left === e + ? t[1] = r + : t[0] = r + : (t[0] = r, t.left = n, t.right = e) + } + function Lu(t, n, e, r, i) { + var o, + u = t[0], + a = t[1], + c = u[0], + s = u[1], + f = a[0], + l = a[1], + h = 0, + p = 1, + d = f - c, + v = l - s; + if (o = n - c, d || !(o > 0)) { + if (o /= d, d < 0) { + if (o < h) + return; + o < p && (p = o) + } else if (d > 0) { + if (o > p) + return; + o > h && (h = o) + } + if (o = r - c, d || !(o < 0)) { + if (o /= d, d < 0) { + if (o > p) + return; + o > h && (h = o) + } else if (d > 0) { + if (o < h) + return; + o < p && (p = o) + } + if (o = e - s, v || !(o > 0)) { + if (o /= v, v < 0) { + if (o < h) + return; + o < p && (p = o) + } else if (v > 0) { + if (o > p) + return; + o > h && (h = o) + } + if (o = i - s, v || !(o < 0)) { + if (o /= v, v < 0) { + if (o > p) + return; + o > h && (h = o) + } else if (v > 0) { + if (o < h) + return; + o < p && (p = o) + } + return !(h > 0 || p < 1) || (h > 0 && (t[0] = [ + c + h * d, + s + h * v + ]), p < 1 && (t[1] = [ + c + p * d, + s + p * v + ]), !0) + } + } + } + } + } + function Ru(t, n, e, r, i) { + var o = t[1]; + if (o) + return !0; + var u, + a, + c = t[0], + s = t.left, + f = t.right, + l = s[0], + h = s[1], + p = f[0], + d = f[1], + v = (l + p) / 2, + _ = (h + d) / 2; + if (d === h) { + if (v < n || v >= r) + return; + if (l > p) { + if (c) { + if (c[1] >= i) + return + } else + c = [v, e]; + o = [v, i] + } else { + if (c) { + if (c[1] < e) + return + } else + c = [v, i]; + o = [v, e] + } + } else if (u = (l - p) / (d - h), a = _ - u * v, u < -1 || u > 1) + if (l > p) { + if (c) { + if (c[1] >= i) + return + } else + c = [ + (e - a) / u, + e + ]; + o = [ + (i - a) / u, + i + ] + } + else { + if (c) { + if (c[1] < e) + return + } else + c = [ + (i - a) / u, + i + ]; + o = [ + (e - a) / u, + e + ] + } else if (h < d) { + if (c) { + if (c[0] >= r) + return + } else + c = [ + n, u * n + a + ]; + o = [ + r, u * r + a + ] + } else { + if (c) { + if (c[0] < n) + return + } else + c = [ + r, u * r + a + ]; + o = [ + n, u * n + a + ] + } + return t[0] = c, + t[1] = o, + !0 + } + function Uu(t, n, e, r) { + for (var i, o = sm.length; o--;) + Ru(i = sm[o], t, n, e, r) && Lu(i, t, n, e, r) && (Math.abs(i[0][0] - i[1][0]) > hm || Math.abs(i[0][1] - i[1][1]) > hm) || delete sm[o] + } + function Du(t) { + return am[t.index] = { + site: t, + halfedges: [] + } + } + function Ou(t, n) { + var e = t.site, + r = n.left, + i = n.right; + return e === i && (i = r, r = e), + i + ? Math.atan2(i[1] - r[1], i[0] - r[0]) + : (e === r + ? (r = n[1], i = n[0]) + : (r = n[0], i = n[1]), Math.atan2(r[0] - i[0], i[1] - r[1])) + } + function Fu(t, n) { + return n[+ (n.left !== t.site)] + } + function Iu(t, n) { + return n[+ (n.left === t.site)] + } + function Yu() { + for (var t, n, e, r, i = 0, o = am.length; i < o; ++i) + if ((t = am[i]) && (r = (n = t.halfedges).length)) { + var u = new Array(r), + a = new Array(r); + for (e = 0; e < r; ++e) + u[e] = e, + a[e] = Ou(t, sm[n[e]]); + for (u.sort(function (t, n) { + return a[n] - a[t] + }), e = 0; e < r; ++e) + a[e] = n[u[e]]; + for (e = 0; e < r; ++e) + n[e] = a[e] + } + } + function Bu(t, n, e, r) { + var i, + o, + u, + a, + c, + s, + f, + l, + h, + p, + d, + v, + _ = am.length, + y = !0; + for (i = 0; i < _; ++i) + if (o = am[i]) { + for (u = o.site, c = o.halfedges, a = c.length; a--;) + sm[c[a]] || c.splice(a, 1); + for (a = 0, s = c.length; a < s;) + p = Iu(o, sm[c[a]]), + d = p[0], + v = p[1], + f = Fu(o, sm[c[++a % s]]), + l = f[0], + h = f[1], + (Math.abs(d - l) > hm || Math.abs(v - h) > hm) && (c.splice(a, 0, sm.push(Pu(u, p, Math.abs(d - t) < hm && r - v > hm + ? [ + t, Math.abs(l - t) < hm + ? h + : r + ] + : Math.abs(v - r) < hm && e - d > hm + ? [ + Math.abs(h - r) < hm + ? l + : e, + r + ] + : Math.abs(d - e) < hm && v - n > hm + ? [ + e, Math.abs(l - e) < hm + ? h + : n + ] + : Math.abs(v - n) < hm && d - t > hm + ? [ + Math.abs(h - n) < hm + ? l + : t, + n + ] + : null)) - 1), ++s); + s && (y = !1) + } + if (y) { + var g, + m, + x, + b = 1 / 0; + for (i = 0, y = null; i < _; ++i) + (o = am[i]) && (u = o.site, g = u[0] - t, m = u[1] - n, x = g * g + m * m, x < b && (b = x, y = o)); + if (y) { + var w = [ + t, n + ], + M = [ + t, r + ], + T = [ + e, r + ], + N = [e, n]; + y + .halfedges + .push(sm.push(Pu(u = y.site, w, M)) - 1, sm.push(Pu(u, M, T)) - 1, sm.push(Pu(u, T, N)) - 1, sm.push(Pu(u, N, w)) - 1) + } + } + for (i = 0; i < _; ++i) + (o = am[i]) && (o.halfedges.length || delete am[i]) + } + function ju() { + Su(this), + this.x = this.y = this.arc = this.site = this.cy = null + } + function Hu(t) { + var n = t.P, + e = t.N; + if (n && e) { + var r = n.site, + i = t.site, + o = e.site; + if (r !== o) { + var u = i[0], + a = i[1], + c = r[0] - u, + s = r[1] - a, + f = o[0] - u, + l = o[1] - a, + h = 2 * (c * l - s * f); + if (!(h >= -pm)) { + var p = c * c + s * s, + d = f * f + l * l, + v = (l * p - s * d) / h, + _ = (c * d - f * p) / h, + y = fm.pop() || new ju; + y.arc = t, + y.site = i, + y.x = v + u, + y.y = (y.cy = _ + a) + Math.sqrt(v * v + _ * _), + t.circle = y; + for (var g = null, m = cm._; m;) + if (y.y < m.y || y.y === m.y && y.x <= m.x) { + if (!m.L) { + g = m.P; + break + } + m = m.L + } + else { + if (!m.R) { + g = m; + break + } + m = m.R + } + cm.insert(g, y), + g || (om = y) + } + } + } + } + function Xu(t) { + var n = t.circle; + n && (n.P || (om = n.N), cm.remove(n), fm.push(n), Su(n), t.circle = null) + } + function Vu() { + Su(this), + this.edge = this.site = this.circle = null + } + function Wu(t) { + var n = lm.pop() || new Vu; + return n.site = t, + n + } + function $u(t) { + Xu(t), + um.remove(t), + lm.push(t), + Su(t) + } + function Zu(t) { + var n = t.circle, + e = n.x, + r = n.cy, + i = [ + e, r + ], + o = t.P, + u = t.N, + a = [t]; + $u(t); + for (var c = o; c.circle && Math.abs(e - c.circle.x) < hm && Math.abs(r - c.circle.cy) < hm;) + o = c.P, + a.unshift(c), + $u(c), + c = o; + a.unshift(c), + Xu(c); + for (var s = u; s.circle && Math.abs(e - s.circle.x) < hm && Math.abs(r - s.circle.cy) < hm;) + u = s.N, + a.push(s), + $u(s), + s = u; + a.push(s), + Xu(s); + var f, + l = a.length; + for (f = 1; f < l; ++f) + s = a[f], + c = a[f - 1], + qu(s.edge, c.site, s.site, i); + c = a[0], + s = a[l - 1], + s.edge = zu(c.site, s.site, null, i), + Hu(c), + Hu(s) + } + function Gu(t) { + for (var n, e, r, i, o = t[0], u = t[1], a = um._; a;) + if (r = Ju(a, u) - o, r > hm) + a = a.L; + else { + if (i = o - Qu(a, u), !(i > hm)) { + r > -hm + ? (n = a.P, e = a) + : i > -hm + ? (n = a, e = a.N) + : n = e = a; + break + } + if (!a.R) { + n = a; + break + } + a = a.R + } + Du(t); + var c = Wu(t); + if (um.insert(n, c), n || e) { + if (n === e) + return Xu(n), + e = Wu(n.site), + um.insert(c, e), + c.edge = e.edge = zu(n.site, c.site), + Hu(n), + void Hu(e); + if (!e) + return void(c.edge = zu(n.site, c.site)); + Xu(n), + Xu(e); + var s = n.site, + f = s[0], + l = s[1], + h = t[0] - f, + p = t[1] - l, + d = e.site, + v = d[0] - f, + _ = d[1] - l, + y = 2 * (h * _ - p * v), + g = h * h + p * p, + m = v * v + _ * _, + x = [ + (_ * g - p * m) / y + f, + (h * m - v * g) / y + l + ]; + qu(e.edge, s, d, x), + c.edge = zu(s, t, null, x), + e.edge = zu(t, d, null, x), + Hu(n), + Hu(e) + } + } + function Ju(t, n) { + var e = t.site, + r = e[0], + i = e[1], + o = i - n; + if (!o) + return r; + var u = t.P; + if (!u) + return -(1 / 0); + e = u.site; + var a = e[0], + c = e[1], + s = c - n; + if (!s) + return a; + var f = a - r, + l = 1 / o - 1 / s, + h = f / s; + return l + ? (-h + Math.sqrt(h * h - 2 * l * (f * f / (-2 * s) - c + s / 2 + i - o / 2))) / l + r + : (r + a) / 2 + } + function Qu(t, n) { + var e = t.N; + if (e) + return Ju(e, n); + var r = t.site; + return r[1] === n + ? r[0] + : 1 / 0 + } + function Ku(t, n, e) { + return (t[0] - e[0]) * (n[1] - t[1]) - (t[0] - n[0]) * (e[1] - t[1]) + } + function ta(t, n) { + return n[1] - t[1] || n[0] - t[0] + } + function na(t, n) { + var e, + r, + i, + o = t + .sort(ta) + .pop(); + for (sm = [], am = new Array(t.length), um = new ku, cm = new ku;;) + if (i = om, o && (!i || o[1] < i.y || o[1] === i.y && o[0] < i.x)) + o[0] === e && o[1] === r || (Gu(o), e = o[0], r = o[1]), + o = t.pop(); + else { + if (!i) + break; + Zu(i.arc) + } + if (Yu(), n) { + var u =+ n[0][0], + a =+ n[0][1], + c =+ n[1][0], + s =+ n[1][1]; + Uu(u, a, c, s), + Bu(u, a, c, s) + } + this.edges = sm, + this.cells = am, + um = cm = sm = am = null + } + function ea(t, n, e) { + this.target = t, + this.type = n, + this.transform = e + } + function ra(t, n, e) { + this.k = t, + this.x = n, + this.y = e + } + function ia(t) { + return t.__zoom || _m + } + function oa() { + t + .event + .stopImmediatePropagation() + } + function ua() { + return !t.event.button + } + function aa() { + var t, + n, + e = this; + return e instanceof SVGElement + ? (e = e.ownerSVGElement || e, t = e.width.baseVal.value, n = e.height.baseVal.value) + : (t = e.clientWidth, n = e.clientHeight), + [ + [ + 0, 0 + ], + [t, n] + ] + } + function ca() { + return this.__zoom || _m + } + function sa() { + t + .event + .stopImmediatePropagation() + } + function fa(t) { + return {type: t} + } + function la() { + return !t.event.button + } + function ha() { + var t = this.ownerSVGElement || this; + return [ + [ + 0, 0 + ], + [t.width.baseVal.value, t.height.baseVal.value] + ] + } + function pa(t) { + for (; !t.__brush;) + if (!(t = t.parentNode)) + return; + return t.__brush + } + function da(t) { + return t[0][0] === t[1][0] || t[0][1] === t[1][1] + } + function va(t) { + var n = t.__brush; + return n + ? n + .dim + .output(n.selection) + : null + } + function _a() { + return ga(km) + } + function ya() { + return ga(Sm) + } + function ga(n) { + function e(t) { + var e = t + .property("__brush", a) + .selectAll(".overlay") + .data([fa("overlay")]); + e + .enter() + .append("rect") + .attr("class", "overlay") + .attr("pointer-events", "all") + .attr("cursor", Em.overlay) + .merge(e) + .each(function () { + var t = pa(this).extent; + gy(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]) + }), + t + .selectAll(".selection") + .data([fa("selection")]) + .enter() + .append("rect") + .attr("class", "selection") + .attr("cursor", Em.selection) + .attr("fill", "#777") + .attr("fill-opacity", .3) + .attr("stroke", "#fff") + .attr("shape-rendering", "crispEdges"); + var i = t + .selectAll(".handle") + .data(n.handles, function (t) { + return t.type + }); + i + .exit() + .remove(), + i + .enter() + .append("rect") + .attr("class", function (t) { + return "handle handle--" + t.type + }) + .attr("cursor", function (t) { + return Em[t.type] + }), + t + .each(r) + .attr("fill", "none") + .attr("pointer-events", "all") + .style("-webkit-tap-highlight-color", "rgba(0,0,0,0)") + .on("mousedown.brush touchstart.brush", u) + } + function r() { + var t = gy(this), + n = pa(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] - h / 2 + : n[0][0] - h / 2 + }).attr("y", function (t) { + return "s" === t.type[0] + ? n[1][1] - h / 2 + : n[0][1] - h / 2 + }).attr("width", function (t) { + return "n" === t.type || "s" === t.type + ? n[1][0] - n[0][0] + h + : h + }).attr("height", function (t) { + return "e" === t.type || "w" === t.type + ? n[1][1] - n[0][1] + h + : h + })) + : t + .selectAll(".selection,.handle") + .style("display", "none") + .attr("x", null) + .attr("y", null) + .attr("width", null) + .attr("height", null) + } + function i(t, n) { + return t.__brush.emitter || new o(t, n) + } + function o(t, n) { + this.that = t, + this.args = n, + this.state = t.__brush, + this.active = 0 + } + function u() { + function e() { + var t = U_(T); + !U || w || M || (Math.abs(t[0] - O[0]) > Math.abs(t[1] - O[1]) + ? M = !0 + : w = !0), + O = t, + b = !0, + bm(), + o() + } + function o() { + var t; + switch (m = O[0] - D[0], x = O[1] - D[1], k) { + case Mm: + case wm: + S && (m = Math.max(P - l, Math.min(L - v, m)), h = l + m, _ = v + m), + A && (x = Math.max(q - p, Math.min(R - y, x)), d = p + x, g = y + x); + break; + case Tm: + S < 0 + ? (m = Math.max(P - l, Math.min(L - l, m)), h = l + m, _ = v) + : S > 0 && (m = Math.max(P - v, Math.min(L - v, m)), h = l, _ = v + m), + A < 0 + ? (x = Math.max(q - p, Math.min(R - p, x)), d = p + x, g = y) + : A > 0 && (x = Math.max(q - y, Math.min(R - y, x)), d = p, g = y + x); + break; + case Nm: + S && (h = Math.max(P, Math.min(L, l - m * S)), _ = Math.max(P, Math.min(L, v + m * S))), + A && (d = Math.max(q, Math.min(R, p - x * A)), g = Math.max(q, Math.min(R, y + x * A))) + } + _ < h && (S *= -1, t = l, l = v, v = t, t = h, h = _, _ = t, N in Cm && Y.attr("cursor", Em[N = Cm[N]])), + g < d && (A *= -1, t = p, p = y, y = t, t = d, d = g, g = t, N in zm && Y.attr("cursor", Em[N = zm[N]])), + E.selection && (z = E.selection), + w && (h = z[0][0], _ = z[1][0]), + M && (d = z[0][1], g = z[1][1]), + z[0][0] === h && z[0][1] === d && z[1][0] === _ && z[1][1] === g || (E.selection = [ + [ + h, d + ], + [_, g] + ], r.call(T), F.brush()) + } + function u() { + if (sa(), t.event.touches) { + if (t.event.touches.length) + return; + c && clearTimeout(c), + c = setTimeout(function () { + c = null + }, 500), + I.on("touchmove.brush touchend.brush touchcancel.brush", null) + } else + mu(t.event.view, b), + B.on("keydown.brush keyup.brush mousemove.brush mouseup.brush", null); + I.attr("pointer-events", "all"), + Y.attr("cursor", Em.overlay), + E.selection && (z = E.selection), + da(z) && (E.selection = null, r.call(T)), + F.end() + } + function a() { + switch (t.event.keyCode) { + case 16: + U = S && A; + break; + case 18: + k === Tm && (S && (v = _ - m * S, l = h + m * S), A && (y = g - x * A, p = d + x * A), k = Nm, o()); + break; + case 32: + k !== Tm && k !== Nm || (S < 0 + ? v = _ - m + : S > 0 && (l = h - m), A < 0 + ? y = g - x + : A > 0 && (p = d - x), k = Mm, Y.attr("cursor", Em.selection), o()); + break; + default: + return + } + bm() + } + function s() { + switch (t.event.keyCode) { + case 16: + U && (w = M = U = !1, o()); + break; + case 18: + k === Nm && (S < 0 + ? v = _ + : S > 0 && (l = h), A < 0 + ? y = g + : A > 0 && (p = d), k = Tm, o()); + break; + case 32: + k === Mm && (t.event.altKey + ? (S && (v = _ - m * S, l = h + m * S), A && (y = g - x * A, p = d + x * A), k = Nm) + : (S < 0 + ? v = _ + : S > 0 && (l = h), A < 0 + ? y = g + : A > 0 && (p = d), k = Tm), Y.attr("cursor", Em[N]), o()); + break; + default: + return + } + bm() + } + if (t.event.touches) { + if (t.event.changedTouches.length < t.event.touches.length) + return bm() + } else if (c) + return; + if (f.apply(this, arguments)) { + var l, + h, + p, + d, + v, + _, + y, + g, + m, + x, + b, + w, + M, + T = this, + N = t.event.target.__data__.type, + k = "selection" === (t.event.metaKey + ? N = "overlay" + : N) + ? wm + : t.event.altKey + ? Nm + : Tm, + S = n === Sm + ? null + : Pm[N], + A = n === km + ? null + : qm[N], + E = pa(T), + C = E.extent, + z = E.selection, + P = C[0][0], + q = C[0][1], + L = C[1][0], + R = C[1][1], + U = S && A && t.event.shiftKey, + D = U_(T), + O = D, + F = i(T, arguments).beforestart(); + "overlay" === N + ? E.selection = z = [ + [ + l = n === Sm + ? P + : D[0], + p = n === km + ? q + : D[1] + ], + [ + v = n === Sm + ? L + : l, + y = n === km + ? R + : p + ] + ] + : (l = z[0][0], p = z[0][1], v = z[1][0], y = z[1][1]), + h = l, + d = p, + _ = v, + g = y; + var I = gy(T).attr("pointer-events", "none"), + Y = I + .selectAll(".overlay") + .attr("cursor", Em[N]); + if (t.event.touches) + I.on("touchmove.brush", e, !0).on("touchend.brush touchcancel.brush", u, !0); + else { + var B = gy(t.event.view) + .on("keydown.brush", a, !0) + .on("keyup.brush", s, !0) + .on("mousemove.brush", e, !0) + .on("mouseup.brush", u, !0); + nm(t.event.view) + } + sa(), + Py(T), + r.call(T), + F.start() + } + } + function a() { + var t = this.__brush || { + selection: null + }; + return t.extent = s.apply(this, arguments), + t.dim = n, + t + } + var c, + s = ha, + f = la, + l = Pn(e, "start", "brush", "end"), + h = 6; + return e.move = function (t, e) { + t.selection + ? t.on("start.brush", function () { + i(this, arguments) + .beforestart() + .start() + }) + .on("interrupt.brush end.brush", function () { + i(this, arguments).end() + }) + .tween("brush", function () { + function t(t) { + u.selection = 1 === t && da(s) + ? null + : f(t), + r.call(o), + a.brush() + } + var o = this, + u = o.__brush, + a = i(o, arguments), + c = u.selection, + s = n.input("function" == typeof e + ? e.apply(this, arguments) + : e, u.extent), + f = _p(c, s); + return c && s + ? t + : t(1) + }) + : t.each(function () { + var t = this, + o = arguments, + u = t.__brush, + a = n.input("function" == typeof e + ? e.apply(t, o) + : e, u.extent), + c = i(t, o).beforestart(); + Py(t), + u.selection = null == a || da(a) + ? null + : a, + r.call(t), + c + .start() + .brush() + .end() + }) + }, + o.prototype = { + beforestart: function () { + return 1 === ++this.active && (this.state.emitter = this, this.starting = !0), + this + }, + start: function () { + return this.starting && (this.starting = !1, this.emit("start")), + this + }, + brush: function () { + return this.emit("brush"), + this + }, + end: function () { + return 0 === --this.active && (delete this.state.emitter, this.emit("end")), + this + }, + emit: function (t) { + Xr(new xm(e, t, n.output(this.state.selection)), l.apply, l, [t, this.that, this.args]) + } + }, + e.extent = function (t) { + return arguments.length + ? (s = "function" == typeof t + ? t + : mm([ + [ + t[0][0], + t[0][1] + ], + [ + t[1][0], + t[1][1] + ] + ]), e) + : s + }, + e.filter = function (t) { + return arguments.length + ? (f = "function" == typeof t + ? t + : mm(!!t), e) + : f + }, + e.handleSize = function (t) { + return arguments.length + ? (h =+ t, e) + : h + }, + e.on = function () { + var t = l + .on + .apply(l, arguments); + return t === l + ? e + : t + }, + e + } + function ma(t) { + return function (n, e) { + return t(n.source.value + n.target.value, e.source.value + e.target.value) + } + } + function xa(t) { + return t.source + } + function ba(t) { + return t.target + } + function wa(t) { + return t.radius + } + function Ma(t) { + return t.startAngle + } + function Ta(t) { + return t.endAngle + } + function Na() { + this.reset() + } + function ka(t, n, e) { + var r = t.s = n + e, + i = r - n, + o = r - i; + t.t = n - o + (e - i) + } + function Sa(t) { + return t > 1 + ? 0 + : t < -1 + ? kx + : Math.acos(t) + } + function Aa(t) { + return t > 1 + ? Sx + : t < -1 + ? -Sx + : Math.asin(t) + } + function Ea(t) { + return (t = Ix(t / 2)) * t + } + function Ca() {} + function za(t, n) { + t && Xx.hasOwnProperty(t.type) && Xx[t.type](t, n) + } + function Pa(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 qa(t, n) { + var e = -1, + r = t.length; + for (n.polygonStart(); ++e < r;) + Pa(t[e], n, 1); + n.polygonEnd() + } + function La() { + Zx.point = Ua + } + function Ra() { + Da(Vm, Wm) + } + function Ua(t, n) { + Zx.point = Da, + Vm = t, + Wm = n, + t *= zx, + n *= zx, + $m = t, + Zm = Rx(n = n / 2 + Ax), + Gm = Ix(n) + } + function Da(t, n) { + t *= zx, + n *= zx, + n = n / 2 + Ax; + var e = t - $m, + r = e >= 0 + ? 1 + : -1, + i = r * e, + o = Rx(n), + u = Ix(n), + a = Gm * u, + c = Zm * o + a * Rx(i), + s = a * r * Ix(i); + Wx.add(Lx(s, c)), + $m = t, + Zm = o, + Gm = u + } + function Oa(t) { + return [ + Lx(t[1], t[0]), + Aa(t[2]) + ] + } + function Fa(t) { + var n = t[0], + e = t[1], + r = Rx(e); + return [ + r * Rx(n), + r * Ix(n), + Ix(e) + ] + } + function Ia(t, n) { + return t[0] * n[0] + t[1] * n[1] + t[2] * n[2] + } + function Ya(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 Ba(t, n) { + t[0] += n[0], + t[1] += n[1], + t[2] += n[2] + } + function ja(t, n) { + return [ + t[0] * n, + t[1] * n, + t[2] * n + ] + } + function Ha(t) { + var n = Bx(t[0] * t[0] + t[1] * t[1] + t[2] * t[2]); + t[0] /= n, + t[1] /= n, + t[2] /= n + } + function Xa(t, n) { + ox.push(ux = [ + Jm = t, + Km = t + ]), + n < Qm && (Qm = n), + n > tx && (tx = n) + } + function Va(t, n) { + var e = Fa([ + t * zx, + n * zx + ]); + if (ix) { + var r = Ya(ix, e), + i = [ + r[1], -r[0], + 0 + ], + o = Ya(i, r); + Ha(o), + o = Oa(o); + var u, + a = t - nx, + c = a > 0 + ? 1 + : -1, + s = o[0] * Cx * c, + f = Px(a) > 180; + f ^ (c * nx < s && s < c * t) + ? (u = o[1] * Cx, u > tx && (tx = u)) + : (s = (s + 360) % 360 - 180, f ^ (c * nx < s && s < c * t) + ? (u = -o[1] * Cx, u < Qm && (Qm = u)) + : (n < Qm && (Qm = n), n > tx && (tx = n))), + f + ? t < nx + ? Qa(Jm, t) > Qa(Jm, Km) && (Km = t) + : Qa(t, Km) > Qa(Jm, Km) && (Jm = t) + : Km >= Jm + ? (t < Jm && (Jm = t), t > Km && (Km = t)) + : t > nx + ? Qa(Jm, t) > Qa(Jm, Km) && (Km = t) + : Qa(t, Km) > Qa(Jm, Km) && (Jm = t) + } else + Xa(t, n); + ix = e, + nx = t + } + function Wa() { + Qx.point = Va + } + function $a() { + ux[0] = Jm, + ux[1] = Km, + Qx.point = Xa, + ix = null + } + function Za(t, n) { + if (ix) { + var e = t - nx; + Jx.add(Px(e) > 180 + ? e + (e > 0 + ? 360 + : -360) + : e) + } else + ex = t, + rx = n; + Zx.point(t, n), + Va(t, n) + } + function Ga() { + Zx.lineStart() + } + function Ja() { + Za(ex, rx), + Zx.lineEnd(), + Px(Jx) > Tx && (Jm = -(Km = 180)), + ux[0] = Jm, + ux[1] = Km, + ix = null + } + function Qa(t, n) { + return (n -= t) < 0 + ? n + 360 + : n + } + function Ka(t, n) { + return t[0] - n[0] + } + function tc(t, n) { + return t[0] <= t[1] + ? t[0] <= n && n <= t[1] + : n < t[0] || t[1] < n + } + function nc(t, n) { + t *= zx, + n *= zx; + var e = Rx(n); + ec(e * Rx(t), e * Ix(t), Ix(n)) + } + function ec(t, n, e) { + ++ax, + sx += (t - sx) / ax, + fx += (n - fx) / ax, + lx += (e - lx) / ax + } + function rc() { + tb.point = ic + } + function ic(t, n) { + t *= zx, + n *= zx; + var e = Rx(n); + xx = e * Rx(t), + bx = e * Ix(t), + wx = Ix(n), + tb.point = oc, + ec(xx, bx, wx) + } + function oc(t, n) { + t *= zx, + n *= zx; + var e = Rx(n), + r = e * Rx(t), + i = e * Ix(t), + o = Ix(n), + u = Lx(Bx((u = bx * o - wx * i) * u + (u = wx * r - xx * o) * u + (u = xx * i - bx * r) * u), xx * r + bx * i + wx * o); + cx += u, + hx += u * (xx + (xx = r)), + px += u * (bx + (bx = i)), + dx += u * (wx + (wx = o)), + ec(xx, bx, wx) + } + function uc() { + tb.point = nc + } + function ac() { + tb.point = sc + } + function cc() { + fc(gx, mx), + tb.point = nc + } + function sc(t, n) { + gx = t, + mx = n, + t *= zx, + n *= zx, + tb.point = fc; + var e = Rx(n); + xx = e * Rx(t), + bx = e * Ix(t), + wx = Ix(n), + ec(xx, bx, wx) + } + function fc(t, n) { + t *= zx, + n *= zx; + var e = Rx(n), + r = e * Rx(t), + i = e * Ix(t), + o = Ix(n), + u = bx * o - wx * i, + a = wx * r - xx * o, + c = xx * i - bx * r, + s = Bx(u * u + a * a + c * c), + f = xx * r + bx * i + wx * o, + l = s && -Sa(f) / s, + h = Lx(s, f); + vx += l * u, + _x += l * a, + yx += l * c, + cx += h, + hx += h * (xx + (xx = r)), + px += h * (bx + (bx = i)), + dx += h * (wx + (wx = o)), + ec(xx, bx, wx) + } + function lc(t, n) { + return [ + t > kx + ? t - Ex + : t < -kx + ? t + Ex + : t, + n + ] + } + function hc(t, n, e) { + return (t %= Ex) + ? n || e + ? rb(dc(t), vc(n, e)) + : dc(t) + : n || e + ? vc(n, e) + : lc + } + function pc(t) { + return function (n, e) { + return n += t, + [ + n > kx + ? n - Ex + : n < -kx + ? n + Ex + : n, + e + ] + } + } + function dc(t) { + var n = pc(t); + return n.invert = pc(-t), + n + } + function vc(t, n) { + function e(t, n) { + var e = Rx(n), + a = Rx(t) * e, + c = Ix(t) * e, + s = Ix(n), + f = s * r + a * i; + return [ + Lx(c * o - f * u, a * r - s * i), + Aa(f * o + c * u) + ] + } + var r = Rx(t), + i = Ix(t), + o = Rx(n), + u = Ix(n); + return e.invert = function (t, n) { + var e = Rx(n), + a = Rx(t) * e, + c = Ix(t) * e, + s = Ix(n), + f = s * o - c * u; + return [ + Lx(c * o + s * u, a * r + f * i), + Aa(f * r - a * i) + ] + }, + e + } + function _c(t, n, e, r, i, o) { + if (e) { + var u = Rx(n), + a = Ix(n), + c = r * e; + null == i + ? (i = n + r * Ex, o = n - c / 2) + : (i = yc(u, i), o = yc(u, o), (r > 0 + ? i < o + : i > o) && (i += r * Ex)); + for (var s, f = i; r > 0 + ? f > o + : f < o; f -= c) + s = Oa([ + u, -a * Rx(f), -a * Ix(f) + ]), + t.point(s[0], s[1]) + } + } + function yc(t, n) { + n = Fa(n), + n[0] -= t, + Ha(n); + var e = Sa(-n[1]); + return ((-n[2] < 0 + ? -e + : e) + Ex - Tx) % Ex + } + function gc(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 mc(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 xc(t, n, e, r) { + function i(i, o) { + return t <= i && i <= e && n <= o && o <= r + } + function o(i, o, a, s) { + var f = 0, + l = 0; + if (null == i || (f = u(i, a)) !== (l = u(o, a)) || c(i, o) < 0 ^ a > 0) { + do + s.point(0 === f || 3 === f + ? t + : e, f > 1 + ? r + : n); + while ((f = (f + a + 4) % 4) !== l) + } else + s.point(o[0], o[1]) + } + function u(r, i) { + return Px(r[0] - t) < Tx + ? i > 0 + ? 0 + : 3 + : Px(r[0] - e) < Tx + ? i > 0 + ? 2 + : 1 + : Px(r[1] - n) < Tx + ? i > 0 + ? 1 + : 0 + : i > 0 + ? 3 + : 2 + } + function a(t, n) { + return c(t.x, n.x) + } + function c(t, n) { + var e = u(t, 1), + r = u(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 (u) { + function c(t, n) { + i(t, n) && k.point(t, n) + } + function s() { + for (var n = 0, e = 0, i = _.length; e < i; ++e) + for (var o, u, a = _[e], c = 1, s = a.length, f = a[0], l = f[0], h = f[1]; c < s; ++c) + o = l, + u = h, + f = a[c], + l = f[0], + h = f[1], + u <= r + ? h > r && (l - o) * (r - u) > (h - u) * (t - o) && ++n + : h <= r && (l - o) * (r - u) < (h - u) * (t - o) && --n; + return n + } + function f() { + k = S, + v = [], + _ = [], + N = !0 + } + function l() { + var t = s(), + n = N && t, + e = (v = Js(v)).length; + (n || e) && (u.polygonStart(), n && (u.lineStart(), o(null, null, 1, u), u.lineEnd()), e && xb(v, a, t, o, u), u.polygonEnd()), + k = u, + v = _ = y = null + } + function h() { + A.point = d, + _ && _.push(y = []), + T = !0, + M = !1, + b = w = NaN + } + function p() { + v && (d(g, m), x && M && S.rejoin(), v.push(S.result())), + A.point = c, + M && k.lineEnd() + } + function d(o, u) { + var a = i(o, u); + if (_ && y.push([o, u]), T) + g = o, + m = u, + x = a, + T = !1, + a && (k.lineStart(), k.point(o, u)); + else if (a && M) + k.point(o, u); + else { + var c = [ + b = Math.max(wb, Math.min(bb, b)), + w = Math.max(wb, Math.min(bb, w)) + ], + s = [ + o = Math.max(wb, Math.min(bb, o)), + u = Math.max(wb, Math.min(bb, u)) + ]; + gb(c, s, t, n, e, r) + ? (M || (k.lineStart(), k.point(c[0], c[1])), k.point(s[0], s[1]), a || k.lineEnd(), N = !1) + : a && (k.lineStart(), k.point(o, u), N = !1) + } + b = o, + w = u, + M = a + } + var v, + _, + y, + g, + m, + x, + b, + w, + M, + T, + N, + k = u, + S = yb(), + A = { + point: c, + lineStart: h, + lineEnd: p, + polygonStart: f, + polygonEnd: l + }; + return A + } + } + function bc() { + Nb.point = Mc, + Nb.lineEnd = wc + } + function wc() { + Nb.point = Nb.lineEnd = Ca + } + function Mc(t, n) { + t *= zx, + n *= zx, + ib = t, + ob = Ix(n), + ub = Rx(n), + Nb.point = Tc + } + function Tc(t, n) { + t *= zx, + n *= zx; + var e = Ix(n), + r = Rx(n), + i = Px(t - ib), + o = Rx(i), + u = Ix(i), + a = r * u, + c = ub * e - ob * r * o, + s = ob * e + ub * r * o; + Tb.add(Lx(Bx(a * a + c * c), s)), + ib = t, + ob = e, + ub = r + } + function Nc(t, n, e) { + var r = Os(t, n - Tx, e).concat(n); + return function (t) { + return r.map(function (n) { + return [t, n] + }) + } + } + function kc(t, n, e) { + var r = Os(t, n - Tx, e).concat(n); + return function (t) { + return r.map(function (n) { + return [n, t] + }) + } + } + function Sc() { + function t() { + return {type: "MultiLineString", coordinates: n()} + } + function n() { + return Os(Ux(o / _) * _, i, _) + .map(h) + .concat(Os(Ux(s / y) * y, c, y).map(p)) + .concat(Os(Ux(r / d) * d, e, d).filter(function (t) { + return Px(t % _) > Tx + }).map(f)) + .concat(Os(Ux(a / v) * v, u, v).filter(function (t) { + return Px(t % y) > Tx + }).map(l)) + } + var e, + r, + i, + o, + u, + a, + c, + s, + f, + l, + h, + p, + d = 10, + v = d, + _ = 90, + y = 360, + g = 2.5; + return t.lines = function () { + return n().map(function (t) { + return {type: "LineString", coordinates: t} + }) + }, + t.outline = function () { + return { + type: "Polygon", + coordinates: [h(o).concat(p(c).slice(1), h(i).reverse().slice(1), p(s).reverse().slice(1))] + } + }, + t.extent = function (n) { + return arguments.length + ? t + .extentMajor(n) + .extentMinor(n) + : t.extentMinor() + }, + t.extentMajor = function (n) { + return arguments.length + ? (o =+ n[0][0], i =+ n[1][0], s =+ n[0][1], c =+ n[1][1], o > i && (n = o, o = i, i = n), s > c && (n = s, s = c, c = n), t.precision(g)) + : [ + [ + o, s + ], + [i, c] + ] + }, + t.extentMinor = function (n) { + return arguments.length + ? (r =+ n[0][0], e =+ n[1][0], a =+ n[0][1], u =+ n[1][1], r > e && (n = r, r = e, e = n), a > u && (n = a, a = u, u = n), t.precision(g)) + : [ + [ + r, a + ], + [e, u] + ] + }, + t.step = function (n) { + return arguments.length + ? t + .stepMajor(n) + .stepMinor(n) + : t.stepMinor() + }, + t.stepMajor = function (n) { + return arguments.length + ? (_ =+ n[0], y =+ n[1], t) + : [_, y] + }, + t.stepMinor = function (n) { + return arguments.length + ? (d =+ n[0], v =+ n[1], t) + : [d, v] + }, + t.precision = function (n) { + return arguments.length + ? (g =+ n, f = Nc(a, u, 90), l = kc(r, e, g), h = Nc(s, c, 90), p = kc(o, i, g), t) + : g + }, + t.extentMajor([ + [ + -180, -90 + Tx + ], + [ + 180, 90 - Tx + ] + ]).extentMinor([ + [ + -180, -80 - Tx + ], + [ + 180, 80 + Tx + ] + ]) + } + function Ac() { + return Sc()() + } + function Ec() { + Lb.point = Cc + } + function Cc(t, n) { + Lb.point = zc, + ab = sb = t, + cb = fb = n + } + function zc(t, n) { + qb.add(fb * t - sb * n), + sb = t, + fb = n + } + function Pc() { + zc(ab, cb) + } + function qc(t, n) { + t < Rb && (Rb = t), + t > Db && (Db = t), + n < Ub && (Ub = n), + n > Ob && (Ob = n) + } + function Lc(t, n) { + Ib += t, + Yb += n, + ++Bb + } + function Rc() { + Zb.point = Uc + } + function Uc(t, n) { + Zb.point = Dc, + Lc(pb = t, db = n) + } + function Dc(t, n) { + var e = t - pb, + r = n - db, + i = Bx(e * e + r * r); + jb += i * (pb + t) / 2, + Hb += i * (db + n) / 2, + Xb += i, + Lc(pb = t, db = n) + } + function Oc() { + Zb.point = Lc + } + function Fc() { + Zb.point = Yc + } + function Ic() { + Bc(lb, hb) + } + function Yc(t, n) { + Zb.point = Bc, + Lc(lb = pb = t, hb = db = n) + } + function Bc(t, n) { + var e = t - pb, + r = n - db, + i = Bx(e * e + r * r); + jb += i * (pb + t) / 2, + Hb += i * (db + n) / 2, + Xb += i, + i = db * t - pb * n, + Vb += i * (pb + t), + Wb += i * (db + n), + $b += 3 * i, + Lc(pb = t, db = n) + } + function jc(t) { + this._context = t + } + function Hc() { + this._string = [] + } + function Xc(t) { + return "m0," + t + "a" + t + "," + t + " 0 1,1 0," + -2 * t + "a" + t + "," + t + " 0 1,1 0," + 2 * t + "z" + } + function Vc(t) { + return t.length > 1 + } + function Wc(t, n) { + return ((t = t.x)[0] < 0 + ? t[1] - Sx - Tx + : Sx - t[1]) - ((n = n.x)[0] < 0 + ? n[1] - Sx - Tx + : Sx - n[1]) + } + function $c(t) { + var n, + e = NaN, + r = NaN, + i = NaN; + return { + lineStart: function () { + t.lineStart(), + n = 1 + }, + point: function (o, u) { + var a = o > 0 + ? kx + : -kx, + c = Px(o - e); + Px(c - kx) < Tx + ? (t.point(e, r = (r + u) / 2 > 0 + ? Sx + : -Sx), t.point(i, r), t.lineEnd(), t.lineStart(), t.point(a, r), t.point(o, r), n = 0) + : i !== a && c >= kx && (Px(e - i) < Tx && (e -= i * Tx), Px(o - a) < Tx && (o -= a * Tx), r = Zc(e, r, o, u), t.point(i, r), t.lineEnd(), t.lineStart(), t.point(a, r), n = 0), + t.point(e = o, r = u), + i = a + }, + lineEnd: function () { + t.lineEnd(), + e = r = NaN + }, + clean: function () { + return 2 - n + } + } + } + function Zc(t, n, e, r) { + var i, + o, + u = Ix(t - e); + return Px(u) > Tx + ? qx((Ix(n) * (o = Rx(r)) * Ix(e) - Ix(r) * (i = Rx(n)) * Ix(t)) / (i * o * u)) + : (n + r) / 2 + } + function Gc(t, n, e, r) { + var i; + if (null == t) + i = e * Sx, + r.point(-kx, i), + r.point(0, i), + r.point(kx, i), + r.point(kx, 0), + r.point(kx, -i), + r.point(0, -i), + r.point(-kx, -i), + r.point(-kx, 0), + r.point(-kx, i); + else if (Px(t[0] - n[0]) > Tx) { + var o = t[0] < n[0] + ? kx + : -kx; + i = e * o / 2, + r.point(-o, i), + r.point(0, i), + r.point(o, i) + } else + r.point(n[0], n[1]) + } + function Jc(t) { + return function (n) { + var e = new Qc; + for (var r in t) + e[r] = t[r]; + return e.stream = n, + e + } + } + function Qc() {} + function Kc(t, n, e) { + var r = n[1][0] - n[0][0], + i = n[1][1] - n[0][1], + o = t.clipExtent && t.clipExtent(); + t + .scale(150) + .translate([0, 0]), + null != o && t.clipExtent(null), + Vx(e, t.stream(Fb)); + var u = Fb.result(), + a = Math.min(r / (u[1][0] - u[0][0]), i / (u[1][1] - u[0][1])), + c =+ n[0][0] + (r - a * (u[1][0] + u[0][0])) / 2, + s =+ n[0][1] + (i - a * (u[1][1] + u[0][1])) / 2; + return null != o && t.clipExtent(o), + t + .scale(150 * a) + .translate([c, s]) + } + function ts(t, n, e) { + return Kc(t, [ + [ + 0, 0 + ], + n + ], e) + } + function ns(t) { + return Jc({ + point: function (n, e) { + n = t(n, e), + this + .stream + .point(n[0], n[1]) + } + }) + } + function es(t, n) { + function e(r, i, o, u, a, c, s, f, l, h, p, d, v, _) { + var y = s - r, + g = f - i, + m = y * y + g * g; + if (m > 4 * n && v--) { + var x = u + h, + b = a + p, + w = c + d, + M = Bx(x * x + b * b + w * w), + T = Aa(w /= M), + N = Px(Px(w) - 1) < Tx || Px(o - l) < Tx + ? (o + l) / 2 + : Lx(b, x), + k = t(N, T), + S = k[0], + A = k[1], + E = S - r, + C = A - i, + z = g * E - y * C; + (z * z / m > n || Px((y * E + g * C) / m - .5) > .3 || u * h + a * p + c * d < iw) && (e(r, i, o, u, a, c, S, A, N, x /= M, b /= M, w, v, _), _.point(S, A), e(S, A, N, x, b, w, s, f, l, h, p, d, v, _)) + } + } + return function (n) { + function r(e, r) { + e = t(e, r), + n.point(e[0], e[1]) + } + function i() { + y = NaN, + w.point = o, + n.lineStart() + } + function o(r, i) { + var o = Fa([r, i]), + u = t(r, i); + e(y, g, _, m, x, b, y = u[0], g = u[1], _ = r, m = o[0], x = o[1], b = o[2], rw, n), + n.point(y, g) + } + function u() { + w.point = r, + n.lineEnd() + } + function a() { + i(), + w.point = c, + w.lineEnd = s + } + function c(t, n) { + o(f = t, n), + l = y, + h = g, + p = m, + d = x, + v = b, + w.point = o + } + function s() { + e(y, g, _, m, x, b, l, h, f, p, d, v, rw, n), + w.lineEnd = u, + u() + } + var f, + l, + h, + p, + d, + v, + _, + y, + g, + m, + x, + b, + w = { + point: r, + lineStart: i, + lineEnd: u, + polygonStart: function () { + n.polygonStart(), + w.lineStart = a + }, + polygonEnd: function () { + n.polygonEnd(), + w.lineStart = i + } + }; + return w + } + } + function rs(t) { + return is(function () { + return t + })() + } + function is(t) { + function n(t) { + return t = f(t[0] * zx, t[1] * zx), + [ + t[0] * _ + a, + c - t[1] * _ + ] + } + function e(t) { + return t = f.invert((t[0] - a) / _, (c - t[1]) / _), + t && [ + t[0] * Cx, + t[1] * Cx + ] + } + function r(t, n) { + return t = u(t, n), + [ + t[0] * _ + a, + c - t[1] * _ + ] + } + function i() { + f = rb(s = hc(b, w, M), u); + var t = u(m, x); + return a = y - t[0] * _, + c = g + t[1] * _, + o() + } + function o() { + return d = v = null, + n + } + var u, + a, + c, + s, + f, + l, + h, + p, + d, + v, + _ = 150, + y = 480, + g = 250, + m = 0, + x = 0, + b = 0, + w = 0, + M = 0, + T = null, + N = tw, + k = null, + S = zb, + A = .5, + E = ow(r, A); + return n.stream = function (t) { + return d && v === t + ? d + : d = uw(N(s, E(S(v = t)))) + }, + n.clipAngle = function (t) { + return arguments.length + ? (N =+ t + ? nw(T = t * zx, 6 * zx) + : (T = null, tw), o()) + : T * Cx + }, + n.clipExtent = function (t) { + return arguments.length + ? (S = null == t + ? (k = l = h = p = null, zb) + : xc(k =+ t[0][0], l =+ t[0][1], h =+ t[1][0], p =+ t[1][1]), o()) + : null == k + ? null + : [ + [ + k, l + ], + [h, p] + ] + }, + n.scale = function (t) { + return arguments.length + ? (_ =+ t, i()) + : _ + }, + n.translate = function (t) { + return arguments.length + ? (y =+ t[0], g =+ t[1], i()) + : [y, g] + }, + n.center = function (t) { + return arguments.length + ? (m = t[0] % 360 * zx, x = t[1] % 360 * zx, i()) + : [ + m * Cx, + x * Cx + ] + }, + n.rotate = function (t) { + return arguments.length + ? (b = t[0] % 360 * zx, w = t[1] % 360 * zx, M = t.length > 2 + ? t[2] % 360 * zx + : 0, i()) + : [ + b * Cx, + w * Cx, + M * Cx + ] + }, + n.precision = function (t) { + return arguments.length + ? (E = ow(r, A = t * t), o()) + : Bx(A) + }, + n.fitExtent = function (t, e) { + return Kc(n, t, e) + }, + n.fitSize = function (t, e) { + return ts(n, t, e) + }, + function () { + return u = t.apply(this, arguments), + n.invert = u.invert && e, + i() + } + } + function os(t) { + var n = 0, + e = kx / 3, + r = is(t), + i = r(n, e); + return i.parallels = function (t) { + return arguments.length + ? r(n = t[0] * zx, e = t[1] * zx) + : [ + n * Cx, + e * Cx + ] + }, + i + } + function us(t) { + function n(t, n) { + return [ + t * e, + Ix(n) / e + ] + } + var e = Rx(t); + return n.invert = function (t, n) { + return [ + t / e, + Aa(n * e) + ] + }, + n + } + function as(t, n) { + function e(t, n) { + var e = Bx(o - 2 * i * Ix(n)) / i; + return [ + e * Ix(t *= i), + u - e * Rx(t) + ] + } + var r = Ix(t), + i = (r + Ix(n)) / 2; + if (Px(i) < Tx) + return us(t); + var o = 1 + r * (2 * i - r), + u = Bx(o) / i; + return e.invert = function (t, n) { + var e = u - n; + return [ + Lx(t, Px(e)) / i * Yx(e), + Aa((o - (t * t + e * e) * i * i) / (2 * i)) + ] + }, + e + } + function cs(t) { + var n = t.length; + return { + point: function (e, r) { + for (var i = -1; ++i < n;) + t[i].point(e, r) + }, + sphere: function () { + for (var e = -1; ++e < n;) + t[e].sphere() + }, + lineStart: function () { + for (var e = -1; ++e < n;) + t[e].lineStart() + }, + lineEnd: function () { + for (var e = -1; ++e < n;) + t[e].lineEnd() + }, + polygonStart: function () { + for (var e = -1; ++e < n;) + t[e].polygonStart() + }, + polygonEnd: function () { + for (var e = -1; ++e < n;) + t[e].polygonEnd() + } + } + } + function ss(t) { + return function (n, e) { + var r = Rx(n), + i = Rx(e), + o = t(r * i); + return [ + o * i * Ix(n), + o * Ix(e) + ] + } + } + function fs(t) { + return function (n, e) { + var r = Bx(n * n + e * e), + i = t(r), + o = Ix(i), + u = Rx(i); + return [ + Lx(n * o, r * u), + Aa(r && e * o / r) + ] + } + } + function ls(t, n) { + return [ + t, + Ox(jx((Sx + n) / 2)) + ] + } + function hs(t) { + var n, + e = rs(t), + r = e.scale, + i = e.translate, + o = e.clipExtent; + return e.scale = function (t) { + return arguments.length + ? (r(t), n && e.clipExtent(null), e) + : r() + }, + e.translate = function (t) { + return arguments.length + ? (i(t), n && e.clipExtent(null), e) + : i() + }, + e.clipExtent = function (t) { + if (!arguments.length) + return n + ? null + : o(); + if (n = null == t) { + var u = kx * r(), + a = i(); + t = [ + [ + a[0] - u, + a[1] - u + ], + [ + a[0] + u, + a[1] + u + ] + ] + } + return o(t), + e + }, + e.clipExtent(null) + } + function ps(t) { + return jx((Sx + t) / 2) + } + function ds(t, n) { + function e(t, n) { + o > 0 + ? n < -Sx + Tx && (n = -Sx + Tx) + : n > Sx - Tx && (n = Sx - Tx); + var e = o / Fx(ps(n), i); + return [ + e * Ix(i * t), + o - e * Rx(i * t) + ] + } + var r = Rx(t), + i = t === n + ? Ix(t) + : Ox(r / Rx(n)) / Ox(ps(n) / ps(t)), + o = r * Fx(ps(t), i) / i; + return i + ? (e.invert = function (t, n) { + var e = o - n, + r = Yx(i) * Bx(t * t + e * e); + return [ + Lx(t, Px(e)) / i * Yx(e), + 2 * qx(Fx(o / r, 1 / i)) - Sx + ] + }, + e) + : ls + } + function vs(t, n) { + return [t, n] + } + function _s(t, n) { + function e(t, n) { + var e = o - n, + r = i * t; + return [ + e * Ix(r), + o - e * Rx(r) + ] + } + var r = Rx(t), + i = t === n + ? Ix(t) + : (r - Rx(n)) / (n - t), + o = r / i + t; + return Px(i) < Tx + ? vs + : (e.invert = function (t, n) { + var e = o - n; + return [ + Lx(t, Px(e)) / i * Yx(e), + o - Yx(i) * Bx(t * t + e * e) + ] + }, + e) + } + function ys(t, n) { + var e = Rx(n), + r = Rx(t) * e; + return [ + e * Ix(t) / r, + Ix(n) / r + ] + } + function gs(t, n, e) { + return 1 === t && 0 === n && 0 === e + ? zb + : Jc({ + point: function (r, i) { + this + .stream + .point(r * t + n, i * t + e) + } + }) + } + function ms(t, n) { + return [ + Rx(n) * Ix(t), + Ix(n) + ] + } + function xs(t, n) { + var e = Rx(n), + r = 1 + Rx(t) * e; + return [ + e * Ix(t) / r, + Ix(n) / r + ] + } + function bs(t, n) { + return [ + Ox(jx((Sx + n) / 2)), -t + ] + } + var ws = "4.3.0", + Ms = function (t, n) { + return t < n + ? -1 + : t > n + ? 1 + : t >= n + ? 0 + : NaN + }, + Ts = function (t) { + return 1 === t.length && (t = n(t)), { + left: function (n, e, r, i) { + for (null == r && (r = 0), null == i && (i = n.length); r < i;) { + var o = r + i >>> 1; + t(n[o], e) < 0 + ? r = o + 1 + : i = o + } + return r + }, + right: function (n, e, r, i) { + for (null == r && (r = 0), null == i && (i = n.length); r < i;) { + var o = r + i >>> 1; + t(n[o], e) > 0 + ? i = o + : r = o + 1 + } + return r + } + } + }, + Ns = Ts(Ms), + ks = Ns.right, + Ss = Ns.left, + As = function (t, n) { + return n < t + ? -1 + : n > t + ? 1 + : n >= t + ? 0 + : NaN + }, + Es = function (t) { + return null === t + ? NaN :+ t + }, + Cs = function (t, n) { + var e, + r, + i = t.length, + o = 0, + u = 0, + a = -1, + c = 0; + if (null == n) + for (; ++a < i;) + isNaN(e = Es(t[a])) || (r = e - o, o += r / ++c, u += r * (e - o)); + else + for (; ++a < i;) + isNaN(e = Es(n(t[a], a, t))) || (r = e - o, o += r / ++c, u += r * (e - o)); + if (c > 1) + return u / (c - 1) + }, + zs = function (t, n) { + var e = Cs(t, n); + return e + ? Math.sqrt(e) + : e + }, + Ps = function (t, n) { + var e, + r, + i, + o = -1, + u = t.length; + if (null == n) { + for (; ++o < u;) + if (null != (r = t[o]) && r >= r) { + e = i = r; + break + } + for (; ++o < u;) + null != (r = t[o]) && (e > r && (e = r), i < r && (i = r)) + } else { + for (; ++o < u;) + if (null != (r = n(t[o], o, t)) && r >= r) { + e = i = r; + break + } + for (; ++o < u;) + null != (r = n(t[o], o, t)) && (e > r && (e = r), i < r && (i = r)) + } + return [e, i] + }, + qs = Array.prototype, + Ls = qs.slice, + Rs = qs.map, + Us = function (t) { + return function () { + return t + } + }, + Ds = function (t) { + return t + }, + Os = function (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 + }, + Fs = Math.sqrt(50), + Is = Math.sqrt(10), + Ys = Math.sqrt(2), + Bs = function (t, n, r) { + var i = e(t, n, r); + return Os(Math.ceil(t / i) * i, Math.floor(n / i) * i + i / 2, i) + }, + js = function (t) { + return Math.ceil(Math.log(t.length) / Math.LN2) + 1 + }, + Hs = function () { + function t(t) { + var i, + o, + u = t.length, + a = new Array(u); + for (i = 0; i < u; ++i) + a[i] = n(t[i], i, t); + var c = e(a), + s = c[0], + f = c[1], + l = r(a, s, f); + Array.isArray(l) || (l = Bs(s, f, l)); + for (var h = l.length; l[0] <= s;) + l.shift(), + --h; + for (; l[h - 1] >= f;) + l.pop(), + --h; + var p, + d = new Array(h + 1); + for (i = 0; i <= h; ++i) + p = d[i] = [], + p.x0 = i > 0 + ? l[i - 1] + : s, + p.x1 = i < h + ? l[i] + : f; + for (i = 0; i < u; ++i) + o = a[i], + s <= o && o <= f && d[ks(l, o, 0, h)].push(t[i]); + return d + } + var n = Ds, + e = Ps, + r = js; + return t.value = function (e) { + return arguments.length + ? (n = "function" == typeof e + ? e + : Us(e), t) + : n + }, + t.domain = function (n) { + return arguments.length + ? (e = "function" == typeof n + ? n + : Us([n[0], n[1]]), t) + : e + }, + t.thresholds = function (n) { + return arguments.length + ? (r = "function" == typeof n + ? n + : Us(Array.isArray(n) + ? Ls.call(n) + : n), t) + : r + }, + t + }, + Xs = function (t, n, e) { + if (null == e && (e = Es), r = t.length) { + if ((n =+ 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, + o = Math.floor(i), + u =+ e(t[o], o, t), + a =+ e(t[o + 1], o + 1, t); + return u + (a - u) * (i - o) + } + }, + Vs = function (t, n, e) { + return t = Rs + .call(t, Es) + .sort(Ms), + Math.ceil((e - n) / (2 * (Xs(t, .75) - Xs(t, .25)) * Math.pow(t.length, -1 / 3))) + }, + Ws = function (t, n, e) { + return Math.ceil((e - n) / (3.5 * zs(t) * Math.pow(t.length, -1 / 3))) + }, + $s = function (t, n) { + var e, + r, + i = -1, + o = t.length; + if (null == n) { + for (; ++i < o;) + if (null != (r = t[i]) && r >= r) { + e = r; + break + } + for (; ++i < o;) + null != (r = t[i]) && r > e && (e = r) + } else { + for (; ++i < o;) + if (null != (r = n(t[i], i, t)) && r >= r) { + e = r; + break + } + for (; ++i < o;) + null != (r = n(t[i], i, t)) && r > e && (e = r) + } + return e + }, + Zs = function (t, n) { + var e, + r = 0, + i = t.length, + o = -1, + u = i; + if (null == n) + for (; ++o < i;) + isNaN(e = Es(t[o])) + ? --u + : r += e; + else + for (; ++o < i;) + isNaN(e = Es(n(t[o], o, t))) + ? --u + : r += e; + if (u) + return r / u + }, + Gs = function (t, n) { + var e, + r = [], + i = t.length, + o = -1; + if (null == n) + for (; ++o < i;) + isNaN(e = Es(t[o])) || r.push(e); + else + for (; ++o < i;) + isNaN(e = Es(n(t[o], o, t))) || r.push(e); + return Xs(r.sort(Ms), .5) + }, + Js = function (t) { + for (var n, e, r, i = t.length, o = -1, u = 0; ++o < i;) + u += t[o].length; + for (e = new Array(u); --i >= 0;) + for (r = t[i], n = r.length; --n >= 0;) + e[--u] = r[n]; + return e + }, + Qs = function (t, n) { + var e, + r, + i = -1, + o = t.length; + if (null == n) { + for (; ++i < o;) + if (null != (r = t[i]) && r >= r) { + e = r; + break + } + for (; ++i < o;) + null != (r = t[i]) && e > r && (e = r) + } else { + for (; ++i < o;) + if (null != (r = n(t[i], i, t)) && r >= r) { + e = r; + break + } + for (; ++i < o;) + null != (r = n(t[i], i, t)) && e > r && (e = r) + } + return e + }, + Ks = function (t) { + for (var n = 0, e = t.length - 1, r = t[0], i = new Array(e < 0 + ? 0 + : e); n < e;) + i[n] = [ + r, r = t[++n] + ]; + return i + }, + tf = function (t, n) { + for (var e = n.length, r = new Array(e); e--;) + r[e] = t[n[e]]; + return r + }, + nf = function (t, n) { + if (e = t.length) { + var e, + r, + i = 0, + o = 0, + u = t[o]; + for (n || (n = Ms); ++i < e;) + (n(r = t[i], u) < 0 || 0 !== n(u, u)) && (u = r, o = i); + return 0 === n(u, u) + ? o + : void 0 + } + }, + ef = function (t, n, e) { + for (var r, i, o = (null == e + ? t.length + : e) - (n = null == n + ? 0 :+ n); o;) + i = Math.random() * o-- | 0, + r = t[o + n], + t[o + n] = t[i + n], + t[i + n] = r; + return t + }, + rf = function (t, n) { + var e, + r = 0, + i = t.length, + o = -1; + if (null == n) + for (; ++o < i;) + (e =+ t[o]) && (r += e); + else + for (; ++o < i;) + (e =+ n(t[o], o, t)) && (r += e); + return r + }, + of = function (t) { + if (!(o = t.length)) + return []; + for (var n = -1, e = Qs(t, r), i = new Array(e); ++n < e;) + for (var o, u = -1, a = i[n] = new Array(o); ++u < o;) + a[u] = t[u][n]; + return i + }, + uf = function () { + return of(arguments) + }, + af = "$"; + i.prototype = o.prototype = { + constructor: i, + has: function (t) { + return af + t in this + }, + get: function (t) { + return this[af + t] + }, + set: function (t, n) { + return this[af + t] = n, + this + }, + remove: function (t) { + var n = af + t; + return n in this && delete this[n] + }, + clear: function () { + for (var t in this) + t[0] === af && delete this[t] + }, + keys: function () { + var t = []; + for (var n in this) + n[0] === af && t.push(n.slice(1)); + return t + }, + values: function () { + var t = []; + for (var n in this) + n[0] === af && t.push(this[n]); + return t + }, + entries: function () { + var t = []; + for (var n in this) + n[0] === af && t.push({ + key: n.slice(1), + value: this[n] + }); + return t + }, + size: function () { + var t = 0; + for (var n in this) + n[0] === af && ++t; + return t + }, + empty: function () { + for (var t in this) + if (t[0] === af) + return !1; + return !0 + }, + each: function (t) { + for (var n in this) + n[0] === af && t(this[n], n.slice(1), this) + } + }; + var cf = function () { + function t(n, i, u, a) { + if (i >= f.length) + return null != r + ? r(n) + : null != e + ? n.sort(e) + : n; + for (var c, s, l, h = -1, p = n.length, d = f[i++], v = o(), _ = u(); ++h < p;) + (l = v.get(c = d(s = n[h]) + "")) + ? l.push(s) + : v.set(c, [s]); + return v.each(function (n, e) { + a(_, e, t(n, i, u, a)) + }), + _ + } + function n(t, e) { + if (++e > f.length) + return t; + var i, + o = l[e - 1]; + return null != r && e >= f.length + ? i = t.entries() + : (i = [], t.each(function (t, r) { + i.push({ + key: r, + values: n(t, e) + }) + })), + null != o + ? i.sort(function (t, n) { + return o(t.key, n.key) + }) + : i + } + var e, + r, + i, + f = [], + l = []; + return i = { + object: function (n) { + return t(n, 0, u, a) + }, + map: function (n) { + return t(n, 0, c, s) + }, + entries: function (e) { + return n(t(e, 0, c, s), 0) + }, + key: function (t) { + return f.push(t), + i + }, + sortKeys: function (t) { + return l[f.length - 1] = t, + i + }, + sortValues: function (t) { + return e = t, + i + }, + rollup: function (t) { + return r = t, + i + } + } + }, + sf = o.prototype; + f.prototype = l.prototype = { + constructor: f, + has: sf.has, + add: function (t) { + return t += "", + this[af + t] = t, + this + }, + remove: sf.remove, + clear: sf.clear, + values: sf.keys, + size: sf.size, + empty: sf.empty, + each: sf.each + }; + var ff = function (t) { + var n = []; + for (var e in t) + n.push(e); + return n + }, + lf = function (t) { + var n = []; + for (var e in t) + n.push(t[e]); + return n + }, + hf = function (t) { + var n = []; + for (var e in t) + n.push({key: e, value: t[e]}); + return n + }, + pf = function (t, n) { + return t = null == t + ? 0 :+ t, + n = null == n + ? 1 :+ n, + 1 === arguments.length + ? (n = t, t = 0) + : n -= t, + function () { + return Math.random() * n + t + } + }, + df = function (t, n) { + var e, + r; + return t = null == t + ? 0 :+ t, + n = null == n + ? 1 :+ n, + function () { + var i; + if (null != e) + i = e, + e = null; + else + do + e = 2 * Math.random() - 1, + i = 2 * Math.random() - 1, + r = e * e + i * i; + while (!r || r > 1) + ; + return t + n * i * Math.sqrt(-2 * Math.log(r) / r) + } + }, + vf = function () { + var t = df.apply(this, arguments); + return function () { + return Math.exp(t()) + } + }, + _f = function (t) { + return function () { + for (var n = 0, e = 0; e < t; ++e) + n += Math.random(); + return n + } + }, + yf = function (t) { + var n = _f(t); + return function () { + return n() / t + } + }, + gf = function (t) { + return function () { + return -Math.log(1 - Math.random()) / t + } + }, + mf = 3, + xf = function t(n) { + function e(t) { + return Math.pow(t, n) + } + return n =+ n, + e.exponent = t, + e + }(mf), + bf = function t(n) { + function e(t) { + return 1 - Math.pow(1 - t, n) + } + return n =+ n, + e.exponent = t, + e + }(mf), + wf = 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 + }(mf), + Mf = Math.PI, + Tf = Mf / 2, + Nf = 4 / 11, + kf = 6 / 11, + Sf = 8 / 11, + Af = .75, + Ef = 9 / 11, + Cf = 10 / 11, + zf = .9375, + Pf = 21 / 22, + qf = 63 / 64, + Lf = 1 / Nf / Nf, + Rf = 1.70158, + Uf = function t(n) { + function e(t) { + return t * t * ((n + 1) * t - n) + } + return n =+ n, + e.overshoot = t, + e + }(Rf), + Df = function t(n) { + function e(t) { + return-- t * t * ((n + 1) * t + n) + 1 + } + return n =+ n, + e.overshoot = t, + e + }(Rf), + Of = 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 + }(Rf), + Ff = 2 * Math.PI, + If = 1, + Yf = .3, + Bf = function t(n, e) { + function r(t) { + return n * Math.pow(2, 10 * --t) * Math.sin((i - t) / e) + } + var i = Math.asin(1 / (n = Math.max(1, n))) * (e /= Ff); + return r.amplitude = function (n) { + return t(n, e * Ff) + }, + r.period = function (e) { + return t(n, e) + }, + r + }(If, Yf), + jf = function t(n, e) { + function r(t) { + return 1 - n * Math.pow(2, -10 * (t =+ t)) * Math.sin((t + i) / e) + } + var i = Math.asin(1 / (n = Math.max(1, n))) * (e /= Ff); + return r.amplitude = function (n) { + return t(n, e * Ff) + }, + r.period = function (e) { + return t(n, e) + }, + r + }(If, Yf), + Hf = function t(n, e) { + function r(t) { + return ((t = 2 * t - 1) < 0 + ? n * Math.pow(2, 10 * t) * Math.sin((i - t) / e) + : 2 - n * Math.pow(2, -10 * t) * Math.sin((i + t) / e)) / 2 + } + var i = Math.asin(1 / (n = Math.max(1, n))) * (e /= Ff); + return r.amplitude = function (n) { + return t(n, e * Ff) + }, + r.period = function (e) { + return t(n, e) + }, + r + }(If, Yf), + Xf = 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 + }, + Vf = function (t) { + for (var n, e, r = -1, i = t.length, o = 0, u = 0, a = t[i - 1], c = 0; ++r < i;) + n = a, + a = t[r], + c += e = n[0] * a[1] - a[0] * n[1], + o += (n[0] + a[0]) * e, + u += (n[1] + a[1]) * e; + return c *= 3, + [ + o / c, + u / c + ] + }, + Wf = function (t, n, e) { + return (n[0] - t[0]) * (e[1] - t[1]) - (n[1] - t[1]) * (e[0] - t[0]) + }, + $f = 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(z), n = 0; n < e; ++n) + i[n] = [ + r[n][0], -r[n][1] + ]; + var o = P(r), + u = P(i), + a = u[0] === o[0], + c = u[u.length - 1] === o[o.length - 1], + s = []; + for (n = o.length - 1; n >= 0; --n) + s.push(t[r[o[n]][2]]); + for (n =+ a; n < u.length - c; ++n) + s.push(t[r[u[n]][2]]); + return s + }, + Zf = function (t, n) { + for (var e, r, i = t.length, o = t[i - 1], u = n[0], a = n[1], c = o[0], s = o[1], f = !1, l = 0; l < i; ++l) + o = t[l], + e = o[0], + r = o[1], + r > a != s > a && u < (c - e) * (a - r) / (s - r) + e && (f = !f), + c = e, + s = r; + return f + }, + Gf = function (t) { + for (var n, e, r = -1, i = t.length, o = t[i - 1], u = o[0], a = o[1], c = 0; ++r < i;) + n = u, + e = a, + o = t[r], + u = o[0], + a = o[1], + n -= u, + e -= a, + c += Math.sqrt(n * n + e * e); + return c + }, + Jf = Math.PI, + Qf = 2 * Jf, + Kf = 1e-6, + tl = Qf - Kf; + q.prototype = L.prototype = { + constructor: q, + moveTo: function (t, n) { + this + ._ + .push("M", this._x0 = this._x1 =+ t, ",", this._y0 = this._y1 =+ n) + }, + closePath: function () { + null !== this._x1 && (this._x1 = this._x0, this._y1 = this._y0, this._.push("Z")) + }, + lineTo: function (t, n) { + this + ._ + .push("L", this._x1 =+ t, ",", this._y1 =+ n) + }, + quadraticCurveTo: function (t, n, e, r) { + this + ._ + .push("Q", + t, ",", + n, ",", this._x1 =+ e, ",", this._y1 =+ r) + }, + bezierCurveTo: function (t, n, e, r, i, o) { + this + ._ + .push("C", + t, ",", + n, ",", + e, ",", + r, ",", this._x1 =+ i, ",", this._y1 =+ o) + }, + arcTo: function (t, n, e, r, i) { + t =+ t, + n =+ n, + e =+ e, + r =+ r, + i =+ i; + var o = this._x1, + u = this._y1, + a = e - t, + c = r - n, + s = o - t, + f = u - n, + l = s * s + f * f; + if (i < 0) + throw new Error("negative radius: " + i); + if (null === this._x1) + this._.push("M", this._x1 = t, ",", this._y1 = n); + else if (l > Kf) + if (Math.abs(f * a - c * s) > Kf && i) { + var h = e - o, + p = r - u, + d = a * a + c * c, + v = h * h + p * p, + _ = Math.sqrt(d), + y = Math.sqrt(l), + g = i * Math.tan((Jf - Math.acos((d + l - v) / (2 * _ * y))) / 2), + m = g / y, + x = g / _; + Math.abs(m - 1) > Kf && this + ._ + .push("L", t + m * s, ",", n + m * f), + this + ._ + .push("A", i, ",", i, ",0,0,", + (f * h > s * p), ",", this._x1 = t + x * a, ",", this._y1 = n + x * c) + } else + this + ._ + .push("L", this._x1 = t, ",", this._y1 = n); + else ; + } + , + arc: function (t, n, e, r, i, o) { + t =+ t, + n =+ n, + e =+ e; + var u = e * Math.cos(r), + a = e * Math.sin(r), + c = t + u, + s = n + a, + f = 1 ^ o, + l = o + ? r - i + : i - r; + if (e < 0) + throw new Error("negative radius: " + e); + null === this._x1 + ? this + ._ + .push("M", c, ",", s) + : (Math.abs(this._x1 - c) > Kf || Math.abs(this._y1 - s) > Kf) && this + ._ + .push("L", c, ",", s), + e && (l > tl + ? this._.push("A", e, ",", e, ",0,1,", f, ",", t - u, ",", n - a, "A", e, ",", e, ",0,1,", f, ",", this._x1 = c, ",", this._y1 = s) + : (l < 0 && (l = l % Qf + Qf), this._.push("A", e, ",", e, ",0,", + (l >= Jf), ",", f, ",", this._x1 = t + e * Math.cos(i), ",", this._y1 = n + e * Math.sin(i)))) + }, + rect: function (t, n, e, r) { + this + ._ + .push("M", this._x0 = this._x1 =+ t, ",", this._y0 = this._y1 =+ n, "h", + e, "v", + r, "h", -e, "Z") + }, + toString: function () { + return this + ._ + .join("") + } + }; + var nl = function (t) { + var n =+ this + ._x + .call(null, t), + e =+ this + ._y + .call(null, t); + return R(this.cover(n, e), n, e, t) + }, + el = 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 { + if (!(e > t || t > i || r > n || n > o)) + return this; + var u, + a, + c = i - e, + s = this._root; + switch (a = (n < (r + o) / 2) << 1 | t < (e + i) / 2) { + case 0: + do + u = new Array(4), + u[a] = s, + s = u; + while (c *= 2, i = e + c, o = r + c, t > i || n > o); + break; + case 1: + do + u = new Array(4), + u[a] = s, + s = u; + while (c *= 2, e = i - c, o = r + c, e > t || n > o); + break; + case 2: + do + u = new Array(4), + u[a] = s, + s = u; + while (c *= 2, i = e + c, r = o - c, t > i || r > n); + break; + case 3: + do + u = new Array(4), + u[a] = s, + s = u; + while (c *= 2, e = i - c, r = o - c, e > t || r > n) + } + this._root && this._root.length && (this._root = s) + } + return this._x0 = e, + this._y0 = r, + this._x1 = i, + this._y1 = o, + this + }, + rl = function () { + var t = []; + return this.visit(function (n) { + if (!n.length) + do + t.push(n.data); + while (n = n.next) + } + ), + t + }, + il = 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] + ] + }, + ol = function (t, n, e, r, i) { + this.node = t, + this.x0 = n, + this.y0 = e, + this.x1 = r, + this.y1 = i + }, + ul = function (t, n, e) { + var r, + i, + o, + u, + a, + c, + s, + f = this._x0, + l = this._y0, + h = this._x1, + p = this._y1, + d = [], + v = this._root; + for (v && d.push(new ol(v, f, l, h, p)), null == e + ? e = 1 / 0 + : (f = t - e, l = n - e, h = t + e, p = n + e, e *= e); c = d.pop();) + if (!(!(v = c.node) || (i = c.x0) > h || (o = c.y0) > p || (u = c.x1) < f || (a = c.y1) < l)) + if (v.length) { + var _ = (i + u) / 2, + y = (o + a) / 2; + d.push(new ol(v[3], _, y, u, a), new ol(v[2], i, y, _, a), new ol(v[1], _, o, u, y), new ol(v[0], i, o, _, y)), + (s = (n >= y) << 1 | t >= _) && (c = d[d.length - 1], d[d.length - 1] = d[d.length - 1 - s], d[d.length - 1 - s] = c) + } + else { + var g = t - + this + ._x + .call(null, v.data), + m = n - + this + ._y + .call(null, v.data), + x = g * g + m * m; + if (x < e) { + var b = Math.sqrt(e = x); + f = t - b, + l = n - b, + h = t + b, + p = n + b, + r = v.data + } + } + return r + }, + al = function (t) { + if (isNaN(o =+ this._x.call(null, t)) || isNaN(u =+ this._y.call(null, t))) + return this; + var n, + e, + r, + i, + o, + u, + a, + c, + s, + f, + l, + h, + p = this._root, + d = this._x0, + v = this._y0, + _ = this._x1, + y = this._y1; + if (!p) + return this; + if (p.length) + for (;;) { + if ((s = o >= (a = (d + _) / 2)) + ? d = a + : _ = a, (f = u >= (c = (v + y) / 2)) + ? v = c + : y = c, n = p, !(p = p[l = f << 1 | s])) + return this; + if (!p.length) + break; + + (n[l + 1 & 3] || n[l + 2 & 3] || n[l + 3 & 3]) && (e = n, h = l) + } + for (; p.data !== t;) + if (r = p, !(p = p.next)) + return this; + return (i = p.next) && delete p.next, + r + ? (i + ? r.next = i + : delete r.next, this) + : n + ? (i + ? n[l] = i + : delete n[l], (p = n[0] || n[1] || n[2] || n[3]) && p === (n[3] || n[2] || n[1] || n[0]) && !p.length && (e + ? e[h] = p + : this._root = p), this) + : (this._root = i, this) + }, + cl = function () { + return this._root + }, + sl = function () { + var t = 0; + return this.visit(function (n) { + if (!n.length) + do + ++t; + while (n = n.next) + } + ), + t + }, + fl = function (t) { + var n, + e, + r, + i, + o, + u, + a = [], + c = this._root; + for (c && a.push(new ol(c, this._x0, this._y0, this._x1, this._y1)); n = a.pop();) + if (!t(c = n.node, r = n.x0, i = n.y0, o = n.x1, u = n.y1) && c.length) { + var s = (r + o) / 2, + f = (i + u) / 2; + (e = c[3]) && a.push(new ol(e, s, f, o, u)), + (e = c[2]) && a.push(new ol(e, r, f, s, u)), + (e = c[1]) && a.push(new ol(e, s, i, o, f)), + (e = c[0]) && a.push(new ol(e, r, i, s, f)) + } + return this + }, + ll = function (t) { + var n, + e = [], + r = []; + for (this._root && e.push(new ol(this._root, this._x0, this._y0, this._x1, this._y1)); n = e.pop();) { + var i = n.node; + if (i.length) { + var o, + u = n.x0, + a = n.y0, + c = n.x1, + s = n.y1, + f = (u + c) / 2, + l = (a + s) / 2; + (o = i[0]) && e.push(new ol(o, u, a, f, l)), + (o = i[1]) && e.push(new ol(o, f, a, c, l)), + (o = i[2]) && e.push(new ol(o, u, l, f, s)), + (o = i[3]) && e.push(new ol(o, f, l, c, s)) + } + r.push(n) + } + for (; n = r.pop();) + t(n.node, n.x0, n.y0, n.x1, n.y1); + return this + }, + hl = function (t) { + return arguments.length + ? (this._x = t, this) + : this._x + }, + pl = function (t) { + return arguments.length + ? (this._y = t, this) + : this._y + }, + dl = I.prototype = Y.prototype; + dl.copy = function () { + var t, + n, + e = new Y(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 = B(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] = B(n)); + return e + }, + dl.add = nl, + dl.addAll = U, + dl.cover = el, + dl.data = rl, + dl.extent = il, + dl.find = ul, + dl.remove = al, + dl.removeAll = D, + dl.root = cl, + dl.size = sl, + dl.visit = fl, + dl.visitAfter = ll, + dl.x = hl, + dl.y = pl; + var vl = [].slice, + _l = {}; + j.prototype = Z.prototype = { + constructor: j, + defer: function (t) { + if ("function" != typeof t || this._call) + throw new Error; + if (null != this._error) + return this; + var n = vl.call(arguments, 1); + return n.push(t), + ++this._waiting, + this + ._tasks + .push(n), + H(this), + this + }, + abort: function () { + return null == this._error && W(this, new Error("abort")), + this + }, + await: function (t) { + if ("function" != typeof t || this._call) + throw new Error; + return this._call = function (n, e) { + t.apply(null, [n].concat(e)) + }, + $(this), + this + }, + awaitAll: function (t) { + if ("function" != typeof t || this._call) + throw new Error; + return this._call = t, + $(this), + this + } + }; + var yl = function (t) { + return function () { + return t + } + }, + gl = 1e-12, + ml = Math.PI, + xl = ml / 2, + bl = 2 * ml, + wl = function () { + function t() { + var t, + s, + f =+ n.apply(this, arguments), + l =+ e.apply(this, arguments), + h = o.apply(this, arguments) - xl, + p = u.apply(this, arguments) - xl, + d = Math.abs(p - h), + v = p > h; + if (c || (c = t = L()), l < f && (s = l, l = f, f = s), l > gl) + if (d > bl - gl) + c.moveTo(l * Math.cos(h), l * Math.sin(h)), + c.arc(0, 0, l, h, p, !v), + f > gl && (c.moveTo(f * Math.cos(p), f * Math.sin(p)), c.arc(0, 0, f, p, h, v)); + else { + var _, + y, + g = h, + m = p, + x = h, + b = p, + w = d, + M = d, + T = a.apply(this, arguments) / 2, + N = T > gl && (i ?+ i.apply(this, arguments) : Math.sqrt(f * f + l * l)), + k = Math.min(Math.abs(l - f) / 2, + r.apply(this, arguments)), + S = k, + A = k; + if (N > gl) { + var E = nt(N / f * Math.sin(T)), + C = nt(N / l * Math.sin(T)); + (w -= 2 * E) > gl + ? (E *= v + ? 1 + : -1, x += E, b -= E) + : (w = 0, x = b = (h + p) / 2), + (M -= 2 * C) > gl + ? (C *= v + ? 1 + : -1, g += C, m -= C) + : (M = 0, g = m = (h + p) / 2) + } + var z = l * Math.cos(g), + P = l * Math.sin(g), + q = f * Math.cos(b), + R = f * Math.sin(b); + if (k > gl) { + var U = l * Math.cos(m), + D = l * Math.sin(m), + O = f * Math.cos(x), + F = f * Math.sin(x); + if (d < ml) { + var I = w > gl + ? et(z, P, O, F, U, D, q, R) + : [ + q, R + ], + Y = z - I[0], + B = P - I[1], + j = U - I[0], + H = D - I[1], + X = 1 / Math.sin(Math.acos((Y * j + B * H) / (Math.sqrt(Y * Y + B * B) * Math.sqrt(j * j + H * H))) / 2), + V = Math.sqrt(I[0] * I[0] + I[1] * I[1]); + S = Math.min(k, (f - V) / (X - 1)), + A = Math.min(k, (l - V) / (X + 1)) + } + } + M > gl + ? A > gl + ? (_ = rt(O, F, z, P, l, A, v), y = rt(U, D, q, R, l, A, v), c.moveTo(_.cx + _.x01, _.cy + _.y01), A < k + ? c.arc(_.cx, _.cy, A, Math.atan2(_.y01, _.x01), Math.atan2(y.y01, y.x01), !v) + : (c.arc(_.cx, _.cy, A, Math.atan2(_.y01, _.x01), Math.atan2(_.y11, _.x11), !v), c.arc(0, 0, l, Math.atan2(_.cy + _.y11, _.cx + _.x11), Math.atan2(y.cy + y.y11, y.cx + y.x11), !v), c.arc(y.cx, y.cy, A, Math.atan2(y.y11, y.x11), Math.atan2(y.y01, y.x01), !v))) + : (c.moveTo(z, P), c.arc(0, 0, l, g, m, !v)) + : c.moveTo(z, P), + f > gl && w > gl + ? S > gl + ? (_ = rt(q, R, U, D, f, -S, v), y = rt(z, P, O, F, f, -S, v), c.lineTo(_.cx + _.x01, _.cy + _.y01), S < k + ? c.arc(_.cx, _.cy, S, Math.atan2(_.y01, _.x01), Math.atan2(y.y01, y.x01), !v) + : (c.arc(_.cx, _.cy, S, Math.atan2(_.y01, _.x01), Math.atan2(_.y11, _.x11), !v), c.arc(0, 0, f, Math.atan2(_.cy + _.y11, _.cx + _.x11), Math.atan2(y.cy + y.y11, y.cx + y.x11), v), c.arc(y.cx, y.cy, S, Math.atan2(y.y11, y.x11), Math.atan2(y.y01, y.x01), !v))) + : c.arc(0, 0, f, b, x, v) + : c.lineTo(q, R) + } + else + c.moveTo(0, 0); + if (c.closePath(), t) + return c = null, + t + "" || null + } + var n = G, + e = J, + r = yl(0), + i = null, + o = Q, + u = K, + a = tt, + c = null; + return t.centroid = function () { + var t = (+ n.apply(this, arguments) + + e.apply(this, arguments)) / 2, + r = (+ o.apply(this, arguments) + + u.apply(this, arguments)) / 2 - ml / 2; + return [ + Math.cos(r) * t, + Math.sin(r) * t + ] + }, + t.innerRadius = function (e) { + return arguments.length + ? (n = "function" == typeof e + ? e + : yl(+ e), t) + : n + }, + t.outerRadius = function (n) { + return arguments.length + ? (e = "function" == typeof n + ? n + : yl(+ n), t) + : e + }, + t.cornerRadius = function (n) { + return arguments.length + ? (r = "function" == typeof n + ? n + : yl(+ n), t) + : r + }, + t.padRadius = function (n) { + return arguments.length + ? (i = null == n + ? null + : "function" == typeof n + ? n + : yl(+ n), t) + : i + }, + t.startAngle = function (n) { + return arguments.length + ? (o = "function" == typeof n + ? n + : yl(+ n), t) + : o + }, + t.endAngle = function (n) { + return arguments.length + ? (u = "function" == typeof n + ? n + : yl(+ n), t) + : u + }, + t.padAngle = function (n) { + return arguments.length + ? (a = "function" == typeof n + ? n + : yl(+ n), t) + : a + }, + t.context = function (n) { + return arguments.length + ? (c = null == n + ? null + : n, t) + : c + }, + t + }; + it.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 Ml = function (t) { + return new it(t) + }, + Tl = function () { + function t(t) { + var a, + c, + s, + f = t.length, + l = !1; + for (null == i && (u = o(s = L())), a = 0; a <= f; ++a) + !(a < f && r(c = t[a], a, t)) === l && ((l = !l) + ? u.lineStart() + : u.lineEnd()), + l && u.point(+ n(c, a, t), + e(c, a, t)); + if (s) + return u = null, + s + "" || null + } + var n = ot, + e = ut, + r = yl(!0), + i = null, + o = Ml, + u = null; + return t.x = function (e) { + return arguments.length + ? (n = "function" == typeof e + ? e + : yl(+ e), t) + : n + }, + t.y = function (n) { + return arguments.length + ? (e = "function" == typeof n + ? n + : yl(+ n), t) + : e + }, + t.defined = function (n) { + return arguments.length + ? (r = "function" == typeof n + ? n + : yl(!!n), t) + : r + }, + t.curve = function (n) { + return arguments.length + ? (o = n, null != i && (u = o(i)), t) + : o + }, + t.context = function (n) { + return arguments.length + ? (null == n + ? i = u = null + : u = o(i = n), t) + : i + }, + t + }, + Nl = function () { + function t(t) { + var n, + f, + l, + h, + p, + d = t.length, + v = !1, + _ = new Array(d), + y = new Array(d); + for (null == a && (s = c(p = L())), n = 0; n <= d; ++n) { + if (!(n < d && u(h = t[n], n, t)) === v) + if (v = !v) + f = n, + s.areaStart(), + s.lineStart(); + else { + for (s.lineEnd(), s.lineStart(), l = n - 1; l >= f; --l) + s.point(_[l], y[l]); + s.lineEnd(), + s.areaEnd() + } + v && (_[n] =+ e(h, n, t), y[n] =+ i(h, n, t), s.point(r ?+ r(h, n, t) : _[n], o ?+ o(h, n, t) : y[n])) + } + if (p) + return s = null, + p + "" || null + } + function n() { + return Tl() + .defined(u) + .curve(c) + .context(a) + } + var e = ot, + r = null, + i = yl(0), + o = ut, + u = yl(!0), + a = null, + c = Ml, + s = null; + return t.x = function (n) { + return arguments.length + ? (e = "function" == typeof n + ? n + : yl(+ n), r = null, t) + : e + }, + t.x0 = function (n) { + return arguments.length + ? (e = "function" == typeof n + ? n + : yl(+ n), t) + : e + }, + t.x1 = function (n) { + return arguments.length + ? (r = null == n + ? null + : "function" == typeof n + ? n + : yl(+ n), t) + : r + }, + t.y = function (n) { + return arguments.length + ? (i = "function" == typeof n + ? n + : yl(+ n), o = null, t) + : i + }, + t.y0 = function (n) { + return arguments.length + ? (i = "function" == typeof n + ? n + : yl(+ n), t) + : i + }, + t.y1 = function (n) { + return arguments.length + ? (o = null == n + ? null + : "function" == typeof n + ? n + : yl(+ n), t) + : o + }, + t.lineX0 = t.lineY0 = function () { + return n() + .x(e) + .y(i) + }, + t.lineY1 = function () { + return n() + .x(e) + .y(o) + }, + t.lineX1 = function () { + return n() + .x(r) + .y(i) + }, + t.defined = function (n) { + return arguments.length + ? (u = "function" == typeof n + ? n + : yl(!!n), t) + : u + }, + t.curve = function (n) { + return arguments.length + ? (c = n, null != a && (s = c(a)), t) + : c + }, + t.context = function (n) { + return arguments.length + ? (null == n + ? a = s = null + : s = c(a = n), t) + : a + }, + t + }, + kl = function (t, n) { + return n < t + ? -1 + : n > t + ? 1 + : n >= t + ? 0 + : NaN + }, + Sl = function (t) { + return t + }, + Al = function () { + function t(t) { + var a, + c, + s, + f, + l, + h = t.length, + p = 0, + d = new Array(h), + v = new Array(h), + _ =+ i.apply(this, arguments), + y = Math.min(bl, Math.max(-bl, o.apply(this, arguments) - _)), + g = Math.min(Math.abs(y) / h, u.apply(this, arguments)), + m = g * (y < 0 + ? -1 + : 1); + for (a = 0; a < h; ++a) + (l = v[d[a] = a] =+ n(t[a], a, t)) > 0 && (p += l); + for (null != e + ? d.sort(function (t, n) { + return e(v[t], v[n]) + }) + : null != r && d.sort(function (n, e) { + return r(t[n], t[e]) + }), a = 0, s = p + ? (y - h * m) / p + : 0; a < h; ++a, _ = f) + c = d[a], + l = v[c], + f = _ + (l > 0 + ? l * s + : 0) + m, + v[c] = { + data: t[c], + index: a, + value: l, + startAngle: _, + endAngle: f, + padAngle: g + }; + return v + } + var n = Sl, + e = kl, + r = null, + i = yl(0), + o = yl(bl), + u = yl(0); + return t.value = function (e) { + return arguments.length + ? (n = "function" == typeof e + ? e + : yl(+ e), t) + : n + }, + t.sortValues = function (n) { + return arguments.length + ? (e = n, r = null, t) + : e + }, + t.sort = function (n) { + return arguments.length + ? (r = n, e = null, t) + : r + }, + t.startAngle = function (n) { + return arguments.length + ? (i = "function" == typeof n + ? n + : yl(+ n), t) + : i + }, + t.endAngle = function (n) { + return arguments.length + ? (o = "function" == typeof n + ? n + : yl(+ n), t) + : o + }, + t.padAngle = function (n) { + return arguments.length + ? (u = "function" == typeof n + ? n + : yl(+ n), t) + : u + }, + t + }, + El = ct(Ml); + at.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)) + } + }; + var Cl = function () { + return st(Tl().curve(El)) + }, + zl = function () { + var t = Nl().curve(El), + 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 st(e()) + }, + delete t.lineX0, + t.lineEndAngle = function () { + return st(r()) + }, + delete t.lineX1, + t.lineInnerRadius = function () { + return st(i()) + }, + delete t.lineY0, + t.lineOuterRadius = function () { + return st(o()) + }, + delete t.lineY1, + t.curve = function (t) { + return arguments.length + ? n(ct(t)) + : n()._curve + }, + t + }, + Pl = { + draw: function (t, n) { + var e = Math.sqrt(n / ml); + t.moveTo(e, 0), + t.arc(0, 0, e, 0, bl) + } + }, + ql = { + draw: function (t, n) { + var e = Math.sqrt(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() + } + }, + Ll = Math.sqrt(1 / 3), + Rl = 2 * Ll, + Ul = { + draw: function (t, n) { + var e = Math.sqrt(n / Rl), + r = e * Ll; + t.moveTo(0, -e), + t.lineTo(r, 0), + t.lineTo(0, e), + t.lineTo(-r, 0), + t.closePath() + } + }, + Dl = .8908130915292852, + Ol = Math.sin(ml / 10) / Math.sin(7 * ml / 10), + Fl = Math.sin(bl / 10) * Ol, + Il = -Math.cos(bl / 10) * Ol, + Yl = { + draw: function (t, n) { + var e = Math.sqrt(n * Dl), + r = Fl * e, + i = Il * e; + t.moveTo(0, -e), + t.lineTo(r, i); + for (var o = 1; o < 5; ++o) { + var u = bl * o / 5, + a = Math.cos(u), + c = Math.sin(u); + t.lineTo(c * e, -a * e), + t.lineTo(a * r - c * i, c * r + a * i) + } + t.closePath() + } + }, + Bl = { + draw: function (t, n) { + var e = Math.sqrt(n), + r = -e / 2; + t.rect(r, r, e, e) + } + }, + jl = Math.sqrt(3), + Hl = { + draw: function (t, n) { + var e = -Math.sqrt(n / (3 * jl)); + t.moveTo(0, 2 * e), + t.lineTo(-jl * e, -e), + t.lineTo(jl * e, -e), + t.closePath() + } + }, + Xl = -.5, + Vl = Math.sqrt(3) / 2, + Wl = 1 / Math.sqrt(12), + $l = 3 * (Wl / 2 + 1), + Zl = { + draw: function (t, n) { + var e = Math.sqrt(n / $l), + r = e / 2, + i = e * Wl, + o = r, + u = e * Wl + e, + a = -o, + c = u; + t.moveTo(r, i), + t.lineTo(o, u), + t.lineTo(a, c), + t.lineTo(Xl * r - Vl * i, Vl * r + Xl * i), + t.lineTo(Xl * o - Vl * u, Vl * o + Xl * u), + t.lineTo(Xl * a - Vl * c, Vl * a + Xl * c), + t.lineTo(Xl * r + Vl * i, Xl * i - Vl * r), + t.lineTo(Xl * o + Vl * u, Xl * u - Vl * o), + t.lineTo(Xl * a + Vl * c, Xl * c - Vl * a), + t.closePath() + } + }, + Gl = [ + Pl, + ql, + Ul, + Bl, + Yl, + Hl, + Zl + ], + Jl = function () { + function t() { + var t; + if (r || (r = t = L()), n.apply(this, arguments).draw(r, + e.apply(this, arguments)), t) + return r = null, + t + "" || null + } + var n = yl(Pl), + e = yl(64), + r = null; + return t.type = function (e) { + return arguments.length + ? (n = "function" == typeof e + ? e + : yl(e), t) + : n + }, + t.size = function (n) { + return arguments.length + ? (e = "function" == typeof n + ? n + : yl(+ n), t) + : e + }, + t.context = function (n) { + return arguments.length + ? (r = null == n + ? null + : n, t) + : r + }, + t + }, + Ql = function () {}; + lt.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: + ft(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: + ft(this, t, n) + } + this._x0 = this._x1, + this._x1 = t, + this._y0 = this._y1, + this._y1 = n + } + }; + var Kl = function (t) { + return new lt(t) + }; + ht.prototype = { + areaStart: Ql, + areaEnd: Ql, + 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: + ft(this, t, n) + } + this._x0 = this._x1, + this._x1 = t, + this._y0 = this._y1, + this._y1 = n + } + }; + var th = function (t) { + return new ht(t) + }; + pt.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: + ft(this, t, n) + } + this._x0 = this._x1, + this._x1 = t, + this._y0 = this._y1, + this._y1 = n + } + }; + var nh = function (t) { + return new pt(t) + }; + dt.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], u = t[e] - i, a = n[e] - o, c = -1; ++c <= e;) + r = c / e, + this._basis.point(this._beta * t[c] + (1 - this._beta) * (i + r * u), this._beta * n[c] + (1 - this._beta) * (o + r * a)); + this._x = this._y = null, + this + ._basis + .lineEnd() + }, + point: function (t, n) { + this + ._x + .push(+ t), + this + ._y + .push(+ n) + } + }; + var eh = function t(n) { + function e(t) { + return 1 === n + ? new lt(t) + : new dt(t, n) + } + return e.beta = function (n) { + return t(+ n) + }, + e + }(.85); + _t.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: + vt(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: + vt(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 rh = function t(n) { + function e(t) { + return new _t(t, n) + } + return e.tension = function (n) { + return t(+ n) + }, + e + }(0); + yt.prototype = { + areaStart: Ql, + areaEnd: Ql, + 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: + vt(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 ih = function t(n) { + function e(t) { + return new yt(t, n) + } + return e.tension = function (n) { + return t(+ n) + }, + e + }(0); + gt.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: + vt(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 oh = function t(n) { + function e(t) { + return new gt(t, n) + } + return e.tension = function (n) { + return t(+ n) + }, + e + }(0); + xt.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: + mt(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 uh = function t(n) { + function e(t) { + return n + ? new xt(t, n) + : new _t(t, 0) + } + return e.alpha = function (n) { + return t(+ n) + }, + e + }(.5); + bt.prototype = { + areaStart: Ql, + areaEnd: Ql, + 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: + mt(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 ah = function t(n) { + function e(t) { + return n + ? new bt(t, n) + : new yt(t, 0) + } + return e.alpha = function (n) { + return t(+ n) + }, + e + }(.5); + wt.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: + mt(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 ch = function t(n) { + function e(t) { + return n + ? new wt(t, n) + : new gt(t, 0) + } + return e.alpha = function (n) { + return t(+ n) + }, + e + }(.5); + Mt.prototype = { + areaStart: Ql, + areaEnd: Ql, + 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)) + } + }; + var sh = function (t) { + return new Mt(t) + }; + At.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: + St(this, this._t0, kt(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 (t =+ t, n =+ n, 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, + St(this, kt(this, e = Nt(this, t, n)), e); + break; + default: + St(this, this._t0, e = Nt(this, t, n)) + } + this._x0 = this._x1, + this._x1 = t, + this._y0 = this._y1, + this._y1 = n, + this._t0 = e + } + } + }, + (Et.prototype = Object.create(At.prototype)).point = function (t, n) { + At + .prototype + .point + .call(this, n, t) + }, + Ct.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) + } + }, + qt.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 = Lt(t), i = Lt(n), o = 0, u = 1; u < e; ++o, ++u) + this._context.bezierCurveTo(r[0][o], i[0][o], r[1][o], i[1][o], t[u], n[u]); + (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) + } + }; + var fh = function (t) { + return new qt(t) + }; + Rt.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 lh = function (t) { + return new Rt(t, .5) + }, + hh = Array.prototype.slice, + ph = function (t, n) { + if ((r = t.length) > 1) + for (var e, r, i = 1, o = t[n[0]], u = o.length; i < r; ++i) { + e = o, + o = t[n[i]]; + for (var a = 0; a < u; ++a) + o[a][1] += o[a][0] = isNaN(e[a][1]) + ? e[a][0] + : e[a][1] + } + }, + dh = function (t) { + for (var n = t.length, e = new Array(n); --n >= 0;) + e[n] = n; + return e + }, + vh = function () { + function t(t) { + var o, + u, + a = n.apply(this, arguments), + c = t.length, + s = a.length, + f = new Array(s); + for (o = 0; o < s; ++o) { + for (var l, h = a[o], p = f[o] = new Array(c), d = 0; d < c; ++d) + p[d] = l = [ + 0, + i(t[d], h, d, t) + ], + l.data = t[d]; + p.key = h + } + for (o = 0, u = e(f); o < s; ++o) + f[u[o]].index = o; + return r(f, u), + f + } + var n = yl([]), + e = dh, + r = ph, + i = Ot; + return t.keys = function (e) { + return arguments.length + ? (n = "function" == typeof e + ? e + : yl(hh.call(e)), t) + : n + }, + t.value = function (n) { + return arguments.length + ? (i = "function" == typeof n + ? n + : yl(+ n), t) + : i + }, + t.order = function (n) { + return arguments.length + ? (e = null == n + ? dh + : "function" == typeof n + ? n + : yl(hh.call(n)), t) + : e + }, + t.offset = function (n) { + return arguments.length + ? (r = null == n + ? ph + : n, t) + : r + }, + t + }, + _h = function (t, n) { + if ((r = t.length) > 0) { + for (var e, r, i, o = 0, u = t[0].length; o < u; ++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 + } + ph(t, n) + } + }, + yh = 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 u = 0, a = 0; u < e; ++u) + a += t[u][r][1] || 0; + i[r][1] += i[r][0] = -a / 2 + } + ph(t, n) + } + }, + gh = function (t, n) { + if ((i = t.length) > 0 && (r = (e = t[n[0]]).length) > 0) { + for (var e, r, i, o = 0, u = 1; u < r; ++u) { + for (var a = 0, c = 0, s = 0; a < i; ++a) { + for (var f = t[n[a]], l = f[u][1] || 0, + h = f[u - 1][1] || 0, + p = (l - h) / 2, + d = 0; d < a; ++d) { + var v = t[n[d]], + _ = v[u][1] || 0, + y = v[u - 1][1] || 0; + p += _ - y + } + c += l, + s += p * l + } + e[u - 1][1] += e[u - 1][0] = o, + c && (o -= s / c) + } + e[u - 1][1] += e[u - 1][0] = o, + ph(t, n) + } + }, + mh = function (t) { + var n = t.map(Ft); + return dh(t).sort(function (t, e) { + return n[t] - n[e] + }) + }, + xh = function (t) { + return mh(t).reverse() + }, + bh = function (t) { + var n, + e, + r = t.length, + i = t.map(Ft), + o = dh(t).sort(function (t, n) { + return i[n] - i[t] + }), + u = 0, + a = 0, + c = [], + s = []; + for (n = 0; n < r; ++n) + e = o[n], + u < a + ? (u += i[e], c.push(e)) + : (a += i[e], s.push(e)); + return s + .reverse() + .concat(c) + }, + wh = function (t) { + return dh(t).reverse() + }, + Mh = function (t, n, e) { + t.prototype = n.prototype = e, + e.constructor = t + }, + Th = .7, + Nh = 1 / Th, + kh = /^#([0-9a-f]{3})$/, + Sh = /^#([0-9a-f]{6})$/, + Ah = /^rgb\(\s*([-+]?\d+)\s*,\s*([-+]?\d+)\s*,\s*([-+]?\d+)\s*\)$/, + Eh = /^rgb\(\s*([-+]?\d+(?:\.\d+)?)%\s*,\s*([-+]?\d+(?:\.\d+)?)%\s*,\s*([-+]?\d+(?:\.\d+)?)%\s*\)$/, + Ch = /^rgba\(\s*([-+]?\d+)\s*,\s*([-+]?\d+)\s*,\s*([-+]?\d+)\s*,\s*([-+]?\d+(?:\.\d+)?)\s*\)$/, + zh = /^rgba\(\s*([-+]?\d+(?:\.\d+)?)%\s*,\s*([-+]?\d+(?:\.\d+)?)%\s*,\s*([-+]?\d+(?:\.\d+)?)%\s*,\s*([-+]?\d+(?:\.\d+)?)\s*\)$/, + Ph = /^hsl\(\s*([-+]?\d+(?:\.\d+)?)\s*,\s*([-+]?\d+(?:\.\d+)?)%\s*,\s*([-+]?\d+(?:\.\d+)?)%\s*\)$/, + qh = /^hsla\(\s*([-+]?\d+(?:\.\d+)?)\s*,\s*([-+]?\d+(?:\.\d+)?)%\s*,\s*([-+]?\d+(?:\.\d+)?)%\s*,\s*([-+]?\d+(?:\.\d+)?)\s*\)$/, + Lh = { + 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 + }; + Mh(Yt, Bt, { + displayable: function () { + return this + .rgb() + .displayable() + }, + toString: function () { + return this.rgb() + "" + } + }), + Mh(Wt, Vt, It(Yt, { + brighter: function (t) { + return t = null == t + ? Nh + : Math.pow(Nh, t), + new Wt(this.r * t, this.g * t, this.b * t, this.opacity) + }, + darker: function (t) { + return t = null == t + ? Th + : Math.pow(Th, t), + new Wt(this.r * t, this.g * t, this.b * t, this.opacity) + }, + rgb: function () { + return this + }, + displayable: function () { + return 0 <= this.r && this.r <= 255 && 0 <= this.g && this.g <= 255 && 0 <= this.b && this.b <= 255 && 0 <= this.opacity && this.opacity <= 1 + }, + toString: function () { + var t = this.opacity; + return t = isNaN(t) + ? 1 + : Math.max(0, Math.min(1, t)), + (1 === t + ? "rgb(" + : "rgba(") + Math.max(0, Math.min(255, Math.round(this.r) || 0)) + ", " + Math.max(0, Math.min(255, Math.round(this.g) || 0)) + ", " + Math.max(0, Math.min(255, Math.round(this.b) || 0)) + (1 === t + ? ")" + : ", " + t + ")") + } + })), + Mh(Jt, Gt, It(Yt, { + brighter: function (t) { + return t = null == t + ? Nh + : Math.pow(Nh, t), + new Jt(this.h, this.s, this.l * t, this.opacity) + }, + darker: function (t) { + return t = null == t + ? Th + : Math.pow(Th, t), + new Jt(this.h, this.s, this.l * t, this.opacity) + }, + rgb: function () { + 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 Wt(Qt(t >= 240 + ? t - 240 + : t + 120, i, r), Qt(t, i, r), Qt(t < 120 + ? t + 240 + : t - 120, i, r), this.opacity) + }, + displayable: function () { + return (0 <= this.s && this.s <= 1 || isNaN(this.s)) && 0 <= this.l && this.l <= 1 && 0 <= this.opacity && this.opacity <= 1 + } + })); + var Rh = Math.PI / 180, + Uh = 180 / Math.PI, + Dh = 18, + Oh = .95047, + Fh = 1, + Ih = 1.08883, + Yh = 4 / 29, + Bh = 6 / 29, + jh = 3 * Bh * Bh, + Hh = Bh * Bh * Bh; + Mh(nn, tn, It(Yt, { + brighter: function (t) { + return new nn(this.l + Dh * (null == t + ? 1 + : t), this.a, this.b, this.opacity) + }, + darker: function (t) { + return new nn(this.l - Dh * (null == t + ? 1 + : t), this.a, this.b, this.opacity) + }, + rgb: function () { + 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 t = Fh * rn(t), + n = Oh * rn(n), + e = Ih * rn(e), + new Wt(on(3.2404542 * n - 1.5371385 * t - .4985314 * e), on(-.969266 * n + 1.8760108 * t + .041556 * e), on(.0556434 * n - .2040259 * t + 1.0572252 * e), this.opacity) + } + })), + Mh(sn, cn, It(Yt, { + brighter: function (t) { + return new sn(this.h, this.c, this.l + Dh * (null == t + ? 1 + : t), this.opacity) + }, + darker: function (t) { + return new sn(this.h, this.c, this.l - Dh * (null == t + ? 1 + : t), this.opacity) + }, + rgb: function () { + return Kt(this).rgb() + } + })); + var Xh = -.14861, + Vh = 1.78277, + Wh = -.29227, + $h = -.90649, + Zh = 1.97294, + Gh = Zh * $h, + Jh = Zh * Vh, + Qh = Vh * Wh - $h * Xh; + Mh(hn, ln, It(Yt, { + brighter: function (t) { + return t = null == t + ? Nh + : Math.pow(Nh, t), + new hn(this.h, this.s, this.l * t, this.opacity) + }, + darker: function (t) { + return t = null == t + ? Th + : Math.pow(Th, t), + new hn(this.h, this.s, this.l * t, this.opacity) + }, + rgb: function () { + var t = isNaN(this.h) + ? 0 + : (this.h + 120) * Rh, + n =+ this.l, + e = isNaN(this.s) + ? 0 + : this.s * n * (1 - n), + r = Math.cos(t), + i = Math.sin(t); + return new Wt(255 * (n + e * (Xh * r + Vh * i)), 255 * (n + e * (Wh * r + $h * i)), 255 * (n + e * (Zh * r)), this.opacity) + } + })); + var Kh, + tp, + np, + ep, + rp = function (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], + u = r > 0 + ? t[r - 1] + : 2 * i - o, + a = r < n - 1 + ? t[r + 2] + : 2 * o - i; + return pn((e - r / n) * n, u, i, o, a) + } + }, + ip = function (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], + u = t[(r + 1) % n], + a = t[(r + 2) % n]; + return pn((e - r / n) * n, i, o, u, a) + } + }, + op = function (t) { + return function () { + return t + } + }, + up = function t(n) { + function e(t, n) { + var e = r((t = Vt(t)).r, (n = Vt(n)).r), + i = r(t.g, n.g), + o = r(t.b, n.b), + u = r(t.opacity, n.opacity); + return function (n) { + return t.r = e(n), + t.g = i(n), + t.b = o(n), + t.opacity = u(n), + t + "" + } + } + var r = yn(n); + return e.gamma = t, + e + }(1), + ap = mn(rp), + cp = mn(ip), + sp = function (t, n) { + var e, + r = n + ? n.length + : 0, + i = t + ? Math.min(r, t.length) + : 0, + o = new Array(r), + u = new Array(r); + for (e = 0; e < i; ++e) + o[e] = _p(t[e], n[e]); + for (; e < r; ++e) + u[e] = n[e]; + return function (t) { + for (e = 0; e < i; ++e) + u[e] = o[e](t); + return u + } + }, + fp = function (t, n) { + var e = new Date; + return t =+ t, + n -= t, + function (r) { + return e.setTime(t + n * r), + e + } + }, + lp = function (t, n) { + return t =+ t, + n -= t, + function (e) { + return t + n * e + } + }, + hp = function (t, n) { + var e, + r = {}, + i = {}; + null !== t && "object" == typeof t || (t = {}), + null !== n && "object" == typeof n || (n = {}); + for (e in n) + e in t + ? r[e] = _p(t[e], n[e]) + : i[e] = n[e]; + return function (t) { + for (e in r) + i[e] = r[e](t); + return i + } + }, + pp = /[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g, + dp = new RegExp(pp.source, "g"), + vp = function (t, n) { + var e, + r, + i, + o = pp.lastIndex = dp.lastIndex = 0, + u = -1, + a = [], + c = []; + for (t += "", n += ""; (e = pp.exec(t)) && (r = dp.exec(n));) + (i = r.index) > o && (i = n.slice(o, i), a[u] + ? a[u] += i + : a[++u] = i), + (e = e[0]) === (r = r[0]) + ? a[u] + ? a[u] += r + : a[++u] = r + : (a[++u] = null, c.push({ + i: u, + x: lp(e, r) + })), + o = dp.lastIndex; + return o < n.length && (i = n.slice(o), a[u] + ? a[u] += i + : a[++u] = i), + a.length < 2 + ? c[0] + ? bn(c[0].x) + : xn(n) + : (n = c.length, function (t) { + for (var e, r = 0; r < n; ++r) + a[(e = c[r]).i] = e.x(t); + return a.join("") + }) + }, + _p = function (t, n) { + var e, + r = typeof n; + return null == n || "boolean" === r + ? op(n) + : ("number" === r + ? lp + : "string" === r + ? (e = Bt(n)) + ? (n = e, up) + : vp + : n instanceof Bt + ? up + : n instanceof Date + ? fp + : Array.isArray(n) + ? sp + : isNaN(n) + ? hp + : lp)(t, n) + }, + yp = function (t, n) { + return t =+ t, + n -= t, + function (e) { + return Math.round(t + n * e) + } + }, + gp = 180 / Math.PI, + mp = { + translateX: 0, + translateY: 0, + rotate: 0, + skewX: 0, + scaleX: 1, + scaleY: 1 + }, + xp = function (t, n, e, r, i, o) { + var u, + a, + c; + return (u = Math.sqrt(t * t + n * n)) && (t /= u, n /= u), + (c = t * e + n * r) && (e -= t * c, r -= n * c), + (a = Math.sqrt(e * e + r * r)) && (e /= a, r /= a, c /= a), + t * r < n * e && (t = -t, n = -n, c = -c, u = -u), { + translateX: i, + translateY: o, + rotate: Math.atan2(n, t) * gp, + skewX: Math.atan(c) * gp, + scaleX: u, + scaleY: a + } + }, + bp = Tn(wn, "px, ", "px)", "deg)"), + wp = Tn(Mn, ", ", ")", ")"), + Mp = Math.SQRT2, + Tp = 2, + Np = 4, + kp = 1e-12, + Sp = function (t, n) { + var e, + r, + i = t[0], + o = t[1], + u = t[2], + a = n[0], + c = n[1], + s = n[2], + f = a - i, + l = c - o, + h = f * f + l * l; + if (h < kp) + r = Math.log(s / u) / Mp, + e = function (t) { + return [ + i + t * f, + o + t * l, + u * Math.exp(Mp * t * r) + ] + }; + else { + var p = Math.sqrt(h), + d = (s * s - u * u + Np * h) / (2 * u * Tp * p), + v = (s * s - u * u - Np * h) / (2 * s * Tp * p), + _ = Math.log(Math.sqrt(d * d + 1) - d), + y = Math.log(Math.sqrt(v * v + 1) - v); + r = (y - _) / Mp, + e = function (t) { + var n = t * r, + e = Nn(_), + a = u / (Tp * p) * (e * Sn(Mp * n + _) - kn(_)); + return [ + i + a * f, + o + a * l, + u * e / Nn(Mp * n + _) + ] + } + } + return e.duration = 1e3 * r, + e + }, + Ap = An(_n), + Ep = An(gn), + Cp = Cn(_n), + zp = Cn(gn), + Pp = zn(_n), + qp = zn(gn), + Lp = function (t, n) { + for (var e = new Array(n), r = 0; r < n; ++r) + e[r] = t(r / (n - 1)); + return e + }, + Rp = { + value: function () {} + }; + qn.prototype = Pn.prototype = { + constructor: qn, + on: function (t, n) { + var e, + r = this._, + i = Ln(t + "", r), + o = -1, + u = i.length; + { + if (!(arguments.length < 2)) { + if (null != n && "function" != typeof n) + throw new Error("invalid callback: " + n); + for (; ++o < u;) + if (e = (t = i[o]).type) + r[e] = Un(r[e], t.name, n); + else if (null == n) + for (e in r) + r[e] = Un(r[e], t.name, null); + return this + } + for (; ++o < u;) + if ((e = (t = i[o]).type) && (e = Rn(r[e], t.name))) + return e + } + }, + copy: function () { + var t = {}, + n = this._; + for (var e in n) + t[e] = n[e].slice(); + return new qn(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 (r = this._[t], o = 0, e = r.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 Up, + Dp, + Op = function (t) { + function n(t, n) { + var r, + i, + o = e(t, function (t, e) { + return r + ? r(t, e - 1) + : (i = t, void(r = n + ? On(t, n) + : Dn(t))) + }); + return o.columns = i, + o + } + function e(t, n) { + function e() { + if (f >= s) + return u; + if (i) + return i = !1, + o; + var n, + e = f; + if (34 === t.charCodeAt(e)) { + for (var r = e; r++ < s;) + if (34 === t.charCodeAt(r)) { + if (34 !== t.charCodeAt(r + 1)) + break; + + ++r + } + return f = r + 2, + n = t.charCodeAt(r + 1), + 13 === n + ? (i = !0, 10 === t.charCodeAt(r + 2) && ++f) + : 10 === n && (i = !0), + t + .slice(e + 1, r) + .replace(/""/g, '"') + } + for (; f < s;) { + var a = 1; + if (n = t.charCodeAt(f++), 10 === n) + i = !0; + else if (13 === n) + i = !0, + 10 === t.charCodeAt(f) && (++f, ++a); + else if (n !== c) + continue; + return t.slice(e, f - a) + } + return t.slice(e) + } + for (var r, i, o = {}, u = {}, a = [], s = t.length, f = 0, l = 0; (r = e()) !== u;) { + for (var h = []; r !== o && r !== u;) + h.push(r), + r = e(); + n && null == (h = n(h, l++)) || a.push(h) + } + return a + } + function r(n, e) { + return null == e && (e = Fn(n)), + [ + e + .map(u) + .join(t) + ].concat(n.map(function (n) { + return e.map(function (t) { + return u(n[t]) + }).join(t) + })).join("\n") + } + function i(t) { + return t + .map(o) + .join("\n") + } + function o(n) { + return n + .map(u) + .join(t) + } + function u(t) { + return null == t + ? "" + : a.test(t += "") + ? '"' + t.replace(/\"/g, '""') + '"' + : t + } + var a = new RegExp('["' + t + "\n]"), + c = t.charCodeAt(0); + return {parse: n, parseRows: e, format: r, formatRows: i} + }, + Fp = Op(","), + Ip = Fp.parse, + Yp = Fp.parseRows, + Bp = Fp.format, + jp = Fp.formatRows, + Hp = Op("\t"), + Xp = Hp.parse, + Vp = Hp.parseRows, + Wp = Hp.format, + $p = Hp.formatRows, + Zp = function (t, n) { + function e(t) { + var n, + e = f.status; + if (!e && Yn(f) || e >= 200 && e < 300 || 304 === e) { + if (u) + try { + n = u.call(r, f) + } catch (t) { + return void c.call("error", r, t) + } + else + n = f; + c.call("load", r, n) + } else + c.call("error", r, t) + } + var r, + i, + u, + a, + c = Pn("beforesend", "progress", "load", "error"), + s = o(), + f = new XMLHttpRequest, + l = null, + h = null, + p = 0; + if ("undefined" == typeof XDomainRequest || "withCredentials" in f || !/^(http(s)?:)?\/\//.test(t) || (f = new XDomainRequest), "onload" in f + ? f.onload = f.onerror = f.ontimeout = e + : f.onreadystatechange = function (t) { + f.readyState > 3 && e(t) + }, + f.onprogress = function (t) { + c.call("progress", r, t) + }, + r = { + header: function (t, n) { + return t = (t + "").toLowerCase(), + arguments.length < 2 + ? s.get(t) + : (null == n + ? s.remove(t) + : s.set(t, n + ""), r) + }, + mimeType: function (t) { + return arguments.length + ? (i = null == t + ? null + : t + "", r) + : i + }, + responseType: function (t) { + return arguments.length + ? (a = t, r) + : a + }, + timeout: function (t) { + return arguments.length + ? (p =+ t, r) + : p + }, + user: function (t) { + return arguments.length < 1 + ? l + : (l = null == t + ? null + : t + "", r) + }, + password: function (t) { + return arguments.length < 1 + ? h + : (h = null == t + ? null + : t + "", r) + }, + response: function (t) { + return u = t, + r + }, + get: function (t, n) { + return r.send("GET", t, n) + }, + post: function (t, n) { + return r.send("POST", t, n) + }, + send: function (n, e, o) { + return f.open(n, t, !0, l, h), + null == i || s.has("accept") || s.set("accept", i + ",*/*"), + f.setRequestHeader && s.each(function (t, n) { + f.setRequestHeader(n, t) + }), + null != i && f.overrideMimeType && f.overrideMimeType(i), + null != a && (f.responseType = a), + p > 0 && (f.timeout = p), + null == o && "function" == typeof e && (o = e, e = null), + null != o && 1 === o.length && (o = In(o)), + null != o && r + .on("error", o) + .on("load", function (t) { + o(null, t) + }), + c.call("beforesend", r, f), + f.send(null == e + ? null + : e), + r + }, + abort: function () { + return f.abort(), + r + }, + on: function () { + var t = c + .on + .apply(c, arguments); + return t === c + ? r + : t + } + }, + null != n) { + if ("function" != typeof n) + throw new Error("invalid callback: " + n); + return r.get(n) + } + return r + }, + Gp = function (t, n) { + return function (e, r) { + var i = Zp(e) + .mimeType(t) + .response(n); + if (null != r) { + if ("function" != typeof r) + throw new Error("invalid callback: " + r); + return i.get(r) + } + return i + } + }, + Jp = Gp("text/html", function (t) { + return document + .createRange() + .createContextualFragment(t.responseText) + }), + Qp = Gp("application/json", function (t) { + return JSON.parse(t.responseText) + }), + Kp = Gp("text/plain", function (t) { + return t.responseText + }), + td = Gp("application/xml", function (t) { + var n = t.responseXML; + if (!n) + throw new Error("parse error"); + return n + }), + nd = function (t, n) { + return function (e, r, i) { + arguments.length < 3 && (i = r, r = null); + var o = Zp(e).mimeType(t); + return o.row = function (t) { + return arguments.length + ? o.response(Bn(n, r = t)) + : r + }, + o.row(r), + i + ? o.get(i) + : o + } + }, + ed = nd("text/csv", Ip), + rd = nd("text/tab-separated-values", Xp), + id = 0, + od = 0, + ud = 0, + ad = 1e3, + cd = 0, + sd = 0, + fd = 0, + ld = "object" == typeof performance && performance.now + ? performance + : Date, + hd = "function" == typeof requestAnimationFrame + ? requestAnimationFrame + : function (t) { + setTimeout(t, 17) + }; + Xn.prototype = Vn.prototype = { + constructor: Xn, + restart: function (t, n, e) { + if ("function" != typeof t) + throw new TypeError("callback is not a function"); + e = (null == e + ? jn() :+ e) + (null == n + ? 0 :+ n), + this._next || Dp === this || (Dp + ? Dp._next = this + : Up = this, Dp = this), + this._call = t, + this._time = e, + Jn() + }, + stop: function () { + this._call && (this._call = null, this._time = 1 / 0, Jn()) + } + }; + var pd = function (t, n, e) { + var r = new Xn; + return n = null == n + ? 0 :+ n, + r.restart(function (e) { + r.stop(), + t(e + n) + }, n, e), + r + }, + dd = function (t, n, e) { + var r = new Xn, + i = n; + return null == n + ? (r.restart(t, n, e), r) + : (n =+ n, e = null == e + ? jn() :+ e, r.restart(function o(u) { + u += i, + r.restart(o, i += n, e), + t(u) + }, n, e), r) + }, + vd = new Date, + _d = new Date, + yd = Qn(function () {}, function (t, n) { + t.setTime(+ t + n) + }, function (t, n) { + return n - t + }); + yd.every = function (t) { + return t = Math.floor(t), + isFinite(t) && t > 0 + ? t > 1 + ? Qn(function (n) { + n.setTime(Math.floor(n / t) * t) + }, function (n, e) { + n.setTime(+ n + e * t) + }, function (n, e) { + return (e - n) / t + }) + : yd + : null + }; + var gd = yd.range, + md = 1e3, + xd = 6e4, + bd = 36e5, + wd = 864e5, + Md = 6048e5, + Td = Qn(function (t) { + t.setTime(Math.floor(t / md) * md) + }, function (t, n) { + t.setTime(+ t + n * md) + }, function (t, n) { + return (n - t) / md + }, function (t) { + return t.getUTCSeconds() + }), + Nd = Td.range, + kd = Qn(function (t) { + t.setTime(Math.floor(t / xd) * xd) + }, function (t, n) { + t.setTime(+ t + n * xd) + }, function (t, n) { + return (n - t) / xd + }, function (t) { + return t.getMinutes() + }), + Sd = kd.range, + Ad = Qn(function (t) { + var n = t.getTimezoneOffset() * xd % bd; + n < 0 && (n += bd), + t.setTime(Math.floor((+ t - n) / bd) * bd + n) + }, function (t, n) { + t.setTime(+ t + n * bd) + }, function (t, n) { + return (n - t) / bd + }, function (t) { + return t.getHours() + }), + Ed = Ad.range, + Cd = Qn(function (t) { + t.setHours(0, 0, 0, 0) + }, function (t, n) { + t.setDate(t.getDate() + n) + }, function (t, n) { + return (n - t - (n.getTimezoneOffset() - t.getTimezoneOffset()) * xd) / wd + }, function (t) { + return t.getDate() - 1 + }), + zd = Cd.range, + Pd = Kn(0), + qd = Kn(1), + Ld = Kn(2), + Rd = Kn(3), + Ud = Kn(4), + Dd = Kn(5), + Od = Kn(6), + Fd = Pd.range, + Id = qd.range, + Yd = Ld.range, + Bd = Rd.range, + jd = Ud.range, + Hd = Dd.range, + Xd = Od.range, + Vd = Qn(function (t) { + t.setDate(1), + t.setHours(0, 0, 0, 0) + }, function (t, n) { + t.setMonth(t.getMonth() + n) + }, function (t, n) { + return n.getMonth() - t.getMonth() + 12 * (n.getFullYear() - t.getFullYear()) + }, function (t) { + return t.getMonth() + }), + Wd = Vd.range, + $d = Qn(function (t) { + t.setMonth(0, 1), + t.setHours(0, 0, 0, 0) + }, function (t, n) { + t.setFullYear(t.getFullYear() + n) + }, function (t, n) { + return n.getFullYear() - t.getFullYear() + }, function (t) { + return t.getFullYear() + }); + $d.every = function (t) { + return isFinite(t = Math.floor(t)) && t > 0 + ? Qn(function (n) { + n.setFullYear(Math.floor(n.getFullYear() / t) * t), + n.setMonth(0, 1), + n.setHours(0, 0, 0, 0) + }, function (n, e) { + n.setFullYear(n.getFullYear() + e * t) + }) + : null + }; + var Zd = $d.range, + Gd = Qn(function (t) { + t.setUTCSeconds(0, 0) + }, function (t, n) { + t.setTime(+ t + n * xd) + }, function (t, n) { + return (n - t) / xd + }, function (t) { + return t.getUTCMinutes() + }), + Jd = Gd.range, + Qd = Qn(function (t) { + t.setUTCMinutes(0, 0, 0) + }, function (t, n) { + t.setTime(+ t + n * bd) + }, function (t, n) { + return (n - t) / bd + }, function (t) { + return t.getUTCHours() + }), + Kd = Qd.range, + tv = Qn(function (t) { + t.setUTCHours(0, 0, 0, 0) + }, function (t, n) { + t.setUTCDate(t.getUTCDate() + n) + }, function (t, n) { + return (n - t) / wd + }, function (t) { + return t.getUTCDate() - 1 + }), + nv = tv.range, + ev = te(0), + rv = te(1), + iv = te(2), + ov = te(3), + uv = te(4), + av = te(5), + cv = te(6), + sv = ev.range, + fv = rv.range, + lv = iv.range, + hv = ov.range, + pv = uv.range, + dv = av.range, + vv = cv.range, + _v = Qn(function (t) { + t.setUTCDate(1), + t.setUTCHours(0, 0, 0, 0) + }, function (t, n) { + t.setUTCMonth(t.getUTCMonth() + n) + }, function (t, n) { + return n.getUTCMonth() - t.getUTCMonth() + 12 * (n.getUTCFullYear() - t.getUTCFullYear()) + }, function (t) { + return t.getUTCMonth() + }), + yv = _v.range, + gv = Qn(function (t) { + t.setUTCMonth(0, 1), + t.setUTCHours(0, 0, 0, 0) + }, function (t, n) { + t.setUTCFullYear(t.getUTCFullYear() + n) + }, function (t, n) { + return n.getUTCFullYear() - t.getUTCFullYear() + }, function (t) { + return t.getUTCFullYear() + }); + gv.every = function (t) { + return isFinite(t = Math.floor(t)) && t > 0 + ? Qn(function (n) { + n.setUTCFullYear(Math.floor(n.getUTCFullYear() / t) * t), + n.setUTCMonth(0, 1), + n.setUTCHours(0, 0, 0, 0) + }, function (n, e) { + n.setUTCFullYear(n.getUTCFullYear() + e * t) + }) + : null + }; + var mv, + xv = gv.range, + bv = function (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) + ] + }, + wv = function (t) { + return t = bv(Math.abs(t)), + t + ? t[1] + : NaN + }, + Mv = function (t, n) { + return function (e, r) { + for (var i = e.length, o = [], u = 0, a = t[0], c = 0; i > 0 && a > 0 && (c + a + 1 > r && (a = Math.max(1, r - c)), o.push(e.substring(i -= a, i + a)), !((c += a + 1) > r));) + a = t[u = (u + 1) % t.length]; + return o + .reverse() + .join(n) + } + }, + Tv = function (t, n) { + t = t.toPrecision(n); + t : for (var e, r = t.length, i = 1, o = -1; i < r; ++i) + switch (t[i]) { + case ".": + o = e = i; + break; + case "0": + 0 === o && (o = i), + e = i; + break; + case "e": + break t; + default: + o > 0 && (o = 0) + } + return o > 0 + ? t.slice(0, o) + t.slice(e + 1) + : t + }, + Nv = function (t, n) { + var e = bv(t, n); + if (!e) + return t + ""; + var r = e[0], + i = e[1], + o = i - (mv = 3 * Math.max(-8, Math.min(8, Math.floor(i / 3)))) + 1, + u = r.length; + return o === u + ? r + : o > u + ? r + new Array(o - u + 1).join("0") + : o > 0 + ? r.slice(0, o) + "." + r.slice(o) + : "0." + new Array(1 - o).join("0") + bv(t, Math.max(0, n + o - 1))[0] + }, + kv = function (t, n) { + var e = bv(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") + }, + Sv = { + "": Tv, + "%": function (t, n) { + return (100 * t).toFixed(n) + }, + b: function (t) { + return Math + .round(t) + .toString(2) + }, + c: function (t) { + return t + "" + }, + d: function (t) { + return Math + .round(t) + .toString(10) + }, + e: function (t, n) { + return t.toExponential(n) + }, + f: function (t, n) { + return t.toFixed(n) + }, + g: function (t, n) { + return t.toPrecision(n) + }, + o: function (t) { + return Math + .round(t) + .toString(8) + }, + p: function (t, n) { + return kv(100 * t, n) + }, + r: kv, + s: Nv, + X: function (t) { + return Math + .round(t) + .toString(16) + .toUpperCase() + }, + x: function (t) { + return Math + .round(t) + .toString(16) + } + }, + Av = /^(?:(.)?([<>=^]))?([+\-\( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?([a-z%])?$/i, + Ev = function (t) { + return new ne(t) + }; + ne.prototype.toString = function () { + return this.fill + this.align + this.sign + this.symbol + (this.zero + ? "0" + : "") + (null == this.width + ? "" + : Math.max(1, 0 | this.width)) + (this.comma + ? "," + : "") + (null == this.precision + ? "" + : "." + Math.max(0, 0 | this.precision)) + this.type + }; + var Cv, + zv = [ + "y", + "z", + "a", + "f", + "p", + "n", + "µ", + "m", + "", + "k", + "M", + "G", + "T", + "P", + "E", + "Z", + "Y" + ], + Pv = function (t) { + function n(t) { + function n(t) { + var n, + i, + c, + g = d, + m = v; + if ("c" === p) + m = _(t) + m, + t = ""; + else { + t =+ t; + var x = (t < 0 || 1 / t < 0) && (t *= -1, !0); + if (t = _(t, h), x) + for (n = -1, i = t.length, x = !1; ++n < i;) + if (c = t.charCodeAt(n), 48 < c && c < 58 || "x" === p && 96 < c && c < 103 || "X" === p && 64 < c && c < 71) { + x = !0; + break + } + if (g = (x + ? "(" === a + ? a + : "-" + : "-" === a || "(" === a + ? "" + : a) + g, m = m + ("s" === p + ? zv[8 + mv / 3] + : "") + (x && "(" === a + ? ")" + : ""), y) + for (n = -1, i = t.length; ++n < i;) + if (c = t.charCodeAt(n), 48 > c || c > 57) { + m = (46 === c + ? o + t.slice(n + 1) + : t.slice(n)) + m, + t = t.slice(0, n); + break + } + } + l && !s && (t = r(t, 1 / 0)); + var b = g.length + t.length + m.length, + w = b < f + ? new Array(f - b + 1).join(e) + : ""; + switch (l && s && (t = r(w + t, w.length + ? f - m.length + : 1 / 0), w = ""), u) { + case "<": + return g + t + m + w; + case "=": + return g + w + t + m; + case "^": + return w.slice(0, b = w.length >> 1) + g + t + m + w.slice(b) + } + return w + g + t + m + } + t = Ev(t); + var e = t.fill, + u = t.align, + a = t.sign, + c = t.symbol, + s = t.zero, + f = t.width, + l = t.comma, + h = t.precision, + p = t.type, + d = "$" === c + ? i[0] + : "#" === c && /[boxX]/.test(p) + ? "0" + p.toLowerCase() + : "", + v = "$" === c + ? i[1] + : /[%p]/.test(p) + ? "%" + : "", + _ = Sv[p], + y = !p || /[defgprs%]/.test(p); + return h = null == h + ? p + ? 6 + : 12 + : /[gprs]/.test(p) + ? Math.max(1, Math.min(21, h)) + : Math.max(0, Math.min(20, h)), + n.toString = function () { + return t + "" + }, + n + } + function e(t, e) { + var r = n((t = Ev(t), t.type = "f", t)), + i = 3 * Math.max(-8, Math.min(8, Math.floor(wv(e) / 3))), + o = Math.pow(10, -i), + u = zv[8 + i / 3]; + return function (t) { + return r(o * t) + u + } + } + var r = t.grouping && t.thousands + ? Mv(t.grouping, t.thousands) + : ee, + i = t.currency, + o = t.decimal; + return {format: n, formatPrefix: e} + }; + re({ + decimal: ".", + thousands: ",", + grouping: [3], + currency: ["$", ""] + }); + var qv, + Lv = function (t) { + return Math.max(0, -wv(Math.abs(t))) + }, + Rv = function (t, n) { + return Math.max(0, 3 * Math.max(-8, Math.min(8, Math.floor(wv(n) / 3))) - wv(Math.abs(t))) + }, + Uv = function (t, n) { + return t = Math.abs(t), + n = Math.abs(n) - t, + Math.max(0, wv(n) - wv(t)) + 1 + }, + Dv = { + "-": "", + _: " ", + 0: "0" + }, + Ov = /^\s*\d+/, + Fv = /^%/, + Iv = /[\\\^\$\*\+\?\|\[\]\(\)\.\{\}]/g; + nr({ + 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 Yv = "%Y-%m-%dT%H:%M:%S.%LZ", + Bv = Date.prototype.toISOString + ? er + : t.utcFormat(Yv), + jv =+ new Date("2000-01-01T00:00:00.000Z") + ? rr + : t.utcParse(Yv), + Hv = Array.prototype, + Xv = Hv.map, + Vv = Hv.slice, + Wv = { + name: "implicit" + }, + $v = function (t) { + return function () { + return t + } + }, + Zv = function (t) { + return + t + }, + Gv = [ + 0, 1 + ], + Jv = function (n, r, i) { + var o, + u = n[0], + a = n[n.length - 1], + c = e(u, a, null == r + ? 10 + : r); + switch (i = Ev(null == i + ? ",f" + : i), i.type) { + case "s": + var s = Math.max(Math.abs(u), Math.abs(a)); + return null != i.precision || isNaN(o = Rv(c, s)) || (i.precision = o), + t.formatPrefix(i, s); + case "": + case "e": + case "g": + case "p": + case "r": + null != i.precision || isNaN(o = Uv(c, Math.max(Math.abs(u), Math.abs(a)))) || (i.precision = o - ("e" === i.type)); + break; + case "f": + case "%": + null != i.precision || isNaN(o = Lv(c)) || (i.precision = o - 2 * ("%" === i.type)) + } + return t.format(i) + }, + Qv = function (t, n) { + t = t.slice(); + var e, + r = 0, + i = t.length - 1, + o = t[r], + u = t[i]; + return u < o && (e = r, r = i, i = e, e = o, o = u, u = e), + t[r] = n.floor(o), + t[i] = n.ceil(u), + t + }, + Kv = 1e3, + t_ = 60 * Kv, + n_ = 60 * t_, + e_ = 24 * n_, + r_ = 7 * e_, + i_ = 30 * e_, + o_ = 365 * e_, + u_ = function () { + return qr($d, Vd, Pd, Cd, Ad, kd, Td, yd, t.timeFormat).domain([ + new Date(2e3, 0, 1), + new Date(2e3, 0, 2) + ]) + }, + a_ = function () { + return qr(gv, _v, ev, tv, Qd, Gd, Td, yd, t.utcFormat).domain([ + Date.UTC(2e3, 0, 1), + Date.UTC(2e3, 0, 2) + ]) + }, + c_ = function (t) { + return t + .match(/.{6}/g) + .map(function (t) { + return "#" + t + }) + }, + s_ = c_("1f77b4ff7f0e2ca02cd627289467bd8c564be377c27f7f7fbcbd2217becf"), + f_ = c_("393b795254a36b6ecf9c9ede6379398ca252b5cf6bcedb9c8c6d31bd9e39e7ba52e7cb94843c39ad" + + "494ad6616be7969c7b4173a55194ce6dbdde9ed6"), + l_ = c_("3182bd6baed69ecae1c6dbefe6550dfd8d3cfdae6bfdd0a231a35474c476a1d99bc7e9c0756bb19e" + + "9ac8bcbddcdadaeb636363969696bdbdbdd9d9d9"), + h_ = c_("1f77b4aec7e8ff7f0effbb782ca02c98df8ad62728ff98969467bdc5b0d58c564bc49c94e377c2f7" + + "b6d27f7f7fc7c7c7bcbd22dbdb8d17becf9edae5"), + p_ = qp(ln(300, .5, 0), ln(-240, .5, 1)), + d_ = qp(ln(-100, .75, .35), ln(80, 1.5, .8)), + v_ = qp(ln(260, .75, .35), ln(80, 1.5, .8)), + __ = ln(), + y_ = function (t) { + (t < 0 || t > 1) && (t -= Math.floor(t)); + var n = Math.abs(t - .5); + return __.h = 360 * t - 100, + __.s = 1.5 - 1.5 * n, + __.l = .8 - .9 * n, + __ + "" + }, + g_ = Lr(c_("44015444025645045745055946075a46085c460a5d460b5e470d60470e6147106347116447136548" + + "146748166848176948186a481a6c481b6d481c6e481d6f481f704820714821734823744824754825" + + "76482677482878482979472a7a472c7a472d7b472e7c472f7d46307e46327e46337f463480453581" + + "453781453882443983443a83443b84433d84433e85423f8542408642418641428741448740458840" + + "46883f47883f48893e49893e4a893e4c8a3d4d8a3d4e8a3c4f8a3c508b3b518b3b528b3a538b3a54" + + "8c39558c39568c38588c38598c375a8c375b8d365c8d365d8d355e8d355f8d34608d34618d33628d" + + "33638d32648e32658e31668e31678e31688e30698e306a8e2f6b8e2f6c8e2e6d8e2e6e8e2e6f8e2d" + + "708e2d718e2c718e2c728e2c738e2b748e2b758e2a768e2a778e2a788e29798e297a8e297b8e287c" + + "8e287d8e277e8e277f8e27808e26818e26828e26828e25838e25848e25858e24868e24878e23888e" + + "23898e238a8d228b8d228c8d228d8d218e8d218f8d21908d21918c20928c20928c20938c1f948c1f" + + "958b1f968b1f978b1f988b1f998a1f9a8a1e9b8a1e9c891e9d891f9e891f9f881fa0881fa1881fa1" + + "871fa28720a38620a48621a58521a68522a78522a88423a98324aa8325ab8225ac8226ad8127ad81" + + "28ae8029af7f2ab07f2cb17e2db27d2eb37c2fb47c31b57b32b67a34b67935b77937b87838b9773a" + + "ba763bbb753dbc743fbc7340bd7242be7144bf7046c06f48c16e4ac16d4cc26c4ec36b50c46a52c5" + + "6954c56856c66758c7655ac8645cc8635ec96260ca6063cb5f65cb5e67cc5c69cd5b6ccd5a6ece58" + + "70cf5773d05675d05477d1537ad1517cd2507fd34e81d34d84d44b86d54989d5488bd6468ed64590" + + "d74393d74195d84098d83e9bd93c9dd93ba0da39a2da37a5db36a8db34aadc32addc30b0dd2fb2dd" + + "2db5de2bb8de29bade28bddf26c0df25c2df23c5e021c8e020cae11fcde11dd0e11cd2e21bd5e21a" + + "d8e219dae319dde318dfe318e2e418e5e419e7e419eae51aece51befe51cf1e51df4e61ef6e620f8" + + "e621fbe723fde725")), + m_ = Lr(c_("00000401000501010601010802010902020b02020d03030f03031204041405041606051806051a07" + + "061c08071e0907200a08220b09240c09260d0a290e0b2b100b2d110c2f120d31130d34140e36150e" + + "38160f3b180f3d19103f1a10421c10441d11471e114920114b21114e221150241253251255271258" + + "29115a2a115c2c115f2d11612f116331116533106734106936106b38106c390f6e3b0f703d0f713f" + + "0f72400f74420f75440f764510774710784910784a10794c117a4e117b4f127b51127c52137c5413" + + "7d56147d57157e59157e5a167e5c167f5d177f5f187f601880621980641a80651a80671b80681c81" + + "6a1c816b1d816d1d816e1e81701f81721f817320817521817621817822817922827b23827c23827e" + + "24828025828125818326818426818627818827818928818b29818c29818e2a81902a81912b81932b" + + "80942c80962c80982d80992d809b2e7f9c2e7f9e2f7fa02f7fa1307ea3307ea5317ea6317da8327d" + + "aa337dab337cad347cae347bb0357bb2357bb3367ab5367ab73779b83779ba3878bc3978bd3977bf" + + "3a77c03a76c23b75c43c75c53c74c73d73c83e73ca3e72cc3f71cd4071cf4070d0416fd2426fd343" + + "6ed5446dd6456cd8456cd9466bdb476adc4869de4968df4a68e04c67e24d66e34e65e44f64e55064" + + "e75263e85362e95462ea5661eb5760ec5860ed5a5fee5b5eef5d5ef05f5ef1605df2625df2645cf3" + + "655cf4675cf4695cf56b5cf66c5cf66e5cf7705cf7725cf8745cf8765cf9785df9795df97b5dfa7d" + + "5efa7f5efa815ffb835ffb8560fb8761fc8961fc8a62fc8c63fc8e64fc9065fd9266fd9467fd9668" + + "fd9869fd9a6afd9b6bfe9d6cfe9f6dfea16efea36ffea571fea772fea973feaa74feac76feae77fe" + + "b078feb27afeb47bfeb67cfeb77efeb97ffebb81febd82febf84fec185fec287fec488fec68afec8" + + "8cfeca8dfecc8ffecd90fecf92fed194fed395fed597fed799fed89afdda9cfddc9efddea0fde0a1" + + "fde2a3fde3a5fde5a7fde7a9fde9aafdebacfcecaefceeb0fcf0b2fcf2b4fcf4b6fcf6b8fcf7b9fc" + + "f9bbfcfbbdfcfdbf")), + x_ = Lr(c_("00000401000501010601010802010a02020c02020e03021004031204031405041706041907051b08" + + "051d09061f0a07220b07240c08260d08290e092b10092d110a30120a32140b34150b37160b39180c" + + "3c190c3e1b0c411c0c431e0c451f0c48210c4a230c4c240c4f260c51280b53290b552b0b572d0b59" + + "2f0a5b310a5c320a5e340a5f3609613809623909633b09643d09653e0966400a67420a68440a6845" + + "0a69470b6a490b6a4a0c6b4c0c6b4d0d6c4f0d6c510e6c520e6d540f6d550f6d57106e59106e5a11" + + "6e5c126e5d126e5f136e61136e62146e64156e65156e67166e69166e6a176e6c186e6d186e6f196e" + + "71196e721a6e741a6e751b6e771c6d781c6d7a1d6d7c1d6d7d1e6d7f1e6c801f6c82206c84206b85" + + "216b87216b88226a8a226a8c23698d23698f24699025689225689326679526679727669827669a28" + + "659b29649d29649f2a63a02a63a22b62a32c61a52c60a62d60a82e5fa92e5eab2f5ead305dae305c" + + "b0315bb1325ab3325ab43359b63458b73557b93556ba3655bc3754bd3853bf3952c03a51c13a50c3" + + "3b4fc43c4ec63d4dc73e4cc83f4bca404acb4149cc4248ce4347cf4446d04545d24644d34743d448" + + "42d54a41d74b3fd84c3ed94d3dda4e3cdb503bdd513ade5238df5337e05536e15635e25734e35933" + + "e45a31e55c30e65d2fe75e2ee8602de9612bea632aeb6429eb6628ec6726ed6925ee6a24ef6c23ef" + + "6e21f06f20f1711ff1731df2741cf3761bf37819f47918f57b17f57d15f67e14f68013f78212f784" + + "10f8850ff8870ef8890cf98b0bf98c0af98e09fa9008fa9207fa9407fb9606fb9706fb9906fb9b06" + + "fb9d07fc9f07fca108fca309fca50afca60cfca80dfcaa0ffcac11fcae12fcb014fcb216fcb418fb" + + "b61afbb81dfbba1ffbbc21fbbe23fac026fac228fac42afac62df9c72ff9c932f9cb35f8cd37f8cf" + + "3af7d13df7d340f6d543f6d746f5d949f5db4cf4dd4ff4df53f4e156f3e35af3e55df2e661f2e865" + + "f2ea69f1ec6df1ed71f1ef75f1f179f2f27df2f482f3f586f3f68af4f88ef5f992f6fa96f8fb9af9" + + "fc9dfafda1fcffa4")), + b_ = Lr(c_("0d088710078813078916078a19068c1b068d1d068e20068f2206902406912605912805922a05932c" + + "05942e05952f059631059733059735049837049938049a3a049a3c049b3e049c3f049c41049d4303" + + "9e44039e46039f48039f4903a04b03a14c02a14e02a25002a25102a35302a35502a45601a45801a4" + + "5901a55b01a55c01a65e01a66001a66100a76300a76400a76600a76700a86900a86a00a86c00a86e" + + "00a86f00a87100a87201a87401a87501a87701a87801a87a02a87b02a87d03a87e03a88004a88104" + + "a78305a78405a78606a68707a68808a68a09a58b0aa58d0ba58e0ca48f0da4910ea3920fa39410a2" + + "9511a19613a19814a099159f9a169f9c179e9d189d9e199da01a9ca11b9ba21d9aa31e9aa51f99a6" + + "2098a72197a82296aa2395ab2494ac2694ad2793ae2892b02991b12a90b22b8fb32c8eb42e8db52f" + + "8cb6308bb7318ab83289ba3388bb3488bc3587bd3786be3885bf3984c03a83c13b82c23c81c33d80" + + "c43e7fc5407ec6417dc7427cc8437bc9447aca457acb4679cc4778cc4977cd4a76ce4b75cf4c74d0" + + "4d73d14e72d24f71d35171d45270d5536fd5546ed6556dd7566cd8576bd9586ada5a6ada5b69db5c" + + "68dc5d67dd5e66de5f65de6164df6263e06363e16462e26561e26660e3685fe4695ee56a5de56b5d" + + "e66c5ce76e5be76f5ae87059e97158e97257ea7457eb7556eb7655ec7754ed7953ed7a52ee7b51ef" + + "7c51ef7e50f07f4ff0804ef1814df1834cf2844bf3854bf3874af48849f48948f58b47f58c46f68d" + + "45f68f44f79044f79143f79342f89441f89540f9973ff9983ef99a3efa9b3dfa9c3cfa9e3bfb9f3a" + + "fba139fba238fca338fca537fca636fca835fca934fdab33fdac33fdae32fdaf31fdb130fdb22ffd" + + "b42ffdb52efeb72dfeb82cfeba2cfebb2bfebd2afebe2afec029fdc229fdc328fdc527fdc627fdc8" + + "27fdca26fdcb26fccd25fcce25fcd025fcd225fbd324fbd524fbd724fad824fada24f9dc24f9dd25" + + "f8df25f8e125f7e225f7e425f6e626f6e826f5e926f5eb27f4ed27f3ee27f3f027f2f227f1f426f1" + + "f525f0f724f0f921")), + w_ = "http://www.w3.org/1999/xhtml", + M_ = { + svg: "http://www.w3.org/2000/svg", + xhtml: w_, + xlink: "http://www.w3.org/1999/xlink", + xml: "http://www.w3.org/XML/1998/namespace", + xmlns: "http://www.w3.org/2000/xmlns/" + }, + T_ = function (t) { + var n = t += "", + e = n.indexOf(":"); + return e >= 0 && "xmlns" !== (n = t.slice(0, e)) && (t = t.slice(e + 1)), + M_.hasOwnProperty(n) + ? { + space: M_[n], + local: t + } + : t + }, + N_ = function (t) { + var n = T_(t); + return (n.local + ? Dr + : Ur)(n) + }, + k_ = 0; + Fr.prototype = Or.prototype = { + constructor: Fr, + 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._ + } + }; + var S_ = function (t) { + return function () { + return this.matches(t) + } + }; + if ("undefined" != typeof document) { + var A_ = document.documentElement; + if (!A_.matches) { + var E_ = A_.webkitMatchesSelector || A_.msMatchesSelector || A_.mozMatchesSelector || A_.oMatchesSelector; + S_ = function (t) { + return function () { + return E_.call(this, t) + } + } + } + } + var C_ = S_, + z_ = {}; + if (t.event = null, "undefined" != typeof document) { + var P_ = document.documentElement; + "onmouseenter" in P_ || (z_ = { + mouseenter: "mouseover", + mouseleave: "mouseout" + }) + } + var q_ = function (t, n, e) { + var r, + i, + o = Br(t + ""), + u = o.length; + { + if (!(arguments.length < 2)) { + for (a = n + ? Hr + : jr, null == e && (e = !1), r = 0; r < u; ++r) + this.each(a(o[r], n, e)); + return this + } + var a = this + .node() + .__on; + if (a) + for (var c, s = 0, f = a.length; s < f; ++s) + for (r = 0, c = a[s]; r < u; ++r) + if ((i = o[r]).type === c.type && i.name === c.name) + return c.value + } + }, + L_ = function () { + for (var n, e = t.event; n = e.sourceEvent;) + e = n; + return e + }, + R_ = function (t, n) { + var e = t.ownerSVGElement || t; + if (e.createSVGPoint) { + var r = e.createSVGPoint(); + return r.x = n.clientX, + r.y = n.clientY, + r = r.matrixTransform(t.getScreenCTM().inverse()), + [r.x, r.y] + } + var i = t.getBoundingClientRect(); + return [ + n.clientX - i.left - t.clientLeft, + n.clientY - i.top - t.clientTop + ] + }, + U_ = function (t) { + var n = L_(); + return n.changedTouches && (n = n.changedTouches[0]), + R_(t, n) + }, + D_ = function (t) { + return null == t + ? Vr + : function () { + return this.querySelector(t) + } + }, + O_ = function (t) { + "function" != typeof t && (t = D_(t)); + for (var n = this._groups, e = n.length, r = new Array(e), i = 0; i < e; ++i) + for (var o, u, a = n[i], c = a.length, s = r[i] = new Array(c), f = 0; f < c; ++f) + (o = a[f]) && (u = t.call(o, o.__data__, f, a)) && ("__data__" in o && (u.__data__ = o.__data__), s[f] = u); + return new zi(r, this._parents) + }, + F_ = function (t) { + return null == t + ? Wr + : function () { + return this.querySelectorAll(t) + } + }, + I_ = function (t) { + "function" != typeof t && (t = F_(t)); + for (var n = this._groups, e = n.length, r = [], i = [], o = 0; o < e; ++o) + for (var u, a = n[o], c = a.length, s = 0; s < c; ++s) + (u = a[s]) && (r.push(t.call(u, u.__data__, s, a)), i.push(u)); + return new zi(r, i) + }, + Y_ = function (t) { + "function" != typeof t && (t = C_(t)); + for (var n = this._groups, e = n.length, r = new Array(e), i = 0; i < e; ++i) + for (var o, u = n[i], a = u.length, c = r[i] = [], s = 0; s < a; ++s) + (o = u[s]) && t.call(o, o.__data__, s, u) && c.push(o); + return new zi(r, this._parents) + }, + B_ = function (t) { + return new Array(t.length) + }, + j_ = function () { + return new zi(this._enter || this._groups.map(B_), this._parents) + }; + $r.prototype = { + constructor: $r, + 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) + } + }; + var H_ = function (t) { + return function () { + return t + } + }, + X_ = "$", + V_ = function (t, n) { + if (!t) + return p = new Array(this.size()), + s = -1, + this.each(function (t) { + p[++s] = t + }), + p; + var e = n + ? Gr + : Zr, + r = this._parents, + i = this._groups; + "function" != typeof t && (t = H_(t)); + for (var o = i.length, u = new Array(o), a = new Array(o), c = new Array(o), s = 0; s < o; ++s) { + var f = r[s], + l = i[s], + h = l.length, + p = t.call(f, f && f.__data__, s, r), + d = p.length, + v = a[s] = new Array(d), + _ = u[s] = new Array(d), + y = c[s] = new Array(h); + e(f, l, v, _, y, p, n); + for (var g, m, x = 0, b = 0; x < d; ++x) + if (g = v[x]) { + for (x >= b && (b = x + 1); !(m = _[b]) && ++b < d;) + ; + g._next = m || null + } + } + return u = new zi(u, r), + u._enter = a, + u._exit = c, + u + }, + W_ = function () { + return new zi(this._exit || this._groups.map(B_), this._parents) + }, + $_ = function (t) { + for (var n = this._groups, e = t._groups, r = n.length, i = e.length, o = Math.min(r, i), u = new Array(r), a = 0; a < o; ++a) + for (var c, s = n[a], f = e[a], l = s.length, h = u[a] = new Array(l), p = 0; p < l; ++p) + (c = s[p] || f[p]) && (h[p] = c); + for (; a < r; ++a) + u[a] = n[a]; + return new zi(u, this._parents) + }, + Z_ = function () { + for (var t = this._groups, n = -1, e = t.length; ++n < e;) + for (var r, i = t[n], o = i.length - 1, u = i[o]; --o >= 0;) + (r = i[o]) && (u && u !== r.nextSibling && u.parentNode.insertBefore(r, u), u = r); + return this + }, + G_ = function (t) { + function n(n, e) { + return n && e + ? t(n.__data__, e.__data__) + : !n - !e + } + t || (t = Jr); + for (var e = this._groups, r = e.length, i = new Array(r), o = 0; o < r; ++o) { + for (var u, a = e[o], c = a.length, s = i[o] = new Array(c), f = 0; f < c; ++f) + (u = a[f]) && (s[f] = u); + s.sort(n) + } + return new zi(i, this._parents).order() + }, + J_ = function () { + var t = arguments[0]; + return arguments[0] = this, + t.apply(null, arguments), + this + }, + Q_ = function () { + var t = new Array(this.size()), + n = -1; + return this.each(function () { + t[++n] = this + }), + t + }, + K_ = 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 u = r[i]; + if (u) + return u + } + return null + }, + ty = function () { + var t = 0; + return this.each(function () { + ++t + }), + t + }, + ny = function () { + return !this.node() + }, + ey = function (t) { + for (var n = this._groups, e = 0, r = n.length; e < r; ++e) + for (var i, o = n[e], u = 0, a = o.length; u < a; ++u) + (i = o[u]) && t.call(i, i.__data__, u, o); + return this + }, + ry = function (t, n) { + var e = T_(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 + ? Kr + : Qr + : "function" == typeof n + ? e.local + ? ri + : ei + : e.local + ? ni + : ti)(e, n)) + }, + iy = function (t) { + return t.ownerDocument && t.ownerDocument.defaultView || t.document && t || t.defaultView + }, + oy = function (t, n, e) { + var r; + return arguments.length > 1 + ? this.each((null == n + ? ii + : "function" == typeof n + ? ui + : oi)(t, n, null == e + ? "" + : e)) + : iy(r = this.node()) + .getComputedStyle(r, null) + .getPropertyValue(t) + }, + uy = function (t, n) { + return arguments.length > 1 + ? this.each((null == n + ? ai + : "function" == typeof n + ? si + : ci)(t, n)) + : this.node()[t] + }; + hi.prototype = { + add: function (t) { + var n = this + ._names + .indexOf(t); + n < 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 ay = function (t, n) { + var e = fi(t + ""); + if (arguments.length < 2) { + for (var r = li(this.node()), i = -1, o = e.length; ++i < o;) + if (!r.contains(e[i])) + return !1; + return !0 + } + return this.each(("function" == typeof n + ? yi + : n + ? vi + : _i)(e, n)) + }, + cy = function (t) { + return arguments.length + ? this.each(null == t + ? gi + : ("function" == typeof t + ? xi + : mi)(t)) + : this + .node() + .textContent + }, + sy = function (t) { + return arguments.length + ? this.each(null == t + ? bi + : ("function" == typeof t + ? Mi + : wi)(t)) + : this + .node() + .innerHTML + }, + fy = function () { + return this.each(Ti) + }, + ly = function () { + return this.each(Ni) + }, + hy = function (t) { + var n = "function" == typeof t + ? t + : N_(t); + return this.select(function () { + return this.appendChild(n.apply(this, arguments)) + }) + }, + py = function (t, n) { + var e = "function" == typeof t + ? t + : N_(t), + r = null == n + ? ki + : "function" == typeof n + ? n + : D_(n); + return this.select(function () { + return this.insertBefore(e.apply(this, arguments), r.apply(this, arguments) || null) + }) + }, + dy = function () { + return this.each(Si) + }, + vy = function (t) { + return arguments.length + ? this.property("__data__", t) + : this + .node() + .__data__ + }, + _y = function (t, n) { + return this.each(("function" == typeof n + ? Ci + : Ei)(t, n)) + }, + yy = [null]; + zi.prototype = Pi.prototype = { + constructor: zi, + select: O_, + selectAll: I_, + filter: Y_, + data: V_, + enter: j_, + exit: W_, + merge: $_, + order: Z_, + sort: G_, + call: J_, + nodes: Q_, + node: K_, + size: ty, + empty: ny, + each: ey, + attr: ry, + style: oy, + property: uy, + classed: ay, + text: cy, + html: sy, + raise: fy, + lower: ly, + append: hy, + insert: py, + remove: dy, + datum: vy, + on: q_, + dispatch: _y + }; + var gy = function (t) { + return "string" == typeof t + ? new zi([ + [document.querySelector(t)] + ], [document.documentElement]) + : new zi([ + [t] + ], yy) + }, + my = function (t) { + return "string" == typeof t + ? new zi([document.querySelectorAll(t)], [document.documentElement]) + : new zi([null == t + ? [] + : t], yy) + }, + xy = function (t, n, e) { + arguments.length < 3 && (e = n, n = L_().changedTouches); + for (var r, i = 0, o = n + ? n.length + : 0; i < o; ++i) + if ((r = n[i]).identifier === e) + return R_(t, r); + return null + }, + by = function (t, n) { + null == n && (n = L_().touches); + for (var e = 0, r = n + ? n.length + : 0, i = new Array(r); e < r; ++e) + i[e] = R_(t, n[e]); + return i + }, + wy = Pn("start", "end", "interrupt"), + My = [], + Ty = 0, + Ny = 1, + ky = 2, + Sy = 3, + Ay = 4, + Ey = 5, + Cy = 6, + zy = function (t, n, e, r, i, o) { + var u = t.__transition; + if (u) { + if (e in u) + return + } else + t.__transition = {}; + Ui(t, e, { + name: n, + index: r, + group: i, + on: wy, + tween: My, + time: o.time, + delay: o.delay, + duration: o.duration, + ease: o.ease, + timer: null, + state: Ty + }) + }, + Py = function (t, n) { + var e, + r, + i, + o = t.__transition, + u = !0; + if (o) { + n = null == n + ? null + : n + ""; + for (i in o) + (e = o[i]).name === n + ? (r = e.state > ky && e.state < Ey, e.state = Cy, e.timer.stop(), r && e.on.call("interrupt", t, t.__data__, e.index, e.group), delete o[i]) + : u = !1; + u && delete t.__transition + } + }, + qy = function (t) { + return this.each(function () { + Py(this, t) + }) + }, + Ly = function (t, n) { + var e = this._id; + if (t += "", arguments.length < 2) { + for (var r, i = Ri(this.node(), e).tween, o = 0, u = i.length; o < u; ++o) + if ((r = i[o]).name === t) + return r.value; + return null + } + return this.each((null == n + ? Di + : Oi)(e, t, n)) + }, + Ry = function (t, n) { + var e; + return ("number" == typeof n + ? lp + : n instanceof Bt + ? up + : (e = Bt(n)) + ? (n = e, up) + : vp)(t, n) + }, + Uy = function (t, n) { + var e = T_(t), + r = "transform" === e + ? wp + : Ry; + return this.attrTween(t, "function" == typeof n + ? (e.local + ? Xi + : Hi)(e, r, Fi(this, "attr." + t, n)) + : null == n + ? (e.local + ? Yi + : Ii)(e) + : (e.local + ? ji + : Bi)(e, r, n)) + }, + Dy = 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 = T_(t); + return this.tween(e, (r.local + ? Vi + : Wi)(r, n)) + }, + Oy = function (t) { + var n = this._id; + return arguments.length + ? this.each(("function" == typeof t + ? $i + : Zi)(n, t)) + : Ri(this.node(), n).delay + }, + Fy = function (t) { + var n = this._id; + return arguments.length + ? this.each(("function" == typeof t + ? Gi + : Ji)(n, t)) + : Ri(this.node(), n).duration + }, + Iy = function (t) { + var n = this._id; + return arguments.length + ? this.each(Qi(n, t)) + : Ri(this.node(), n).ease + }, + Yy = function (t) { + "function" != typeof t && (t = C_(t)); + for (var n = this._groups, e = n.length, r = new Array(e), i = 0; i < e; ++i) + for (var o, u = n[i], a = u.length, c = r[i] = [], s = 0; s < a; ++s) + (o = u[s]) && t.call(o, o.__data__, s, u) && c.push(o); + return new so(r, this._parents, this._name, this._id) + }, + By = 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), u = new Array(r), a = 0; a < o; ++a) + for (var c, s = n[a], f = e[a], l = s.length, h = u[a] = new Array(l), p = 0; p < l; ++p) + (c = s[p] || f[p]) && (h[p] = c); + for (; a < r; ++a) + u[a] = n[a]; + return new so(u, this._parents, this._name, this._id) + }, + jy = function (t, n) { + var e = this._id; + return arguments.length < 2 + ? Ri(this.node(), e) + .on + .on(t) + : this.each(to(e, t, n)) + }, + Hy = function () { + return this.on("end.remove", no(this._id)) + }, + Xy = function (t) { + var n = this._name, + e = this._id; + "function" != typeof t && (t = D_(t)); + for (var r = this._groups, i = r.length, o = new Array(i), u = 0; u < i; ++u) + for (var a, c, s = r[u], f = s.length, l = o[u] = new Array(f), h = 0; h < f; ++h) + (a = s[h]) && (c = t.call(a, a.__data__, h, s)) && ("__data__" in a && (c.__data__ = a.__data__), l[h] = c, zy(l[h], n, e, h, l, Ri(a, e))); + return new so(o, this._parents, n, e) + }, + Vy = function (t) { + var n = this._name, + e = this._id; + "function" != typeof t && (t = F_(t)); + for (var r = this._groups, i = r.length, o = [], u = [], a = 0; a < i; ++a) + for (var c, s = r[a], f = s.length, l = 0; l < f; ++l) + if (c = s[l]) { + for (var h, p = t.call(c, c.__data__, l, s), d = Ri(c, e), v = 0, _ = p.length; v < _; ++v) + (h = p[v]) && zy(h, n, e, v, p, d); + o.push(p), + u.push(c) + } + return new so(o, u, n, e) + }, + Wy = Pi.prototype.constructor, + $y = function () { + return new Wy(this._groups, this._parents) + }, + Zy = function (t, n, e) { + var r = "transform" == (t += "") + ? bp + : Ry; + return null == n + ? this + .styleTween(t, eo(t, r)) + .on("end.style." + t, ro(t)) + : this.styleTween(t, "function" == typeof n + ? oo(t, r, Fi(this, "style." + t, n)) + : io(t, r, n), e) + }, + Gy = 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, uo(t, n, null == e + ? "" + : e)) + }, + Jy = function (t) { + return this.tween("text", "function" == typeof t + ? co(Fi(this, "text", t)) + : ao(null == t + ? "" + : t + "")) + }, + Qy = function () { + for (var t = this._name, n = this._id, e = lo(), r = this._groups, i = r.length, o = 0; o < i; ++o) + for (var u, a = r[o], c = a.length, s = 0; s < c; ++s) + if (u = a[s]) { + var f = Ri(u, n); + zy(u, t, e, s, a, { + time: f.time + f.delay + f.duration, + delay: 0, + duration: f.duration, + ease: f.ease + }) + } + return new so(r, this._parents, t, e) + }, + Ky = 0, + tg = Pi.prototype; + so.prototype = fo.prototype = { + constructor: so, + select: Xy, + selectAll: Vy, + filter: Yy, + merge: By, + selection: $y, + transition: Qy, + call: tg.call, + nodes: tg.nodes, + node: tg.node, + size: tg.size, + empty: tg.empty, + each: tg.each, + on: jy, + attr: Uy, + attrTween: Dy, + style: Zy, + styleTween: Gy, + text: Jy, + remove: Hy, + tween: Ly, + delay: Oy, + duration: Fy, + ease: Iy + }; + var ng = { + time: null, + delay: 0, + duration: 250, + ease: g + }, + eg = function (t) { + var n, + e; + t instanceof so + ? (n = t._id, t = t._name) + : (n = lo(), (e = ng).time = jn(), t = null == t + ? null + : t + ""); + for (var r = this._groups, i = r.length, o = 0; o < i; ++o) + for (var u, a = r[o], c = a.length, s = 0; s < c; ++s) + (u = a[s]) && zy(u, t, n, s, a, e || ho(u, n)); + return new so(r, this._parents, t, n) + }; + Pi.prototype.interrupt = qy, + Pi.prototype.transition = eg; + var rg = [null], + ig = function (t, n) { + var e, + r, + i = t.__transition; + if (i) { + n = null == n + ? null + : n + ""; + for (r in i) + if ((e = i[r]).state > Ny && e.name === n) + return new so([ + [t] + ], rg, n, + r) + } + return null + }, + og = Array.prototype.slice, + ug = function (t) { + return t + }, + ag = 1, + cg = 2, + sg = 3, + fg = 4, + lg = 1e-6, + hg = function () { + function t(t) { + var o, + u = 0; + t.eachAfter(function (t) { + var e = t.children; + e + ? (t.x = To(e), t.y = ko(e)) + : (t.x = o + ? u += n(t, o) + : 0, t.y = 0, o = t) + }); + var a = Ao(t), + c = Eo(t), + s = a.x - n(a, c) / 2, + f = c.x + n(c, a) / 2; + return t.eachAfter(i + ? function (n) { + n.x = (n.x - t.x) * e, + n.y = (t.y - n.y) * r + } + : function (n) { + n.x = (n.x - s) / (f - s) * e, + n.y = (1 - (t.y + ? n.y / t.y + : 1)) * r + }) + } + var n = Mo, + e = 1, + r = 1, + i = !1; + return t.separation = function (e) { + return arguments.length + ? (n = e, t) + : n + }, + t.size = function (n) { + return arguments.length + ? (i = !1, e =+ n[0], r =+ n[1], t) + : i + ? null + : [e, r] + }, + t.nodeSize = function (n) { + return arguments.length + ? (i = !0, e =+ n[0], r =+ n[1], t) + : i + ? [e, r] + : null + }, + t + }, + pg = function (t) { + var n, + e, + r, + i, + o = this, + u = [o]; + do + for (n = u.reverse(), u = []; o = n.pop();) + if (t(o), e = o.children) + for (r = 0, i = e.length; r < i; ++r) + u.push(e[r]); + while (u.length); + return this + }, + dg = function (t) { + for (var n, e, r = this, i = [r]; r = i.pop();) + if (t(r), n = r.children) + for (e = n.length - 1; e >= 0; --e) + i.push(n[e]); + return this + }, + vg = function (t) { + for (var n, e, r, i = this, o = [i], u = []; i = o.pop();) + if (u.push(i), n = i.children) + for (e = 0, r = n.length; e < r; ++e) + o.push(n[e]); + for (; i = u.pop();) + t(i); + return this + }, + _g = 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 + }) + }, + yg = function (t) { + return this.eachBefore(function (n) { + n.children && n + .children + .sort(t) + }) + }, + gg = function (t) { + for (var n = this, e = Co(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 + }, + mg = function () { + for (var t = this, n = [t]; t = t.parent;) + n.push(t); + return n + }, + xg = function () { + var t = []; + return this.each(function (n) { + t.push(n) + }), + t + }, + bg = function () { + var t = []; + return this.eachBefore(function (n) { + n.children || t.push(n) + }), + t + }, + wg = function () { + var t = this, + n = []; + return t.each(function (e) { + e !== t && n.push({source: e.parent, target: e}) + }), + n + }; + Uo.prototype = zo.prototype = { + constructor: Uo, + each: pg, + eachAfter: vg, + eachBefore: dg, + sum: _g, + sort: yg, + path: gg, + ancestors: mg, + descendants: xg, + leaves: bg, + links: wg, + copy: Po + }; + var Mg = function (t) { + for (var n, e = (t = t.slice()).length, r = null, i = r; e;) { + var o = new Do(t[e - 1]); + i = i + ? i.next = o + : r = o, + t[n] = t[--e] + } + return {head: r, tail: i} + }, + Tg = function (t) { + return Fo(Mg(t), []) + }, + Ng = function (t) { + return Wo(t), + t + }, + kg = function (t) { + return function () { + return t + } + }, + Sg = function () { + function t(t) { + return t.x = e / 2, + t.y = r / 2, + n + ? t + .eachBefore(Qo(n)) + .eachAfter(Ko(i, .5)) + .eachBefore(tu(1)) + : t + .eachBefore(Qo(Jo)) + .eachAfter(Ko(Go, 1)) + .eachAfter(Ko(i, t.r / Math.min(e, r))) + .eachBefore(tu(Math.min(e, r) / (2 * t.r))), + t + } + var n = null, + e = 1, + r = 1, + i = Go; + return t.radius = function (e) { + return arguments.length + ? (n = $o(e), t) + : n + }, + t.size = function (n) { + return arguments.length + ? (e =+ n[0], r =+ n[1], t) + : [e, r] + }, + t.padding = function (n) { + return arguments.length + ? (i = "function" == typeof n + ? n + : kg(+ n), t) + : i + }, + t + }, + Ag = function (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) + }, + Eg = function (t, n, e, r, i) { + for (var o, u = t.children, a = -1, c = u.length, s = t.value && (r - n) / t.value; ++a < c;) + o = u[a], + o.y0 = e, + o.y1 = i, + o.x0 = n, + o.x1 = n += o.value * s + }, + Cg = function () { + function t(t) { + var u = t.height + 1; + return t.x0 = t.y0 = i, + t.x1 = e, + t.y1 = r / u, + t.eachBefore(n(r, u)), + o && t.eachBefore(Ag), + t + } + function n(t, n) { + return function (e) { + e.children && Eg(e, e.x0, t * (e.depth + 1) / n, e.x1, t * (e.depth + 2) / n); + var r = e.x0, + o = e.y0, + u = e.x1 - i, + a = e.y1 - i; + u < r && (r = u = (r + u) / 2), + a < o && (o = a = (o + a) / 2), + e.x0 = r, + e.y0 = o, + e.x1 = u, + e.y1 = a + } + } + var e = 1, + r = 1, + i = 0, + o = !1; + return t.round = function (n) { + return arguments.length + ? (o = !!n, t) + : o + }, + t.size = function (n) { + return arguments.length + ? (e =+ n[0], r =+ n[1], t) + : [e, r] + }, + t.padding = function (n) { + return arguments.length + ? (i =+ n, t) + : i + }, + t + }, + zg = "$", + Pg = { + depth: -1 + }, + qg = {}, + Lg = function () { + function t(t) { + var r, + i, + o, + u, + a, + c, + s, + f = t.length, + l = new Array(f), + h = {}; + for (i = 0; i < f; ++i) + r = t[i], + a = l[i] = new Uo(r), + null != (c = n(r, i, t)) && (c += "") && (s = zg + (a.id = c), h[s] = s in h + ? qg + : a); + for (i = 0; i < f; ++i) + if (a = l[i], c = e(t[i], i, t), null != c && (c += "")) { + if (u = h[zg + c], !u) + throw new Error("missing: " + c); + if (u === qg) + throw new Error("ambiguous: " + c); + u.children + ? u + .children + .push(a) + : u.children = [a], + a.parent = u + } + else { + if (o) + throw new Error("multiple roots"); + o = a + } + if (!o) + throw new Error("no root"); + if (o.parent = Pg, o.eachBefore(function (t) { + t.depth = t.parent.depth + 1, + --f + }).eachBefore(Ro), o.parent = null, f > 0) + throw new Error("cycle"); + return o + } + var n = nu, + e = eu; + return t.id = function (e) { + return arguments.length + ? (n = Zo(e), t) + : n + }, + t.parentId = function (n) { + return arguments.length + ? (e = Zo(n), t) + : e + }, + t + }; + su.prototype = Object.create(Uo.prototype); + var Rg = function () { + function t(t) { + var r = fu(t); + if (r.eachAfter(n), r.parent.m = -r.z, r.eachBefore(e), c) + t.eachBefore(i); + else { + var s = t, + f = t, + l = t; + t.eachBefore(function (t) { + t.x < s.x && (s = t), + t.x > f.x && (f = t), + t.depth > l.depth && (l = t) + }); + var h = s === f + ? 1 + : o(s, f) / 2, + p = h - s.x, + d = u / (f.x + h + p), + v = a / (l.depth || 1); + t.eachBefore(function (t) { + t.x = (t.x + p) * d, + t.y = t.depth * v + }) + } + return t + } + function n(t) { + var n = t.children, + e = t.parent.children, + i = t.i + ? e[t.i - 1] + : null; + if (n) { + au(t); + var u = (n[0].z + n[n.length - 1].z) / 2; + i + ? (t.z = i.z + o(t._, i._), t.m = t.z - u) + : t.z = u + } else + i && (t.z = i.z + o(t._, i._)); + t.parent.A = r(t, i, t.parent.A || e[0]) + } + function e(t) { + t._.x = t.z + t.parent.m, + t.m += t.parent.m + } + function r(t, n, e) { + if (n) { + for (var r, i = t, u = t, a = n, c = i.parent.children[0], s = i.m, f = u.m, l = a.m, h = c.m; a = ou(a), i = iu(i), a && i;) + c = iu(c), + u = ou(u), + u.a = t, + r = a.z + l - i.z - s + o(a._, i._), + r > 0 && (uu(cu(a, t, e), t, r), s += r, f += r), + l += a.m, + s += i.m, + h += c.m, + f += u.m; + a && !ou(u) && (u.t = a, u.m += l - f), + i && !iu(c) && (c.t = i, c.m += s - h, e = t) + } + return e + } + function i(t) { + t.x *= u, + t.y = t.depth * a + } + var o = ru, + u = 1, + a = 1, + c = null; + return t.separation = function (n) { + return arguments.length + ? (o = n, t) + : o + }, + t.size = function (n) { + return arguments.length + ? (c = !1, u =+ n[0], a =+ n[1], t) + : c + ? null + : [u, a] + }, + t.nodeSize = function (n) { + return arguments.length + ? (c = !0, u =+ n[0], a =+ n[1], t) + : c + ? [u, a] + : null + }, + t + }, + Ug = function (t, n, e, r, i) { + for (var o, u = t.children, a = -1, c = u.length, s = t.value && (i - e) / t.value; ++a < c;) + o = u[a], + o.x0 = n, + o.x1 = r, + o.y0 = e, + o.y1 = e += o.value * s + }, + Dg = (1 + Math.sqrt(5)) / 2, + Og = function t(n) { + function e(t, e, r, i, o) { + lu(n, t, e, r, i, o) + } + return e.ratio = function (n) { + return t((n =+ n) > 1 + ? n + : 1) + }, + e + }(Dg), + Fg = function () { + function t(t) { + return t.x0 = t.y0 = 0, + t.x1 = i, + t.y1 = o, + t.eachBefore(n), + u = [0], + r && t.eachBefore(Ag), + t + } + function n(t) { + var n = u[t.depth], + r = t.x0 + n, + i = t.y0 + n, + o = t.x1 - n, + h = t.y1 - n; + o < r && (r = o = (r + o) / 2), + h < i && (i = h = (i + h) / 2), + t.x0 = r, + t.y0 = i, + t.x1 = o, + t.y1 = h, + t.children && (n = u[t.depth + 1] = a(t) / 2, r += l(t) - n, i += c(t) - n, o -= s(t) - n, h -= f(t) - n, o < r && (r = o = (r + o) / 2), h < i && (i = h = (i + h) / 2), e(t, r, i, o, h)) + } + var e = Og, + r = !1, + i = 1, + o = 1, + u = [0], + a = Go, + c = Go, + s = Go, + f = Go, + l = Go; + return t.round = function (n) { + return arguments.length + ? (r = !!n, t) + : r + }, + t.size = function (n) { + return arguments.length + ? (i =+ n[0], o =+ n[1], t) + : [i, o] + }, + t.tile = function (n) { + return arguments.length + ? (e = Zo(n), t) + : e + }, + t.padding = function (n) { + return arguments.length + ? t + .paddingInner(n) + .paddingOuter(n) + : t.paddingInner() + }, + t.paddingInner = function (n) { + return arguments.length + ? (a = "function" == typeof n + ? n + : kg(+ n), t) + : a + }, + t.paddingOuter = function (n) { + return arguments.length + ? t + .paddingTop(n) + .paddingRight(n) + .paddingBottom(n) + .paddingLeft(n) + : t.paddingTop() + }, + t.paddingTop = function (n) { + return arguments.length + ? (c = "function" == typeof n + ? n + : kg(+ n), t) + : c + }, + t.paddingRight = function (n) { + return arguments.length + ? (s = "function" == typeof n + ? n + : kg(+ n), t) + : s + }, + t.paddingBottom = function (n) { + return arguments.length + ? (f = "function" == typeof n + ? n + : kg(+ n), t) + : f + }, + t.paddingLeft = function (n) { + return arguments.length + ? (l = "function" == typeof n + ? n + : kg(+ n), t) + : l + }, + t + }, + Ig = function (t, n, e, r, i) { + function o(t, n, e, r, i, u, a) { + if (t >= n - 1) { + var s = c[t]; + return s.x0 = r, + s.y0 = i, + s.x1 = u, + s.y1 = a, + void 0 + } + for (var l = f[t], h = e / 2 + l, p = t + 1, d = n - 1; p < d;) { + var v = p + d >>> 1; + f[v] < h + ? p = v + 1 + : d = v + } + var _ = f[p] - l, + y = e - _; + if (a - i > u - r) { + var g = (i * y + a * _) / e; + o(t, p, _, r, i, u, g), + o(p, n, y, r, g, u, a) + } else { + var m = (r * y + u * _) / e; + o(t, p, _, r, i, m, a), + o(p, n, y, m, i, u, a) + } + } + var u, + a, + c = t.children, + s = c.length, + f = new Array(s + 1); + for (f[0] = a = u = 0; u < s; ++u) + f[u + 1] = a += c[u].value; + o(0, s, t.value, n, e, r, i) + }, + Yg = function (t, n, e, r, i) { + (1 & t.depth + ? Ug + : Eg)(t, n, e, r, i) + }, + Bg = function t(n) { + function e(t, e, r, i, o) { + if ((u = t._squarify) && u.ratio === n) + for (var u, a, c, s, f, l = -1, h = u.length, p = t.value; ++l < h;) { + for (a = u[l], c = a.children, s = a.value = 0, f = c.length; s < f; ++s) + a.value += c[s].value; + a.dice + ? Eg(a, e, r, i, r += (o - r) * a.value / p) + : Ug(a, e, r, e += (i - e) * a.value / p, o), + p -= a.value + } + else + t._squarify = u = lu(n, t, e, r, i, o), + u.ratio = n + } + return e.ratio = function (n) { + return t((n =+ n) > 1 + ? n + : 1) + }, + e + }(Dg), + jg = function (t, n) { + function e() { + var e, + i, + o = r.length, + u = 0, + a = 0; + for (e = 0; e < o; ++e) + i = r[e], + u += i.x, + a += i.y; + for (u = u / o - t, a = a / o - n, e = 0; e < o; ++e) + i = r[e], + i.x -= u, + i.y -= a + } + var r; + return null == t && (t = 0), + null == n && (n = 0), + e.initialize = function (t) { + r = t + }, + e.x = function (n) { + return arguments.length + ? (t =+ n, e) + : t + }, + e.y = function (t) { + return arguments.length + ? (n =+ t, e) + : n + }, + e + }, + Hg = function (t) { + return function () { + return t + } + }, + Xg = function () { + return 1e-6 * (Math.random() - .5) + }, + Vg = function (t) { + function n() { + function t(t, e, r, i, o) { + var a = t.data, + p = t.r, + d = l + p; + { + if (!a) + return e > s + d || i < s - d || r > f + d || o < f - d; + if (a.index > n) { + var v = s - a.x - a.vx, + _ = f - a.y - a.vy, + y = v * v + _ * _; + y < d * d && (0 === v && (v = Xg(), y += v * v), 0 === _ && (_ = Xg(), y += _ * _), y = (d - (y = Math.sqrt(y))) / y * u, c.vx += (v *= y) * (d = (p *= p) / (h + p)), c.vy += (_ *= y) * d, a.vx -= v * (d = 1 - d), a.vy -= _ * d) + } + } + } + for (var n, r, c, s, f, l, h, p = i.length, d = 0; d < a; ++d) + for (r = I(i, hu, pu).visitAfter(e), n = 0; n < p; ++n) + c = i[n], + l = o[n], + h = l * l, + s = c.x + c.vx, + f = c.y + c.vy, + r.visit(t) + } + function e(t) { + if (t.data) + return t.r = o[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 r() { + if (i) { + var n, + e = i.length; + for (o = new Array(e), n = 0; n < e; ++n) + o[n] =+ t(i[n], n, i) + } + } + var i, + o, + u = 1, + a = 1; + return "function" != typeof t && (t = Hg(null == t + ? 1 :+ t)), + n.initialize = function (t) { + i = t, + r() + }, + n.iterations = function (t) { + return arguments.length + ? (a =+ t, n) + : a + }, + n.strength = function (t) { + return arguments.length + ? (u =+ t, n) + : u + }, + n.radius = function (e) { + return arguments.length + ? (t = "function" == typeof e + ? e + : Hg(+ e), r(), n) + : t + }, + n + }, + Wg = function (t) { + function n(t) { + return 1 / Math.min(f[t.source.index], f[t.target.index]) + } + function e(n) { + for (var e = 0, r = t.length; e < v; ++e) + for (var i, o, u, s, f, h, p, d = 0; d < r; ++d) + i = t[d], + o = i.source, + u = i.target, + s = u.x + u.vx - o.x - o.vx || Xg(), + f = u.y + u.vy - o.y - o.vy || Xg(), + h = Math.sqrt(s * s + f * f), + h = (h - c[d]) / h * n * a[d], + s *= h, + f *= h, + u.vx -= s * (p = l[d]), + u.vy -= f * p, + o.vx += s * (p = 1 - p), + o.vy += f * p + } + function r() { + if (s) { + var n, + e, + r = s.length, + p = t.length, + d = o(s, h); + for (n = 0, f = new Array(r); n < r; ++n) + f[n] = 0; + for (n = 0; n < p; ++n) + e = t[n], + e.index = n, + "object" != typeof e.source && (e.source = vu(d, e.source)), + "object" != typeof e.target && (e.target = vu(d, e.target)), + ++f[e.source.index], + ++f[e.target.index]; + for (n = 0, l = new Array(p); n < p; ++n) + e = t[n], + l[n] = f[e.source.index] / (f[e.source.index] + f[e.target.index]); + a = new Array(p), + i(), + c = new Array(p), + u() + } + } + function i() { + if (s) + for (var n = 0, e = t.length; n < e; ++n) + a[n] =+ p(t[n], n, t) + } + function u() { + if (s) + for (var n = 0, e = t.length; n < e; ++n) + c[n] =+ d(t[n], n, t) + } + var a, + c, + s, + f, + l, + h = du, + p = n, + d = Hg(30), + v = 1; + return null == t && (t = []), + e.initialize = function (t) { + s = t, + r() + }, + e.links = function (n) { + return arguments.length + ? (t = n, r(), e) + : t + }, + e.id = function (t) { + return arguments.length + ? (h = t, e) + : h + }, + e.iterations = function (t) { + return arguments.length + ? (v =+ t, e) + : v + }, + e.strength = function (t) { + return arguments.length + ? (p = "function" == typeof t + ? t + : Hg(+ t), i(), e) + : p + }, + e.distance = function (t) { + return arguments.length + ? (d = "function" == typeof t + ? t + : Hg(+ t), u(), e) + : d + }, + e + }, + $g = 10, + Zg = Math.PI * (3 - Math.sqrt(5)), + Gg = function (t) { + function n() { + e(), + d.call("tick", u), + a < c && (p.stop(), d.call("end", u)) + } + function e() { + var n, + e, + r = t.length; + for (a += (f - a) * s, h.each(function (t) { + t(a) + }), n = 0; n < r; ++n) + e = t[n], + null == e.fx + ? e.x += e.vx *= l + : (e.x = e.fx, e.vx = 0), + null == e.fy + ? e.y += e.vy *= l + : (e.y = e.fy, e.vy = 0) + } + function r() { + for (var n, e = 0, r = t.length; e < r; ++e) { + if (n = t[e], n.index = e, isNaN(n.x) || isNaN(n.y)) { + var i = $g * Math.sqrt(e), + o = e * Zg; + n.x = i * Math.cos(o), + n.y = i * Math.sin(o) + } + (isNaN(n.vx) || isNaN(n.vy)) && (n.vx = n.vy = 0) + } + } + function i(n) { + return n.initialize && n.initialize(t), + n + } + var u, + a = 1, + c = .001, + s = 1 - Math.pow(c, 1 / 300), + f = 0, + l = .6, + h = o(), + p = Vn(n), + d = Pn("tick", "end"); + return null == t && (t = []), + r(), + u = { + tick: e, + restart: function () { + return p.restart(n), + u + }, + stop: function () { + return p.stop(), + u + }, + nodes: function (n) { + return arguments.length + ? (t = n, r(), h.each(i), u) + : t + }, + alpha: function (t) { + return arguments.length + ? (a =+ t, u) + : a + }, + alphaMin: function (t) { + return arguments.length + ? (c =+ t, u) + : c + }, + alphaDecay: function (t) { + return arguments.length + ? (s =+ t, u) :+ s + }, + alphaTarget: function (t) { + return arguments.length + ? (f =+ t, u) + : f + }, + velocityDecay: function (t) { + return arguments.length + ? (l = 1 - t, u) + : 1 - l + }, + force: function (t, n) { + return arguments.length > 1 + ? (null == n + ? h.remove(t) + : h.set(t, i(n)), u) + : h.get(t) + }, + find: function (n, e, r) { + var i, + o, + u, + a, + c, + s = 0, + f = t.length; + for (null == r + ? r = 1 / 0 + : r *= r, s = 0; s < f; ++s) + a = t[s], + i = n - a.x, + o = e - a.y, + u = i * i + o * o, + u < r && (c = a, r = u); + return c + }, + on: function (t, n) { + return arguments.length > 1 + ? (d.on(t, n), u) + : d.on(t) + } + } + }, + Jg = function () { + function t(t) { + var n, + a = i.length, + c = I(i, _u, yu).visitAfter(e); + for (u = t, n = 0; n < a; ++n) + o = i[n], + c.visit(r) + } + function n() { + if (i) { + var t, + n = i.length; + for (a = new Array(n), t = 0; t < n; ++t) + a[t] =+ c(i[t], t, i) + } + } + function e(t) { + var n, + e, + r, + i, + o, + u = 0; + if (t.length) { + for (r = i = o = 0; o < 4; ++o) + (n = t[o]) && (e = n.value) && (u += e, r += e * n.x, i += e * n.y); + t.x = r / u, + t.y = i / u + } else { + n = t, + n.x = n.data.x, + n.y = n.data.y; + do + u += a[n.data.index]; + while (n = n.next) + } + t.value = u + } + function r(t, n, e, r) { + if (!t.value) + return !0; + var i = t.x - o.x, + c = t.y - o.y, + h = r - n, + p = i * i + c * c; + if (h * h / l < p) + return p < f && (0 === i && (i = Xg(), p += i * i), 0 === c && (c = Xg(), p += c * c), p < s && (p = Math.sqrt(s * p)), o.vx += i * t.value * u / p, o.vy += c * t.value * u / p), + !0; + if (!(t.length || p >= f)) { + (t.data !== o || t.next) && (0 === i && (i = Xg(), p += i * i), 0 === c && (c = Xg(), p += c * c), p < s && (p = Math.sqrt(s * p))); + do + t.data !== o && (h = a[t.data.index] * u / p, o.vx += i * h, o.vy += c * h); + while (t = t.next) + } + } + var i, + o, + u, + a, + c = Hg(-30), + s = 1, + f = 1 / 0, + l = .81; + return t.initialize = function (t) { + i = t, + n() + }, + t.strength = function (e) { + return arguments.length + ? (c = "function" == typeof e + ? e + : Hg(+ e), n(), t) + : c + }, + t.distanceMin = function (n) { + return arguments.length + ? (s = n * n, t) + : Math.sqrt(s) + }, + t.distanceMax = function (n) { + return arguments.length + ? (f = n * n, t) + : Math.sqrt(f) + }, + t.theta = function (n) { + return arguments.length + ? (l = n * n, t) + : Math.sqrt(l) + }, + t + }, + Qg = function (t) { + function n(t) { + for (var n, e = 0, u = r.length; e < u; ++e) + n = r[e], + n.vx += (o[e] - n.x) * i[e] * t + } + function e() { + if (r) { + var n, + e = r.length; + for (i = new Array(e), o = new Array(e), n = 0; n < e; ++n) + i[n] = isNaN(o[n] =+ t(r[n], n, r)) + ? 0 :+ u(r[n], n, r) + } + } + var r, + i, + o, + u = Hg(.1); + return "function" != typeof t && (t = Hg(null == t + ? 0 :+ t)), + n.initialize = function (t) { + r = t, + e() + }, + n.strength = function (t) { + return arguments.length + ? (u = "function" == typeof t + ? t + : Hg(+ t), e(), n) + : u + }, + n.x = function (r) { + return arguments.length + ? (t = "function" == typeof r + ? r + : Hg(+ r), e(), n) + : t + }, + n + }, + Kg = function (t) { + function n(t) { + for (var n, e = 0, u = r.length; e < u; ++e) + n = r[e], + n.vy += (o[e] - n.y) * i[e] * t + } + function e() { + if (r) { + var n, + e = r.length; + for (i = new Array(e), o = new Array(e), n = 0; n < e; ++n) + i[n] = isNaN(o[n] =+ t(r[n], n, r)) + ? 0 :+ u(r[n], n, r) + } + } + var r, + i, + o, + u = Hg(.1); + return "function" != typeof t && (t = Hg(null == t + ? 0 :+ t)), + n.initialize = function (t) { + r = t, + e() + }, + n.strength = function (t) { + return arguments.length + ? (u = "function" == typeof t + ? t + : Hg(+ t), e(), n) + : u + }, + n.y = function (r) { + return arguments.length + ? (t = "function" == typeof r + ? r + : Hg(+ r), e(), n) + : t + }, + n + }, + tm = function () { + t + .event + .preventDefault(), + t + .event + .stopImmediatePropagation() + }, + nm = function (t) { + var n = t.document.documentElement, + e = gy(t).on("dragstart.drag", tm, !0); + "onselectstart" in n + ? e.on("selectstart.drag", tm, !0) + : (n.__noselect = n.style.MozUserSelect, n.style.MozUserSelect = "none") + }, + em = function (t) { + return function () { + return t + } + }; + xu.prototype.on = function () { + var t = this + ._ + .on + .apply(this._, arguments); + return t === this._ + ? this + : t + }; + var rm = function () { + function n(t) { + t + .on("mousedown.drag", e) + .on("touchstart.drag", o) + .on("touchmove.drag", u) + .on("touchend.drag touchcancel.drag", a) + .style("-webkit-tap-highlight-color", "rgba(0,0,0,0)") + } + function e() { + if (!f && l.apply(this, arguments)) { + var n = c("mouse", h.apply(this, arguments), U_, this, arguments); + n && (gy(t.event.view).on("mousemove.drag", r, !0).on("mouseup.drag", i, !0), nm(t.event.view), gu(), s = !1, n("start")) + } + } + function r() { + tm(), + s = !0, + d.mouse("drag") + } + function i() { + gy(t.event.view).on("mousemove.drag mouseup.drag", null), + mu(t.event.view, s), + tm(), + d.mouse("end") + } + function o() { + if (l.apply(this, arguments)) { + var n, + e, + r = t.event.changedTouches, + i = h.apply(this, arguments), + o = r.length; + for (n = 0; n < o; ++n) + (e = c(r[n].identifier, i, xy, this, arguments)) && (gu(), e("start")) + } + } + function u() { + var n, + e, + r = t.event.changedTouches, + i = r.length; + for (n = 0; n < i; ++n) + (e = d[r[n].identifier]) && (tm(), e("drag")) + } + function a() { + var n, + e, + r = t.event.changedTouches, + i = r.length; + for (f && clearTimeout(f), f = setTimeout(function () { + f = null + }, 500), n = 0; n < i; ++n) + (e = d[r[n].identifier]) && (gu(), e("end")) + } + function c(e, r, i, o, u) { + var a, + c, + s, + f = i(r, e), + l = v.copy(); + if (Xr(new xu(n, "beforestart", a, e, _, f[0], f[1], 0, 0, l), function () { + return null != (t.event.subject = a = p.apply(o, u)) && (c = a.x - f[0] || 0, s = a.y - f[1] || 0, !0) + })) + return function t(h) { + var p, + v = f; + switch (h) { + case "start": + d[e] = t, + p = _++; + break; + case "end": + delete d[e], + --_; + case "drag": + f = i(r, e), + p = _ + } + Xr(new xu(n, h, a, e, p, f[0] + c, f[1] + s, f[0] - v[0], f[1] - v[1], l), l.apply, l, [h, o, u]) + } + } + var s, + f, + l = bu, + h = wu, + p = Mu, + d = {}, + v = Pn("start", "drag", "end"), + _ = 0; + return n.filter = function (t) { + return arguments.length + ? (l = "function" == typeof t + ? t + : em(!!t), n) + : l + }, + n.container = function (t) { + return arguments.length + ? (h = "function" == typeof t + ? t + : em(t), n) + : h + }, + n.subject = function (t) { + return arguments.length + ? (p = "function" == typeof t + ? t + : em(t), n) + : p + }, + n.on = function () { + var t = v + .on + .apply(v, arguments); + return t === v + ? n + : t + }, + n + }, + im = function (t) { + return function () { + return t + } + }; + ku.prototype = { + constructor: ku, + insert: function (t, n) { + var e, + r, + i; + if (t) { + if (n.P = t, n.N = t.N, t.N && (t.N.P = n), t.N = n, t.R) { + for (t = t.R; t.L;) + t = t.L; + t.L = n + } else + t.R = n; + e = t + } else + this._ + ? (t = Cu(this._), n.P = null, n.N = t, t.P = t.L = n, e = t) + : (n.P = n.N = null, this._ = n, e = null); + for (n.L = n.R = null, n.U = e, n.C = !0, t = n; e && e.C;) + r = e.U, + e === r.L + ? (i = r.R, i && i.C + ? (e.C = i.C = !1, r.C = !0, t = r) + : (t === e.R && (Au(this, e), t = e, e = t.U), e.C = !1, r.C = !0, Eu(this, r))) + : (i = r.L, i && i.C + ? (e.C = i.C = !1, r.C = !0, t = r) + : (t === e.L && (Eu(this, e), t = e, e = t.U), e.C = !1, r.C = !0, Au(this, r))), + e = t.U; + this._.C = !1 + }, + remove: function (t) { + t.N && (t.N.P = t.P), + t.P && (t.P.N = t.N), + t.N = t.P = null; + var n, + e, + r, + i = t.U, + o = t.L, + u = t.R; + if (e = o + ? u + ? Cu(u) + : o + : u, i + ? i.L === t + ? i.L = e + : i.R = e + : this._ = e, o && u + ? (r = e.C, e.C = t.C, e.L = o, o.U = e, e !== u + ? (i = e.U, e.U = t.U, t = e.R, i.L = t, e.R = u, u.U = e) + : (e.U = i, i = e, t = e.R)) + : (r = t.C, t = e), t && (t.U = i), !r) { + if (t && t.C) + return void(t.C = !1); + do { + if (t === this._) + break; + if (t === i.L) { + if (n = i.R, n.C && (n.C = !1, i.C = !0, Au(this, i), n = i.R), n.L && n.L.C || n.R && n.R.C) { + n.R && n.R.C || (n.L.C = !1, n.C = !0, Eu(this, n), n = i.R), + n.C = i.C, + i.C = n.R.C = !1, + Au(this, i), + t = this._; + break + } + } else if (n = i.L, n.C && (n.C = !1, i.C = !0, Eu(this, i), n = i.L), n.L && n.L.C || n.R && n.R.C) { + n.L && n.L.C || (n.R.C = !1, n.C = !0, Au(this, n), n = i.L), + n.C = i.C, + i.C = n.L.C = !1, + Eu(this, i), + t = this._; + break + } + n.C = !0, + t = i, + i = i.U + } while (!t.C); + t && (t.C = !1) + } + } + }; + var om, + um, + am, + cm, + sm, + fm = [], + lm = [], + hm = 1e-6, + pm = 1e-12; + na.prototype = { + constructor: na, + polygons: function () { + var t = this.edges; + return this + .cells + .map(function (n) { + var e = n + .halfedges + .map(function (e) { + return Fu(n, t[e]) + }); + return e.data = n.site.data, + e + }) + }, + triangles: function () { + var t = [], + n = this.edges; + return this + .cells + .forEach(function (e, r) { + for (var i, o = e.site, u = e.halfedges, a = -1, c = u.length, s = n[u[c - 1]], f = s.left === o + ? s.right + : s.left; ++a < c;) + i = f, + s = n[u[a]], + f = s.left === o + ? s.right + : s.left, + i && f && r < i.index && r < f.index && Ku(o, i, f) < 0 && t.push([o.data, i.data, f.data]) + }), + t + }, + links: function () { + return this + .edges + .filter(function (t) { + return t.right + }) + .map(function (t) { + return {source: t.left.data, target: t.right.data} + }) + }, + find: function (t, n, e) { + var r, + i = this, + o = i._found || 0, + u = i.cells[o] || i.cells[o = 0], + a = t - u.site[0], + c = n - u.site[1], + s = a * a + c * c; + do + u = i.cells[r = o], + o = null, + u + .halfedges + .forEach(function (e) { + var r = i.edges[e], + a = r.left; + if (a !== u.site && a || (a = r.right)) { + var c = t - a[0], + f = n - a[1], + l = c * c + f * f; + l < s && (s = l, o = a.index) + } + }); + while (null !== o); + return i._found = r, + null == e || s <= e * e + ? u.site + : null + } + }; + var dm = function () { + function t(t) { + return new na(t.map(function (r, i) { + var o = [ + Math.round(n(r, i, t) / hm) * hm, + Math.round(e(r, i, t) / hm) * hm + ]; + return o.index = i, + o.data = r, + o + }), r) + } + var n = Tu, + e = Nu, + r = null; + return t.polygons = function (n) { + return t(n).polygons() + }, + t.links = function (n) { + return t(n).links() + }, + t.triangles = function (n) { + return t(n).triangles() + }, + t.x = function (e) { + return arguments.length + ? (n = "function" == typeof e + ? e + : im(+ e), t) + : n + }, + t.y = function (n) { + return arguments.length + ? (e = "function" == typeof n + ? n + : im(+ n), t) + : e + }, + t.extent = function (n) { + return arguments.length + ? (r = null == n + ? null + : [ + [ + n[0][0], + n[0][1] + ], + [ + n[1][0], + n[1][1] + ] + ], t) + : r && [ + [r[0][0], r[0][1] + ], + [r[1][0], r[1][1] + ] + ] + }, + t.size = function (n) { + return arguments.length + ? (r = null == n + ? null + : [ + [ + 0, 0 + ], + [ + n[0], + n[1] + ] + ], t) + : r && [r[1][0] - r[0][0], + r[1][1] - r[0][1] + ] + }, + t + }, + vm = function (t) { + return function () { + return t + } + }; + ra.prototype = { + constructor: ra, + scale: function (t) { + return 1 === t + ? this + : new ra(this.k * t, this.x, this.y) + }, + translate: function (t, n) { + return 0 === t & 0 === n + ? this + : new ra(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 _m = new ra(1, 0, 0); + ia.prototype = ra.prototype; + var ym = function () { + t + .event + .preventDefault(), + t + .event + .stopImmediatePropagation() + }, + gm = function () { + function n(t) { + t + .on("wheel.zoom", s) + .on("mousedown.zoom", f) + .on("dblclick.zoom", l) + .on("touchstart.zoom", h) + .on("touchmove.zoom", p) + .on("touchend.zoom touchcancel.zoom", d) + .style("-webkit-tap-highlight-color", "rgba(0,0,0,0)") + .property("__zoom", ca) + } + function e(t, n) { + return n = Math.max(m, Math.min(x, n)), + n === t.k + ? t + : new ra(n, t.x, t.y) + } + function r(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 ra(t.k, r, i) + } + function i(t, n) { + var e = Math.min(0, t.invertX(n[0][0]) - b) || Math.max(0, t.invertX(n[1][0]) - w), + r = Math.min(0, t.invertY(n[0][1]) - M) || Math.max(0, t.invertY(n[1][1]) - T); + return e || r + ? t.translate(e, r) + : t + } + function o(t) { + return [ + ( + t[0][0] + + t[1][0]) / 2, + ( + t[0][1] + + t[1][1]) / 2 + ] + } + function u(t, n, e) { + t + .on("start.zoom", function () { + a(this, arguments).start() + }) + .on("interrupt.zoom end.zoom", function () { + a(this, arguments).end() + }) + .tween("zoom", function () { + var t = this, + r = arguments, + i = a(t, r), + u = g.apply(t, r), + c = e || o(u), + s = Math.max(u[1][0] - u[0][0], u[1][1] - u[0][1]), + f = t.__zoom, + l = "function" == typeof n + ? n.apply(t, r) + : n, + h = Sp(f.invert(c).concat(s / f.k), l.invert(c).concat(s / l.k)); + return function (t) { + if (1 === t) + t = l; + else { + var n = h(t), + e = s / n[2]; + t = new ra(e, c[0] - n[0] * e, c[1] - n[1] * e) + } + i.zoom(null, t) + } + }) + } + function a(t, n) { + for (var e, r = 0, i = k.length; r < i; ++r) + if ((e = k[r]).that === t) + return e; + return new c(t, n) + } + function c(t, n) { + this.that = t, + this.args = n, + this.index = -1, + this.active = 0, + this.extent = g.apply(t, n) + } + function s() { + function n() { + o.wheel = null, + o.end() + } + if (y.apply(this, arguments)) { + var o = a(this, arguments), + u = this.__zoom, + c = Math.max(m, Math.min(x, u.k * Math.pow(2, -t.event.deltaY * (t.event.deltaMode + ? 120 + : 1) / 500))), + s = U_(this); + if (o.wheel) + o.mouse[0][0] === s[0] && o.mouse[0][1] === s[1] || (o.mouse[1] = u.invert(o.mouse[0] = s)), + clearTimeout(o.wheel); + else { + if (u.k === c) + return; + o.mouse = [ + s, u.invert(s) + ], + Py(this), + o.start() + } + ym(), + o.wheel = setTimeout(n, E), + o.zoom("mouse", i(r(e(u, c), o.mouse[0], o.mouse[1]), o.extent)) + } + } + function f() { + function n() { + ym(), + o.moved = !0, + o.zoom("mouse", i(r(o.that.__zoom, o.mouse[0] = U_(o.that), o.mouse[1]), o.extent)) + } + function e() { + u.on("mousemove.zoom mouseup.zoom", null), + mu(t.event.view, o.moved), + ym(), + o.end() + } + if (!_ && y.apply(this, arguments)) { + var o = a(this, arguments), + u = gy(t.event.view) + .on("mousemove.zoom", n, !0) + .on("mouseup.zoom", e, !0), + c = U_(this); + nm(t.event.view), + oa(), + o.mouse = [ + c, + this + .__zoom + .invert(c) + ], + Py(this), + o.start() + } + } + function l() { + if (y.apply(this, arguments)) { + var o = this.__zoom, + a = U_(this), + c = o.invert(a), + s = o.k * (t.event.shiftKey + ? .5 + : 2), + f = i(r(e(o, s), a, c), g.apply(this, arguments)); + ym(), + N > 0 + ? gy(this) + .transition() + .duration(N) + .call(u, f, a) + : gy(this).call(n.transform, f) + } + } + function h() { + if (y.apply(this, arguments)) { + var n, + e, + r, + i = a(this, arguments), + o = t.event.changedTouches, + u = o.length; + for (oa(), n = 0; n < u; ++n) + e = o[n], + r = xy(this, o, e.identifier), + r = [ + r, + this + .__zoom + .invert(r), + e.identifier + ], + i.touch0 + ? i.touch1 || (i.touch1 = r) + : i.touch0 = r; + return v && (v = clearTimeout(v), !i.touch1) + ? (i.end(), l.apply(this, arguments)) + : void(t.event.touches.length === u && (v = setTimeout(function () { + v = null + }, A), Py(this), i.start())) + } + } + function p() { + var n, + o, + u, + c, + s = a(this, arguments), + f = t.event.changedTouches, + l = f.length; + for (ym(), v && (v = clearTimeout(v)), n = 0; n < l; ++n) + o = f[n], + u = xy(this, f, o.identifier), + s.touch0 && s.touch0[2] === o.identifier + ? s.touch0[0] = u + : s.touch1 && s.touch1[2] === o.identifier && (s.touch1[0] = u); + if (o = s.that.__zoom, s.touch1) { + var h = s.touch0[0], + p = s.touch0[1], + d = s.touch1[0], + _ = s.touch1[1], + y = (y = d[0] - h[0]) * y + (y = d[1] - h[1]) * y, + g = (g = _[0] - p[0]) * g + (g = _[1] - p[1]) * g; + o = e(o, Math.sqrt(y / g)), + u = [ + (h[0] + d[0]) / 2, + (h[1] + d[1]) / 2 + ], + c = [ + (p[0] + _[0]) / 2, + (p[1] + _[1]) / 2 + ] + } else { + if (!s.touch0) + return; + u = s.touch0[0], + c = s.touch0[1] + } + s.zoom("touch", i(r(o, u, c), s.extent)) + } + function d() { + var n, + e, + r = a(this, arguments), + i = t.event.changedTouches, + o = i.length; + for (oa(), _ && clearTimeout(_), _ = setTimeout(function () { + _ = null + }, A), n = 0; n < o; ++n) + e = i[n], + r.touch0 && r.touch0[2] === e.identifier + ? delete r.touch0 + : r.touch1 && r.touch1[2] === e.identifier && delete r.touch1; + r.touch1 && !r.touch0 && (r.touch0 = r.touch1, delete r.touch1), + r.touch0 || r.end() + } + var v, + _, + y = ua, + g = aa, + m = 0, + x = 1 / 0, + b = -x, + w = x, + M = b, + T = w, + N = 250, + k = [], + S = Pn("start", "zoom", "end"), + A = 500, + E = 150; + return n.transform = function (t, n) { + var e = t.selection + ? t.selection() + : t; + e.property("__zoom", ca), + t !== e + ? u(t, n) + : e + .interrupt() + .each(function () { + a(this, arguments) + .start() + .zoom(null, "function" == typeof n + ? n.apply(this, arguments) + : n) + .end() + }) + }, + n.scaleBy = function (t, e) { + n + .scaleTo(t, function () { + var t = this.__zoom.k, + n = "function" == typeof e + ? e.apply(this, arguments) + : e; + return t * n + }) + }, + n.scaleTo = function (t, u) { + n + .transform(t, function () { + var t = g.apply(this, arguments), + n = this.__zoom, + a = o(t), + c = n.invert(a), + s = "function" == typeof u + ? u.apply(this, arguments) + : u; + return i(r(e(n, s), a, c), t) + }) + }, + n.translateBy = function (t, e, r) { + n + .transform(t, function () { + return i(this.__zoom.translate("function" == typeof e + ? e.apply(this, arguments) + : e, "function" == typeof r + ? r.apply(this, arguments) + : r), g.apply(this, arguments)) + }) + }, + c.prototype = { + start: function () { + return 1 === ++this.active && (this.index = k.push(this) - 1, 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 && (k.splice(this.index, 1), this.index = -1, this.emit("end")), + this + }, + emit: function (t) { + Xr(new ea(n, t, this.that.__zoom), S.apply, S, [t, this.that, this.args]) + } + }, + n.filter = function (t) { + return arguments.length + ? (y = "function" == typeof t + ? t + : vm(!!t), n) + : y + }, + n.extent = function (t) { + return arguments.length + ? (g = "function" == typeof t + ? t + : vm([ + [ + t[0][0], + t[0][1] + ], + [ + t[1][0], + t[1][1] + ] + ]), n) + : g + }, + n.scaleExtent = function (t) { + return arguments.length + ? (m =+ t[0], x =+ t[1], n) + : [m, x] + }, + n.translateExtent = function (t) { + return arguments.length + ? (b =+ t[0][0], w =+ t[1][0], M =+ t[0][1], T =+ t[1][1], n) + : [ + [ + b, M + ], + [w, T] + ] + }, + n.duration = function (t) { + return arguments.length + ? (N =+ t, n) + : N + }, + n.on = function () { + var t = S + .on + .apply(S, arguments); + return t === S + ? n + : t + }, + n + }, + mm = function (t) { + return function () { + return t + } + }, + xm = function (t, n, e) { + this.target = t, + this.type = n, + this.selection = e + }, + bm = function () { + t + .event + .preventDefault(), + t + .event + .stopImmediatePropagation() + }, + wm = { + name: "drag" + }, + Mm = { + name: "space" + }, + Tm = { + name: "handle" + }, + Nm = { + name: "center" + }, + km = { + name: "x", + handles: ["e", "w"].map(fa), + input: function (t, n) { + return t && [ + [t[0], n[0][1] + ], + [t[1], n[1][1] + ] + ] + }, + output: function (t) { + return t && [t[0][0], t[1][0] + ] + } + }, + Sm = { + name: "y", + handles: ["n", "s"].map(fa), + input: function (t, n) { + return t && [ + [ + n[0][0], t[0] + ], + [n[1][0], t[1]] + ] + }, + output: function (t) { + return t && [t[0][1], t[1][1] + ] + } + }, + Am = { + name: "xy", + handles: [ + "n", + "e", + "s", + "w", + "nw", + "ne", + "se", + "sw" + ].map(fa), + input: function (t) { + return t + }, + output: function (t) { + return t + } + }, + Em = { + 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" + }, + Cm = { + e: "w", + w: "e", + nw: "ne", + ne: "nw", + se: "sw", + sw: "se" + }, + zm = { + n: "s", + s: "n", + nw: "sw", + ne: "se", + se: "ne", + sw: "nw" + }, + Pm = { + overlay: 1, + selection: 1, + n: null, + e: 1, + s: null, + w: -1, + nw: -1, + ne: 1, + se: 1, + sw: -1 + }, + qm = { + overlay: 1, + selection: 1, + n: -1, + e: null, + s: 1, + w: null, + nw: -1, + ne: -1, + se: 1, + sw: 1 + }, + Lm = function () { + return ga(Am) + }, + Rm = Math.cos, + Um = Math.sin, + Dm = Math.PI, + Om = Dm / 2, + Fm = 2 * Dm, + Im = Math.max, + Ym = function () { + function t(t) { + var o, + u, + a, + c, + s, + f, + l = t.length, + h = [], + p = Os(l), + d = [], + v = [], + _ = v.groups = new Array(l), + y = new Array(l * l); + for (o = 0, s = -1; ++s < l;) { + for (u = 0, f = -1; ++f < l;) + u += t[s][f]; + h.push(u), + d.push(Os(l)), + o += u + } + for (e && p.sort(function (t, n) { + return e(h[t], h[n]) + }), r && d.forEach(function (n, e) { + n + .sort(function (n, i) { + return r(t[e][n], t[e][i]) + }) + }), o = Im(0, Fm - n * l) / o, c = o + ? n + : Fm / l, u = 0, s = -1; ++s < l;) { + for (a = u, f = -1; ++f < l;) { + var g = p[s], + m = d[g][f], + x = t[g][m], + b = u, + w = u += x * o; + y[m * l + g] = { + index: g, + subindex: m, + startAngle: b, + endAngle: w, + value: x + } + } + _[g] = { + index: g, + startAngle: a, + endAngle: u, + value: h[g] + }, + u += c + } + for (s = -1; ++s < l;) + for (f = s - 1; ++f < l;) { + var M = y[f * l + s], + T = y[s * l + f]; + (M.value || T.value) && v.push(M.value < T.value + ? { + source: T, + target: M + } + : { + source: M, + target: T + }) + } + return i + ? v.sort(i) + : v + } + var n = 0, + e = null, + r = null, + i = null; + return t.padAngle = function (e) { + return arguments.length + ? (n = Im(0, e), t) + : n + }, + t.sortGroups = function (n) { + return arguments.length + ? (e = n, t) + : e + }, + t.sortSubgroups = function (n) { + return arguments.length + ? (r = n, t) + : r + }, + t.sortChords = function (n) { + return arguments.length + ? (null == n + ? i = null + : (i = ma(n))._ = n, t) + : i && i._ + }, + t + }, + Bm = Array.prototype.slice, + jm = function (t) { + return function () { + return t + } + }, + Hm = function () { + function t() { + var t, + a = Bm.call(arguments), + c = n.apply(this, a), + s = e.apply(this, a), + f =+ r.apply(this, (a[0] = c, a)), + l = i.apply(this, a) - Om, + h = o.apply(this, a) - Om, + p = f * Rm(l), + d = f * Um(l), + v =+ r.apply(this, (a[0] = s, a)), + _ = i.apply(this, a) - Om, + y = o.apply(this, a) - Om; + if (u || (u = t = L()), u.moveTo(p, d), u.arc(0, 0, f, l, h), l === _ && h === y || (u.quadraticCurveTo(0, 0, v * Rm(_), v * Um(_)), u.arc(0, 0, v, _, y)), u.quadraticCurveTo(0, 0, p, d), u.closePath(), t) + return u = null, + t + "" || null + } + var n = xa, + e = ba, + r = wa, + i = Ma, + o = Ta, + u = null; + return t.radius = function (n) { + return arguments.length + ? (r = "function" == typeof n + ? n + : jm(+ n), t) + : r + }, + t.startAngle = function (n) { + return arguments.length + ? (i = "function" == typeof n + ? n + : jm(+ n), t) + : i + }, + t.endAngle = function (n) { + return arguments.length + ? (o = "function" == typeof n + ? n + : jm(+ n), t) + : o + }, + t.source = function (e) { + return arguments.length + ? (n = e, t) + : n + }, + t.target = function (n) { + return arguments.length + ? (e = n, t) + : e + }, + t.context = function (n) { + return arguments.length + ? (u = null == n + ? null + : n, t) + : u + }, + t + }, + Xm = function () { + return new Na + }; + Na.prototype = { + constructor: Na, + reset: function () { + this.s = this.t = 0 + }, + add: function (t) { + ka(Mx, t, this.t), + ka(this, Mx.s, this.s), + this.s + ? this.t += Mx.t + : this.s = Mx.t + }, + valueOf: function () { + return this.s + } + }; + var Vm, + Wm, + $m, + Zm, + Gm, + Jm, + Qm, + Km, + tx, + nx, + ex, + rx, + ix, + ox, + ux, + ax, + cx, + sx, + fx, + lx, + hx, + px, + dx, + vx, + _x, + yx, + gx, + mx, + xx, + bx, + wx, + Mx = new Na, + Tx = 1e-6, + Nx = 1e-12, + kx = Math.PI, + Sx = kx / 2, + Ax = kx / 4, + Ex = 2 * kx, + Cx = 180 / kx, + zx = kx / 180, + Px = Math.abs, + qx = Math.atan, + Lx = Math.atan2, + Rx = Math.cos, + Ux = Math.ceil, + Dx = Math.exp, + Ox = Math.log, + Fx = Math.pow, + Ix = Math.sin, + Yx = Math.sign || function (t) { + return t > 0 + ? 1 + : t < 0 + ? -1 + : 0; + }, + Bx = Math.sqrt, + jx = Math.tan, + Hx = { + Feature: function (t, n) { + za(t.geometry, n) + }, + FeatureCollection: function (t, n) { + for (var e = t.features, r = -1, i = e.length; ++r < i;) + za(e[r].geometry, n) + } + }, + Xx = { + 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) { + Pa(t.coordinates, n, 0) + }, + MultiLineString: function (t, n) { + for (var e = t.coordinates, r = -1, i = e.length; ++r < i;) + Pa(e[r], n, 0) + }, + Polygon: function (t, n) { + qa(t.coordinates, n) + }, + MultiPolygon: function (t, n) { + for (var e = t.coordinates, r = -1, i = e.length; ++r < i;) + qa(e[r], n) + }, + GeometryCollection: function (t, n) { + for (var e = t.geometries, r = -1, i = e.length; ++r < i;) + za(e[r], n) + } + }, + Vx = function (t, n) { + t && Hx.hasOwnProperty(t.type) + ? Hx[t.type](t, n) + : za(t, n) + }, + Wx = Xm(), + $x = Xm(), + Zx = { + point: Ca, + lineStart: Ca, + lineEnd: Ca, + polygonStart: function () { + Wx.reset(), + Zx.lineStart = La, + Zx.lineEnd = Ra + }, + polygonEnd: function () { + var t =+ Wx; + $x.add(t < 0 + ? Ex + t + : t), + this.lineStart = this.lineEnd = this.point = Ca + }, + sphere: function () { + $x.add(Ex) + } + }, + Gx = function (t) { + return $x.reset(), + Vx(t, Zx), + 2 * $x + }, + Jx = Xm(), + Qx = { + point: Xa, + lineStart: Wa, + lineEnd: $a, + polygonStart: function () { + Qx.point = Za, + Qx.lineStart = Ga, + Qx.lineEnd = Ja, + Jx.reset(), + Zx.polygonStart() + }, + polygonEnd: function () { + Zx.polygonEnd(), + Qx.point = Xa, + Qx.lineStart = Wa, + Qx.lineEnd = $a, + Wx < 0 + ? (Jm = -(Km = 180), Qm = -(tx = 90)) + : Jx > Tx + ? tx = 90 + : Jx < -Tx && (Qm = -90), + ux[0] = Jm, + ux[1] = Km + } + }, + Kx = function (t) { + var n, + e, + r, + i, + o, + u, + a; + if (tx = Km = -(Jm = Qm = 1 / 0), ox = [], Vx(t, Qx), e = ox.length) { + for (ox.sort(Ka), n = 1, r = ox[0], o = [r]; n < e; ++n) + i = ox[n], + tc(r, i[0]) || tc(r, i[1]) + ? (Qa(r[0], i[1]) > Qa(r[0], r[1]) && (r[1] = i[1]), Qa(i[0], r[1]) > Qa(r[0], r[1]) && (r[0] = i[0])) + : o.push(r = i); + for (u = -(1 / 0), e = o.length - 1, n = 0, r = o[e]; n <= e; r = i, ++n) + i = o[n], + (a = Qa(r[1], i[0])) > u && (u = a, Jm = i[0], Km = r[1]) + } + return ox = ux = null, + Jm === 1 / 0 || Qm === 1 / 0 + ? [ + [ + NaN, NaN + ], + [NaN, NaN] + ] + : [ + [ + Jm, Qm + ], + [Km, tx] + ] + }, + tb = { + sphere: Ca, + point: nc, + lineStart: rc, + lineEnd: uc, + polygonStart: function () { + tb.lineStart = ac, + tb.lineEnd = cc + }, + polygonEnd: function () { + tb.lineStart = rc, + tb.lineEnd = uc + } + }, + nb = function (t) { + ax = cx = sx = fx = lx = hx = px = dx = vx = _x = yx = 0, + Vx(t, tb); + var n = vx, + e = _x, + r = yx, + i = n * n + e * e + r * r; + return i < Nx && (n = hx, e = px, r = dx, cx < Tx && (n = sx, e = fx, r = lx), i = n * n + e * e + r * r, i < Nx) + ? [NaN, NaN] + : [ + Lx(e, n) * Cx, + Aa(r / Bx(i)) * Cx + ] + }, + eb = function (t) { + return function () { + return t + } + }, + rb = function (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), + e && t.invert(e[0], e[1]) + }), + e + }; + lc.invert = lc; + var ib, + ob, + ub, + ab, + cb, + sb, + fb, + lb, + hb, + pb, + db, + vb = function (t) { + function n(n) { + return n = t(n[0] * zx, n[1] * zx), + n[0] *= Cx, + n[1] *= Cx, + n + } + return t = hc(t[0] * zx, t[1] * zx, t.length > 2 + ? t[2] * zx + : 0), + n.invert = function (n) { + return n = t.invert(n[0] * zx, n[1] * zx), + n[0] *= Cx, + n[1] *= Cx, + n + }, + n + }, + _b = function () { + function t(t, n) { + e.push(t = r(t, n)), + t[0] *= Cx, + t[1] *= Cx + } + function n() { + var t = i.apply(this, arguments), + n = o.apply(this, arguments) * zx, + c = u.apply(this, arguments) * zx; + return e = [], + r = hc(-t[0] * zx, -t[1] * zx, 0).invert, + _c(a, n, c, 1), + t = { + type: "Polygon", + coordinates: [e] + }, + e = r = null, + t + } + var e, + r, + i = eb([0, 0]), + o = eb(90), + u = eb(6), + a = { + point: t + }; + return n.center = function (t) { + return arguments.length + ? (i = "function" == typeof t + ? t + : eb([ + t[0], + t[1] + ]), n) + : i + }, + n.radius = function (t) { + return arguments.length + ? (o = "function" == typeof t + ? t + : eb(+ t), n) + : o + }, + n.precision = function (t) { + return arguments.length + ? (u = "function" == typeof t + ? t + : eb(+ t), n) + : u + }, + n + }, + yb = function () { + var t, + n = []; + return { + point: function (n, e) { + t.push([n, e]) + }, + lineStart: function () { + n.push(t = []) + }, + lineEnd: Ca, + rejoin: function () { + n.length > 1 && n.push(n.pop().concat(n.shift())) + }, + result: function () { + var e = n; + return n = [], + t = null, + e + } + } + }, + gb = function (t, n, e, r, i, o) { + var u, + a = t[0], + c = t[1], + s = n[0], + f = n[1], + l = 0, + h = 1, + p = s - a, + d = f - c; + if (u = e - a, p || !(u > 0)) { + if (u /= p, p < 0) { + if (u < l) + return; + u < h && (h = u) + } else if (p > 0) { + if (u > h) + return; + u > l && (l = u) + } + if (u = i - a, p || !(u < 0)) { + if (u /= p, p < 0) { + if (u > h) + return; + u > l && (l = u) + } else if (p > 0) { + if (u < l) + return; + u < h && (h = u) + } + if (u = r - c, d || !(u > 0)) { + if (u /= d, d < 0) { + if (u < l) + return; + u < h && (h = u) + } else if (d > 0) { + if (u > h) + return; + u > l && (l = u) + } + if (u = o - c, d || !(u < 0)) { + if (u /= d, d < 0) { + if (u > h) + return; + u > l && (l = u) + } else if (d > 0) { + if (u < l) + return; + u < h && (h = u) + } + return l > 0 && (t[0] = a + l * p, t[1] = c + l * d), + h < 1 && (n[0] = a + h * p, n[1] = c + h * d), + !0 + } + } + } + } + }, + mb = function (t, n) { + return Px(t[0] - n[0]) < Tx && Px(t[1] - n[1]) < Tx + }, + xb = function (t, n, e, r, i) { + var o, + u, + a = [], + c = []; + if (t.forEach(function (t) { + if (!((n = t.length - 1) <= 0)) { + var n, + e, + r = t[0], + u = t[n]; + if (mb(r, u)) { + for (i.lineStart(), o = 0; o < n; ++o) + i.point((r = t[o])[0], r[1]); + return void i.lineEnd() + } + a.push(e = new gc(r, t, null, !0)), + c.push(e.o = new gc(r, null, e, !1)), + a.push(e = new gc(u, t, null, !1)), + c.push(e.o = new gc(u, null, e, !0)) + } + }), a.length) { + for (c.sort(n), mc(a), mc(c), o = 0, u = c.length; o < u; ++o) + c[o].e = e = !e; + for (var s, f, l = a[0];;) { + for (var h = l, p = !0; h.v;) + if ((h = h.n) === l) + return; + s = h.z, + i.lineStart(); + do { + if (h.v = h.o.v = !0, h.e) { + if (p) + for (o = 0, u = s.length; o < u; ++o) + i.point((f = s[o])[0], f[1]); + else + r(h.x, h.n.x, 1, i); + h = h.n + } else { + if (p) + for (s = h.p.z, o = s.length - 1; o >= 0; --o) + i.point((f = s[o])[0], f[1]); + else + r(h.x, h.p.x, -1, i); + h = h.p + } + h = h.o, + s = h.z, + p = !p + } while (!h.v); + i.lineEnd() + } + } + }, + bb = 1e9, + wb = -bb, + Mb = function () { + var t, + n, + e, + r = 0, + i = 0, + o = 960, + u = 500; + return e = { + stream: function (e) { + return t && n === e + ? t + : t = xc(r, i, o, u)(n = e) + }, + extent: function (a) { + return arguments.length + ? (r =+ a[0][0], i =+ a[0][1], o =+ a[1][0], u =+ a[1][1], t = n = null, e) + : [ + [ + r, i + ], + [o, u] + ] + } + } + }, + Tb = Xm(), + Nb = { + sphere: Ca, + point: Ca, + lineStart: bc, + lineEnd: Ca, + polygonStart: Ca, + polygonEnd: Ca + }, + kb = function (t) { + return Tb.reset(), + Vx(t, Nb), + Tb + }, + Sb = [ + null, null + ], + Ab = { + type: "LineString", + coordinates: Sb + }, + Eb = function (t, n) { + return Sb[0] = t, + Sb[1] = n, + kb(Ab) + }, + Cb = function (t, n) { + var e = t[0] * zx, + r = t[1] * zx, + i = n[0] * zx, + o = n[1] * zx, + u = Rx(r), + a = Ix(r), + c = Rx(o), + s = Ix(o), + f = u * Rx(e), + l = u * Ix(e), + h = c * Rx(i), + p = c * Ix(i), + d = 2 * Aa(Bx(Ea(o - r) + u * c * Ea(i - e))), + v = Ix(d), + _ = d + ? function (t) { + var n = Ix(t *= d) / v, + e = Ix(d - t) / v, + r = e * f + n * h, + i = e * l + n * p, + o = e * a + n * s; + return [ + Lx(i, r) * Cx, + Lx(o, Bx(r * r + i * i)) * Cx + ] + } + : function () { + return [ + e * Cx, + r * Cx + ] + }; + return _.distance = d, + _ + }, + zb = function (t) { + return t + }, + Pb = Xm(), + qb = Xm(), + Lb = { + point: Ca, + lineStart: Ca, + lineEnd: Ca, + polygonStart: function () { + Lb.lineStart = Ec, + Lb.lineEnd = Pc + }, + polygonEnd: function () { + Lb.lineStart = Lb.lineEnd = Lb.point = Ca, + Pb.add(Px(qb)), + qb.reset() + }, + result: function () { + var t = Pb / 2; + return Pb.reset(), + t + } + }, + Rb = 1 / 0, + Ub = Rb, + Db = -Rb, + Ob = Db, + Fb = { + point: qc, + lineStart: Ca, + lineEnd: Ca, + polygonStart: Ca, + polygonEnd: Ca, + result: function () { + var t = [ + [ + Rb, Ub + ], + [Db, Ob] + ]; + return Db = Ob = -(Ub = Rb = 1 / 0), + t + } + }, + Ib = 0, + Yb = 0, + Bb = 0, + jb = 0, + Hb = 0, + Xb = 0, + Vb = 0, + Wb = 0, + $b = 0, + Zb = { + point: Lc, + lineStart: Rc, + lineEnd: Oc, + polygonStart: function () { + Zb.lineStart = Fc, + Zb.lineEnd = Ic + }, + polygonEnd: function () { + Zb.point = Lc, + Zb.lineStart = Rc, + Zb.lineEnd = Oc + }, + result: function () { + var t = $b + ? [ + Vb / $b, + Wb / $b + ] + : Xb + ? [ + jb / Xb, + Hb / Xb + ] + : Bb + ? [ + Ib / Bb, + Yb / Bb + ] + : [NaN, NaN]; + return Ib = Yb = Bb = jb = Hb = Xb = Vb = Wb = $b = 0, + t + } + }; + jc.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, Ex) + } + }, + result: Ca + }, + Hc.prototype = { + _circle: Xc(4.5), + pointRadius: function (t) { + return this._circle = Xc(t), + this + }, + polygonStart: function () { + this._line = 0 + }, + polygonEnd: function () { + this._line = NaN + }, + lineStart: function () { + this._point = 0 + }, + lineEnd: function () { + 0 === this._line && this + ._string + .push("Z"), + this._point = NaN + }, + point: function (t, n) { + switch (this._point) { + case 0: + this + ._string + .push("M", t, ",", n), + this._point = 1; + break; + case 1: + this + ._string + .push("L", t, ",", n); + break; + default: + this + ._string + .push("M", t, ",", n, this._circle) + } + }, + result: function () { + if (this._string.length) { + var t = this + ._string + .join(""); + return this._string = [], + t + } + } + }; + var Gb = function (t, n) { + function e(t) { + return t && ("function" == typeof o && i.pointRadius(+ o.apply(this, arguments)), Vx(t, r(i))), + i.result() + } + var r, + i, + o = 4.5; + return e.area = function (t) { + return Vx(t, r(Lb)), + Lb.result() + }, + e.bounds = function (t) { + return Vx(t, r(Fb)), + Fb.result() + }, + e.centroid = function (t) { + return Vx(t, r(Zb)), + Zb.result() + }, + e.projection = function (n) { + return arguments.length + ? (r = null == (t = n) + ? zb + : n.stream, e) + : t + }, + e.context = function (t) { + return arguments.length + ? (i = null == (n = t) + ? new Hc + : new jc(t), "function" != typeof o && i.pointRadius(o), e) + : n + }, + e.pointRadius = function (t) { + return arguments.length + ? (o = "function" == typeof t + ? t + : (i.pointRadius(+ t), + t), e) + : o + }, + e + .projection(t) + .context(n) + }, + Jb = Xm(), + Qb = function (t, n) { + var e = n[0], + r = n[1], + i = [ + Ix(e), -Rx(e), + 0 + ], + o = 0, + u = 0; + Jb.reset(); + for (var a = 0, c = t.length; a < c; ++a) + if (f = (s = t[a]).length) + for (var s, f, l = s[f - 1], h = l[0], p = l[1] / 2 + Ax, d = Ix(p), v = Rx(p), _ = 0; _ < f; ++_, h = g, d = x, v = b, l = y) { + var y = s[_], + g = y[0], + m = y[1] / 2 + Ax, + x = Ix(m), + b = Rx(m), + w = g - h, + M = w >= 0 + ? 1 + : -1, + T = M * w, + N = T > kx, + k = d * x; + if (Jb.add(Lx(k * M * Ix(T), v * b + k * Rx(T))), o += N + ? w + M * Ex + : w, N ^ h >= e ^ g >= e) { + var S = Ya(Fa(l), Fa(y)); + Ha(S); + var A = Ya(i, S); + Ha(A); + var E = (N ^ w >= 0 + ? -1 + : 1) * Aa(A[2]); + (r > E || r === E && (S[0] || S[1])) && (u += N ^ w >= 0 + ? 1 + : -1) + } + } + return (o < -Tx || o < Tx && Jb < -Tx) ^ 1 & u + }, + Kb = function (t, n, e, r) { + return function (i, o) { + function u(n, e) { + var r = i(n, e); + t(n = r[0], e = r[1]) && o.point(n, e) + } + function a(t, n) { + var e = i(t, n); + _.point(e[0], e[1]) + } + function c() { + b.point = a, + _.lineStart() + } + function s() { + b.point = u, + _.lineEnd() + } + function f(t, n) { + v.push([t, n]); + var e = i(t, n); + m.point(e[0], e[1]) + } + function l() { + m.lineStart(), + v = [] + } + function h() { + f(v[0][0], v[0][1]), + m.lineEnd(); + var t, + n, + e, + r, + i = m.clean(), + u = g.result(), + a = u.length; + if (v.pop(), p.push(v), v = null, a) + if (1 & i) { + if (e = u[0], (n = e.length - 1) > 0) { + for (x || (o.polygonStart(), x = !0), o.lineStart(), t = 0; t < n; ++t) + o.point((r = e[t])[0], r[1]); + o.lineEnd() + } + } else + a > 1 && 2 & i && u.push(u.pop().concat(u.shift())), + d.push(u.filter(Vc)) + } + var p, + d, + v, + _ = n(o), + y = i.invert(r[0], r[1]), + g = yb(), + m = n(g), + x = !1, + b = { + point: u, + lineStart: c, + lineEnd: s, + polygonStart: function () { + b.point = f, + b.lineStart = l, + b.lineEnd = h, + d = [], + p = [] + }, + polygonEnd: function () { + b.point = u, + b.lineStart = c, + b.lineEnd = s, + d = Js(d); + var t = Qb(p, y); + d.length + ? (x || (o.polygonStart(), x = !0), xb(d, Wc, t, e, o)) + : t && (x || (o.polygonStart(), x = !0), o.lineStart(), e(null, null, 1, o), o.lineEnd()), + x && (o.polygonEnd(), x = !1), + d = p = null + }, + sphere: function () { + o.polygonStart(), + o.lineStart(), + e(null, null, 1, o), + o.lineEnd(), + o.polygonEnd() + } + }; + return b + } + }, + tw = Kb(function () { + return !0 + }, $c, Gc, [-kx, -Sx + ]), + nw = function (t, n) { + function e(e, r, i, o) { + _c(o, t, n, i, e, r) + } + function r(t, n) { + return Rx(t) * Rx(n) > a + } + function i(t) { + var n, + e, + i, + a, + f; + return { + lineStart: function () { + a = i = !1, + f = 1 + }, + point: function (l, h) { + var p, + d = [ + l, h + ], + v = r(l, h), + _ = c + ? v + ? 0 + : u(l, h) + : v + ? u(l + (l < 0 + ? kx + : -kx), h) + : 0; + if (!n && (a = i = v) && t.lineStart(), v !== i && (p = o(n, d), (mb(n, p) || mb(d, p)) && (d[0] += Tx, d[1] += Tx, v = r(d[0], d[1]))), v !== i) + f = 0, + v + ? (t.lineStart(), p = o(d, n), t.point(p[0], p[1])) + : (p = o(n, d), t.point(p[0], p[1]), t.lineEnd()), + n = p; + else if (s && n && c ^ v) { + var y; + _ & e || !(y = o(d, n, !0)) || (f = 0, c + ? (t.lineStart(), t.point(y[0][0], y[0][1]), t.point(y[1][0], y[1][1]), t.lineEnd()) + : (t.point(y[1][0], y[1][1]), t.lineEnd(), t.lineStart(), t.point(y[0][0], y[0][1]))) + } + !v || n && mb(n, d) || t.point(d[0], d[1]), + n = d, + i = v, + e = _ + }, + lineEnd: function () { + i && t.lineEnd(), + n = null + }, + clean: function () { + return f | (a && i) << 1 + } + } + } + function o(t, n, e) { + var r = Fa(t), + i = Fa(n), + o = [ + 1, 0, 0 + ], + u = Ya(r, i), + c = Ia(u, u), + s = u[0], + f = c - s * s; + if (!f) + return !e && t; + var l = a * c / f, + h = -a * s / f, + p = Ya(o, u), + d = ja(o, l), + v = ja(u, h); + Ba(d, v); + var _ = p, + y = Ia(d, _), + g = Ia(_, _), + m = y * y - g * (Ia(d, d) - 1); + if (!(m < 0)) { + var x = Bx(m), + b = ja(_, (-y - x) / g); + if (Ba(b, d), b = Oa(b), !e) + return b; + var w, + M = t[0], + T = n[0], + N = t[1], + k = n[1]; + T < M && (w = M, M = T, T = w); + var S = T - M, + A = Px(S - kx) < Tx, + E = A || S < Tx; + if (!A && k < N && (w = N, N = k, k = w), E + ? A + ? N + k > 0 ^ b[1] < (Px(b[0] - M) < Tx + ? N + : k) + : N <= b[1] && b[1] <= k + : S > kx ^ (M <= b[0] && b[0] <= T)) { + var C = ja(_, (-y + x) / g); + return Ba(C, d), + [b, Oa(C)] + } + } + } + function u(n, e) { + var r = c + ? t + : kx - t, + i = 0; + return n < -r + ? i |= 1 + : n > r && (i |= 2), + e < -r + ? i |= 4 + : e > r && (i |= 8), + i + } + var a = Rx(t), + c = a > 0, + s = Px(a) > Tx; + return Kb(r, i, e, c + ? [ + 0, -t + ] + : [-kx, + t - kx + ]) + }, + ew = function (t) { + return {stream: Jc(t)} + }; + Qc.prototype = { + constructor: Qc, + 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 rw = 16, + iw = Rx(30 * zx), + ow = function (t, n) { + return + n + ? es(t, n) + : ns(t) + }, + uw = Jc({ + point: function (t, n) { + this + .stream + .point(t * zx, n * zx) + } + }), + aw = function () { + return os(as) + .scale(155.424) + .center([0, 33.6442]) + }, + cw = function () { + return aw() + .parallels([29.5, 45.5]) + .scale(1070) + .translate([480, 250]) + .rotate([96, 0]) + .center([-.6, 38.7]) + }, + sw = function () { + function t(t) { + var n = t[0], + e = t[1]; + return a = null, + i.point(n, e), + a || (o.point(n, e), a) || (u.point(n, e), a) + } + function n() { + return e = r = null, + t + } + var e, + r, + i, + o, + u, + a, + c = cw(), + s = aw() + .rotate([154, 0]) + .center([-2, 58.5]) + .parallels([55, 65]), + f = aw() + .rotate([157, 0]) + .center([-3, 19.9]) + .parallels([8, 18]), + l = { + point: function (t, n) { + a = [t, n] + } + }; + return t.invert = function (t) { + var n = c.scale(), + e = c.translate(), + r = (t[0] - e[0]) / n, + i = (t[1] - e[1]) / n; + return (i >= .12 && i < .234 && r >= -.425 && r < -.214 + ? s + : i >= .166 && i < .234 && r >= -.214 && r < -.115 + ? f + : c).invert(t) + }, + t.stream = function (t) { + return e && r === t + ? e + : e = cs([ + c.stream(r = t), + s.stream(t), + f.stream(t) + ]) + }, + t.precision = function (t) { + return arguments.length + ? (c.precision(t), s.precision(t), f.precision(t), n()) + : c.precision() + }, + t.scale = function (n) { + return arguments.length + ? (c.scale(n), s.scale(.35 * n), f.scale(n), t.translate(c.translate())) + : c.scale() + }, + t.translate = function (t) { + if (!arguments.length) + return c.translate(); + var e = c.scale(), + r =+ t[0], + a =+ t[1]; + return i = c + .translate(t) + .clipExtent([ + [ + r - .455 * e, + a - .238 * e + ], + [ + r + .455 * e, + a + .238 * e + ] + ]) + .stream(l), + o = s + .translate([ + r - .307 * e, + a + .201 * e + ]) + .clipExtent([ + [ + r - .425 * e + Tx, + a + .12 * e + Tx + ], + [ + r - .214 * e - Tx, + a + .234 * e - Tx + ] + ]) + .stream(l), + u = f + .translate([ + r - .205 * e, + a + .212 * e + ]) + .clipExtent([ + [ + r - .214 * e + Tx, + a + .166 * e + Tx + ], + [ + r - .115 * e - Tx, + a + .234 * e - Tx + ] + ]) + .stream(l), + n() + }, + t.fitExtent = function (n, e) { + return Kc(t, n, e) + }, + t.fitSize = function (n, e) { + return ts(t, n, e) + }, + t.scale(1070) + }, + fw = ss(function (t) { + return Bx(2 / (1 + t)) + }); + fw.invert = fs(function (t) { + return 2 * Aa(t / 2) + }); + var lw = function () { + return rs(fw) + .scale(124.75) + .clipAngle(179.999) + }, + hw = ss(function (t) { + return (t = Sa(t)) && t / Ix(t) + }); + hw.invert = fs(function (t) { + return t + }); + var pw = function () { + return rs(hw) + .scale(79.4188) + .clipAngle(179.999) + }; + ls.invert = function (t, n) { + return [ + t, 2 * qx(Dx(n)) - Sx + ] + }; + var dw = function () { + return hs(ls).scale(961 / Ex) + }, + vw = function () { + return os(ds) + .scale(109.5) + .parallels([30, 30]) + }; + vs.invert = vs; + var _w = function () { + return rs(vs).scale(152.63) + }, + yw = function () { + return os(_s) + .scale(131.154) + .center([0, 13.9389]) + }; + ys.invert = fs(qx); + var gw = function () { + return rs(ys) + .scale(144.049) + .clipAngle(60) + }, + mw = function () { + function t() { + return i = o = null, + u + } + var n, + e, + r, + i, + o, + u, + a = 1, + c = 0, + s = 0, + f = zb, + l = null, + h = zb; + return u = { + stream: function (t) { + return i && o === t + ? i + : i = f(h(o = t)) + }, + clipExtent: function (i) { + return arguments.length + ? (h = null == i + ? (l = n = e = r = null, zb) + : xc(l =+ i[0][0], n =+ i[0][1], e =+ i[1][0], r =+ i[1][1]), t()) + : null == l + ? null + : [ + [ + l, n + ], + [e, r] + ] + }, + scale: function (n) { + return arguments.length + ? (f = gs(a =+ n, c, s), t()) + : a + }, + translate: function (n) { + return arguments.length + ? (f = gs(a, c =+ n[0], s =+ n[1]), t()) + : [c, s] + }, + fitExtent: function (t, n) { + return Kc(u, t, n) + }, + fitSize: function (t, n) { + return ts(u, t, n) + } + } + }; + ms.invert = fs(Aa); + var xw = function () { + return rs(ms) + .scale(249.5) + .clipAngle(90 + Tx) + }; + xs.invert = fs(function (t) { + return 2 * qx(t) + }); + var bw = function () { + return rs(xs) + .scale(250) + .clipAngle(142) + }; + bs.invert = function (t, n) { + return [-n, + 2 * qx(Dx(t)) - Sx + ] + }; + var ww = function () { + var t = hs(bs), + n = t.center, + e = t.rotate; + return t.center = function (t) { + return arguments.length + ? n([-t[1], + t[0] + ]) + : (t = n(), [ + t[1], -t[0] + ]) + }, + t.rotate = function (t) { + return arguments.length + ? e([ + t[0], t[1], t.length > 2 + ? t[2] + 90 + : 90 + ]) + : (t = e(), [ + t[0], t[1], t[2] - 90 + ]) + }, + e([0, 0, 90]).scale(159.155) + }; + t.version = ws, + t.bisect = ks, + t.bisectRight = ks, + t.bisectLeft = Ss, + t.ascending = Ms, + t.bisector = Ts, + t.descending = As, + t.deviation = zs, + t.extent = Ps, + t.histogram = Hs, + t.thresholdFreedmanDiaconis = Vs, + t.thresholdScott = Ws, + t.thresholdSturges = js, + t.max = $s, + t.mean = Zs, + t.median = Gs, + t.merge = Js, + t.min = Qs, + t.pairs = Ks, + t.permute = tf, + t.quantile = Xs, + t.range = Os, + t.scan = nf, + t.shuffle = ef, + t.sum = rf, + t.ticks = Bs, + t.tickStep = e, + t.transpose = of, + t.variance = Cs, + t.zip = uf, + t.entries = hf, + t.keys = ff, + t.values = lf, + t.map = o, + t.set = l, + t.nest = cf, + t.randomUniform = pf, + t.randomNormal = df, + t.randomLogNormal = vf, + t.randomBates = yf, + t.randomIrwinHall = _f, + t.randomExponential = gf, + t.easeLinear = h, + t.easeQuad = v, + t.easeQuadIn = p, + t.easeQuadOut = d, + t.easeQuadInOut = v, + t.easeCubic = g, + t.easeCubicIn = _, + t.easeCubicOut = y, + t.easeCubicInOut = g, + t.easePoly = wf, + t.easePolyIn = xf, + t.easePolyOut = bf, + t.easePolyInOut = wf, + t.easeSin = b, + t.easeSinIn = m, + t.easeSinOut = x, + t.easeSinInOut = b, + t.easeExp = T, + t.easeExpIn = w, + t.easeExpOut = M, + t.easeExpInOut = T, + t.easeCircle = S, + t.easeCircleIn = N, + t.easeCircleOut = k, + t.easeCircleInOut = S, + t.easeBounce = E, + t.easeBounceIn = A, + t.easeBounceOut = E, + t.easeBounceInOut = C, + t.easeBack = Of, + t.easeBackIn = Uf, + t.easeBackOut = Df, + t.easeBackInOut = Of, + t.easeElastic = jf, + t.easeElasticIn = Bf, + t.easeElasticOut = jf, + t.easeElasticInOut = Hf, + t.polygonArea = Xf, + t.polygonCentroid = Vf, + t.polygonHull = $f, + t.polygonContains = Zf, + t.polygonLength = Gf, + t.path = L, + t.quadtree = I, + t.queue = Z, + t.arc = wl, + t.area = Nl, + t.line = Tl, + t.pie = Al, + t.radialArea = zl, + t.radialLine = Cl, + t.symbol = Jl, + t.symbols = Gl, + t.symbolCircle = Pl, + t.symbolCross = ql, + t.symbolDiamond = Ul, + t.symbolSquare = Bl, + t.symbolStar = Yl, + t.symbolTriangle = Hl, + t.symbolWye = Zl, + t.curveBasisClosed = th, + t.curveBasisOpen = nh, + t.curveBasis = Kl, + t.curveBundle = eh, + t.curveCardinalClosed = ih, + t.curveCardinalOpen = oh, + t.curveCardinal = rh, + t.curveCatmullRomClosed = ah, + t.curveCatmullRomOpen = ch, + t.curveCatmullRom = uh, + t.curveLinearClosed = sh, + t.curveLinear = Ml, + t.curveMonotoneX = zt, + t.curveMonotoneY = Pt, + t.curveNatural = fh, + t.curveStep = lh, + t.curveStepAfter = Dt, + t.curveStepBefore = Ut, + t.stack = vh, + t.stackOffsetExpand = _h, + t.stackOffsetNone = ph, + t.stackOffsetSilhouette = yh, + t.stackOffsetWiggle = gh, + t.stackOrderAscending = mh, + t.stackOrderDescending = xh, + t.stackOrderInsideOut = bh, + t.stackOrderNone = dh, + t.stackOrderReverse = wh, + t.color = Bt, + t.rgb = Vt, + t.hsl = Gt, + t.lab = tn, + t.hcl = cn, + t.cubehelix = ln, + t.interpolate = _p, + t.interpolateArray = sp, + t.interpolateDate = fp, + t.interpolateNumber = lp, + t.interpolateObject = hp, + t.interpolateRound = yp, + t.interpolateString = vp, + t.interpolateTransformCss = bp, + t.interpolateTransformSvg = wp, + t.interpolateZoom = Sp, + t.interpolateRgb = up, + t.interpolateRgbBasis = ap, + t.interpolateRgbBasisClosed = cp, + t.interpolateHsl = Ap, + t.interpolateHslLong = Ep, + t.interpolateLab = En, + t.interpolateHcl = Cp, + t.interpolateHclLong = zp, + t.interpolateCubehelix = Pp, + t.interpolateCubehelixLong = qp, + t.interpolateBasis = rp, + t.interpolateBasisClosed = ip, + t.quantize = Lp, + t.dispatch = Pn, + t.dsvFormat = Op, + t.csvParse = Ip, + t.csvParseRows = Yp, + t.csvFormat = Bp, + t.csvFormatRows = jp, + t.tsvParse = Xp, + t.tsvParseRows = Vp, + t.tsvFormat = Wp, + t.tsvFormatRows = $p, + t.request = Zp, + t.html = Jp, + t.json = Qp, + t.text = Kp, + t.xml = td, + t.csv = ed, + t.tsv = rd, + t.now = jn, + t.timer = Vn, + t.timerFlush = Wn, + t.timeout = pd, + t.interval = dd, + t.timeInterval = Qn, + t.timeMillisecond = yd, + t.timeMilliseconds = gd, + t.timeSecond = Td, + t.timeSeconds = Nd, + t.timeMinute = kd, + t.timeMinutes = Sd, + t.timeHour = Ad, + t.timeHours = Ed, + t.timeDay = Cd, + t.timeDays = zd, + t.timeWeek = Pd, + t.timeWeeks = Fd, + t.timeSunday = Pd, + t.timeSundays = Fd, + t.timeMonday = qd, + t.timeMondays = Id, + t.timeTuesday = Ld, + t.timeTuesdays = Yd; + t.timeWednesday = Rd; + t.timeWednesdays = Bd, + t.timeThursday = Ud, + t.timeThursdays = jd, + t.timeFriday = Dd, + t.timeFridays = Hd, + t.timeSaturday = Od, + t.timeSaturdays = Xd, + t.timeMonth = Vd, + t.timeMonths = Wd, + t.timeYear = $d, + t.timeYears = Zd, + t.utcMillisecond = yd, + t.utcMilliseconds = gd, + t.utcSecond = Td, + t.utcSeconds = Nd, + t.utcMinute = Gd, + t.utcMinutes = Jd, + t.utcHour = Qd, + t.utcHours = Kd, + t.utcDay = tv, + t.utcDays = nv, + t.utcWeek = ev, + t.utcWeeks = sv, + t.utcSunday = ev, + t.utcSundays = sv, + t.utcMonday = rv, + t.utcMondays = fv, + t.utcTuesday = iv, + t.utcTuesdays = lv, + t.utcWednesday = ov, + t.utcWednesdays = hv, + t.utcThursday = uv, + t.utcThursdays = pv, + t.utcFriday = av, + t.utcFridays = dv, + t.utcSaturday = cv, + t.utcSaturdays = vv, + t.utcMonth = _v, + t.utcMonths = yv, + t.utcYear = gv, + t.utcYears = xv, + t.formatLocale = Pv, + t.formatDefaultLocale = re, + t.formatSpecifier = Ev, + t.precisionFixed = Lv, + t.precisionPrefix = Rv, + t.precisionRound = Uv, + t.isoFormat = Bv, + t.isoParse = jv, + t.timeFormatLocale = ae, + t.timeFormatDefaultLocale = nr, + t.scaleBand = or, + t.scalePoint = ar, + t.scaleIdentity = yr, + t.scaleLinear = _r, + t.scaleLog = Tr, + t.scaleOrdinal = ir, + t.scaleImplicit = Wv, + t.scalePow = kr, + t.scaleSqrt = Sr, + t.scaleQuantile = Ar, + t.scaleQuantize = Er, + t.scaleThreshold = Cr, + t.scaleTime = u_, + t.scaleUtc = a_, + t.schemeCategory10 = s_, + t.schemeCategory20b = f_, + t.schemeCategory20c = l_, + t.schemeCategory20 = h_, + t.scaleSequential = Rr, + t.interpolateCubehelixDefault = p_, + t.interpolateRainbow = y_, + t.interpolateWarm = d_, + t.interpolateCool = v_, + t.interpolateViridis = g_, + t.interpolateMagma = m_, + t.interpolateInferno = x_, + t.interpolatePlasma = b_, + t.creator = N_, + t.customEvent = Xr, + t.local = Or, + t.matcher = C_, + t.mouse = U_, + t.namespace = T_, + t.namespaces = M_, + t.select = gy, + t.selectAll = my, + t.selection = Pi, + t.selector = D_, + t.selectorAll = F_, + t.touch = xy, + t.touches = by, + t.window = iy, + t.active = ig, + t.interrupt = Py, + t.transition = fo, + t.axisTop = mo, + t.axisRight = xo, + t.axisBottom = bo, + t.axisLeft = wo, + t.cluster = hg, + t.hierarchy = zo, + t.pack = Sg, + t.packSiblings = Ng, + t.packEnclose = Tg, + t.partition = Cg, + t.stratify = Lg, + t.tree = Rg, + t.treemap = Fg, + t.treemapBinary = Ig, + t.treemapDice = Eg, + t.treemapSlice = Ug, + t.treemapSliceDice = Yg, + t.treemapSquarify = Og, + t.treemapResquarify = Bg, + t.forceCenter = jg, + t.forceCollide = Vg, + t.forceLink = Wg, + t.forceManyBody = Jg, + t.forceSimulation = Gg, + t.forceX = Qg, + t.forceY = Kg, + t.drag = rm, + t.dragDisable = nm, + t.dragEnable = mu, + t.voronoi = dm, + t.zoom = gm, + t.zoomIdentity = _m, + t.zoomTransform = ia, + t.brush = Lm, + t.brushX = _a, + t.brushY = ya, + t.brushSelection = va, + t.chord = Ym, + t.ribbon = Hm, + t.geoAlbers = cw, + t.geoAlbersUsa = sw, + t.geoArea = Gx, + t.geoAzimuthalEqualArea = lw, + t.geoAzimuthalEqualAreaRaw = fw, + t.geoAzimuthalEquidistant = pw, + t.geoAzimuthalEquidistantRaw = hw, + t.geoBounds = Kx, + t.geoCentroid = nb, + t.geoCircle = _b, + t.geoClipExtent = Mb, + t.geoConicConformal = vw, + t.geoConicConformalRaw = ds, + t.geoConicEqualArea = aw, + t.geoConicEqualAreaRaw = as, + t.geoConicEquidistant = yw, + t.geoConicEquidistantRaw = _s, + t.geoDistance = Eb, + t.geoEquirectangular = _w, + t.geoEquirectangularRaw = vs, + t.geoGnomonic = gw, + t.geoGnomonicRaw = ys, + t.geoGraticule = Sc, + t.geoGraticule10 = Ac, + t.geoIdentity = mw, + t.geoInterpolate = Cb, + t.geoLength = kb, + t.geoMercator = dw, + t.geoMercatorRaw = ls, + t.geoOrthographic = xw, + t.geoOrthographicRaw = ms, + t.geoPath = Gb, + t.geoProjection = rs, + t.geoProjectionMutator = is, + t.geoRotation = vb, + t.geoStereographic = bw, + t.geoStereographicRaw = xs, + t.geoStream = Vx, + t.geoTransform = ew, + t.geoTransverseMercator = ww, + t.geoTransverseMercatorRaw = bs, + Object.defineProperty(t, "__esModule", { + value: !0 + }) + }); \ No newline at end of file diff --git a/assets/js/jquery.min.js b/assets/js/jquery.min.js new file mode 100644 index 0000000..ac35a19 --- /dev/null +++ b/assets/js/jquery.min.js @@ -0,0 +1,5315 @@ +/*! jQuery v3.1.1 | (c) jQuery Foundation | jquery.org/license */ +!function (a, b) { + "use strict"; + "object" == typeof module && "object" == typeof module.exports + ? module.exports = a.document + ? b(a, !0) + : function (a) { + if (!a.document) + throw new Error("jQuery requires a window with a document"); + return b(a) + } + : b(a) +}("undefined" != typeof window + ? window + : this, function (a, b) { + "use strict"; + var c = [], + d = a.document, + e = Object.getPrototypeOf, + f = c.slice, + g = c.concat, + h = c.push, + i = c.indexOf, + j = {}, + k = j.toString, + l = j.hasOwnProperty, + m = l.toString, + n = m.call(Object), + o = {}; + function p(a, b) { + b = b || d; + var c = b.createElement("script"); + c.text = a, + b + .head + .appendChild(c) + .parentNode + .removeChild(c) + } + var q = "3.1.1", + r = function (a, b) { + return new r + .fn + .init(a, b) + }, + s = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, + t = /^-ms-/, + u = /-([a-z])/g, + v = function (a, b) { + return b.toUpperCase() + }; + r.fn = r.prototype = { + jquery: q, + constructor: r, + length: 0, + toArray: function () { + return f.call(this) + }, + get: function (a) { + return null == a + ? f.call(this) + : a < 0 + ? this[a + this.length] + : this[a] + }, + pushStack: function (a) { + var b = r.merge(this.constructor(), a); + return b.prevObject = this, + b + }, + each: function (a) { + return r.each(this, a) + }, + map: function (a) { + return this.pushStack(r.map(this, function (b, c) { + return a.call(b, c, b) + })) + }, + slice: function () { + return this.pushStack(f.apply(this, arguments)) + }, + first: function () { + return this.eq(0) + }, + last: function () { + return this.eq(-1) + }, + eq: function (a) { + var b = this.length, + c =+ a + (a < 0 + ? b + : 0); + return this.pushStack(c >= 0 && c < b + ? [this[c]] + : []) + }, + end: function () { + return this.prevObject || this.constructor() + }, + push: h, + sort: c.sort, + splice: c.splice + }, + r.extend = r.fn.extend = function () { + var a, + b, + c, + d, + e, + f, + g = arguments[0] || {}, + h = 1, + i = arguments.length, + j = !1; + for ("boolean" == typeof g && (j = g, g = arguments[h] || {}, h++), "object" == typeof g || r.isFunction(g) || (g = {}), h === i && (g = this, h--); h < i; h++) + if (null != (a = arguments[h])) + for (b in a) + c = g[b], + d = a[b], + g !== d && (j && d && (r.isPlainObject(d) || (e = r.isArray(d))) + ? (e + ? (e = !1, f = c && r.isArray(c) + ? c + : []) + : f = c && r.isPlainObject(c) + ? c + : {}, g[b] = r.extend(j, f, d)) + : void 0 !== d && (g[b] = d)); + return g + }, + r.extend({ + expando: "jQuery" + (q + Math.random()).replace(/\D/g, ""), + isReady: !0, + error: function (a) { + throw new Error(a) + }, + noop: function () {}, + isFunction: function (a) { + return "function" === r.type(a) + }, + isArray: Array.isArray, + isWindow: function (a) { + return null != a && a === a.window + }, + isNumeric: function (a) { + var b = r.type(a); + return ("number" === b || "string" === b) && !isNaN(a - parseFloat(a)) + }, + isPlainObject: function (a) { + var b, + c; + return !(!a || "[object Object]" !== k.call(a)) && (!(b = e(a)) || (c = l.call(b, "constructor") && b.constructor, "function" == typeof c && m.call(c) === n)) + }, + isEmptyObject: function (a) { + var b; + for (b in a) + return !1; + return !0 + }, + type: function (a) { + return null == a + ? a + "" + : "object" == typeof a || "function" == typeof a + ? j[k.call(a)] || "object" + : typeof a + }, + globalEval: function (a) { + p(a) + }, + camelCase: function (a) { + return a + .replace(t, "ms-") + .replace(u, v) + }, + nodeName: function (a, b) { + return a.nodeName && a + .nodeName + .toLowerCase() === b.toLowerCase() + }, + each: function (a, b) { + var c, + d = 0; + if (w(a)) { + for (c = a.length; d < c; d++) + if (b.call(a[d], d, a[d]) === !1) + break + } + else + for (d in a) + if (b.call(a[d], d, a[d]) === !1) + break; + return a + }, + trim: function (a) { + return null == a + ? "" + : (a + "").replace(s, "") + }, + makeArray: function (a, b) { + var c = b || []; + return null != a && (w(Object(a)) + ? r.merge(c, "string" == typeof a + ? [a] + : a) + : h.call(c, a)), + c + }, + inArray: function (a, b, c) { + return null == b + ? -1 + : i.call(b, a, c) + }, + merge: function (a, b) { + for (var c =+ b.length, d = 0, e = a.length; d < c; d++) + a[e++] = b[d]; + return a.length = e, + a + }, + grep: function (a, b, c) { + for (var d, e = [], f = 0, g = a.length, h = !c; f < g; f++) + d = !b(a[f], f), + d !== h && e.push(a[f]); + return e + }, + map: function (a, b, c) { + var d, + e, + f = 0, + h = []; + if (w(a)) + for (d = a.length; f < d; f++) + e = b(a[f], f, c), + null != e && h.push(e); + else + for (f in a) + e = b(a[f], f, c), + null != e && h.push(e); + return g.apply([], h) + }, + guid: 1, + proxy: function (a, b) { + var c, + d, + e; + if ("string" == typeof b && (c = a[b], b = a, a = c), r.isFunction(a)) + return d = f.call(arguments, 2), + e = function () { + return a.apply(b || this, d.concat(f.call(arguments))) + } + , + e.guid = a.guid = a.guid || r.guid++, + e + }, + now: Date.now, + support: o + }), + "function" == typeof Symbol && (r.fn[Symbol.iterator] = c[Symbol.iterator]), + r.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "), function (a, b) { + j["[object " + b + "]"] = b.toLowerCase() + }); + function w(a) { + var b = !!a && "length" in a && a.length, + c = r.type(a); + return "function" !== c && !r.isWindow(a) && ("array" === c || 0 === b || "number" == typeof b && b > 0 && b - 1 in a) + } + var x = function (a) { + var b, + c, + d, + e, + f, + g, + h, + i, + j, + k, + l, + m, + n, + o, + p, + q, + r, + s, + t, + u = "sizzle" + 1 * new Date, + v = a.document, + w = 0, + x = 0, + y = ha(), + z = ha(), + A = ha(), + B = function (a, b) { + return a === b && (l = !0), + 0 + }, + C = {}.hasOwnProperty, + D = [], + E = D.pop, + F = D.push, + G = D.push, + H = D.slice, + I = function (a, b) { + for (var c = 0, d = a.length; c < d; c++) + if (a[c] === b) + return c; + return -1 + }, + J = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|l" + + "oop|multiple|open|readonly|required|scoped", + K = "[\\x20\\t\\r\\n\\f]", + L = "(?:\\\\.|[\\w-]|[^\0-\\xa0])+", + M = "\\[" + K + "*(" + L + ")(?:" + K + "*([*^$|!~]?=)" + K + "*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + L + "))|)" + K + "*\\]", + N = ":(" + L + ")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[" + + "\\]]|" + M + ")*)|.*)\\)|)", + O = new RegExp(K + "+", "g"), + P = new RegExp("^" + K + "+|((?:^|[^\\\\])(?:\\\\.)*)" + K + "+$", "g"), + Q = new RegExp("^" + K + "*," + K + "*"), + R = new RegExp("^" + K + "*([>+~]|" + K + ")" + K + "*"), + S = new RegExp("=" + K + "*([^\\]'\"]*?)" + K + "*\\]", "g"), + T = new RegExp(N), + U = new RegExp("^" + L + "$"), + V = { + ID: new RegExp("^#(" + L + ")"), + CLASS: new RegExp("^\\.(" + L + ")"), + TAG: new RegExp("^(" + L + "|[*])"), + ATTR: new RegExp("^" + M), + PSEUDO: new RegExp("^" + N), + CHILD: new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + K + "*(even|odd|(([+-]|)(\\d*)n|)" + K + "*(?:([+-]|)" + K + "*(\\d+)|))" + K + "*\\)|)", "i"), + bool: new RegExp("^(?:" + J + ")$", "i"), + needsContext: new RegExp("^" + K + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + K + "*((?:-\\d)?\\d*)" + K + "*\\)|)(?=[^-]|$)", "i") + }, + W = /^(?:input|select|textarea|button)$/i, + X = /^h\d$/i, + Y = /^[^{]+\{\s*\[native \w/, + Z = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/, + $ = /[+~]/, + _ = new RegExp("\\\\([\\da-f]{1,6}" + K + "?|(" + K + ")|.)", "ig"), + aa = function (a, b, c) { + var d = "0x" + b - 65536; + return d !== d || c + ? b + : d < 0 + ? String.fromCharCode(d + 65536) + : String.fromCharCode(d >> 10 | 55296, 1023 & d | 56320) + }, + ba = /([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g, + ca = function (a, b) { + return b + ? "\0" === a + ? "\ufffd" + : a.slice(0, -1) + "\\" + a + .charCodeAt(a.length - 1) + .toString(16) + " " + : "\\" + a + }, + da = function () { + m() + }, + ea = ta(function (a) { + return a.disabled === !0 && ("form" in a || "label" in a) + }, { + dir: "parentNode", + next: "legend" + }); + try { + G.apply(D = H.call(v.childNodes), v.childNodes), + D[v.childNodes.length].nodeType + } catch (fa) { + G = { + apply: D.length + ? function (a, b) { + F.apply(a, H.call(b)) + } + : function (a, b) { + var c = a.length, + d = 0; + while (a[c++] = b[d++]) + ; + a.length = c - 1 + } + } + } + function ga(a, b, d, e) { + var f, + h, + j, + k, + l, + o, + r, + s = b && b.ownerDocument, + w = b + ? b.nodeType + : 9; + if (d = d || [], "string" != typeof a || !a || 1 !== w && 9 !== w && 11 !== w) + return d; + if (!e && ((b + ? b.ownerDocument || b + : v) !== n && m(b), b = b || n, p)) { + if (11 !== w && (l = Z.exec(a))) + if (f = l[1]) { + if (9 === w) { + if (!(j = b.getElementById(f))) + return d; + if (j.id === f) + return d.push(j), + d + } else if (s && (j = s.getElementById(f)) && t(b, j) && j.id === f) + return d.push(j), + d + } + else { + if (l[2]) + return G.apply(d, b.getElementsByTagName(a)), + d; + if ((f = l[3]) && c.getElementsByClassName && b.getElementsByClassName) + return G.apply(d, b.getElementsByClassName(f)), + d + } + if (c.qsa && !A[a + " "] && (!q || !q.test(a))) { + if (1 !== w) + s = b, + r = a; + else if ("object" !== b.nodeName.toLowerCase()) { + (k = b.getAttribute("id")) + ? k = k.replace(ba, ca) + : b.setAttribute("id", k = u), + o = g(a), + h = o.length; + while (h--) + o[h] = "#" + k + " " + sa(o[h]); + r = o.join(","), + s = $.test(a) && qa(b.parentNode) || b + } + if (r) + try { + return G.apply(d, s.querySelectorAll(r)), + d + } catch (x) {} + finally { + k === u && b.removeAttribute("id") + } + } + } + return i(a.replace(P, "$1"), b, d, e) + } + function ha() { + var a = []; + function b(c, e) { + return a.push(c + " ") > d.cacheLength && delete b[a.shift()], + b[c + " "] = e + } + return b + } + function ia(a) { + return a[u] = !0, + a + } + function ja(a) { + var b = n.createElement("fieldset"); + try { + return !!a(b) + } catch (c) { + return !1 + } finally { + b.parentNode && b + .parentNode + .removeChild(b), + b = null + } + } + function ka(a, b) { + var c = a.split("|"), + e = c.length; + while (e--) + d.attrHandle[c[e]] = b + } + function la(a, b) { + var c = b && a, + d = c && 1 === a.nodeType && 1 === b.nodeType && a.sourceIndex - b.sourceIndex; + if (d) + return d; + if (c) + while (c = c.nextSibling) + if (c === b) + return -1; + return a + ? 1 + : -1 + } + function ma(a) { + return function (b) { + var c = b + .nodeName + .toLowerCase(); + return "input" === c && b.type === a + } + } + function na(a) { + return function (b) { + var c = b + .nodeName + .toLowerCase(); + return ("input" === c || "button" === c) && b.type === a + } + } + function oa(a) { + return function (b) { + return "form" in b + ? b.parentNode && b.disabled === !1 + ? "label" in b + ? "label" in b.parentNode + ? b.parentNode.disabled === a + : b.disabled === a + : b.isDisabled === a || b.isDisabled !== !a && ea(b) === a + : b.disabled === a + : "label" in b && b.disabled === a + } + } + function pa(a) { + return ia(function (b) { + return b =+ b, + ia(function (c, d) { + var e, + f = a([], c.length, b), + g = f.length; + while (g--) + c[e = f[g]] && (c[e] = !(d[e] = c[e])) + }) + }) + } + function qa(a) { + return a && "undefined" != typeof a.getElementsByTagName && a + } + c = ga.support = {}, + f = ga.isXML = function (a) { + var b = a && (a.ownerDocument || a).documentElement; + return !!b && "HTML" !== b.nodeName + }, + m = ga.setDocument = function (a) { + var b, + e, + g = a + ? a.ownerDocument || a + : v; + return g !== n && 9 === g.nodeType && g.documentElement + ? (n = g, o = n.documentElement, p = !f(n), v !== n && (e = n.defaultView) && e.top !== e && (e.addEventListener + ? e.addEventListener("unload", da, !1) + : e.attachEvent && e.attachEvent("onunload", da)), c.attributes = ja(function (a) { + return a.className = "i", + !a.getAttribute("className") + }), c.getElementsByTagName = ja(function (a) { + return a.appendChild(n.createComment("")), + !a + .getElementsByTagName("*") + .length + }), c.getElementsByClassName = Y.test(n.getElementsByClassName), c.getById = ja(function (a) { + return o + .appendChild(a) + .id = u, + !n.getElementsByName || !n + .getElementsByName(u) + .length + }), c.getById + ? (d.filter.ID = function (a) { + var b = a.replace(_, aa); + return function (a) { + return a.getAttribute("id") === b + } + }, + d.find.ID = function (a, b) { + if ("undefined" != typeof b.getElementById && p) { + var c = b.getElementById(a); + return c + ? [c] + : [] + } + }) + : (d.filter.ID = function (a) { + var b = a.replace(_, aa); + return function (a) { + var c = "undefined" != typeof a.getAttributeNode && a.getAttributeNode("id"); + return c && c.value === b + } + }, + d.find.ID = function (a, b) { + if ("undefined" != typeof b.getElementById && p) { + var c, + d, + e, + f = b.getElementById(a); + if (f) { + if (c = f.getAttributeNode("id"), c && c.value === a) + return [f]; + e = b.getElementsByName(a), + d = 0; + while (f = e[d++]) + if (c = f.getAttributeNode("id"), c && c.value === a) + return [f] + } + return [] + } + }), d.find.TAG = c.getElementsByTagName + ? function (a, b) { + return "undefined" != typeof b.getElementsByTagName + ? b.getElementsByTagName(a) + : c.qsa + ? b.querySelectorAll(a) + : void 0 + } + : function (a, b) { + var c, + d = [], + e = 0, + f = b.getElementsByTagName(a); + if ("*" === a) { + while (c = f[e++]) + 1 === c.nodeType && d.push(c); + return d + } + return f + }, + d.find.CLASS = c.getElementsByClassName && function (a, b) { + if ("undefined" != typeof b.getElementsByClassName && p) + return b.getElementsByClassName(a) + }, + r = [], + q = [], + (c.qsa = Y.test(n.querySelectorAll)) && (ja(function (a) { + o + .appendChild(a) + .innerHTML = "", + a + .querySelectorAll("[msallowcapture^='']") + .length && q.push("[*^$]=" + K + "*(?:''|\"\")"), + a + .querySelectorAll("[selected]") + .length || q.push("\\[" + K + "*(?:value|" + J + ")"), + a + .querySelectorAll("[id~=" + u + "-]") + .length || q.push("~="), + a + .querySelectorAll(":checked") + .length || q.push(":checked"), + a + .querySelectorAll("a#" + u + "+*") + .length || q.push(".#.+[+~]") + }), ja(function (a) { + a.innerHTML = "", + a + .firstChild + .setAttribute("value", ""), + "" === a + .firstChild + .getAttribute("value") + }) || ka("value", function (a, b, c) { + if (!c && "input" === a.nodeName.toLowerCase()) + return a.defaultValue + }), + ja(function (a) { + return null == a.getAttribute("disabled") + }) || ka(J, function (a, b, c) { + var d; + if (!c) + return a[b] === !0 + ? b.toLowerCase() + : (d = a.getAttributeNode(b)) && d.specified + ? d.value + : null + }), + ga + }(a); + r.find = x, + r.expr = x.selectors, + r.expr[":"] = r.expr.pseudos, + r.uniqueSort = r.unique = x.uniqueSort, + r.text = x.getText, + r.isXMLDoc = x.isXML, + r.contains = x.contains, + r.escapeSelector = x.escape; + var y = function (a, b, c) { + var d = [], + e = void 0 !== c; + while ((a = a[b]) && 9 !== a.nodeType) + if (1 === a.nodeType) { + if (e && r(a).is(c)) + break; + d.push(a) + } + return d + }, + z = function (a, b) { + for (var c = []; a; a = a.nextSibling) + 1 === a.nodeType && a !== b && c.push(a); + return c + }, + A = r.expr.match.needsContext, + B = /^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i, + C = /^.[^:#\[\.,]*$/; + function D(a, b, c) { + return r.isFunction(b) + ? r.grep(a, function (a, d) { + return !!b.call(a, d, a) !== c + }) + : b.nodeType + ? r.grep(a, function (a) { + return a === b !== c + }) + : "string" != typeof b + ? r.grep(a, function (a) { + return i.call(b, a) > -1 !== c + }) + : C.test(b) + ? r.filter(b, a, c) + : (b = r.filter(b, a), r.grep(a, function (a) { + return i.call(b, a) > -1 !== c && 1 === a.nodeType + })) + } + r.filter = function (a, b, c) { + var d = b[0]; + return c && (a = ":not(" + a + ")"), + 1 === b.length && 1 === d.nodeType + ? r + .find + .matchesSelector(d, a) + ? [d] + : [] + : r + .find + .matches(a, r.grep(b, function (a) { + return 1 === a.nodeType + })) + }, + r + .fn + .extend({ + find: function (a) { + var b, + c, + d = this.length, + e = this; + if ("string" != typeof a) + return this.pushStack(r(a).filter(function () { + for (b = 0; b < d; b++) + if (r.contains(e[b], this)) + return !0 + })); + for (c = this.pushStack([]), b = 0; b < d; b++) + r.find(a, e[b], c); + return d > 1 + ? r.uniqueSort(c) + : c + }, + filter: function (a) { + return this.pushStack(D(this, a || [], !1)) + }, + not: function (a) { + return this.pushStack(D(this, a || [], !0)) + }, + is: function (a) { + return !!D(this, "string" == typeof a && A.test(a) + ? r(a) + : a || [], !1).length + } + }); + var E, + F = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/, + G = r.fn.init = function (a, b, c) { + var e, + f; + if (!a) + return this; + if (c = c || E, "string" == typeof a) { + if (e = "<" === a[0] && ">" === a[a.length - 1] && a.length >= 3 + ? [null, a, null] + : F.exec(a), !e || !e[1] && b) + return !b || b.jquery + ? (b || c).find(a) + : this.constructor(b).find(a); + if (e[1]) { + if (b = b instanceof r + ? b[0] + : b, r.merge(this, r.parseHTML(e[1], b && b.nodeType + ? b.ownerDocument || b + : d, !0)), B.test(e[1]) && r.isPlainObject(b)) + for (e in b) + r.isFunction(this[e]) + ? this[e](b[e]) + : this.attr(e, b[e]); + return this + } + return f = d.getElementById(e[2]), + f && (this[0] = f, this.length = 1), + this + } + return a.nodeType + ? (this[0] = a, this.length = 1, this) + : r.isFunction(a) + ? void 0 !== c.ready + ? c.ready(a) + : a(r) + : r.makeArray(a, this) + }; + G.prototype = r.fn, + E = r(d); + var H = /^(?:parents|prev(?:Until|All))/, + I = { + children: !0, + contents: !0, + next: !0, + prev: !0 + }; + r + .fn + .extend({ + has: function (a) { + var b = r(a, this), + c = b.length; + return this.filter(function () { + for (var a = 0; a < c; a++) + if (r.contains(this, b[a])) + return !0 + }) + }, + closest: function (a, b) { + var c, + d = 0, + e = this.length, + f = [], + g = "string" != typeof a && r(a); + if (!A.test(a)) + for (; d < e; d++) + for (c = this[d]; c && c !== b; c = c.parentNode) + if (c.nodeType < 11 && (g + ? g.index(c) > -1 + : 1 === c.nodeType && r.find.matchesSelector(c, a))) { + f.push(c); + break + } + return this.pushStack(f.length > 1 + ? r.uniqueSort(f) + : f) + }, + index: function (a) { + return a + ? "string" == typeof a + ? i.call(r(a), this[0]) + : i.call(this, a.jquery + ? a[0] + : a) + : this[0] && this[0].parentNode + ? this + .first() + .prevAll() + .length + : -1 + }, + add: function (a, b) { + return this.pushStack(r.uniqueSort(r.merge(this.get(), r(a, b)))) + }, + addBack: function (a) { + return this.add(null == a + ? this.prevObject + : this.prevObject.filter(a)) + } + }); + function J(a, b) { + while ((a = a[b]) && 1 !== a.nodeType) + ; + return a + } + r + .each({ + parent: function (a) { + var b = a.parentNode; + return b && 11 !== b.nodeType + ? b + : null + }, + parents: function (a) { + return y(a, "parentNode") + }, + parentsUntil: function (a, b, c) { + return y(a, "parentNode", c) + }, + next: function (a) { + return J(a, "nextSibling") + }, + prev: function (a) { + return J(a, "previousSibling") + }, + nextAll: function (a) { + return y(a, "nextSibling") + }, + prevAll: function (a) { + return y(a, "previousSibling") + }, + nextUntil: function (a, b, c) { + return y(a, "nextSibling", c) + }, + prevUntil: function (a, b, c) { + return y(a, "previousSibling", c) + }, + siblings: function (a) { + return z((a.parentNode || {}).firstChild, a) + }, + children: function (a) { + return z(a.firstChild) + }, + contents: function (a) { + return a.contentDocument || r.merge([], a.childNodes) + } + }, function (a, b) { + r.fn[a] = function (c, d) { + var e = r.map(this, b, c); + return "Until" !== a.slice(-5) && (d = c), + d && "string" == typeof d && (e = r.filter(d, e)), + this.length > 1 && (I[a] || r.uniqueSort(e), H.test(a) && e.reverse()), + this.pushStack(e) + } + }); + var K = /[^\x20\t\r\n\f]+/g; + function L(a) { + var b = {}; + return r.each(a.match(K) || [], function (a, c) { + b[c] = !0 + }), + b + } + r.Callbacks = function (a) { + a = "string" == typeof a + ? L(a) + : r.extend({}, a); + var b, + c, + d, + e, + f = [], + g = [], + h = -1, + i = function () { + for (e = a.once, d = b = !0; g.length; h = -1) { + c = g.shift(); + while (++h < f.length) + f[h].apply(c[0], c[1]) === !1 && a.stopOnFalse && (h = f.length, c = !1) + } + a.memory || (c = !1), + b = !1, + e && (f = c + ? [] + : "") + }, + j = { + add: function () { + return f && (c && !b && (h = f.length - 1, g.push(c)), function d(b) { + r + .each(b, function (b, c) { + r.isFunction(c) + ? a.unique && j.has(c) || f.push(c) + : c && c.length && "string" !== r.type(c) && d(c) + }) + }(arguments), + c && !b && i()), + this + }, + remove: function () { + return r.each(arguments, function (a, b) { + var c; + while ((c = r.inArray(b, f, c)) > -1) + f.splice(c, 1), + c <= h && h-- + }), + this + }, + has: function (a) { + return a + ? r.inArray(a, f) > -1 + : f.length > 0 + }, + empty: function () { + return f && (f = []), + this + }, + disable: function () { + return e = g = [], + f = c = "", + this + }, + disabled: function () { + return !f + }, + lock: function () { + return e = g = [], + c || b || (f = c = ""), + this + }, + locked: function () { + return !!e + }, + fireWith: function (a, c) { + return e || (c = c || [], c = [ + a, c.slice + ? c.slice() + : c + ], g.push(c), b || i()), + this + }, + fire: function () { + return j.fireWith(this, arguments), + this + }, + fired: function () { + return !!d + } + }; + return j + }; + function M(a) { + return a + } + function N(a) { + throw a + } + function O(a, b, c) { + var d; + try { + a && r.isFunction(d = a.promise) + ? d + .call(a) + .done(b) + .fail(c) + : a && r.isFunction(d = a.then) + ? d.call(a, b, c) + : b.call(void 0, a) + } catch (a) { + c.call(void 0, a) + } + } + r.extend({ + Deferred: function (b) { + var c = [ + [ + "notify", "progress", r.Callbacks("memory"), + r.Callbacks("memory"), + 2 + ], + [ + "resolve", "done", r.Callbacks("once memory"), + r.Callbacks("once memory"), + 0, + "resolved" + ], + [ + "reject", "fail", r.Callbacks("once memory"), + r.Callbacks("once memory"), + 1, + "rejected" + ] + ], + d = "pending", + e = { + state: function () { + return d + }, + always: function () { + return f + .done(arguments) + .fail(arguments), + this + }, + "catch": function (a) { + return e.then(null, a) + }, + pipe: function () { + var a = arguments; + return r.Deferred(function (b) { + r + .each(c, function (c, d) { + var e = r.isFunction(a[d[4]]) && a[d[4]]; + f[d[1]](function () { + var a = e && e.apply(this, arguments); + a && r.isFunction(a.promise) + ? a + .promise() + .progress(b.notify) + .done(b.resolve) + .fail(b.reject) + : b[d[0] + "With"](this, e + ? [a] + : arguments) + }) + }), + a = null + }).promise() + }, + then: function (b, d, e) { + var f = 0; + function g(b, c, d, e) { + return function () { + var h = this, + i = arguments, + j = function () { + var a, + j; + if (!(b < f)) { + if (a = d.apply(h, i), a === c.promise()) + throw new TypeError("Thenable self-resolution"); + j = a && ("object" == typeof a || "function" == typeof a) && a.then, + r.isFunction(j) + ? e + ? j.call(a, g(f, c, M, e), g(f, c, N, e)) + : (f++, j.call(a, g(f, c, M, e), g(f, c, N, e), g(f, c, M, c.notifyWith))) + : (d !== M && (h = void 0, i = [a]), (e || c.resolveWith)(h, i)) + } + }, + k = e + ? j + : function () { + try { + j() + } catch (a) { + r.Deferred.exceptionHook && r + .Deferred + .exceptionHook(a, k.stackTrace), + b + 1 >= f && (d !== N && (h = void 0, i = [a]), c.rejectWith(h, i)) + } + }; + b + ? k() + : (r.Deferred.getStackHook && (k.stackTrace = r.Deferred.getStackHook()), a.setTimeout(k)) + } + } + return r.Deferred(function (a) { + c[0][3].add(g(0, a, r.isFunction(e) + ? e + : M, a.notifyWith)), + c[1][3].add(g(0, a, r.isFunction(b) + ? b + : M)), + c[2][3].add(g(0, a, r.isFunction(d) + ? d + : N)) + }).promise() + }, + promise: function (a) { + return null != a + ? r.extend(a, e) + : e + } + }, + f = {}; + return r.each(c, function (a, b) { + var g = b[2], + h = b[5]; + e[b[1]] = g.add, + h && g.add(function () { + d = h + }, c[3 - a][2].disable, c[0][2].lock), + g.add(b[3].fire), + f[b[0]] = function () { + return f[b[0] + "With"](this === f + ? void 0 + : this, arguments), + this + }, + f[b[0] + "With"] = g.fireWith + }), + e.promise(f), + b && b.call(f, f), + f + }, + when: function (a) { + var b = arguments.length, + c = b, + d = Array(c), + e = f.call(arguments), + g = r.Deferred(), + h = function (a) { + return function (c) { + d[a] = this, + e[a] = arguments.length > 1 + ? f.call(arguments) + : c, + --b || g.resolveWith(d, e) + } + }; + if (b <= 1 && (O(a, g.done(h(c)).resolve, g.reject), "pending" === g.state() || r.isFunction(e[c] && e[c].then))) + return g.then(); + while (c--) + O(e[c], h(c), g.reject); + return g.promise() + } + }); + var P = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/; + r.Deferred.exceptionHook = function (b, c) { + a.console && a.console.warn && b && P.test(b.name) && a + .console + .warn("jQuery.Deferred exception: " + b.message, b.stack, c) + }, + r.readyException = function (b) { + a + .setTimeout(function () { + throw b + }) + }; + var Q = r.Deferred(); + r.fn.ready = function (a) { + return Q.then(a)["catch"](function (a) { + r.readyException(a) + }), + this + }, + r.extend({ + isReady: !1, + readyWait: 1, + holdReady: function (a) { + a + ? r.readyWait++ + : r.ready(!0) + }, + ready: function (a) { + (a === !0 + ? --r.readyWait + : r.isReady) || (r.isReady = !0, a !== !0 && --r.readyWait > 0 || Q.resolveWith(d, [r])) + } + }), + r.ready.then = Q.then; + function R() { + d.removeEventListener("DOMContentLoaded", R), + a.removeEventListener("load", R), + r.ready() + } + "complete" === d.readyState || "loading" !== d.readyState && !d.documentElement.doScroll + ? a.setTimeout(r.ready) + : (d.addEventListener("DOMContentLoaded", R), a.addEventListener("load", R)); + var S = function (a, b, c, d, e, f, g) { + var h = 0, + i = a.length, + j = null == c; + if ("object" === r.type(c)) { + e = !0; + for (h in c) + S(a, b, h, c[h], !0, f, g) + } else if (void 0 !== d && (e = !0, r.isFunction(d) || (g = !0), j && (g + ? (b.call(a, d), b = null) + : (j = b, b = function (a, b, c) { + return j.call(r(a), c) + })), b)) + for (; h < i; h++) + b(a[h], c, g + ? d + : d.call(a[h], h, b(a[h], c))); + return e + ? a + : j + ? b.call(a) + : i + ? b(a[0], c) + : f + }, + T = function (a) { + return 1 === a.nodeType || 9 === a.nodeType || !+ a.nodeType + }; + function U() { + this.expando = r.expando + U.uid++ + } + U.uid = 1, + U.prototype = { + cache: function (a) { + var b = a[this.expando]; + return b || (b = {}, T(a) && (a.nodeType + ? a[this.expando] = b + : Object.defineProperty(a, this.expando, { + value: b, + configurable: !0 + }))), + b + }, + set: function (a, b, c) { + var d, + e = this.cache(a); + if ("string" == typeof b) + e[r.camelCase(b)] = c; + else + for (d in b) + e[r.camelCase(d)] = b[d]; + return e + }, + get: function (a, b) { + return void 0 === b + ? this.cache(a) + : a[this.expando] && a[this.expando][r.camelCase(b)] + }, + access: function (a, b, c) { + return void 0 === b || b && "string" == typeof b && void 0 === c + ? this.get(a, b) + : (this.set(a, b, c), void 0 !== c + ? c + : b) + }, + remove: function (a, b) { + var c, + d = a[this.expando]; + if (void 0 !== d) { + if (void 0 !== b) { + r.isArray(b) + ? b = b.map(r.camelCase) + : (b = r.camelCase(b), b = b in d + ? [b] + : b.match(K) || []), + c = b.length; + while (c--) + delete d[b[c]] + } + (void 0 === b || r.isEmptyObject(d)) && (a.nodeType + ? a[this.expando] = void 0 + : delete a[this.expando]) + } + }, + hasData: function (a) { + var b = a[this.expando]; + return void 0 !== b && !r.isEmptyObject(b) + } + }; + var V = new U, + W = new U, + X = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/, + Y = /[A-Z]/g; + function Z(a) { + return "true" === a || "false" !== a && ("null" === a + ? null + : a ===+ a + "" ?+ a : X.test(a) + ? JSON.parse(a) + : a) + } + function $(a, b, c) { + var d; + if (void 0 === c && 1 === a.nodeType) + if (d = "data-" + b.replace(Y, "-$&").toLowerCase(), c = a.getAttribute(d), "string" == typeof c) { + try { + c = Z(c) + } catch (e) {} + W.set(a, b, c) + } else + c = void 0; + return c + } + r.extend({ + hasData: function (a) { + return W.hasData(a) || V.hasData(a) + }, + data: function (a, b, c) { + return W.access(a, b, c) + }, + removeData: function (a, b) { + W.remove(a, b) + }, + _data: function (a, b, c) { + return V.access(a, b, c) + }, + _removeData: function (a, b) { + V.remove(a, b) + } + }), + r + .fn + .extend({ + data: function (a, b) { + var c, + d, + e, + f = this[0], + g = f && f.attributes; + if (void 0 === a) { + if (this.length && (e = W.get(f), 1 === f.nodeType && !V.get(f, "hasDataAttrs"))) { + c = g.length; + while (c--) + g[c] && (d = g[c].name, 0 === d.indexOf("data-") && (d = r.camelCase(d.slice(5)), $(f, d, e[d]))); + V.set(f, "hasDataAttrs", !0) + } + return e + } + return "object" == typeof a + ? this.each(function () { + W.set(this, a) + }) + : S(this, function (b) { + var c; + if (f && void 0 === b) { + if (c = W.get(f, a), void 0 !== c) + return c; + if (c = $(f, a), void 0 !== c) + return c + } else + this + .each(function () { + W.set(this, a, b) + }) + }, null, b, arguments.length > 1, null, !0) + }, + removeData: function (a) { + return this.each(function () { + W.remove(this, a) + }) + } + }), + r.extend({ + queue: function (a, b, c) { + var d; + if (a) + return b = (b || "fx") + "queue", + d = V.get(a, b), + c && (!d || r.isArray(c) + ? d = V.access(a, b, r.makeArray(c)) + : d.push(c)), + d || [] + }, + dequeue: function (a, b) { + b = b || "fx"; + var c = r.queue(a, b), + d = c.length, + e = c.shift(), + f = r._queueHooks(a, b), + g = function () { + r.dequeue(a, b) + }; + "inprogress" === e && (e = c.shift(), d--), + e && ("fx" === b && c.unshift("inprogress"), delete f.stop, e.call(a, g, f)), + !d && f && f + .empty + .fire() + }, + _queueHooks: function (a, b) { + var c = b + "queueHooks"; + return V.get(a, c) || V.access(a, c, { + empty: r + .Callbacks("once memory") + .add(function () { + V.remove(a, [ + b + "queue", + c + ]) + }) + }) + } + }), + r + .fn + .extend({ + queue: function (a, b) { + var c = 2; + return "string" != typeof a && (b = a, a = "fx", c--), + arguments.length < c + ? r.queue(this[0], a) + : void 0 === b + ? this + : this.each(function () { + var c = r.queue(this, a, b); + r._queueHooks(this, a), + "fx" === a && "inprogress" !== c[0] && r.dequeue(this, a) + }) + }, + dequeue: function (a) { + return this.each(function () { + r.dequeue(this, a) + }) + }, + clearQueue: function (a) { + return this.queue(a || "fx", []) + }, + promise: function (a, b) { + var c, + d = 1, + e = r.Deferred(), + f = this, + g = this.length, + h = function () { + --d || e.resolveWith(f, [f]) + }; + "string" != typeof a && (b = a, a = void 0), + a = a || "fx"; + while (g--) + c = V.get(f[g], a + "queueHooks"), + c && c.empty && (d++, c.empty.add(h)); + return h(), + e.promise(b) + } + }); + var _ = /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source, + aa = new RegExp("^(?:([+-])=|)(" + _ + ")([a-z%]*)$", "i"), + ba = [ + "Top", "Right", "Bottom", "Left" + ], + ca = function (a, b) { + return a = b || a, + "none" === a.style.display || "" === a.style.display && r.contains(a.ownerDocument, a) && "none" === r.css(a, "display") + }, + da = function (a, b, c, d) { + var e, + f, + g = {}; + for (f in b) + g[f] = a.style[f], + a.style[f] = b[f]; + e = c.apply(a, d || []); + for (f in b) + a.style[f] = g[f]; + return e + }; + function ea(a, b, c, d) { + var e, + f = 1, + g = 20, + h = d + ? function () { + return d.cur() + } + : function () { + return r.css(a, b, "") + }, + i = h(), + j = c && c[3] || (r.cssNumber[b] + ? "" + : "px"), + k = (r.cssNumber[b] || "px" !== j &&+ i) && aa.exec(r.css(a, b)); + if (k && k[3] !== j) { + j = j || k[3], + c = c || [], + k =+ i || 1; + do + f = f || ".5", + k /= f, + r.style(a, b, k + j); + while (f !== (f = h() / i) && 1 !== f && --g) + } + return c && (k =+ k ||+ i || 0, e = c[1] + ? k + (c[1] + 1) * c[2] :+ c[2], d && (d.unit = j, d.start = k, d.end = e)), + e + } + var fa = {}; + function ga(a) { + var b, + c = a.ownerDocument, + d = a.nodeName, + e = fa[d]; + return e + ? e + : (b = c.body.appendChild(c.createElement(d)), e = r.css(b, "display"), b.parentNode.removeChild(b), "none" === e && (e = "block"), fa[d] = e, e) + } + function ha(a, b) { + for (var c, d, e = [], f = 0, g = a.length; f < g; f++) + d = a[f], + d.style && (c = d.style.display, b + ? ("none" === c && (e[f] = V.get(d, "display") || null, e[f] || (d.style.display = "")), "" === d.style.display && ca(d) && (e[f] = ga(d))) + : "none" !== c && (e[f] = "none", V.set(d, "display", c))); + for (f = 0; f < g; f++) + null != e[f] && (a[f].style.display = e[f]); + return a + } + r + .fn + .extend({ + show: function () { + return ha(this, !0) + }, + hide: function () { + return ha(this) + }, + toggle: function (a) { + return "boolean" == typeof a + ? a + ? this.show() + : this.hide() + : this.each(function () { + ca(this) + ? r(this).show() + : r(this).hide() + }) + } + }); + var ia = /^(?:checkbox|radio)$/i, + ja = /<([a-z][^\/\0>\x20\t\r\n\f]+)/i, + ka = /^$|\/(?:java|ecma)script/i, + la = { + option: [ + 1, "" + ], + thead: [ + 1, "", "
" + ], + col: [ + 2, "", "
" + ], + tr: [ + 2, "", "
" + ], + td: [ + 3, "", "
" + ], + _default: [0, "", ""] + }; + la.optgroup = la.option, + la.tbody = la.tfoot = la.colgroup = la.caption = la.thead, + la.th = la.td; + function ma(a, b) { + var c; + return c = "undefined" != typeof a.getElementsByTagName + ? a.getElementsByTagName(b || "*") + : "undefined" != typeof a.querySelectorAll + ? a.querySelectorAll(b || "*") + : [], + void 0 === b || b && r.nodeName(a, b) + ? r.merge([a], c) + : c + } + function na(a, b) { + for (var c = 0, d = a.length; c < d; c++) + V.set(a[c], "globalEval", !b || V.get(b[c], "globalEval")) + } + var oa = /<|&#?\w+;/; + function pa(a, b, c, d, e) { + for (var f, g, h, i, j, k, l = b.createDocumentFragment(), m = [], n = 0, o = a.length; n < o; n++) + if (f = a[n], f || 0 === f) + if ("object" === r.type(f)) + r.merge(m, f.nodeType + ? [f] + : f); + else if (oa.test(f)) { + g = g || l.appendChild(b.createElement("div")), + h = (ja.exec(f) || ["", ""])[1].toLowerCase(), + i = la[h] || la._default, + g.innerHTML = i[1] + r.htmlPrefilter(f) + i[2], + k = i[0]; + while (k--) + g = g.lastChild; + r.merge(m, g.childNodes), + g = l.firstChild, + g.textContent = "" + } + else + m.push(b.createTextNode(f)); + l.textContent = "", + n = 0; + while (f = m[n++]) + if (d && r.inArray(f, d) > -1) + e && e.push(f); + else if (j = r.contains(f.ownerDocument, f), g = ma(l.appendChild(f), "script"), j && na(g), c) { + k = 0; + while (f = g[k++]) + ka.test(f.type || "") && c.push(f) + } + return l + } + !function () { + var a = d.createDocumentFragment(), + b = a.appendChild(d.createElement("div")), + c = d.createElement("input"); + c.setAttribute("type", "radio"), + c.setAttribute("checked", "checked"), + c.setAttribute("name", "t"), + b.appendChild(c), + o.checkClone = b + .cloneNode(!0) + .cloneNode(!0) + .lastChild + .checked, + b.innerHTML = "", + o.noCloneChecked = !!b + .cloneNode(!0) + .lastChild + .defaultValue + }(); + var qa = d.documentElement, + ra = /^key/, + sa = /^(?:mouse|pointer|contextmenu|drag|drop)|click/, + ta = /^([^.]*)(?:\.(.+)|)/; + function ua() { + return !0 + } + function va() { + return !1 + } + function wa() { + try { + return d.activeElement + } catch (a) {} + } + function xa(a, b, c, d, e, f) { + var g, + h; + if ("object" == typeof b) { + "string" != typeof c && (d = d || c, c = void 0); + for (h in b) + xa(a, h, c, d, b[h], f); + return a + } + if (null == d && null == e + ? (e = c, d = c = void 0) + : null == e && ("string" == typeof c + ? (e = d, d = void 0) + : (e = d, d = c, c = void 0)), e === !1) + e = va; + else if (!e) + return a; + return 1 === f && (g = e, e = function (a) { + return r().off(a), + g.apply(this, arguments) + }, + e.guid = g.guid || (g.guid = r.guid++)), + a.each(function () { + r + .event + .add(this, b, e, d, c) + }) + } + r.event = { + global: {}, + add: function (a, b, c, d, e) { + var f, + g, + h, + i, + j, + k, + l, + m, + n, + o, + p, + q = V.get(a); + if (q) { + c.handler && (f = c, c = f.handler, e = f.selector), + e && r + .find + .matchesSelector(qa, e), + c.guid || (c.guid = r.guid++), + (i = q.events) || (i = q.events = {}), + (g = q.handle) || (g = q.handle = function (b) { + return "undefined" != typeof r && r.event.triggered !== b.type + ? r + .event + .dispatch + .apply(a, arguments) + : void 0 + }), + b = (b || "").match(K) || [""], + j = b.length; + while (j--) + h = ta.exec(b[j]) || [], + n = p = h[1], + o = (h[2] || "").split(".").sort(), + n && (l = r.event.special[n] || {}, n = (e + ? l.delegateType + : l.bindType) || n, l = r.event.special[n] || {}, k = r.extend({ + type: n, + origType: p, + data: d, + handler: c, + guid: c.guid, + selector: e, + needsContext: e && r + .expr + .match + .needsContext + .test(e), + namespace: o.join(".") + }, f), (m = i[n]) || (m = i[n] = [], m.delegateCount = 0, l.setup && l.setup.call(a, d, o, g) !== !1 || a.addEventListener && a.addEventListener(n, g)), l.add && (l.add.call(a, k), k.handler.guid || (k.handler.guid = c.guid)), e + ? m.splice(m.delegateCount++, 0, k) + : m.push(k), r.event.global[n] = !0) + } + }, + remove: function (a, b, c, d, e) { + var f, + g, + h, + i, + j, + k, + l, + m, + n, + o, + p, + q = V.hasData(a) && V.get(a); + if (q && (i = q.events)) { + b = (b || "").match(K) || [""], + j = b.length; + while (j--) + if (h = ta.exec(b[j]) || [], n = p = h[1], o = (h[2] || "").split(".").sort(), n) { + l = r.event.special[n] || {}, + n = (d + ? l.delegateType + : l.bindType) || n, + m = i[n] || [], + h = h[2] && new RegExp("(^|\\.)" + o.join("\\.(?:.*\\.|)") + "(\\.|$)"), + g = f = m.length; + while (f--) + k = m[f], + !e && p !== k.origType || c && c.guid !== k.guid || h && !h.test(k.namespace) || d && d !== k.selector && ("**" !== d || !k.selector) || (m.splice(f, 1), k.selector && m.delegateCount--, l.remove && l.remove.call(a, k)); + g && !m.length && (l.teardown && l.teardown.call(a, o, q.handle) !== !1 || r.removeEvent(a, n, q.handle), delete i[n]) + } + else + for (n in i) + r.event.remove(a, n + b[j], c, d, !0); + r.isEmptyObject(i) && V.remove(a, "handle events") + } + }, + dispatch: function (a) { + var b = r + .event + .fix(a), + c, + d, + e, + f, + g, + h, + i = new Array(arguments.length), + j = (V.get(this, "events") || {})[b.type] || [], + k = r.event.special[b.type] || {}; + for (i[0] = b, c = 1; c < arguments.length; c++) + i[c] = arguments[c]; + if (b.delegateTarget = this, !k.preDispatch || k.preDispatch.call(this, b) !== !1) { + h = r + .event + .handlers + .call(this, b, j), + c = 0; + while ((f = h[c++]) && !b.isPropagationStopped()) { + b.currentTarget = f.elem, + d = 0; + while ((g = f.handlers[d++]) && !b.isImmediatePropagationStopped()) + b.rnamespace && !b.rnamespace.test(g.namespace) || (b.handleObj = g, b.data = g.data, e = ((r.event.special[g.origType] || {}).handle || g.handler).apply(f.elem, i), void 0 !== e && (b.result = e) === !1 && (b.preventDefault(), b.stopPropagation())) + } + return k.postDispatch && k + .postDispatch + .call(this, b), + b.result + } + }, + handlers: function (a, b) { + var c, + d, + e, + f, + g, + h = [], + i = b.delegateCount, + j = a.target; + if (i && j.nodeType && !("click" === a.type && a.button >= 1)) + for (; j !== this; j = j.parentNode || this) + if (1 === j.nodeType && ("click" !== a.type || j.disabled !== !0)) { + for (f = [], g = {}, c = 0; c < i; c++) + d = b[c], + e = d.selector + " ", + void 0 === g[e] && (g[e] = d.needsContext + ? r(e, this).index(j) > -1 + : r.find(e, this, null, [j]).length), + g[e] && f.push(d); + f.length && h.push({elem: j, handlers: f}) + } + return j = this, + i < b.length && h.push({ + elem: j, + handlers: b.slice(i) + }), + h + }, + addProp: function (a, b) { + Object.defineProperty(r.Event.prototype, a, { + enumerable: !0, + configurable: !0, + get: r.isFunction(b) + ? function () { + if (this.originalEvent) + return b(this.originalEvent) + } + : function () { + if (this.originalEvent) + return this.originalEvent[a] + }, + set: function (b) { + Object.defineProperty(this, a, { + enumerable: !0, + configurable: !0, + writable: !0, + value: b + }) + } + }) + }, + fix: function (a) { + return a[r.expando] + ? a + : new r.Event(a) + }, + special: { + load: { + noBubble: !0 + }, + focus: { + trigger: function () { + if (this !== wa() && this.focus) + return this.focus(), + !1 + }, + delegateType: "focusin" + }, + blur: { + trigger: function () { + if (this === wa() && this.blur) + return this.blur(), + !1 + }, + delegateType: "focusout" + }, + click: { + trigger: function () { + if ("checkbox" === this.type && this.click && r.nodeName(this, "input")) + return this.click(), + !1 + }, + _default: function (a) { + return r.nodeName(a.target, "a") + } + }, + beforeunload: { + postDispatch: function (a) { + void 0 !== a.result && a.originalEvent && (a.originalEvent.returnValue = a.result) + } + } + } + }, + r.removeEvent = function (a, b, c) { + a.removeEventListener && a.removeEventListener(b, c) + }, + r.Event = function (a, b) { + return this instanceof r.Event + ? (a && a.type + ? (this.originalEvent = a, this.type = a.type, this.isDefaultPrevented = a.defaultPrevented || void 0 === a.defaultPrevented && a.returnValue === !1 + ? ua + : va, this.target = a.target && 3 === a.target.nodeType + ? a.target.parentNode + : a.target, this.currentTarget = a.currentTarget, this.relatedTarget = a.relatedTarget) + : this.type = a, b && r.extend(this, b), this.timeStamp = a && a.timeStamp || r.now(), void(this[r.expando] = !0)) + : new r.Event(a, b) + }, + r.Event.prototype = { + constructor: r.Event, + isDefaultPrevented: va, + isPropagationStopped: va, + isImmediatePropagationStopped: va, + isSimulated: !1, + preventDefault: function () { + var a = this.originalEvent; + this.isDefaultPrevented = ua, + a && !this.isSimulated && a.preventDefault() + }, + stopPropagation: function () { + var a = this.originalEvent; + this.isPropagationStopped = ua, + a && !this.isSimulated && a.stopPropagation() + }, + stopImmediatePropagation: function () { + var a = this.originalEvent; + this.isImmediatePropagationStopped = ua, + a && !this.isSimulated && a.stopImmediatePropagation(), + this.stopPropagation() + } + }, + r.each({ + altKey: !0, + bubbles: !0, + cancelable: !0, + changedTouches: !0, + ctrlKey: !0, + detail: !0, + eventPhase: !0, + metaKey: !0, + pageX: !0, + pageY: !0, + shiftKey: !0, + view: !0, + "char": !0, + charCode: !0, + key: !0, + keyCode: !0, + button: !0, + buttons: !0, + clientX: !0, + clientY: !0, + offsetX: !0, + offsetY: !0, + pointerId: !0, + pointerType: !0, + screenX: !0, + screenY: !0, + targetTouches: !0, + toElement: !0, + touches: !0, + which: function (a) { + var b = a.button; + return null == a.which && ra.test(a.type) + ? null != a.charCode + ? a.charCode + : a.keyCode + : !a.which && void 0 !== b && sa.test(a.type) + ? 1 & b + ? 1 + : 2 & b + ? 3 + : 4 & b + ? 2 + : 0 + : a.which + } + }, r.event.addProp), + r.each({ + mouseenter: "mouseover", + mouseleave: "mouseout", + pointerenter: "pointerover", + pointerleave: "pointerout" + }, function (a, b) { + r.event.special[a] = { + delegateType: b, + bindType: b, + handle: function (a) { + var c, + d = this, + e = a.relatedTarget, + f = a.handleObj; + return e && (e === d || r.contains(d, e)) || (a.type = f.origType, c = f.handler.apply(this, arguments), a.type = b), + c + } + } + }), + r + .fn + .extend({ + on: function (a, b, c, d) { + return xa(this, a, b, c, d) + }, + one: function (a, b, c, d) { + return xa(this, a, b, c, d, 1) + }, + off: function (a, b, c) { + var d, + e; + if (a && a.preventDefault && a.handleObj) + return d = a.handleObj, + r(a.delegateTarget).off(d.namespace + ? d.origType + "." + d.namespace + : d.origType, d.selector, d.handler), + this; + if ("object" == typeof a) { + for (e in a) + this.off(e, b, a[e]); + return this + } + return b !== !1 && "function" != typeof b || (c = b, b = void 0), + c === !1 && (c = va), + this.each(function () { + r + .event + .remove(this, a, c, b) + }) + } + }); + var ya = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\/\0>\x20\t\r\n\f]*)[^>]*)\/>/gi, + za = /\s*$/g; + function Da(a, b) { + return r.nodeName(a, "table") && r.nodeName(11 !== b.nodeType + ? b + : b.firstChild, "tr") + ? a.getElementsByTagName("tbody")[0] || a + : a + } + function Ea(a) { + return a.type = (null !== a.getAttribute("type")) + "/" + a.type, + a + } + function Fa(a) { + var b = Ba.exec(a.type); + return b + ? a.type = b[1] + : a.removeAttribute("type"), + a + } + function Ga(a, b) { + var c, + d, + e, + f, + g, + h, + i, + j; + if (1 === b.nodeType) { + if (V.hasData(a) && (f = V.access(a), g = V.set(b, f), j = f.events)) { + delete g.handle, + g.events = {}; + for (e in j) + for (c = 0, d = j[e].length; c < d; c++) + r.event.add(b, e, j[e][c]) + } + W.hasData(a) && (h = W.access(a), i = r.extend({}, h), W.set(b, i)) + } + } + function Ha(a, b) { + var c = b + .nodeName + .toLowerCase(); + "input" === c && ia.test(a.type) + ? b.checked = a.checked + : "input" !== c && "textarea" !== c || (b.defaultValue = a.defaultValue) + } + function Ia(a, b, c, d) { + b = g.apply([], b); + var e, + f, + h, + i, + j, + k, + l = 0, + m = a.length, + n = m - 1, + q = b[0], + s = r.isFunction(q); + if (s || m > 1 && "string" == typeof q && !o.checkClone && Aa.test(q)) + return a.each(function (e) { + var f = a.eq(e); + s && (b[0] = q.call(this, e, f.html())), + Ia(f, b, c, d) + }); + if (m && (e = pa(b, a[0].ownerDocument, !1, a, d), f = e.firstChild, 1 === e.childNodes.length && (e = f), f || d)) { + for (h = r.map(ma(e, "script"), Ea), i = h.length; l < m; l++) + j = e, + l !== n && (j = r.clone(j, !0, !0), i && r.merge(h, ma(j, "script"))), + c.call(a[l], j, l); + if (i) + for (k = h[h.length - 1].ownerDocument, r.map(h, Fa), l = 0; l < i; l++) + j = h[l], + ka.test(j.type || "") && !V.access(j, "globalEval") && r.contains(k, j) && (j.src + ? r._evalUrl && r._evalUrl(j.src) + : p(j.textContent.replace(Ca, ""), k)) + } + return a + } + function Ja(a, b, c) { + for (var d, e = b + ? r.filter(b, a) + : a, f = 0; null != (d = e[f]); f++) + c || 1 !== d.nodeType || r.cleanData(ma(d)), + d.parentNode && (c && r.contains(d.ownerDocument, d) && na(ma(d, "script")), d.parentNode.removeChild(d)); + return a + } + r.extend({ + htmlPrefilter: function (a) { + return a.replace(ya, "<$1>") + }, + clone: function (a, b, c) { + var d, + e, + f, + g, + h = a.cloneNode(!0), + i = r.contains(a.ownerDocument, a); + if (!(o.noCloneChecked || 1 !== a.nodeType && 11 !== a.nodeType || r.isXMLDoc(a))) + for (g = ma(h), f = ma(a), d = 0, e = f.length; d < e; d++) + Ha(f[d], g[d]); + if (b) + if (c) + for (f = f || ma(a), g = g || ma(h), d = 0, e = f.length; d < e; d++) + Ga(f[d], g[d]); + else + Ga(a, h); + return g = ma(h, "script"), + g.length > 0 && na(g, !i && ma(a, "script")), + h + }, + cleanData: function (a) { + for (var b, c, d, e = r.event.special, f = 0; void 0 !== (c = a[f]); f++) + if (T(c)) { + if (b = c[V.expando]) { + if (b.events) + for (d in b.events) + e[d] + ? r.event.remove(c, d) + : r.removeEvent(c, d, b.handle); + c[V.expando] = void 0 + } + c[W.expando] && (c[W.expando] = void 0) + } + } + }), + r + .fn + .extend({ + detach: function (a) { + return Ja(this, a, !0) + }, + remove: function (a) { + return Ja(this, a) + }, + text: function (a) { + return S(this, function (a) { + return void 0 === a + ? r.text(this) + : this + .empty() + .each(function () { + 1 !== this.nodeType && 11 !== this.nodeType && 9 !== this.nodeType || (this.textContent = a) + }) + }, null, a, arguments.length) + }, + append: function () { + return Ia(this, arguments, function (a) { + if (1 === this.nodeType || 11 === this.nodeType || 9 === this.nodeType) { + var b = Da(this, a); + b.appendChild(a) + } + }) + }, + prepend: function () { + return Ia(this, arguments, function (a) { + if (1 === this.nodeType || 11 === this.nodeType || 9 === this.nodeType) { + var b = Da(this, a); + b.insertBefore(a, b.firstChild) + } + }) + }, + before: function () { + return Ia(this, arguments, function (a) { + this.parentNode && this + .parentNode + .insertBefore(a, this) + }) + }, + after: function () { + return Ia(this, arguments, function (a) { + this.parentNode && this + .parentNode + .insertBefore(a, this.nextSibling) + }) + }, + empty: function () { + for (var a, b = 0; null != (a = this[b]); b++) + 1 === a.nodeType && (r.cleanData(ma(a, !1)), a.textContent = ""); + return this + }, + clone: function (a, b) { + return a = null != a && a, + b = null == b + ? a + : b, + this.map(function () { + return r.clone(this, a, b) + }) + }, + html: function (a) { + return S(this, function (a) { + var b = this[0] || {}, + c = 0, + d = this.length; + if (void 0 === a && 1 === b.nodeType) + return b.innerHTML; + if ("string" == typeof a && !za.test(a) && !la[(ja.exec(a) || ["", ""])[1].toLowerCase()]) { + a = r.htmlPrefilter(a); + try { + for (; c < d; c++) + b = this[c] || {} + , + 1 === b.nodeType && (r.cleanData(ma(b, !1)), b.innerHTML = a); + b = 0 + } catch (e) {} + } + b && this + .empty() + .append(a) + }, null, a, arguments.length) + }, + replaceWith: function () { + var a = []; + return Ia(this, arguments, function (b) { + var c = this.parentNode; + r.inArray(this, a) < 0 && (r.cleanData(ma(this)), c && c.replaceChild(b, this)) + }, a) + } + }), + r.each({ + appendTo: "append", + prependTo: "prepend", + insertBefore: "before", + insertAfter: "after", + replaceAll: "replaceWith" + }, function (a, b) { + r.fn[a] = function (a) { + for (var c, d = [], e = r(a), f = e.length - 1, g = 0; g <= f; g++) + c = g === f + ? this + : this.clone(!0), + r(e[g])[b](c), + h.apply(d, c.get()); + return this.pushStack(d) + } + }); + var Ka = /^margin/, + La = new RegExp("^(" + _ + ")(?!px)[a-z%]+$", "i"), + Ma = function (b) { + var c = b.ownerDocument.defaultView; + return c && c.opener || (c = a), + c.getComputedStyle(b) + }; + !function () { + function b() { + if (i) { + i.style.cssText = "box-sizing:border-box;position:relative;display:block;margin:auto;border:1px;pad" + + "ding:1px;top:1%;width:50%", + i.innerHTML = "", + qa.appendChild(h); + var b = a.getComputedStyle(i); + c = "1%" !== b.top, + g = "2px" === b.marginLeft, + e = "4px" === b.width, + i.style.marginRight = "50%", + f = "4px" === b.marginRight, + qa.removeChild(h), + i = null + } + } + var c, + e, + f, + g, + h = d.createElement("div"), + i = d.createElement("div"); + i.style && (i.style.backgroundClip = "content-box", i.cloneNode(!0).style.backgroundClip = "", o.clearCloneStyle = "content-box" === i.style.backgroundClip, h.style.cssText = "border:0;width:8px;height:0;top:0;left:-9999px;padding:0;margin-top:1px;position" + + ":absolute", + h.appendChild(i), r.extend(o, { + pixelPosition: function () { + return b(), + c + }, + boxSizingReliable: function () { + return b(), + e + }, + pixelMarginRight: function () { + return b(), + f + }, + reliableMarginLeft: function () { + return b(), + g + } + })) + }(); + function Na(a, b, c) { + var d, + e, + f, + g, + h = a.style; + return c = c || Ma(a), + c && (g = c.getPropertyValue(b) || c[b], "" !== g || r.contains(a.ownerDocument, a) || (g = r.style(a, b)), !o.pixelMarginRight() && La.test(g) && Ka.test(b) && (d = h.width, e = h.minWidth, f = h.maxWidth, h.minWidth = h.maxWidth = h.width = g, g = c.width, h.width = d, h.minWidth = e, h.maxWidth = f)), + void 0 !== g + ? g + "" + : g + } + function Oa(a, b) { + return { + get: function () { + return a() + ? void delete this.get + : (this.get = b).apply(this, arguments) + } + } + } + var Pa = /^(none|table(?!-c[ea]).+)/, + Qa = { + position: "absolute", + visibility: "hidden", + display: "block" + }, + Ra = { + letterSpacing: "0", + fontWeight: "400" + }, + Sa = [ + "Webkit", "Moz", "ms" + ], + Ta = d + .createElement("div") + .style; + function Ua(a) { + if (a in Ta) + return a; + var b = a[0].toUpperCase() + a.slice(1), + c = Sa.length; + while (c--) + if (a = Sa[c] + b, a in Ta) + return a + } + function Va(a, b, c) { + var d = aa.exec(b); + return d + ? Math.max(0, d[2] - (c || 0)) + (d[3] || "px") + : b + } + function Wa(a, b, c, d, e) { + var f, + g = 0; + for (f = c === (d + ? "border" + : "content") + ? 4 + : "width" === b + ? 1 + : 0; f < 4; f += 2) + "margin" === c && (g += r.css(a, c + ba[f], !0, e)), + d + ? ("content" === c && (g -= r.css(a, "padding" + ba[f], !0, e)), "margin" !== c && (g -= r.css(a, "border" + ba[f] + "Width", !0, e))) + : (g += r.css(a, "padding" + ba[f], !0, e), "padding" !== c && (g += r.css(a, "border" + ba[f] + "Width", !0, e))); + return g + } + function Xa(a, b, c) { + var d, + e = !0, + f = Ma(a), + g = "border-box" === r.css(a, "boxSizing", !1, f); + if (a.getClientRects().length && (d = a.getBoundingClientRect()[b]), d <= 0 || null == d) { + if (d = Na(a, b, f), (d < 0 || null == d) && (d = a.style[b]), La.test(d)) + return d; + e = g && (o.boxSizingReliable() || d === a.style[b]), + d = parseFloat(d) || 0 + } + return d + Wa(a, b, c || (g + ? "border" + : "content"), e, f) + "px" + } + r.extend({ + cssHooks: { + opacity: { + get: function (a, b) { + if (b) { + var c = Na(a, "opacity"); + return "" === c + ? "1" + : c + } + } + } + }, + cssNumber: { + animationIterationCount: !0, + columnCount: !0, + fillOpacity: !0, + flexGrow: !0, + flexShrink: !0, + fontWeight: !0, + lineHeight: !0, + opacity: !0, + order: !0, + orphans: !0, + widows: !0, + zIndex: !0, + zoom: !0 + }, + cssProps: { + "float": "cssFloat" + }, + style: function (a, b, c, d) { + if (a && 3 !== a.nodeType && 8 !== a.nodeType && a.style) { + var e, + f, + g, + h = r.camelCase(b), + i = a.style; + return b = r.cssProps[h] || (r.cssProps[h] = Ua(h) || h), + g = r.cssHooks[b] || r.cssHooks[h], + void 0 === c + ? g && "get" in g && void 0 !== (e = g.get(a, !1, d)) + ? e + : i[b] + : (f = typeof c, "string" === f && (e = aa.exec(c)) && e[1] && (c = ea(a, b, e), f = "number"), null != c && c === c && ("number" === f && (c += e && e[3] || (r.cssNumber[h] + ? "" + : "px")), o.clearCloneStyle || "" !== c || 0 !== b.indexOf("background") || (i[b] = "inherit"), g && "set" in g && void 0 === (c = g.set(a, c, d)) || (i[b] = c)), void 0) + } + }, + css: function (a, b, c, d) { + var e, + f, + g, + h = r.camelCase(b); + return b = r.cssProps[h] || (r.cssProps[h] = Ua(h) || h), + g = r.cssHooks[b] || r.cssHooks[h], + g && "get" in g && (e = g.get(a, !0, c)), + void 0 === e && (e = Na(a, b, d)), + "normal" === e && b in Ra && (e = Ra[b]), + "" === c || c + ? (f = parseFloat(e), c === !0 || isFinite(f) + ? f || 0 + : e) + : e + } + }), + r.each([ + "height", "width" + ], function (a, b) { + r.cssHooks[b] = { + get: function (a, c, d) { + if (c) + return !Pa.test(r.css(a, "display")) || a.getClientRects().length && a.getBoundingClientRect().width + ? Xa(a, b, d) + : da(a, Qa, function () { + return Xa(a, b, d) + }) + }, + set: function (a, c, d) { + var e, + f = d && Ma(a), + g = d && Wa(a, b, d, "border-box" === r.css(a, "boxSizing", !1, f), f); + return g && (e = aa.exec(c)) && "px" !== (e[3] || "px") && (a.style[b] = c, c = r.css(a, b)), + Va(a, c, g) + } + } + }), + r.cssHooks.marginLeft = Oa(o.reliableMarginLeft, function (a, b) { + if (b) + return (parseFloat(Na(a, "marginLeft")) || a.getBoundingClientRect().left - da(a, { + marginLeft: 0 + }, function () { + return a + .getBoundingClientRect() + .left + })) + "px" + }), + r.each({ + margin: "", + padding: "", + border: "Width" + }, function (a, b) { + r.cssHooks[a + b] = { + expand: function (c) { + for (var d = 0, e = {}, f = "string" == typeof c + ? c.split(" ") + : [c]; d < 4; d++) + e[a + ba[d] + b] = f[d] || f[d - 2] || f[0]; + return e + } + }, + Ka.test(a) || (r.cssHooks[a + b].set = Va) + }), + r + .fn + .extend({ + css: function (a, b) { + return S(this, function (a, b, c) { + var d, + e, + f = {}, + g = 0; + if (r.isArray(b)) { + for (d = Ma(a), e = b.length; g < e; g++) + f[b[g]] = r.css(a, b[g], !1, d); + return f + } + return void 0 !== c + ? r.style(a, b, c) + : r.css(a, b) + }, a, b, arguments.length > 1) + } + }); + function Ya(a, b, c, d, e) { + return new Ya + .prototype + .init(a, b, c, d, e) + } + r.Tween = Ya, + Ya.prototype = { + constructor: Ya, + init: function (a, b, c, d, e, f) { + this.elem = a, + this.prop = c, + this.easing = e || r.easing._default, + this.options = b, + this.start = this.now = this.cur(), + this.end = d, + this.unit = f || (r.cssNumber[c] + ? "" + : "px") + }, + cur: function () { + var a = Ya.propHooks[this.prop]; + return a && a.get + ? a.get(this) + : Ya + .propHooks + ._default + .get(this) + }, + run: function (a) { + var b, + c = Ya.propHooks[this.prop]; + return this.options.duration + ? this.pos = b = r.easing[this.easing](a, this.options.duration * a, 0, 1, this.options.duration) + : this.pos = b = a, + this.now = (this.end - this.start) * b + this.start, + this.options.step && this + .options + .step + .call(this.elem, this.now, this), + c && c.set + ? c.set(this) + : Ya + .propHooks + ._default + .set(this), + this + } + }, + Ya.prototype.init.prototype = Ya.prototype, + Ya.propHooks = { + _default: { + get: function (a) { + var b; + return 1 !== a.elem.nodeType || null != a.elem[a.prop] && null == a.elem.style[a.prop] + ? a.elem[a.prop] + : (b = r.css(a.elem, a.prop, ""), b && "auto" !== b + ? b + : 0) + }, + set: function (a) { + r.fx.step[a.prop] + ? r.fx.step[a.prop](a) + : 1 !== a.elem.nodeType || null == a.elem.style[r.cssProps[a.prop]] && !r.cssHooks[a.prop] + ? a.elem[a.prop] = a.now + : r.style(a.elem, a.prop, a.now + a.unit) + } + } + }, + Ya.propHooks.scrollTop = Ya.propHooks.scrollLeft = { + set: function (a) { + a.elem.nodeType && a.elem.parentNode && (a.elem[a.prop] = a.now) + } + }, + r.easing = { + linear: function (a) { + return a + }, + swing: function (a) { + return.5 - Math.cos(a * Math.PI) / 2 + }, + _default: "swing" + }, + r.fx = Ya.prototype.init, + r.fx.step = {}; + var Za, + $a, + _a = /^(?:toggle|show|hide)$/, + ab = /queueHooks$/; + function bb() { + $a && (a.requestAnimationFrame(bb), r.fx.tick()) + } + function cb() { + return a.setTimeout(function () { + Za = void 0 + }), + Za = r.now() + } + function db(a, b) { + var c, + d = 0, + e = { + height: a + }; + for (b = b + ? 1 + : 0; d < 4; d += 2 - b) + c = ba[d], + e["margin" + c] = e["padding" + c] = a; + return b && (e.opacity = e.width = a), + e + } + function eb(a, b, c) { + for (var d, e = (hb.tweeners[b] || []).concat(hb.tweeners["*"]), f = 0, g = e.length; f < g; f++) + if (d = e[f].call(c, b, a)) + return d + } + function fb(a, b, c) { + var d, + e, + f, + g, + h, + i, + j, + k, + l = "width" in b || "height" in b, + m = this, + n = {}, + o = a.style, + p = a.nodeType && ca(a), + q = V.get(a, "fxshow"); + c.queue || (g = r._queueHooks(a, "fx"), null == g.unqueued && (g.unqueued = 0, h = g.empty.fire, g.empty.fire = function () { + g.unqueued || h() + }), g.unqueued++, m.always(function () { + m + .always(function () { + g.unqueued--, + r + .queue(a, "fx") + .length || g + .empty + .fire() + }) + })); + for (d in b) + if (e = b[d], _a.test(e)) { + if (delete b[d], f = f || "toggle" === e, e === (p + ? "hide" + : "show")) { + if ("show" !== e || !q || void 0 === q[d]) + continue; + p = !0 + } + n[d] = q && q[d] || r.style(a, d) + } + if (i = !r.isEmptyObject(b), i || !r.isEmptyObject(n)) { + l && 1 === a.nodeType && (c.overflow = [ + o.overflow, o.overflowX, o.overflowY + ], j = q && q.display, null == j && (j = V.get(a, "display")), k = r.css(a, "display"), "none" === k && (j + ? k = j + : (ha([a], !0), j = a.style.display || j, k = r.css(a, "display"), ha([a]))), ("inline" === k || "inline-block" === k && null != j) && "none" === r.css(a, "float") && (i || (m.done(function () { + o.display = j + }), null == j && (k = o.display, j = "none" === k + ? "" + : k)), o.display = "inline-block")), + c.overflow && (o.overflow = "hidden", m.always(function () { + o.overflow = c.overflow[0], + o.overflowX = c.overflow[1], + o.overflowY = c.overflow[2] + })), + i = !1; + for (d in n) + i || (q + ? "hidden" in q && (p = q.hidden) + : q = V.access(a, "fxshow", {display: j}), f && (q.hidden = !p), p && ha([a], !0), m.done(function () { + p || ha([a]), + V.remove(a, "fxshow"); + for (d in n) + r.style(a, d, n[d]) + })), + i = eb(p + ? q[d] + : 0, d, m), + d in q || (q[d] = i.start, p && (i.end = i.start, i.start = 0)) + } + } + function gb(a, b) { + var c, + d, + e, + f, + g; + for (c in a) + if (d = r.camelCase(c), e = b[d], f = a[c], r.isArray(f) && (e = f[1], f = a[c] = f[0]), c !== d && (a[d] = f, delete a[c]), g = r.cssHooks[d], g && "expand" in g) { + f = g.expand(f), + delete a[d]; + for (c in f) + c in a || (a[c] = f[c], b[c] = e) + } + else + b[d] = e + } + function hb(a, b, c) { + var d, + e, + f = 0, + g = hb.prefilters.length, + h = r + .Deferred() + .always(function () { + delete i.elem + }), + i = function () { + if (e) + return !1; + for (var b = Za || cb(), c = Math.max(0, j.startTime + j.duration - b), d = c / j.duration || 0, f = 1 - d, g = 0, i = j.tweens.length; g < i; g++) + j.tweens[g].run(f); + return h.notifyWith(a, [j, f, c]), + f < 1 && i + ? c + : (h.resolveWith(a, [j]), !1) + }, + j = h.promise({ + elem: a, + props: r.extend({}, b), + opts: r.extend(!0, { + specialEasing: {}, + easing: r.easing._default + }, c), + originalProperties: b, + originalOptions: c, + startTime: Za || cb(), + duration: c.duration, + tweens: [], + createTween: function (b, c) { + var d = r.Tween(a, j.opts, b, c, j.opts.specialEasing[b] || j.opts.easing); + return j + .tweens + .push(d), + d + }, + stop: function (b) { + var c = 0, + d = b + ? j.tweens.length + : 0; + if (e) + return this; + for (e = !0; c < d; c++) + j.tweens[c].run(1); + return b + ? (h.notifyWith(a, [j, 1, 0]), h.resolveWith(a, [j, b])) + : h.rejectWith(a, [j, b]), + this + } + }), + k = j.props; + for (gb(k, j.opts.specialEasing); f < g; f++) + if (d = hb.prefilters[f].call(j, a, k, j.opts)) + return r.isFunction(d.stop) && (r._queueHooks(j.elem, j.opts.queue).stop = r.proxy(d.stop, d)), + d; + return r.map(k, eb, j), + r.isFunction(j.opts.start) && j + .opts + .start + .call(a, j), + r + .fx + .timer(r.extend(i, { + elem: a, + anim: j, + queue: j.opts.queue + })), + j + .progress(j.opts.progress) + .done(j.opts.done, j.opts.complete) + .fail(j.opts.fail) + .always(j.opts.always) + } + r.Animation = r.extend(hb, { + tweeners: { + "*": [function (a, b) { + var c = this.createTween(a, b); + return ea(c.elem, a, aa.exec(b), c), + c + } + ] + }, + tweener: function (a, b) { + r.isFunction(a) + ? (b = a, a = ["*"]) + : a = a.match(K); + for (var c, d = 0, e = a.length; d < e; d++) + c = a[d], + hb.tweeners[c] = hb.tweeners[c] || [], + hb.tweeners[c].unshift(b) + }, + prefilters: [fb], + prefilter: function (a, b) { + b + ? hb + .prefilters + .unshift(a) + : hb + .prefilters + .push(a) + } + }), + r.speed = function (a, b, c) { + var e = a && "object" == typeof a + ? r.extend({}, a) + : { + complete: c || !c && b || r.isFunction(a) && a, + duration: a, + easing: c && b || b && !r.isFunction(b) && b + }; + return r.fx.off || d.hidden + ? e.duration = 0 + : "number" != typeof e.duration && (e.duration in r.fx.speeds + ? e.duration = r.fx.speeds[e.duration] + : e.duration = r.fx.speeds._default), + null != e.queue && e.queue !== !0 || (e.queue = "fx"), + e.old = e.complete, + e.complete = function () { + r.isFunction(e.old) && e + .old + .call(this), + e.queue && r.dequeue(this, e.queue) + }, + e + }, + r + .fn + .extend({ + fadeTo: function (a, b, c, d) { + return this + .filter(ca) + .css("opacity", 0) + .show() + .end() + .animate({ + opacity: b + }, a, c, d) + }, + animate: function (a, b, c, d) { + var e = r.isEmptyObject(a), + f = r.speed(b, c, d), + g = function () { + var b = hb(this, r.extend({}, a), f); + (e || V.get(this, "finish")) && b.stop(!0) + }; + return g.finish = g, + e || f.queue === !1 + ? this.each(g) + : this.queue(f.queue, g) + }, + stop: function (a, b, c) { + var d = function (a) { + var b = a.stop; + delete a.stop, + b(c) + }; + return "string" != typeof a && (c = b, b = a, a = void 0), + b && a !== !1 && this.queue(a || "fx", []), + this.each(function () { + var b = !0, + e = null != a && a + "queueHooks", + f = r.timers, + g = V.get(this); + if (e) + g[e] && g[e].stop && d(g[e]); + else + for (e in g) + g[e] && g[e].stop && ab.test(e) && d(g[e]); + for (e = f.length; e--;) + f[e].elem !== this || null != a && f[e].queue !== a || (f[e].anim.stop(c), b = !1, f.splice(e, 1)); + + !b && c || r.dequeue(this, a) + }) + }, + finish: function (a) { + return a !== !1 && (a = a || "fx"), + this.each(function () { + var b, + c = V.get(this), + d = c[a + "queue"], + e = c[a + "queueHooks"], + f = r.timers, + g = d + ? d.length + : 0; + for (c.finish = !0, r.queue(this, a, []), e && e.stop && e.stop.call(this, !0), b = f.length; b--;) + f[b].elem === this && f[b].queue === a && (f[b].anim.stop(!0), f.splice(b, 1)); + for (b = 0; b < g; b++) + d[b] && d[b].finish && d[b].finish.call(this); + delete c.finish + }) + } + }), + r.each([ + "toggle", "show", "hide" + ], function (a, b) { + var c = r.fn[b]; + r.fn[b] = function (a, d, e) { + return null == a || "boolean" == typeof a + ? c.apply(this, arguments) + : this.animate(db(b, !0), a, d, e) + } + }), + r.each({ + slideDown: db("show"), + slideUp: db("hide"), + slideToggle: db("toggle"), + fadeIn: { + opacity: "show" + }, + fadeOut: { + opacity: "hide" + }, + fadeToggle: { + opacity: "toggle" + } + }, function (a, b) { + r.fn[a] = function (a, c, d) { + return this.animate(b, a, c, d) + } + }), + r.timers = [], + r.fx.tick = function () { + var a, + b = 0, + c = r.timers; + for (Za = r.now(); b < c.length; b++) + a = c[b], + a() || c[b] !== a || c.splice(b--, 1); + c.length || r + .fx + .stop(), + Za = void 0 + }, + r.fx.timer = function (a) { + r + .timers + .push(a), + a() + ? r + .fx + .start() + : r + .timers + .pop() + }, + r.fx.interval = 13, + r.fx.start = function () { + $a || ($a = a.requestAnimationFrame + ? a.requestAnimationFrame(bb) + : a.setInterval(r.fx.tick, r.fx.interval)) + }, + r.fx.stop = function () { + a.cancelAnimationFrame + ? a.cancelAnimationFrame($a) + : a.clearInterval($a), + $a = null + }, + r.fx.speeds = { + slow: 600, + fast: 200, + _default: 400 + }, + r.fn.delay = function (b, c) { + return b = r.fx + ? r.fx.speeds[b] || b + : b, + c = c || "fx", + this.queue(c, function (c, d) { + var e = a.setTimeout(c, b); + d.stop = function () { + a.clearTimeout(e) + } + }) + }, + function () { + var a = d.createElement("input"), + b = d.createElement("select"), + c = b.appendChild(d.createElement("option")); + a.type = "checkbox", + o.checkOn = "" !== a.value, + o.optSelected = c.selected, + a = d.createElement("input"), + a.value = "t", + a.type = "radio", + o.radioValue = "t" === a.value + }(); + var ib, + jb = r.expr.attrHandle; + r + .fn + .extend({ + attr: function (a, b) { + return S(this, r.attr, a, b, arguments.length > 1) + }, + removeAttr: function (a) { + return this.each(function () { + r.removeAttr(this, a) + }) + } + }), + r.extend({ + attr: function (a, b, c) { + var d, + e, + f = a.nodeType; + if (3 !== f && 8 !== f && 2 !== f) + return "undefined" == typeof a.getAttribute + ? r.prop(a, b, c) + : (1 === f && r.isXMLDoc(a) || (e = r.attrHooks[b.toLowerCase()] || (r.expr.match.bool.test(b) + ? ib + : void 0)), void 0 !== c + ? null === c + ? void r.removeAttr(a, b) + : e && "set" in e && void 0 !== (d = e.set(a, c, b)) + ? d + : (a.setAttribute(b, c + ""), c) + : e && "get" in e && null !== (d = e.get(a, b)) + ? d + : (d = r.find.attr(a, b), null == d + ? void 0 + : d)) + }, + attrHooks: { + type: { + set: function (a, b) { + if (!o.radioValue && "radio" === b && r.nodeName(a, "input")) { + var c = a.value; + return a.setAttribute("type", b), + c && (a.value = c), + b + } + } + } + }, + removeAttr: function (a, b) { + var c, + d = 0, + e = b && b.match(K); + if (e && 1 === a.nodeType) + while (c = e[d++]) + a.removeAttribute(c) + } + }), + ib = { + set: function (a, b, c) { + return b === !1 + ? r.removeAttr(a, c) + : a.setAttribute(c, c), + c + } + }, + r.each(r.expr.match.bool.source.match(/\w+/g), function (a, b) { + var c = jb[b] || r.find.attr; + jb[b] = function (a, b, d) { + var e, + f, + g = b.toLowerCase(); + return d || (f = jb[g], jb[g] = e, e = null != c(a, b, d) + ? g + : null, jb[g] = f), + e + } + }); + var kb = /^(?:input|select|textarea|button)$/i, + lb = /^(?:a|area)$/i; + r + .fn + .extend({ + prop: function (a, b) { + return S(this, r.prop, a, b, arguments.length > 1) + }, + removeProp: function (a) { + return this.each(function () { + delete this[r.propFix[a] || a] + }) + } + }), + r.extend({ + prop: function (a, b, c) { + var d, + e, + f = a.nodeType; + if (3 !== f && 8 !== f && 2 !== f) + return 1 === f && r.isXMLDoc(a) || (b = r.propFix[b] || b, e = r.propHooks[b]), + void 0 !== c + ? e && "set" in e && void 0 !== (d = e.set(a, c, b)) + ? d + : a[b] = c + : e && "get" in e && null !== (d = e.get(a, b)) + ? d + : a[b] + }, + propHooks: { + tabIndex: { + get: function (a) { + var b = r + .find + .attr(a, "tabindex"); + return b + ? parseInt(b, 10) + : kb.test(a.nodeName) || lb.test(a.nodeName) && a.href + ? 0 + : -1 + } + } + }, + propFix: { + "for": "htmlFor", + "class": "className" + } + }), + o.optSelected || (r.propHooks.selected = { + get: function (a) { + var b = a.parentNode; + return b && b.parentNode && b.parentNode.selectedIndex, + null + }, + set: function (a) { + var b = a.parentNode; + b && (b.selectedIndex, b.parentNode && b.parentNode.selectedIndex) + } + }), + r.each([ + "tabIndex", + "readOnly", + "maxLength", + "cellSpacing", + "cellPadding", + "rowSpan", + "colSpan", + "useMap", + "frameBorder", + "contentEditable" + ], function () { + r.propFix[this.toLowerCase()] = this + }); + function mb(a) { + var b = a.match(K) || []; + return b.join(" ") + } + function nb(a) { + return a.getAttribute && a.getAttribute("class") || "" + } + r + .fn + .extend({ + addClass: function (a) { + var b, + c, + d, + e, + f, + g, + h, + i = 0; + if (r.isFunction(a)) + return this.each(function (b) { + r(this).addClass(a.call(this, b, nb(this))) + }); + if ("string" == typeof a && a) { + b = a.match(K) || []; + while (c = this[i++]) + if (e = nb(c), d = 1 === c.nodeType && " " + mb(e) + " ") { + g = 0; + while (f = b[g++]) + d.indexOf(" " + f + " ") < 0 && (d += f + " "); + h = mb(d), + e !== h && c.setAttribute("class", h) + } + } + return this + }, + removeClass: function (a) { + var b, + c, + d, + e, + f, + g, + h, + i = 0; + if (r.isFunction(a)) + return this.each(function (b) { + r(this).removeClass(a.call(this, b, nb(this))) + }); + if (!arguments.length) + return this.attr("class", ""); + if ("string" == typeof a && a) { + b = a.match(K) || []; + while (c = this[i++]) + if (e = nb(c), d = 1 === c.nodeType && " " + mb(e) + " ") { + g = 0; + while (f = b[g++]) + while (d.indexOf(" " + f + " ") > -1) + d = d.replace(" " + f + " ", " "); + h = mb(d), + e !== h && c.setAttribute("class", h) + } + } + return this + }, + toggleClass: function (a, b) { + var c = typeof a; + return "boolean" == typeof b && "string" === c + ? b + ? this.addClass(a) + : this.removeClass(a) + : r.isFunction(a) + ? this.each(function (c) { + r(this).toggleClass(a.call(this, c, nb(this), b), b) + }) + : this.each(function () { + var b, + d, + e, + f; + if ("string" === c) { + d = 0, + e = r(this), + f = a.match(K) || []; + while (b = f[d++]) + e.hasClass(b) + ? e.removeClass(b) + : e.addClass(b) + } else + void 0 !== a && "boolean" !== c || (b = nb(this), b && V.set(this, "__className__", b), this.setAttribute && this.setAttribute("class", b || a === !1 + ? "" + : V.get(this, "__className__") || "")) + }) + }, + hasClass: function (a) { + var b, + c, + d = 0; + b = " " + a + " "; + while (c = this[d++]) + if (1 === c.nodeType && (" " + mb(nb(c)) + " ").indexOf(b) > -1) + return !0; + return !1 + } + }); + var ob = /\r/g; + r + .fn + .extend({ + val: function (a) { + var b, + c, + d, + e = this[0]; + { + if (arguments.length) + return d = r.isFunction(a), + this.each(function (c) { + var e; + 1 === this.nodeType && (e = d + ? a.call(this, c, r(this).val()) + : a, null == e + ? e = "" + : "number" == typeof e + ? e += "" + : r.isArray(e) && (e = r.map(e, function (a) { + return null == a + ? "" + : a + "" + })), b = r.valHooks[this.type] || r.valHooks[ + this + .nodeName + .toLowerCase() + ], b && "set" in b && void 0 !== b.set(this, e, "value") || (this.value = e)) + }); + if (e) + return b = r.valHooks[e.type] || r.valHooks[ + e + .nodeName + .toLowerCase() + ], + b && "get" in b && void 0 !== (c = b.get(e, "value")) + ? c + : (c = e.value, "string" == typeof c + ? c.replace(ob, "") + : null == c + ? "" + : c) + } + } + }), + r.extend({ + valHooks: { + option: { + get: function (a) { + var b = r + .find + .attr(a, "value"); + return null != b + ? b + : mb(r.text(a)) + } + }, + select: { + get: function (a) { + var b, + c, + d, + e = a.options, + f = a.selectedIndex, + g = "select-one" === a.type, + h = g + ? null + : [], + i = g + ? f + 1 + : e.length; + for (d = f < 0 + ? i + : g + ? f + : 0; d < i; d++) + if (c = e[d], (c.selected || d === f) && !c.disabled && (!c.parentNode.disabled || !r.nodeName(c.parentNode, "optgroup"))) { + if (b = r(c).val(), g) + return b; + h.push(b) + } + return h + }, + set: function (a, b) { + var c, + d, + e = a.options, + f = r.makeArray(b), + g = e.length; + while (g--) + d = e[g], + (d.selected = r.inArray(r.valHooks.option.get(d), f) > -1) && (c = !0); + return c || (a.selectedIndex = -1), + f + } + } + } + }), + r.each([ + "radio", "checkbox" + ], function () { + r.valHooks[this] = { + set: function (a, b) { + if (r.isArray(b)) + return a.checked = r.inArray(r(a).val(), b) > -1 + } + }, + o.checkOn || (r.valHooks[this].get = function (a) { + return null === a.getAttribute("value") + ? "on" + : a.value + }) + }); + var pb = /^(?:focusinfocus|focusoutblur)$/; + r.extend(r.event, { + trigger: function (b, c, e, f) { + var g, + h, + i, + j, + k, + m, + n, + o = [e || d], + p = l.call(b, "type") + ? b.type + : b, + q = l.call(b, "namespace") + ? b + .namespace + .split(".") + : []; + if (h = i = e = e || d, 3 !== e.nodeType && 8 !== e.nodeType && !pb.test(p + r.event.triggered) && (p.indexOf(".") > -1 && (q = p.split("."), p = q.shift(), q.sort()), k = p.indexOf(":") < 0 && "on" + p, b = b[r.expando] + ? b + : new r.Event(p, "object" == typeof b && b), b.isTrigger = f + ? 2 + : 3, b.namespace = q.join("."), b.rnamespace = b.namespace + ? new RegExp("(^|\\.)" + q.join("\\.(?:.*\\.|)") + "(\\.|$)") + : null, b.result = void 0, b.target || (b.target = e), c = null == c + ? [b] + : r.makeArray(c, [b]), n = r.event.special[p] || {}, f || !n.trigger || n.trigger.apply(e, c) !== !1)) { + if (!f && !n.noBubble && !r.isWindow(e)) { + for (j = n.delegateType || p, pb.test(j + p) || (h = h.parentNode); h; h = h.parentNode) + o.push(h), + i = h; + i === (e.ownerDocument || d) && o.push(i.defaultView || i.parentWindow || a) + } + g = 0; + while ((h = o[g++]) && !b.isPropagationStopped()) + b.type = g > 1 + ? j + : n.bindType || p, + m = (V.get(h, "events") || {})[b.type] && V.get(h, "handle"), + m && m.apply(h, c), + m = k && h[k], + m && m.apply && T(h) && (b.result = m.apply(h, c), b.result === !1 && b.preventDefault()); + return b.type = p, + f || b.isDefaultPrevented() || n._default && n + ._default + .apply(o.pop(), c) !== !1 || !T(e) || k && r.isFunction(e[p]) && !r.isWindow(e) && (i = e[k], i && (e[k] = null), r.event.triggered = p, e[p](), r.event.triggered = void 0, i && (e[k] = i)), + b.result + } + }, + simulate: function (a, b, c) { + var d = r.extend(new r.Event, c, { + type: a, + isSimulated: !0 + }); + r + .event + .trigger(d, null, b) + } + }), + r + .fn + .extend({ + trigger: function (a, b) { + return this.each(function () { + r + .event + .trigger(a, b, this) + }) + }, + triggerHandler: function (a, b) { + var c = this[0]; + if (c) + return r.event.trigger(a, b, c, !0) + } + }), + r.each(("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mous" + + "emove mouseover mouseout mouseenter mouseleave change select submit keydown keyp" + + "ress keyup contextmenu").split(" "), function (a, b) { + r.fn[b] = function (a, c) { + return arguments.length > 0 + ? this.on(b, null, a, c) + : this.trigger(b) + } + }), + r + .fn + .extend({ + hover: function (a, b) { + return this + .mouseenter(a) + .mouseleave(b || a) + } + }), + o.focusin = "onfocusin" in a, + o.focusin || r.each({ + focus: "focusin", + blur: "focusout" + }, function (a, b) { + var c = function (a) { + r + .event + .simulate(b, a.target, r.event.fix(a)) + }; + r.event.special[b] = { + setup: function () { + var d = this.ownerDocument || this, + e = V.access(d, b); + e || d.addEventListener(a, c, !0), + V.access(d, b, (e || 0) + 1) + }, + teardown: function () { + var d = this.ownerDocument || this, + e = V.access(d, b) - 1; + e + ? V.access(d, b, e) + : (d.removeEventListener(a, c, !0), V.remove(d, b)) + } + } + }); + var qb = a.location, + rb = r.now(), + sb = /\?/; + r.parseXML = function (b) { + var c; + if (!b || "string" != typeof b) + return null; + try { + c = (new a.DOMParser).parseFromString(b, "text/xml") + } catch (d) { + c = void 0 + } + return c && !c + .getElementsByTagName("parsererror") + .length || r.error("Invalid XML: " + b), + c + }; + var tb = /\[\]$/, + ub = /\r?\n/g, + vb = /^(?:submit|button|image|reset|file)$/i, + wb = /^(?:input|select|textarea|keygen)/i; + function xb(a, b, c, d) { + var e; + if (r.isArray(b)) + r.each(b, function (b, e) { + c || tb.test(a) + ? d(a, e) + : xb(a + "[" + ("object" == typeof e && null != e + ? b + : "") + "]", e, c, d) + }); + else if (c || "object" !== r.type(b)) + d(a, b); + else + for (e in b) + xb(a + "[" + e + "]", b[e], c, d) + } + r.param = function (a, b) { + var c, + d = [], + e = function (a, b) { + var c = r.isFunction(b) + ? b() + : b; + d[d.length] = encodeURIComponent(a) + "=" + encodeURIComponent(null == c + ? "" + : c) + }; + if (r.isArray(a) || a.jquery && !r.isPlainObject(a)) + r.each(a, function () { + e(this.name, this.value) + }); + else + for (c in a) + xb(c, a[c], b, e); + return d.join("&") + }, + r + .fn + .extend({ + serialize: function () { + return r.param(this.serializeArray()) + }, + serializeArray: function () { + return this.map(function () { + var a = r.prop(this, "elements"); + return a + ? r.makeArray(a) + : this + }) + .filter(function () { + var a = this.type; + return this.name && !r(this).is(":disabled") && wb.test(this.nodeName) && !vb.test(a) && (this.checked || !ia.test(a)) + }) + .map(function (a, b) { + var c = r(this).val(); + return null == c + ? null + : r.isArray(c) + ? r.map(c, function (a) { + return { + name: b.name, + value: a.replace(ub, "\r\n") + } + }) + : { + name: b.name, + value: c.replace(ub, "\r\n") + } + }) + .get() + } + }); + var yb = /%20/g, + zb = /#.*$/, + Ab = /([?&])_=[^&]*/, + Bb = /^(.*?):[ \t]*([^\r\n]*)$/gm, + Cb = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/, + Db = /^(?:GET|HEAD)$/, + Eb = /^\/\//, + Fb = {}, + Gb = {}, + Hb = "*/".concat("*"), + Ib = d.createElement("a"); + Ib.href = qb.href; + function Jb(a) { + return function (b, c) { + "string" != typeof b && (c = b, b = "*"); + var d, + e = 0, + f = b + .toLowerCase() + .match(K) || []; + if (r.isFunction(c)) + while (d = f[e++]) + "+" === d[0] + ? (d = d.slice(1) || "*", (a[d] = a[d] || []).unshift(c)) + : (a[d] = a[d] || []).push(c) + } + } + function Kb(a, b, c, d) { + var e = {}, + f = a === Gb; + function g(h) { + var i; + return e[h] = !0, + r.each(a[h] || [], function (a, h) { + var j = h(b, c, d); + return "string" != typeof j || f || e[j] + ? f + ? !(i = j) + : void 0 + : (b.dataTypes.unshift(j), g(j), !1) + }), + i + } + return g(b.dataTypes[0]) || !e["*"] && g("*") + } + function Lb(a, b) { + var c, + d, + e = r.ajaxSettings.flatOptions || {}; + for (c in b) + void 0 !== b[c] && ((e[c] + ? a + : d || (d = {}))[c] = b[c]); + return d && r.extend(!0, a, d), + a + } + function Mb(a, b, c) { + var d, + e, + f, + g, + h = a.contents, + i = a.dataTypes; + while ("*" === i[0]) + i.shift(), + void 0 === d && (d = a.mimeType || b.getResponseHeader("Content-Type")); + if (d) + for (e in h) + if (h[e] && h[e].test(d)) { + i.unshift(e); + break + } + if (i[0] in c) + f = i[0]; + else { + for (e in c) { + if (!i[0] || a.converters[e + " " + i[0]]) { + f = e; + break + } + g || (g = e) + } + f = f || g + } + if (f) + return f !== i[0] && i.unshift(f), + c[f] + } + function Nb(a, b, c, d) { + var e, + f, + g, + h, + i, + j = {}, + k = a + .dataTypes + .slice(); + if (k[1]) + for (g in a.converters) + j[g.toLowerCase()] = a.converters[g]; + f = k.shift(); + while (f) + if (a.responseFields[f] && (c[a.responseFields[f]] = b), !i && d && a.dataFilter && (b = a.dataFilter(b, a.dataType)), i = f, f = k.shift()) + if ("*" === f) + f = i; + else if ("*" !== i && i !== f) { + if (g = j[i + " " + f] || j["* " + f], !g) + for (e in j) + if (h = e.split(" "), h[1] === f && (g = j[i + " " + h[0]] || j["* " + h[0]])) { + g === !0 + ? g = j[e] + : j[e] !== !0 && (f = h[0], k.unshift(h[1])); + break + } + if (g !== !0) + if (g && a["throws"]) + b = g(b); + else + try { + b = g(b) + } catch (l) { + return { + state: "parsererror", + error: g + ? l + : "No conversion from " + i + " to " + f + } + } + } + return {state: "success", data: b} + } + r.extend({ + active: 0, + lastModified: {}, + etag: {}, + ajaxSettings: { + url: qb.href, + type: "GET", + isLocal: Cb.test(qb.protocol), + global: !0, + processData: !0, + async: !0, + contentType: "application/x-www-form-urlencoded; charset=UTF-8", + accepts: { + "*": Hb, + text: "text/plain", + html: "text/html", + xml: "application/xml, text/xml", + json: "application/json, text/javascript" + }, + contents: { + xml: /\bxml\b/, + html: /\bhtml/, + json: /\bjson\b/ + }, + responseFields: { + xml: "responseXML", + text: "responseText", + json: "responseJSON" + }, + converters: { + "* text": String, + "text html": !0, + "text json": JSON.parse, + "text xml": r.parseXML + }, + flatOptions: { + url: !0, + context: !0 + } + }, + ajaxSetup: function (a, b) { + return b + ? Lb(Lb(a, r.ajaxSettings), b) + : Lb(r.ajaxSettings, a) + }, + ajaxPrefilter: Jb(Fb), + ajaxTransport: Jb(Gb), + ajax: function (b, c) { + "object" == typeof b && (c = b, b = void 0), + c = c || {}; + var e, + f, + g, + h, + i, + j, + k, + l, + m, + n, + o = r.ajaxSetup({}, c), + p = o.context || o, + q = o.context && (p.nodeType || p.jquery) + ? r(p) + : r.event, + s = r.Deferred(), + t = r.Callbacks("once memory"), + u = o.statusCode || {}, + v = {}, + w = {}, + x = "canceled", + y = { + readyState: 0, + getResponseHeader: function (a) { + var b; + if (k) { + if (!h) { + h = {}; + while (b = Bb.exec(g)) + h[b[1].toLowerCase()] = b[2] + } + b = h[a.toLowerCase()] + } + return null == b + ? null + : b + }, + getAllResponseHeaders: function () { + return k + ? g + : null + }, + setRequestHeader: function (a, b) { + return null == k && (a = w[a.toLowerCase()] = w[a.toLowerCase()] || a, v[a] = b), + this + }, + overrideMimeType: function (a) { + return null == k && (o.mimeType = a), + this + }, + statusCode: function (a) { + var b; + if (a) + if (k) + y.always(a[y.status]); + else + for (b in a) + u[b] = [u[b], a[b]]; + return this + }, + abort: function (a) { + var b = a || x; + return e && e.abort(b), + A(0, b), + this + } + }; + if (s.promise(y), o.url = ((b || o.url || qb.href) + "").replace(Eb, qb.protocol + "//"), o.type = c.method || c.type || o.method || o.type, o.dataTypes = (o.dataType || "*").toLowerCase().match(K) || [""], null == o.crossDomain) { + j = d.createElement("a"); + try { + j.href = o.url, + j.href = j.href, + o.crossDomain = Ib.protocol + "//" + Ib.host != j.protocol + "//" + j.host + } catch (z) { + o.crossDomain = !0 + } + } + if (o.data && o.processData && "string" != typeof o.data && (o.data = r.param(o.data, o.traditional)), Kb(Fb, o, c, y), k) + return y; + l = r.event && o.global, + l && 0 === r.active++ && r + .event + .trigger("ajaxStart"), + o.type = o + .type + .toUpperCase(), + o.hasContent = !Db.test(o.type), + f = o + .url + .replace(zb, ""), + o.hasContent + ? o.data && o.processData && 0 === (o.contentType || "").indexOf("application/x-www-form-urlencoded") && (o.data = o.data.replace(yb, "+")) + : (n = o.url.slice(f.length), o.data && (f += (sb.test(f) + ? "&" + : "?") + o.data, delete o.data), o.cache === !1 && (f = f.replace(Ab, "$1"), n = (sb.test(f) + ? "&" + : "?") + "_=" + rb++ + n), o.url = f + n), + o.ifModified && (r.lastModified[f] && y.setRequestHeader("If-Modified-Since", r.lastModified[f]), r.etag[f] && y.setRequestHeader("If-None-Match", r.etag[f])), + (o.data && o.hasContent && o.contentType !== !1 || c.contentType) && y.setRequestHeader("Content-Type", o.contentType), + y.setRequestHeader("Accept", o.dataTypes[0] && o.accepts[o.dataTypes[0]] + ? o.accepts[o.dataTypes[0]] + ("*" !== o.dataTypes[0] + ? ", " + Hb + "; q=0.01" + : "") + : o.accepts["*"]); + for (m in o.headers) + y.setRequestHeader(m, o.headers[m]); + if (o.beforeSend && (o.beforeSend.call(p, y, o) === !1 || k)) + return y.abort(); + if (x = "abort", t.add(o.complete), y.done(o.success), y.fail(o.error), e = Kb(Gb, o, c, y)) { + if (y.readyState = 1, l && q.trigger("ajaxSend", [y, o]), k) + return y; + o.async && o.timeout > 0 && (i = a.setTimeout(function () { + y.abort("timeout") + }, o.timeout)); + try { + k = !1, + e.send(v, A) + } catch (z) { + if (k) + throw z; + A(-1, z) + } + } else + A(-1, "No Transport"); + function A(b, c, d, h) { + var j, + m, + n, + v, + w, + x = c; + k || (k = !0, i && a.clearTimeout(i), e = void 0, g = h || "", y.readyState = b > 0 + ? 4 + : 0, j = b >= 200 && b < 300 || 304 === b, d && (v = Mb(o, y, d)), v = Nb(o, v, y, j), j + ? (o.ifModified && (w = y.getResponseHeader("Last-Modified"), w && (r.lastModified[f] = w), w = y.getResponseHeader("etag"), w && (r.etag[f] = w)), 204 === b || "HEAD" === o.type + ? x = "nocontent" + : 304 === b + ? x = "notmodified" + : (x = v.state, m = v.data, n = v.error, j = !n)) + : (n = x, !b && x || (x = "error", b < 0 && (b = 0))), y.status = b, y.statusText = (c || x) + "", j + ? s.resolveWith(p, [m, x, y]) + : s.rejectWith(p, [y, x, n]), y.statusCode(u), u = void 0, l && q.trigger(j + ? "ajaxSuccess" + : "ajaxError", [ + y, o, j + ? m + : n + ]), t.fireWith(p, [y, x]), l && (q.trigger("ajaxComplete", [y, o]), --r.active || r.event.trigger("ajaxStop"))) + } + return y + }, + getJSON: function (a, b, c) { + return r.get(a, b, c, "json") + }, + getScript: function (a, b) { + return r.get(a, void 0, b, "script") + } + }), + r.each([ + "get", "post" + ], function (a, b) { + r[b] = function (a, c, d, e) { + return r.isFunction(c) && (e = e || d, d = c, c = void 0), + r.ajax(r.extend({ + url: a, + type: b, + dataType: e, + data: c, + success: d + }, r.isPlainObject(a) && a)) + } + }), + r._evalUrl = function (a) { + return r.ajax({ + url: a, + type: "GET", + dataType: "script", + cache: !0, + async: !1, + global: !1, + "throws": !0 + }) + }, + r + .fn + .extend({ + wrapAll: function (a) { + var b; + return this[0] && (r.isFunction(a) && (a = a.call(this[0])), b = r(a, this[0].ownerDocument).eq(0).clone(!0), this[0].parentNode && b.insertBefore(this[0]), b.map(function () { + var a = this; + while (a.firstElementChild) + a = a.firstElementChild; + return a + }).append(this)), + this + }, + wrapInner: function (a) { + return r.isFunction(a) + ? this.each(function (b) { + r(this).wrapInner(a.call(this, b)) + }) + : this.each(function () { + var b = r(this), + c = b.contents(); + c.length + ? c.wrapAll(a) + : b.append(a) + }) + }, + wrap: function (a) { + var b = r.isFunction(a); + return this.each(function (c) { + r(this).wrapAll(b + ? a.call(this, c) + : a) + }) + }, + unwrap: function (a) { + return this + .parent(a) + .not("body") + .each(function () { + r(this).replaceWith(this.childNodes) + }), + this + } + }), + r.expr.pseudos.hidden = function (a) { + return !r + .expr + .pseudos + .visible(a) + }, + r.expr.pseudos.visible = function (a) { + return !!(a.offsetWidth || a.offsetHeight || a.getClientRects().length) + }, + r.ajaxSettings.xhr = function () { + try { + return new a.XMLHttpRequest + } catch (b) {} + }; + var Ob = { + 0: 200, + 1223: 204 + }, + Pb = r + .ajaxSettings + .xhr(); + o.cors = !!Pb && "withCredentials" in Pb, + o.ajax = Pb = !!Pb, + r.ajaxTransport(function (b) { + var c, + d; + if (o.cors || Pb && !b.crossDomain) + return { + send: function (e, f) { + var g, + h = b.xhr(); + if (h.open(b.type, b.url, b.async, b.username, b.password), b.xhrFields) + for (g in b.xhrFields) + h[g] = b.xhrFields[g]; + b.mimeType && h.overrideMimeType && h.overrideMimeType(b.mimeType), + b.crossDomain || e["X-Requested-With"] || (e["X-Requested-With"] = "XMLHttpRequest"); + for (g in e) + h.setRequestHeader(g, e[g]); + c = function (a) { + return function () { + c && (c = d = h.onload = h.onerror = h.onabort = h.onreadystatechange = null, "abort" === a + ? h.abort() + : "error" === a + ? "number" != typeof h.status + ? f(0, "error") + : f(h.status, h.statusText) + : f(Ob[h.status] || h.status, h.statusText, "text" !== (h.responseType || "text") || "string" != typeof h.responseText + ? { + binary: h.response + } + : { + text: h.responseText + }, h.getAllResponseHeaders())) + } + }, + h.onload = c(), + d = h.onerror = c("error"), + void 0 !== h.onabort + ? h.onabort = d + : h.onreadystatechange = function () { + 4 === h.readyState && a.setTimeout(function () { + c && d() + }) + }, + c = c("abort"); + try { + h.send(b.hasContent && b.data || null) + } catch (i) { + if (c) + throw i + } + }, + abort: function () { + c && c() + } + } + }), + r.ajaxPrefilter(function (a) { + a.crossDomain && (a.contents.script = !1) + }), + r.ajaxSetup({ + accepts: { + script: "text/javascript, application/javascript, application/ecmascript, application/x-e" + + "cmascript" + }, + contents: { + script: /\b(?:java|ecma)script\b/ + }, + converters: { + "text script": function (a) { + return r.globalEval(a), + a + } + } + }), + r.ajaxPrefilter("script", function (a) { + void 0 === a.cache && (a.cache = !1), + a.crossDomain && (a.type = "GET") + }), + r.ajaxTransport("script", function (a) { + if (a.crossDomain) { + var b, + c; + return { + send: function (e, f) { + b = r(" diff --git a/assets/fonts/fontawesome.min.css b/assets/fonts/fontawesome.min.css new file mode 100644 index 0000000..24fcc04 --- /dev/null +++ b/assets/fonts/fontawesome.min.css @@ -0,0 +1,4 @@ +/*! + * Font Awesome 4.3.0 by @davegandy - http://fontawesome.io - @fontawesome + * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) + */@font-face{font-family:'FontAwesome';src:url('../fonts/fontawesome-webfont.eot?v=4.3.0');src:url('../fonts/fontawesome-webfont.eot?#iefix&v=4.3.0') format('embedded-opentype'),url('../fonts/fontawesome-webfont.woff2?v=4.3.0') format('woff2'),url('../fonts/fontawesome-webfont.woff?v=4.3.0') format('woff'),url('../fonts/fontawesome-webfont.ttf?v=4.3.0') format('truetype'),url('../fonts/fontawesome-webfont.svg?v=4.3.0#fontawesomeregular') format('svg');font-weight:normal;font-style:normal}.fa{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transform:translate(0, 0)}.fa-lg{font-size:1.33333333em;line-height:.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.28571429em;text-align:center}.fa-ul{padding-left:0;margin-left:2.14285714em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.14285714em;width:2.14285714em;top:.14285714em;text-align:center}.fa-li.fa-lg{left:-1.85714286em}.fa-border{padding:.2em .25em .15em;border:solid .08em #eee;border-radius:.1em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left{margin-right:.3em}.fa.pull-right{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear}.fa-pulse{-webkit-animation:fa-spin 1s infinite steps(8);animation:fa-spin 1s infinite steps(8)}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.fa-rotate-90{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=1);-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2);-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=3);-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1);-webkit-transform:scale(-1, 1);-ms-transform:scale(-1, 1);transform:scale(-1, 1)}.fa-flip-vertical{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1);-webkit-transform:scale(1, -1);-ms-transform:scale(1, -1);transform:scale(1, -1)}:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-flip-horizontal,:root .fa-flip-vertical{filter:none}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:"\f000"}.fa-music:before{content:"\f001"}.fa-search:before{content:"\f002"}.fa-envelope-o:before{content:"\f003"}.fa-heart:before{content:"\f004"}.fa-star:before{content:"\f005"}.fa-star-o:before{content:"\f006"}.fa-user:before{content:"\f007"}.fa-film:before{content:"\f008"}.fa-th-large:before{content:"\f009"}.fa-th:before{content:"\f00a"}.fa-th-list:before{content:"\f00b"}.fa-check:before{content:"\f00c"}.fa-remove:before,.fa-close:before,.fa-times:before{content:"\f00d"}.fa-search-plus:before{content:"\f00e"}.fa-search-minus:before{content:"\f010"}.fa-power-off:before{content:"\f011"}.fa-signal:before{content:"\f012"}.fa-gear:before,.fa-cog:before{content:"\f013"}.fa-trash-o:before{content:"\f014"}.fa-home:before{content:"\f015"}.fa-file-o:before{content:"\f016"}.fa-clock-o:before{content:"\f017"}.fa-road:before{content:"\f018"}.fa-download:before{content:"\f019"}.fa-arrow-circle-o-down:before{content:"\f01a"}.fa-arrow-circle-o-up:before{content:"\f01b"}.fa-inbox:before{content:"\f01c"}.fa-play-circle-o:before{content:"\f01d"}.fa-rotate-right:before,.fa-repeat:before{content:"\f01e"}.fa-refresh:before{content:"\f021"}.fa-list-alt:before{content:"\f022"}.fa-lock:before{content:"\f023"}.fa-flag:before{content:"\f024"}.fa-headphones:before{content:"\f025"}.fa-volume-off:before{content:"\f026"}.fa-volume-down:before{content:"\f027"}.fa-volume-up:before{content:"\f028"}.fa-qrcode:before{content:"\f029"}.fa-barcode:before{content:"\f02a"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-book:before{content:"\f02d"}.fa-bookmark:before{content:"\f02e"}.fa-print:before{content:"\f02f"}.fa-camera:before{content:"\f030"}.fa-font:before{content:"\f031"}.fa-bold:before{content:"\f032"}.fa-italic:before{content:"\f033"}.fa-text-height:before{content:"\f034"}.fa-text-width:before{content:"\f035"}.fa-align-left:before{content:"\f036"}.fa-align-center:before{content:"\f037"}.fa-align-right:before{content:"\f038"}.fa-align-justify:before{content:"\f039"}.fa-list:before{content:"\f03a"}.fa-dedent:before,.fa-outdent:before{content:"\f03b"}.fa-indent:before{content:"\f03c"}.fa-video-camera:before{content:"\f03d"}.fa-photo:before,.fa-image:before,.fa-picture-o:before{content:"\f03e"}.fa-pencil:before{content:"\f040"}.fa-map-marker:before{content:"\f041"}.fa-adjust:before{content:"\f042"}.fa-tint:before{content:"\f043"}.fa-edit:before,.fa-pencil-square-o:before{content:"\f044"}.fa-share-square-o:before{content:"\f045"}.fa-check-square-o:before{content:"\f046"}.fa-arrows:before{content:"\f047"}.fa-step-backward:before{content:"\f048"}.fa-fast-backward:before{content:"\f049"}.fa-backward:before{content:"\f04a"}.fa-play:before{content:"\f04b"}.fa-pause:before{content:"\f04c"}.fa-stop:before{content:"\f04d"}.fa-forward:before{content:"\f04e"}.fa-fast-forward:before{content:"\f050"}.fa-step-forward:before{content:"\f051"}.fa-eject:before{content:"\f052"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-plus-circle:before{content:"\f055"}.fa-minus-circle:before{content:"\f056"}.fa-times-circle:before{content:"\f057"}.fa-check-circle:before{content:"\f058"}.fa-question-circle:before{content:"\f059"}.fa-info-circle:before{content:"\f05a"}.fa-crosshairs:before{content:"\f05b"}.fa-times-circle-o:before{content:"\f05c"}.fa-check-circle-o:before{content:"\f05d"}.fa-ban:before{content:"\f05e"}.fa-arrow-left:before{content:"\f060"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-up:before{content:"\f062"}.fa-arrow-down:before{content:"\f063"}.fa-mail-forward:before,.fa-share:before{content:"\f064"}.fa-expand:before{content:"\f065"}.fa-compress:before{content:"\f066"}.fa-plus:before{content:"\f067"}.fa-minus:before{content:"\f068"}.fa-asterisk:before{content:"\f069"}.fa-exclamation-circle:before{content:"\f06a"}.fa-gift:before{content:"\f06b"}.fa-leaf:before{content:"\f06c"}.fa-fire:before{content:"\f06d"}.fa-eye:before{content:"\f06e"}.fa-eye-slash:before{content:"\f070"}.fa-warning:before,.fa-exclamation-triangle:before{content:"\f071"}.fa-plane:before{content:"\f072"}.fa-calendar:before{content:"\f073"}.fa-random:before{content:"\f074"}.fa-comment:before{content:"\f075"}.fa-magnet:before{content:"\f076"}.fa-chevron-up:before{content:"\f077"}.fa-chevron-down:before{content:"\f078"}.fa-retweet:before{content:"\f079"}.fa-shopping-cart:before{content:"\f07a"}.fa-folder:before{content:"\f07b"}.fa-folder-open:before{content:"\f07c"}.fa-arrows-v:before{content:"\f07d"}.fa-arrows-h:before{content:"\f07e"}.fa-bar-chart-o:before,.fa-bar-chart:before{content:"\f080"}.fa-twitter-square:before{content:"\f081"}.fa-facebook-square:before{content:"\f082"}.fa-camera-retro:before{content:"\f083"}.fa-key:before{content:"\f084"}.fa-gears:before,.fa-cogs:before{content:"\f085"}.fa-comments:before{content:"\f086"}.fa-thumbs-o-up:before{content:"\f087"}.fa-thumbs-o-down:before{content:"\f088"}.fa-star-half:before{content:"\f089"}.fa-heart-o:before{content:"\f08a"}.fa-sign-out:before{content:"\f08b"}.fa-linkedin-square:before{content:"\f08c"}.fa-thumb-tack:before{content:"\f08d"}.fa-external-link:before{content:"\f08e"}.fa-sign-in:before{content:"\f090"}.fa-trophy:before{content:"\f091"}.fa-github-square:before{content:"\f092"}.fa-upload:before{content:"\f093"}.fa-lemon-o:before{content:"\f094"}.fa-phone:before{content:"\f095"}.fa-square-o:before{content:"\f096"}.fa-bookmark-o:before{content:"\f097"}.fa-phone-square:before{content:"\f098"}.fa-twitter:before{content:"\f099"}.fa-facebook-f:before,.fa-facebook:before{content:"\f09a"}.fa-github:before{content:"\f09b"}.fa-unlock:before{content:"\f09c"}.fa-credit-card:before{content:"\f09d"}.fa-rss:before{content:"\f09e"}.fa-hdd-o:before{content:"\f0a0"}.fa-bullhorn:before{content:"\f0a1"}.fa-bell:before{content:"\f0f3"}.fa-certificate:before{content:"\f0a3"}.fa-hand-o-right:before{content:"\f0a4"}.fa-hand-o-left:before{content:"\f0a5"}.fa-hand-o-up:before{content:"\f0a6"}.fa-hand-o-down:before{content:"\f0a7"}.fa-arrow-circle-left:before{content:"\f0a8"}.fa-arrow-circle-right:before{content:"\f0a9"}.fa-arrow-circle-up:before{content:"\f0aa"}.fa-arrow-circle-down:before{content:"\f0ab"}.fa-globe:before{content:"\f0ac"}.fa-wrench:before{content:"\f0ad"}.fa-tasks:before{content:"\f0ae"}.fa-filter:before{content:"\f0b0"}.fa-briefcase:before{content:"\f0b1"}.fa-arrows-alt:before{content:"\f0b2"}.fa-group:before,.fa-users:before{content:"\f0c0"}.fa-chain:before,.fa-link:before{content:"\f0c1"}.fa-cloud:before{content:"\f0c2"}.fa-flask:before{content:"\f0c3"}.fa-cut:before,.fa-scissors:before{content:"\f0c4"}.fa-copy:before,.fa-files-o:before{content:"\f0c5"}.fa-paperclip:before{content:"\f0c6"}.fa-save:before,.fa-floppy-o:before{content:"\f0c7"}.fa-square:before{content:"\f0c8"}.fa-navicon:before,.fa-reorder:before,.fa-bars:before{content:"\f0c9"}.fa-list-ul:before{content:"\f0ca"}.fa-list-ol:before{content:"\f0cb"}.fa-strikethrough:before{content:"\f0cc"}.fa-underline:before{content:"\f0cd"}.fa-table:before{content:"\f0ce"}.fa-magic:before{content:"\f0d0"}.fa-truck:before{content:"\f0d1"}.fa-pinterest:before{content:"\f0d2"}.fa-pinterest-square:before{content:"\f0d3"}.fa-google-plus-square:before{content:"\f0d4"}.fa-google-plus:before{content:"\f0d5"}.fa-money:before{content:"\f0d6"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-up:before{content:"\f0d8"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-columns:before{content:"\f0db"}.fa-unsorted:before,.fa-sort:before{content:"\f0dc"}.fa-sort-down:before,.fa-sort-desc:before{content:"\f0dd"}.fa-sort-up:before,.fa-sort-asc:before{content:"\f0de"}.fa-envelope:before{content:"\f0e0"}.fa-linkedin:before{content:"\f0e1"}.fa-rotate-left:before,.fa-undo:before{content:"\f0e2"}.fa-legal:before,.fa-gavel:before{content:"\f0e3"}.fa-dashboard:before,.fa-tachometer:before{content:"\f0e4"}.fa-comment-o:before{content:"\f0e5"}.fa-comments-o:before{content:"\f0e6"}.fa-flash:before,.fa-bolt:before{content:"\f0e7"}.fa-sitemap:before{content:"\f0e8"}.fa-umbrella:before{content:"\f0e9"}.fa-paste:before,.fa-clipboard:before{content:"\f0ea"}.fa-lightbulb-o:before{content:"\f0eb"}.fa-exchange:before{content:"\f0ec"}.fa-cloud-download:before{content:"\f0ed"}.fa-cloud-upload:before{content:"\f0ee"}.fa-user-md:before{content:"\f0f0"}.fa-stethoscope:before{content:"\f0f1"}.fa-suitcase:before{content:"\f0f2"}.fa-bell-o:before{content:"\f0a2"}.fa-coffee:before{content:"\f0f4"}.fa-cutlery:before{content:"\f0f5"}.fa-file-text-o:before{content:"\f0f6"}.fa-building-o:before{content:"\f0f7"}.fa-hospital-o:before{content:"\f0f8"}.fa-ambulance:before{content:"\f0f9"}.fa-medkit:before{content:"\f0fa"}.fa-fighter-jet:before{content:"\f0fb"}.fa-beer:before{content:"\f0fc"}.fa-h-square:before{content:"\f0fd"}.fa-plus-square:before{content:"\f0fe"}.fa-angle-double-left:before{content:"\f100"}.fa-angle-double-right:before{content:"\f101"}.fa-angle-double-up:before{content:"\f102"}.fa-angle-double-down:before{content:"\f103"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"}.fa-angle-up:before{content:"\f106"}.fa-angle-down:before{content:"\f107"}.fa-desktop:before{content:"\f108"}.fa-laptop:before{content:"\f109"}.fa-tablet:before{content:"\f10a"}.fa-mobile-phone:before,.fa-mobile:before{content:"\f10b"}.fa-circle-o:before{content:"\f10c"}.fa-quote-left:before{content:"\f10d"}.fa-quote-right:before{content:"\f10e"}.fa-spinner:before{content:"\f110"}.fa-circle:before{content:"\f111"}.fa-mail-reply:before,.fa-reply:before{content:"\f112"}.fa-github-alt:before{content:"\f113"}.fa-folder-o:before{content:"\f114"}.fa-folder-open-o:before{content:"\f115"}.fa-smile-o:before{content:"\f118"}.fa-frown-o:before{content:"\f119"}.fa-meh-o:before{content:"\f11a"}.fa-gamepad:before{content:"\f11b"}.fa-keyboard-o:before{content:"\f11c"}.fa-flag-o:before{content:"\f11d"}.fa-flag-checkered:before{content:"\f11e"}.fa-terminal:before{content:"\f120"}.fa-code:before{content:"\f121"}.fa-mail-reply-all:before,.fa-reply-all:before{content:"\f122"}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:"\f123"}.fa-location-arrow:before{content:"\f124"}.fa-crop:before{content:"\f125"}.fa-code-fork:before{content:"\f126"}.fa-unlink:before,.fa-chain-broken:before{content:"\f127"}.fa-question:before{content:"\f128"}.fa-info:before{content:"\f129"}.fa-exclamation:before{content:"\f12a"}.fa-superscript:before{content:"\f12b"}.fa-subscript:before{content:"\f12c"}.fa-eraser:before{content:"\f12d"}.fa-puzzle-piece:before{content:"\f12e"}.fa-microphone:before{content:"\f130"}.fa-microphone-slash:before{content:"\f131"}.fa-shield:before{content:"\f132"}.fa-calendar-o:before{content:"\f133"}.fa-fire-extinguisher:before{content:"\f134"}.fa-rocket:before{content:"\f135"}.fa-maxcdn:before{content:"\f136"}.fa-chevron-circle-left:before{content:"\f137"}.fa-chevron-circle-right:before{content:"\f138"}.fa-chevron-circle-up:before{content:"\f139"}.fa-chevron-circle-down:before{content:"\f13a"}.fa-html5:before{content:"\f13b"}.fa-css3:before{content:"\f13c"}.fa-anchor:before{content:"\f13d"}.fa-unlock-alt:before{content:"\f13e"}.fa-bullseye:before{content:"\f140"}.fa-ellipsis-h:before{content:"\f141"}.fa-ellipsis-v:before{content:"\f142"}.fa-rss-square:before{content:"\f143"}.fa-play-circle:before{content:"\f144"}.fa-ticket:before{content:"\f145"}.fa-minus-square:before{content:"\f146"}.fa-minus-square-o:before{content:"\f147"}.fa-level-up:before{content:"\f148"}.fa-level-down:before{content:"\f149"}.fa-check-square:before{content:"\f14a"}.fa-pencil-square:before{content:"\f14b"}.fa-external-link-square:before{content:"\f14c"}.fa-share-square:before{content:"\f14d"}.fa-compass:before{content:"\f14e"}.fa-toggle-down:before,.fa-caret-square-o-down:before{content:"\f150"}.fa-toggle-up:before,.fa-caret-square-o-up:before{content:"\f151"}.fa-toggle-right:before,.fa-caret-square-o-right:before{content:"\f152"}.fa-euro:before,.fa-eur:before{content:"\f153"}.fa-gbp:before{content:"\f154"}.fa-dollar:before,.fa-usd:before{content:"\f155"}.fa-rupee:before,.fa-inr:before{content:"\f156"}.fa-cny:before,.fa-rmb:before,.fa-yen:before,.fa-jpy:before{content:"\f157"}.fa-ruble:before,.fa-rouble:before,.fa-rub:before{content:"\f158"}.fa-won:before,.fa-krw:before{content:"\f159"}.fa-bitcoin:before,.fa-btc:before{content:"\f15a"}.fa-file:before{content:"\f15b"}.fa-file-text:before{content:"\f15c"}.fa-sort-alpha-asc:before{content:"\f15d"}.fa-sort-alpha-desc:before{content:"\f15e"}.fa-sort-amount-asc:before{content:"\f160"}.fa-sort-amount-desc:before{content:"\f161"}.fa-sort-numeric-asc:before{content:"\f162"}.fa-sort-numeric-desc:before{content:"\f163"}.fa-thumbs-up:before{content:"\f164"}.fa-thumbs-down:before{content:"\f165"}.fa-youtube-square:before{content:"\f166"}.fa-youtube:before{content:"\f167"}.fa-xing:before{content:"\f168"}.fa-xing-square:before{content:"\f169"}.fa-youtube-play:before{content:"\f16a"}.fa-dropbox:before{content:"\f16b"}.fa-stack-overflow:before{content:"\f16c"}.fa-instagram:before{content:"\f16d"}.fa-flickr:before{content:"\f16e"}.fa-adn:before{content:"\f170"}.fa-bitbucket:before{content:"\f171"}.fa-bitbucket-square:before{content:"\f172"}.fa-tumblr:before{content:"\f173"}.fa-tumblr-square:before{content:"\f174"}.fa-long-arrow-down:before{content:"\f175"}.fa-long-arrow-up:before{content:"\f176"}.fa-long-arrow-left:before{content:"\f177"}.fa-long-arrow-right:before{content:"\f178"}.fa-apple:before{content:"\f179"}.fa-windows:before{content:"\f17a"}.fa-android:before{content:"\f17b"}.fa-linux:before{content:"\f17c"}.fa-dribbble:before{content:"\f17d"}.fa-skype:before{content:"\f17e"}.fa-foursquare:before{content:"\f180"}.fa-trello:before{content:"\f181"}.fa-female:before{content:"\f182"}.fa-male:before{content:"\f183"}.fa-gittip:before,.fa-gratipay:before{content:"\f184"}.fa-sun-o:before{content:"\f185"}.fa-moon-o:before{content:"\f186"}.fa-archive:before{content:"\f187"}.fa-bug:before{content:"\f188"}.fa-vk:before{content:"\f189"}.fa-weibo:before{content:"\f18a"}.fa-renren:before{content:"\f18b"}.fa-pagelines:before{content:"\f18c"}.fa-stack-exchange:before{content:"\f18d"}.fa-arrow-circle-o-right:before{content:"\f18e"}.fa-arrow-circle-o-left:before{content:"\f190"}.fa-toggle-left:before,.fa-caret-square-o-left:before{content:"\f191"}.fa-dot-circle-o:before{content:"\f192"}.fa-wheelchair:before{content:"\f193"}.fa-vimeo-square:before{content:"\f194"}.fa-turkish-lira:before,.fa-try:before{content:"\f195"}.fa-plus-square-o:before{content:"\f196"}.fa-space-shuttle:before{content:"\f197"}.fa-slack:before{content:"\f198"}.fa-envelope-square:before{content:"\f199"}.fa-wordpress:before{content:"\f19a"}.fa-openid:before{content:"\f19b"}.fa-institution:before,.fa-bank:before,.fa-university:before{content:"\f19c"}.fa-mortar-board:before,.fa-graduation-cap:before{content:"\f19d"}.fa-yahoo:before{content:"\f19e"}.fa-google:before{content:"\f1a0"}.fa-reddit:before{content:"\f1a1"}.fa-reddit-square:before{content:"\f1a2"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-stumbleupon:before{content:"\f1a4"}.fa-delicious:before{content:"\f1a5"}.fa-digg:before{content:"\f1a6"}.fa-pied-piper:before{content:"\f1a7"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-drupal:before{content:"\f1a9"}.fa-joomla:before{content:"\f1aa"}.fa-language:before{content:"\f1ab"}.fa-fax:before{content:"\f1ac"}.fa-building:before{content:"\f1ad"}.fa-child:before{content:"\f1ae"}.fa-paw:before{content:"\f1b0"}.fa-spoon:before{content:"\f1b1"}.fa-cube:before{content:"\f1b2"}.fa-cubes:before{content:"\f1b3"}.fa-behance:before{content:"\f1b4"}.fa-behance-square:before{content:"\f1b5"}.fa-steam:before{content:"\f1b6"}.fa-steam-square:before{content:"\f1b7"}.fa-recycle:before{content:"\f1b8"}.fa-automobile:before,.fa-car:before{content:"\f1b9"}.fa-cab:before,.fa-taxi:before{content:"\f1ba"}.fa-tree:before{content:"\f1bb"}.fa-spotify:before{content:"\f1bc"}.fa-deviantart:before{content:"\f1bd"}.fa-soundcloud:before{content:"\f1be"}.fa-database:before{content:"\f1c0"}.fa-file-pdf-o:before{content:"\f1c1"}.fa-file-word-o:before{content:"\f1c2"}.fa-file-excel-o:before{content:"\f1c3"}.fa-file-powerpoint-o:before{content:"\f1c4"}.fa-file-photo-o:before,.fa-file-picture-o:before,.fa-file-image-o:before{content:"\f1c5"}.fa-file-zip-o:before,.fa-file-archive-o:before{content:"\f1c6"}.fa-file-sound-o:before,.fa-file-audio-o:before{content:"\f1c7"}.fa-file-movie-o:before,.fa-file-video-o:before{content:"\f1c8"}.fa-file-code-o:before{content:"\f1c9"}.fa-vine:before{content:"\f1ca"}.fa-codepen:before{content:"\f1cb"}.fa-jsfiddle:before{content:"\f1cc"}.fa-life-bouy:before,.fa-life-buoy:before,.fa-life-saver:before,.fa-support:before,.fa-life-ring:before{content:"\f1cd"}.fa-circle-o-notch:before{content:"\f1ce"}.fa-ra:before,.fa-rebel:before{content:"\f1d0"}.fa-ge:before,.fa-empire:before{content:"\f1d1"}.fa-git-square:before{content:"\f1d2"}.fa-git:before{content:"\f1d3"}.fa-hacker-news:before{content:"\f1d4"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-qq:before{content:"\f1d6"}.fa-wechat:before,.fa-weixin:before{content:"\f1d7"}.fa-send:before,.fa-paper-plane:before{content:"\f1d8"}.fa-send-o:before,.fa-paper-plane-o:before{content:"\f1d9"}.fa-history:before{content:"\f1da"}.fa-genderless:before,.fa-circle-thin:before{content:"\f1db"}.fa-header:before{content:"\f1dc"}.fa-paragraph:before{content:"\f1dd"}.fa-sliders:before{content:"\f1de"}.fa-share-alt:before{content:"\f1e0"}.fa-share-alt-square:before{content:"\f1e1"}.fa-bomb:before{content:"\f1e2"}.fa-soccer-ball-o:before,.fa-futbol-o:before{content:"\f1e3"}.fa-tty:before{content:"\f1e4"}.fa-binoculars:before{content:"\f1e5"}.fa-plug:before{content:"\f1e6"}.fa-slideshare:before{content:"\f1e7"}.fa-twitch:before{content:"\f1e8"}.fa-yelp:before{content:"\f1e9"}.fa-newspaper-o:before{content:"\f1ea"}.fa-wifi:before{content:"\f1eb"}.fa-calculator:before{content:"\f1ec"}.fa-paypal:before{content:"\f1ed"}.fa-google-wallet:before{content:"\f1ee"}.fa-cc-visa:before{content:"\f1f0"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-cc-discover:before{content:"\f1f2"}.fa-cc-amex:before{content:"\f1f3"}.fa-cc-paypal:before{content:"\f1f4"}.fa-cc-stripe:before{content:"\f1f5"}.fa-bell-slash:before{content:"\f1f6"}.fa-bell-slash-o:before{content:"\f1f7"}.fa-trash:before{content:"\f1f8"}.fa-copyright:before{content:"\f1f9"}.fa-at:before{content:"\f1fa"}.fa-eyedropper:before{content:"\f1fb"}.fa-paint-brush:before{content:"\f1fc"}.fa-birthday-cake:before{content:"\f1fd"}.fa-area-chart:before{content:"\f1fe"}.fa-pie-chart:before{content:"\f200"}.fa-line-chart:before{content:"\f201"}.fa-lastfm:before{content:"\f202"}.fa-lastfm-square:before{content:"\f203"}.fa-toggle-off:before{content:"\f204"}.fa-toggle-on:before{content:"\f205"}.fa-bicycle:before{content:"\f206"}.fa-bus:before{content:"\f207"}.fa-ioxhost:before{content:"\f208"}.fa-angellist:before{content:"\f209"}.fa-cc:before{content:"\f20a"}.fa-shekel:before,.fa-sheqel:before,.fa-ils:before{content:"\f20b"}.fa-meanpath:before{content:"\f20c"}.fa-buysellads:before{content:"\f20d"}.fa-connectdevelop:before{content:"\f20e"}.fa-dashcube:before{content:"\f210"}.fa-forumbee:before{content:"\f211"}.fa-leanpub:before{content:"\f212"}.fa-sellsy:before{content:"\f213"}.fa-shirtsinbulk:before{content:"\f214"}.fa-simplybuilt:before{content:"\f215"}.fa-skyatlas:before{content:"\f216"}.fa-cart-plus:before{content:"\f217"}.fa-cart-arrow-down:before{content:"\f218"}.fa-diamond:before{content:"\f219"}.fa-ship:before{content:"\f21a"}.fa-user-secret:before{content:"\f21b"}.fa-motorcycle:before{content:"\f21c"}.fa-street-view:before{content:"\f21d"}.fa-heartbeat:before{content:"\f21e"}.fa-venus:before{content:"\f221"}.fa-mars:before{content:"\f222"}.fa-mercury:before{content:"\f223"}.fa-transgender:before{content:"\f224"}.fa-transgender-alt:before{content:"\f225"}.fa-venus-double:before{content:"\f226"}.fa-mars-double:before{content:"\f227"}.fa-venus-mars:before{content:"\f228"}.fa-mars-stroke:before{content:"\f229"}.fa-mars-stroke-v:before{content:"\f22a"}.fa-mars-stroke-h:before{content:"\f22b"}.fa-neuter:before{content:"\f22c"}.fa-facebook-official:before{content:"\f230"}.fa-pinterest-p:before{content:"\f231"}.fa-whatsapp:before{content:"\f232"}.fa-server:before{content:"\f233"}.fa-user-plus:before{content:"\f234"}.fa-user-times:before{content:"\f235"}.fa-hotel:before,.fa-bed:before{content:"\f236"}.fa-viacoin:before{content:"\f237"}.fa-train:before{content:"\f238"}.fa-subway:before{content:"\f239"}.fa-medium:before{content:"\f23a"} \ No newline at end of file From 745570e4dd861efddf8c99eba325eba824d6754a Mon Sep 17 00:00:00 2001 From: deathrow Date: Wed, 1 Feb 2023 15:35:03 -0500 Subject: [PATCH 107/169] Jekyll Build --- .gitea/workflows/build.yml | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 .gitea/workflows/build.yml diff --git a/.gitea/workflows/build.yml b/.gitea/workflows/build.yml new file mode 100644 index 0000000..847dfe6 --- /dev/null +++ b/.gitea/workflows/build.yml @@ -0,0 +1,12 @@ +kind: pipeline +name: Jekyll build +type: docker + +steps: +- name: build + image: ruby:3.1.3 + commands: + - gem update + - gem install bundler + - bundle install + - bundle exec jekyll build \ No newline at end of file From b4a31abf3d533e893742ea0424beb0ccaf8ce7dc Mon Sep 17 00:00:00 2001 From: deathrow Date: Wed, 1 Feb 2023 15:37:27 -0500 Subject: [PATCH 108/169] Qubes sys-dns guide --- _information/Qubes-OS.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/_information/Qubes-OS.md b/_information/Qubes-OS.md index 37ddf6e..7bd8c65 100644 --- a/_information/Qubes-OS.md +++ b/_information/Qubes-OS.md @@ -295,6 +295,8 @@ echo "/usr/lib/libhardened_malloc.so/libhardened_malloc.so" | sudo tee /etc/ld.s #### Guides +- [Creating sys-dns](https://forum.qubes-os.org/t/guide-how-to-setup-a-sys-dns-qube/13749) + - [Using Kloak](https://forum.qubes-os.org/t/tutorial-how-to-use-kloak-with-usb-keyboards/14134) - [Advanced Browser Fingerprinting](https://forum.qubes-os.org/t/advanced-browser-fingerprinting/12379) From ad18e67345c8c76b47dce16665b9e1bebd91c15d Mon Sep 17 00:00:00 2001 From: deathrow Date: Wed, 1 Feb 2023 15:40:11 -0500 Subject: [PATCH 109/169] Update workflow --- .gitea/workflows/build.yml | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/.gitea/workflows/build.yml b/.gitea/workflows/build.yml index 847dfe6..5bb56e0 100644 --- a/.gitea/workflows/build.yml +++ b/.gitea/workflows/build.yml @@ -1,12 +1,13 @@ -kind: pipeline name: Jekyll build -type: docker +on: [push] -steps: -- name: build - image: ruby:3.1.3 - commands: - - gem update - - gem install bundler - - bundle install - - bundle exec jekyll build \ No newline at end of file +jobs: + lint: + name: build + runs-on: ruby:3.1.3 + steps: + commands: + - gem update + - gem install bundler + - bundle install + - bundle exec jekyll build \ No newline at end of file From 4122fdb58f2c807a1305351686352f0338c61a49 Mon Sep 17 00:00:00 2001 From: deathrow Date: Wed, 1 Feb 2023 15:48:42 -0500 Subject: [PATCH 110/169] Update Workflow --- .gitea/workflows/build.yml | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/.gitea/workflows/build.yml b/.gitea/workflows/build.yml index 5bb56e0..6cba252 100644 --- a/.gitea/workflows/build.yml +++ b/.gitea/workflows/build.yml @@ -2,12 +2,11 @@ name: Jekyll build on: [push] jobs: - lint: - name: build + build: runs-on: ruby:3.1.3 steps: - commands: - - gem update - - gem install bundler - - bundle install - - bundle exec jekyll build \ No newline at end of file + - run: gem update + - run: gem install bundler + - run: bundle install + - run: bundle exec jekyll build + uses: actions/checkout@v3 \ No newline at end of file From 9b9350e3dcce0b977623a39a402ef6d5faa13992 Mon Sep 17 00:00:00 2001 From: deathrow Date: Wed, 1 Feb 2023 15:54:51 -0500 Subject: [PATCH 111/169] Update Syntax --- .gitea/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitea/workflows/build.yml b/.gitea/workflows/build.yml index 6cba252..f0b6a28 100644 --- a/.gitea/workflows/build.yml +++ b/.gitea/workflows/build.yml @@ -9,4 +9,4 @@ jobs: - run: gem install bundler - run: bundle install - run: bundle exec jekyll build - uses: actions/checkout@v3 \ No newline at end of file + - uses: actions/checkout@v3 \ No newline at end of file From 8b98f8c045f47bf04e4e8c0c935621387ef4023d Mon Sep 17 00:00:00 2001 From: deathrow Date: Wed, 1 Feb 2023 15:56:14 -0500 Subject: [PATCH 112/169] Remove checkout --- .gitea/workflows/build.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.gitea/workflows/build.yml b/.gitea/workflows/build.yml index f0b6a28..6a57415 100644 --- a/.gitea/workflows/build.yml +++ b/.gitea/workflows/build.yml @@ -8,5 +8,4 @@ jobs: - run: gem update - run: gem install bundler - run: bundle install - - run: bundle exec jekyll build - - uses: actions/checkout@v3 \ No newline at end of file + - run: bundle exec jekyll build \ No newline at end of file From d7e008e8c0e0ce8f48c27a1a0402239ae60de849 Mon Sep 17 00:00:00 2001 From: deathrow Date: Wed, 1 Feb 2023 15:58:33 -0500 Subject: [PATCH 113/169] Install ruby --- .gitea/workflows/build.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitea/workflows/build.yml b/.gitea/workflows/build.yml index 6a57415..6748c67 100644 --- a/.gitea/workflows/build.yml +++ b/.gitea/workflows/build.yml @@ -5,6 +5,7 @@ jobs: build: runs-on: ruby:3.1.3 steps: + - run: npm install ruby - run: gem update - run: gem install bundler - run: bundle install From d3a7240945c2394ffe965559d24119a17be525e9 Mon Sep 17 00:00:00 2001 From: deathrow Date: Wed, 1 Feb 2023 15:59:17 -0500 Subject: [PATCH 114/169] Install Gem --- .gitea/workflows/build.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitea/workflows/build.yml b/.gitea/workflows/build.yml index 6748c67..aeed10d 100644 --- a/.gitea/workflows/build.yml +++ b/.gitea/workflows/build.yml @@ -6,6 +6,7 @@ jobs: runs-on: ruby:3.1.3 steps: - run: npm install ruby + - run: npm install gem - run: gem update - run: gem install bundler - run: bundle install From 2f5c6fdad3ba66186c71950020c8bfaa02a62f2f Mon Sep 17 00:00:00 2001 From: deathrow Date: Thu, 2 Feb 2023 14:23:32 -0500 Subject: [PATCH 115/169] Started Tor-Usage section --- _items/Guide.md | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) diff --git a/_items/Guide.md b/_items/Guide.md index 9854d1d..b1e9af6 100644 --- a/_items/Guide.md +++ b/_items/Guide.md @@ -59,6 +59,8 @@ _Disclaimer: This is for education / research._ -\>> [Important Concepts](#important-concepts)
- -\> _[Tor](#tor)_
+ - -\> _[Tor Usage](#tor-usage)_
+ -\>> [Proper Mindset](#proper-mindset)
-\>> [Knowing Your Adversary](#knowing-your-adversary)
@@ -140,6 +142,53 @@ If you are using an "amnesic" setup such as Tails or anon-whonix on Qubes OS, yo
+#### Tor Usage + +Tor is extremely important for our setup. +Since Tor relies on other people using the Tor network, to disguise everybody so they +all seem alike, it's crucial we use Tor as much as possible. +*(You should not use Tor for anything personal or linkable-activity)* + +Using Tor as much as possible helps strengthen the network as whole. +On desktop, there is the [Tor Browser](https://torproject.org/download). +On IOS there is [Onion Browser](https://onionbrowser.com) +On Android there is [Tor Browser](https://torproject.org/download#android) along with [Orbot](https://github.com/guardianproject/orbot), an application which allows you to route your entire device over Tor, or proxy specific applications. +You can proxy applications such as an [F-Droid](https://f-droid.org) client such as [Neo-Store](https://github.com/NeoApplications/Neo-Store), allowing you to use [onionized repositories](https://gitlab.com/fdroid/mirror-monitor/-/raw/master/README.md) inside F-droid. +*(We will talk about F-droid and these various applications later)* +Other applications such as [Briar](https://briarproject.org). +Any application that has a `proxy` setting can be used. + +The Orbot ports: +SOCKS: `127.0.0.1:9050` +HTTP: `127.0.0.1:8118` + +
+ +On Orbot, you should configure the following settings: + +`Start Orbot on Boot`: Automatically start Orbot and connect Tor when your Android device boots + +`Allow Background Starts`: Let any app tell +Orbot to start Tor and related services + +`Isolate destination addresses`: Use a different circuit for each destination address + +` Prefer IPv6 connections`: Tells exits that IPv6 addresses are preferred + +`Connecting padding`: Always enables connection padding to defend against some forms of traffic analysis. Default: auto + +`Circuit padding`: Enable circuit padding to defend against some forms of traffic analysis + +
+ +If you wish to help contribute to the Tor network, you are able to enable the following: + +`Relaying`: Enable your device to be a non-exit relay + +`Run Snowflake Proxy`: Allow other Tor users to connect to Tor through your device. (This can't be used if you connect alongside bridges) + +
+ --- ## **Proper Mindset** From fd87b5e5547675190ed6dd20fd1482123bcb6fed Mon Sep 17 00:00:00 2001 From: deathrow Date: Thu, 2 Feb 2023 14:34:01 -0500 Subject: [PATCH 116/169] Tor Operating Systems section --- _items/Guide.md | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/_items/Guide.md b/_items/Guide.md index b1e9af6..badfbfa 100644 --- a/_items/Guide.md +++ b/_items/Guide.md @@ -60,6 +60,7 @@ _Disclaimer: This is for education / research._ - -\> _[Tor](#tor)_
- -\> _[Tor Usage](#tor-usage)_
+ - -\> _[Tor Operating Systems](#tor-operating-systems)_
-\>> [Proper Mindset](#proper-mindset)
@@ -187,8 +188,36 @@ If you wish to help contribute to the Tor network, you are able to enable the fo `Run Snowflake Proxy`: Allow other Tor users to connect to Tor through your device. (This can't be used if you connect alongside bridges) +
+#### Tor Operating Systems + +There are operating systems which are designed to work with Tor. +These systems will route all / some *(depends on the OS)* network traffic over the Tor network. + +There are ways to route normal OS's over Tor, but the ones listed here are specifically designed for Tor-only use. + +Some notable mentions: + +- [Tails](https://tails.boum.org) - an amnesic OS which runs off a USB device. +All traffic is routed over Tor, and can be used on any computer. +Tails allows for a totally ephemeral OS, in which as soon as you shutdown the computer or pull out the USB drive, the RAM will be wiped and all contents on your session will be deleted. *(Note: persistent mode will function differently)* + +- [Whonix](https://whonix.org) - a "workstation"-type OS routed over Tor. +You get the features of traditional Linux *(unlike amnesic Tails)* with it being routed over Tor. +Whonix can be run on a USB device, in KVM *(the suggested method)* or with [QubesOS](https://qubes-os.org) *(the most secure method, suggested to use Whonix if you are using Qubes)*. + +Running in a virtual environment (KVM, Qubes, VM), there are two Whonix instances running. +`Whonix-Gateway` and `Whonix-Workstation`. +`Whonix-Gateway` is a separate *VM* which connects you to Tor. +Its sole purpose is to connect to the Tor network. + +`Whonix-Workstation` will receive the Tor connection from `Whonix-Gateway`. +All of your applications will occur in `Whonix-Workstation`. + + +
--- ## **Proper Mindset** From b9d15247ec9ac927a3e6b64b0274025094ff5c4b Mon Sep 17 00:00:00 2001 From: deathrow Date: Thu, 2 Feb 2023 14:42:24 -0500 Subject: [PATCH 117/169] Contributing to Tor section --- _items/Guide.md | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/_items/Guide.md b/_items/Guide.md index badfbfa..6636f2c 100644 --- a/_items/Guide.md +++ b/_items/Guide.md @@ -61,7 +61,7 @@ _Disclaimer: This is for education / research._ - -\> _[Tor](#tor)_
- -\> _[Tor Usage](#tor-usage)_
- -\> _[Tor Operating Systems](#tor-operating-systems)_
- + - -\> _[Contributing to Tor](#contributing-to-tor)_
-\>> [Proper Mindset](#proper-mindset)
-\>> [Knowing Your Adversary](#knowing-your-adversary)
@@ -216,6 +216,25 @@ Its sole purpose is to connect to the Tor network. `Whonix-Workstation` will receive the Tor connection from `Whonix-Gateway`. All of your applications will occur in `Whonix-Workstation`. +
+ +#### Contributing to Tor + +Tor is an amazing project. +We need to do as much as possible to help protect the integrity of this network, and to help strengthen the network. + +This can be done by regularly using Tor. +Regularly using Tor helps create more traffic on the network. +Generally, more traffic will help to anonymize users. + +Consider running a [Snowflake](https://snowflake.torproject.org), this can run as a browser addon or inside of a [Docker container](https://hub.docker.com/r/thetorproject/snowflake-proxy), alternatively, you can enable Snowflake inside of Orbot. + +Running a Tor relay would be the best way to help contribute to the network. +Refer to [this guide](https://community.torproject.org/relay/) on how to setup a relay. +Any relay is important but, if you can, host an `exit-relay`. +These relays are extremely important to the network as they see the clearnet traffic. + +If you do not want to host a relay, you can look at the [SaveTor](https://savetor.network/) project, which is taking donations in return for hosting public Tor nodes.
--- From 5d31edeae564a9a4293c79e57a2a6530f1175c9c Mon Sep 17 00:00:00 2001 From: deathrow Date: Thu, 2 Feb 2023 15:05:07 -0500 Subject: [PATCH 118/169] Updates to the mobile section --- _items/Guide.md | 35 +++++++++++++++++++++++++++++++++-- 1 file changed, 33 insertions(+), 2 deletions(-) diff --git a/_items/Guide.md b/_items/Guide.md index 6636f2c..05fcd77 100644 --- a/_items/Guide.md +++ b/_items/Guide.md @@ -84,6 +84,10 @@ _Disclaimer: This is for education / research._ - -\>> _[Desktop](#desktop-1)_
-\>> [Mobile](#mobile)
+- -\>> _[GrapheneOS](#grapheneos)_
+- -\>> _[GrapheneOS Hardening](#grapheneos-hardening)_
+ + - -\>> _[External Applications](#external-applications)_
- -\>> _[Tor](#tor-1)_
@@ -1017,6 +1021,12 @@ The location of the device is known by the cell provider. To be truly "anonymous" with a mobile device, you must not have an installed SIM card. It is not advisable to try to be "anonymous" on a mobile device. +Android allows us to have more access over our device such as installing applications from third-party repositories and having access over `ADB` and changing permissions. + +
+ +### GrapheneOS + To be as private as possible, it is advisable to install [GrapheneOS](https://grapheneos.org). GrapheneOS is a hardened version of Android running on the *secure* Google Pixel. GrapheneOS will not have any sort of Google analytics. @@ -1028,11 +1038,25 @@ The cell service provider **WILL** know your location. For additional information, view the [GrapheneOS Section](./graphene). With GrapheneOS, you can utilize the profiles function to create separate identities with each profile. -We can use Orbot to route traffic over Tor on a per-profile basis. +We can use [Orbot](https://github.com/guardianproject/orbot) to route traffic over Tor on a per-profile basis. You could utilize an application such as [Shelter](https://gitea.angry.im/PeterCxy/Shelter) to provide a "work profile". *Note: UDP is not supported by Tor* +
+ +### GrapheneOS Hardening + +If you've opted to install [GrapheneOS](https://grapheneos.org) on a Google Pixel, we can take some extra measures to secure our setup. + +To fully prevent VPN leaks: + +`Settings` -> `Network & Internet` -> `VPN` -> `settings icon` -> Enable `Always-on VPN` , `Block connections without VPN` + +`Network & Internet` -> `Internet connectivity check` -> `Disabled` + +VPN leaks are now prevented +
@@ -1042,6 +1066,13 @@ Assuming you are using Android, APKs are used to install applications. These can be dangerous as installing a malicious application can be detrimental to your system. It would likely be best to install various APKs from a source you can reasonably trust, or you can build your own and verify the signatures. +Various repositories: + +- [Accrescent](https://accrescent.app) an Android app store built and focused on security. +Allows for app signing, signed repository metadata and automatic updates. + +- [F-Droid](https://f-droid.org) an Android app repository, allowing you to use custom repositories or create your own. +
### Tor @@ -1299,7 +1330,7 @@ Very useful if you're at an airport, hotel or other public area in which you nee
[PortaPow USB Data Blocker](https://www.amazon.com/PortaPow-3rd-Gen-Data-Blocker/dp/B00QRRZ2QM/) - The gold standard of USB data blocking. -This is a USB-A connector with a built-in "SmartChip" designed to increase charging speeds. +This is a USB-A connector withqubesqubes a built-in "SmartChip" designed to increase charging speeds.
From b0dfdf62345402ad7fe2cd83b31ee37f6625625e Mon Sep 17 00:00:00 2001 From: deathrow Date: Thu, 2 Feb 2023 15:06:57 -0500 Subject: [PATCH 119/169] Add trenchboot --- _items/Guide.md | 1 + 1 file changed, 1 insertion(+) diff --git a/_items/Guide.md b/_items/Guide.md index 05fcd77..3b19141 100644 --- a/_items/Guide.md +++ b/_items/Guide.md @@ -1419,6 +1419,7 @@ Various Firmware: - [Coreboot](https://www.coreboot.org/) - [Heads](https://github.com/osresearch/heads) - [Skulls](https://github.com/merge/skulls) +- [TrenchBoot](https://trenchboot.org)
From c3e8202ae8aab927da90e48e2a45e96b50680ba9 Mon Sep 17 00:00:00 2001 From: deathrow Date: Thu, 2 Feb 2023 15:09:59 -0500 Subject: [PATCH 120/169] v1.11 --- _changelog/changelog.md | 36 +++++++++++++++++++++++++++++++++++- index.md | 2 +- 2 files changed, 36 insertions(+), 2 deletions(-) diff --git a/_changelog/changelog.md b/_changelog/changelog.md index 96432da..1e83734 100644 --- a/_changelog/changelog.md +++ b/_changelog/changelog.md @@ -4,7 +4,41 @@ title: Changelog permalink: /changelog --- ---- + +# v1.11 + +- Added new links to [qubes](./qubes) + +- Updated Qubes references to `fedora-37` from `fedora-36` + +- Instructions for proxying `wget` on [qubes](./qubes) + +- Added Mullvad VPN guide for Qubes on [guide](./guide) + +- Updated [transparency](./transparency) + +- New links on [information](./information) + +- Created `dvm-zulucrypt` guide at [dvm-zulucrypt](./qubes/dvm-zulucrypt) + +- Created `sys-dns` guide at [kicksecure-sys-dns](./qubes/kicksecure-sys-dns) + +- Added new `tor-usage` section on [guide](./guide) + +- Added new `tor-operating-systems` section on [guide](./guide) + +- Added new `contributing-to-tor` section on [guide](./guide) + +- Added new `grapheneos-hardening` section on [guide](./guide) + +- Added app repository information on [guide](./guide) + +- Reformatted the [collections](./collections) section on [index](./) + +- Reformatted various text + +- Updated the JS and CSS + # v1.10 diff --git a/index.md b/index.md index db2190e..796ce6a 100644 --- a/index.md +++ b/index.md @@ -28,7 +28,7 @@ description: A fun happy place.

- +

From 12c1247733cf2c1fb778ccde47a0114ba381b50b Mon Sep 17 00:00:00 2001 From: deathrow Date: Thu, 2 Feb 2023 18:40:20 -0500 Subject: [PATCH 121/169] Update onion addresses --- _items/Services.md | 9 ++++++++- index.md | 2 +- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/_items/Services.md b/_items/Services.md index 841a5f1..315e4b9 100644 --- a/_items/Services.md +++ b/_items/Services.md @@ -143,8 +143,15 @@ and requires an email address for sign-up.
+### __OTS__ + +OneTimeSecret instance located at: + +`https://ots.anonymousland.org` + ## __Additional Services__ - [Dimension](https://dimension.anonymousland.org) -- [OTS](https://ots.anonymousland.org) +[OTS](https://ots.anonymousland.org) + - [Paste](https://paste.anonymousland.org) \ No newline at end of file diff --git a/index.md b/index.md index 796ce6a..b18829e 100644 --- a/index.md +++ b/index.md @@ -61,7 +61,7 @@ description: A fun happy place.

- +

From 5f856e8f0e2e4568c15e328fea9dfad5462e27c9 Mon Sep 17 00:00:00 2001 From: deathrow Date: Thu, 2 Feb 2023 19:11:46 -0500 Subject: [PATCH 122/169] Update OTS --- _items/Services.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/_items/Services.md b/_items/Services.md index 315e4b9..81a9a0d 100644 --- a/_items/Services.md +++ b/_items/Services.md @@ -145,13 +145,14 @@ and requires an email address for sign-up. ### __OTS__ +*ots is a one-time-secret sharing platform. The secret is encrypted with a symmetric 256bit AES encryption in the browser before being sent to the server. Afterwards an URL containing the ID of the secret and the password is generated. The password is never sent to the server so the server will never be able to decrypt the secrets it delivers with a reasonable effort. Also the secret is immediately deleted on the first read.* + OneTimeSecret instance located at: -`https://ots.anonymousland.org` +[OTS](https://ots.anonymousland.org) z ## __Additional Services__ - [Dimension](https://dimension.anonymousland.org) -[OTS](https://ots.anonymousland.org) - [Paste](https://paste.anonymousland.org) \ No newline at end of file From fad10f60d9d9fa9b2a702d51ec56a411c0510fb7 Mon Sep 17 00:00:00 2001 From: deathrow Date: Thu, 2 Feb 2023 19:13:18 -0500 Subject: [PATCH 123/169] Add docker-build.sh --- docker-build.sh | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 docker-build.sh diff --git a/docker-build.sh b/docker-build.sh new file mode 100644 index 0000000..870cdd2 --- /dev/null +++ b/docker-build.sh @@ -0,0 +1,7 @@ +#!/bin/bash + +docker run --rm \ + --volume="$PWD:/srv/jekyll:Z" \ + --volume="$PWD/vendor/bundle:/usr/local/bundle:Z" \ + -it jekyll/jekyll \ + jekyll build \ No newline at end of file From 34d8f8b50217e46694bcb78c623994b9b8af1fea Mon Sep 17 00:00:00 2001 From: deathrow Date: Thu, 2 Feb 2023 19:14:38 -0500 Subject: [PATCH 124/169] Update build instructions --- README.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 3de02f0..d5f045a 100644 --- a/README.md +++ b/README.md @@ -72,8 +72,12 @@ bundle install jekyll build ``` +Building with docker: + +Ensure `docker` is installed, then execute `docker-build.sh` + **Make sure to be at the root of the repository.** -The built site files ready to host will be located at the *_site* directory. +The built site files ready to host will be located at the `_site` directory. ## Hosting From c5f435327849cd91aabdbb8b1101779555c6b696 Mon Sep 17 00:00:00 2001 From: deathrow Date: Thu, 2 Feb 2023 20:09:15 -0500 Subject: [PATCH 125/169] Update mobile section --- _items/Guide.md | 26 ++++++++------------------ 1 file changed, 8 insertions(+), 18 deletions(-) diff --git a/_items/Guide.md b/_items/Guide.md index 7e22488..9456c4b 100644 --- a/_items/Guide.md +++ b/_items/Guide.md @@ -87,13 +87,10 @@ _Disclaimer: This is for education / research._ - -\>> _[GrapheneOS](#grapheneos)_
- -\>> _[GrapheneOS Hardening](#grapheneos-hardening)_
- - - -\>> _[External Applications](#external-applications)_
- -\>> _[Tor](#tor-1)_
-\>> [Physical](#physical)
- - -\>> _[Cars](#cars)_
-\>> [Secure Communications](#secure-communications)
@@ -1008,22 +1005,15 @@ There are a variety of tools to test your different browser configurations in a ## **Mobile** -Default un-modified mobile devices are **NOT** private. -Your mobile device likely contains the most sensitive information. Pictures, texts, location, and more. -We'll need to work heavily on reducing this fingerprint. -Anything you do on your phone is likely not private. -Apps have unnecessary permissions to contacts, messages, files, location and more. -This is an extremely terrifying thing, as any app could have the potential to view sensitive information. -Most apps require very minimal permissions to function. -The idea is minimalism. -"Calculator" does not need access to text messages, nor does it need to ping servers. - -Any device with a SIM card installed is not anonymous. -The location of the device is known by the cell provider. - -To be truly "anonymous" with a mobile device, you must not have an installed SIM card. -It is not advisable to try to be "anonymous" on a mobile device. +Mobile devices are extremely important. +They contain a plethora of information such as contacts, files, texts and more. +Mobile devices by-default are not private or even anonymous. +While there are ways to harden IOS / stock Android, this is not the place for it. +It is best to focus on minimalism for our mobile devices, for instance, the calculator app does not need location permissions. +We can reduce the amount of data being collected by eliminating apps we do not need and by removing invasive permissions. +It is important to note that any device with a SIM card is likely not anonymous, as the cellular towers can triangulate the location of the device by measuring its signal strength. +It is possible to create an anonymous mobile device by having no SIM card on it at all, and routing everything over Tor. Android allows us to have more access over our device such as installing applications from third-party repositories and having access over `ADB` and changing permissions.
From 03374f9a398b36e66157d66f81c2b21d3f65d413 Mon Sep 17 00:00:00 2001 From: deathrow Date: Thu, 2 Feb 2023 20:12:10 -0500 Subject: [PATCH 126/169] Vehicle Privacy Section --- _items/Guide.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/_items/Guide.md b/_items/Guide.md index 9456c4b..a7ba9a1 100644 --- a/_items/Guide.md +++ b/_items/Guide.md @@ -1200,6 +1200,14 @@ Often times, these devices to not receive proper security patches or even update
+#### Privacy + +With the rise in IOT devices, comes "smart" enabled technology. +This is often times being implemented into newer vehicles. +With more detailed information being logged by your vehicle, often times in the event of an accident of some sort, insurance companies will pull information from the vehicle such as speed and location. + +
+ #### Security Unfortunately, with the rapid adoption of technology, cars are vulnerable to various types of attacks. From cb0b69ed6380bb856730c1447958b6f67d9f6bbc Mon Sep 17 00:00:00 2001 From: deathrow Date: Thu, 2 Feb 2023 20:32:54 -0500 Subject: [PATCH 127/169] Paste onion service --- _items/Services.md | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/_items/Services.md b/_items/Services.md index 81a9a0d..35694d3 100644 --- a/_items/Services.md +++ b/_items/Services.md @@ -149,10 +149,15 @@ and requires an email address for sign-up. OneTimeSecret instance located at: -[OTS](https://ots.anonymousland.org) z +[OTS](https://ots.anonymousland.org) + +
## __Additional Services__ - [Dimension](https://dimension.anonymousland.org) -- [Paste](https://paste.anonymousland.org) \ No newline at end of file +- [Paste](https://paste.anonymousland.org) + + From 7122f8c37e9d4fc0dea09db54fcd0b584f4f85f5 Mon Sep 17 00:00:00 2001 From: deathrow Date: Thu, 2 Feb 2023 20:36:03 -0500 Subject: [PATCH 128/169] Tor exit node --- _items/Services.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/_items/Services.md b/_items/Services.md index 35694d3..c7dc619 100644 --- a/_items/Services.md +++ b/_items/Services.md @@ -83,6 +83,12 @@ Additional services are hosted with [Njalla](https://njal.la/about/).
+### __Tor__ + +We host a Tor [exit node](https://metrics.torproject.org/rs.html#details/800F6AB9506498F7FE80BFF204B9F33571297636) + +
+ ### __Matrix__ The Matrix homeserver is located at From 2373fa195290e700d2e9b8a534a6712662f495c5 Mon Sep 17 00:00:00 2001 From: NebulaOnion Date: Fri, 3 Feb 2023 21:35:44 +0000 Subject: [PATCH 129/169] Remove Gitea Actions (broken) --- .gitea/workflows/build.yml | 13 ------------- 1 file changed, 13 deletions(-) delete mode 100644 .gitea/workflows/build.yml diff --git a/.gitea/workflows/build.yml b/.gitea/workflows/build.yml deleted file mode 100644 index aeed10d..0000000 --- a/.gitea/workflows/build.yml +++ /dev/null @@ -1,13 +0,0 @@ -name: Jekyll build -on: [push] - -jobs: - build: - runs-on: ruby:3.1.3 - steps: - - run: npm install ruby - - run: npm install gem - - run: gem update - - run: gem install bundler - - run: bundle install - - run: bundle exec jekyll build \ No newline at end of file From 16f24fe23d34b977993d87a9f7768f8ea313b84f Mon Sep 17 00:00:00 2001 From: deathrow Date: Tue, 14 Feb 2023 11:04:10 -0500 Subject: [PATCH 130/169] Add Hackliberty --- _information/Information.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/_information/Information.md b/_information/Information.md index 28326af..48eb237 100644 --- a/_information/Information.md +++ b/_information/Information.md @@ -67,6 +67,8 @@ Articles and stories related to technology, security or privacy A place for related various communities & media +- [Hackliberty](https://hackliberty.org) + - [PrivacyGuides](https://privacyguides.org) - [Privsec](https://privsec.dev) From a98c721e80274435dfba343956bb0c424b939839 Mon Sep 17 00:00:00 2001 From: deathrow Date: Tue, 14 Feb 2023 11:04:24 -0500 Subject: [PATCH 131/169] Various wording --- _items/Guide.md | 1 + 1 file changed, 1 insertion(+) diff --git a/_items/Guide.md b/_items/Guide.md index a7ba9a1..868caa8 100644 --- a/_items/Guide.md +++ b/_items/Guide.md @@ -1204,6 +1204,7 @@ Often times, these devices to not receive proper security patches or even update With the rise in IOT devices, comes "smart" enabled technology. This is often times being implemented into newer vehicles. +Unfortunately, with the rapid adoption of technology, cars are vulnerable to various types of attacks. With more detailed information being logged by your vehicle, often times in the event of an accident of some sort, insurance companies will pull information from the vehicle such as speed and location.
From 5ae1b5e0d81dfa09006bb0ddea7af5a1760c3689 Mon Sep 17 00:00:00 2001 From: deathrow Date: Tue, 14 Feb 2023 11:11:53 -0500 Subject: [PATCH 132/169] Update Format --- index.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/index.md b/index.md index b18829e..e8f1534 100644 --- a/index.md +++ b/index.md @@ -97,15 +97,15 @@ Recent blog posts from our [blog](./blog) page Information from [collections](./collections) -[Information](./information) - A collection of links, articles and more. +- [Information](./information) - A collection of links, articles and more. -[GrapheneOS](./graphene) +- [GrapheneOS](./graphene) -[F-Droid](./f-droid) +- [F-Droid](./f-droid) -[Matrix](./matrix) +- [Matrix](./matrix) -[Qubes OS](./qubes) +- [Qubes OS](./qubes)

From 3dc04b1da885e26e3eb84e0b123f6b027c0da4a8 Mon Sep 17 00:00:00 2001 From: deathrow Date: Tue, 14 Feb 2023 11:24:00 -0500 Subject: [PATCH 133/169] Power Analysis Section --- _items/Guide.md | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/_items/Guide.md b/_items/Guide.md index 868caa8..042d5aa 100644 --- a/_items/Guide.md +++ b/_items/Guide.md @@ -98,6 +98,7 @@ _Disclaimer: This is for education / research._ -\>> [Plausible Deniability](#plausible-deniability)
-\>> [Tails](#tails)
-\>> [Anonymous Server](#anonymous-server)
+-\>> [Power Analysis](#power-analysis)
-\>> [TLDR](#tldr)
--- @@ -1551,6 +1552,23 @@ For the actual server, you can use [1984](https://1984.is/) or the listed option --- +### **Power Analysis** + +*"Power analysis is a form of side channel attack in which the attacker studies the power consumption of a cryptographic hardware device. These attacks rely on basic physical properties of the device: semiconductor devices are governed by the laws of physics, which dictate that changes in voltages within the device require very small movements of electric charges (currents). By measuring those currents, it is possible to learn a small amount of information about the data being manipulated."* + +
+ +This is an advanced attack which requires equipment and the technical skill to sucessfully operate such an attack. + +Several ways to prevent such an attack is a method known as [blinding](https://wikiless.org/wiki/Blinding_(cryptography)). + +To take certain precautions, it's adivsable to unplug and power off all devices not currently in-use. +It *may* be possible to bypass / increase the difficulty of this sort of attack by utilizing a system of UPS's. + +
+ +--- + ## TLDR Don't use the internet. From de606a8307a44e28864d20ddac1f097c27a04c2d Mon Sep 17 00:00:00 2001 From: deathrow Date: Mon, 20 Feb 2023 14:56:40 -0500 Subject: [PATCH 134/169] Fix spacing --- _items/Guide.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_items/Guide.md b/_items/Guide.md index 042d5aa..97289d6 100644 --- a/_items/Guide.md +++ b/_items/Guide.md @@ -179,7 +179,7 @@ Orbot to start Tor and related services `Isolate destination addresses`: Use a different circuit for each destination address -` Prefer IPv6 connections`: Tells exits that IPv6 addresses are preferred +`Prefer IPv6 connections`: Tells exits that IPv6 addresses are preferred `Connecting padding`: Always enables connection padding to defend against some forms of traffic analysis. Default: auto From 221c1aa546d6d628d9744953439145365fdcaf53 Mon Sep 17 00:00:00 2001 From: deathrow Date: Mon, 20 Feb 2023 17:04:30 -0500 Subject: [PATCH 135/169] Updated Spacing --- _information/Information.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_information/Information.md b/_information/Information.md index 48eb237..e09bbc9 100644 --- a/_information/Information.md +++ b/_information/Information.md @@ -67,7 +67,7 @@ Articles and stories related to technology, security or privacy A place for related various communities & media -- [Hackliberty](https://hackliberty.org) +- [Hackliberty](https://hackliberty.org) - [PrivacyGuides](https://privacyguides.org) From 2575fc32806798b11dc8f5e17de34fbd011633e2 Mon Sep 17 00:00:00 2001 From: deathrow Date: Mon, 20 Feb 2023 19:42:58 -0500 Subject: [PATCH 136/169] URGENT: DONATIONS NEEDED --- index.md | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/index.md b/index.md index e8f1534..fa6c78f 100644 --- a/index.md +++ b/index.md @@ -14,12 +14,25 @@ description: A fun happy place.
+
+
- +
+ ---
From 29f4e798660885715cd15390a544e9a8aa67b7b1 Mon Sep 17 00:00:00 2001 From: deathrow Date: Tue, 7 Mar 2023 22:55:55 -0500 Subject: [PATCH 137/169] Services Notice --- _items/Services.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/_items/Services.md b/_items/Services.md index c7dc619..b5caa01 100644 --- a/_items/Services.md +++ b/_items/Services.md @@ -11,6 +11,8 @@ permalink: /services ## __Services__ +**Due to recent incidents with our Njalla VPS, some of our services will be offline.** + These services are publicly available and free to use. Services are hosted in __Sweden__ and / or __Iceland__. From dd6e934421a7d43afdeb90655d814a99cd226e89 Mon Sep 17 00:00:00 2001 From: deathrow Date: Wed, 19 Apr 2023 20:11:06 -0400 Subject: [PATCH 138/169] URGENT UPDATE. --- _items/Services.md | 3 +++ index.md | 17 ++--------------- 2 files changed, 5 insertions(+), 15 deletions(-) diff --git a/_items/Services.md b/_items/Services.md index b5caa01..8b65e3b 100644 --- a/_items/Services.md +++ b/_items/Services.md @@ -11,6 +11,9 @@ permalink: /services ## __Services__ +**NOTICE:** Services offline without notice!!! +More information to come. + **Due to recent incidents with our Njalla VPS, some of our services will be offline.** These services are publicly available and free to use. diff --git a/index.md b/index.md index fa6c78f..83d8a71 100644 --- a/index.md +++ b/index.md @@ -21,11 +21,10 @@ description: A fun happy place. **URGENT**
- WE NEED DONATIONS TO HOST THE SERVERS
- YOU ARE ABLE TO DONATE WITH XMR: + SERVICES OFFLINE. + MORE INFORMATION TO COME.
- 47teQv7uWPv9EALRDv9je6ckC83UYJiisHpmhNKHyPPTXinPJNRtvW8PcpEoLxex9ierqWvD89v9mVyGf77uLtS3RnGUk8K
@@ -63,18 +62,6 @@ description: A fun happy place.
-
- - - - - - - -
-
- -

From e858c5651424d2d4b8f8701ac52280699df8841e Mon Sep 17 00:00:00 2001 From: deathrow Date: Wed, 19 Apr 2023 20:16:36 -0400 Subject: [PATCH 139/169] UPDATE NOTICE --- index.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/index.md b/index.md index 83d8a71..279dd6f 100644 --- a/index.md +++ b/index.md @@ -23,7 +23,11 @@ description: A fun happy place.

SERVICES OFFLINE. - MORE INFORMATION TO COME. + VPS PROVIDER DELETED ENTIRE VPS WITHOUT NOTICE. + + Our VPS provider- 1984 deleted the entire VPS without notice. + All data regarding **ALL** of our services is gone. + Only the Git mirrors remain.

From 28e6db92cafac36b4a04df27356ed74836aeac92 Mon Sep 17 00:00:00 2001 From: deathrow Date: Wed, 19 Apr 2023 20:17:09 -0400 Subject: [PATCH 140/169] NOTICE --- README.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/README.md b/README.md index d5f045a..d10379e 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,12 @@ # **[Anonymousland](https://anonymousland.org)** v1.10 + SERVICES OFFLINE. + VPS PROVIDER DELETED ENTIRE VPS WITHOUT NOTICE. + + Our VPS provider- 1984 deleted the entire VPS without notice. + All data regarding **ALL** of our services is gone. + Only the Git mirrors remain. + > Anonymity, Privacy, Security
From 13315a2c96852f1f97a6b6c89594ebef344fc9b8 Mon Sep 17 00:00:00 2001 From: deathrow Date: Wed, 19 Apr 2023 22:12:14 -0400 Subject: [PATCH 141/169] Add Note. --- README.md | 2 ++ index.md | 2 ++ 2 files changed, 4 insertions(+) diff --git a/README.md b/README.md index d10379e..72dfd15 100644 --- a/README.md +++ b/README.md @@ -7,6 +7,8 @@ All data regarding **ALL** of our services is gone. Only the Git mirrors remain. + > Hosing publicly usable services which provides benefits to anonymity are a great way to help the community. Unfortunately, these become difficult to manage & maintain. Many services including our Tor node and Matrix server were prone to being abused. To effectively combat abuse, this would require us to use privacy-invasive measures. Our hosting provider - 1984, the host we used for everything, decided to delete the entire VPS without notice. We received no emails or alerts on such actions. There could be a number of reasons for this - primarily being abuse. Our Tor exit node hosted on Njalla was shutdown after malicious user(s) conducted several brute-force attacks. Njalla has become ridiculously expensive to operate with, providing no real upgrades, and you are limited to a small amount of storage. While hosting services is great, it's even more difficult to do such with little to no donations, and a wide variety of malicious actors conducting abuse on such services. Services may be available in the future, but for now we best stick with this website, and this website only. + > Anonymity, Privacy, Security
diff --git a/index.md b/index.md index 279dd6f..b4422ea 100644 --- a/index.md +++ b/index.md @@ -28,6 +28,8 @@ description: A fun happy place. Our VPS provider- 1984 deleted the entire VPS without notice. All data regarding **ALL** of our services is gone. Only the Git mirrors remain. + + > Hosing publicly usable services which provides benefits to anonymity are a great way to help the community. Unfortunately, these become difficult to manage & maintain. Many services including our Tor node and Matrix server were prone to being abused. To effectively combat abuse, this would require us to use privacy-invasive measures. Our hosting provider - 1984, the host we used for everything, decided to delete the entire VPS without notice. We received no emails or alerts on such actions. There could be a number of reasons for this - primarily being abuse. Our Tor exit node hosted on Njalla was shutdown after malicious user(s) conducted several brute-force attacks. Njalla has become ridiculously expensive to operate with, providing no real upgrades, and you are limited to a small amount of storage. While hosting services is great, it's even more difficult to do such with little to no donations, and a wide variety of malicious actors conducting abuse on such services. Services may be available in the future, but for now we best stick with this website, and this website only.

From 6312cdd9e942392318b4468bc1265747f882d30f Mon Sep 17 00:00:00 2001 From: deathrow Date: Wed, 19 Apr 2023 22:12:55 -0400 Subject: [PATCH 142/169] Fix typographical error --- _items/Guide.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_items/Guide.md b/_items/Guide.md index 97289d6..5a0784a 100644 --- a/_items/Guide.md +++ b/_items/Guide.md @@ -1086,7 +1086,7 @@ If your device has the ability to create multiple profiles, you can create a "To Having a secure operating system is only 1 part that we need. We need to ensure that all of our communications stay secure. The most common method to this is using E2EE (End-to-end encryption). -anThis encrypts your messages locally on your device before sending them out. +This encrypts your messages locally on your device before sending them out. Let's take a look at some of the basic types of messengers. Centralized: Meaning there is a single server / point of failure. From f8effec6f94d9a493be15db99bdd6f8a1e3f686a Mon Sep 17 00:00:00 2001 From: deathrow Date: Wed, 19 Apr 2023 22:19:28 -0400 Subject: [PATCH 143/169] Move note --- index.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/index.md b/index.md index b4422ea..63dea10 100644 --- a/index.md +++ b/index.md @@ -29,13 +29,15 @@ description: A fun happy place. All data regarding **ALL** of our services is gone. Only the Git mirrors remain. - > Hosing publicly usable services which provides benefits to anonymity are a great way to help the community. Unfortunately, these become difficult to manage & maintain. Many services including our Tor node and Matrix server were prone to being abused. To effectively combat abuse, this would require us to use privacy-invasive measures. Our hosting provider - 1984, the host we used for everything, decided to delete the entire VPS without notice. We received no emails or alerts on such actions. There could be a number of reasons for this - primarily being abuse. Our Tor exit node hosted on Njalla was shutdown after malicious user(s) conducted several brute-force attacks. Njalla has become ridiculously expensive to operate with, providing no real upgrades, and you are limited to a small amount of storage. While hosting services is great, it's even more difficult to do such with little to no donations, and a wide variety of malicious actors conducting abuse on such services. Services may be available in the future, but for now we best stick with this website, and this website only.

+Hosing publicly usable services which provides benefits to anonymity are a great way to help the community. Unfortunately, these become difficult to manage & maintain. Many services including our Tor node and Matrix server were prone to being abused. To effectively combat abuse, this would require us to use privacy-invasive measures. Our hosting provider - 1984, the host we used for everything, decided to delete the entire VPS without notice. We received no emails or alerts on such actions. There could be a number of reasons for this - primarily being abuse. Our Tor exit node hosted on Njalla was shutdown after malicious user(s) conducted several brute-force attacks. Njalla has become ridiculously expensive to operate with, providing no real upgrades, and you are limited to a small amount of storage. While hosting services is great, it's even more difficult to do such with little to no donations, and a wide variety of malicious actors conducting abuse on such services. Services may be available in the future, but for now we best stick with this website, and this website only. + +
--- From b0c4050cef9b4cb9176060e05da7ffa71a29bdc1 Mon Sep 17 00:00:00 2001 From: deathrow Date: Mon, 24 Apr 2023 23:21:56 -0400 Subject: [PATCH 144/169] Mullvad Browser --- _items/Guide.md | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/_items/Guide.md b/_items/Guide.md index 5a0784a..097eb5a 100644 --- a/_items/Guide.md +++ b/_items/Guide.md @@ -223,6 +223,17 @@ All of your applications will occur in `Whonix-Workstation`.
+#### Tor Browser(s) + +There are several different ways to access Tor, primarily through a browser. +Browsers such as Brave offer this, but this should **NOT** be used, as it contains a unique fingerprint. + +[Mullvad](https://mullvad.net) has released the [Mullvad Browser](https://mullvad.net/en/browser), which focuses on minimizing the browser fingerprint and to minimize tracking. +It comes installed with UBlock Origin by-default. +With this browser being brand-new, it would be advisable to proceed with caution, but this browser does appear promising. + +
+ #### Contributing to Tor Tor is an amazing project. @@ -984,6 +995,9 @@ LibreWolf is a good alternative to utilizing Arkenfox on Qubes as we cannot reas #### General Notes +- For using Tor, you should only use the *official* Tor Browser. + - (You may want to look at [Mullvad Browser](https://mullvad.net/en/browser)) + - For an ideal browser setup focused around privacy, you should **NOT** store any browser history, cookies or cache. - HTTPS-Only should be activated on all browsers. - Disable saving of passwords, logins, credit cards, etc. as this is a security concern saving all of this in a web browser. From cc48257876bf0449c5074d44a35cba62ef4fdab8 Mon Sep 17 00:00:00 2001 From: deathrow Date: Mon, 24 Apr 2023 23:34:42 -0400 Subject: [PATCH 145/169] Update Table of Contents to include New Tor Browsers section --- _items/Guide.md | 1 + 1 file changed, 1 insertion(+) diff --git a/_items/Guide.md b/_items/Guide.md index 097eb5a..106c6a3 100644 --- a/_items/Guide.md +++ b/_items/Guide.md @@ -61,6 +61,7 @@ _Disclaimer: This is for education / research._ - -\> _[Tor](#tor)_
- -\> _[Tor Usage](#tor-usage)_
- -\> _[Tor Operating Systems](#tor-operating-systems)_
+ - -\> _[Tor Browser(s)](#tor-browsers)_
- -\> _[Contributing to Tor](#contributing-to-tor)_
-\>> [Proper Mindset](#proper-mindset)
From 5e6ca8819736410b17f02e1246d19d7800769106 Mon Sep 17 00:00:00 2001 From: deathrow Date: Mon, 24 Apr 2023 23:34:56 -0400 Subject: [PATCH 146/169] Tkey + Mullvad Browser --- _items/Tools.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/_items/Tools.md b/_items/Tools.md index a94ab66..a61396b 100644 --- a/_items/Tools.md +++ b/_items/Tools.md @@ -44,6 +44,7 @@ Multi-factor authentication is extremely important as it provides multiple layer - [Aegis](https://github.com/beemdevelopment/Aegis) (Mobile) - [NitroKey](https://www.nitrokey.com/) (Hardware) +- [Tkey](https://www.tillitis.se/) (Hardware) - [YubiKey](https://www.yubico.com/) (Hardware)
@@ -61,6 +62,7 @@ Your browser contains everything you do. It is the main entry point onto your system, along with the main privacy & security risk. - [Tor Browser](https://torproject.org) +- [Mullvad Browser](https://mullvad.net/en/browser) - [Librewolf](https://librewolf.net/) - [Vanadium](https://vanadium.app) (Mobile) - [Bromite](https://bromite.org) (Mobile) From c6546efdd85f916727e1de84c41ebe32b711f817 Mon Sep 17 00:00:00 2001 From: deathrow Date: Tue, 25 Apr 2023 10:51:45 -0400 Subject: [PATCH 147/169] Update email aliasing --- _items/Guide.md | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/_items/Guide.md b/_items/Guide.md index 106c6a3..ce3119c 100644 --- a/_items/Guide.md +++ b/_items/Guide.md @@ -447,6 +447,10 @@ Some aliasing services: - [AnonAddy](https://anonaddy.com/) +- [Duckduckgo Mail](https://duckduckgo.com/email/) + +- [Firefox Relay](https://relay.firefox.com/) + - [SimpleLogin](https://simplelogin.io/)
@@ -463,7 +467,7 @@ _What is the point of using a secure messenger, if your desktop is compromised b A massive amount of information is stored on our desktop, meaning that it contains a trove of our personal information. From search results to private documents. These items are **NOT** private on "traditional" operating systems. -The default desktop enviroment has a broken security model. +The default desktop environment has a broken security model. This is due to the fact of lacking permissions and proper isolation as done on mobile operating systems such as Android with their per-app permission toggles. Some services like Firejail, Bubblewrap, SELinux and Apparmor can fix a lot of these issues, but the fact is configuring these services for every application can be a daunting task and can lead to much user-error. @@ -683,7 +687,7 @@ deb tor+http://2s4yqjx5ul6okpp3f2gaunr2syex5jgbfpfvhxxbbjwnrsvbk5v3qbid.onion/de Fedora Templates: -Edit `/etc/yum.repos.d/qubes-r[version].repo`, comment out the clearnet `baseurl` and uncoment the onion `baseurl` +Edit `/etc/yum.repos.d/qubes-r[version].repo`, comment out the clearnet `baseurl` and uncomment the onion `baseurl`
@@ -1405,7 +1409,7 @@ Very useful if you're at an airport, hotel or other public area in which you nee
[PortaPow USB Data Blocker](https://www.amazon.com/PortaPow-3rd-Gen-Data-Blocker/dp/B00QRRZ2QM/) - The gold standard of USB data blocking. -This is a USB-A connector withqubesqubes a built-in "SmartChip" designed to increase charging speeds. +This is a USB-A connector with a built-in "SmartChip" designed to increase charging speeds.
From 8298264d9ae18adca8e8d9f121d2f667ce605d53 Mon Sep 17 00:00:00 2001 From: deathrow Date: Tue, 25 Apr 2023 10:55:00 -0400 Subject: [PATCH 148/169] Rename section --- _items/Guide.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/_items/Guide.md b/_items/Guide.md index ce3119c..9000124 100644 --- a/_items/Guide.md +++ b/_items/Guide.md @@ -94,7 +94,7 @@ _Disclaimer: This is for education / research._ -\>> [Physical](#physical)
- -\>> _[Cars](#cars)_
--\>> [Secure Communications](#secure-communications)
+-\>> [Secure Communications](#secureish-communications)
-\>> [Secure Hardware](#secure-hardware)
-\>> [Plausible Deniability](#plausible-deniability)
-\>> [Tails](#tails)
@@ -1100,7 +1100,7 @@ If your device has the ability to create multiple profiles, you can create a "To --- -## **Secure Communications** +## **Secure(ish) Communications** Having a secure operating system is only 1 part that we need. We need to ensure that all of our communications stay secure. From 33e8431d2da7f6047ff811126333f87f04d23810 Mon Sep 17 00:00:00 2001 From: deathrow Date: Tue, 25 Apr 2023 11:00:53 -0400 Subject: [PATCH 149/169] Minor formatting fixes and additional hardware key --- _items/Guide.md | 27 ++++++++++++++++++++------- 1 file changed, 20 insertions(+), 7 deletions(-) diff --git a/_items/Guide.md b/_items/Guide.md index 9000124..223aa8a 100644 --- a/_items/Guide.md +++ b/_items/Guide.md @@ -166,6 +166,7 @@ Other applications such as [Briar](https://briarproject.org). Any application that has a `proxy` setting can be used. The Orbot ports: + SOCKS: `127.0.0.1:9050` HTTP: `127.0.0.1:8118` @@ -272,11 +273,14 @@ Here is a general thought process... Let's eliminate user error. More on this subject will be later in this _guide._ -- Take over-procedures. Don't "skimp" out on encryption because you don't feel like entering in a password. Don't be lazy. +- Take over-procedures. +Don't "skimp" out on encryption because you don't feel like entering in a password. Don't be lazy. -- Do not compromise your security for a friend. If they are your friend, they will respect your new-founded love for being secure. +- Do not compromise your security for a friend. +If they are your friend, they will respect your new-founded love for being secure. -- Do not reveal more than you need to. MMJ doesn't need to know what you had for lunch. +- Do not reveal more than you need to. +MMJ doesn't need to know what you had for lunch. (things to keep in mind)\* Reveal as little about yourself and origin as possible. @@ -288,7 +292,14 @@ Here is a general thought process... - Do not be lazy. -People may think you are paranoid, but in a world like this it _is_ useful to be even a bit paranoid. This will allow you to see the true realities of the world. If you are always thinking of ways you can be compromised, you'd actually likely reduce your risk due to the fact of you constantly thinking about it, rather than just "not really thinking" about it, or rather as often as you should. Privacy and security are constantly evolving, which means that you will have to evolve with it. Are you ready for a data breach? What are you going to do if your compromised? Questions like these are what you need to ask yourself in order to be successful, you must always have a backup plan that you can execute. +- Do not have the misconception that just because it is open-source makes it secure. + +People may think you are paranoid, but in a world like this it _is_ useful to be even a bit paranoid. +This will allow you to see the true realities of the world. +If you are always thinking of ways you can be compromised, you'd actually likely reduce your risk due to the fact of you constantly thinking about it, rather than just "not really thinking" about it, or rather as often as you should. +Privacy and security are constantly evolving, which means that you will have to evolve with it. +Are you ready for a data breach? +What are you going to do if your compromised? Questions like these are what you need to ask yourself in order to be successful, you must always have a backup plan that you can execute.
@@ -310,7 +321,8 @@ You need to properly identify a _threat model_, an _adversary_ along with perfor The most important part of your setup. -Threat modeling can become an advanced topic, you will need to learn how to balance security, privacy and anonymity. You'll need to properly layout and identify what you are protecting yourself from. +Threat modeling can become an advanced topic, you will need to learn how to balance security, privacy and anonymity. +You'll need to properly layout and identify what you are protecting yourself from. Everyone has something to protect, whether it is passwords, location, internet activity, confidential documents, etc. The items you are trying to protect will be referred here as "assets". @@ -321,7 +333,7 @@ Ask yourself these basic questions: - What happens if I fail to protect this? These are some basic questions to ask yourself when creating your threat model. -Based upon your answers to these questions, will determine the route you must go. +Based upon your answers to these questions, will determine the route you must go. Example - You don't want your neighbor Joe to see you sleeping, so you close your blinds. Developing a threat model will require a lot of time and effort. @@ -1514,13 +1526,14 @@ Security Keys: - [NitroKey](https://www.nitrokey.com/) +- [Tkey](https://www.tillitis.se/) + - [YubiKey](https://www.yubico.com/) Crypto Wallets: - [Trezor](https://trezor.io/) -
--- From c13bc536ae51ac4205307a2cfab3cd4852fa0ba9 Mon Sep 17 00:00:00 2001 From: deathrow Date: Tue, 25 Apr 2023 11:01:21 -0400 Subject: [PATCH 150/169] Update index --- index.md | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/index.md b/index.md index 63dea10..6e39a79 100644 --- a/index.md +++ b/index.md @@ -26,7 +26,7 @@ description: A fun happy place. VPS PROVIDER DELETED ENTIRE VPS WITHOUT NOTICE. Our VPS provider- 1984 deleted the entire VPS without notice. - All data regarding **ALL** of our services is gone. + All data regarding **ALL** of our services are gone. Only the Git mirrors remain.
@@ -53,7 +53,7 @@ Hosing publicly usable services which provides benefits to anonymity are a great

- + @@ -65,7 +65,6 @@ Hosing publicly usable services which provides benefits to anonymity are a great

- From 2812a838b09f62ddc7187f845b01621f87619b88 Mon Sep 17 00:00:00 2001 From: deathrow Date: Tue, 25 Apr 2023 11:07:35 -0400 Subject: [PATCH 151/169] Add notice & move pages --- _items/Transparency.md | 72 ---------------------------------- _pages/Propagation.md | 7 +++- {_items => _pages}/Services.md | 22 +++++++++-- _pages/Transparency.md | 15 +++++++ index.md | 14 ++----- 5 files changed, 43 insertions(+), 87 deletions(-) delete mode 100644 _items/Transparency.md rename {_items => _pages}/Services.md (95%) create mode 100644 _pages/Transparency.md diff --git a/_items/Transparency.md b/_items/Transparency.md deleted file mode 100644 index 7366c8c..0000000 --- a/_items/Transparency.md +++ /dev/null @@ -1,72 +0,0 @@ ---- -layout: default1 -title: Transparency -permalink: /transparency ---- - -
-

“We do not merely destroy our enemies; we change them"

-
- -## Servers - -### 1984 - -6 Cores - -16GB RAM - -360 GB SSD - -
- -### Njalla - -6 Cores - -9GB RAM - -90 GB SSD - -
- ---- - -Total Cost: €139/month - -Public Services: - -- Matrix Clearnet -- Matrix Onion -- Element Clearnet -- Element Onion -- Element Onion -- Cinny Clearnet -- Cinny Onion -- Schild Clearnet -- Dimension Clearnet -- Gitea Clearnet -- Mastodon Clearnet -- Status Clearnet -- OTS Clearnet -- Paste Clearnet - -
- -#### Matrix Clearnet - -`media_store` : 31.6 GiB - -`DB` : 61GB - -**1984** - -Total Price: €49/month - -
- -#### Other Services - -**Njalla** - -Total Price: €90/month \ No newline at end of file diff --git a/_pages/Propagation.md b/_pages/Propagation.md index 89a5dea..3c619be 100644 --- a/_pages/Propagation.md +++ b/_pages/Propagation.md @@ -11,9 +11,14 @@ permalink: /propagate

-## Hosting Ideas +## Orbot + +
+ +## Hosting Ideas + - [Awesome Self Hosted](https://github.com/awesome-selfhosted/awesome-selfhosted) - [Mailcow](https://github.com/mailcow/mailcow-dockerized) diff --git a/_items/Services.md b/_pages/Services.md similarity index 95% rename from _items/Services.md rename to _pages/Services.md index 8b65e3b..4c72a5a 100644 --- a/_items/Services.md +++ b/_pages/Services.md @@ -9,10 +9,26 @@ permalink: /services “There are too many of us, he thought. There are billions of us and that's too many. Nobody knows anyone. Strangers come and violate you. Strangers come and cut your heart out. Strangers come and take your blood. Good God, who were those men? I never saw them before in my life!”
-## __Services__ +
+
-**NOTICE:** Services offline without notice!!! -More information to come. +
+ +
+ +
+
+ +## __Services__ **Due to recent incidents with our Njalla VPS, some of our services will be offline.** diff --git a/_pages/Transparency.md b/_pages/Transparency.md new file mode 100644 index 0000000..aefd8aa --- /dev/null +++ b/_pages/Transparency.md @@ -0,0 +1,15 @@ +--- +layout: default1 +title: Transparency +permalink: /transparency +--- + +
+

“We do not merely destroy our enemies; we change them"

+
+ +
+ +## Servers + +As of now, we are currently only running a web server. \ No newline at end of file diff --git a/index.md b/index.md index 6e39a79..cf01c44 100644 --- a/index.md +++ b/index.md @@ -37,11 +37,12 @@ description: A fun happy place. Hosing publicly usable services which provides benefits to anonymity are a great way to help the community. Unfortunately, these become difficult to manage & maintain. Many services including our Tor node and Matrix server were prone to being abused. To effectively combat abuse, this would require us to use privacy-invasive measures. Our hosting provider - 1984, the host we used for everything, decided to delete the entire VPS without notice. We received no emails or alerts on such actions. There could be a number of reasons for this - primarily being abuse. Our Tor exit node hosted on Njalla was shutdown after malicious user(s) conducted several brute-force attacks. Njalla has become ridiculously expensive to operate with, providing no real upgrades, and you are limited to a small amount of storage. While hosting services is great, it's even more difficult to do such with little to no donations, and a wide variety of malicious actors conducting abuse on such services. Services may be available in the future, but for now we best stick with this website, and this website only. -
--- +
+
@@ -62,12 +63,6 @@ Hosing publicly usable services which provides benefits to anonymity are a great -
-
- - - -

@@ -75,10 +70,7 @@ Hosing publicly usable services which provides benefits to anonymity are a great
-
-
- ---- +---
From 13dec9279c1d961d44c5e547373dedaf48ec8613 Mon Sep 17 00:00:00 2001 From: deathrow Date: Tue, 25 Apr 2023 11:10:00 -0400 Subject: [PATCH 152/169] Update naming --- _items/{Guide.md => 1-Guide.md} | 0 _items/{Tools.md => 2-Tools.md} | 0 2 files changed, 0 insertions(+), 0 deletions(-) rename _items/{Guide.md => 1-Guide.md} (100%) rename _items/{Tools.md => 2-Tools.md} (100%) diff --git a/_items/Guide.md b/_items/1-Guide.md similarity index 100% rename from _items/Guide.md rename to _items/1-Guide.md diff --git a/_items/Tools.md b/_items/2-Tools.md similarity index 100% rename from _items/Tools.md rename to _items/2-Tools.md From 8fb15c8d79de07b306f8e1d295a8fcd08b6d1e84 Mon Sep 17 00:00:00 2001 From: deathrow Date: Sun, 30 Apr 2023 22:42:28 -0400 Subject: [PATCH 153/169] Facial Recognition Link --- _items/1-Guide.md | 1 + 1 file changed, 1 insertion(+) diff --git a/_items/1-Guide.md b/_items/1-Guide.md index 223aa8a..0c9e404 100644 --- a/_items/1-Guide.md +++ b/_items/1-Guide.md @@ -1363,6 +1363,7 @@ You can be tracked physically with a wide array of technologies including but no - [Real Time Object Tracking System using Thermal Camera](https://medium.com/analytics-vidhya/real-time-object-tracking-system-using-thermal-camera-b4d077a20f16) - Facial recognition + - [The T-Shirt Invisibility Cloak](https://yewtu.be/watch?v=NyofHyRm5CQ) - [Wearable face projector](https://inv.bp.projectsegfau.lt/watch?v=_PoudPCevN0)
From eeb79c72b9f1abb84bd856b9dca77f210be34ec3 Mon Sep 17 00:00:00 2001 From: deathrow Date: Mon, 1 May 2023 14:53:32 -0400 Subject: [PATCH 154/169] Update Mullvad Browser information and update Qubes section --- _items/1-Guide.md | 111 ++++------------------------------------------ 1 file changed, 9 insertions(+), 102 deletions(-) diff --git a/_items/1-Guide.md b/_items/1-Guide.md index 0c9e404..583212b 100644 --- a/_items/1-Guide.md +++ b/_items/1-Guide.md @@ -230,10 +230,6 @@ All of your applications will occur in `Whonix-Workstation`. There are several different ways to access Tor, primarily through a browser. Browsers such as Brave offer this, but this should **NOT** be used, as it contains a unique fingerprint. -[Mullvad](https://mullvad.net) has released the [Mullvad Browser](https://mullvad.net/en/browser), which focuses on minimizing the browser fingerprint and to minimize tracking. -It comes installed with UBlock Origin by-default. -With this browser being brand-new, it would be advisable to proceed with caution, but this browser does appear promising. -
#### Contributing to Tor @@ -651,10 +647,10 @@ qubes-usb-proxy qubes-gpg-split ``` -Fedora-36: +Fedora-37: ``` -sudo qubes-dom0-update qubes-template-fedora-36 +sudo qubes-dom0-update qubes-template-fedora-37 ``` Debian-11: @@ -717,101 +713,10 @@ More thoughts:
-#### U2F-Proxy +#### Additional Setup -Using [u2f-proxy](https://qubes-os.org/doc/u2f-proxy) allows you to "compartmentalize the browser in one qube and the USB stack in another so that they are always kept separate from each other". - -The Qubes documentation shows the following for installation: - -dom0: - -``` -sudo qubes-dom0-update qubes-u2f-dom0 -``` - -Now, execute this command for all the Qubes you will utilize u2f. - -``` -qvm-service --enable QUBE_NAME qubes-u2f-proxy -``` - -To install on our templates, use the following: - -Fedora: - -``` -sudo dnf install qubes-u2f -``` - -Debian: - -``` -sudo apt install qubes-u2f -``` - -Finally, you must restart your Qubes. -It's suggested you read the [u2f-proxy](https://qubes-os.org/doc/u2f-proxy) documentation. - -
- -#### YubiKey - -Using a YubiKey can help mitigate certain attacks such as password "snooping", along with increasing security. -Read the [official documentation](https://qubes-os.org/doc/yubikey). - -Installation for template qubes: - -Fedora: - -``` -sudo dnf install ykpers yubikey-personalization-gui -``` - -Debian: - -``` -sudo apt-get install yubikey-personalization yubikey-personalization-gui -``` - -The GUI on for Debian can be run via the `yubikey-personalization-gui` command. - -- Choose `configuration slot2`. -- Select `HMAC-SHA1 mode: fixed 64 bit input`. -- Ensure to backup the `Secret Key (20 bytes hex)`. - -Now the following is required for dom0: - -``` -sudo qubes-dom0-update qubes-yubikey-dom0 -``` - -If we had changed the name of `sys-usb` or are using something other than that, we would need to edit ``/etc/qubes/yk-keys/yk-vm'' in dom0. - -- Paste the `Secret Key (20 bytes hex)` into `/etc/qubes/yk-keys/yk-secret-key.hex` in dom0. - -- Paste your hashed password into `/etc/qubes/yk-keys/yk-login-pass-hashed.hex` in dom0. - -To get your hashed password: - -``` -read -r password -``` - -``` -echo -n "$password" | openssl dgst -sha1 -``` - -Edit `/etc/pam.d/login` in dom0 and add: - -``` -auth include yubikey -``` - -Now, edit `/etc/pam.d/xscreensaver` to include: - -``` -auth include yubikey -``` +We are able to use [u2f-proxy](https://qubes-os.org/doc/u2f-proxy) along with [yubikey](https://qubes-os.org/doc/yubikey). +Review the official documentation.
@@ -1013,8 +918,6 @@ LibreWolf is a good alternative to utilizing Arkenfox on Qubes as we cannot reas #### General Notes - For using Tor, you should only use the *official* Tor Browser. - - (You may want to look at [Mullvad Browser](https://mullvad.net/en/browser)) - - For an ideal browser setup focused around privacy, you should **NOT** store any browser history, cookies or cache. - HTTPS-Only should be activated on all browsers. - Disable saving of passwords, logins, credit cards, etc. as this is a security concern saving all of this in a web browser. @@ -1031,6 +934,10 @@ There are a variety of tools to test your different browser configurations in a - [SSL Test](https://clienttest.ssllabs.com:8443/ssltest/viewMyClient.html) +[Mullvad](https://mullvad.net) has released the [Mullvad Browser](https://mullvad.net/en/browser), which focuses on minimizing the browser fingerprint and to minimize tracking. +It comes installed with UBlock Origin by-default. +With this browser being brand-new, it would be advisable to proceed with caution, but this browser does appear promising. +
--- From 263d19ac8c8c49b7ba559b29ccc5922c7b691fc4 Mon Sep 17 00:00:00 2001 From: deathrow Date: Mon, 1 May 2023 22:56:30 -0400 Subject: [PATCH 155/169] Update table of contents --- _items/1-Guide.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_items/1-Guide.md b/_items/1-Guide.md index 583212b..b03d6ed 100644 --- a/_items/1-Guide.md +++ b/_items/1-Guide.md @@ -77,7 +77,6 @@ _Disclaimer: This is for education / research._ - -\>> _[Installation](#installation)_
- -\>> _[Template Setup](#template-setup)_
- -\>> _[Onionizing Repositories](#onionizing-repositories)_
- - -\>> _[Qubes Basic Setup](#qube-basic-setup)_
-\>> [Creating our Aliases](#creating-our-aliases)
-\>> [Browsers](#browsers)
@@ -1044,6 +1043,7 @@ Here's a list of "great" messengers and services that you'll be able to use. Session has built-in onion-routing. - [Matrix](https://matrix.org) Matrix provides a federated platform, which allows for anyone to host their own server, meaning that it is resistent to censorship as the network does not rely on a single server. + *Note: Matrix has issues regarding metadata.* - [Briar](https://briarproject.org) A P2P messenger app which is designed for extreme threat models. Allows for Bluetooth communication along with routing communications over Tor network. From d78fafb6f20c554301dcea64fcb98471904782b9 Mon Sep 17 00:00:00 2001 From: deathrow Date: Wed, 3 May 2023 15:06:07 -0400 Subject: [PATCH 156/169] Small changes + Njalla notice --- _items/1-Guide.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/_items/1-Guide.md b/_items/1-Guide.md index b03d6ed..0b5b08b 100644 --- a/_items/1-Guide.md +++ b/_items/1-Guide.md @@ -86,14 +86,13 @@ _Disclaimer: This is for education / research._ -\>> [Mobile](#mobile)
- -\>> _[GrapheneOS](#grapheneos)_
- -\>> _[GrapheneOS Hardening](#grapheneos-hardening)_
- - -\>> _[External Applications](#external-applications)_
- -\>> _[Tor](#tor-1)_
-\>> [Physical](#physical)
- -\>> _[Cars](#cars)_
--\>> [Secure Communications](#secureish-communications)
+-\>> [Secure(ish) Communications](#secureish-communications)
-\>> [Secure Hardware](#secure-hardware)
-\>> [Plausible Deniability](#plausible-deniability)
-\>> [Tails](#tails)
@@ -1481,6 +1480,8 @@ These range from Amazon Azure, to Linode. For a server, it's advisable to pay with crypto-currency, such as Monero, Zcash or some other type of "privacy"-respecting currency. If you need a domain, it's advisable to use [Njalla](https://njal.la) as they do not collect any personal information, and they are well-known for their strong privacy. +While Njalla is a fantastic privacy-respecting service, their VPS plans are lacking. +For hosting a simple web server or private service, this should be sufficient, but the idea here is that we have separate providers for our VPS and our domain. For the actual server, you can use [1984](https://1984.is/) or the listed options below: @@ -1502,7 +1503,7 @@ This is an advanced attack which requires equipment and the technical skill to s Several ways to prevent such an attack is a method known as [blinding](https://wikiless.org/wiki/Blinding_(cryptography)). -To take certain precautions, it's adivsable to unplug and power off all devices not currently in-use. +To take certain precautions, it's advisable to unplug and power off all devices not currently in-use. It *may* be possible to bypass / increase the difficulty of this sort of attack by utilizing a system of UPS's.
From 52699a231b421869194f1a2e1f2daed210ff1844 Mon Sep 17 00:00:00 2001 From: deathrow Date: Sat, 13 May 2023 13:38:49 -0400 Subject: [PATCH 157/169] Started Tor with VPN section --- _items/1-Guide.md | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/_items/1-Guide.md b/_items/1-Guide.md index 0b5b08b..5038446 100644 --- a/_items/1-Guide.md +++ b/_items/1-Guide.md @@ -59,6 +59,7 @@ _Disclaimer: This is for education / research._ -\>> [Important Concepts](#important-concepts)
- -\> _[Tor](#tor)_
+ - -\> _[Tor with VPN](#tor-with-vpn)_
- -\> _[Tor Usage](#tor-usage)_
- -\> _[Tor Operating Systems](#tor-operating-systems)_
- -\> _[Tor Browser(s)](#tor-browsers)_
@@ -147,6 +148,21 @@ If you are using an "amnesic" setup such as Tails or anon-whonix on Qubes OS, yo
+#### Tor with VPN + +Using Tor with a VPN has both upsides and downfalls. +This setup will vary from person to person based upon usage, threat models and other factors only you can determine. + +Using a VPN with Tor has its downfalls. +One of the main reasons you should use a VPN with Tor is if you are concerned with your ISP watching for Tor traffic and you can *reasonably* trust your VPN provider. + +To prevent your ISP or another adversary from viewing Tor traffic, you are also able to use Tor bridges for such, but if it is not critical to use bridges, do not as there are other people who benefit from bridges. +Using a VPN will proxy your Tor traffic to another ISP, which hopefully is less malicious than an adversary you are hiding this traffic from. + +Using a VPN will increase latency, along with potentially messing with the guard node selection. + +
+ #### Tor Usage Tor is extremely important for our setup. From e9177105733428c403d2d5ee3d8f8a61fbd58a91 Mon Sep 17 00:00:00 2001 From: deathrow Date: Sun, 11 Jun 2023 17:13:12 -0400 Subject: [PATCH 158/169] Matrix well-known --- ._well-known/matrix/server | 1 + 1 file changed, 1 insertion(+) create mode 100644 ._well-known/matrix/server diff --git a/._well-known/matrix/server b/._well-known/matrix/server new file mode 100644 index 0000000..9451165 --- /dev/null +++ b/._well-known/matrix/server @@ -0,0 +1 @@ +{"m.server": "matrix.anonymousland.org:443"} \ No newline at end of file From fbaf62abe2ab3f1e111579c8d702ab499d21c45f Mon Sep 17 00:00:00 2001 From: deathrow Date: Sun, 11 Jun 2023 17:28:36 -0400 Subject: [PATCH 159/169] Fix file name --- _.well-known/matrix/server | 1 + 1 file changed, 1 insertion(+) create mode 100644 _.well-known/matrix/server diff --git a/_.well-known/matrix/server b/_.well-known/matrix/server new file mode 100644 index 0000000..9451165 --- /dev/null +++ b/_.well-known/matrix/server @@ -0,0 +1 @@ +{"m.server": "matrix.anonymousland.org:443"} \ No newline at end of file From b844e938ff6b0fb7c5ae1d0e96a4b653c19890bb Mon Sep 17 00:00:00 2001 From: deathrow Date: Sun, 11 Jun 2023 17:31:46 -0400 Subject: [PATCH 160/169] Remove --- ._well-known/matrix/server | 1 - 1 file changed, 1 deletion(-) delete mode 100644 ._well-known/matrix/server diff --git a/._well-known/matrix/server b/._well-known/matrix/server deleted file mode 100644 index 9451165..0000000 --- a/._well-known/matrix/server +++ /dev/null @@ -1 +0,0 @@ -{"m.server": "matrix.anonymousland.org:443"} \ No newline at end of file From 83096981583354ffe2df7c43607caf73d75eaa39 Mon Sep 17 00:00:00 2001 From: deathrow Date: Sun, 25 Jun 2023 12:16:41 -0400 Subject: [PATCH 161/169] Update Gemfile --- Gemfile | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Gemfile b/Gemfile index 434e888..813d0a6 100644 --- a/Gemfile +++ b/Gemfile @@ -7,4 +7,5 @@ gem "jekyll-seo-tag" gem "jekyll-sitemap" gem "kramdown-parser-gfm" gem "bundler" -gem "webrick" \ No newline at end of file +gem "webrick" +gem "github-pages" \ No newline at end of file From 03d83770bbcf2c21849fe0207d5f9d12f8ba738c Mon Sep 17 00:00:00 2001 From: deathrow Date: Sun, 25 Jun 2023 12:23:46 -0400 Subject: [PATCH 162/169] Config Comment for Pages --- _config.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_config.yml b/_config.yml index 832cb08..841505a 100644 --- a/_config.yml +++ b/_config.yml @@ -1,5 +1,5 @@ repository: anonymousland/anonymousland -theme: jekyll-theme-potato-hacker +#theme: jekyll-theme-potato-hacker theme_base: "dark" theme_switch: off title: Anonymousland From 692f1f33b0f134cfe3bd76140836edbea6f72a92 Mon Sep 17 00:00:00 2001 From: deathrow Date: Sun, 25 Jun 2023 12:42:57 -0400 Subject: [PATCH 163/169] Add Remote Theme to fix UI issues --- _config.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/_config.yml b/_config.yml index 841505a..ab7b82f 100644 --- a/_config.yml +++ b/_config.yml @@ -1,4 +1,5 @@ repository: anonymousland/anonymousland +remote_theme: luxedo/jekyll-theme-potato-hacker #theme: jekyll-theme-potato-hacker theme_base: "dark" theme_switch: off From 4bffa3820052f675cdd35eae31da236b7070dd30 Mon Sep 17 00:00:00 2001 From: deathrow Date: Sun, 25 Jun 2023 12:45:14 -0400 Subject: [PATCH 164/169] Add CNAME --- CNAME | 1 + 1 file changed, 1 insertion(+) create mode 100644 CNAME diff --git a/CNAME b/CNAME new file mode 100644 index 0000000..87d0322 --- /dev/null +++ b/CNAME @@ -0,0 +1 @@ +anonymousland.org \ No newline at end of file From 48ded5fba5999b02ffce1c204143ac06b8e885ef Mon Sep 17 00:00:00 2001 From: deathrow Date: Sun, 25 Jun 2023 12:47:00 -0400 Subject: [PATCH 165/169] GitHub Pages Notice --- README.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/README.md b/README.md index 72dfd15..d1ef9bd 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,13 @@ # **[Anonymousland](https://anonymousland.org)** v1.10 +## Notice: + +We are temporary using GitHub pages. +This provides an easier maintenance-free system of hosting. +This is beneficial as it does not require an additional VPS and configuration. +Until our infrastructure is restored, the site will remain on GitHub pages. + + SERVICES OFFLINE. VPS PROVIDER DELETED ENTIRE VPS WITHOUT NOTICE. From 17cd66a312b18a359c5370a3acad4a160d1a5a39 Mon Sep 17 00:00:00 2001 From: deathrow Date: Sun, 25 Jun 2023 12:48:24 -0400 Subject: [PATCH 166/169] Add the additional pages on Index --- index.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/index.md b/index.md index cf01c44..4653eb4 100644 --- a/index.md +++ b/index.md @@ -106,6 +106,10 @@ Information from [collections](./collections) - [Qubes OS](./qubes) + - [dvm-zulucrypt](./qubes/dvm-zulucrypt) + + - [kicksecure-sys-dns](./qubes/kicksecure-sys-dns) +

From 6f67379d6e2daa3bcd0baae9cef59bd91addead3 Mon Sep 17 00:00:00 2001 From: deathrow Date: Wed, 5 Jul 2023 15:19:35 -0400 Subject: [PATCH 167/169] Update Index --- index.md | 24 +----------------------- 1 file changed, 1 insertion(+), 23 deletions(-) diff --git a/index.md b/index.md index 4653eb4..e40008e 100644 --- a/index.md +++ b/index.md @@ -15,28 +15,6 @@ description: A fun happy place.
- -
- -
- -Hosing publicly usable services which provides benefits to anonymity are a great way to help the community. Unfortunately, these become difficult to manage & maintain. Many services including our Tor node and Matrix server were prone to being abused. To effectively combat abuse, this would require us to use privacy-invasive measures. Our hosting provider - 1984, the host we used for everything, decided to delete the entire VPS without notice. We received no emails or alerts on such actions. There could be a number of reasons for this - primarily being abuse. Our Tor exit node hosted on Njalla was shutdown after malicious user(s) conducted several brute-force attacks. Njalla has become ridiculously expensive to operate with, providing no real upgrades, and you are limited to a small amount of storage. While hosting services is great, it's even more difficult to do such with little to no donations, and a wide variety of malicious actors conducting abuse on such services. Services may be available in the future, but for now we best stick with this website, and this website only. -
--- @@ -106,7 +84,7 @@ Information from [collections](./collections) - [Qubes OS](./qubes) - - [dvm-zulucrypt](./qubes/dvm-zulucrypt) +git pu - [dvm-zulucrypt](./qubes/dvm-zulucrypt) - [kicksecure-sys-dns](./qubes/kicksecure-sys-dns) From d5eceac50331d3ed75bb7a1c25be0f9eb6eefb32 Mon Sep 17 00:00:00 2001 From: deathrow Date: Wed, 5 Jul 2023 23:57:20 -0400 Subject: [PATCH 168/169] Add Articles --- _items/1-Guide.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/_items/1-Guide.md b/_items/1-Guide.md index 5038446..a9e7a2b 100644 --- a/_items/1-Guide.md +++ b/_items/1-Guide.md @@ -1183,6 +1183,11 @@ Your walking style is a unique identifier, and can be used to track you. To change this, you are able to do a variety of things to change your normal behavior / pattern. The easiest method would be to put a coin inside your shoe. +- [Generating digital signatures with the gait of people](https://towardsdatascience.com/generating-digital-signatures-with-the-gait-of-people-3a66f0c44b7b) + + +- [From Learning Gait Signatures of Many Individuals to Reconstructing Gait Dynamics of One Single Individual](https://www.frontiersin.org/articles/10.3389/fams.2020.564935/full) +
### Heart Rate @@ -1195,6 +1200,8 @@ Doing such will raise / lower your heart rate based upon what you do. To hide your heart rate from such technology, it is advisable to use tinfoil to block the signal. This can be done via foil clothing or line a jacket with the proper tinfoil material. +- [Heart rate prediction from facial video with masks using eye location and corrected by convolutional neural networks](https://www.ncbi.nlm.nih.gov/pmc/articles/PMC8906658/) +
### Fingerprints From 9f031e2fa4fefe9070d76c8a8c63d6d0e7e464ba Mon Sep 17 00:00:00 2001 From: deathrow Date: Thu, 6 Jul 2023 14:09:18 -0400 Subject: [PATCH 169/169] Fix index --- index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/index.md b/index.md index e40008e..cf9ccf7 100644 --- a/index.md +++ b/index.md @@ -84,7 +84,7 @@ Information from [collections](./collections) - [Qubes OS](./qubes) -git pu - [dvm-zulucrypt](./qubes/dvm-zulucrypt) + - [dvm-zulucrypt](./qubes/dvm-zulucrypt) - [kicksecure-sys-dns](./qubes/kicksecure-sys-dns)