diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index d28b70c3..ab24b817 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -3,6 +3,6 @@ # precedence. # Default owners for everything: -* @Asamartino +* @wirednkod # See https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/about-code-owners \ No newline at end of file diff --git a/assets/Gov_PBA6_Lucerne_2025.pdf b/assets/Gov_PBA6_Lucerne_2025.pdf new file mode 100644 index 00000000..d03c0dee Binary files /dev/null and b/assets/Gov_PBA6_Lucerne_2025.pdf differ diff --git a/assets/Slides_Singapore.odp b/assets/Slides_Singapore.odp new file mode 100644 index 00000000..e605d450 Binary files /dev/null and b/assets/Slides_Singapore.odp differ diff --git a/assets/Slides_Singapore.pdf b/assets/Slides_Singapore.pdf new file mode 100644 index 00000000..2c97ce35 Binary files /dev/null and b/assets/Slides_Singapore.pdf differ diff --git a/assets/Slides_Singapore.pptx b/assets/Slides_Singapore.pptx new file mode 100644 index 00000000..308fdf7b Binary files /dev/null and b/assets/Slides_Singapore.pptx differ diff --git a/assets/advanced_blockchain-dkg.pdf b/assets/advanced_blockchain-dkg.pdf new file mode 100644 index 00000000..428efd5b Binary files /dev/null and b/assets/advanced_blockchain-dkg.pdf differ diff --git a/assets/favicon.png b/assets/favicon.png new file mode 100644 index 00000000..fe659d7f Binary files /dev/null and b/assets/favicon.png differ diff --git a/assets/favicon.svg b/assets/favicon.svg new file mode 100644 index 00000000..c2292edf --- /dev/null +++ b/assets/favicon.svg @@ -0,0 +1,18 @@ + + + + + + + + + + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/AI & Computing.svg b/assets/icons/polkadot/2color/AI & Computing.svg new file mode 100644 index 00000000..4d7fb0fc --- /dev/null +++ b/assets/icons/polkadot/2color/AI & Computing.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Account Portability.svg b/assets/icons/polkadot/2color/Account Portability.svg new file mode 100644 index 00000000..825555af --- /dev/null +++ b/assets/icons/polkadot/2color/Account Portability.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Action Left.svg b/assets/icons/polkadot/2color/Action Left.svg new file mode 100644 index 00000000..e4c35357 --- /dev/null +++ b/assets/icons/polkadot/2color/Action Left.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Action Right.svg b/assets/icons/polkadot/2color/Action Right.svg new file mode 100644 index 00000000..b1c44df6 --- /dev/null +++ b/assets/icons/polkadot/2color/Action Right.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Add key pair.svg b/assets/icons/polkadot/2color/Add key pair.svg new file mode 100644 index 00000000..a5af3978 --- /dev/null +++ b/assets/icons/polkadot/2color/Add key pair.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Add user.svg b/assets/icons/polkadot/2color/Add user.svg new file mode 100644 index 00000000..129511f3 --- /dev/null +++ b/assets/icons/polkadot/2color/Add user.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Add.svg b/assets/icons/polkadot/2color/Add.svg new file mode 100644 index 00000000..2a8fb943 --- /dev/null +++ b/assets/icons/polkadot/2color/Add.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Address book.svg b/assets/icons/polkadot/2color/Address book.svg new file mode 100644 index 00000000..e239faa0 --- /dev/null +++ b/assets/icons/polkadot/2color/Address book.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Airplane Mode.svg b/assets/icons/polkadot/2color/Airplane Mode.svg new file mode 100644 index 00000000..acdee6d1 --- /dev/null +++ b/assets/icons/polkadot/2color/Airplane Mode.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Alert.svg b/assets/icons/polkadot/2color/Alert.svg new file mode 100644 index 00000000..8c5746c2 --- /dev/null +++ b/assets/icons/polkadot/2color/Alert.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Algorithm.svg b/assets/icons/polkadot/2color/Algorithm.svg new file mode 100644 index 00000000..c239d657 --- /dev/null +++ b/assets/icons/polkadot/2color/Algorithm.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Alice.svg b/assets/icons/polkadot/2color/Alice.svg new file mode 100644 index 00000000..48517b9f --- /dev/null +++ b/assets/icons/polkadot/2color/Alice.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Ambassadors.svg b/assets/icons/polkadot/2color/Ambassadors.svg new file mode 100644 index 00000000..3b2c92a1 --- /dev/null +++ b/assets/icons/polkadot/2color/Ambassadors.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Announcement.svg b/assets/icons/polkadot/2color/Announcement.svg new file mode 100644 index 00000000..1aae71f8 --- /dev/null +++ b/assets/icons/polkadot/2color/Announcement.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Anonymous Proxy.svg b/assets/icons/polkadot/2color/Anonymous Proxy.svg new file mode 100644 index 00000000..b7ee05c5 --- /dev/null +++ b/assets/icons/polkadot/2color/Anonymous Proxy.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Arbitrary Message.svg b/assets/icons/polkadot/2color/Arbitrary Message.svg new file mode 100644 index 00000000..cf272e89 --- /dev/null +++ b/assets/icons/polkadot/2color/Arbitrary Message.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Archive Node.svg b/assets/icons/polkadot/2color/Archive Node.svg new file mode 100644 index 00000000..3ec27008 --- /dev/null +++ b/assets/icons/polkadot/2color/Archive Node.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Arrow Back.svg b/assets/icons/polkadot/2color/Arrow Back.svg new file mode 100644 index 00000000..3f71da8c --- /dev/null +++ b/assets/icons/polkadot/2color/Arrow Back.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Arrow Down.svg b/assets/icons/polkadot/2color/Arrow Down.svg new file mode 100644 index 00000000..ed10adad --- /dev/null +++ b/assets/icons/polkadot/2color/Arrow Down.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Arrow Left.svg b/assets/icons/polkadot/2color/Arrow Left.svg new file mode 100644 index 00000000..0f51626b --- /dev/null +++ b/assets/icons/polkadot/2color/Arrow Left.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Arrow Right.svg b/assets/icons/polkadot/2color/Arrow Right.svg new file mode 100644 index 00000000..54bec482 --- /dev/null +++ b/assets/icons/polkadot/2color/Arrow Right.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Arrow Up.svg b/assets/icons/polkadot/2color/Arrow Up.svg new file mode 100644 index 00000000..99d1d976 --- /dev/null +++ b/assets/icons/polkadot/2color/Arrow Up.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Article.svg b/assets/icons/polkadot/2color/Article.svg new file mode 100644 index 00000000..4502fb6c --- /dev/null +++ b/assets/icons/polkadot/2color/Article.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Attack.svg b/assets/icons/polkadot/2color/Attack.svg new file mode 100644 index 00000000..8fadd48a --- /dev/null +++ b/assets/icons/polkadot/2color/Attack.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Auctions.svg b/assets/icons/polkadot/2color/Auctions.svg new file mode 100644 index 00000000..276b1e07 --- /dev/null +++ b/assets/icons/polkadot/2color/Auctions.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Authority.svg b/assets/icons/polkadot/2color/Authority.svg new file mode 100644 index 00000000..1cd1f644 --- /dev/null +++ b/assets/icons/polkadot/2color/Authority.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Back Up.svg b/assets/icons/polkadot/2color/Back Up.svg new file mode 100644 index 00000000..10ddea8c --- /dev/null +++ b/assets/icons/polkadot/2color/Back Up.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Balance.svg b/assets/icons/polkadot/2color/Balance.svg new file mode 100644 index 00000000..bf9cdc3f --- /dev/null +++ b/assets/icons/polkadot/2color/Balance.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Batch Transaction.svg b/assets/icons/polkadot/2color/Batch Transaction.svg new file mode 100644 index 00000000..6e63f7fd --- /dev/null +++ b/assets/icons/polkadot/2color/Batch Transaction.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Bid.svg b/assets/icons/polkadot/2color/Bid.svg new file mode 100644 index 00000000..6bc18e8e --- /dev/null +++ b/assets/icons/polkadot/2color/Bid.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Block Explorer.svg b/assets/icons/polkadot/2color/Block Explorer.svg new file mode 100644 index 00000000..945bdfdd --- /dev/null +++ b/assets/icons/polkadot/2color/Block Explorer.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Block Number.svg b/assets/icons/polkadot/2color/Block Number.svg new file mode 100644 index 00000000..3b9e269e --- /dev/null +++ b/assets/icons/polkadot/2color/Block Number.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Block Search.svg b/assets/icons/polkadot/2color/Block Search.svg new file mode 100644 index 00000000..ddb2f4f1 --- /dev/null +++ b/assets/icons/polkadot/2color/Block Search.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Block.svg b/assets/icons/polkadot/2color/Block.svg new file mode 100644 index 00000000..f6bf68a7 --- /dev/null +++ b/assets/icons/polkadot/2color/Block.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Blockchain.svg b/assets/icons/polkadot/2color/Blockchain.svg new file mode 100644 index 00000000..e438e25b --- /dev/null +++ b/assets/icons/polkadot/2color/Blockchain.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Blog Post.svg b/assets/icons/polkadot/2color/Blog Post.svg new file mode 100644 index 00000000..f7d347a6 --- /dev/null +++ b/assets/icons/polkadot/2color/Blog Post.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Bob.svg b/assets/icons/polkadot/2color/Bob.svg new file mode 100644 index 00000000..5c31936f --- /dev/null +++ b/assets/icons/polkadot/2color/Bob.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Bond.svg b/assets/icons/polkadot/2color/Bond.svg new file mode 100644 index 00000000..1541ff2a --- /dev/null +++ b/assets/icons/polkadot/2color/Bond.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Bonded Time.svg b/assets/icons/polkadot/2color/Bonded Time.svg new file mode 100644 index 00000000..153074c9 --- /dev/null +++ b/assets/icons/polkadot/2color/Bonded Time.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Boot Node.svg b/assets/icons/polkadot/2color/Boot Node.svg new file mode 100644 index 00000000..0ec4980b --- /dev/null +++ b/assets/icons/polkadot/2color/Boot Node.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Bridge.svg b/assets/icons/polkadot/2color/Bridge.svg new file mode 100644 index 00000000..ea2f4c52 --- /dev/null +++ b/assets/icons/polkadot/2color/Bridge.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Bridges.svg b/assets/icons/polkadot/2color/Bridges.svg new file mode 100644 index 00000000..1697c805 --- /dev/null +++ b/assets/icons/polkadot/2color/Bridges.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Build.svg b/assets/icons/polkadot/2color/Build.svg new file mode 100644 index 00000000..7ea84bdb --- /dev/null +++ b/assets/icons/polkadot/2color/Build.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Builders _ Developers.svg b/assets/icons/polkadot/2color/Builders _ Developers.svg new file mode 100644 index 00000000..4883df53 --- /dev/null +++ b/assets/icons/polkadot/2color/Builders _ Developers.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Built-in Security.svg b/assets/icons/polkadot/2color/Built-in Security.svg new file mode 100644 index 00000000..70144ddc --- /dev/null +++ b/assets/icons/polkadot/2color/Built-in Security.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Burn.svg b/assets/icons/polkadot/2color/Burn.svg new file mode 100644 index 00000000..e416df07 --- /dev/null +++ b/assets/icons/polkadot/2color/Burn.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/C++.svg b/assets/icons/polkadot/2color/C++.svg new file mode 100644 index 00000000..80168955 --- /dev/null +++ b/assets/icons/polkadot/2color/C++.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Calendar.svg b/assets/icons/polkadot/2color/Calendar.svg new file mode 100644 index 00000000..36cd599e --- /dev/null +++ b/assets/icons/polkadot/2color/Calendar.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Career.svg b/assets/icons/polkadot/2color/Career.svg new file mode 100644 index 00000000..93bd6dba --- /dev/null +++ b/assets/icons/polkadot/2color/Career.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Certificate.svg b/assets/icons/polkadot/2color/Certificate.svg new file mode 100644 index 00000000..887ae781 --- /dev/null +++ b/assets/icons/polkadot/2color/Certificate.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Cex.svg b/assets/icons/polkadot/2color/Cex.svg new file mode 100644 index 00000000..68bf59d0 --- /dev/null +++ b/assets/icons/polkadot/2color/Cex.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Chain Spec.svg b/assets/icons/polkadot/2color/Chain Spec.svg new file mode 100644 index 00000000..27c00193 --- /dev/null +++ b/assets/icons/polkadot/2color/Chain Spec.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Check.svg b/assets/icons/polkadot/2color/Check.svg new file mode 100644 index 00000000..941f1e29 --- /dev/null +++ b/assets/icons/polkadot/2color/Check.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Checked.svg b/assets/icons/polkadot/2color/Checked.svg new file mode 100644 index 00000000..0f0990b5 --- /dev/null +++ b/assets/icons/polkadot/2color/Checked.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Chevron Down.svg b/assets/icons/polkadot/2color/Chevron Down.svg new file mode 100644 index 00000000..a3d2614a --- /dev/null +++ b/assets/icons/polkadot/2color/Chevron Down.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Chevron Up.svg b/assets/icons/polkadot/2color/Chevron Up.svg new file mode 100644 index 00000000..9b937886 --- /dev/null +++ b/assets/icons/polkadot/2color/Chevron Up.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Claim.svg b/assets/icons/polkadot/2color/Claim.svg new file mode 100644 index 00000000..8bd48df8 --- /dev/null +++ b/assets/icons/polkadot/2color/Claim.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Close.svg b/assets/icons/polkadot/2color/Close.svg new file mode 100644 index 00000000..6e2bbd2b --- /dev/null +++ b/assets/icons/polkadot/2color/Close.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Cloud.svg b/assets/icons/polkadot/2color/Cloud.svg new file mode 100644 index 00000000..20be5eb2 --- /dev/null +++ b/assets/icons/polkadot/2color/Cloud.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Code.svg b/assets/icons/polkadot/2color/Code.svg new file mode 100644 index 00000000..1f7de3be --- /dev/null +++ b/assets/icons/polkadot/2color/Code.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Collapse.svg b/assets/icons/polkadot/2color/Collapse.svg new file mode 100644 index 00000000..111cfe9d --- /dev/null +++ b/assets/icons/polkadot/2color/Collapse.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Collators.svg b/assets/icons/polkadot/2color/Collators.svg new file mode 100644 index 00000000..28968584 --- /dev/null +++ b/assets/icons/polkadot/2color/Collators.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Collective.svg b/assets/icons/polkadot/2color/Collective.svg new file mode 100644 index 00000000..0813667b --- /dev/null +++ b/assets/icons/polkadot/2color/Collective.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Communications And Media.svg b/assets/icons/polkadot/2color/Communications And Media.svg new file mode 100644 index 00000000..bcd6c445 --- /dev/null +++ b/assets/icons/polkadot/2color/Communications And Media.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Community Events And Outreach.svg b/assets/icons/polkadot/2color/Community Events And Outreach.svg new file mode 100644 index 00000000..6b259e01 --- /dev/null +++ b/assets/icons/polkadot/2color/Community Events And Outreach.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Community.svg b/assets/icons/polkadot/2color/Community.svg new file mode 100644 index 00000000..6b0b2abc --- /dev/null +++ b/assets/icons/polkadot/2color/Community.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Companion Account (in Bridge context).svg b/assets/icons/polkadot/2color/Companion Account (in Bridge context).svg new file mode 100644 index 00000000..c7313c60 --- /dev/null +++ b/assets/icons/polkadot/2color/Companion Account (in Bridge context).svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Connect Wallet_Address.svg b/assets/icons/polkadot/2color/Connect Wallet_Address.svg new file mode 100644 index 00000000..3352f8fe --- /dev/null +++ b/assets/icons/polkadot/2color/Connect Wallet_Address.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Connected.svg b/assets/icons/polkadot/2color/Connected.svg new file mode 100644 index 00000000..c60ba3e0 --- /dev/null +++ b/assets/icons/polkadot/2color/Connected.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Connection Via Light Node.svg b/assets/icons/polkadot/2color/Connection Via Light Node.svg new file mode 100644 index 00000000..1305ed6d --- /dev/null +++ b/assets/icons/polkadot/2color/Connection Via Light Node.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Connection Via Remote Node.svg b/assets/icons/polkadot/2color/Connection Via Remote Node.svg new file mode 100644 index 00000000..d0b4a563 --- /dev/null +++ b/assets/icons/polkadot/2color/Connection Via Remote Node.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Consensus.svg b/assets/icons/polkadot/2color/Consensus.svg new file mode 100644 index 00000000..d79dd863 --- /dev/null +++ b/assets/icons/polkadot/2color/Consensus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Contract.svg b/assets/icons/polkadot/2color/Contract.svg new file mode 100644 index 00000000..77b97bda --- /dev/null +++ b/assets/icons/polkadot/2color/Contract.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Cooling Period.svg b/assets/icons/polkadot/2color/Cooling Period.svg new file mode 100644 index 00000000..20c9533d --- /dev/null +++ b/assets/icons/polkadot/2color/Cooling Period.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Copy _ Paste.svg b/assets/icons/polkadot/2color/Copy _ Paste.svg new file mode 100644 index 00000000..85f89d9b --- /dev/null +++ b/assets/icons/polkadot/2color/Copy _ Paste.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Costly To Maintain.svg b/assets/icons/polkadot/2color/Costly To Maintain.svg new file mode 100644 index 00000000..7e919f5e --- /dev/null +++ b/assets/icons/polkadot/2color/Costly To Maintain.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Council.svg b/assets/icons/polkadot/2color/Council.svg new file mode 100644 index 00000000..f1017f94 --- /dev/null +++ b/assets/icons/polkadot/2color/Council.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Countdown.svg b/assets/icons/polkadot/2color/Countdown.svg new file mode 100644 index 00000000..c27809a8 --- /dev/null +++ b/assets/icons/polkadot/2color/Countdown.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Create New From Source.svg b/assets/icons/polkadot/2color/Create New From Source.svg new file mode 100644 index 00000000..afd066f1 --- /dev/null +++ b/assets/icons/polkadot/2color/Create New From Source.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Cross-Chain Application.svg b/assets/icons/polkadot/2color/Cross-Chain Application.svg new file mode 100644 index 00000000..88a9ca98 --- /dev/null +++ b/assets/icons/polkadot/2color/Cross-Chain Application.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Cross-Chain Certification.svg b/assets/icons/polkadot/2color/Cross-Chain Certification.svg new file mode 100644 index 00000000..af99ec4d --- /dev/null +++ b/assets/icons/polkadot/2color/Cross-Chain Certification.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Cross-Chain Transfers.svg b/assets/icons/polkadot/2color/Cross-Chain Transfers.svg new file mode 100644 index 00000000..188c1554 --- /dev/null +++ b/assets/icons/polkadot/2color/Cross-Chain Transfers.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Cross-Chain.svg b/assets/icons/polkadot/2color/Cross-Chain.svg new file mode 100644 index 00000000..618bea72 --- /dev/null +++ b/assets/icons/polkadot/2color/Cross-Chain.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Crowdloans.svg b/assets/icons/polkadot/2color/Crowdloans.svg new file mode 100644 index 00000000..39ca7d44 --- /dev/null +++ b/assets/icons/polkadot/2color/Crowdloans.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Cryptocurrency.svg b/assets/icons/polkadot/2color/Cryptocurrency.svg new file mode 100644 index 00000000..76d93b2d --- /dev/null +++ b/assets/icons/polkadot/2color/Cryptocurrency.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Customisation.svg b/assets/icons/polkadot/2color/Customisation.svg new file mode 100644 index 00000000..a69d9fff --- /dev/null +++ b/assets/icons/polkadot/2color/Customisation.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/DAOs.svg b/assets/icons/polkadot/2color/DAOs.svg new file mode 100644 index 00000000..2870c85d --- /dev/null +++ b/assets/icons/polkadot/2color/DAOs.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/DEX.svg b/assets/icons/polkadot/2color/DEX.svg new file mode 100644 index 00000000..707d885f --- /dev/null +++ b/assets/icons/polkadot/2color/DEX.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Dapps.svg b/assets/icons/polkadot/2color/Dapps.svg new file mode 100644 index 00000000..cfb39653 --- /dev/null +++ b/assets/icons/polkadot/2color/Dapps.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Data & Analytics.svg b/assets/icons/polkadot/2color/Data & Analytics.svg new file mode 100644 index 00000000..89fe254c --- /dev/null +++ b/assets/icons/polkadot/2color/Data & Analytics.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Day_Light Mode.svg b/assets/icons/polkadot/2color/Day_Light Mode.svg new file mode 100644 index 00000000..7c657920 --- /dev/null +++ b/assets/icons/polkadot/2color/Day_Light Mode.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/DeFi.svg b/assets/icons/polkadot/2color/DeFi.svg new file mode 100644 index 00000000..586503db --- /dev/null +++ b/assets/icons/polkadot/2color/DeFi.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Decentralised File Storage.svg b/assets/icons/polkadot/2color/Decentralised File Storage.svg new file mode 100644 index 00000000..f0be1a97 --- /dev/null +++ b/assets/icons/polkadot/2color/Decentralised File Storage.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Delete_Cancel.svg b/assets/icons/polkadot/2color/Delete_Cancel.svg new file mode 100644 index 00000000..943855cf --- /dev/null +++ b/assets/icons/polkadot/2color/Delete_Cancel.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Democracy.svg b/assets/icons/polkadot/2color/Democracy.svg new file mode 100644 index 00000000..198a634a --- /dev/null +++ b/assets/icons/polkadot/2color/Democracy.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Deposit.svg b/assets/icons/polkadot/2color/Deposit.svg new file mode 100644 index 00000000..a50d3b1b --- /dev/null +++ b/assets/icons/polkadot/2color/Deposit.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Derivation Path.svg b/assets/icons/polkadot/2color/Derivation Path.svg new file mode 100644 index 00000000..c25681ea --- /dev/null +++ b/assets/icons/polkadot/2color/Derivation Path.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Derive An Address.svg b/assets/icons/polkadot/2color/Derive An Address.svg new file mode 100644 index 00000000..2b0b4390 --- /dev/null +++ b/assets/icons/polkadot/2color/Derive An Address.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Derive Key Pair.svg b/assets/icons/polkadot/2color/Derive Key Pair.svg new file mode 100644 index 00000000..5405ea35 --- /dev/null +++ b/assets/icons/polkadot/2color/Derive Key Pair.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Disconnected.svg b/assets/icons/polkadot/2color/Disconnected.svg new file mode 100644 index 00000000..e9706e29 --- /dev/null +++ b/assets/icons/polkadot/2color/Disconnected.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Distributed File Storage.svg b/assets/icons/polkadot/2color/Distributed File Storage.svg new file mode 100644 index 00000000..0b2874ba --- /dev/null +++ b/assets/icons/polkadot/2color/Distributed File Storage.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Documentations.svg b/assets/icons/polkadot/2color/Documentations.svg new file mode 100644 index 00000000..080cb059 --- /dev/null +++ b/assets/icons/polkadot/2color/Documentations.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Download.svg b/assets/icons/polkadot/2color/Download.svg new file mode 100644 index 00000000..a1a92e2d --- /dev/null +++ b/assets/icons/polkadot/2color/Download.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Draw.svg b/assets/icons/polkadot/2color/Draw.svg new file mode 100644 index 00000000..d2811b95 --- /dev/null +++ b/assets/icons/polkadot/2color/Draw.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Drip.svg b/assets/icons/polkadot/2color/Drip.svg new file mode 100644 index 00000000..8a0d95c9 --- /dev/null +++ b/assets/icons/polkadot/2color/Drip.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Dropdown Up.svg b/assets/icons/polkadot/2color/Dropdown Up.svg new file mode 100644 index 00000000..ffd0d29c --- /dev/null +++ b/assets/icons/polkadot/2color/Dropdown Up.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Dropdown.svg b/assets/icons/polkadot/2color/Dropdown.svg new file mode 100644 index 00000000..0922524a --- /dev/null +++ b/assets/icons/polkadot/2color/Dropdown.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Ecosystem Provisions.svg b/assets/icons/polkadot/2color/Ecosystem Provisions.svg new file mode 100644 index 00000000..512d9b06 --- /dev/null +++ b/assets/icons/polkadot/2color/Ecosystem Provisions.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Ecosystem.svg b/assets/icons/polkadot/2color/Ecosystem.svg new file mode 100644 index 00000000..7bbb5b9c --- /dev/null +++ b/assets/icons/polkadot/2color/Ecosystem.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Edit-Off.svg b/assets/icons/polkadot/2color/Edit-Off.svg new file mode 100644 index 00000000..d45437aa --- /dev/null +++ b/assets/icons/polkadot/2color/Edit-Off.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Edit-On.svg b/assets/icons/polkadot/2color/Edit-On.svg new file mode 100644 index 00000000..423160c9 --- /dev/null +++ b/assets/icons/polkadot/2color/Edit-On.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Elections.svg b/assets/icons/polkadot/2color/Elections.svg new file mode 100644 index 00000000..788585d9 --- /dev/null +++ b/assets/icons/polkadot/2color/Elections.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Email.svg b/assets/icons/polkadot/2color/Email.svg new file mode 100644 index 00000000..84f26dcf --- /dev/null +++ b/assets/icons/polkadot/2color/Email.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Encryption.svg b/assets/icons/polkadot/2color/Encryption.svg new file mode 100644 index 00000000..00cc44db --- /dev/null +++ b/assets/icons/polkadot/2color/Encryption.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Ending Period.svg b/assets/icons/polkadot/2color/Ending Period.svg new file mode 100644 index 00000000..bfb7a485 --- /dev/null +++ b/assets/icons/polkadot/2color/Ending Period.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Energy Deficiency.svg b/assets/icons/polkadot/2color/Energy Deficiency.svg new file mode 100644 index 00000000..a5b8de81 --- /dev/null +++ b/assets/icons/polkadot/2color/Energy Deficiency.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Energy Efficiency.svg b/assets/icons/polkadot/2color/Energy Efficiency.svg new file mode 100644 index 00000000..61349b8b --- /dev/null +++ b/assets/icons/polkadot/2color/Energy Efficiency.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Energy.svg b/assets/icons/polkadot/2color/Energy.svg new file mode 100644 index 00000000..3cf91a42 --- /dev/null +++ b/assets/icons/polkadot/2color/Energy.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Enterprise.svg b/assets/icons/polkadot/2color/Enterprise.svg new file mode 100644 index 00000000..20fed5b4 --- /dev/null +++ b/assets/icons/polkadot/2color/Enterprise.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Error.svg b/assets/icons/polkadot/2color/Error.svg new file mode 100644 index 00000000..480cc457 --- /dev/null +++ b/assets/icons/polkadot/2color/Error.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Eve.svg b/assets/icons/polkadot/2color/Eve.svg new file mode 100644 index 00000000..e038dac9 --- /dev/null +++ b/assets/icons/polkadot/2color/Eve.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Events.svg b/assets/icons/polkadot/2color/Events.svg new file mode 100644 index 00000000..bd2195ea --- /dev/null +++ b/assets/icons/polkadot/2color/Events.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Existential Deposit.svg b/assets/icons/polkadot/2color/Existential Deposit.svg new file mode 100644 index 00000000..c22d9d8c --- /dev/null +++ b/assets/icons/polkadot/2color/Existential Deposit.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Export (M,L).svg b/assets/icons/polkadot/2color/Export (M,L).svg new file mode 100644 index 00000000..37d81caa --- /dev/null +++ b/assets/icons/polkadot/2color/Export (M,L).svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Export (XS,S).svg b/assets/icons/polkadot/2color/Export (XS,S).svg new file mode 100644 index 00000000..5a5c556f --- /dev/null +++ b/assets/icons/polkadot/2color/Export (XS,S).svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Extension.svg b/assets/icons/polkadot/2color/Extension.svg new file mode 100644 index 00000000..cec3da84 --- /dev/null +++ b/assets/icons/polkadot/2color/Extension.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Favorite To-Be.svg b/assets/icons/polkadot/2color/Favorite To-Be.svg new file mode 100644 index 00000000..8b324f9f --- /dev/null +++ b/assets/icons/polkadot/2color/Favorite To-Be.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Favorite.svg b/assets/icons/polkadot/2color/Favorite.svg new file mode 100644 index 00000000..943cd413 --- /dev/null +++ b/assets/icons/polkadot/2color/Favorite.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Feeless.svg b/assets/icons/polkadot/2color/Feeless.svg new file mode 100644 index 00000000..a4345075 --- /dev/null +++ b/assets/icons/polkadot/2color/Feeless.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Fees.svg b/assets/icons/polkadot/2color/Fees.svg new file mode 100644 index 00000000..7d256878 --- /dev/null +++ b/assets/icons/polkadot/2color/Fees.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Fiat.svg b/assets/icons/polkadot/2color/Fiat.svg new file mode 100644 index 00000000..fb9247a1 --- /dev/null +++ b/assets/icons/polkadot/2color/Fiat.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Filter.svg b/assets/icons/polkadot/2color/Filter.svg new file mode 100644 index 00000000..6e14d79a --- /dev/null +++ b/assets/icons/polkadot/2color/Filter.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Finances.svg b/assets/icons/polkadot/2color/Finances.svg new file mode 100644 index 00000000..cd866a0b --- /dev/null +++ b/assets/icons/polkadot/2color/Finances.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Fork.svg b/assets/icons/polkadot/2color/Fork.svg new file mode 100644 index 00000000..c8588f0a --- /dev/null +++ b/assets/icons/polkadot/2color/Fork.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/ForklessUpgrades.svg b/assets/icons/polkadot/2color/ForklessUpgrades.svg new file mode 100644 index 00000000..ebda6826 --- /dev/null +++ b/assets/icons/polkadot/2color/ForklessUpgrades.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Full Node.svg b/assets/icons/polkadot/2color/Full Node.svg new file mode 100644 index 00000000..aa99b468 --- /dev/null +++ b/assets/icons/polkadot/2color/Full Node.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Fund Account.svg b/assets/icons/polkadot/2color/Fund Account.svg new file mode 100644 index 00000000..3cbbe8ce --- /dev/null +++ b/assets/icons/polkadot/2color/Fund Account.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Fund Savings.svg b/assets/icons/polkadot/2color/Fund Savings.svg new file mode 100644 index 00000000..32c683d6 --- /dev/null +++ b/assets/icons/polkadot/2color/Fund Savings.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Gaming.svg b/assets/icons/polkadot/2color/Gaming.svg new file mode 100644 index 00000000..5a2b3c56 --- /dev/null +++ b/assets/icons/polkadot/2color/Gaming.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Genesis.svg b/assets/icons/polkadot/2color/Genesis.svg new file mode 100644 index 00000000..c76003d6 --- /dev/null +++ b/assets/icons/polkadot/2color/Genesis.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Gift.svg b/assets/icons/polkadot/2color/Gift.svg new file mode 100644 index 00000000..2d04830e --- /dev/null +++ b/assets/icons/polkadot/2color/Gift.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Glossary.svg b/assets/icons/polkadot/2color/Glossary.svg new file mode 100644 index 00000000..4b03fcb2 --- /dev/null +++ b/assets/icons/polkadot/2color/Glossary.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Go.svg b/assets/icons/polkadot/2color/Go.svg new file mode 100644 index 00000000..35481707 --- /dev/null +++ b/assets/icons/polkadot/2color/Go.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Governance.svg b/assets/icons/polkadot/2color/Governance.svg new file mode 100644 index 00000000..eb131cbe --- /dev/null +++ b/assets/icons/polkadot/2color/Governance.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Governments.svg b/assets/icons/polkadot/2color/Governments.svg new file mode 100644 index 00000000..f3c5e493 --- /dev/null +++ b/assets/icons/polkadot/2color/Governments.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Hackathon.svg b/assets/icons/polkadot/2color/Hackathon.svg new file mode 100644 index 00000000..64d3d9d5 --- /dev/null +++ b/assets/icons/polkadot/2color/Hackathon.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Hash Function.svg b/assets/icons/polkadot/2color/Hash Function.svg new file mode 100644 index 00000000..2208ef9c --- /dev/null +++ b/assets/icons/polkadot/2color/Hash Function.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Healthcare.svg b/assets/icons/polkadot/2color/Healthcare.svg new file mode 100644 index 00000000..95b14d50 --- /dev/null +++ b/assets/icons/polkadot/2color/Healthcare.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Help.svg b/assets/icons/polkadot/2color/Help.svg new file mode 100644 index 00000000..cd4a79eb --- /dev/null +++ b/assets/icons/polkadot/2color/Help.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Heterogeneous Sharding.svg b/assets/icons/polkadot/2color/Heterogeneous Sharding.svg new file mode 100644 index 00000000..2613f458 --- /dev/null +++ b/assets/icons/polkadot/2color/Heterogeneous Sharding.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Identify.svg b/assets/icons/polkadot/2color/Identify.svg new file mode 100644 index 00000000..106e5c53 --- /dev/null +++ b/assets/icons/polkadot/2color/Identify.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Identity.svg b/assets/icons/polkadot/2color/Identity.svg new file mode 100644 index 00000000..aa78bafc --- /dev/null +++ b/assets/icons/polkadot/2color/Identity.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Import Token.svg b/assets/icons/polkadot/2color/Import Token.svg new file mode 100644 index 00000000..10513c67 --- /dev/null +++ b/assets/icons/polkadot/2color/Import Token.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Indeterminate _ Negative.svg b/assets/icons/polkadot/2color/Indeterminate _ Negative.svg new file mode 100644 index 00000000..52d0b4bf --- /dev/null +++ b/assets/icons/polkadot/2color/Indeterminate _ Negative.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Informational.svg b/assets/icons/polkadot/2color/Informational.svg new file mode 100644 index 00000000..30b1ebd7 --- /dev/null +++ b/assets/icons/polkadot/2color/Informational.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Infrastructure.svg b/assets/icons/polkadot/2color/Infrastructure.svg new file mode 100644 index 00000000..3abfacdf --- /dev/null +++ b/assets/icons/polkadot/2color/Infrastructure.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Injected Account.svg b/assets/icons/polkadot/2color/Injected Account.svg new file mode 100644 index 00000000..5819d379 --- /dev/null +++ b/assets/icons/polkadot/2color/Injected Account.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Interconnected.svg b/assets/icons/polkadot/2color/Interconnected.svg new file mode 100644 index 00000000..206f620e --- /dev/null +++ b/assets/icons/polkadot/2color/Interconnected.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Interoperability.svg b/assets/icons/polkadot/2color/Interoperability.svg new file mode 100644 index 00000000..72353353 --- /dev/null +++ b/assets/icons/polkadot/2color/Interoperability.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Investors.svg b/assets/icons/polkadot/2color/Investors.svg new file mode 100644 index 00000000..a34a688c --- /dev/null +++ b/assets/icons/polkadot/2color/Investors.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/IoT And Robotics.svg b/assets/icons/polkadot/2color/IoT And Robotics.svg new file mode 100644 index 00000000..6ba38c72 --- /dev/null +++ b/assets/icons/polkadot/2color/IoT And Robotics.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/IoT.svg b/assets/icons/polkadot/2color/IoT.svg new file mode 100644 index 00000000..41f96079 --- /dev/null +++ b/assets/icons/polkadot/2color/IoT.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Isolated.svg b/assets/icons/polkadot/2color/Isolated.svg new file mode 100644 index 00000000..66a0e3ad --- /dev/null +++ b/assets/icons/polkadot/2color/Isolated.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/KeepAlive Check.svg b/assets/icons/polkadot/2color/KeepAlive Check.svg new file mode 100644 index 00000000..09f055cd --- /dev/null +++ b/assets/icons/polkadot/2color/KeepAlive Check.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Key.svg b/assets/icons/polkadot/2color/Key.svg new file mode 100644 index 00000000..7a73183c --- /dev/null +++ b/assets/icons/polkadot/2color/Key.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Language.svg b/assets/icons/polkadot/2color/Language.svg new file mode 100644 index 00000000..3528ab4d --- /dev/null +++ b/assets/icons/polkadot/2color/Language.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Layer (Four).svg b/assets/icons/polkadot/2color/Layer (Four).svg new file mode 100644 index 00000000..4581cef4 --- /dev/null +++ b/assets/icons/polkadot/2color/Layer (Four).svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Layer (One).svg b/assets/icons/polkadot/2color/Layer (One).svg new file mode 100644 index 00000000..cd30ff89 --- /dev/null +++ b/assets/icons/polkadot/2color/Layer (One).svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Layer (Three).svg b/assets/icons/polkadot/2color/Layer (Three).svg new file mode 100644 index 00000000..85eff55e --- /dev/null +++ b/assets/icons/polkadot/2color/Layer (Three).svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Layer (Two).svg b/assets/icons/polkadot/2color/Layer (Two).svg new file mode 100644 index 00000000..9a9fe368 --- /dev/null +++ b/assets/icons/polkadot/2color/Layer (Two).svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Layer.svg b/assets/icons/polkadot/2color/Layer.svg new file mode 100644 index 00000000..e5bb8f31 --- /dev/null +++ b/assets/icons/polkadot/2color/Layer.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Learn More.svg b/assets/icons/polkadot/2color/Learn More.svg new file mode 100644 index 00000000..8ce3c3cf --- /dev/null +++ b/assets/icons/polkadot/2color/Learn More.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Learn.svg b/assets/icons/polkadot/2color/Learn.svg new file mode 100644 index 00000000..03243c85 --- /dev/null +++ b/assets/icons/polkadot/2color/Learn.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Lease Duration.svg b/assets/icons/polkadot/2color/Lease Duration.svg new file mode 100644 index 00000000..33651d50 --- /dev/null +++ b/assets/icons/polkadot/2color/Lease Duration.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Library.svg b/assets/icons/polkadot/2color/Library.svg new file mode 100644 index 00000000..8511b3df --- /dev/null +++ b/assets/icons/polkadot/2color/Library.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Light Node.svg b/assets/icons/polkadot/2color/Light Node.svg new file mode 100644 index 00000000..96ddd9fb --- /dev/null +++ b/assets/icons/polkadot/2color/Light Node.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Lights On.svg b/assets/icons/polkadot/2color/Lights On.svg new file mode 100644 index 00000000..adc440cf --- /dev/null +++ b/assets/icons/polkadot/2color/Lights On.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Limited Supply.svg b/assets/icons/polkadot/2color/Limited Supply.svg new file mode 100644 index 00000000..09103588 --- /dev/null +++ b/assets/icons/polkadot/2color/Limited Supply.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/LinkedIn.svg b/assets/icons/polkadot/2color/LinkedIn.svg new file mode 100644 index 00000000..46016a56 --- /dev/null +++ b/assets/icons/polkadot/2color/LinkedIn.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Lock.svg b/assets/icons/polkadot/2color/Lock.svg new file mode 100644 index 00000000..01295407 --- /dev/null +++ b/assets/icons/polkadot/2color/Lock.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Maintain.svg b/assets/icons/polkadot/2color/Maintain.svg new file mode 100644 index 00000000..61fe3daa --- /dev/null +++ b/assets/icons/polkadot/2color/Maintain.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Marketing.svg b/assets/icons/polkadot/2color/Marketing.svg new file mode 100644 index 00000000..8fbdc7ac --- /dev/null +++ b/assets/icons/polkadot/2color/Marketing.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Menu.svg b/assets/icons/polkadot/2color/Menu.svg new file mode 100644 index 00000000..7243a761 --- /dev/null +++ b/assets/icons/polkadot/2color/Menu.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Message.svg b/assets/icons/polkadot/2color/Message.svg new file mode 100644 index 00000000..5069baa1 --- /dev/null +++ b/assets/icons/polkadot/2color/Message.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Metaverse.svg b/assets/icons/polkadot/2color/Metaverse.svg new file mode 100644 index 00000000..ed0092c8 --- /dev/null +++ b/assets/icons/polkadot/2color/Metaverse.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Mitigating Mev.svg b/assets/icons/polkadot/2color/Mitigating Mev.svg new file mode 100644 index 00000000..3dcf534c --- /dev/null +++ b/assets/icons/polkadot/2color/Mitigating Mev.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Mobile App.svg b/assets/icons/polkadot/2color/Mobile App.svg new file mode 100644 index 00000000..269e00ff --- /dev/null +++ b/assets/icons/polkadot/2color/Mobile App.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Monitor.svg b/assets/icons/polkadot/2color/Monitor.svg new file mode 100644 index 00000000..4a5fea94 --- /dev/null +++ b/assets/icons/polkadot/2color/Monitor.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/More Horizontal.svg b/assets/icons/polkadot/2color/More Horizontal.svg new file mode 100644 index 00000000..e3b34cc9 --- /dev/null +++ b/assets/icons/polkadot/2color/More Horizontal.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/More Menu.svg b/assets/icons/polkadot/2color/More Menu.svg new file mode 100644 index 00000000..5c2692d1 --- /dev/null +++ b/assets/icons/polkadot/2color/More Menu.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/More Vertical.svg b/assets/icons/polkadot/2color/More Vertical.svg new file mode 100644 index 00000000..9cd0c77e --- /dev/null +++ b/assets/icons/polkadot/2color/More Vertical.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Multichain Smart Contracts.svg b/assets/icons/polkadot/2color/Multichain Smart Contracts.svg new file mode 100644 index 00000000..b797422c --- /dev/null +++ b/assets/icons/polkadot/2color/Multichain Smart Contracts.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Multichain Treasuries.svg b/assets/icons/polkadot/2color/Multichain Treasuries.svg new file mode 100644 index 00000000..407623d0 --- /dev/null +++ b/assets/icons/polkadot/2color/Multichain Treasuries.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Multisign Account.svg b/assets/icons/polkadot/2color/Multisign Account.svg new file mode 100644 index 00000000..1555d563 --- /dev/null +++ b/assets/icons/polkadot/2color/Multisign Account.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Multisign.svg b/assets/icons/polkadot/2color/Multisign.svg new file mode 100644 index 00000000..1cd0f54b --- /dev/null +++ b/assets/icons/polkadot/2color/Multisign.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/NFT Staking.svg b/assets/icons/polkadot/2color/NFT Staking.svg new file mode 100644 index 00000000..d02a1f55 --- /dev/null +++ b/assets/icons/polkadot/2color/NFT Staking.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Network Is Connected.svg b/assets/icons/polkadot/2color/Network Is Connected.svg new file mode 100644 index 00000000..7db919a5 --- /dev/null +++ b/assets/icons/polkadot/2color/Network Is Connected.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Network Security Operations.svg b/assets/icons/polkadot/2color/Network Security Operations.svg new file mode 100644 index 00000000..7715eabc --- /dev/null +++ b/assets/icons/polkadot/2color/Network Security Operations.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/New Tab.svg b/assets/icons/polkadot/2color/New Tab.svg new file mode 100644 index 00000000..cd40753a --- /dev/null +++ b/assets/icons/polkadot/2color/New Tab.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/News.svg b/assets/icons/polkadot/2color/News.svg new file mode 100644 index 00000000..437c9b8b --- /dev/null +++ b/assets/icons/polkadot/2color/News.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Nft.svg b/assets/icons/polkadot/2color/Nft.svg new file mode 100644 index 00000000..d7832bcc --- /dev/null +++ b/assets/icons/polkadot/2color/Nft.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Night_Dark Mode.svg b/assets/icons/polkadot/2color/Night_Dark Mode.svg new file mode 100644 index 00000000..cd78d8d6 --- /dev/null +++ b/assets/icons/polkadot/2color/Night_Dark Mode.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Node.svg b/assets/icons/polkadot/2color/Node.svg new file mode 100644 index 00000000..9f31c021 --- /dev/null +++ b/assets/icons/polkadot/2color/Node.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Nominating.svg b/assets/icons/polkadot/2color/Nominating.svg new file mode 100644 index 00000000..607e732d --- /dev/null +++ b/assets/icons/polkadot/2color/Nominating.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Nominators.svg b/assets/icons/polkadot/2color/Nominators.svg new file mode 100644 index 00000000..40e3e3b5 --- /dev/null +++ b/assets/icons/polkadot/2color/Nominators.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Not Able To Upgrade.svg b/assets/icons/polkadot/2color/Not Able To Upgrade.svg new file mode 100644 index 00000000..b42db7d0 --- /dev/null +++ b/assets/icons/polkadot/2color/Not Able To Upgrade.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Not Scalable.svg b/assets/icons/polkadot/2color/Not Scalable.svg new file mode 100644 index 00000000..a70a90cb --- /dev/null +++ b/assets/icons/polkadot/2color/Not Scalable.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Notification.svg b/assets/icons/polkadot/2color/Notification.svg new file mode 100644 index 00000000..4bc0e83d --- /dev/null +++ b/assets/icons/polkadot/2color/Notification.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Off-Chain Computations.svg b/assets/icons/polkadot/2color/Off-Chain Computations.svg new file mode 100644 index 00000000..391f13c9 --- /dev/null +++ b/assets/icons/polkadot/2color/Off-Chain Computations.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Offboarding.svg b/assets/icons/polkadot/2color/Offboarding.svg new file mode 100644 index 00000000..8234d289 --- /dev/null +++ b/assets/icons/polkadot/2color/Offboarding.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/On-Chain Scheduling.svg b/assets/icons/polkadot/2color/On-Chain Scheduling.svg new file mode 100644 index 00000000..b5f003ef --- /dev/null +++ b/assets/icons/polkadot/2color/On-Chain Scheduling.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Onboarding.svg b/assets/icons/polkadot/2color/Onboarding.svg new file mode 100644 index 00000000..1d12a6ae --- /dev/null +++ b/assets/icons/polkadot/2color/Onboarding.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Oracle.svg b/assets/icons/polkadot/2color/Oracle.svg new file mode 100644 index 00000000..1e033aa9 --- /dev/null +++ b/assets/icons/polkadot/2color/Oracle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Oracles.svg b/assets/icons/polkadot/2color/Oracles.svg new file mode 100644 index 00000000..840e853a --- /dev/null +++ b/assets/icons/polkadot/2color/Oracles.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Overview.svg b/assets/icons/polkadot/2color/Overview.svg new file mode 100644 index 00000000..c552b802 --- /dev/null +++ b/assets/icons/polkadot/2color/Overview.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Paper Money.svg b/assets/icons/polkadot/2color/Paper Money.svg new file mode 100644 index 00000000..d7d1d188 --- /dev/null +++ b/assets/icons/polkadot/2color/Paper Money.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Parachains.svg b/assets/icons/polkadot/2color/Parachains.svg new file mode 100644 index 00000000..4b2d1341 --- /dev/null +++ b/assets/icons/polkadot/2color/Parachains.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Payout.svg b/assets/icons/polkadot/2color/Payout.svg new file mode 100644 index 00000000..d7676b04 --- /dev/null +++ b/assets/icons/polkadot/2color/Payout.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Picture.svg b/assets/icons/polkadot/2color/Picture.svg new file mode 100644 index 00000000..d67cd713 --- /dev/null +++ b/assets/icons/polkadot/2color/Picture.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Podcasts.svg b/assets/icons/polkadot/2color/Podcasts.svg new file mode 100644 index 00000000..9a0cb9c7 --- /dev/null +++ b/assets/icons/polkadot/2color/Podcasts.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Privacy.svg b/assets/icons/polkadot/2color/Privacy.svg new file mode 100644 index 00000000..3d2885ee --- /dev/null +++ b/assets/icons/polkadot/2color/Privacy.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Private Key.svg b/assets/icons/polkadot/2color/Private Key.svg new file mode 100644 index 00000000..037a8123 --- /dev/null +++ b/assets/icons/polkadot/2color/Private Key.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Proof Of Stake.svg b/assets/icons/polkadot/2color/Proof Of Stake.svg new file mode 100644 index 00000000..99bb2358 --- /dev/null +++ b/assets/icons/polkadot/2color/Proof Of Stake.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Proof Of Work.svg b/assets/icons/polkadot/2color/Proof Of Work.svg new file mode 100644 index 00000000..b6a34655 --- /dev/null +++ b/assets/icons/polkadot/2color/Proof Of Work.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Proposal.svg b/assets/icons/polkadot/2color/Proposal.svg new file mode 100644 index 00000000..19517bdb --- /dev/null +++ b/assets/icons/polkadot/2color/Proposal.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Proxy.svg b/assets/icons/polkadot/2color/Proxy.svg new file mode 100644 index 00000000..2748ff32 --- /dev/null +++ b/assets/icons/polkadot/2color/Proxy.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/ProxyAccount.svg b/assets/icons/polkadot/2color/ProxyAccount.svg new file mode 100644 index 00000000..3aaa697a --- /dev/null +++ b/assets/icons/polkadot/2color/ProxyAccount.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Public Key.svg b/assets/icons/polkadot/2color/Public Key.svg new file mode 100644 index 00000000..df357b3b --- /dev/null +++ b/assets/icons/polkadot/2color/Public Key.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/QR Code.svg b/assets/icons/polkadot/2color/QR Code.svg new file mode 100644 index 00000000..2f4ea903 --- /dev/null +++ b/assets/icons/polkadot/2color/QR Code.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Randomness.svg b/assets/icons/polkadot/2color/Randomness.svg new file mode 100644 index 00000000..116c491f --- /dev/null +++ b/assets/icons/polkadot/2color/Randomness.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Read Time.svg b/assets/icons/polkadot/2color/Read Time.svg new file mode 100644 index 00000000..f20c9037 --- /dev/null +++ b/assets/icons/polkadot/2color/Read Time.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Recover Keys.svg b/assets/icons/polkadot/2color/Recover Keys.svg new file mode 100644 index 00000000..7da5e30d --- /dev/null +++ b/assets/icons/polkadot/2color/Recover Keys.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Recovery.svg b/assets/icons/polkadot/2color/Recovery.svg new file mode 100644 index 00000000..54f614e6 --- /dev/null +++ b/assets/icons/polkadot/2color/Recovery.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Reddit.svg b/assets/icons/polkadot/2color/Reddit.svg new file mode 100644 index 00000000..4ff5c52a --- /dev/null +++ b/assets/icons/polkadot/2color/Reddit.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Referenda.svg b/assets/icons/polkadot/2color/Referenda.svg new file mode 100644 index 00000000..c69fa522 --- /dev/null +++ b/assets/icons/polkadot/2color/Referenda.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Refresh _ Redo.svg b/assets/icons/polkadot/2color/Refresh _ Redo.svg new file mode 100644 index 00000000..621d4e33 --- /dev/null +++ b/assets/icons/polkadot/2color/Refresh _ Redo.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Registrars.svg b/assets/icons/polkadot/2color/Registrars.svg new file mode 100644 index 00000000..7114cb76 --- /dev/null +++ b/assets/icons/polkadot/2color/Registrars.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Regulators.svg b/assets/icons/polkadot/2color/Regulators.svg new file mode 100644 index 00000000..ee3c7568 --- /dev/null +++ b/assets/icons/polkadot/2color/Regulators.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Relay Chain.svg b/assets/icons/polkadot/2color/Relay Chain.svg new file mode 100644 index 00000000..696f33da --- /dev/null +++ b/assets/icons/polkadot/2color/Relay Chain.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Remote Node.svg b/assets/icons/polkadot/2color/Remote Node.svg new file mode 100644 index 00000000..3bbfd9b0 --- /dev/null +++ b/assets/icons/polkadot/2color/Remote Node.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Remove User.svg b/assets/icons/polkadot/2color/Remove User.svg new file mode 100644 index 00000000..3b5b8814 --- /dev/null +++ b/assets/icons/polkadot/2color/Remove User.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Remove.svg b/assets/icons/polkadot/2color/Remove.svg new file mode 100644 index 00000000..44ccf6b7 --- /dev/null +++ b/assets/icons/polkadot/2color/Remove.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Report.svg b/assets/icons/polkadot/2color/Report.svg new file mode 100644 index 00000000..f763d126 --- /dev/null +++ b/assets/icons/polkadot/2color/Report.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Reputation Systems.svg b/assets/icons/polkadot/2color/Reputation Systems.svg new file mode 100644 index 00000000..890d2f0d --- /dev/null +++ b/assets/icons/polkadot/2color/Reputation Systems.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Research.svg b/assets/icons/polkadot/2color/Research.svg new file mode 100644 index 00000000..05bd6a3b --- /dev/null +++ b/assets/icons/polkadot/2color/Research.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Reserve Back Assets.svg b/assets/icons/polkadot/2color/Reserve Back Assets.svg new file mode 100644 index 00000000..c4fccb29 --- /dev/null +++ b/assets/icons/polkadot/2color/Reserve Back Assets.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Restore From BackUp.svg b/assets/icons/polkadot/2color/Restore From BackUp.svg new file mode 100644 index 00000000..6ee41e83 --- /dev/null +++ b/assets/icons/polkadot/2color/Restore From BackUp.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Retail And Ecommerce.svg b/assets/icons/polkadot/2color/Retail And Ecommerce.svg new file mode 100644 index 00000000..5ea1fffb --- /dev/null +++ b/assets/icons/polkadot/2color/Retail And Ecommerce.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Robust System.svg b/assets/icons/polkadot/2color/Robust System.svg new file mode 100644 index 00000000..fac7f659 --- /dev/null +++ b/assets/icons/polkadot/2color/Robust System.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Rust.svg b/assets/icons/polkadot/2color/Rust.svg new file mode 100644 index 00000000..6dd69c8e --- /dev/null +++ b/assets/icons/polkadot/2color/Rust.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Save.svg b/assets/icons/polkadot/2color/Save.svg new file mode 100644 index 00000000..5e0bffd9 --- /dev/null +++ b/assets/icons/polkadot/2color/Save.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Scalability.svg b/assets/icons/polkadot/2color/Scalability.svg new file mode 100644 index 00000000..5883737e --- /dev/null +++ b/assets/icons/polkadot/2color/Scalability.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Scale.svg b/assets/icons/polkadot/2color/Scale.svg new file mode 100644 index 00000000..c12d9e2c --- /dev/null +++ b/assets/icons/polkadot/2color/Scale.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Scaling.svg b/assets/icons/polkadot/2color/Scaling.svg new file mode 100644 index 00000000..c07d7eff --- /dev/null +++ b/assets/icons/polkadot/2color/Scaling.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Scam Alert.svg b/assets/icons/polkadot/2color/Scam Alert.svg new file mode 100644 index 00000000..f64ac333 --- /dev/null +++ b/assets/icons/polkadot/2color/Scam Alert.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Search.svg b/assets/icons/polkadot/2color/Search.svg new file mode 100644 index 00000000..f365e63b --- /dev/null +++ b/assets/icons/polkadot/2color/Search.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Second A Proposal.svg b/assets/icons/polkadot/2color/Second A Proposal.svg new file mode 100644 index 00000000..0a09cd61 --- /dev/null +++ b/assets/icons/polkadot/2color/Second A Proposal.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Secret Part Of The Derivation Path.svg b/assets/icons/polkadot/2color/Secret Part Of The Derivation Path.svg new file mode 100644 index 00000000..261dd1f8 --- /dev/null +++ b/assets/icons/polkadot/2color/Secret Part Of The Derivation Path.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Secure Device.svg b/assets/icons/polkadot/2color/Secure Device.svg new file mode 100644 index 00000000..41f069fc --- /dev/null +++ b/assets/icons/polkadot/2color/Secure Device.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Security Check.svg b/assets/icons/polkadot/2color/Security Check.svg new file mode 100644 index 00000000..19671682 --- /dev/null +++ b/assets/icons/polkadot/2color/Security Check.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Seed Phrase.svg b/assets/icons/polkadot/2color/Seed Phrase.svg new file mode 100644 index 00000000..4c677207 --- /dev/null +++ b/assets/icons/polkadot/2color/Seed Phrase.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Select List Item.svg b/assets/icons/polkadot/2color/Select List Item.svg new file mode 100644 index 00000000..03812eab --- /dev/null +++ b/assets/icons/polkadot/2color/Select List Item.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Session.svg b/assets/icons/polkadot/2color/Session.svg new file mode 100644 index 00000000..fb7b6d50 --- /dev/null +++ b/assets/icons/polkadot/2color/Session.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Settings.svg b/assets/icons/polkadot/2color/Settings.svg new file mode 100644 index 00000000..1d36a691 --- /dev/null +++ b/assets/icons/polkadot/2color/Settings.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Sharding.svg b/assets/icons/polkadot/2color/Sharding.svg new file mode 100644 index 00000000..741b19f6 --- /dev/null +++ b/assets/icons/polkadot/2color/Sharding.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Share.svg b/assets/icons/polkadot/2color/Share.svg new file mode 100644 index 00000000..7d5c8b35 --- /dev/null +++ b/assets/icons/polkadot/2color/Share.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Shared Security.svg b/assets/icons/polkadot/2color/Shared Security.svg new file mode 100644 index 00000000..3959757b --- /dev/null +++ b/assets/icons/polkadot/2color/Shared Security.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Sign A Transaction.svg b/assets/icons/polkadot/2color/Sign A Transaction.svg new file mode 100644 index 00000000..5bb07c1a --- /dev/null +++ b/assets/icons/polkadot/2color/Sign A Transaction.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Sign Specs.svg b/assets/icons/polkadot/2color/Sign Specs.svg new file mode 100644 index 00000000..7f2a32a2 --- /dev/null +++ b/assets/icons/polkadot/2color/Sign Specs.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Sign.svg b/assets/icons/polkadot/2color/Sign.svg new file mode 100644 index 00000000..fe6fe37b --- /dev/null +++ b/assets/icons/polkadot/2color/Sign.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Signal.svg b/assets/icons/polkadot/2color/Signal.svg new file mode 100644 index 00000000..f3759fc0 --- /dev/null +++ b/assets/icons/polkadot/2color/Signal.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Signature.svg b/assets/icons/polkadot/2color/Signature.svg new file mode 100644 index 00000000..fbaed11e --- /dev/null +++ b/assets/icons/polkadot/2color/Signature.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Signifier Tab.svg b/assets/icons/polkadot/2color/Signifier Tab.svg new file mode 100644 index 00000000..a8596b0b --- /dev/null +++ b/assets/icons/polkadot/2color/Signifier Tab.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Smart Contract.svg b/assets/icons/polkadot/2color/Smart Contract.svg new file mode 100644 index 00000000..842e4416 --- /dev/null +++ b/assets/icons/polkadot/2color/Smart Contract.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Social Impact & Humanitarian.svg b/assets/icons/polkadot/2color/Social Impact & Humanitarian.svg new file mode 100644 index 00000000..9865c88a --- /dev/null +++ b/assets/icons/polkadot/2color/Social Impact & Humanitarian.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Social Networking.svg b/assets/icons/polkadot/2color/Social Networking.svg new file mode 100644 index 00000000..28e0a30a --- /dev/null +++ b/assets/icons/polkadot/2color/Social Networking.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Software Development.svg b/assets/icons/polkadot/2color/Software Development.svg new file mode 100644 index 00000000..337682d3 --- /dev/null +++ b/assets/icons/polkadot/2color/Software Development.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Specialised.svg b/assets/icons/polkadot/2color/Specialised.svg new file mode 100644 index 00000000..3d48e9a9 --- /dev/null +++ b/assets/icons/polkadot/2color/Specialised.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Stablecoin.svg b/assets/icons/polkadot/2color/Stablecoin.svg new file mode 100644 index 00000000..4885480a --- /dev/null +++ b/assets/icons/polkadot/2color/Stablecoin.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Stake.svg b/assets/icons/polkadot/2color/Stake.svg new file mode 100644 index 00000000..bceaf135 --- /dev/null +++ b/assets/icons/polkadot/2color/Stake.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Staking.svg b/assets/icons/polkadot/2color/Staking.svg new file mode 100644 index 00000000..d3068fe6 --- /dev/null +++ b/assets/icons/polkadot/2color/Staking.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Starting Period.svg b/assets/icons/polkadot/2color/Starting Period.svg new file mode 100644 index 00000000..54a1a84b --- /dev/null +++ b/assets/icons/polkadot/2color/Starting Period.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Success.svg b/assets/icons/polkadot/2color/Success.svg new file mode 100644 index 00000000..70eb70f1 --- /dev/null +++ b/assets/icons/polkadot/2color/Success.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Supply Chain.svg b/assets/icons/polkadot/2color/Supply Chain.svg new file mode 100644 index 00000000..95825eea --- /dev/null +++ b/assets/icons/polkadot/2color/Supply Chain.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Talent.svg b/assets/icons/polkadot/2color/Talent.svg new file mode 100644 index 00000000..755fccbb --- /dev/null +++ b/assets/icons/polkadot/2color/Talent.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Technical Committee.svg b/assets/icons/polkadot/2color/Technical Committee.svg new file mode 100644 index 00000000..83104957 --- /dev/null +++ b/assets/icons/polkadot/2color/Technical Committee.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Teleport.svg b/assets/icons/polkadot/2color/Teleport.svg new file mode 100644 index 00000000..8efe6b52 --- /dev/null +++ b/assets/icons/polkadot/2color/Teleport.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Testnet Token.svg b/assets/icons/polkadot/2color/Testnet Token.svg new file mode 100644 index 00000000..c91a801c --- /dev/null +++ b/assets/icons/polkadot/2color/Testnet Token.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Thumbs Down.svg b/assets/icons/polkadot/2color/Thumbs Down.svg new file mode 100644 index 00000000..ce54299d --- /dev/null +++ b/assets/icons/polkadot/2color/Thumbs Down.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Thumbs Up.svg b/assets/icons/polkadot/2color/Thumbs Up.svg new file mode 100644 index 00000000..2dd9c6a7 --- /dev/null +++ b/assets/icons/polkadot/2color/Thumbs Up.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Time.svg b/assets/icons/polkadot/2color/Time.svg new file mode 100644 index 00000000..43eebc8d --- /dev/null +++ b/assets/icons/polkadot/2color/Time.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Token Holders.svg b/assets/icons/polkadot/2color/Token Holders.svg new file mode 100644 index 00000000..f79e3063 --- /dev/null +++ b/assets/icons/polkadot/2color/Token Holders.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Token.svg b/assets/icons/polkadot/2color/Token.svg new file mode 100644 index 00000000..a674de05 --- /dev/null +++ b/assets/icons/polkadot/2color/Token.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Tools.svg b/assets/icons/polkadot/2color/Tools.svg new file mode 100644 index 00000000..831307c1 --- /dev/null +++ b/assets/icons/polkadot/2color/Tools.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Transaction.svg b/assets/icons/polkadot/2color/Transaction.svg new file mode 100644 index 00000000..e8a6a7e0 --- /dev/null +++ b/assets/icons/polkadot/2color/Transaction.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Translate.svg b/assets/icons/polkadot/2color/Translate.svg new file mode 100644 index 00000000..2a115997 --- /dev/null +++ b/assets/icons/polkadot/2color/Translate.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Transparency.svg b/assets/icons/polkadot/2color/Transparency.svg new file mode 100644 index 00000000..42a399b8 --- /dev/null +++ b/assets/icons/polkadot/2color/Transparency.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Treasury.svg b/assets/icons/polkadot/2color/Treasury.svg new file mode 100644 index 00000000..9d96ee9a --- /dev/null +++ b/assets/icons/polkadot/2color/Treasury.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Twitter.svg b/assets/icons/polkadot/2color/Twitter.svg new file mode 100644 index 00000000..553641ca --- /dev/null +++ b/assets/icons/polkadot/2color/Twitter.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Ui.svg b/assets/icons/polkadot/2color/Ui.svg new file mode 100644 index 00000000..a8699148 --- /dev/null +++ b/assets/icons/polkadot/2color/Ui.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Unbond.svg b/assets/icons/polkadot/2color/Unbond.svg new file mode 100644 index 00000000..8283144b --- /dev/null +++ b/assets/icons/polkadot/2color/Unbond.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Unchecked.svg b/assets/icons/polkadot/2color/Unchecked.svg new file mode 100644 index 00000000..57b1f69a --- /dev/null +++ b/assets/icons/polkadot/2color/Unchecked.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Unlock.svg b/assets/icons/polkadot/2color/Unlock.svg new file mode 100644 index 00000000..e69de13a --- /dev/null +++ b/assets/icons/polkadot/2color/Unlock.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Unstake.svg b/assets/icons/polkadot/2color/Unstake.svg new file mode 100644 index 00000000..c448fec0 --- /dev/null +++ b/assets/icons/polkadot/2color/Unstake.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Upgrade.svg b/assets/icons/polkadot/2color/Upgrade.svg new file mode 100644 index 00000000..3fe34bbb --- /dev/null +++ b/assets/icons/polkadot/2color/Upgrade.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Use Cases.svg b/assets/icons/polkadot/2color/Use Cases.svg new file mode 100644 index 00000000..4aaa34d8 --- /dev/null +++ b/assets/icons/polkadot/2color/Use Cases.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Users.svg b/assets/icons/polkadot/2color/Users.svg new file mode 100644 index 00000000..dd18a721 --- /dev/null +++ b/assets/icons/polkadot/2color/Users.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Utility.svg b/assets/icons/polkadot/2color/Utility.svg new file mode 100644 index 00000000..11652f38 --- /dev/null +++ b/assets/icons/polkadot/2color/Utility.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Ux.svg b/assets/icons/polkadot/2color/Ux.svg new file mode 100644 index 00000000..8919a0f9 --- /dev/null +++ b/assets/icons/polkadot/2color/Ux.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Validators.svg b/assets/icons/polkadot/2color/Validators.svg new file mode 100644 index 00000000..1e2dc0c5 --- /dev/null +++ b/assets/icons/polkadot/2color/Validators.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Value Bearing Token.svg b/assets/icons/polkadot/2color/Value Bearing Token.svg new file mode 100644 index 00000000..93307165 --- /dev/null +++ b/assets/icons/polkadot/2color/Value Bearing Token.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Verified Account.svg b/assets/icons/polkadot/2color/Verified Account.svg new file mode 100644 index 00000000..abf054fc --- /dev/null +++ b/assets/icons/polkadot/2color/Verified Account.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Verified Signed.svg b/assets/icons/polkadot/2color/Verified Signed.svg new file mode 100644 index 00000000..eafd67f0 --- /dev/null +++ b/assets/icons/polkadot/2color/Verified Signed.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Verify.svg b/assets/icons/polkadot/2color/Verify.svg new file mode 100644 index 00000000..db6f20b3 --- /dev/null +++ b/assets/icons/polkadot/2color/Verify.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Version.svg b/assets/icons/polkadot/2color/Version.svg new file mode 100644 index 00000000..6038a5fe --- /dev/null +++ b/assets/icons/polkadot/2color/Version.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Vesting Period.svg b/assets/icons/polkadot/2color/Vesting Period.svg new file mode 100644 index 00000000..177c6652 --- /dev/null +++ b/assets/icons/polkadot/2color/Vesting Period.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Vesting.svg b/assets/icons/polkadot/2color/Vesting.svg new file mode 100644 index 00000000..17337391 --- /dev/null +++ b/assets/icons/polkadot/2color/Vesting.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Video Pause.svg b/assets/icons/polkadot/2color/Video Pause.svg new file mode 100644 index 00000000..1b9cddd6 --- /dev/null +++ b/assets/icons/polkadot/2color/Video Pause.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Video Play.svg b/assets/icons/polkadot/2color/Video Play.svg new file mode 100644 index 00000000..1d89d8b5 --- /dev/null +++ b/assets/icons/polkadot/2color/Video Play.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Video.svg b/assets/icons/polkadot/2color/Video.svg new file mode 100644 index 00000000..a6ea3d9c --- /dev/null +++ b/assets/icons/polkadot/2color/Video.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Videos.svg b/assets/icons/polkadot/2color/Videos.svg new file mode 100644 index 00000000..ce47a27b --- /dev/null +++ b/assets/icons/polkadot/2color/Videos.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Vote.svg b/assets/icons/polkadot/2color/Vote.svg new file mode 100644 index 00000000..1ceaacd8 --- /dev/null +++ b/assets/icons/polkadot/2color/Vote.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Voting Period.svg b/assets/icons/polkadot/2color/Voting Period.svg new file mode 100644 index 00000000..0142eb06 --- /dev/null +++ b/assets/icons/polkadot/2color/Voting Period.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Wallet Deposit.svg b/assets/icons/polkadot/2color/Wallet Deposit.svg new file mode 100644 index 00000000..89a0a124 --- /dev/null +++ b/assets/icons/polkadot/2color/Wallet Deposit.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Wallet Withdraw.svg b/assets/icons/polkadot/2color/Wallet Withdraw.svg new file mode 100644 index 00000000..a5f597b2 --- /dev/null +++ b/assets/icons/polkadot/2color/Wallet Withdraw.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Wallet.svg b/assets/icons/polkadot/2color/Wallet.svg new file mode 100644 index 00000000..dfaf590e --- /dev/null +++ b/assets/icons/polkadot/2color/Wallet.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Wallets.svg b/assets/icons/polkadot/2color/Wallets.svg new file mode 100644 index 00000000..245afeb3 --- /dev/null +++ b/assets/icons/polkadot/2color/Wallets.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Wasm.svg b/assets/icons/polkadot/2color/Wasm.svg new file mode 100644 index 00000000..623d6ffe --- /dev/null +++ b/assets/icons/polkadot/2color/Wasm.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Web3.svg b/assets/icons/polkadot/2color/Web3.svg new file mode 100644 index 00000000..072fce6e --- /dev/null +++ b/assets/icons/polkadot/2color/Web3.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Whitepaper Download.svg b/assets/icons/polkadot/2color/Whitepaper Download.svg new file mode 100644 index 00000000..a4d2a122 --- /dev/null +++ b/assets/icons/polkadot/2color/Whitepaper Download.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Whitepaper Upload.svg b/assets/icons/polkadot/2color/Whitepaper Upload.svg new file mode 100644 index 00000000..3962e262 --- /dev/null +++ b/assets/icons/polkadot/2color/Whitepaper Upload.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Whitepaper.svg b/assets/icons/polkadot/2color/Whitepaper.svg new file mode 100644 index 00000000..f707cf08 --- /dev/null +++ b/assets/icons/polkadot/2color/Whitepaper.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/WiFi Off.svg b/assets/icons/polkadot/2color/WiFi Off.svg new file mode 100644 index 00000000..689d7366 --- /dev/null +++ b/assets/icons/polkadot/2color/WiFi Off.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/WiFi.svg b/assets/icons/polkadot/2color/WiFi.svg new file mode 100644 index 00000000..80510fb5 --- /dev/null +++ b/assets/icons/polkadot/2color/WiFi.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Wiki.svg b/assets/icons/polkadot/2color/Wiki.svg new file mode 100644 index 00000000..298e28f9 --- /dev/null +++ b/assets/icons/polkadot/2color/Wiki.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Withdraw.svg b/assets/icons/polkadot/2color/Withdraw.svg new file mode 100644 index 00000000..f694e397 --- /dev/null +++ b/assets/icons/polkadot/2color/Withdraw.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Workshop.svg b/assets/icons/polkadot/2color/Workshop.svg new file mode 100644 index 00000000..ec41012d --- /dev/null +++ b/assets/icons/polkadot/2color/Workshop.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/XCM (Message).svg b/assets/icons/polkadot/2color/XCM (Message).svg new file mode 100644 index 00000000..d1c06564 --- /dev/null +++ b/assets/icons/polkadot/2color/XCM (Message).svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/2color/Youtube.svg b/assets/icons/polkadot/2color/Youtube.svg new file mode 100644 index 00000000..71230aa4 --- /dev/null +++ b/assets/icons/polkadot/2color/Youtube.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/AI & Computing.svg b/assets/icons/polkadot/line/AI & Computing.svg new file mode 100644 index 00000000..33cacaa1 --- /dev/null +++ b/assets/icons/polkadot/line/AI & Computing.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Account Portability.svg b/assets/icons/polkadot/line/Account Portability.svg new file mode 100644 index 00000000..601abe23 --- /dev/null +++ b/assets/icons/polkadot/line/Account Portability.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Action Left.svg b/assets/icons/polkadot/line/Action Left.svg new file mode 100644 index 00000000..863c22e1 --- /dev/null +++ b/assets/icons/polkadot/line/Action Left.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Action Right.svg b/assets/icons/polkadot/line/Action Right.svg new file mode 100644 index 00000000..1ad062c8 --- /dev/null +++ b/assets/icons/polkadot/line/Action Right.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Add key pair.svg b/assets/icons/polkadot/line/Add key pair.svg new file mode 100644 index 00000000..2879ec19 --- /dev/null +++ b/assets/icons/polkadot/line/Add key pair.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Add user.svg b/assets/icons/polkadot/line/Add user.svg new file mode 100644 index 00000000..424af4f5 --- /dev/null +++ b/assets/icons/polkadot/line/Add user.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Add.svg b/assets/icons/polkadot/line/Add.svg new file mode 100644 index 00000000..f9dceb8c --- /dev/null +++ b/assets/icons/polkadot/line/Add.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Address book.svg b/assets/icons/polkadot/line/Address book.svg new file mode 100644 index 00000000..5cb28bc3 --- /dev/null +++ b/assets/icons/polkadot/line/Address book.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Airplane Mode.svg b/assets/icons/polkadot/line/Airplane Mode.svg new file mode 100644 index 00000000..87799346 --- /dev/null +++ b/assets/icons/polkadot/line/Airplane Mode.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Alert.svg b/assets/icons/polkadot/line/Alert.svg new file mode 100644 index 00000000..9c92c3ed --- /dev/null +++ b/assets/icons/polkadot/line/Alert.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Algorithm.svg b/assets/icons/polkadot/line/Algorithm.svg new file mode 100644 index 00000000..62b1d320 --- /dev/null +++ b/assets/icons/polkadot/line/Algorithm.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Alice.svg b/assets/icons/polkadot/line/Alice.svg new file mode 100644 index 00000000..7259c905 --- /dev/null +++ b/assets/icons/polkadot/line/Alice.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Ambassadors.svg b/assets/icons/polkadot/line/Ambassadors.svg new file mode 100644 index 00000000..41b3d380 --- /dev/null +++ b/assets/icons/polkadot/line/Ambassadors.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Announcement.svg b/assets/icons/polkadot/line/Announcement.svg new file mode 100644 index 00000000..15d158f3 --- /dev/null +++ b/assets/icons/polkadot/line/Announcement.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Anonymous Proxy.svg b/assets/icons/polkadot/line/Anonymous Proxy.svg new file mode 100644 index 00000000..3d45f11e --- /dev/null +++ b/assets/icons/polkadot/line/Anonymous Proxy.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Arbitrary Message.svg b/assets/icons/polkadot/line/Arbitrary Message.svg new file mode 100644 index 00000000..ac803df0 --- /dev/null +++ b/assets/icons/polkadot/line/Arbitrary Message.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Archive Node.svg b/assets/icons/polkadot/line/Archive Node.svg new file mode 100644 index 00000000..3cd82bd3 --- /dev/null +++ b/assets/icons/polkadot/line/Archive Node.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Arrow Back.svg b/assets/icons/polkadot/line/Arrow Back.svg new file mode 100644 index 00000000..96b70a2a --- /dev/null +++ b/assets/icons/polkadot/line/Arrow Back.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Arrow Down.svg b/assets/icons/polkadot/line/Arrow Down.svg new file mode 100644 index 00000000..045e4672 --- /dev/null +++ b/assets/icons/polkadot/line/Arrow Down.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Arrow Left.svg b/assets/icons/polkadot/line/Arrow Left.svg new file mode 100644 index 00000000..2342bc53 --- /dev/null +++ b/assets/icons/polkadot/line/Arrow Left.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Arrow Right.svg b/assets/icons/polkadot/line/Arrow Right.svg new file mode 100644 index 00000000..81832ba2 --- /dev/null +++ b/assets/icons/polkadot/line/Arrow Right.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Arrow Up.svg b/assets/icons/polkadot/line/Arrow Up.svg new file mode 100644 index 00000000..5dcddb82 --- /dev/null +++ b/assets/icons/polkadot/line/Arrow Up.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Article.svg b/assets/icons/polkadot/line/Article.svg new file mode 100644 index 00000000..160e6701 --- /dev/null +++ b/assets/icons/polkadot/line/Article.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Attack.svg b/assets/icons/polkadot/line/Attack.svg new file mode 100644 index 00000000..4c767bcc --- /dev/null +++ b/assets/icons/polkadot/line/Attack.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Auctions.svg b/assets/icons/polkadot/line/Auctions.svg new file mode 100644 index 00000000..43075259 --- /dev/null +++ b/assets/icons/polkadot/line/Auctions.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Authority.svg b/assets/icons/polkadot/line/Authority.svg new file mode 100644 index 00000000..13e04e75 --- /dev/null +++ b/assets/icons/polkadot/line/Authority.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Back Up.svg b/assets/icons/polkadot/line/Back Up.svg new file mode 100644 index 00000000..1f1b9fdc --- /dev/null +++ b/assets/icons/polkadot/line/Back Up.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Balance.svg b/assets/icons/polkadot/line/Balance.svg new file mode 100644 index 00000000..124dd5f8 --- /dev/null +++ b/assets/icons/polkadot/line/Balance.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Batch Transaction.svg b/assets/icons/polkadot/line/Batch Transaction.svg new file mode 100644 index 00000000..ad06cefb --- /dev/null +++ b/assets/icons/polkadot/line/Batch Transaction.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Bid.svg b/assets/icons/polkadot/line/Bid.svg new file mode 100644 index 00000000..486284bd --- /dev/null +++ b/assets/icons/polkadot/line/Bid.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Block Explorer.svg b/assets/icons/polkadot/line/Block Explorer.svg new file mode 100644 index 00000000..099cbc94 --- /dev/null +++ b/assets/icons/polkadot/line/Block Explorer.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Block Number.svg b/assets/icons/polkadot/line/Block Number.svg new file mode 100644 index 00000000..f1085491 --- /dev/null +++ b/assets/icons/polkadot/line/Block Number.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Block Search.svg b/assets/icons/polkadot/line/Block Search.svg new file mode 100644 index 00000000..909abf5b --- /dev/null +++ b/assets/icons/polkadot/line/Block Search.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Block.svg b/assets/icons/polkadot/line/Block.svg new file mode 100644 index 00000000..8ffae0f4 --- /dev/null +++ b/assets/icons/polkadot/line/Block.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Blockchain.svg b/assets/icons/polkadot/line/Blockchain.svg new file mode 100644 index 00000000..61175e9d --- /dev/null +++ b/assets/icons/polkadot/line/Blockchain.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Blog Post.svg b/assets/icons/polkadot/line/Blog Post.svg new file mode 100644 index 00000000..956ece00 --- /dev/null +++ b/assets/icons/polkadot/line/Blog Post.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Bob.svg b/assets/icons/polkadot/line/Bob.svg new file mode 100644 index 00000000..5043e52d --- /dev/null +++ b/assets/icons/polkadot/line/Bob.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Bond.svg b/assets/icons/polkadot/line/Bond.svg new file mode 100644 index 00000000..13e01451 --- /dev/null +++ b/assets/icons/polkadot/line/Bond.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Bonded Time.svg b/assets/icons/polkadot/line/Bonded Time.svg new file mode 100644 index 00000000..6c915451 --- /dev/null +++ b/assets/icons/polkadot/line/Bonded Time.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Boot Node.svg b/assets/icons/polkadot/line/Boot Node.svg new file mode 100644 index 00000000..473c4274 --- /dev/null +++ b/assets/icons/polkadot/line/Boot Node.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Bridge.svg b/assets/icons/polkadot/line/Bridge.svg new file mode 100644 index 00000000..7d5fc3bc --- /dev/null +++ b/assets/icons/polkadot/line/Bridge.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Bridges.svg b/assets/icons/polkadot/line/Bridges.svg new file mode 100644 index 00000000..7849a067 --- /dev/null +++ b/assets/icons/polkadot/line/Bridges.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Build.svg b/assets/icons/polkadot/line/Build.svg new file mode 100644 index 00000000..93e3ab5b --- /dev/null +++ b/assets/icons/polkadot/line/Build.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Builders _ Developers.svg b/assets/icons/polkadot/line/Builders _ Developers.svg new file mode 100644 index 00000000..308a14a9 --- /dev/null +++ b/assets/icons/polkadot/line/Builders _ Developers.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Built-in Security.svg b/assets/icons/polkadot/line/Built-in Security.svg new file mode 100644 index 00000000..f26e553f --- /dev/null +++ b/assets/icons/polkadot/line/Built-in Security.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Burn.svg b/assets/icons/polkadot/line/Burn.svg new file mode 100644 index 00000000..2bb64dad --- /dev/null +++ b/assets/icons/polkadot/line/Burn.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/C++.svg b/assets/icons/polkadot/line/C++.svg new file mode 100644 index 00000000..d6cc128a --- /dev/null +++ b/assets/icons/polkadot/line/C++.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Calendar.svg b/assets/icons/polkadot/line/Calendar.svg new file mode 100644 index 00000000..39b6535c --- /dev/null +++ b/assets/icons/polkadot/line/Calendar.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Career.svg b/assets/icons/polkadot/line/Career.svg new file mode 100644 index 00000000..dadc5600 --- /dev/null +++ b/assets/icons/polkadot/line/Career.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Certificate.svg b/assets/icons/polkadot/line/Certificate.svg new file mode 100644 index 00000000..687ee391 --- /dev/null +++ b/assets/icons/polkadot/line/Certificate.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Cex.svg b/assets/icons/polkadot/line/Cex.svg new file mode 100644 index 00000000..56e9c6c8 --- /dev/null +++ b/assets/icons/polkadot/line/Cex.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Chain Spec.svg b/assets/icons/polkadot/line/Chain Spec.svg new file mode 100644 index 00000000..616e632d --- /dev/null +++ b/assets/icons/polkadot/line/Chain Spec.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Check.svg b/assets/icons/polkadot/line/Check.svg new file mode 100644 index 00000000..09432dfc --- /dev/null +++ b/assets/icons/polkadot/line/Check.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Checked.svg b/assets/icons/polkadot/line/Checked.svg new file mode 100644 index 00000000..24a433b8 --- /dev/null +++ b/assets/icons/polkadot/line/Checked.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Chevron Down.svg b/assets/icons/polkadot/line/Chevron Down.svg new file mode 100644 index 00000000..b9282b1e --- /dev/null +++ b/assets/icons/polkadot/line/Chevron Down.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Chevron Up.svg b/assets/icons/polkadot/line/Chevron Up.svg new file mode 100644 index 00000000..f1f9d634 --- /dev/null +++ b/assets/icons/polkadot/line/Chevron Up.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Claim.svg b/assets/icons/polkadot/line/Claim.svg new file mode 100644 index 00000000..b2069f6b --- /dev/null +++ b/assets/icons/polkadot/line/Claim.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Close.svg b/assets/icons/polkadot/line/Close.svg new file mode 100644 index 00000000..ba586549 --- /dev/null +++ b/assets/icons/polkadot/line/Close.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Cloud.svg b/assets/icons/polkadot/line/Cloud.svg new file mode 100644 index 00000000..85e9e6c2 --- /dev/null +++ b/assets/icons/polkadot/line/Cloud.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Code.svg b/assets/icons/polkadot/line/Code.svg new file mode 100644 index 00000000..9d2a51c5 --- /dev/null +++ b/assets/icons/polkadot/line/Code.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Collapse.svg b/assets/icons/polkadot/line/Collapse.svg new file mode 100644 index 00000000..70d19dc8 --- /dev/null +++ b/assets/icons/polkadot/line/Collapse.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Collators.svg b/assets/icons/polkadot/line/Collators.svg new file mode 100644 index 00000000..0902dcd1 --- /dev/null +++ b/assets/icons/polkadot/line/Collators.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Collective.svg b/assets/icons/polkadot/line/Collective.svg new file mode 100644 index 00000000..0e9ae3bb --- /dev/null +++ b/assets/icons/polkadot/line/Collective.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Communications And Media.svg b/assets/icons/polkadot/line/Communications And Media.svg new file mode 100644 index 00000000..846bd572 --- /dev/null +++ b/assets/icons/polkadot/line/Communications And Media.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Community Events And Outreach.svg b/assets/icons/polkadot/line/Community Events And Outreach.svg new file mode 100644 index 00000000..c98dd271 --- /dev/null +++ b/assets/icons/polkadot/line/Community Events And Outreach.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Community.svg b/assets/icons/polkadot/line/Community.svg new file mode 100644 index 00000000..f1302854 --- /dev/null +++ b/assets/icons/polkadot/line/Community.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Companion Account (in Bridge context).svg b/assets/icons/polkadot/line/Companion Account (in Bridge context).svg new file mode 100644 index 00000000..f9dbc720 --- /dev/null +++ b/assets/icons/polkadot/line/Companion Account (in Bridge context).svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Connect Wallet_Address.svg b/assets/icons/polkadot/line/Connect Wallet_Address.svg new file mode 100644 index 00000000..f6e9b4fa --- /dev/null +++ b/assets/icons/polkadot/line/Connect Wallet_Address.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Connected.svg b/assets/icons/polkadot/line/Connected.svg new file mode 100644 index 00000000..573c4ef5 --- /dev/null +++ b/assets/icons/polkadot/line/Connected.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Connection Via Light Node.svg b/assets/icons/polkadot/line/Connection Via Light Node.svg new file mode 100644 index 00000000..c96f6bdf --- /dev/null +++ b/assets/icons/polkadot/line/Connection Via Light Node.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Connection Via Remote Node.svg b/assets/icons/polkadot/line/Connection Via Remote Node.svg new file mode 100644 index 00000000..d61052f4 --- /dev/null +++ b/assets/icons/polkadot/line/Connection Via Remote Node.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Consensus.svg b/assets/icons/polkadot/line/Consensus.svg new file mode 100644 index 00000000..14edb247 --- /dev/null +++ b/assets/icons/polkadot/line/Consensus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Contract.svg b/assets/icons/polkadot/line/Contract.svg new file mode 100644 index 00000000..798c1bdf --- /dev/null +++ b/assets/icons/polkadot/line/Contract.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Cooling Period.svg b/assets/icons/polkadot/line/Cooling Period.svg new file mode 100644 index 00000000..abe7a3c5 --- /dev/null +++ b/assets/icons/polkadot/line/Cooling Period.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Copy _ Paste.svg b/assets/icons/polkadot/line/Copy _ Paste.svg new file mode 100644 index 00000000..474d3012 --- /dev/null +++ b/assets/icons/polkadot/line/Copy _ Paste.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Costly To Maintain.svg b/assets/icons/polkadot/line/Costly To Maintain.svg new file mode 100644 index 00000000..4de82f7e --- /dev/null +++ b/assets/icons/polkadot/line/Costly To Maintain.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Council.svg b/assets/icons/polkadot/line/Council.svg new file mode 100644 index 00000000..4336c1db --- /dev/null +++ b/assets/icons/polkadot/line/Council.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Countdown.svg b/assets/icons/polkadot/line/Countdown.svg new file mode 100644 index 00000000..49e87711 --- /dev/null +++ b/assets/icons/polkadot/line/Countdown.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Create New From Source.svg b/assets/icons/polkadot/line/Create New From Source.svg new file mode 100644 index 00000000..4527e980 --- /dev/null +++ b/assets/icons/polkadot/line/Create New From Source.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Cross-Chain Application.svg b/assets/icons/polkadot/line/Cross-Chain Application.svg new file mode 100644 index 00000000..852e28dc --- /dev/null +++ b/assets/icons/polkadot/line/Cross-Chain Application.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Cross-Chain Certification.svg b/assets/icons/polkadot/line/Cross-Chain Certification.svg new file mode 100644 index 00000000..10dfe874 --- /dev/null +++ b/assets/icons/polkadot/line/Cross-Chain Certification.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Cross-Chain Transfers.svg b/assets/icons/polkadot/line/Cross-Chain Transfers.svg new file mode 100644 index 00000000..d277d318 --- /dev/null +++ b/assets/icons/polkadot/line/Cross-Chain Transfers.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Cross-Chain.svg b/assets/icons/polkadot/line/Cross-Chain.svg new file mode 100644 index 00000000..17d77478 --- /dev/null +++ b/assets/icons/polkadot/line/Cross-Chain.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Crowdloans.svg b/assets/icons/polkadot/line/Crowdloans.svg new file mode 100644 index 00000000..93c0b349 --- /dev/null +++ b/assets/icons/polkadot/line/Crowdloans.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Cryptocurrency.svg b/assets/icons/polkadot/line/Cryptocurrency.svg new file mode 100644 index 00000000..9fe48c1a --- /dev/null +++ b/assets/icons/polkadot/line/Cryptocurrency.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Customisation.svg b/assets/icons/polkadot/line/Customisation.svg new file mode 100644 index 00000000..29e6f8c5 --- /dev/null +++ b/assets/icons/polkadot/line/Customisation.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/DAOs.svg b/assets/icons/polkadot/line/DAOs.svg new file mode 100644 index 00000000..3e23d6da --- /dev/null +++ b/assets/icons/polkadot/line/DAOs.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/DEX.svg b/assets/icons/polkadot/line/DEX.svg new file mode 100644 index 00000000..036953ef --- /dev/null +++ b/assets/icons/polkadot/line/DEX.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Dapps.svg b/assets/icons/polkadot/line/Dapps.svg new file mode 100644 index 00000000..9db16584 --- /dev/null +++ b/assets/icons/polkadot/line/Dapps.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Data & Analytics.svg b/assets/icons/polkadot/line/Data & Analytics.svg new file mode 100644 index 00000000..aa9e2cb0 --- /dev/null +++ b/assets/icons/polkadot/line/Data & Analytics.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Day_Light Mode.svg b/assets/icons/polkadot/line/Day_Light Mode.svg new file mode 100644 index 00000000..50b4c80f --- /dev/null +++ b/assets/icons/polkadot/line/Day_Light Mode.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/DeFi.svg b/assets/icons/polkadot/line/DeFi.svg new file mode 100644 index 00000000..12c9a2d8 --- /dev/null +++ b/assets/icons/polkadot/line/DeFi.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Decentralised File Storage.svg b/assets/icons/polkadot/line/Decentralised File Storage.svg new file mode 100644 index 00000000..6c1821b5 --- /dev/null +++ b/assets/icons/polkadot/line/Decentralised File Storage.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Delete_Cancel.svg b/assets/icons/polkadot/line/Delete_Cancel.svg new file mode 100644 index 00000000..4f3dce41 --- /dev/null +++ b/assets/icons/polkadot/line/Delete_Cancel.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Democracy.svg b/assets/icons/polkadot/line/Democracy.svg new file mode 100644 index 00000000..8311f6f6 --- /dev/null +++ b/assets/icons/polkadot/line/Democracy.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Deposit.svg b/assets/icons/polkadot/line/Deposit.svg new file mode 100644 index 00000000..604f1ddc --- /dev/null +++ b/assets/icons/polkadot/line/Deposit.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Derivation Path.svg b/assets/icons/polkadot/line/Derivation Path.svg new file mode 100644 index 00000000..9c7f7163 --- /dev/null +++ b/assets/icons/polkadot/line/Derivation Path.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Derive An Address.svg b/assets/icons/polkadot/line/Derive An Address.svg new file mode 100644 index 00000000..e04b5da2 --- /dev/null +++ b/assets/icons/polkadot/line/Derive An Address.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Derive Key Pair.svg b/assets/icons/polkadot/line/Derive Key Pair.svg new file mode 100644 index 00000000..b34b1367 --- /dev/null +++ b/assets/icons/polkadot/line/Derive Key Pair.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Disconnected.svg b/assets/icons/polkadot/line/Disconnected.svg new file mode 100644 index 00000000..aeb1c115 --- /dev/null +++ b/assets/icons/polkadot/line/Disconnected.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Distributed File Storage.svg b/assets/icons/polkadot/line/Distributed File Storage.svg new file mode 100644 index 00000000..d2128aea --- /dev/null +++ b/assets/icons/polkadot/line/Distributed File Storage.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Documentations.svg b/assets/icons/polkadot/line/Documentations.svg new file mode 100644 index 00000000..48db6f52 --- /dev/null +++ b/assets/icons/polkadot/line/Documentations.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Download.svg b/assets/icons/polkadot/line/Download.svg new file mode 100644 index 00000000..714a30a5 --- /dev/null +++ b/assets/icons/polkadot/line/Download.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Draw.svg b/assets/icons/polkadot/line/Draw.svg new file mode 100644 index 00000000..6c4d1fde --- /dev/null +++ b/assets/icons/polkadot/line/Draw.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Drip.svg b/assets/icons/polkadot/line/Drip.svg new file mode 100644 index 00000000..09c49e63 --- /dev/null +++ b/assets/icons/polkadot/line/Drip.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Dropdown Up.svg b/assets/icons/polkadot/line/Dropdown Up.svg new file mode 100644 index 00000000..7f51aede --- /dev/null +++ b/assets/icons/polkadot/line/Dropdown Up.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Dropdown.svg b/assets/icons/polkadot/line/Dropdown.svg new file mode 100644 index 00000000..17c1a46e --- /dev/null +++ b/assets/icons/polkadot/line/Dropdown.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Ecosystem Provisions.svg b/assets/icons/polkadot/line/Ecosystem Provisions.svg new file mode 100644 index 00000000..07a009ba --- /dev/null +++ b/assets/icons/polkadot/line/Ecosystem Provisions.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Ecosystem.svg b/assets/icons/polkadot/line/Ecosystem.svg new file mode 100644 index 00000000..7e041ed8 --- /dev/null +++ b/assets/icons/polkadot/line/Ecosystem.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Edit-Off.svg b/assets/icons/polkadot/line/Edit-Off.svg new file mode 100644 index 00000000..05450ad3 --- /dev/null +++ b/assets/icons/polkadot/line/Edit-Off.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Edit-On.svg b/assets/icons/polkadot/line/Edit-On.svg new file mode 100644 index 00000000..4ba03b68 --- /dev/null +++ b/assets/icons/polkadot/line/Edit-On.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Elections.svg b/assets/icons/polkadot/line/Elections.svg new file mode 100644 index 00000000..669e7af5 --- /dev/null +++ b/assets/icons/polkadot/line/Elections.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Email.svg b/assets/icons/polkadot/line/Email.svg new file mode 100644 index 00000000..c93e32fa --- /dev/null +++ b/assets/icons/polkadot/line/Email.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Encryption.svg b/assets/icons/polkadot/line/Encryption.svg new file mode 100644 index 00000000..45bcde6a --- /dev/null +++ b/assets/icons/polkadot/line/Encryption.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Ending Period.svg b/assets/icons/polkadot/line/Ending Period.svg new file mode 100644 index 00000000..e45a6462 --- /dev/null +++ b/assets/icons/polkadot/line/Ending Period.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Energy Deficiency.svg b/assets/icons/polkadot/line/Energy Deficiency.svg new file mode 100644 index 00000000..787818b4 --- /dev/null +++ b/assets/icons/polkadot/line/Energy Deficiency.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Energy Efficiency.svg b/assets/icons/polkadot/line/Energy Efficiency.svg new file mode 100644 index 00000000..40c69fe2 --- /dev/null +++ b/assets/icons/polkadot/line/Energy Efficiency.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Energy.svg b/assets/icons/polkadot/line/Energy.svg new file mode 100644 index 00000000..80701add --- /dev/null +++ b/assets/icons/polkadot/line/Energy.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Enterprise.svg b/assets/icons/polkadot/line/Enterprise.svg new file mode 100644 index 00000000..b02958b4 --- /dev/null +++ b/assets/icons/polkadot/line/Enterprise.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Error.svg b/assets/icons/polkadot/line/Error.svg new file mode 100644 index 00000000..0c7ac72a --- /dev/null +++ b/assets/icons/polkadot/line/Error.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Eve.svg b/assets/icons/polkadot/line/Eve.svg new file mode 100644 index 00000000..bd901f2e --- /dev/null +++ b/assets/icons/polkadot/line/Eve.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Events.svg b/assets/icons/polkadot/line/Events.svg new file mode 100644 index 00000000..5d76d90c --- /dev/null +++ b/assets/icons/polkadot/line/Events.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Existential Deposit.svg b/assets/icons/polkadot/line/Existential Deposit.svg new file mode 100644 index 00000000..5cdda962 --- /dev/null +++ b/assets/icons/polkadot/line/Existential Deposit.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Export (M,L).svg b/assets/icons/polkadot/line/Export (M,L).svg new file mode 100644 index 00000000..037a25ef --- /dev/null +++ b/assets/icons/polkadot/line/Export (M,L).svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Export (XS,S).svg b/assets/icons/polkadot/line/Export (XS,S).svg new file mode 100644 index 00000000..91768f25 --- /dev/null +++ b/assets/icons/polkadot/line/Export (XS,S).svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Extension.svg b/assets/icons/polkadot/line/Extension.svg new file mode 100644 index 00000000..7cf63d30 --- /dev/null +++ b/assets/icons/polkadot/line/Extension.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Favorite To-Be.svg b/assets/icons/polkadot/line/Favorite To-Be.svg new file mode 100644 index 00000000..42597465 --- /dev/null +++ b/assets/icons/polkadot/line/Favorite To-Be.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Favorite.svg b/assets/icons/polkadot/line/Favorite.svg new file mode 100644 index 00000000..22de1107 --- /dev/null +++ b/assets/icons/polkadot/line/Favorite.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Feeless.svg b/assets/icons/polkadot/line/Feeless.svg new file mode 100644 index 00000000..5458f705 --- /dev/null +++ b/assets/icons/polkadot/line/Feeless.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Fees.svg b/assets/icons/polkadot/line/Fees.svg new file mode 100644 index 00000000..ab4523d7 --- /dev/null +++ b/assets/icons/polkadot/line/Fees.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Fiat.svg b/assets/icons/polkadot/line/Fiat.svg new file mode 100644 index 00000000..107e7b01 --- /dev/null +++ b/assets/icons/polkadot/line/Fiat.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Filter.svg b/assets/icons/polkadot/line/Filter.svg new file mode 100644 index 00000000..0092bc16 --- /dev/null +++ b/assets/icons/polkadot/line/Filter.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Finances.svg b/assets/icons/polkadot/line/Finances.svg new file mode 100644 index 00000000..cd71e9e6 --- /dev/null +++ b/assets/icons/polkadot/line/Finances.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Fork.svg b/assets/icons/polkadot/line/Fork.svg new file mode 100644 index 00000000..a53598e7 --- /dev/null +++ b/assets/icons/polkadot/line/Fork.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/ForklessUpgrades.svg b/assets/icons/polkadot/line/ForklessUpgrades.svg new file mode 100644 index 00000000..b8f39298 --- /dev/null +++ b/assets/icons/polkadot/line/ForklessUpgrades.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Full Node.svg b/assets/icons/polkadot/line/Full Node.svg new file mode 100644 index 00000000..ecd39e75 --- /dev/null +++ b/assets/icons/polkadot/line/Full Node.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Fund Account.svg b/assets/icons/polkadot/line/Fund Account.svg new file mode 100644 index 00000000..bbc3696c --- /dev/null +++ b/assets/icons/polkadot/line/Fund Account.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Fund Savings.svg b/assets/icons/polkadot/line/Fund Savings.svg new file mode 100644 index 00000000..a6345cf9 --- /dev/null +++ b/assets/icons/polkadot/line/Fund Savings.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Gaming.svg b/assets/icons/polkadot/line/Gaming.svg new file mode 100644 index 00000000..97211371 --- /dev/null +++ b/assets/icons/polkadot/line/Gaming.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Genesis.svg b/assets/icons/polkadot/line/Genesis.svg new file mode 100644 index 00000000..6be683e6 --- /dev/null +++ b/assets/icons/polkadot/line/Genesis.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Gift.svg b/assets/icons/polkadot/line/Gift.svg new file mode 100644 index 00000000..700dfffb --- /dev/null +++ b/assets/icons/polkadot/line/Gift.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Glossary.svg b/assets/icons/polkadot/line/Glossary.svg new file mode 100644 index 00000000..dc0b73c4 --- /dev/null +++ b/assets/icons/polkadot/line/Glossary.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Go.svg b/assets/icons/polkadot/line/Go.svg new file mode 100644 index 00000000..9ba08f25 --- /dev/null +++ b/assets/icons/polkadot/line/Go.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Governance.svg b/assets/icons/polkadot/line/Governance.svg new file mode 100644 index 00000000..94364f8f --- /dev/null +++ b/assets/icons/polkadot/line/Governance.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Governments.svg b/assets/icons/polkadot/line/Governments.svg new file mode 100644 index 00000000..ea445d61 --- /dev/null +++ b/assets/icons/polkadot/line/Governments.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Hackathon.svg b/assets/icons/polkadot/line/Hackathon.svg new file mode 100644 index 00000000..845b5184 --- /dev/null +++ b/assets/icons/polkadot/line/Hackathon.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Hash Function.svg b/assets/icons/polkadot/line/Hash Function.svg new file mode 100644 index 00000000..993eb00c --- /dev/null +++ b/assets/icons/polkadot/line/Hash Function.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Healthcare.svg b/assets/icons/polkadot/line/Healthcare.svg new file mode 100644 index 00000000..50915d6d --- /dev/null +++ b/assets/icons/polkadot/line/Healthcare.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Help.svg b/assets/icons/polkadot/line/Help.svg new file mode 100644 index 00000000..9516994f --- /dev/null +++ b/assets/icons/polkadot/line/Help.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Heterogeneous Sharding.svg b/assets/icons/polkadot/line/Heterogeneous Sharding.svg new file mode 100644 index 00000000..c36fa883 --- /dev/null +++ b/assets/icons/polkadot/line/Heterogeneous Sharding.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Identify.svg b/assets/icons/polkadot/line/Identify.svg new file mode 100644 index 00000000..eee4bf28 --- /dev/null +++ b/assets/icons/polkadot/line/Identify.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Identity.svg b/assets/icons/polkadot/line/Identity.svg new file mode 100644 index 00000000..a172c9f5 --- /dev/null +++ b/assets/icons/polkadot/line/Identity.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Import Token.svg b/assets/icons/polkadot/line/Import Token.svg new file mode 100644 index 00000000..1bcd3a53 --- /dev/null +++ b/assets/icons/polkadot/line/Import Token.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Indeterminate _ Negative.svg b/assets/icons/polkadot/line/Indeterminate _ Negative.svg new file mode 100644 index 00000000..55bf9972 --- /dev/null +++ b/assets/icons/polkadot/line/Indeterminate _ Negative.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Informational.svg b/assets/icons/polkadot/line/Informational.svg new file mode 100644 index 00000000..f8eea970 --- /dev/null +++ b/assets/icons/polkadot/line/Informational.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Infrastructure.svg b/assets/icons/polkadot/line/Infrastructure.svg new file mode 100644 index 00000000..004ce9a1 --- /dev/null +++ b/assets/icons/polkadot/line/Infrastructure.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Injected Account.svg b/assets/icons/polkadot/line/Injected Account.svg new file mode 100644 index 00000000..d72c17e9 --- /dev/null +++ b/assets/icons/polkadot/line/Injected Account.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Interconnected.svg b/assets/icons/polkadot/line/Interconnected.svg new file mode 100644 index 00000000..27e774b7 --- /dev/null +++ b/assets/icons/polkadot/line/Interconnected.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Interoperability.svg b/assets/icons/polkadot/line/Interoperability.svg new file mode 100644 index 00000000..a9f81a5a --- /dev/null +++ b/assets/icons/polkadot/line/Interoperability.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Investors.svg b/assets/icons/polkadot/line/Investors.svg new file mode 100644 index 00000000..694d0b36 --- /dev/null +++ b/assets/icons/polkadot/line/Investors.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/IoT And Robotics.svg b/assets/icons/polkadot/line/IoT And Robotics.svg new file mode 100644 index 00000000..b076c410 --- /dev/null +++ b/assets/icons/polkadot/line/IoT And Robotics.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/IoT.svg b/assets/icons/polkadot/line/IoT.svg new file mode 100644 index 00000000..3757875b --- /dev/null +++ b/assets/icons/polkadot/line/IoT.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Isolated.svg b/assets/icons/polkadot/line/Isolated.svg new file mode 100644 index 00000000..c61484bd --- /dev/null +++ b/assets/icons/polkadot/line/Isolated.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/KeepAlive Check.svg b/assets/icons/polkadot/line/KeepAlive Check.svg new file mode 100644 index 00000000..1248aa49 --- /dev/null +++ b/assets/icons/polkadot/line/KeepAlive Check.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Key.svg b/assets/icons/polkadot/line/Key.svg new file mode 100644 index 00000000..7b79daa2 --- /dev/null +++ b/assets/icons/polkadot/line/Key.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Language.svg b/assets/icons/polkadot/line/Language.svg new file mode 100644 index 00000000..c8daf7e1 --- /dev/null +++ b/assets/icons/polkadot/line/Language.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Layer (Four).svg b/assets/icons/polkadot/line/Layer (Four).svg new file mode 100644 index 00000000..ee9f4832 --- /dev/null +++ b/assets/icons/polkadot/line/Layer (Four).svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Layer (One).svg b/assets/icons/polkadot/line/Layer (One).svg new file mode 100644 index 00000000..1ff50f2a --- /dev/null +++ b/assets/icons/polkadot/line/Layer (One).svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Layer (Three).svg b/assets/icons/polkadot/line/Layer (Three).svg new file mode 100644 index 00000000..c8da74a2 --- /dev/null +++ b/assets/icons/polkadot/line/Layer (Three).svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Layer (Two).svg b/assets/icons/polkadot/line/Layer (Two).svg new file mode 100644 index 00000000..312e8aee --- /dev/null +++ b/assets/icons/polkadot/line/Layer (Two).svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Layer.svg b/assets/icons/polkadot/line/Layer.svg new file mode 100644 index 00000000..d2d4e6d4 --- /dev/null +++ b/assets/icons/polkadot/line/Layer.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Learn More.svg b/assets/icons/polkadot/line/Learn More.svg new file mode 100644 index 00000000..0906bc57 --- /dev/null +++ b/assets/icons/polkadot/line/Learn More.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Learn.svg b/assets/icons/polkadot/line/Learn.svg new file mode 100644 index 00000000..f54dbf45 --- /dev/null +++ b/assets/icons/polkadot/line/Learn.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Lease Duration.svg b/assets/icons/polkadot/line/Lease Duration.svg new file mode 100644 index 00000000..dd0f8388 --- /dev/null +++ b/assets/icons/polkadot/line/Lease Duration.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Library.svg b/assets/icons/polkadot/line/Library.svg new file mode 100644 index 00000000..a6103e16 --- /dev/null +++ b/assets/icons/polkadot/line/Library.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Light Node.svg b/assets/icons/polkadot/line/Light Node.svg new file mode 100644 index 00000000..fdaef6eb --- /dev/null +++ b/assets/icons/polkadot/line/Light Node.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Lights On.svg b/assets/icons/polkadot/line/Lights On.svg new file mode 100644 index 00000000..5ec3af77 --- /dev/null +++ b/assets/icons/polkadot/line/Lights On.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Limited Supply.svg b/assets/icons/polkadot/line/Limited Supply.svg new file mode 100644 index 00000000..997ef629 --- /dev/null +++ b/assets/icons/polkadot/line/Limited Supply.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/LinkedIn.svg b/assets/icons/polkadot/line/LinkedIn.svg new file mode 100644 index 00000000..002695a2 --- /dev/null +++ b/assets/icons/polkadot/line/LinkedIn.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Lock.svg b/assets/icons/polkadot/line/Lock.svg new file mode 100644 index 00000000..af3317af --- /dev/null +++ b/assets/icons/polkadot/line/Lock.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Maintain.svg b/assets/icons/polkadot/line/Maintain.svg new file mode 100644 index 00000000..ffd69169 --- /dev/null +++ b/assets/icons/polkadot/line/Maintain.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Marketing.svg b/assets/icons/polkadot/line/Marketing.svg new file mode 100644 index 00000000..3ab53915 --- /dev/null +++ b/assets/icons/polkadot/line/Marketing.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Menu.svg b/assets/icons/polkadot/line/Menu.svg new file mode 100644 index 00000000..01058006 --- /dev/null +++ b/assets/icons/polkadot/line/Menu.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Message.svg b/assets/icons/polkadot/line/Message.svg new file mode 100644 index 00000000..81c62d5c --- /dev/null +++ b/assets/icons/polkadot/line/Message.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Metaverse.svg b/assets/icons/polkadot/line/Metaverse.svg new file mode 100644 index 00000000..b668c9e9 --- /dev/null +++ b/assets/icons/polkadot/line/Metaverse.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Mitigating Mev.svg b/assets/icons/polkadot/line/Mitigating Mev.svg new file mode 100644 index 00000000..cf78f831 --- /dev/null +++ b/assets/icons/polkadot/line/Mitigating Mev.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Mobile App.svg b/assets/icons/polkadot/line/Mobile App.svg new file mode 100644 index 00000000..c4477713 --- /dev/null +++ b/assets/icons/polkadot/line/Mobile App.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Monitor.svg b/assets/icons/polkadot/line/Monitor.svg new file mode 100644 index 00000000..410bf322 --- /dev/null +++ b/assets/icons/polkadot/line/Monitor.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/More Horizontal.svg b/assets/icons/polkadot/line/More Horizontal.svg new file mode 100644 index 00000000..d0a478fc --- /dev/null +++ b/assets/icons/polkadot/line/More Horizontal.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/More Menu.svg b/assets/icons/polkadot/line/More Menu.svg new file mode 100644 index 00000000..55b5de6c --- /dev/null +++ b/assets/icons/polkadot/line/More Menu.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/More Vertical.svg b/assets/icons/polkadot/line/More Vertical.svg new file mode 100644 index 00000000..b41e94ad --- /dev/null +++ b/assets/icons/polkadot/line/More Vertical.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Multichain Smart Contracts.svg b/assets/icons/polkadot/line/Multichain Smart Contracts.svg new file mode 100644 index 00000000..0ecece74 --- /dev/null +++ b/assets/icons/polkadot/line/Multichain Smart Contracts.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Multichain Treasuries.svg b/assets/icons/polkadot/line/Multichain Treasuries.svg new file mode 100644 index 00000000..8214a165 --- /dev/null +++ b/assets/icons/polkadot/line/Multichain Treasuries.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Multisign Account.svg b/assets/icons/polkadot/line/Multisign Account.svg new file mode 100644 index 00000000..24440b1e --- /dev/null +++ b/assets/icons/polkadot/line/Multisign Account.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Multisign.svg b/assets/icons/polkadot/line/Multisign.svg new file mode 100644 index 00000000..af9387b9 --- /dev/null +++ b/assets/icons/polkadot/line/Multisign.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/NFT Staking.svg b/assets/icons/polkadot/line/NFT Staking.svg new file mode 100644 index 00000000..5c8fa33d --- /dev/null +++ b/assets/icons/polkadot/line/NFT Staking.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Network Is Connected.svg b/assets/icons/polkadot/line/Network Is Connected.svg new file mode 100644 index 00000000..676a7649 --- /dev/null +++ b/assets/icons/polkadot/line/Network Is Connected.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Network Security Operations.svg b/assets/icons/polkadot/line/Network Security Operations.svg new file mode 100644 index 00000000..5d40d754 --- /dev/null +++ b/assets/icons/polkadot/line/Network Security Operations.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/New Tab.svg b/assets/icons/polkadot/line/New Tab.svg new file mode 100644 index 00000000..868591b9 --- /dev/null +++ b/assets/icons/polkadot/line/New Tab.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/News.svg b/assets/icons/polkadot/line/News.svg new file mode 100644 index 00000000..5e104292 --- /dev/null +++ b/assets/icons/polkadot/line/News.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Nft.svg b/assets/icons/polkadot/line/Nft.svg new file mode 100644 index 00000000..09f96fbc --- /dev/null +++ b/assets/icons/polkadot/line/Nft.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Night_Dark Mode.svg b/assets/icons/polkadot/line/Night_Dark Mode.svg new file mode 100644 index 00000000..20d507e2 --- /dev/null +++ b/assets/icons/polkadot/line/Night_Dark Mode.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Node.svg b/assets/icons/polkadot/line/Node.svg new file mode 100644 index 00000000..e5735391 --- /dev/null +++ b/assets/icons/polkadot/line/Node.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Nominating.svg b/assets/icons/polkadot/line/Nominating.svg new file mode 100644 index 00000000..88207802 --- /dev/null +++ b/assets/icons/polkadot/line/Nominating.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Nominators.svg b/assets/icons/polkadot/line/Nominators.svg new file mode 100644 index 00000000..2119b3cd --- /dev/null +++ b/assets/icons/polkadot/line/Nominators.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Not Able To Upgrade.svg b/assets/icons/polkadot/line/Not Able To Upgrade.svg new file mode 100644 index 00000000..5904c3ac --- /dev/null +++ b/assets/icons/polkadot/line/Not Able To Upgrade.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Not Scalable.svg b/assets/icons/polkadot/line/Not Scalable.svg new file mode 100644 index 00000000..18b1f5b4 --- /dev/null +++ b/assets/icons/polkadot/line/Not Scalable.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Notification.svg b/assets/icons/polkadot/line/Notification.svg new file mode 100644 index 00000000..e815adb5 --- /dev/null +++ b/assets/icons/polkadot/line/Notification.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Off-Chain Computations.svg b/assets/icons/polkadot/line/Off-Chain Computations.svg new file mode 100644 index 00000000..c0276598 --- /dev/null +++ b/assets/icons/polkadot/line/Off-Chain Computations.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Offboarding.svg b/assets/icons/polkadot/line/Offboarding.svg new file mode 100644 index 00000000..de0f82bb --- /dev/null +++ b/assets/icons/polkadot/line/Offboarding.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/On-Chain Scheduling.svg b/assets/icons/polkadot/line/On-Chain Scheduling.svg new file mode 100644 index 00000000..d9ee57b2 --- /dev/null +++ b/assets/icons/polkadot/line/On-Chain Scheduling.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Onboarding.svg b/assets/icons/polkadot/line/Onboarding.svg new file mode 100644 index 00000000..9cf4f12f --- /dev/null +++ b/assets/icons/polkadot/line/Onboarding.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Oracle.svg b/assets/icons/polkadot/line/Oracle.svg new file mode 100644 index 00000000..8d90f259 --- /dev/null +++ b/assets/icons/polkadot/line/Oracle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Oracles.svg b/assets/icons/polkadot/line/Oracles.svg new file mode 100644 index 00000000..9082b35b --- /dev/null +++ b/assets/icons/polkadot/line/Oracles.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Overview.svg b/assets/icons/polkadot/line/Overview.svg new file mode 100644 index 00000000..5b2fc514 --- /dev/null +++ b/assets/icons/polkadot/line/Overview.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Paper Money.svg b/assets/icons/polkadot/line/Paper Money.svg new file mode 100644 index 00000000..b46e8f3c --- /dev/null +++ b/assets/icons/polkadot/line/Paper Money.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Parachains.svg b/assets/icons/polkadot/line/Parachains.svg new file mode 100644 index 00000000..ba7dd01f --- /dev/null +++ b/assets/icons/polkadot/line/Parachains.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Payout.svg b/assets/icons/polkadot/line/Payout.svg new file mode 100644 index 00000000..e38e43cd --- /dev/null +++ b/assets/icons/polkadot/line/Payout.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Picture.svg b/assets/icons/polkadot/line/Picture.svg new file mode 100644 index 00000000..a3aa5c2d --- /dev/null +++ b/assets/icons/polkadot/line/Picture.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Podcasts.svg b/assets/icons/polkadot/line/Podcasts.svg new file mode 100644 index 00000000..e2c8fbec --- /dev/null +++ b/assets/icons/polkadot/line/Podcasts.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Privacy.svg b/assets/icons/polkadot/line/Privacy.svg new file mode 100644 index 00000000..521f3cb2 --- /dev/null +++ b/assets/icons/polkadot/line/Privacy.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Private Key.svg b/assets/icons/polkadot/line/Private Key.svg new file mode 100644 index 00000000..83f53d53 --- /dev/null +++ b/assets/icons/polkadot/line/Private Key.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Proof Of Stake.svg b/assets/icons/polkadot/line/Proof Of Stake.svg new file mode 100644 index 00000000..4ac0bf4f --- /dev/null +++ b/assets/icons/polkadot/line/Proof Of Stake.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Proof Of Work.svg b/assets/icons/polkadot/line/Proof Of Work.svg new file mode 100644 index 00000000..fb4e2f24 --- /dev/null +++ b/assets/icons/polkadot/line/Proof Of Work.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Proposal.svg b/assets/icons/polkadot/line/Proposal.svg new file mode 100644 index 00000000..c74c4cca --- /dev/null +++ b/assets/icons/polkadot/line/Proposal.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Proxy.svg b/assets/icons/polkadot/line/Proxy.svg new file mode 100644 index 00000000..5da42bdd --- /dev/null +++ b/assets/icons/polkadot/line/Proxy.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/ProxyAccount.svg b/assets/icons/polkadot/line/ProxyAccount.svg new file mode 100644 index 00000000..f14c74b5 --- /dev/null +++ b/assets/icons/polkadot/line/ProxyAccount.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Public Key.svg b/assets/icons/polkadot/line/Public Key.svg new file mode 100644 index 00000000..be99728f --- /dev/null +++ b/assets/icons/polkadot/line/Public Key.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/QR Code.svg b/assets/icons/polkadot/line/QR Code.svg new file mode 100644 index 00000000..17359907 --- /dev/null +++ b/assets/icons/polkadot/line/QR Code.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Randomness.svg b/assets/icons/polkadot/line/Randomness.svg new file mode 100644 index 00000000..43805a0b --- /dev/null +++ b/assets/icons/polkadot/line/Randomness.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Read Time.svg b/assets/icons/polkadot/line/Read Time.svg new file mode 100644 index 00000000..7c2496a5 --- /dev/null +++ b/assets/icons/polkadot/line/Read Time.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Recover Keys.svg b/assets/icons/polkadot/line/Recover Keys.svg new file mode 100644 index 00000000..fdeaf363 --- /dev/null +++ b/assets/icons/polkadot/line/Recover Keys.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Recovery.svg b/assets/icons/polkadot/line/Recovery.svg new file mode 100644 index 00000000..0618ea71 --- /dev/null +++ b/assets/icons/polkadot/line/Recovery.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Reddit.svg b/assets/icons/polkadot/line/Reddit.svg new file mode 100644 index 00000000..eb387b14 --- /dev/null +++ b/assets/icons/polkadot/line/Reddit.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Referenda.svg b/assets/icons/polkadot/line/Referenda.svg new file mode 100644 index 00000000..a522f750 --- /dev/null +++ b/assets/icons/polkadot/line/Referenda.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Refresh _ Redo.svg b/assets/icons/polkadot/line/Refresh _ Redo.svg new file mode 100644 index 00000000..a90fc453 --- /dev/null +++ b/assets/icons/polkadot/line/Refresh _ Redo.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Registrars.svg b/assets/icons/polkadot/line/Registrars.svg new file mode 100644 index 00000000..6d542a9b --- /dev/null +++ b/assets/icons/polkadot/line/Registrars.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Regulators.svg b/assets/icons/polkadot/line/Regulators.svg new file mode 100644 index 00000000..7adb8bff --- /dev/null +++ b/assets/icons/polkadot/line/Regulators.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Relay Chain.svg b/assets/icons/polkadot/line/Relay Chain.svg new file mode 100644 index 00000000..2e92c4e5 --- /dev/null +++ b/assets/icons/polkadot/line/Relay Chain.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Remote Node.svg b/assets/icons/polkadot/line/Remote Node.svg new file mode 100644 index 00000000..168f7d09 --- /dev/null +++ b/assets/icons/polkadot/line/Remote Node.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Remove User.svg b/assets/icons/polkadot/line/Remove User.svg new file mode 100644 index 00000000..cf37c7e7 --- /dev/null +++ b/assets/icons/polkadot/line/Remove User.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Remove.svg b/assets/icons/polkadot/line/Remove.svg new file mode 100644 index 00000000..02e2b3d8 --- /dev/null +++ b/assets/icons/polkadot/line/Remove.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Report.svg b/assets/icons/polkadot/line/Report.svg new file mode 100644 index 00000000..5b2c4206 --- /dev/null +++ b/assets/icons/polkadot/line/Report.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Reputation Systems.svg b/assets/icons/polkadot/line/Reputation Systems.svg new file mode 100644 index 00000000..b48ca917 --- /dev/null +++ b/assets/icons/polkadot/line/Reputation Systems.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Research.svg b/assets/icons/polkadot/line/Research.svg new file mode 100644 index 00000000..bef29bf1 --- /dev/null +++ b/assets/icons/polkadot/line/Research.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Reserve Back Assets.svg b/assets/icons/polkadot/line/Reserve Back Assets.svg new file mode 100644 index 00000000..920ebd7b --- /dev/null +++ b/assets/icons/polkadot/line/Reserve Back Assets.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Restore From BackUp.svg b/assets/icons/polkadot/line/Restore From BackUp.svg new file mode 100644 index 00000000..34b9641d --- /dev/null +++ b/assets/icons/polkadot/line/Restore From BackUp.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Retail And Ecommerce.svg b/assets/icons/polkadot/line/Retail And Ecommerce.svg new file mode 100644 index 00000000..ff178454 --- /dev/null +++ b/assets/icons/polkadot/line/Retail And Ecommerce.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Robust System.svg b/assets/icons/polkadot/line/Robust System.svg new file mode 100644 index 00000000..2b4eb01e --- /dev/null +++ b/assets/icons/polkadot/line/Robust System.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Rust.svg b/assets/icons/polkadot/line/Rust.svg new file mode 100644 index 00000000..90aed145 --- /dev/null +++ b/assets/icons/polkadot/line/Rust.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Save.svg b/assets/icons/polkadot/line/Save.svg new file mode 100644 index 00000000..cb0a5673 --- /dev/null +++ b/assets/icons/polkadot/line/Save.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Scalability.svg b/assets/icons/polkadot/line/Scalability.svg new file mode 100644 index 00000000..2ab3552f --- /dev/null +++ b/assets/icons/polkadot/line/Scalability.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Scale.svg b/assets/icons/polkadot/line/Scale.svg new file mode 100644 index 00000000..a7b7f0dd --- /dev/null +++ b/assets/icons/polkadot/line/Scale.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Scaling.svg b/assets/icons/polkadot/line/Scaling.svg new file mode 100644 index 00000000..6ad7a570 --- /dev/null +++ b/assets/icons/polkadot/line/Scaling.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Scam Alert.svg b/assets/icons/polkadot/line/Scam Alert.svg new file mode 100644 index 00000000..918e0335 --- /dev/null +++ b/assets/icons/polkadot/line/Scam Alert.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Search.svg b/assets/icons/polkadot/line/Search.svg new file mode 100644 index 00000000..ec0a5ec0 --- /dev/null +++ b/assets/icons/polkadot/line/Search.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Second A Proposal.svg b/assets/icons/polkadot/line/Second A Proposal.svg new file mode 100644 index 00000000..53b1f847 --- /dev/null +++ b/assets/icons/polkadot/line/Second A Proposal.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Secret Part Of The Derivation Path.svg b/assets/icons/polkadot/line/Secret Part Of The Derivation Path.svg new file mode 100644 index 00000000..af0d122d --- /dev/null +++ b/assets/icons/polkadot/line/Secret Part Of The Derivation Path.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Secure Device.svg b/assets/icons/polkadot/line/Secure Device.svg new file mode 100644 index 00000000..88a82b00 --- /dev/null +++ b/assets/icons/polkadot/line/Secure Device.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Security Check.svg b/assets/icons/polkadot/line/Security Check.svg new file mode 100644 index 00000000..4532d5aa --- /dev/null +++ b/assets/icons/polkadot/line/Security Check.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Seed Phrase.svg b/assets/icons/polkadot/line/Seed Phrase.svg new file mode 100644 index 00000000..c6e8df77 --- /dev/null +++ b/assets/icons/polkadot/line/Seed Phrase.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Select List Item.svg b/assets/icons/polkadot/line/Select List Item.svg new file mode 100644 index 00000000..66d3ad0c --- /dev/null +++ b/assets/icons/polkadot/line/Select List Item.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Session.svg b/assets/icons/polkadot/line/Session.svg new file mode 100644 index 00000000..f89cdda7 --- /dev/null +++ b/assets/icons/polkadot/line/Session.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Settings.svg b/assets/icons/polkadot/line/Settings.svg new file mode 100644 index 00000000..001886a0 --- /dev/null +++ b/assets/icons/polkadot/line/Settings.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Sharding.svg b/assets/icons/polkadot/line/Sharding.svg new file mode 100644 index 00000000..216d4c0a --- /dev/null +++ b/assets/icons/polkadot/line/Sharding.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Share.svg b/assets/icons/polkadot/line/Share.svg new file mode 100644 index 00000000..52d79c68 --- /dev/null +++ b/assets/icons/polkadot/line/Share.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Shared Security.svg b/assets/icons/polkadot/line/Shared Security.svg new file mode 100644 index 00000000..d34e7099 --- /dev/null +++ b/assets/icons/polkadot/line/Shared Security.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Sign A Transaction.svg b/assets/icons/polkadot/line/Sign A Transaction.svg new file mode 100644 index 00000000..60ebeaa0 --- /dev/null +++ b/assets/icons/polkadot/line/Sign A Transaction.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Sign Specs.svg b/assets/icons/polkadot/line/Sign Specs.svg new file mode 100644 index 00000000..49cebca8 --- /dev/null +++ b/assets/icons/polkadot/line/Sign Specs.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Sign.svg b/assets/icons/polkadot/line/Sign.svg new file mode 100644 index 00000000..913191f2 --- /dev/null +++ b/assets/icons/polkadot/line/Sign.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Signal.svg b/assets/icons/polkadot/line/Signal.svg new file mode 100644 index 00000000..85da05b7 --- /dev/null +++ b/assets/icons/polkadot/line/Signal.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Signature.svg b/assets/icons/polkadot/line/Signature.svg new file mode 100644 index 00000000..60a4d6f0 --- /dev/null +++ b/assets/icons/polkadot/line/Signature.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Signifier Tab.svg b/assets/icons/polkadot/line/Signifier Tab.svg new file mode 100644 index 00000000..b24ca4d2 --- /dev/null +++ b/assets/icons/polkadot/line/Signifier Tab.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Smart Contract.svg b/assets/icons/polkadot/line/Smart Contract.svg new file mode 100644 index 00000000..78217ea2 --- /dev/null +++ b/assets/icons/polkadot/line/Smart Contract.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Social Impact & Humanitarian.svg b/assets/icons/polkadot/line/Social Impact & Humanitarian.svg new file mode 100644 index 00000000..f6967975 --- /dev/null +++ b/assets/icons/polkadot/line/Social Impact & Humanitarian.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Social Networking.svg b/assets/icons/polkadot/line/Social Networking.svg new file mode 100644 index 00000000..7eb85c4c --- /dev/null +++ b/assets/icons/polkadot/line/Social Networking.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Software Development.svg b/assets/icons/polkadot/line/Software Development.svg new file mode 100644 index 00000000..9e24365d --- /dev/null +++ b/assets/icons/polkadot/line/Software Development.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Specialised.svg b/assets/icons/polkadot/line/Specialised.svg new file mode 100644 index 00000000..772fb026 --- /dev/null +++ b/assets/icons/polkadot/line/Specialised.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Stablecoin.svg b/assets/icons/polkadot/line/Stablecoin.svg new file mode 100644 index 00000000..9f072ec4 --- /dev/null +++ b/assets/icons/polkadot/line/Stablecoin.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Stake.svg b/assets/icons/polkadot/line/Stake.svg new file mode 100644 index 00000000..d544969d --- /dev/null +++ b/assets/icons/polkadot/line/Stake.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Staking.svg b/assets/icons/polkadot/line/Staking.svg new file mode 100644 index 00000000..45bf6ca7 --- /dev/null +++ b/assets/icons/polkadot/line/Staking.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Starting Period.svg b/assets/icons/polkadot/line/Starting Period.svg new file mode 100644 index 00000000..7e74587c --- /dev/null +++ b/assets/icons/polkadot/line/Starting Period.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Success.svg b/assets/icons/polkadot/line/Success.svg new file mode 100644 index 00000000..29198d2c --- /dev/null +++ b/assets/icons/polkadot/line/Success.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Supply Chain.svg b/assets/icons/polkadot/line/Supply Chain.svg new file mode 100644 index 00000000..5ce10c43 --- /dev/null +++ b/assets/icons/polkadot/line/Supply Chain.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Talent.svg b/assets/icons/polkadot/line/Talent.svg new file mode 100644 index 00000000..5455f26a --- /dev/null +++ b/assets/icons/polkadot/line/Talent.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Technical Committee.svg b/assets/icons/polkadot/line/Technical Committee.svg new file mode 100644 index 00000000..142e320e --- /dev/null +++ b/assets/icons/polkadot/line/Technical Committee.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Teleport.svg b/assets/icons/polkadot/line/Teleport.svg new file mode 100644 index 00000000..2635f5fa --- /dev/null +++ b/assets/icons/polkadot/line/Teleport.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Testnet Token.svg b/assets/icons/polkadot/line/Testnet Token.svg new file mode 100644 index 00000000..7668789e --- /dev/null +++ b/assets/icons/polkadot/line/Testnet Token.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Thumbs Down.svg b/assets/icons/polkadot/line/Thumbs Down.svg new file mode 100644 index 00000000..1061c5f1 --- /dev/null +++ b/assets/icons/polkadot/line/Thumbs Down.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Thumbs Up.svg b/assets/icons/polkadot/line/Thumbs Up.svg new file mode 100644 index 00000000..7230d76b --- /dev/null +++ b/assets/icons/polkadot/line/Thumbs Up.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Time.svg b/assets/icons/polkadot/line/Time.svg new file mode 100644 index 00000000..510c4f18 --- /dev/null +++ b/assets/icons/polkadot/line/Time.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Token Holders.svg b/assets/icons/polkadot/line/Token Holders.svg new file mode 100644 index 00000000..2a8ab669 --- /dev/null +++ b/assets/icons/polkadot/line/Token Holders.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Token.svg b/assets/icons/polkadot/line/Token.svg new file mode 100644 index 00000000..02d2a25f --- /dev/null +++ b/assets/icons/polkadot/line/Token.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Tools.svg b/assets/icons/polkadot/line/Tools.svg new file mode 100644 index 00000000..27025388 --- /dev/null +++ b/assets/icons/polkadot/line/Tools.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Transaction.svg b/assets/icons/polkadot/line/Transaction.svg new file mode 100644 index 00000000..e4747597 --- /dev/null +++ b/assets/icons/polkadot/line/Transaction.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Translate.svg b/assets/icons/polkadot/line/Translate.svg new file mode 100644 index 00000000..230aefd4 --- /dev/null +++ b/assets/icons/polkadot/line/Translate.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Transparency.svg b/assets/icons/polkadot/line/Transparency.svg new file mode 100644 index 00000000..8f986197 --- /dev/null +++ b/assets/icons/polkadot/line/Transparency.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Treasury.svg b/assets/icons/polkadot/line/Treasury.svg new file mode 100644 index 00000000..cfd0eef0 --- /dev/null +++ b/assets/icons/polkadot/line/Treasury.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Twitter.svg b/assets/icons/polkadot/line/Twitter.svg new file mode 100644 index 00000000..1f9013c2 --- /dev/null +++ b/assets/icons/polkadot/line/Twitter.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Ui.svg b/assets/icons/polkadot/line/Ui.svg new file mode 100644 index 00000000..eb1180c0 --- /dev/null +++ b/assets/icons/polkadot/line/Ui.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Unbond.svg b/assets/icons/polkadot/line/Unbond.svg new file mode 100644 index 00000000..20178848 --- /dev/null +++ b/assets/icons/polkadot/line/Unbond.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Unchecked.svg b/assets/icons/polkadot/line/Unchecked.svg new file mode 100644 index 00000000..00df8c5a --- /dev/null +++ b/assets/icons/polkadot/line/Unchecked.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Unlock.svg b/assets/icons/polkadot/line/Unlock.svg new file mode 100644 index 00000000..d272ef5e --- /dev/null +++ b/assets/icons/polkadot/line/Unlock.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Unstake.svg b/assets/icons/polkadot/line/Unstake.svg new file mode 100644 index 00000000..b4003b94 --- /dev/null +++ b/assets/icons/polkadot/line/Unstake.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Upgrade.svg b/assets/icons/polkadot/line/Upgrade.svg new file mode 100644 index 00000000..c726b1dc --- /dev/null +++ b/assets/icons/polkadot/line/Upgrade.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Use Cases.svg b/assets/icons/polkadot/line/Use Cases.svg new file mode 100644 index 00000000..c2ab4bc5 --- /dev/null +++ b/assets/icons/polkadot/line/Use Cases.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Users.svg b/assets/icons/polkadot/line/Users.svg new file mode 100644 index 00000000..7f21daa9 --- /dev/null +++ b/assets/icons/polkadot/line/Users.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Utility.svg b/assets/icons/polkadot/line/Utility.svg new file mode 100644 index 00000000..4a399fc2 --- /dev/null +++ b/assets/icons/polkadot/line/Utility.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Ux.svg b/assets/icons/polkadot/line/Ux.svg new file mode 100644 index 00000000..7d8e5045 --- /dev/null +++ b/assets/icons/polkadot/line/Ux.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Validators.svg b/assets/icons/polkadot/line/Validators.svg new file mode 100644 index 00000000..dd035752 --- /dev/null +++ b/assets/icons/polkadot/line/Validators.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Value Bearing Token.svg b/assets/icons/polkadot/line/Value Bearing Token.svg new file mode 100644 index 00000000..6b2f8939 --- /dev/null +++ b/assets/icons/polkadot/line/Value Bearing Token.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Verified Account.svg b/assets/icons/polkadot/line/Verified Account.svg new file mode 100644 index 00000000..6f7b1634 --- /dev/null +++ b/assets/icons/polkadot/line/Verified Account.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Verified Signed.svg b/assets/icons/polkadot/line/Verified Signed.svg new file mode 100644 index 00000000..bf91f036 --- /dev/null +++ b/assets/icons/polkadot/line/Verified Signed.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Verify.svg b/assets/icons/polkadot/line/Verify.svg new file mode 100644 index 00000000..4abb7b8a --- /dev/null +++ b/assets/icons/polkadot/line/Verify.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Version.svg b/assets/icons/polkadot/line/Version.svg new file mode 100644 index 00000000..b415ffe1 --- /dev/null +++ b/assets/icons/polkadot/line/Version.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Vesting Period.svg b/assets/icons/polkadot/line/Vesting Period.svg new file mode 100644 index 00000000..7a99c45e --- /dev/null +++ b/assets/icons/polkadot/line/Vesting Period.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Vesting.svg b/assets/icons/polkadot/line/Vesting.svg new file mode 100644 index 00000000..f60491cf --- /dev/null +++ b/assets/icons/polkadot/line/Vesting.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Video Pause.svg b/assets/icons/polkadot/line/Video Pause.svg new file mode 100644 index 00000000..f640f571 --- /dev/null +++ b/assets/icons/polkadot/line/Video Pause.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Video Play.svg b/assets/icons/polkadot/line/Video Play.svg new file mode 100644 index 00000000..9c3e0fca --- /dev/null +++ b/assets/icons/polkadot/line/Video Play.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Video.svg b/assets/icons/polkadot/line/Video.svg new file mode 100644 index 00000000..c106a141 --- /dev/null +++ b/assets/icons/polkadot/line/Video.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Videos.svg b/assets/icons/polkadot/line/Videos.svg new file mode 100644 index 00000000..91cf84d1 --- /dev/null +++ b/assets/icons/polkadot/line/Videos.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Vote.svg b/assets/icons/polkadot/line/Vote.svg new file mode 100644 index 00000000..9fd80096 --- /dev/null +++ b/assets/icons/polkadot/line/Vote.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Voting Period.svg b/assets/icons/polkadot/line/Voting Period.svg new file mode 100644 index 00000000..024503e8 --- /dev/null +++ b/assets/icons/polkadot/line/Voting Period.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Wallet Deposit.svg b/assets/icons/polkadot/line/Wallet Deposit.svg new file mode 100644 index 00000000..3b58c8dd --- /dev/null +++ b/assets/icons/polkadot/line/Wallet Deposit.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Wallet Withdraw.svg b/assets/icons/polkadot/line/Wallet Withdraw.svg new file mode 100644 index 00000000..18dc2bbe --- /dev/null +++ b/assets/icons/polkadot/line/Wallet Withdraw.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Wallet.svg b/assets/icons/polkadot/line/Wallet.svg new file mode 100644 index 00000000..e68fc2a8 --- /dev/null +++ b/assets/icons/polkadot/line/Wallet.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Wallets.svg b/assets/icons/polkadot/line/Wallets.svg new file mode 100644 index 00000000..40ffa30c --- /dev/null +++ b/assets/icons/polkadot/line/Wallets.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Wasm.svg b/assets/icons/polkadot/line/Wasm.svg new file mode 100644 index 00000000..9c1a08b8 --- /dev/null +++ b/assets/icons/polkadot/line/Wasm.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Web3.svg b/assets/icons/polkadot/line/Web3.svg new file mode 100644 index 00000000..bc47f792 --- /dev/null +++ b/assets/icons/polkadot/line/Web3.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Whitepaper Download.svg b/assets/icons/polkadot/line/Whitepaper Download.svg new file mode 100644 index 00000000..bfa896b3 --- /dev/null +++ b/assets/icons/polkadot/line/Whitepaper Download.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Whitepaper Upload.svg b/assets/icons/polkadot/line/Whitepaper Upload.svg new file mode 100644 index 00000000..c82da475 --- /dev/null +++ b/assets/icons/polkadot/line/Whitepaper Upload.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Whitepaper.svg b/assets/icons/polkadot/line/Whitepaper.svg new file mode 100644 index 00000000..8c16979c --- /dev/null +++ b/assets/icons/polkadot/line/Whitepaper.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/WiFi Off.svg b/assets/icons/polkadot/line/WiFi Off.svg new file mode 100644 index 00000000..7e9beeda --- /dev/null +++ b/assets/icons/polkadot/line/WiFi Off.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/WiFi.svg b/assets/icons/polkadot/line/WiFi.svg new file mode 100644 index 00000000..debd659a --- /dev/null +++ b/assets/icons/polkadot/line/WiFi.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Wiki.svg b/assets/icons/polkadot/line/Wiki.svg new file mode 100644 index 00000000..5bdfba6c --- /dev/null +++ b/assets/icons/polkadot/line/Wiki.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Withdraw.svg b/assets/icons/polkadot/line/Withdraw.svg new file mode 100644 index 00000000..c704e7fb --- /dev/null +++ b/assets/icons/polkadot/line/Withdraw.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Workshop.svg b/assets/icons/polkadot/line/Workshop.svg new file mode 100644 index 00000000..39610ada --- /dev/null +++ b/assets/icons/polkadot/line/Workshop.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/XCM (Message).svg b/assets/icons/polkadot/line/XCM (Message).svg new file mode 100644 index 00000000..31e1c373 --- /dev/null +++ b/assets/icons/polkadot/line/XCM (Message).svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/line/Youtube.svg b/assets/icons/polkadot/line/Youtube.svg new file mode 100644 index 00000000..9b5db360 --- /dev/null +++ b/assets/icons/polkadot/line/Youtube.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/AI & Computing.svg b/assets/icons/polkadot/solid/AI & Computing.svg new file mode 100644 index 00000000..8929dd02 --- /dev/null +++ b/assets/icons/polkadot/solid/AI & Computing.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Account Portability.svg b/assets/icons/polkadot/solid/Account Portability.svg new file mode 100644 index 00000000..34f10cf8 --- /dev/null +++ b/assets/icons/polkadot/solid/Account Portability.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Action Left.svg b/assets/icons/polkadot/solid/Action Left.svg new file mode 100644 index 00000000..0f07205e --- /dev/null +++ b/assets/icons/polkadot/solid/Action Left.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Action Right.svg b/assets/icons/polkadot/solid/Action Right.svg new file mode 100644 index 00000000..3a2d7bbe --- /dev/null +++ b/assets/icons/polkadot/solid/Action Right.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Add key pair.svg b/assets/icons/polkadot/solid/Add key pair.svg new file mode 100644 index 00000000..011cac4c --- /dev/null +++ b/assets/icons/polkadot/solid/Add key pair.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Add user.svg b/assets/icons/polkadot/solid/Add user.svg new file mode 100644 index 00000000..e25f2b84 --- /dev/null +++ b/assets/icons/polkadot/solid/Add user.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Add.svg b/assets/icons/polkadot/solid/Add.svg new file mode 100644 index 00000000..b805ec68 --- /dev/null +++ b/assets/icons/polkadot/solid/Add.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Address book.svg b/assets/icons/polkadot/solid/Address book.svg new file mode 100644 index 00000000..ea216c0b --- /dev/null +++ b/assets/icons/polkadot/solid/Address book.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Airplane Mode.svg b/assets/icons/polkadot/solid/Airplane Mode.svg new file mode 100644 index 00000000..1e8b0f37 --- /dev/null +++ b/assets/icons/polkadot/solid/Airplane Mode.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Alert.svg b/assets/icons/polkadot/solid/Alert.svg new file mode 100644 index 00000000..1c21a678 --- /dev/null +++ b/assets/icons/polkadot/solid/Alert.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Algorithm.svg b/assets/icons/polkadot/solid/Algorithm.svg new file mode 100644 index 00000000..1af4b3fc --- /dev/null +++ b/assets/icons/polkadot/solid/Algorithm.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Alice.svg b/assets/icons/polkadot/solid/Alice.svg new file mode 100644 index 00000000..194be375 --- /dev/null +++ b/assets/icons/polkadot/solid/Alice.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Ambassadors.svg b/assets/icons/polkadot/solid/Ambassadors.svg new file mode 100644 index 00000000..ac679ccf --- /dev/null +++ b/assets/icons/polkadot/solid/Ambassadors.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Announcement.svg b/assets/icons/polkadot/solid/Announcement.svg new file mode 100644 index 00000000..bdf196de --- /dev/null +++ b/assets/icons/polkadot/solid/Announcement.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Anonymous Proxy.svg b/assets/icons/polkadot/solid/Anonymous Proxy.svg new file mode 100644 index 00000000..d011bee5 --- /dev/null +++ b/assets/icons/polkadot/solid/Anonymous Proxy.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Arbitrary Message.svg b/assets/icons/polkadot/solid/Arbitrary Message.svg new file mode 100644 index 00000000..1c50ce9f --- /dev/null +++ b/assets/icons/polkadot/solid/Arbitrary Message.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Archive Node.svg b/assets/icons/polkadot/solid/Archive Node.svg new file mode 100644 index 00000000..59db2271 --- /dev/null +++ b/assets/icons/polkadot/solid/Archive Node.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Arrow Back.svg b/assets/icons/polkadot/solid/Arrow Back.svg new file mode 100644 index 00000000..b3a0060e --- /dev/null +++ b/assets/icons/polkadot/solid/Arrow Back.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Arrow Down.svg b/assets/icons/polkadot/solid/Arrow Down.svg new file mode 100644 index 00000000..a7269bda --- /dev/null +++ b/assets/icons/polkadot/solid/Arrow Down.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Arrow Left.svg b/assets/icons/polkadot/solid/Arrow Left.svg new file mode 100644 index 00000000..a5a1ce5c --- /dev/null +++ b/assets/icons/polkadot/solid/Arrow Left.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Arrow Right.svg b/assets/icons/polkadot/solid/Arrow Right.svg new file mode 100644 index 00000000..a55a9e97 --- /dev/null +++ b/assets/icons/polkadot/solid/Arrow Right.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Arrow Up.svg b/assets/icons/polkadot/solid/Arrow Up.svg new file mode 100644 index 00000000..bdd34eab --- /dev/null +++ b/assets/icons/polkadot/solid/Arrow Up.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Article.svg b/assets/icons/polkadot/solid/Article.svg new file mode 100644 index 00000000..62418f6a --- /dev/null +++ b/assets/icons/polkadot/solid/Article.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Attack.svg b/assets/icons/polkadot/solid/Attack.svg new file mode 100644 index 00000000..1a82c987 --- /dev/null +++ b/assets/icons/polkadot/solid/Attack.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Auctions.svg b/assets/icons/polkadot/solid/Auctions.svg new file mode 100644 index 00000000..6f83acf1 --- /dev/null +++ b/assets/icons/polkadot/solid/Auctions.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Authority.svg b/assets/icons/polkadot/solid/Authority.svg new file mode 100644 index 00000000..3e9d7eaf --- /dev/null +++ b/assets/icons/polkadot/solid/Authority.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Back Up.svg b/assets/icons/polkadot/solid/Back Up.svg new file mode 100644 index 00000000..921325ff --- /dev/null +++ b/assets/icons/polkadot/solid/Back Up.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Balance.svg b/assets/icons/polkadot/solid/Balance.svg new file mode 100644 index 00000000..8186b29a --- /dev/null +++ b/assets/icons/polkadot/solid/Balance.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Batch Transaction.svg b/assets/icons/polkadot/solid/Batch Transaction.svg new file mode 100644 index 00000000..47cbb22b --- /dev/null +++ b/assets/icons/polkadot/solid/Batch Transaction.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Bid.svg b/assets/icons/polkadot/solid/Bid.svg new file mode 100644 index 00000000..b8c55619 --- /dev/null +++ b/assets/icons/polkadot/solid/Bid.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Block Explorer.svg b/assets/icons/polkadot/solid/Block Explorer.svg new file mode 100644 index 00000000..8d8047ba --- /dev/null +++ b/assets/icons/polkadot/solid/Block Explorer.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Block Number.svg b/assets/icons/polkadot/solid/Block Number.svg new file mode 100644 index 00000000..6efdcbee --- /dev/null +++ b/assets/icons/polkadot/solid/Block Number.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Block Search.svg b/assets/icons/polkadot/solid/Block Search.svg new file mode 100644 index 00000000..889515b8 --- /dev/null +++ b/assets/icons/polkadot/solid/Block Search.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Block.svg b/assets/icons/polkadot/solid/Block.svg new file mode 100644 index 00000000..d1433e66 --- /dev/null +++ b/assets/icons/polkadot/solid/Block.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Blockchain.svg b/assets/icons/polkadot/solid/Blockchain.svg new file mode 100644 index 00000000..4066afe3 --- /dev/null +++ b/assets/icons/polkadot/solid/Blockchain.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Blog Post.svg b/assets/icons/polkadot/solid/Blog Post.svg new file mode 100644 index 00000000..870506c2 --- /dev/null +++ b/assets/icons/polkadot/solid/Blog Post.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Bob.svg b/assets/icons/polkadot/solid/Bob.svg new file mode 100644 index 00000000..04647271 --- /dev/null +++ b/assets/icons/polkadot/solid/Bob.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Bond.svg b/assets/icons/polkadot/solid/Bond.svg new file mode 100644 index 00000000..605b4cd1 --- /dev/null +++ b/assets/icons/polkadot/solid/Bond.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Bonded Time.svg b/assets/icons/polkadot/solid/Bonded Time.svg new file mode 100644 index 00000000..a86d7bb9 --- /dev/null +++ b/assets/icons/polkadot/solid/Bonded Time.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Boot Node.svg b/assets/icons/polkadot/solid/Boot Node.svg new file mode 100644 index 00000000..7005e178 --- /dev/null +++ b/assets/icons/polkadot/solid/Boot Node.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Bridge.svg b/assets/icons/polkadot/solid/Bridge.svg new file mode 100644 index 00000000..0b42b604 --- /dev/null +++ b/assets/icons/polkadot/solid/Bridge.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Bridges.svg b/assets/icons/polkadot/solid/Bridges.svg new file mode 100644 index 00000000..5dfe5854 --- /dev/null +++ b/assets/icons/polkadot/solid/Bridges.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Build.svg b/assets/icons/polkadot/solid/Build.svg new file mode 100644 index 00000000..c92d599a --- /dev/null +++ b/assets/icons/polkadot/solid/Build.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Builders _ Developers.svg b/assets/icons/polkadot/solid/Builders _ Developers.svg new file mode 100644 index 00000000..758dfc8e --- /dev/null +++ b/assets/icons/polkadot/solid/Builders _ Developers.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Built-in Security.svg b/assets/icons/polkadot/solid/Built-in Security.svg new file mode 100644 index 00000000..d15eee00 --- /dev/null +++ b/assets/icons/polkadot/solid/Built-in Security.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Burn.svg b/assets/icons/polkadot/solid/Burn.svg new file mode 100644 index 00000000..922c273e --- /dev/null +++ b/assets/icons/polkadot/solid/Burn.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/C++.svg b/assets/icons/polkadot/solid/C++.svg new file mode 100644 index 00000000..6d9d7d47 --- /dev/null +++ b/assets/icons/polkadot/solid/C++.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Calendar.svg b/assets/icons/polkadot/solid/Calendar.svg new file mode 100644 index 00000000..6f948179 --- /dev/null +++ b/assets/icons/polkadot/solid/Calendar.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Career.svg b/assets/icons/polkadot/solid/Career.svg new file mode 100644 index 00000000..a198a16d --- /dev/null +++ b/assets/icons/polkadot/solid/Career.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Certificate.svg b/assets/icons/polkadot/solid/Certificate.svg new file mode 100644 index 00000000..e2d6d4b6 --- /dev/null +++ b/assets/icons/polkadot/solid/Certificate.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Cex.svg b/assets/icons/polkadot/solid/Cex.svg new file mode 100644 index 00000000..d5d6658e --- /dev/null +++ b/assets/icons/polkadot/solid/Cex.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Chain Spec.svg b/assets/icons/polkadot/solid/Chain Spec.svg new file mode 100644 index 00000000..2a11e309 --- /dev/null +++ b/assets/icons/polkadot/solid/Chain Spec.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Check.svg b/assets/icons/polkadot/solid/Check.svg new file mode 100644 index 00000000..41064270 --- /dev/null +++ b/assets/icons/polkadot/solid/Check.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Checked.svg b/assets/icons/polkadot/solid/Checked.svg new file mode 100644 index 00000000..70e6b6f8 --- /dev/null +++ b/assets/icons/polkadot/solid/Checked.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Chevron Down.svg b/assets/icons/polkadot/solid/Chevron Down.svg new file mode 100644 index 00000000..665f63c6 --- /dev/null +++ b/assets/icons/polkadot/solid/Chevron Down.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Chevron Up.svg b/assets/icons/polkadot/solid/Chevron Up.svg new file mode 100644 index 00000000..695aa064 --- /dev/null +++ b/assets/icons/polkadot/solid/Chevron Up.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Claim.svg b/assets/icons/polkadot/solid/Claim.svg new file mode 100644 index 00000000..4c332126 --- /dev/null +++ b/assets/icons/polkadot/solid/Claim.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Close.svg b/assets/icons/polkadot/solid/Close.svg new file mode 100644 index 00000000..f908ffaf --- /dev/null +++ b/assets/icons/polkadot/solid/Close.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Cloud.svg b/assets/icons/polkadot/solid/Cloud.svg new file mode 100644 index 00000000..4bf65ae2 --- /dev/null +++ b/assets/icons/polkadot/solid/Cloud.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Code.svg b/assets/icons/polkadot/solid/Code.svg new file mode 100644 index 00000000..44eac3dd --- /dev/null +++ b/assets/icons/polkadot/solid/Code.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Collapse.svg b/assets/icons/polkadot/solid/Collapse.svg new file mode 100644 index 00000000..f225431a --- /dev/null +++ b/assets/icons/polkadot/solid/Collapse.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Collators.svg b/assets/icons/polkadot/solid/Collators.svg new file mode 100644 index 00000000..d471f754 --- /dev/null +++ b/assets/icons/polkadot/solid/Collators.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Collective.svg b/assets/icons/polkadot/solid/Collective.svg new file mode 100644 index 00000000..9292c995 --- /dev/null +++ b/assets/icons/polkadot/solid/Collective.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Communications And Media.svg b/assets/icons/polkadot/solid/Communications And Media.svg new file mode 100644 index 00000000..1430f2d8 --- /dev/null +++ b/assets/icons/polkadot/solid/Communications And Media.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Community Events And Outreach.svg b/assets/icons/polkadot/solid/Community Events And Outreach.svg new file mode 100644 index 00000000..96187925 --- /dev/null +++ b/assets/icons/polkadot/solid/Community Events And Outreach.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Community.svg b/assets/icons/polkadot/solid/Community.svg new file mode 100644 index 00000000..3a655499 --- /dev/null +++ b/assets/icons/polkadot/solid/Community.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Companion Account (in Bridge context).svg b/assets/icons/polkadot/solid/Companion Account (in Bridge context).svg new file mode 100644 index 00000000..00533485 --- /dev/null +++ b/assets/icons/polkadot/solid/Companion Account (in Bridge context).svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Connect Wallet_Address.svg b/assets/icons/polkadot/solid/Connect Wallet_Address.svg new file mode 100644 index 00000000..3cd6f674 --- /dev/null +++ b/assets/icons/polkadot/solid/Connect Wallet_Address.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Connected.svg b/assets/icons/polkadot/solid/Connected.svg new file mode 100644 index 00000000..68175aac --- /dev/null +++ b/assets/icons/polkadot/solid/Connected.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Connection Via Light Node.svg b/assets/icons/polkadot/solid/Connection Via Light Node.svg new file mode 100644 index 00000000..dc21b069 --- /dev/null +++ b/assets/icons/polkadot/solid/Connection Via Light Node.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Connection Via Remote Node.svg b/assets/icons/polkadot/solid/Connection Via Remote Node.svg new file mode 100644 index 00000000..da4e1c18 --- /dev/null +++ b/assets/icons/polkadot/solid/Connection Via Remote Node.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Consensus.svg b/assets/icons/polkadot/solid/Consensus.svg new file mode 100644 index 00000000..02ce5ecc --- /dev/null +++ b/assets/icons/polkadot/solid/Consensus.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Contract.svg b/assets/icons/polkadot/solid/Contract.svg new file mode 100644 index 00000000..0d98d07b --- /dev/null +++ b/assets/icons/polkadot/solid/Contract.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Cooling Period.svg b/assets/icons/polkadot/solid/Cooling Period.svg new file mode 100644 index 00000000..a788db3f --- /dev/null +++ b/assets/icons/polkadot/solid/Cooling Period.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Copy _ Paste.svg b/assets/icons/polkadot/solid/Copy _ Paste.svg new file mode 100644 index 00000000..c901e801 --- /dev/null +++ b/assets/icons/polkadot/solid/Copy _ Paste.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Costly To Maintain.svg b/assets/icons/polkadot/solid/Costly To Maintain.svg new file mode 100644 index 00000000..f7041e9f --- /dev/null +++ b/assets/icons/polkadot/solid/Costly To Maintain.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Council.svg b/assets/icons/polkadot/solid/Council.svg new file mode 100644 index 00000000..4a643df7 --- /dev/null +++ b/assets/icons/polkadot/solid/Council.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Countdown.svg b/assets/icons/polkadot/solid/Countdown.svg new file mode 100644 index 00000000..aeea2293 --- /dev/null +++ b/assets/icons/polkadot/solid/Countdown.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Create New From Source.svg b/assets/icons/polkadot/solid/Create New From Source.svg new file mode 100644 index 00000000..7e8f1838 --- /dev/null +++ b/assets/icons/polkadot/solid/Create New From Source.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Cross-Chain Application.svg b/assets/icons/polkadot/solid/Cross-Chain Application.svg new file mode 100644 index 00000000..aef4cf0c --- /dev/null +++ b/assets/icons/polkadot/solid/Cross-Chain Application.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Cross-Chain Certification.svg b/assets/icons/polkadot/solid/Cross-Chain Certification.svg new file mode 100644 index 00000000..62bcd3d3 --- /dev/null +++ b/assets/icons/polkadot/solid/Cross-Chain Certification.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Cross-Chain Transfers.svg b/assets/icons/polkadot/solid/Cross-Chain Transfers.svg new file mode 100644 index 00000000..8c3e8206 --- /dev/null +++ b/assets/icons/polkadot/solid/Cross-Chain Transfers.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Cross-Chain.svg b/assets/icons/polkadot/solid/Cross-Chain.svg new file mode 100644 index 00000000..49df5f9c --- /dev/null +++ b/assets/icons/polkadot/solid/Cross-Chain.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Crowdloans.svg b/assets/icons/polkadot/solid/Crowdloans.svg new file mode 100644 index 00000000..a4d6c856 --- /dev/null +++ b/assets/icons/polkadot/solid/Crowdloans.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Cryptocurrency.svg b/assets/icons/polkadot/solid/Cryptocurrency.svg new file mode 100644 index 00000000..f76dc93c --- /dev/null +++ b/assets/icons/polkadot/solid/Cryptocurrency.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Customisation.svg b/assets/icons/polkadot/solid/Customisation.svg new file mode 100644 index 00000000..c7dd2051 --- /dev/null +++ b/assets/icons/polkadot/solid/Customisation.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/DAOs.svg b/assets/icons/polkadot/solid/DAOs.svg new file mode 100644 index 00000000..1991860f --- /dev/null +++ b/assets/icons/polkadot/solid/DAOs.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/DEX.svg b/assets/icons/polkadot/solid/DEX.svg new file mode 100644 index 00000000..bf16b733 --- /dev/null +++ b/assets/icons/polkadot/solid/DEX.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Dapps.svg b/assets/icons/polkadot/solid/Dapps.svg new file mode 100644 index 00000000..de79a172 --- /dev/null +++ b/assets/icons/polkadot/solid/Dapps.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Data & Analytics.svg b/assets/icons/polkadot/solid/Data & Analytics.svg new file mode 100644 index 00000000..64fe522b --- /dev/null +++ b/assets/icons/polkadot/solid/Data & Analytics.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Day_Light Mode.svg b/assets/icons/polkadot/solid/Day_Light Mode.svg new file mode 100644 index 00000000..a9e6819f --- /dev/null +++ b/assets/icons/polkadot/solid/Day_Light Mode.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/DeFi.svg b/assets/icons/polkadot/solid/DeFi.svg new file mode 100644 index 00000000..8c8a9b8c --- /dev/null +++ b/assets/icons/polkadot/solid/DeFi.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Decentralised File Storage.svg b/assets/icons/polkadot/solid/Decentralised File Storage.svg new file mode 100644 index 00000000..cfa2e8df --- /dev/null +++ b/assets/icons/polkadot/solid/Decentralised File Storage.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Delete_Cancel.svg b/assets/icons/polkadot/solid/Delete_Cancel.svg new file mode 100644 index 00000000..2590b4ac --- /dev/null +++ b/assets/icons/polkadot/solid/Delete_Cancel.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Democracy.svg b/assets/icons/polkadot/solid/Democracy.svg new file mode 100644 index 00000000..d560961f --- /dev/null +++ b/assets/icons/polkadot/solid/Democracy.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Deposit.svg b/assets/icons/polkadot/solid/Deposit.svg new file mode 100644 index 00000000..97cebe83 --- /dev/null +++ b/assets/icons/polkadot/solid/Deposit.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Derivation Path.svg b/assets/icons/polkadot/solid/Derivation Path.svg new file mode 100644 index 00000000..3d368c67 --- /dev/null +++ b/assets/icons/polkadot/solid/Derivation Path.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Derive An Address.svg b/assets/icons/polkadot/solid/Derive An Address.svg new file mode 100644 index 00000000..c41605bd --- /dev/null +++ b/assets/icons/polkadot/solid/Derive An Address.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Derive Key Pair.svg b/assets/icons/polkadot/solid/Derive Key Pair.svg new file mode 100644 index 00000000..fb238c57 --- /dev/null +++ b/assets/icons/polkadot/solid/Derive Key Pair.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Disconnected.svg b/assets/icons/polkadot/solid/Disconnected.svg new file mode 100644 index 00000000..38ead071 --- /dev/null +++ b/assets/icons/polkadot/solid/Disconnected.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Distributed File Storage.svg b/assets/icons/polkadot/solid/Distributed File Storage.svg new file mode 100644 index 00000000..bba294ad --- /dev/null +++ b/assets/icons/polkadot/solid/Distributed File Storage.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Documentations.svg b/assets/icons/polkadot/solid/Documentations.svg new file mode 100644 index 00000000..a4833b19 --- /dev/null +++ b/assets/icons/polkadot/solid/Documentations.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Download.svg b/assets/icons/polkadot/solid/Download.svg new file mode 100644 index 00000000..dc2f7b4b --- /dev/null +++ b/assets/icons/polkadot/solid/Download.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Draw.svg b/assets/icons/polkadot/solid/Draw.svg new file mode 100644 index 00000000..e571b4e8 --- /dev/null +++ b/assets/icons/polkadot/solid/Draw.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Drip.svg b/assets/icons/polkadot/solid/Drip.svg new file mode 100644 index 00000000..5b1181ec --- /dev/null +++ b/assets/icons/polkadot/solid/Drip.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Dropdown Up.svg b/assets/icons/polkadot/solid/Dropdown Up.svg new file mode 100644 index 00000000..81b52756 --- /dev/null +++ b/assets/icons/polkadot/solid/Dropdown Up.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Dropdown.svg b/assets/icons/polkadot/solid/Dropdown.svg new file mode 100644 index 00000000..8577c38b --- /dev/null +++ b/assets/icons/polkadot/solid/Dropdown.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Ecosystem Provisions.svg b/assets/icons/polkadot/solid/Ecosystem Provisions.svg new file mode 100644 index 00000000..b789bda5 --- /dev/null +++ b/assets/icons/polkadot/solid/Ecosystem Provisions.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Ecosystem.svg b/assets/icons/polkadot/solid/Ecosystem.svg new file mode 100644 index 00000000..61af539e --- /dev/null +++ b/assets/icons/polkadot/solid/Ecosystem.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Edit-Off.svg b/assets/icons/polkadot/solid/Edit-Off.svg new file mode 100644 index 00000000..19aec48c --- /dev/null +++ b/assets/icons/polkadot/solid/Edit-Off.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Edit-On.svg b/assets/icons/polkadot/solid/Edit-On.svg new file mode 100644 index 00000000..0319a725 --- /dev/null +++ b/assets/icons/polkadot/solid/Edit-On.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Elections.svg b/assets/icons/polkadot/solid/Elections.svg new file mode 100644 index 00000000..5a05e93a --- /dev/null +++ b/assets/icons/polkadot/solid/Elections.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Email.svg b/assets/icons/polkadot/solid/Email.svg new file mode 100644 index 00000000..32f62697 --- /dev/null +++ b/assets/icons/polkadot/solid/Email.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Encryption.svg b/assets/icons/polkadot/solid/Encryption.svg new file mode 100644 index 00000000..fc0b09ce --- /dev/null +++ b/assets/icons/polkadot/solid/Encryption.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Ending Period.svg b/assets/icons/polkadot/solid/Ending Period.svg new file mode 100644 index 00000000..e291b812 --- /dev/null +++ b/assets/icons/polkadot/solid/Ending Period.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Energy Deficiency.svg b/assets/icons/polkadot/solid/Energy Deficiency.svg new file mode 100644 index 00000000..96338cca --- /dev/null +++ b/assets/icons/polkadot/solid/Energy Deficiency.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Energy Efficiency.svg b/assets/icons/polkadot/solid/Energy Efficiency.svg new file mode 100644 index 00000000..d6edb6dd --- /dev/null +++ b/assets/icons/polkadot/solid/Energy Efficiency.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Energy.svg b/assets/icons/polkadot/solid/Energy.svg new file mode 100644 index 00000000..e1bb9d18 --- /dev/null +++ b/assets/icons/polkadot/solid/Energy.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Enterprise.svg b/assets/icons/polkadot/solid/Enterprise.svg new file mode 100644 index 00000000..e2ad7a85 --- /dev/null +++ b/assets/icons/polkadot/solid/Enterprise.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Error.svg b/assets/icons/polkadot/solid/Error.svg new file mode 100644 index 00000000..77612a00 --- /dev/null +++ b/assets/icons/polkadot/solid/Error.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Eve.svg b/assets/icons/polkadot/solid/Eve.svg new file mode 100644 index 00000000..f27c17cf --- /dev/null +++ b/assets/icons/polkadot/solid/Eve.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Events.svg b/assets/icons/polkadot/solid/Events.svg new file mode 100644 index 00000000..0cd3740f --- /dev/null +++ b/assets/icons/polkadot/solid/Events.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Existential Deposit.svg b/assets/icons/polkadot/solid/Existential Deposit.svg new file mode 100644 index 00000000..c636eb6e --- /dev/null +++ b/assets/icons/polkadot/solid/Existential Deposit.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Export (M,L).svg b/assets/icons/polkadot/solid/Export (M,L).svg new file mode 100644 index 00000000..e3b0da12 --- /dev/null +++ b/assets/icons/polkadot/solid/Export (M,L).svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Export (XS,S).svg b/assets/icons/polkadot/solid/Export (XS,S).svg new file mode 100644 index 00000000..3a51009d --- /dev/null +++ b/assets/icons/polkadot/solid/Export (XS,S).svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Extension.svg b/assets/icons/polkadot/solid/Extension.svg new file mode 100644 index 00000000..030b0ccd --- /dev/null +++ b/assets/icons/polkadot/solid/Extension.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Favorite To-Be.svg b/assets/icons/polkadot/solid/Favorite To-Be.svg new file mode 100644 index 00000000..1148e01d --- /dev/null +++ b/assets/icons/polkadot/solid/Favorite To-Be.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Favorite.svg b/assets/icons/polkadot/solid/Favorite.svg new file mode 100644 index 00000000..f524f17a --- /dev/null +++ b/assets/icons/polkadot/solid/Favorite.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Feeless.svg b/assets/icons/polkadot/solid/Feeless.svg new file mode 100644 index 00000000..0e04f290 --- /dev/null +++ b/assets/icons/polkadot/solid/Feeless.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Fees.svg b/assets/icons/polkadot/solid/Fees.svg new file mode 100644 index 00000000..087df8a8 --- /dev/null +++ b/assets/icons/polkadot/solid/Fees.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Fiat.svg b/assets/icons/polkadot/solid/Fiat.svg new file mode 100644 index 00000000..dcc3b753 --- /dev/null +++ b/assets/icons/polkadot/solid/Fiat.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Filter.svg b/assets/icons/polkadot/solid/Filter.svg new file mode 100644 index 00000000..66b83013 --- /dev/null +++ b/assets/icons/polkadot/solid/Filter.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Finances.svg b/assets/icons/polkadot/solid/Finances.svg new file mode 100644 index 00000000..c6eb45f0 --- /dev/null +++ b/assets/icons/polkadot/solid/Finances.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Fork.svg b/assets/icons/polkadot/solid/Fork.svg new file mode 100644 index 00000000..a30adc78 --- /dev/null +++ b/assets/icons/polkadot/solid/Fork.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/ForklessUpgrades.svg b/assets/icons/polkadot/solid/ForklessUpgrades.svg new file mode 100644 index 00000000..e45e0d08 --- /dev/null +++ b/assets/icons/polkadot/solid/ForklessUpgrades.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Full Node.svg b/assets/icons/polkadot/solid/Full Node.svg new file mode 100644 index 00000000..fe02c8b8 --- /dev/null +++ b/assets/icons/polkadot/solid/Full Node.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Fund Account.svg b/assets/icons/polkadot/solid/Fund Account.svg new file mode 100644 index 00000000..af3459ac --- /dev/null +++ b/assets/icons/polkadot/solid/Fund Account.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Fund Savings.svg b/assets/icons/polkadot/solid/Fund Savings.svg new file mode 100644 index 00000000..8b58ad5b --- /dev/null +++ b/assets/icons/polkadot/solid/Fund Savings.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Gaming.svg b/assets/icons/polkadot/solid/Gaming.svg new file mode 100644 index 00000000..4e16f279 --- /dev/null +++ b/assets/icons/polkadot/solid/Gaming.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Genesis.svg b/assets/icons/polkadot/solid/Genesis.svg new file mode 100644 index 00000000..69cc474e --- /dev/null +++ b/assets/icons/polkadot/solid/Genesis.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Gift.svg b/assets/icons/polkadot/solid/Gift.svg new file mode 100644 index 00000000..b30b1d50 --- /dev/null +++ b/assets/icons/polkadot/solid/Gift.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Glossary.svg b/assets/icons/polkadot/solid/Glossary.svg new file mode 100644 index 00000000..30ffdc7d --- /dev/null +++ b/assets/icons/polkadot/solid/Glossary.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Go.svg b/assets/icons/polkadot/solid/Go.svg new file mode 100644 index 00000000..8390d272 --- /dev/null +++ b/assets/icons/polkadot/solid/Go.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Governance.svg b/assets/icons/polkadot/solid/Governance.svg new file mode 100644 index 00000000..d5a61667 --- /dev/null +++ b/assets/icons/polkadot/solid/Governance.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Governments.svg b/assets/icons/polkadot/solid/Governments.svg new file mode 100644 index 00000000..57adef7d --- /dev/null +++ b/assets/icons/polkadot/solid/Governments.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Hackathon.svg b/assets/icons/polkadot/solid/Hackathon.svg new file mode 100644 index 00000000..943159ce --- /dev/null +++ b/assets/icons/polkadot/solid/Hackathon.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Hash Function.svg b/assets/icons/polkadot/solid/Hash Function.svg new file mode 100644 index 00000000..20e6a0e0 --- /dev/null +++ b/assets/icons/polkadot/solid/Hash Function.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Healthcare.svg b/assets/icons/polkadot/solid/Healthcare.svg new file mode 100644 index 00000000..aed5b11f --- /dev/null +++ b/assets/icons/polkadot/solid/Healthcare.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Help.svg b/assets/icons/polkadot/solid/Help.svg new file mode 100644 index 00000000..1576c9cd --- /dev/null +++ b/assets/icons/polkadot/solid/Help.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Heterogeneous Sharding.svg b/assets/icons/polkadot/solid/Heterogeneous Sharding.svg new file mode 100644 index 00000000..7edb5673 --- /dev/null +++ b/assets/icons/polkadot/solid/Heterogeneous Sharding.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Identify.svg b/assets/icons/polkadot/solid/Identify.svg new file mode 100644 index 00000000..98b52005 --- /dev/null +++ b/assets/icons/polkadot/solid/Identify.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Identity.svg b/assets/icons/polkadot/solid/Identity.svg new file mode 100644 index 00000000..eafe72bb --- /dev/null +++ b/assets/icons/polkadot/solid/Identity.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Import Token.svg b/assets/icons/polkadot/solid/Import Token.svg new file mode 100644 index 00000000..63ae0fed --- /dev/null +++ b/assets/icons/polkadot/solid/Import Token.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Indeterminate _ Negative.svg b/assets/icons/polkadot/solid/Indeterminate _ Negative.svg new file mode 100644 index 00000000..bc6e3971 --- /dev/null +++ b/assets/icons/polkadot/solid/Indeterminate _ Negative.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Informational.svg b/assets/icons/polkadot/solid/Informational.svg new file mode 100644 index 00000000..19472f11 --- /dev/null +++ b/assets/icons/polkadot/solid/Informational.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Infrastructure.svg b/assets/icons/polkadot/solid/Infrastructure.svg new file mode 100644 index 00000000..3e2bb941 --- /dev/null +++ b/assets/icons/polkadot/solid/Infrastructure.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Injected Account.svg b/assets/icons/polkadot/solid/Injected Account.svg new file mode 100644 index 00000000..ab3f0185 --- /dev/null +++ b/assets/icons/polkadot/solid/Injected Account.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Interconnected.svg b/assets/icons/polkadot/solid/Interconnected.svg new file mode 100644 index 00000000..b3d63510 --- /dev/null +++ b/assets/icons/polkadot/solid/Interconnected.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Interoperability.svg b/assets/icons/polkadot/solid/Interoperability.svg new file mode 100644 index 00000000..1ed2987c --- /dev/null +++ b/assets/icons/polkadot/solid/Interoperability.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Investors.svg b/assets/icons/polkadot/solid/Investors.svg new file mode 100644 index 00000000..dbdc8169 --- /dev/null +++ b/assets/icons/polkadot/solid/Investors.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/IoT And Robotics.svg b/assets/icons/polkadot/solid/IoT And Robotics.svg new file mode 100644 index 00000000..c0fca16f --- /dev/null +++ b/assets/icons/polkadot/solid/IoT And Robotics.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/IoT.svg b/assets/icons/polkadot/solid/IoT.svg new file mode 100644 index 00000000..09d4abf1 --- /dev/null +++ b/assets/icons/polkadot/solid/IoT.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Isolated.svg b/assets/icons/polkadot/solid/Isolated.svg new file mode 100644 index 00000000..6a433d07 --- /dev/null +++ b/assets/icons/polkadot/solid/Isolated.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/KeepAlive Check.svg b/assets/icons/polkadot/solid/KeepAlive Check.svg new file mode 100644 index 00000000..0504daf5 --- /dev/null +++ b/assets/icons/polkadot/solid/KeepAlive Check.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Key.svg b/assets/icons/polkadot/solid/Key.svg new file mode 100644 index 00000000..6e8b237c --- /dev/null +++ b/assets/icons/polkadot/solid/Key.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Language.svg b/assets/icons/polkadot/solid/Language.svg new file mode 100644 index 00000000..d85175d8 --- /dev/null +++ b/assets/icons/polkadot/solid/Language.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Layer (Four).svg b/assets/icons/polkadot/solid/Layer (Four).svg new file mode 100644 index 00000000..a9e26c9f --- /dev/null +++ b/assets/icons/polkadot/solid/Layer (Four).svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Layer (One).svg b/assets/icons/polkadot/solid/Layer (One).svg new file mode 100644 index 00000000..d7d19272 --- /dev/null +++ b/assets/icons/polkadot/solid/Layer (One).svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Layer (Three).svg b/assets/icons/polkadot/solid/Layer (Three).svg new file mode 100644 index 00000000..1a698978 --- /dev/null +++ b/assets/icons/polkadot/solid/Layer (Three).svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Layer (Two).svg b/assets/icons/polkadot/solid/Layer (Two).svg new file mode 100644 index 00000000..56c9bab0 --- /dev/null +++ b/assets/icons/polkadot/solid/Layer (Two).svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Layer.svg b/assets/icons/polkadot/solid/Layer.svg new file mode 100644 index 00000000..11f14910 --- /dev/null +++ b/assets/icons/polkadot/solid/Layer.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Learn More.svg b/assets/icons/polkadot/solid/Learn More.svg new file mode 100644 index 00000000..65023b8c --- /dev/null +++ b/assets/icons/polkadot/solid/Learn More.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Learn.svg b/assets/icons/polkadot/solid/Learn.svg new file mode 100644 index 00000000..2ffd3872 --- /dev/null +++ b/assets/icons/polkadot/solid/Learn.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Lease Duration.svg b/assets/icons/polkadot/solid/Lease Duration.svg new file mode 100644 index 00000000..17ad5f24 --- /dev/null +++ b/assets/icons/polkadot/solid/Lease Duration.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Library.svg b/assets/icons/polkadot/solid/Library.svg new file mode 100644 index 00000000..d15bdffd --- /dev/null +++ b/assets/icons/polkadot/solid/Library.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Light Node.svg b/assets/icons/polkadot/solid/Light Node.svg new file mode 100644 index 00000000..f46b5572 --- /dev/null +++ b/assets/icons/polkadot/solid/Light Node.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Lights On.svg b/assets/icons/polkadot/solid/Lights On.svg new file mode 100644 index 00000000..499634a0 --- /dev/null +++ b/assets/icons/polkadot/solid/Lights On.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Limited Supply.svg b/assets/icons/polkadot/solid/Limited Supply.svg new file mode 100644 index 00000000..b965441b --- /dev/null +++ b/assets/icons/polkadot/solid/Limited Supply.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/LinkedIn.svg b/assets/icons/polkadot/solid/LinkedIn.svg new file mode 100644 index 00000000..29251287 --- /dev/null +++ b/assets/icons/polkadot/solid/LinkedIn.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Lock.svg b/assets/icons/polkadot/solid/Lock.svg new file mode 100644 index 00000000..f10e412d --- /dev/null +++ b/assets/icons/polkadot/solid/Lock.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Maintain.svg b/assets/icons/polkadot/solid/Maintain.svg new file mode 100644 index 00000000..44c43eb6 --- /dev/null +++ b/assets/icons/polkadot/solid/Maintain.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Marketing.svg b/assets/icons/polkadot/solid/Marketing.svg new file mode 100644 index 00000000..091866f8 --- /dev/null +++ b/assets/icons/polkadot/solid/Marketing.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Menu.svg b/assets/icons/polkadot/solid/Menu.svg new file mode 100644 index 00000000..8b25bcad --- /dev/null +++ b/assets/icons/polkadot/solid/Menu.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Message.svg b/assets/icons/polkadot/solid/Message.svg new file mode 100644 index 00000000..bdc57c78 --- /dev/null +++ b/assets/icons/polkadot/solid/Message.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Metaverse.svg b/assets/icons/polkadot/solid/Metaverse.svg new file mode 100644 index 00000000..277a8cba --- /dev/null +++ b/assets/icons/polkadot/solid/Metaverse.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Mitigating Mev.svg b/assets/icons/polkadot/solid/Mitigating Mev.svg new file mode 100644 index 00000000..7d703af6 --- /dev/null +++ b/assets/icons/polkadot/solid/Mitigating Mev.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Mobile App.svg b/assets/icons/polkadot/solid/Mobile App.svg new file mode 100644 index 00000000..5715361f --- /dev/null +++ b/assets/icons/polkadot/solid/Mobile App.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Monitor.svg b/assets/icons/polkadot/solid/Monitor.svg new file mode 100644 index 00000000..2566890c --- /dev/null +++ b/assets/icons/polkadot/solid/Monitor.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/More Horizontal.svg b/assets/icons/polkadot/solid/More Horizontal.svg new file mode 100644 index 00000000..091b2efe --- /dev/null +++ b/assets/icons/polkadot/solid/More Horizontal.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/More Menu.svg b/assets/icons/polkadot/solid/More Menu.svg new file mode 100644 index 00000000..31fc356f --- /dev/null +++ b/assets/icons/polkadot/solid/More Menu.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/More Vertical.svg b/assets/icons/polkadot/solid/More Vertical.svg new file mode 100644 index 00000000..d57c823e --- /dev/null +++ b/assets/icons/polkadot/solid/More Vertical.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Multichain Smart Contracts.svg b/assets/icons/polkadot/solid/Multichain Smart Contracts.svg new file mode 100644 index 00000000..610043ec --- /dev/null +++ b/assets/icons/polkadot/solid/Multichain Smart Contracts.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Multichain Treasuries.svg b/assets/icons/polkadot/solid/Multichain Treasuries.svg new file mode 100644 index 00000000..b13a3f42 --- /dev/null +++ b/assets/icons/polkadot/solid/Multichain Treasuries.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Multisign Account.svg b/assets/icons/polkadot/solid/Multisign Account.svg new file mode 100644 index 00000000..223c6c69 --- /dev/null +++ b/assets/icons/polkadot/solid/Multisign Account.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Multisign.svg b/assets/icons/polkadot/solid/Multisign.svg new file mode 100644 index 00000000..bc217dfa --- /dev/null +++ b/assets/icons/polkadot/solid/Multisign.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/NFT Staking.svg b/assets/icons/polkadot/solid/NFT Staking.svg new file mode 100644 index 00000000..8930c6da --- /dev/null +++ b/assets/icons/polkadot/solid/NFT Staking.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Network Is Connected.svg b/assets/icons/polkadot/solid/Network Is Connected.svg new file mode 100644 index 00000000..c02bf3b5 --- /dev/null +++ b/assets/icons/polkadot/solid/Network Is Connected.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Network Security Operations.svg b/assets/icons/polkadot/solid/Network Security Operations.svg new file mode 100644 index 00000000..9b17ad39 --- /dev/null +++ b/assets/icons/polkadot/solid/Network Security Operations.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/New Tab.svg b/assets/icons/polkadot/solid/New Tab.svg new file mode 100644 index 00000000..224f76ed --- /dev/null +++ b/assets/icons/polkadot/solid/New Tab.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/News.svg b/assets/icons/polkadot/solid/News.svg new file mode 100644 index 00000000..b7db72e3 --- /dev/null +++ b/assets/icons/polkadot/solid/News.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Nft.svg b/assets/icons/polkadot/solid/Nft.svg new file mode 100644 index 00000000..80f1c6b5 --- /dev/null +++ b/assets/icons/polkadot/solid/Nft.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Night_Dark Mode.svg b/assets/icons/polkadot/solid/Night_Dark Mode.svg new file mode 100644 index 00000000..0df7c220 --- /dev/null +++ b/assets/icons/polkadot/solid/Night_Dark Mode.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Node.svg b/assets/icons/polkadot/solid/Node.svg new file mode 100644 index 00000000..d7fb61ba --- /dev/null +++ b/assets/icons/polkadot/solid/Node.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Nominating.svg b/assets/icons/polkadot/solid/Nominating.svg new file mode 100644 index 00000000..ab7695fc --- /dev/null +++ b/assets/icons/polkadot/solid/Nominating.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Nominators.svg b/assets/icons/polkadot/solid/Nominators.svg new file mode 100644 index 00000000..03dc1766 --- /dev/null +++ b/assets/icons/polkadot/solid/Nominators.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Not Able To Upgrade.svg b/assets/icons/polkadot/solid/Not Able To Upgrade.svg new file mode 100644 index 00000000..56f8503e --- /dev/null +++ b/assets/icons/polkadot/solid/Not Able To Upgrade.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Not Scalable.svg b/assets/icons/polkadot/solid/Not Scalable.svg new file mode 100644 index 00000000..ba22c217 --- /dev/null +++ b/assets/icons/polkadot/solid/Not Scalable.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Notification.svg b/assets/icons/polkadot/solid/Notification.svg new file mode 100644 index 00000000..25f3c268 --- /dev/null +++ b/assets/icons/polkadot/solid/Notification.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Off-Chain Computations.svg b/assets/icons/polkadot/solid/Off-Chain Computations.svg new file mode 100644 index 00000000..ab5f9e6e --- /dev/null +++ b/assets/icons/polkadot/solid/Off-Chain Computations.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Offboarding.svg b/assets/icons/polkadot/solid/Offboarding.svg new file mode 100644 index 00000000..92dc5c1a --- /dev/null +++ b/assets/icons/polkadot/solid/Offboarding.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/On-Chain Scheduling.svg b/assets/icons/polkadot/solid/On-Chain Scheduling.svg new file mode 100644 index 00000000..56800c16 --- /dev/null +++ b/assets/icons/polkadot/solid/On-Chain Scheduling.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Onboarding.svg b/assets/icons/polkadot/solid/Onboarding.svg new file mode 100644 index 00000000..d234f6da --- /dev/null +++ b/assets/icons/polkadot/solid/Onboarding.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Oracle.svg b/assets/icons/polkadot/solid/Oracle.svg new file mode 100644 index 00000000..a5bd15c6 --- /dev/null +++ b/assets/icons/polkadot/solid/Oracle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Oracles.svg b/assets/icons/polkadot/solid/Oracles.svg new file mode 100644 index 00000000..87802687 --- /dev/null +++ b/assets/icons/polkadot/solid/Oracles.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Overview.svg b/assets/icons/polkadot/solid/Overview.svg new file mode 100644 index 00000000..125e4c78 --- /dev/null +++ b/assets/icons/polkadot/solid/Overview.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Paper Money.svg b/assets/icons/polkadot/solid/Paper Money.svg new file mode 100644 index 00000000..a7ce3421 --- /dev/null +++ b/assets/icons/polkadot/solid/Paper Money.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Parachains.svg b/assets/icons/polkadot/solid/Parachains.svg new file mode 100644 index 00000000..60eda3a9 --- /dev/null +++ b/assets/icons/polkadot/solid/Parachains.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Payout.svg b/assets/icons/polkadot/solid/Payout.svg new file mode 100644 index 00000000..cf57b92d --- /dev/null +++ b/assets/icons/polkadot/solid/Payout.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Picture.svg b/assets/icons/polkadot/solid/Picture.svg new file mode 100644 index 00000000..a1ebb7f2 --- /dev/null +++ b/assets/icons/polkadot/solid/Picture.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Podcasts.svg b/assets/icons/polkadot/solid/Podcasts.svg new file mode 100644 index 00000000..eb84801f --- /dev/null +++ b/assets/icons/polkadot/solid/Podcasts.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Privacy.svg b/assets/icons/polkadot/solid/Privacy.svg new file mode 100644 index 00000000..1bb88093 --- /dev/null +++ b/assets/icons/polkadot/solid/Privacy.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Private Key.svg b/assets/icons/polkadot/solid/Private Key.svg new file mode 100644 index 00000000..6e11e058 --- /dev/null +++ b/assets/icons/polkadot/solid/Private Key.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Proof Of Stake.svg b/assets/icons/polkadot/solid/Proof Of Stake.svg new file mode 100644 index 00000000..96c7712d --- /dev/null +++ b/assets/icons/polkadot/solid/Proof Of Stake.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Proof Of Work.svg b/assets/icons/polkadot/solid/Proof Of Work.svg new file mode 100644 index 00000000..783b1171 --- /dev/null +++ b/assets/icons/polkadot/solid/Proof Of Work.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Proposal.svg b/assets/icons/polkadot/solid/Proposal.svg new file mode 100644 index 00000000..eeac7adc --- /dev/null +++ b/assets/icons/polkadot/solid/Proposal.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Proxy.svg b/assets/icons/polkadot/solid/Proxy.svg new file mode 100644 index 00000000..5a0f27fe --- /dev/null +++ b/assets/icons/polkadot/solid/Proxy.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/ProxyAccount.svg b/assets/icons/polkadot/solid/ProxyAccount.svg new file mode 100644 index 00000000..a58d4a9b --- /dev/null +++ b/assets/icons/polkadot/solid/ProxyAccount.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Public Key.svg b/assets/icons/polkadot/solid/Public Key.svg new file mode 100644 index 00000000..838d15ca --- /dev/null +++ b/assets/icons/polkadot/solid/Public Key.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/QR Code.svg b/assets/icons/polkadot/solid/QR Code.svg new file mode 100644 index 00000000..3ae67607 --- /dev/null +++ b/assets/icons/polkadot/solid/QR Code.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Randomness.svg b/assets/icons/polkadot/solid/Randomness.svg new file mode 100644 index 00000000..835fd9a4 --- /dev/null +++ b/assets/icons/polkadot/solid/Randomness.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Read Time.svg b/assets/icons/polkadot/solid/Read Time.svg new file mode 100644 index 00000000..89b7c96f --- /dev/null +++ b/assets/icons/polkadot/solid/Read Time.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Recover Keys.svg b/assets/icons/polkadot/solid/Recover Keys.svg new file mode 100644 index 00000000..2bd063b3 --- /dev/null +++ b/assets/icons/polkadot/solid/Recover Keys.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Recovery.svg b/assets/icons/polkadot/solid/Recovery.svg new file mode 100644 index 00000000..cb34c6fb --- /dev/null +++ b/assets/icons/polkadot/solid/Recovery.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Reddit.svg b/assets/icons/polkadot/solid/Reddit.svg new file mode 100644 index 00000000..dd7c9151 --- /dev/null +++ b/assets/icons/polkadot/solid/Reddit.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Referenda.svg b/assets/icons/polkadot/solid/Referenda.svg new file mode 100644 index 00000000..b97c7336 --- /dev/null +++ b/assets/icons/polkadot/solid/Referenda.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Refresh _ Redo.svg b/assets/icons/polkadot/solid/Refresh _ Redo.svg new file mode 100644 index 00000000..f204382f --- /dev/null +++ b/assets/icons/polkadot/solid/Refresh _ Redo.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Registrars.svg b/assets/icons/polkadot/solid/Registrars.svg new file mode 100644 index 00000000..baf93f70 --- /dev/null +++ b/assets/icons/polkadot/solid/Registrars.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Regulators.svg b/assets/icons/polkadot/solid/Regulators.svg new file mode 100644 index 00000000..99a9640d --- /dev/null +++ b/assets/icons/polkadot/solid/Regulators.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Relay Chain.svg b/assets/icons/polkadot/solid/Relay Chain.svg new file mode 100644 index 00000000..ab830428 --- /dev/null +++ b/assets/icons/polkadot/solid/Relay Chain.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Remote Node.svg b/assets/icons/polkadot/solid/Remote Node.svg new file mode 100644 index 00000000..1732d499 --- /dev/null +++ b/assets/icons/polkadot/solid/Remote Node.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Remove User.svg b/assets/icons/polkadot/solid/Remove User.svg new file mode 100644 index 00000000..55a2a07f --- /dev/null +++ b/assets/icons/polkadot/solid/Remove User.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Remove.svg b/assets/icons/polkadot/solid/Remove.svg new file mode 100644 index 00000000..2b51c767 --- /dev/null +++ b/assets/icons/polkadot/solid/Remove.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Report.svg b/assets/icons/polkadot/solid/Report.svg new file mode 100644 index 00000000..24ed86a5 --- /dev/null +++ b/assets/icons/polkadot/solid/Report.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Reputation Systems.svg b/assets/icons/polkadot/solid/Reputation Systems.svg new file mode 100644 index 00000000..2b02a91a --- /dev/null +++ b/assets/icons/polkadot/solid/Reputation Systems.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Research.svg b/assets/icons/polkadot/solid/Research.svg new file mode 100644 index 00000000..1e73f08e --- /dev/null +++ b/assets/icons/polkadot/solid/Research.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Reserve Back Assets.svg b/assets/icons/polkadot/solid/Reserve Back Assets.svg new file mode 100644 index 00000000..c4183710 --- /dev/null +++ b/assets/icons/polkadot/solid/Reserve Back Assets.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Restore From BackUp.svg b/assets/icons/polkadot/solid/Restore From BackUp.svg new file mode 100644 index 00000000..0eb5d97f --- /dev/null +++ b/assets/icons/polkadot/solid/Restore From BackUp.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Retail And Ecommerce.svg b/assets/icons/polkadot/solid/Retail And Ecommerce.svg new file mode 100644 index 00000000..d249011b --- /dev/null +++ b/assets/icons/polkadot/solid/Retail And Ecommerce.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Robust System.svg b/assets/icons/polkadot/solid/Robust System.svg new file mode 100644 index 00000000..4ddcfb2a --- /dev/null +++ b/assets/icons/polkadot/solid/Robust System.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Rust.svg b/assets/icons/polkadot/solid/Rust.svg new file mode 100644 index 00000000..884a5612 --- /dev/null +++ b/assets/icons/polkadot/solid/Rust.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Save.svg b/assets/icons/polkadot/solid/Save.svg new file mode 100644 index 00000000..c6ac3bc8 --- /dev/null +++ b/assets/icons/polkadot/solid/Save.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Scalability.svg b/assets/icons/polkadot/solid/Scalability.svg new file mode 100644 index 00000000..5bb71a91 --- /dev/null +++ b/assets/icons/polkadot/solid/Scalability.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Scale.svg b/assets/icons/polkadot/solid/Scale.svg new file mode 100644 index 00000000..5e36dd08 --- /dev/null +++ b/assets/icons/polkadot/solid/Scale.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Scaling.svg b/assets/icons/polkadot/solid/Scaling.svg new file mode 100644 index 00000000..190e28c6 --- /dev/null +++ b/assets/icons/polkadot/solid/Scaling.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Scam Alert.svg b/assets/icons/polkadot/solid/Scam Alert.svg new file mode 100644 index 00000000..0a0081a3 --- /dev/null +++ b/assets/icons/polkadot/solid/Scam Alert.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Search.svg b/assets/icons/polkadot/solid/Search.svg new file mode 100644 index 00000000..39324cde --- /dev/null +++ b/assets/icons/polkadot/solid/Search.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Second A Proposal.svg b/assets/icons/polkadot/solid/Second A Proposal.svg new file mode 100644 index 00000000..89c25654 --- /dev/null +++ b/assets/icons/polkadot/solid/Second A Proposal.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Secret Part Of The Derivation Path.svg b/assets/icons/polkadot/solid/Secret Part Of The Derivation Path.svg new file mode 100644 index 00000000..00033427 --- /dev/null +++ b/assets/icons/polkadot/solid/Secret Part Of The Derivation Path.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Secure Device.svg b/assets/icons/polkadot/solid/Secure Device.svg new file mode 100644 index 00000000..db4a168a --- /dev/null +++ b/assets/icons/polkadot/solid/Secure Device.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Security Check.svg b/assets/icons/polkadot/solid/Security Check.svg new file mode 100644 index 00000000..53fe793c --- /dev/null +++ b/assets/icons/polkadot/solid/Security Check.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Seed Phrase.svg b/assets/icons/polkadot/solid/Seed Phrase.svg new file mode 100644 index 00000000..cf0c9698 --- /dev/null +++ b/assets/icons/polkadot/solid/Seed Phrase.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Select List Item.svg b/assets/icons/polkadot/solid/Select List Item.svg new file mode 100644 index 00000000..76de60f2 --- /dev/null +++ b/assets/icons/polkadot/solid/Select List Item.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Session.svg b/assets/icons/polkadot/solid/Session.svg new file mode 100644 index 00000000..6094fe12 --- /dev/null +++ b/assets/icons/polkadot/solid/Session.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Settings.svg b/assets/icons/polkadot/solid/Settings.svg new file mode 100644 index 00000000..fa1b0fcd --- /dev/null +++ b/assets/icons/polkadot/solid/Settings.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Sharding.svg b/assets/icons/polkadot/solid/Sharding.svg new file mode 100644 index 00000000..0d67459c --- /dev/null +++ b/assets/icons/polkadot/solid/Sharding.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Share.svg b/assets/icons/polkadot/solid/Share.svg new file mode 100644 index 00000000..2925031b --- /dev/null +++ b/assets/icons/polkadot/solid/Share.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Shared Security.svg b/assets/icons/polkadot/solid/Shared Security.svg new file mode 100644 index 00000000..66433765 --- /dev/null +++ b/assets/icons/polkadot/solid/Shared Security.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Sign A Transaction.svg b/assets/icons/polkadot/solid/Sign A Transaction.svg new file mode 100644 index 00000000..4571c6ec --- /dev/null +++ b/assets/icons/polkadot/solid/Sign A Transaction.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Sign Specs.svg b/assets/icons/polkadot/solid/Sign Specs.svg new file mode 100644 index 00000000..ae2123df --- /dev/null +++ b/assets/icons/polkadot/solid/Sign Specs.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Sign.svg b/assets/icons/polkadot/solid/Sign.svg new file mode 100644 index 00000000..70f956e5 --- /dev/null +++ b/assets/icons/polkadot/solid/Sign.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Signal.svg b/assets/icons/polkadot/solid/Signal.svg new file mode 100644 index 00000000..4c38048a --- /dev/null +++ b/assets/icons/polkadot/solid/Signal.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Signature.svg b/assets/icons/polkadot/solid/Signature.svg new file mode 100644 index 00000000..a68cef3e --- /dev/null +++ b/assets/icons/polkadot/solid/Signature.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Signifier Tab.svg b/assets/icons/polkadot/solid/Signifier Tab.svg new file mode 100644 index 00000000..8c1c9f54 --- /dev/null +++ b/assets/icons/polkadot/solid/Signifier Tab.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Smart Contract.svg b/assets/icons/polkadot/solid/Smart Contract.svg new file mode 100644 index 00000000..f354fc1f --- /dev/null +++ b/assets/icons/polkadot/solid/Smart Contract.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Social Impact & Humanitarian.svg b/assets/icons/polkadot/solid/Social Impact & Humanitarian.svg new file mode 100644 index 00000000..478c39fa --- /dev/null +++ b/assets/icons/polkadot/solid/Social Impact & Humanitarian.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Social Networking.svg b/assets/icons/polkadot/solid/Social Networking.svg new file mode 100644 index 00000000..81bd9637 --- /dev/null +++ b/assets/icons/polkadot/solid/Social Networking.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Software Development.svg b/assets/icons/polkadot/solid/Software Development.svg new file mode 100644 index 00000000..5869c504 --- /dev/null +++ b/assets/icons/polkadot/solid/Software Development.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Specialised.svg b/assets/icons/polkadot/solid/Specialised.svg new file mode 100644 index 00000000..b396bbce --- /dev/null +++ b/assets/icons/polkadot/solid/Specialised.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Stablecoin.svg b/assets/icons/polkadot/solid/Stablecoin.svg new file mode 100644 index 00000000..1d0e4f97 --- /dev/null +++ b/assets/icons/polkadot/solid/Stablecoin.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Stake.svg b/assets/icons/polkadot/solid/Stake.svg new file mode 100644 index 00000000..86041a36 --- /dev/null +++ b/assets/icons/polkadot/solid/Stake.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Staking.svg b/assets/icons/polkadot/solid/Staking.svg new file mode 100644 index 00000000..07aad245 --- /dev/null +++ b/assets/icons/polkadot/solid/Staking.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Starting Period.svg b/assets/icons/polkadot/solid/Starting Period.svg new file mode 100644 index 00000000..49ffef61 --- /dev/null +++ b/assets/icons/polkadot/solid/Starting Period.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Success.svg b/assets/icons/polkadot/solid/Success.svg new file mode 100644 index 00000000..3f391469 --- /dev/null +++ b/assets/icons/polkadot/solid/Success.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Supply Chain.svg b/assets/icons/polkadot/solid/Supply Chain.svg new file mode 100644 index 00000000..06a57235 --- /dev/null +++ b/assets/icons/polkadot/solid/Supply Chain.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Talent.svg b/assets/icons/polkadot/solid/Talent.svg new file mode 100644 index 00000000..55496879 --- /dev/null +++ b/assets/icons/polkadot/solid/Talent.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Technical Committee.svg b/assets/icons/polkadot/solid/Technical Committee.svg new file mode 100644 index 00000000..4f2b918d --- /dev/null +++ b/assets/icons/polkadot/solid/Technical Committee.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Teleport.svg b/assets/icons/polkadot/solid/Teleport.svg new file mode 100644 index 00000000..75a745a1 --- /dev/null +++ b/assets/icons/polkadot/solid/Teleport.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Testnet Token.svg b/assets/icons/polkadot/solid/Testnet Token.svg new file mode 100644 index 00000000..7e0d03a4 --- /dev/null +++ b/assets/icons/polkadot/solid/Testnet Token.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Thumbs Down.svg b/assets/icons/polkadot/solid/Thumbs Down.svg new file mode 100644 index 00000000..587e135b --- /dev/null +++ b/assets/icons/polkadot/solid/Thumbs Down.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Thumbs Up.svg b/assets/icons/polkadot/solid/Thumbs Up.svg new file mode 100644 index 00000000..ab57e5b2 --- /dev/null +++ b/assets/icons/polkadot/solid/Thumbs Up.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Time.svg b/assets/icons/polkadot/solid/Time.svg new file mode 100644 index 00000000..8111e271 --- /dev/null +++ b/assets/icons/polkadot/solid/Time.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Token Holders.svg b/assets/icons/polkadot/solid/Token Holders.svg new file mode 100644 index 00000000..e7f0f99b --- /dev/null +++ b/assets/icons/polkadot/solid/Token Holders.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Token.svg b/assets/icons/polkadot/solid/Token.svg new file mode 100644 index 00000000..1843210f --- /dev/null +++ b/assets/icons/polkadot/solid/Token.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Tools.svg b/assets/icons/polkadot/solid/Tools.svg new file mode 100644 index 00000000..9fbfe13c --- /dev/null +++ b/assets/icons/polkadot/solid/Tools.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Transaction.svg b/assets/icons/polkadot/solid/Transaction.svg new file mode 100644 index 00000000..d0978ead --- /dev/null +++ b/assets/icons/polkadot/solid/Transaction.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Translate.svg b/assets/icons/polkadot/solid/Translate.svg new file mode 100644 index 00000000..9be868f1 --- /dev/null +++ b/assets/icons/polkadot/solid/Translate.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Transparency.svg b/assets/icons/polkadot/solid/Transparency.svg new file mode 100644 index 00000000..66baf79d --- /dev/null +++ b/assets/icons/polkadot/solid/Transparency.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Treasury.svg b/assets/icons/polkadot/solid/Treasury.svg new file mode 100644 index 00000000..3093cb09 --- /dev/null +++ b/assets/icons/polkadot/solid/Treasury.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Twitter.svg b/assets/icons/polkadot/solid/Twitter.svg new file mode 100644 index 00000000..029cf30b --- /dev/null +++ b/assets/icons/polkadot/solid/Twitter.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Ui.svg b/assets/icons/polkadot/solid/Ui.svg new file mode 100644 index 00000000..243a8387 --- /dev/null +++ b/assets/icons/polkadot/solid/Ui.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Unbond.svg b/assets/icons/polkadot/solid/Unbond.svg new file mode 100644 index 00000000..62e35383 --- /dev/null +++ b/assets/icons/polkadot/solid/Unbond.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Unchecked.svg b/assets/icons/polkadot/solid/Unchecked.svg new file mode 100644 index 00000000..58b92d19 --- /dev/null +++ b/assets/icons/polkadot/solid/Unchecked.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Unlock.svg b/assets/icons/polkadot/solid/Unlock.svg new file mode 100644 index 00000000..130a1f8f --- /dev/null +++ b/assets/icons/polkadot/solid/Unlock.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Unstake.svg b/assets/icons/polkadot/solid/Unstake.svg new file mode 100644 index 00000000..8e74d2de --- /dev/null +++ b/assets/icons/polkadot/solid/Unstake.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Upgrade.svg b/assets/icons/polkadot/solid/Upgrade.svg new file mode 100644 index 00000000..7918ea07 --- /dev/null +++ b/assets/icons/polkadot/solid/Upgrade.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Use Cases.svg b/assets/icons/polkadot/solid/Use Cases.svg new file mode 100644 index 00000000..6b38e4b6 --- /dev/null +++ b/assets/icons/polkadot/solid/Use Cases.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Users.svg b/assets/icons/polkadot/solid/Users.svg new file mode 100644 index 00000000..edf44e2d --- /dev/null +++ b/assets/icons/polkadot/solid/Users.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Utility.svg b/assets/icons/polkadot/solid/Utility.svg new file mode 100644 index 00000000..ff4a5571 --- /dev/null +++ b/assets/icons/polkadot/solid/Utility.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Ux.svg b/assets/icons/polkadot/solid/Ux.svg new file mode 100644 index 00000000..d8def508 --- /dev/null +++ b/assets/icons/polkadot/solid/Ux.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Validators.svg b/assets/icons/polkadot/solid/Validators.svg new file mode 100644 index 00000000..adba7d49 --- /dev/null +++ b/assets/icons/polkadot/solid/Validators.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Value Bearing Token.svg b/assets/icons/polkadot/solid/Value Bearing Token.svg new file mode 100644 index 00000000..354fc621 --- /dev/null +++ b/assets/icons/polkadot/solid/Value Bearing Token.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Verified Account.svg b/assets/icons/polkadot/solid/Verified Account.svg new file mode 100644 index 00000000..03214a89 --- /dev/null +++ b/assets/icons/polkadot/solid/Verified Account.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Verified Signed.svg b/assets/icons/polkadot/solid/Verified Signed.svg new file mode 100644 index 00000000..9724e7d7 --- /dev/null +++ b/assets/icons/polkadot/solid/Verified Signed.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Verify.svg b/assets/icons/polkadot/solid/Verify.svg new file mode 100644 index 00000000..72cedcd4 --- /dev/null +++ b/assets/icons/polkadot/solid/Verify.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Version.svg b/assets/icons/polkadot/solid/Version.svg new file mode 100644 index 00000000..f21f6c8a --- /dev/null +++ b/assets/icons/polkadot/solid/Version.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Vesting Period.svg b/assets/icons/polkadot/solid/Vesting Period.svg new file mode 100644 index 00000000..2f796837 --- /dev/null +++ b/assets/icons/polkadot/solid/Vesting Period.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Vesting.svg b/assets/icons/polkadot/solid/Vesting.svg new file mode 100644 index 00000000..b5f596a3 --- /dev/null +++ b/assets/icons/polkadot/solid/Vesting.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Video Pause.svg b/assets/icons/polkadot/solid/Video Pause.svg new file mode 100644 index 00000000..4569b218 --- /dev/null +++ b/assets/icons/polkadot/solid/Video Pause.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Video Play.svg b/assets/icons/polkadot/solid/Video Play.svg new file mode 100644 index 00000000..a9fdf6db --- /dev/null +++ b/assets/icons/polkadot/solid/Video Play.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Video.svg b/assets/icons/polkadot/solid/Video.svg new file mode 100644 index 00000000..253380f6 --- /dev/null +++ b/assets/icons/polkadot/solid/Video.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Videos.svg b/assets/icons/polkadot/solid/Videos.svg new file mode 100644 index 00000000..afca29ef --- /dev/null +++ b/assets/icons/polkadot/solid/Videos.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Vote.svg b/assets/icons/polkadot/solid/Vote.svg new file mode 100644 index 00000000..87203d49 --- /dev/null +++ b/assets/icons/polkadot/solid/Vote.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Voting Period.svg b/assets/icons/polkadot/solid/Voting Period.svg new file mode 100644 index 00000000..22bc480e --- /dev/null +++ b/assets/icons/polkadot/solid/Voting Period.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Wallet Deposit.svg b/assets/icons/polkadot/solid/Wallet Deposit.svg new file mode 100644 index 00000000..6663bba7 --- /dev/null +++ b/assets/icons/polkadot/solid/Wallet Deposit.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Wallet Withdraw.svg b/assets/icons/polkadot/solid/Wallet Withdraw.svg new file mode 100644 index 00000000..c880c6e2 --- /dev/null +++ b/assets/icons/polkadot/solid/Wallet Withdraw.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Wallet.svg b/assets/icons/polkadot/solid/Wallet.svg new file mode 100644 index 00000000..dc25cc84 --- /dev/null +++ b/assets/icons/polkadot/solid/Wallet.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Wallets.svg b/assets/icons/polkadot/solid/Wallets.svg new file mode 100644 index 00000000..9e738ce6 --- /dev/null +++ b/assets/icons/polkadot/solid/Wallets.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Wasm.svg b/assets/icons/polkadot/solid/Wasm.svg new file mode 100644 index 00000000..ca37f8ee --- /dev/null +++ b/assets/icons/polkadot/solid/Wasm.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Web3.svg b/assets/icons/polkadot/solid/Web3.svg new file mode 100644 index 00000000..34454550 --- /dev/null +++ b/assets/icons/polkadot/solid/Web3.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Whitepaper Download.svg b/assets/icons/polkadot/solid/Whitepaper Download.svg new file mode 100644 index 00000000..64cbabf8 --- /dev/null +++ b/assets/icons/polkadot/solid/Whitepaper Download.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Whitepaper Upload.svg b/assets/icons/polkadot/solid/Whitepaper Upload.svg new file mode 100644 index 00000000..57dd7bc8 --- /dev/null +++ b/assets/icons/polkadot/solid/Whitepaper Upload.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Whitepaper.svg b/assets/icons/polkadot/solid/Whitepaper.svg new file mode 100644 index 00000000..9ac914e9 --- /dev/null +++ b/assets/icons/polkadot/solid/Whitepaper.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/WiFi Off.svg b/assets/icons/polkadot/solid/WiFi Off.svg new file mode 100644 index 00000000..632cf3e0 --- /dev/null +++ b/assets/icons/polkadot/solid/WiFi Off.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/WiFi.svg b/assets/icons/polkadot/solid/WiFi.svg new file mode 100644 index 00000000..9136921c --- /dev/null +++ b/assets/icons/polkadot/solid/WiFi.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Wiki.svg b/assets/icons/polkadot/solid/Wiki.svg new file mode 100644 index 00000000..8422f0a2 --- /dev/null +++ b/assets/icons/polkadot/solid/Wiki.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Withdraw.svg b/assets/icons/polkadot/solid/Withdraw.svg new file mode 100644 index 00000000..1a4079b4 --- /dev/null +++ b/assets/icons/polkadot/solid/Withdraw.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Workshop.svg b/assets/icons/polkadot/solid/Workshop.svg new file mode 100644 index 00000000..3a053356 --- /dev/null +++ b/assets/icons/polkadot/solid/Workshop.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/XCM (Message).svg b/assets/icons/polkadot/solid/XCM (Message).svg new file mode 100644 index 00000000..80ffcd4d --- /dev/null +++ b/assets/icons/polkadot/solid/XCM (Message).svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/icons/polkadot/solid/Youtube.svg b/assets/icons/polkadot/solid/Youtube.svg new file mode 100644 index 00000000..3d06fbb2 --- /dev/null +++ b/assets/icons/polkadot/solid/Youtube.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/img/0-Shared/bg-circles-color-transparent.png b/assets/img/0-Shared/bg-circles-color-transparent.png new file mode 100644 index 00000000..5469d3a4 Binary files /dev/null and b/assets/img/0-Shared/bg-circles-color-transparent.png differ diff --git a/assets/img/0-Shared/bg-circles-color.png b/assets/img/0-Shared/bg-circles-color.png new file mode 100644 index 00000000..abdadfcb Binary files /dev/null and b/assets/img/0-Shared/bg-circles-color.png differ diff --git a/assets/img/0-Shared/bg-circles-image-transparent.png b/assets/img/0-Shared/bg-circles-image-transparent.png new file mode 100644 index 00000000..ccd53f13 Binary files /dev/null and b/assets/img/0-Shared/bg-circles-image-transparent.png differ diff --git a/assets/img/0-Shared/bg-circles-image.png b/assets/img/0-Shared/bg-circles-image.png new file mode 100644 index 00000000..5dc05ec6 Binary files /dev/null and b/assets/img/0-Shared/bg-circles-image.png differ diff --git a/assets/img/0-Shared/bg-top-left.svg b/assets/img/0-Shared/bg-top-left.svg new file mode 100644 index 00000000..a941ad7b --- /dev/null +++ b/assets/img/0-Shared/bg-top-left.svg @@ -0,0 +1,181 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/img/0-Shared/dynamic-wang-bg-1.png b/assets/img/0-Shared/dynamic-wang-bg-1.png new file mode 100644 index 00000000..f6f05139 Binary files /dev/null and b/assets/img/0-Shared/dynamic-wang-bg-1.png differ diff --git a/assets/img/0-Shared/dynamic-wang-bg-2.png b/assets/img/0-Shared/dynamic-wang-bg-2.png new file mode 100644 index 00000000..1754f883 Binary files /dev/null and b/assets/img/0-Shared/dynamic-wang-bg-2.png differ diff --git a/assets/img/0-Shared/info-graphics/Block-header-hashing.png b/assets/img/0-Shared/info-graphics/Block-header-hashing.png new file mode 100644 index 00000000..d9d6def2 Binary files /dev/null and b/assets/img/0-Shared/info-graphics/Block-header-hashing.png differ diff --git a/assets/img/0-Shared/info-graphics/block-diagram.png b/assets/img/0-Shared/info-graphics/block-diagram.png new file mode 100644 index 00000000..c32d189b Binary files /dev/null and b/assets/img/0-Shared/info-graphics/block-diagram.png differ diff --git a/assets/img/0-Shared/info-graphics/compair-consensus-algos.png b/assets/img/0-Shared/info-graphics/compair-consensus-algos.png new file mode 100644 index 00000000..11402acf Binary files /dev/null and b/assets/img/0-Shared/info-graphics/compair-consensus-algos.png differ diff --git a/assets/img/0-Shared/info-graphics/consensus-compaired.png b/assets/img/0-Shared/info-graphics/consensus-compaired.png new file mode 100644 index 00000000..46eee7ef Binary files /dev/null and b/assets/img/0-Shared/info-graphics/consensus-compaired.png differ diff --git a/assets/img/0-Shared/info-graphics/consensus-layers-outline.png b/assets/img/0-Shared/info-graphics/consensus-layers-outline.png new file mode 100644 index 00000000..d459b868 Binary files /dev/null and b/assets/img/0-Shared/info-graphics/consensus-layers-outline.png differ diff --git a/assets/img/0-Shared/info-graphics/consensus-mechanism.png b/assets/img/0-Shared/info-graphics/consensus-mechanism.png new file mode 100644 index 00000000..ea07154f Binary files /dev/null and b/assets/img/0-Shared/info-graphics/consensus-mechanism.png differ diff --git a/assets/img/0-Shared/info-graphics/digital-sig.png b/assets/img/0-Shared/info-graphics/digital-sig.png new file mode 100644 index 00000000..0be18454 Binary files /dev/null and b/assets/img/0-Shared/info-graphics/digital-sig.png differ diff --git a/assets/img/0-Shared/info-graphics/dot-governance.png b/assets/img/0-Shared/info-graphics/dot-governance.png new file mode 100644 index 00000000..2f8f1470 Binary files /dev/null and b/assets/img/0-Shared/info-graphics/dot-governance.png differ diff --git a/assets/img/0-Shared/info-graphics/dot-voting-box.png b/assets/img/0-Shared/info-graphics/dot-voting-box.png new file mode 100644 index 00000000..08cc9a4a Binary files /dev/null and b/assets/img/0-Shared/info-graphics/dot-voting-box.png differ diff --git a/assets/img/0-Shared/info-graphics/gov-vq-roles.png b/assets/img/0-Shared/info-graphics/gov-vq-roles.png new file mode 100644 index 00000000..186af645 Binary files /dev/null and b/assets/img/0-Shared/info-graphics/gov-vq-roles.png differ diff --git a/assets/img/0-Shared/info-graphics/hash-digests.png b/assets/img/0-Shared/info-graphics/hash-digests.png new file mode 100644 index 00000000..b0dee1fb Binary files /dev/null and b/assets/img/0-Shared/info-graphics/hash-digests.png differ diff --git a/assets/img/0-Shared/info-graphics/merkel-trie.png b/assets/img/0-Shared/info-graphics/merkel-trie.png new file mode 100644 index 00000000..cfdf993e Binary files /dev/null and b/assets/img/0-Shared/info-graphics/merkel-trie.png differ diff --git a/assets/img/0-Shared/info-graphics/message-signatures.png b/assets/img/0-Shared/info-graphics/message-signatures.png new file mode 100644 index 00000000..bfa1dd59 Binary files /dev/null and b/assets/img/0-Shared/info-graphics/message-signatures.png differ diff --git a/assets/img/0-Shared/info-graphics/people-network.png b/assets/img/0-Shared/info-graphics/people-network.png new file mode 100644 index 00000000..43c4640d Binary files /dev/null and b/assets/img/0-Shared/info-graphics/people-network.png differ diff --git a/assets/img/0-Shared/info-graphics/polkadot-ecosystem-overview.png b/assets/img/0-Shared/info-graphics/polkadot-ecosystem-overview.png new file mode 100644 index 00000000..f3a17ab8 Binary files /dev/null and b/assets/img/0-Shared/info-graphics/polkadot-ecosystem-overview.png differ diff --git a/assets/img/0-Shared/info-graphics/private-keys.png b/assets/img/0-Shared/info-graphics/private-keys.png new file mode 100644 index 00000000..74e15f4e Binary files /dev/null and b/assets/img/0-Shared/info-graphics/private-keys.png differ diff --git a/assets/img/0-Shared/info-graphics/relay-vs-para-vs-bridge.png b/assets/img/0-Shared/info-graphics/relay-vs-para-vs-bridge.png new file mode 100644 index 00000000..75b97496 Binary files /dev/null and b/assets/img/0-Shared/info-graphics/relay-vs-para-vs-bridge.png differ diff --git a/assets/img/0-Shared/logo/DOT-pink.svg b/assets/img/0-Shared/logo/DOT-pink.svg new file mode 100644 index 00000000..9d5bad67 --- /dev/null +++ b/assets/img/0-Shared/logo/DOT-pink.svg @@ -0,0 +1,14 @@ + + + diff --git a/assets/img/0-Shared/logo/bitcoin.png b/assets/img/0-Shared/logo/bitcoin.png new file mode 100644 index 00000000..2a9f4f78 Binary files /dev/null and b/assets/img/0-Shared/logo/bitcoin.png differ diff --git a/assets/img/0-Shared/logo/dot-ksm.png b/assets/img/0-Shared/logo/dot-ksm.png new file mode 100644 index 00000000..8eb8548c Binary files /dev/null and b/assets/img/0-Shared/logo/dot-ksm.png differ diff --git a/assets/img/0-Shared/logo/etehreum-solid.png b/assets/img/0-Shared/logo/etehreum-solid.png new file mode 100644 index 00000000..a3db9cc1 Binary files /dev/null and b/assets/img/0-Shared/logo/etehreum-solid.png differ diff --git a/assets/img/0-Shared/logo/ethereum-transp.png b/assets/img/0-Shared/logo/ethereum-transp.png new file mode 100644 index 00000000..388713c7 Binary files /dev/null and b/assets/img/0-Shared/logo/ethereum-transp.png differ diff --git a/assets/img/0-Shared/logo/ferris-webassembly.png b/assets/img/0-Shared/logo/ferris-webassembly.png new file mode 100644 index 00000000..6f75eb28 Binary files /dev/null and b/assets/img/0-Shared/logo/ferris-webassembly.png differ diff --git a/assets/img/0-Shared/logo/github-white.png b/assets/img/0-Shared/logo/github-white.png new file mode 100644 index 00000000..0972ae57 Binary files /dev/null and b/assets/img/0-Shared/logo/github-white.png differ diff --git a/assets/img/0-Shared/logo/ink-white.png b/assets/img/0-Shared/logo/ink-white.png new file mode 100644 index 00000000..03a50675 Binary files /dev/null and b/assets/img/0-Shared/logo/ink-white.png differ diff --git a/assets/img/0-Shared/logo/parity-black.png b/assets/img/0-Shared/logo/parity-black.png new file mode 100644 index 00000000..110e297d Binary files /dev/null and b/assets/img/0-Shared/logo/parity-black.png differ diff --git a/assets/img/0-Shared/logo/parity-tiny.png b/assets/img/0-Shared/logo/parity-tiny.png new file mode 100644 index 00000000..f68f8be6 Binary files /dev/null and b/assets/img/0-Shared/logo/parity-tiny.png differ diff --git a/assets/img/0-Shared/logo/parity-white.png b/assets/img/0-Shared/logo/parity-white.png new file mode 100644 index 00000000..cc1319bb Binary files /dev/null and b/assets/img/0-Shared/logo/parity-white.png differ diff --git a/assets/img/0-Shared/logo/pba-logo-black.svg b/assets/img/0-Shared/logo/pba-logo-black.svg new file mode 100644 index 00000000..29a7bff1 --- /dev/null +++ b/assets/img/0-Shared/logo/pba-logo-black.svg @@ -0,0 +1,46 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/img/0-Shared/logo/pba-logo-white.svg b/assets/img/0-Shared/logo/pba-logo-white.svg new file mode 100644 index 00000000..449fbf62 --- /dev/null +++ b/assets/img/0-Shared/logo/pba-logo-white.svg @@ -0,0 +1,61 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/assets/img/0-Shared/logo/polkadot_pink-white.svg b/assets/img/0-Shared/logo/polkadot_pink-white.svg new file mode 100755 index 00000000..0a32c588 --- /dev/null +++ b/assets/img/0-Shared/logo/polkadot_pink-white.svg @@ -0,0 +1,45 @@ + + + + + + + + + + + + + + + + diff --git a/assets/img/0-Shared/logo/rust-black.png b/assets/img/0-Shared/logo/rust-black.png new file mode 100644 index 00000000..7f5f13d5 Binary files /dev/null and b/assets/img/0-Shared/logo/rust-black.png differ diff --git a/assets/img/0-Shared/logo/rust-white.png b/assets/img/0-Shared/logo/rust-white.png new file mode 100644 index 00000000..cfc5da77 Binary files /dev/null and b/assets/img/0-Shared/logo/rust-white.png differ diff --git a/assets/img/0-Shared/logo/substrate-black.png b/assets/img/0-Shared/logo/substrate-black.png new file mode 100644 index 00000000..edd568f3 Binary files /dev/null and b/assets/img/0-Shared/logo/substrate-black.png differ diff --git a/assets/img/0-Shared/logo/substrate-old-logo-white.png b/assets/img/0-Shared/logo/substrate-old-logo-white.png new file mode 100644 index 00000000..e53868aa Binary files /dev/null and b/assets/img/0-Shared/logo/substrate-old-logo-white.png differ diff --git a/assets/img/0-Shared/logo/substrate-white.png b/assets/img/0-Shared/logo/substrate-white.png new file mode 100644 index 00000000..7bc3546d Binary files /dev/null and b/assets/img/0-Shared/logo/substrate-white.png differ diff --git a/assets/img/0-Shared/logo/webassembly-black.png b/assets/img/0-Shared/logo/webassembly-black.png new file mode 100644 index 00000000..bfa60c52 Binary files /dev/null and b/assets/img/0-Shared/logo/webassembly-black.png differ diff --git a/content/polkadot/decisions/img/webassembly-blue.png b/assets/img/0-Shared/logo/webassembly-blue.png similarity index 100% rename from content/polkadot/decisions/img/webassembly-blue.png rename to assets/img/0-Shared/logo/webassembly-blue.png diff --git a/assets/img/0-Shared/logo/webassembly-white.png b/assets/img/0-Shared/logo/webassembly-white.png new file mode 100644 index 00000000..73cfa748 Binary files /dev/null and b/assets/img/0-Shared/logo/webassembly-white.png differ diff --git a/assets/img/0-Shared/meta-slides/chefs.jpg b/assets/img/0-Shared/meta-slides/chefs.jpg new file mode 100644 index 00000000..fc2c6d66 Binary files /dev/null and b/assets/img/0-Shared/meta-slides/chefs.jpg differ diff --git a/assets/img/0-Shared/meta-slides/competency-checklist.png b/assets/img/0-Shared/meta-slides/competency-checklist.png new file mode 100644 index 00000000..b7659dd3 Binary files /dev/null and b/assets/img/0-Shared/meta-slides/competency-checklist.png differ diff --git a/assets/img/0-Shared/meta-slides/do-it.webp b/assets/img/0-Shared/meta-slides/do-it.webp new file mode 100644 index 00000000..fd221b24 Binary files /dev/null and b/assets/img/0-Shared/meta-slides/do-it.webp differ diff --git a/assets/img/0-Shared/meta-slides/hand.png b/assets/img/0-Shared/meta-slides/hand.png new file mode 100644 index 00000000..44d21f65 Binary files /dev/null and b/assets/img/0-Shared/meta-slides/hand.png differ diff --git a/assets/img/0-Shared/meta-slides/phone.png b/assets/img/0-Shared/meta-slides/phone.png new file mode 100644 index 00000000..84725475 Binary files /dev/null and b/assets/img/0-Shared/meta-slides/phone.png differ diff --git a/assets/img/0-Shared/meta-slides/pledge.png b/assets/img/0-Shared/meta-slides/pledge.png new file mode 100644 index 00000000..7be9be0c Binary files /dev/null and b/assets/img/0-Shared/meta-slides/pledge.png differ diff --git a/assets/img/0-Shared/meta-slides/salute-team.jpg b/assets/img/0-Shared/meta-slides/salute-team.jpg new file mode 100644 index 00000000..b813a9ed Binary files /dev/null and b/assets/img/0-Shared/meta-slides/salute-team.jpg differ diff --git a/assets/img/0-Shared/meta-slides/sleep.png b/assets/img/0-Shared/meta-slides/sleep.png new file mode 100644 index 00000000..c47c06ee Binary files /dev/null and b/assets/img/0-Shared/meta-slides/sleep.png differ diff --git a/assets/img/0-Shared/meta-slides/uba1.png b/assets/img/0-Shared/meta-slides/uba1.png new file mode 100644 index 00000000..acf3a5c9 Binary files /dev/null and b/assets/img/0-Shared/meta-slides/uba1.png differ diff --git a/assets/img/0-Shared/meta-slides/uba2.png b/assets/img/0-Shared/meta-slides/uba2.png new file mode 100644 index 00000000..a48920d3 Binary files /dev/null and b/assets/img/0-Shared/meta-slides/uba2.png differ diff --git a/assets/img/0-Shared/meta-slides/uba3.png b/assets/img/0-Shared/meta-slides/uba3.png new file mode 100644 index 00000000..903a3917 Binary files /dev/null and b/assets/img/0-Shared/meta-slides/uba3.png differ diff --git a/assets/img/0-Shared/meta-slides/uba4.png b/assets/img/0-Shared/meta-slides/uba4.png new file mode 100644 index 00000000..3d3337dc Binary files /dev/null and b/assets/img/0-Shared/meta-slides/uba4.png differ diff --git a/assets/img/0-Shared/meta-slides/uba5.png b/assets/img/0-Shared/meta-slides/uba5.png new file mode 100644 index 00000000..5a18b234 Binary files /dev/null and b/assets/img/0-Shared/meta-slides/uba5.png differ diff --git a/assets/img/0-Shared/meta-slides/uba6.png b/assets/img/0-Shared/meta-slides/uba6.png new file mode 100644 index 00000000..00d07566 Binary files /dev/null and b/assets/img/0-Shared/meta-slides/uba6.png differ diff --git a/assets/img/0-Shared/meta-slides/uba7.png b/assets/img/0-Shared/meta-slides/uba7.png new file mode 100644 index 00000000..f3fa305f Binary files /dev/null and b/assets/img/0-Shared/meta-slides/uba7.png differ diff --git a/assets/img/0-Shared/mission-accomplished.gif b/assets/img/0-Shared/mission-accomplished.gif new file mode 100644 index 00000000..2fbed977 Binary files /dev/null and b/assets/img/0-Shared/mission-accomplished.gif differ diff --git a/assets/img/0-Shared/parachains/breakdown/-collators.png b/assets/img/0-Shared/parachains/breakdown/-collators.png new file mode 100644 index 00000000..4543e222 Binary files /dev/null and b/assets/img/0-Shared/parachains/breakdown/-collators.png differ diff --git a/assets/img/0-Shared/parachains/breakdown/1-relay.png b/assets/img/0-Shared/parachains/breakdown/1-relay.png new file mode 100644 index 00000000..bc593d07 Binary files /dev/null and b/assets/img/0-Shared/parachains/breakdown/1-relay.png differ diff --git a/assets/img/0-Shared/parachains/breakdown/2-validators.png b/assets/img/0-Shared/parachains/breakdown/2-validators.png new file mode 100644 index 00000000..e03d85e7 Binary files /dev/null and b/assets/img/0-Shared/parachains/breakdown/2-validators.png differ diff --git a/assets/img/0-Shared/parachains/breakdown/3-parahain.png b/assets/img/0-Shared/parachains/breakdown/3-parahain.png new file mode 100644 index 00000000..d50084e5 Binary files /dev/null and b/assets/img/0-Shared/parachains/breakdown/3-parahain.png differ diff --git a/assets/img/0-Shared/parachains/breakdown/5-bridge.png b/assets/img/0-Shared/parachains/breakdown/5-bridge.png new file mode 100644 index 00000000..7b118bf1 Binary files /dev/null and b/assets/img/0-Shared/parachains/breakdown/5-bridge.png differ diff --git a/assets/img/0-Shared/parachains/overlapping/1-overlapping-collators.png b/assets/img/0-Shared/parachains/overlapping/1-overlapping-collators.png new file mode 100644 index 00000000..fa8fb7a3 Binary files /dev/null and b/assets/img/0-Shared/parachains/overlapping/1-overlapping-collators.png differ diff --git a/assets/img/0-Shared/parachains/overlapping/2-overlapping-collators.png b/assets/img/0-Shared/parachains/overlapping/2-overlapping-collators.png new file mode 100644 index 00000000..925e859c Binary files /dev/null and b/assets/img/0-Shared/parachains/overlapping/2-overlapping-collators.png differ diff --git a/assets/img/0-Shared/parachains/overlapping/3-overlapping-collators.png b/assets/img/0-Shared/parachains/overlapping/3-overlapping-collators.png new file mode 100644 index 00000000..610eb2d0 Binary files /dev/null and b/assets/img/0-Shared/parachains/overlapping/3-overlapping-collators.png differ diff --git a/content/polkadot/decisions/img/parachains-transparent.png b/assets/img/0-Shared/parachains/parachains-transparent.png similarity index 100% rename from content/polkadot/decisions/img/parachains-transparent.png rename to assets/img/0-Shared/parachains/parachains-transparent.png diff --git a/assets/img/0-Shared/parachains/parachains-white.png b/assets/img/0-Shared/parachains/parachains-white.png new file mode 100644 index 00000000..b42f7f9e Binary files /dev/null and b/assets/img/0-Shared/parachains/parachains-white.png differ diff --git a/assets/img/0-Shared/parachains/relay-network-diagram.png b/assets/img/0-Shared/parachains/relay-network-diagram.png new file mode 100644 index 00000000..df960222 Binary files /dev/null and b/assets/img/0-Shared/parachains/relay-network-diagram.png differ diff --git a/assets/img/0-Shared/parachains/ven-diagram-solo-para.png b/assets/img/0-Shared/parachains/ven-diagram-solo-para.png new file mode 100644 index 00000000..f80f43e6 Binary files /dev/null and b/assets/img/0-Shared/parachains/ven-diagram-solo-para.png differ diff --git a/assets/img/0-Shared/people/BUFFICORN_2521_ALT_smol.gif b/assets/img/0-Shared/people/BUFFICORN_2521_ALT_smol.gif new file mode 100644 index 00000000..efff7717 Binary files /dev/null and b/assets/img/0-Shared/people/BUFFICORN_2521_ALT_smol.gif differ diff --git a/assets/img/0-Shared/people/alex.jpg b/assets/img/0-Shared/people/alex.jpg new file mode 100644 index 00000000..817c29af Binary files /dev/null and b/assets/img/0-Shared/people/alex.jpg differ diff --git a/assets/img/0-Shared/people/alfonso.png b/assets/img/0-Shared/people/alfonso.png new file mode 100644 index 00000000..22d4616a Binary files /dev/null and b/assets/img/0-Shared/people/alfonso.png differ diff --git a/assets/img/0-Shared/people/alistair.png b/assets/img/0-Shared/people/alistair.png new file mode 100644 index 00000000..6b05ca21 Binary files /dev/null and b/assets/img/0-Shared/people/alistair.png differ diff --git a/assets/img/0-Shared/people/basti.png b/assets/img/0-Shared/people/basti.png new file mode 100644 index 00000000..2b18ffaf Binary files /dev/null and b/assets/img/0-Shared/people/basti.png differ diff --git a/assets/img/0-Shared/people/gav.png b/assets/img/0-Shared/people/gav.png new file mode 100644 index 00000000..01a498e0 Binary files /dev/null and b/assets/img/0-Shared/people/gav.png differ diff --git a/assets/img/0-Shared/people/joe.png b/assets/img/0-Shared/people/joe.png new file mode 100644 index 00000000..39eb94ae Binary files /dev/null and b/assets/img/0-Shared/people/joe.png differ diff --git a/assets/img/0-Shared/people/jonas.png b/assets/img/0-Shared/people/jonas.png new file mode 100644 index 00000000..54a9ff94 Binary files /dev/null and b/assets/img/0-Shared/people/jonas.png differ diff --git a/assets/img/0-Shared/people/joshy.png b/assets/img/0-Shared/people/joshy.png new file mode 100644 index 00000000..c9a83b83 Binary files /dev/null and b/assets/img/0-Shared/people/joshy.png differ diff --git a/assets/img/0-Shared/people/kian.png b/assets/img/0-Shared/people/kian.png new file mode 100644 index 00000000..763c75ce Binary files /dev/null and b/assets/img/0-Shared/people/kian.png differ diff --git a/assets/img/0-Shared/people/michi.png b/assets/img/0-Shared/people/michi.png new file mode 100644 index 00000000..cecf3170 Binary files /dev/null and b/assets/img/0-Shared/people/michi.png differ diff --git a/assets/img/0-Shared/people/shawn.png b/assets/img/0-Shared/people/shawn.png new file mode 100644 index 00000000..a4a916d4 Binary files /dev/null and b/assets/img/0-Shared/people/shawn.png differ diff --git a/assets/img/0-Shared/placeholder/Landscape_mountain.jpg b/assets/img/0-Shared/placeholder/Landscape_mountain.jpg new file mode 100644 index 00000000..ce1c21fe Binary files /dev/null and b/assets/img/0-Shared/placeholder/Landscape_mountain.jpg differ diff --git a/assets/img/0-Shared/placeholder/carry-you.png b/assets/img/0-Shared/placeholder/carry-you.png new file mode 100644 index 00000000..e4fe572e Binary files /dev/null and b/assets/img/0-Shared/placeholder/carry-you.png differ diff --git a/assets/img/0-Shared/placeholder/profile.png b/assets/img/0-Shared/placeholder/profile.png new file mode 100644 index 00000000..90dab26a Binary files /dev/null and b/assets/img/0-Shared/placeholder/profile.png differ diff --git a/assets/img/0-Shared/placeholder/we-can-do-it.png b/assets/img/0-Shared/placeholder/we-can-do-it.png new file mode 100644 index 00000000..29533a57 Binary files /dev/null and b/assets/img/0-Shared/placeholder/we-can-do-it.png differ diff --git a/content/polkadot/availability-cores/img/Processor_Cores.jpeg b/assets/img/5-Polkadot/Availability_Cores_Deep_Dive/Processor_Cores.jpeg similarity index 100% rename from content/polkadot/availability-cores/img/Processor_Cores.jpeg rename to assets/img/5-Polkadot/Availability_Cores_Deep_Dive/Processor_Cores.jpeg diff --git a/content/polkadot/availability-cores/img/Train.jpeg b/assets/img/5-Polkadot/Availability_Cores_Deep_Dive/Train.jpeg similarity index 100% rename from content/polkadot/availability-cores/img/Train.jpeg rename to assets/img/5-Polkadot/Availability_Cores_Deep_Dive/Train.jpeg diff --git a/content/polkadot/availability-cores/img/advantage.png b/assets/img/5-Polkadot/Availability_Cores_Deep_Dive/advantage.png similarity index 100% rename from content/polkadot/availability-cores/img/advantage.png rename to assets/img/5-Polkadot/Availability_Cores_Deep_Dive/advantage.png diff --git a/content/polkadot/availability-cores/img/cores_big_picture.svg b/assets/img/5-Polkadot/Availability_Cores_Deep_Dive/cores_big_picture.svg similarity index 100% rename from content/polkadot/availability-cores/img/cores_big_picture.svg rename to assets/img/5-Polkadot/Availability_Cores_Deep_Dive/cores_big_picture.svg diff --git a/content/polkadot/availability-cores/img/dice.jpeg b/assets/img/5-Polkadot/Availability_Cores_Deep_Dive/dice.jpeg similarity index 100% rename from content/polkadot/availability-cores/img/dice.jpeg rename to assets/img/5-Polkadot/Availability_Cores_Deep_Dive/dice.jpeg diff --git a/content/polkadot/availability-cores/img/exotic_core_scheduling.svg b/assets/img/5-Polkadot/Availability_Cores_Deep_Dive/exotic_core_scheduling.svg similarity index 100% rename from content/polkadot/availability-cores/img/exotic_core_scheduling.svg rename to assets/img/5-Polkadot/Availability_Cores_Deep_Dive/exotic_core_scheduling.svg diff --git a/content/polkadot/availability-cores/img/occupying_assigned_cores_on_demand.svg b/assets/img/5-Polkadot/Availability_Cores_Deep_Dive/occupying_assigned_cores_on_demand.svg similarity index 100% rename from content/polkadot/availability-cores/img/occupying_assigned_cores_on_demand.svg rename to assets/img/5-Polkadot/Availability_Cores_Deep_Dive/occupying_assigned_cores_on_demand.svg diff --git a/content/polkadot/availability-cores/img/occupying_assigned_cores_with_lease.svg b/assets/img/5-Polkadot/Availability_Cores_Deep_Dive/occupying_assigned_cores_with_lease.svg similarity index 100% rename from content/polkadot/availability-cores/img/occupying_assigned_cores_with_lease.svg rename to assets/img/5-Polkadot/Availability_Cores_Deep_Dive/occupying_assigned_cores_with_lease.svg diff --git a/content/polkadot/availability-cores/img/pairing_backing_groups_with_cores.svg b/assets/img/5-Polkadot/Availability_Cores_Deep_Dive/pairing_backing_groups_with_cores.svg similarity index 100% rename from content/polkadot/availability-cores/img/pairing_backing_groups_with_cores.svg rename to assets/img/5-Polkadot/Availability_Cores_Deep_Dive/pairing_backing_groups_with_cores.svg diff --git a/content/polkadot/availability-cores/img/pairing_leases_and_claims_with_cores.svg b/assets/img/5-Polkadot/Availability_Cores_Deep_Dive/pairing_leases_and_claims_with_cores.svg similarity index 100% rename from content/polkadot/availability-cores/img/pairing_leases_and_claims_with_cores.svg rename to assets/img/5-Polkadot/Availability_Cores_Deep_Dive/pairing_leases_and_claims_with_cores.svg diff --git a/content/polkadot/availability-cores/img/road.jpeg b/assets/img/5-Polkadot/Availability_Cores_Deep_Dive/road.jpeg similarity index 100% rename from content/polkadot/availability-cores/img/road.jpeg rename to assets/img/5-Polkadot/Availability_Cores_Deep_Dive/road.jpeg diff --git a/content/polkadot/execution-sharding/img/validator-groups.png b/assets/img/5-Polkadot/Availability_Cores_Deep_Dive/validator-groups.png similarity index 100% rename from content/polkadot/execution-sharding/img/validator-groups.png rename to assets/img/5-Polkadot/Availability_Cores_Deep_Dive/validator-groups.png diff --git a/content/substrate/scale/img/Big-Endian.svg b/assets/img/5-Substrate/Big-Endian.svg similarity index 100% rename from content/substrate/scale/img/Big-Endian.svg rename to assets/img/5-Substrate/Big-Endian.svg diff --git a/content/substrate/scale/img/Little-Endian.svg b/assets/img/5-Substrate/Little-Endian.svg similarity index 100% rename from content/substrate/scale/img/Little-Endian.svg rename to assets/img/5-Substrate/Little-Endian.svg diff --git a/content/blockchain-contracts/bytecode/img/wasm_logo.png b/assets/img/5-Substrate/WebAssembly.png similarity index 100% rename from content/blockchain-contracts/bytecode/img/wasm_logo.png rename to assets/img/5-Substrate/WebAssembly.png diff --git a/assets/img/5-Substrate/dev-4-1-comms-format.svg b/assets/img/5-Substrate/dev-4-1-comms-format.svg new file mode 100644 index 00000000..b15273c8 --- /dev/null +++ b/assets/img/5-Substrate/dev-4-1-comms-format.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/img/5-Substrate/dev-4-1-comms.svg b/assets/img/5-Substrate/dev-4-1-comms.svg new file mode 100644 index 00000000..09bffc16 --- /dev/null +++ b/assets/img/5-Substrate/dev-4-1-comms.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/img/5-Substrate/dev-4-1-contracts-full.svg b/assets/img/5-Substrate/dev-4-1-contracts-full.svg new file mode 100644 index 00000000..662326b9 --- /dev/null +++ b/assets/img/5-Substrate/dev-4-1-contracts-full.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/img/5-Substrate/dev-4-1-contracts.svg b/assets/img/5-Substrate/dev-4-1-contracts.svg new file mode 100644 index 00000000..9a07c0cb --- /dev/null +++ b/assets/img/5-Substrate/dev-4-1-contracts.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/content/substrate/intro/img/dev-4-1-forkless-1.svg b/assets/img/5-Substrate/dev-4-1-forkless-1.svg similarity index 100% rename from content/substrate/intro/img/dev-4-1-forkless-1.svg rename to assets/img/5-Substrate/dev-4-1-forkless-1.svg diff --git a/content/substrate/intro/img/dev-4-1-forkless-2.svg b/assets/img/5-Substrate/dev-4-1-forkless-2.svg similarity index 100% rename from content/substrate/intro/img/dev-4-1-forkless-2.svg rename to assets/img/5-Substrate/dev-4-1-forkless-2.svg diff --git a/assets/img/5-Substrate/dev-4-1-freedom.svg b/assets/img/5-Substrate/dev-4-1-freedom.svg new file mode 100644 index 00000000..e877ad06 --- /dev/null +++ b/assets/img/5-Substrate/dev-4-1-freedom.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/content/substrate/intro/img/dev-4-1-ink.jpeg b/assets/img/5-Substrate/dev-4-1-ink.jpeg similarity index 100% rename from content/substrate/intro/img/dev-4-1-ink.jpeg rename to assets/img/5-Substrate/dev-4-1-ink.jpeg diff --git a/content/substrate/intro/img/dev-4-1-json.svg b/assets/img/5-Substrate/dev-4-1-json.svg similarity index 100% rename from content/substrate/intro/img/dev-4-1-json.svg rename to assets/img/5-Substrate/dev-4-1-json.svg diff --git a/content/substrate/intro/img/dev-4-1-polkadot.svg b/assets/img/5-Substrate/dev-4-1-polkadot.svg similarity index 100% rename from content/substrate/intro/img/dev-4-1-polkadot.svg rename to assets/img/5-Substrate/dev-4-1-polkadot.svg diff --git a/assets/img/5-Substrate/dev-4-1-smoldot-browser.svg b/assets/img/5-Substrate/dev-4-1-smoldot-browser.svg new file mode 100644 index 00000000..08611eed --- /dev/null +++ b/assets/img/5-Substrate/dev-4-1-smoldot-browser.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/img/5-Substrate/dev-4-1-smoldot.svg b/assets/img/5-Substrate/dev-4-1-smoldot.svg new file mode 100644 index 00000000..53e7192b --- /dev/null +++ b/assets/img/5-Substrate/dev-4-1-smoldot.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/content/substrate/intro/img/dev-4-1-speed.png b/assets/img/5-Substrate/dev-4-1-speed.png similarity index 100% rename from content/substrate/intro/img/dev-4-1-speed.png rename to assets/img/5-Substrate/dev-4-1-speed.png diff --git a/assets/img/5-Substrate/dev-4-1-state-code-next.pdf b/assets/img/5-Substrate/dev-4-1-state-code-next.pdf new file mode 100644 index 00000000..0dac7dbd Binary files /dev/null and b/assets/img/5-Substrate/dev-4-1-state-code-next.pdf differ diff --git a/content/substrate/intro/img/dev-4-1-state-code-next.svg b/assets/img/5-Substrate/dev-4-1-state-code-next.svg similarity index 100% rename from content/substrate/intro/img/dev-4-1-state-code-next.svg rename to assets/img/5-Substrate/dev-4-1-state-code-next.svg diff --git a/assets/img/5-Substrate/dev-4-1-state-code.svg b/assets/img/5-Substrate/dev-4-1-state-code.svg new file mode 100644 index 00000000..3a4f8d8f --- /dev/null +++ b/assets/img/5-Substrate/dev-4-1-state-code.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/content/substrate/intro/img/dev-4-1-state-database.svg b/assets/img/5-Substrate/dev-4-1-state-database.svg similarity index 100% rename from content/substrate/intro/img/dev-4-1-state-database.svg rename to assets/img/5-Substrate/dev-4-1-state-database.svg diff --git a/content/substrate/intro/img/dev-4-1-state-def.svg b/assets/img/5-Substrate/dev-4-1-state-def.svg similarity index 100% rename from content/substrate/intro/img/dev-4-1-state-def.svg rename to assets/img/5-Substrate/dev-4-1-state-def.svg diff --git a/assets/img/5-Substrate/dev-4-1-state-opaque.svg b/assets/img/5-Substrate/dev-4-1-state-opaque.svg new file mode 100644 index 00000000..e3b915be --- /dev/null +++ b/assets/img/5-Substrate/dev-4-1-state-opaque.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/content/substrate/intro/img/dev-4-1-state-transition-def.svg b/assets/img/5-Substrate/dev-4-1-state-transition-def.svg similarity index 100% rename from content/substrate/intro/img/dev-4-1-state-transition-def.svg rename to assets/img/5-Substrate/dev-4-1-state-transition-def.svg diff --git a/content/substrate/intro/img/dev-4-1-state.svg b/assets/img/5-Substrate/dev-4-1-state.svg similarity index 100% rename from content/substrate/intro/img/dev-4-1-state.svg rename to assets/img/5-Substrate/dev-4-1-state.svg diff --git a/assets/img/5-Substrate/dev-4-1-substrate-meta-substrate.svg b/assets/img/5-Substrate/dev-4-1-substrate-meta-substrate.svg new file mode 100644 index 00000000..797b72b6 --- /dev/null +++ b/assets/img/5-Substrate/dev-4-1-substrate-meta-substrate.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/img/5-Substrate/dev-4-1-substrate-meta-version.svg b/assets/img/5-Substrate/dev-4-1-substrate-meta-version.svg new file mode 100644 index 00000000..b38cab1f --- /dev/null +++ b/assets/img/5-Substrate/dev-4-1-substrate-meta-version.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/img/5-Substrate/dev-4-1-substrate-meta.svg b/assets/img/5-Substrate/dev-4-1-substrate-meta.svg new file mode 100644 index 00000000..e743ac83 --- /dev/null +++ b/assets/img/5-Substrate/dev-4-1-substrate-meta.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/img/5-Substrate/dev-4-1-substrate-monol-2.svg b/assets/img/5-Substrate/dev-4-1-substrate-monol-2.svg new file mode 100644 index 00000000..cfda2eca --- /dev/null +++ b/assets/img/5-Substrate/dev-4-1-substrate-monol-2.svg @@ -0,0 +1 @@ + diff --git a/content/substrate/intro/img/dev-4-1-substrate-monol.svg b/assets/img/5-Substrate/dev-4-1-substrate-monol.svg similarity index 100% rename from content/substrate/intro/img/dev-4-1-substrate-monol.svg rename to assets/img/5-Substrate/dev-4-1-substrate-monol.svg diff --git a/content/substrate/intro/img/dev-4-1-substrate-new-1.svg b/assets/img/5-Substrate/dev-4-1-substrate-new-1.svg similarity index 100% rename from content/substrate/intro/img/dev-4-1-substrate-new-1.svg rename to assets/img/5-Substrate/dev-4-1-substrate-new-1.svg diff --git a/content/substrate/intro/img/dev-4-1-substrate-new-2.svg b/assets/img/5-Substrate/dev-4-1-substrate-new-2.svg similarity index 100% rename from content/substrate/intro/img/dev-4-1-substrate-new-2.svg rename to assets/img/5-Substrate/dev-4-1-substrate-new-2.svg diff --git a/content/substrate/intro/img/dev-4-1-substrate-new-3.svg b/assets/img/5-Substrate/dev-4-1-substrate-new-3.svg similarity index 100% rename from content/substrate/intro/img/dev-4-1-substrate-new-3.svg rename to assets/img/5-Substrate/dev-4-1-substrate-new-3.svg diff --git a/content/substrate/intro/img/dev-4-1-substrate-website.gif b/assets/img/5-Substrate/dev-4-1-substrate-website.gif similarity index 100% rename from content/substrate/intro/img/dev-4-1-substrate-website.gif rename to assets/img/5-Substrate/dev-4-1-substrate-website.gif diff --git a/assets/img/5-Substrate/dev-4-1-substrate.svg b/assets/img/5-Substrate/dev-4-1-substrate.svg new file mode 100644 index 00000000..53b0fd09 --- /dev/null +++ b/assets/img/5-Substrate/dev-4-1-substrate.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/content/substrate/intro/img/dev-4-1-wasm-langs.svg b/assets/img/5-Substrate/dev-4-1-wasm-langs.svg similarity index 100% rename from content/substrate/intro/img/dev-4-1-wasm-langs.svg rename to assets/img/5-Substrate/dev-4-1-wasm-langs.svg diff --git a/content/substrate/intro/img/dev-4-1-wasm.svg b/assets/img/5-Substrate/dev-4-1-wasm.svg similarity index 100% rename from content/substrate/intro/img/dev-4-1-wasm.svg rename to assets/img/5-Substrate/dev-4-1-wasm.svg diff --git a/assets/img/5-Substrate/dev-4-2-external.svg b/assets/img/5-Substrate/dev-4-2-external.svg new file mode 100644 index 00000000..8d731914 --- /dev/null +++ b/assets/img/5-Substrate/dev-4-2-external.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/content/substrate/wasm/img/dev-4-3-PJS.png b/assets/img/5-Substrate/dev-4-3-PJS.png similarity index 100% rename from content/substrate/wasm/img/dev-4-3-PJS.png rename to assets/img/5-Substrate/dev-4-3-PJS.png diff --git a/assets/img/5-Substrate/dev-4-3-author-builder.svg b/assets/img/5-Substrate/dev-4-3-author-builder.svg new file mode 100644 index 00000000..111701b4 --- /dev/null +++ b/assets/img/5-Substrate/dev-4-3-author-builder.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/img/5-Substrate/dev-4-3-author-pool.svg b/assets/img/5-Substrate/dev-4-3-author-pool.svg new file mode 100644 index 00000000..772fbb32 --- /dev/null +++ b/assets/img/5-Substrate/dev-4-3-author-pool.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/img/5-Substrate/dev-4-3-base-16.svg b/assets/img/5-Substrate/dev-4-3-base-16.svg new file mode 100644 index 00000000..d3334d88 --- /dev/null +++ b/assets/img/5-Substrate/dev-4-3-base-16.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/img/5-Substrate/dev-4-3-base-2.svg b/assets/img/5-Substrate/dev-4-3-base-2.svg new file mode 100644 index 00000000..18a3dff5 --- /dev/null +++ b/assets/img/5-Substrate/dev-4-3-base-2.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/content/substrate/wasm/img/dev-4-3-block-opaque.svg b/assets/img/5-Substrate/dev-4-3-block-opaque.svg similarity index 100% rename from content/substrate/wasm/img/dev-4-3-block-opaque.svg rename to assets/img/5-Substrate/dev-4-3-block-opaque.svg diff --git a/assets/img/5-Substrate/dev-4-3-block-opaqueu.svg b/assets/img/5-Substrate/dev-4-3-block-opaqueu.svg new file mode 100644 index 00000000..fa13f5e2 --- /dev/null +++ b/assets/img/5-Substrate/dev-4-3-block-opaqueu.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/content/substrate/storage/img/dev-4-3-child.svg b/assets/img/5-Substrate/dev-4-3-child.svg similarity index 100% rename from content/substrate/storage/img/dev-4-3-child.svg rename to assets/img/5-Substrate/dev-4-3-child.svg diff --git a/assets/img/5-Substrate/dev-4-3-defs-merkle.svg b/assets/img/5-Substrate/dev-4-3-defs-merkle.svg new file mode 100644 index 00000000..67c35ae5 --- /dev/null +++ b/assets/img/5-Substrate/dev-4-3-defs-merkle.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/img/5-Substrate/dev-4-3-defs-radix.svg b/assets/img/5-Substrate/dev-4-3-defs-radix.svg new file mode 100644 index 00000000..c4600468 --- /dev/null +++ b/assets/img/5-Substrate/dev-4-3-defs-radix.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/img/5-Substrate/dev-4-3-defs-trie.svg b/assets/img/5-Substrate/dev-4-3-defs-trie.svg new file mode 100644 index 00000000..ba918a91 --- /dev/null +++ b/assets/img/5-Substrate/dev-4-3-defs-trie.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/content/substrate/wasm/img/dev-4-3-full-comm.svg b/assets/img/5-Substrate/dev-4-3-full-comm.svg similarity index 89% rename from content/substrate/wasm/img/dev-4-3-full-comm.svg rename to assets/img/5-Substrate/dev-4-3-full-comm.svg index dfe59f76..6eff82b9 100644 --- a/content/substrate/wasm/img/dev-4-3-full-comm.svg +++ b/assets/img/5-Substrate/dev-4-3-full-comm.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/content/substrate/intro/img/dev-4-3-full.svg b/assets/img/5-Substrate/dev-4-3-full.svg similarity index 89% rename from content/substrate/intro/img/dev-4-3-full.svg rename to assets/img/5-Substrate/dev-4-3-full.svg index 80e018f1..c6e77e76 100644 --- a/content/substrate/intro/img/dev-4-3-full.svg +++ b/assets/img/5-Substrate/dev-4-3-full.svg @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/content/substrate/wasm/img/dev-4-3-import.svg b/assets/img/5-Substrate/dev-4-3-import.svg similarity index 100% rename from content/substrate/wasm/img/dev-4-3-import.svg rename to assets/img/5-Substrate/dev-4-3-import.svg diff --git a/content/substrate/storage/img/dev-4-3-io.svg b/assets/img/5-Substrate/dev-4-3-io.svg similarity index 100% rename from content/substrate/storage/img/dev-4-3-io.svg rename to assets/img/5-Substrate/dev-4-3-io.svg diff --git a/assets/img/5-Substrate/dev-4-3-native-1.svg b/assets/img/5-Substrate/dev-4-3-native-1.svg new file mode 100644 index 00000000..205771d9 --- /dev/null +++ b/assets/img/5-Substrate/dev-4-3-native-1.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/content/substrate/wasm/img/dev-4-3-native.svg b/assets/img/5-Substrate/dev-4-3-native.svg similarity index 100% rename from content/substrate/wasm/img/dev-4-3-native.svg rename to assets/img/5-Substrate/dev-4-3-native.svg diff --git a/content/substrate/storage/img/dev-4-3-pruning-1.svg b/assets/img/5-Substrate/dev-4-3-pruning-1.svg similarity index 100% rename from content/substrate/storage/img/dev-4-3-pruning-1.svg rename to assets/img/5-Substrate/dev-4-3-pruning-1.svg diff --git a/content/substrate/storage/img/dev-4-3-pruning-2.svg b/assets/img/5-Substrate/dev-4-3-pruning-2.svg similarity index 100% rename from content/substrate/storage/img/dev-4-3-pruning-2.svg rename to assets/img/5-Substrate/dev-4-3-pruning-2.svg diff --git a/content/substrate/storage/img/dev-4-3-pruning-3.svg b/assets/img/5-Substrate/dev-4-3-pruning-3.svg similarity index 100% rename from content/substrate/storage/img/dev-4-3-pruning-3.svg rename to assets/img/5-Substrate/dev-4-3-pruning-3.svg diff --git a/content/substrate/storage/img/dev-4-3-pruning-4.svg b/assets/img/5-Substrate/dev-4-3-pruning-4.svg similarity index 100% rename from content/substrate/storage/img/dev-4-3-pruning-4.svg rename to assets/img/5-Substrate/dev-4-3-pruning-4.svg diff --git a/content/substrate/wasm/img/dev-4-3-substrate-wasm.png b/assets/img/5-Substrate/dev-4-3-substrate-wasm.png similarity index 100% rename from content/substrate/wasm/img/dev-4-3-substrate-wasm.png rename to assets/img/5-Substrate/dev-4-3-substrate-wasm.png diff --git a/content/substrate/wasm/img/dev-4-3-telemetry.png b/assets/img/5-Substrate/dev-4-3-telemetry.png similarity index 100% rename from content/substrate/wasm/img/dev-4-3-telemetry.png rename to assets/img/5-Substrate/dev-4-3-telemetry.png diff --git a/assets/img/5-Substrate/dev-4-3-upgrade.svg b/assets/img/5-Substrate/dev-4-3-upgrade.svg new file mode 100644 index 00000000..18e34e3c --- /dev/null +++ b/assets/img/5-Substrate/dev-4-3-upgrade.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/img/5-Substrate/dev-4-8-qr-radix-tree-visualization.png b/assets/img/5-Substrate/dev-4-8-qr-radix-tree-visualization.png new file mode 100644 index 00000000..fd4bcfea Binary files /dev/null and b/assets/img/5-Substrate/dev-4-8-qr-radix-tree-visualization.png differ diff --git a/content/substrate/intro/img/dev-4.1-maximalism.png b/assets/img/5-Substrate/dev-4.1-maximalism.png similarity index 100% rename from content/substrate/intro/img/dev-4.1-maximalism.png rename to assets/img/5-Substrate/dev-4.1-maximalism.png diff --git a/content/frame/extensions/img/signed-extensions.svg b/assets/img/5-Substrate/dev-5-x-signed-extensions.svg similarity index 100% rename from content/frame/extensions/img/signed-extensions.svg rename to assets/img/5-Substrate/dev-5-x-signed-extensions.svg diff --git a/content/polkadot/npos/img/dev-6-x-npos-0.svg b/assets/img/5-Substrate/dev-6-x-npos-0.svg similarity index 100% rename from content/polkadot/npos/img/dev-6-x-npos-0.svg rename to assets/img/5-Substrate/dev-6-x-npos-0.svg diff --git a/content/polkadot/npos/img/dev-6-x-npos-1.svg b/assets/img/5-Substrate/dev-6-x-npos-1.svg similarity index 100% rename from content/polkadot/npos/img/dev-6-x-npos-1.svg rename to assets/img/5-Substrate/dev-6-x-npos-1.svg diff --git a/content/polkadot/npos/img/dev-6-x-npos-2.svg b/assets/img/5-Substrate/dev-6-x-npos-2.svg similarity index 100% rename from content/polkadot/npos/img/dev-6-x-npos-2.svg rename to assets/img/5-Substrate/dev-6-x-npos-2.svg diff --git a/content/polkadot/npos/img/dev-6-x-npos-3.svg b/assets/img/5-Substrate/dev-6-x-npos-3.svg similarity index 100% rename from content/polkadot/npos/img/dev-6-x-npos-3.svg rename to assets/img/5-Substrate/dev-6-x-npos-3.svg diff --git a/content/polkadot/npos/img/dev-6-x-npos-4.svg b/assets/img/5-Substrate/dev-6-x-npos-4.svg similarity index 100% rename from content/polkadot/npos/img/dev-6-x-npos-4.svg rename to assets/img/5-Substrate/dev-6-x-npos-4.svg diff --git a/content/polkadot/npos/img/dev-6-x-npos-vsas.svg b/assets/img/5-Substrate/dev-6-x-npos-vsas.svg similarity index 100% rename from content/polkadot/npos/img/dev-6-x-npos-vsas.svg rename to assets/img/5-Substrate/dev-6-x-npos-vsas.svg diff --git a/content/polkadot/npos/img/dev-kv-backend.svg b/assets/img/5-Substrate/dev-kv-backend.svg similarity index 100% rename from content/polkadot/npos/img/dev-kv-backend.svg rename to assets/img/5-Substrate/dev-kv-backend.svg diff --git a/content/substrate/storage/img/dev-overlay-1.svg b/assets/img/5-Substrate/dev-overlay-1.svg similarity index 100% rename from content/substrate/storage/img/dev-overlay-1.svg rename to assets/img/5-Substrate/dev-overlay-1.svg diff --git a/content/substrate/storage/img/dev-overlay-2.svg b/assets/img/5-Substrate/dev-overlay-2.svg similarity index 100% rename from content/substrate/storage/img/dev-overlay-2.svg rename to assets/img/5-Substrate/dev-overlay-2.svg diff --git a/content/substrate/storage/img/dev-overlay-3.svg b/assets/img/5-Substrate/dev-overlay-3.svg similarity index 100% rename from content/substrate/storage/img/dev-overlay-3.svg rename to assets/img/5-Substrate/dev-overlay-3.svg diff --git a/content/substrate/storage/img/dev-overlay-4.svg b/assets/img/5-Substrate/dev-overlay-4.svg similarity index 100% rename from content/substrate/storage/img/dev-overlay-4.svg rename to assets/img/5-Substrate/dev-overlay-4.svg diff --git a/content/substrate/storage/img/dev-overlay-5.svg b/assets/img/5-Substrate/dev-overlay-5.svg similarity index 100% rename from content/substrate/storage/img/dev-overlay-5.svg rename to assets/img/5-Substrate/dev-overlay-5.svg diff --git a/content/substrate/storage/img/dev-overlay-nested-1.svg b/assets/img/5-Substrate/dev-overlay-nested-1.svg similarity index 100% rename from content/substrate/storage/img/dev-overlay-nested-1.svg rename to assets/img/5-Substrate/dev-overlay-nested-1.svg diff --git a/content/substrate/storage/img/dev-overlay-nested.svg b/assets/img/5-Substrate/dev-overlay-nested.svg similarity index 100% rename from content/substrate/storage/img/dev-overlay-nested.svg rename to assets/img/5-Substrate/dev-overlay-nested.svg diff --git a/assets/img/5-Substrate/dev-overlay-root.svg b/assets/img/5-Substrate/dev-overlay-root.svg new file mode 100644 index 00000000..0572d6b4 --- /dev/null +++ b/assets/img/5-Substrate/dev-overlay-root.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/content/substrate/storage/img/dev-overlay.svg b/assets/img/5-Substrate/dev-overlay.svg similarity index 100% rename from content/substrate/storage/img/dev-overlay.svg rename to assets/img/5-Substrate/dev-overlay.svg diff --git a/assets/img/5-Substrate/dev-pool-context.svg b/assets/img/5-Substrate/dev-pool-context.svg new file mode 100644 index 00000000..407fe67a --- /dev/null +++ b/assets/img/5-Substrate/dev-pool-context.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/img/5-Substrate/dev-smoldot-meme.jpeg b/assets/img/5-Substrate/dev-smoldot-meme.jpeg new file mode 100644 index 00000000..c02fae0f Binary files /dev/null and b/assets/img/5-Substrate/dev-smoldot-meme.jpeg differ diff --git a/assets/img/5-Substrate/dev-storage-1.svg b/assets/img/5-Substrate/dev-storage-1.svg new file mode 100644 index 00000000..45bdcb8b --- /dev/null +++ b/assets/img/5-Substrate/dev-storage-1.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/content/substrate/storage/img/dev-storage-2.svg b/assets/img/5-Substrate/dev-storage-2.svg similarity index 100% rename from content/substrate/storage/img/dev-storage-2.svg rename to assets/img/5-Substrate/dev-storage-2.svg diff --git a/content/substrate/storage/img/dev-storage-3.svg b/assets/img/5-Substrate/dev-storage-3.svg similarity index 100% rename from content/substrate/storage/img/dev-storage-3.svg rename to assets/img/5-Substrate/dev-storage-3.svg diff --git a/assets/img/5-Substrate/dev-storage-4.svg b/assets/img/5-Substrate/dev-storage-4.svg new file mode 100644 index 00000000..ec066dc2 --- /dev/null +++ b/assets/img/5-Substrate/dev-storage-4.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/img/5-Substrate/dev-storage-externalities-full.svg b/assets/img/5-Substrate/dev-storage-externalities-full.svg new file mode 100644 index 00000000..770b5998 --- /dev/null +++ b/assets/img/5-Substrate/dev-storage-externalities-full.svg @@ -0,0 +1,320 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/content/substrate/storage/img/dev-storage-full.svg b/assets/img/5-Substrate/dev-storage-full.svg similarity index 100% rename from content/substrate/storage/img/dev-storage-full.svg rename to assets/img/5-Substrate/dev-storage-full.svg diff --git a/content/substrate/storage/img/dev-trie-backend-16-with-size.svg b/assets/img/5-Substrate/dev-trie-backend-16-with-size.svg similarity index 100% rename from content/substrate/storage/img/dev-trie-backend-16-with-size.svg rename to assets/img/5-Substrate/dev-trie-backend-16-with-size.svg diff --git a/content/substrate/storage/img/dev-trie-backend-16.svg b/assets/img/5-Substrate/dev-trie-backend-16.svg similarity index 100% rename from content/substrate/storage/img/dev-trie-backend-16.svg rename to assets/img/5-Substrate/dev-trie-backend-16.svg diff --git a/assets/img/5-Substrate/dev-trie-backend-hashed.svg b/assets/img/5-Substrate/dev-trie-backend-hashed.svg new file mode 100644 index 00000000..0912137e --- /dev/null +++ b/assets/img/5-Substrate/dev-trie-backend-hashed.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/content/substrate/storage/img/dev-trie-backend-proof-fat-fix.svg b/assets/img/5-Substrate/dev-trie-backend-proof-fat-fix.svg similarity index 100% rename from content/substrate/storage/img/dev-trie-backend-proof-fat-fix.svg rename to assets/img/5-Substrate/dev-trie-backend-proof-fat-fix.svg diff --git a/content/substrate/storage/img/dev-trie-backend-proof-fat.svg b/assets/img/5-Substrate/dev-trie-backend-proof-fat.svg similarity index 100% rename from content/substrate/storage/img/dev-trie-backend-proof-fat.svg rename to assets/img/5-Substrate/dev-trie-backend-proof-fat.svg diff --git a/assets/img/5-Substrate/dev-trie-backend-proof.svg b/assets/img/5-Substrate/dev-trie-backend-proof.svg new file mode 100644 index 00000000..07c98545 --- /dev/null +++ b/assets/img/5-Substrate/dev-trie-backend-proof.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/content/substrate/storage/img/dev-trie-backend-simple.svg b/assets/img/5-Substrate/dev-trie-backend-simple.svg similarity index 100% rename from content/substrate/storage/img/dev-trie-backend-simple.svg rename to assets/img/5-Substrate/dev-trie-backend-simple.svg diff --git a/content/substrate/storage/img/dev-trie-backend-unbalanced.svg b/assets/img/5-Substrate/dev-trie-backend-unbalanced.svg similarity index 100% rename from content/substrate/storage/img/dev-trie-backend-unbalanced.svg rename to assets/img/5-Substrate/dev-trie-backend-unbalanced.svg diff --git a/assets/img/5-Substrate/dev-trie-backend-unhashed.svg b/assets/img/5-Substrate/dev-trie-backend-unhashed.svg new file mode 100644 index 00000000..eb76ebe3 --- /dev/null +++ b/assets/img/5-Substrate/dev-trie-backend-unhashed.svg @@ -0,0 +1 @@ + diff --git a/content/substrate/storage/img/dev-trie-backend-walk-0.svg b/assets/img/5-Substrate/dev-trie-backend-walk-0.svg similarity index 100% rename from content/substrate/storage/img/dev-trie-backend-walk-0.svg rename to assets/img/5-Substrate/dev-trie-backend-walk-0.svg diff --git a/content/substrate/storage/img/dev-trie-backend-walk-1.svg b/assets/img/5-Substrate/dev-trie-backend-walk-1.svg similarity index 100% rename from content/substrate/storage/img/dev-trie-backend-walk-1.svg rename to assets/img/5-Substrate/dev-trie-backend-walk-1.svg diff --git a/content/substrate/storage/img/dev-trie-backend-walk-2.svg b/assets/img/5-Substrate/dev-trie-backend-walk-2.svg similarity index 100% rename from content/substrate/storage/img/dev-trie-backend-walk-2.svg rename to assets/img/5-Substrate/dev-trie-backend-walk-2.svg diff --git a/content/substrate/storage/img/dev-trie-backend-walk-full.svg b/assets/img/5-Substrate/dev-trie-backend-walk-full.svg similarity index 100% rename from content/substrate/storage/img/dev-trie-backend-walk-full.svg rename to assets/img/5-Substrate/dev-trie-backend-walk-full.svg diff --git a/content/substrate/storage/img/dev-trie-backend-walk-m1.svg b/assets/img/5-Substrate/dev-trie-backend-walk-m1.svg similarity index 100% rename from content/substrate/storage/img/dev-trie-backend-walk-m1.svg rename to assets/img/5-Substrate/dev-trie-backend-walk-m1.svg diff --git a/assets/img/5-Substrate/empty-client-runtime.svg b/assets/img/5-Substrate/empty-client-runtime.svg new file mode 100644 index 00000000..3a7bf24c --- /dev/null +++ b/assets/img/5-Substrate/empty-client-runtime.svg @@ -0,0 +1 @@ + diff --git a/assets/img/5-Substrate/endian-egg.png b/assets/img/5-Substrate/endian-egg.png new file mode 100644 index 00000000..02bbcc96 Binary files /dev/null and b/assets/img/5-Substrate/endian-egg.png differ diff --git a/assets/img/5-Substrate/endian.png b/assets/img/5-Substrate/endian.png new file mode 100644 index 00000000..44e114e2 Binary files /dev/null and b/assets/img/5-Substrate/endian.png differ diff --git a/assets/img/5-Substrate/ethereum-logo.svg b/assets/img/5-Substrate/ethereum-logo.svg new file mode 100644 index 00000000..4620c0ed --- /dev/null +++ b/assets/img/5-Substrate/ethereum-logo.svg @@ -0,0 +1,35 @@ + + + + +Created with Sketch. + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/img/5-Substrate/lib-bincode.png b/assets/img/5-Substrate/lib-bincode.png new file mode 100644 index 00000000..1a71072b Binary files /dev/null and b/assets/img/5-Substrate/lib-bincode.png differ diff --git a/assets/img/5-Substrate/lib-scale.png b/assets/img/5-Substrate/lib-scale.png new file mode 100644 index 00000000..7542c468 Binary files /dev/null and b/assets/img/5-Substrate/lib-scale.png differ diff --git a/content/polkadot/shared-security/img/nintendo-console-2.png b/assets/img/5-Substrate/nintendo-console-2.png similarity index 100% rename from content/polkadot/shared-security/img/nintendo-console-2.png rename to assets/img/5-Substrate/nintendo-console-2.png diff --git a/assets/img/5-Substrate/nintendo-console.png b/assets/img/5-Substrate/nintendo-console.png new file mode 100644 index 00000000..5d9f6fe2 Binary files /dev/null and b/assets/img/5-Substrate/nintendo-console.png differ diff --git a/content/substrate/intro/img/nintendo-game.png b/assets/img/5-Substrate/nintendo-game.png similarity index 100% rename from content/substrate/intro/img/nintendo-game.png rename to assets/img/5-Substrate/nintendo-game.png diff --git a/assets/img/5-Substrate/peter-parker-glasses-off.png b/assets/img/5-Substrate/peter-parker-glasses-off.png new file mode 100644 index 00000000..518fc87a Binary files /dev/null and b/assets/img/5-Substrate/peter-parker-glasses-off.png differ diff --git a/assets/img/5-Substrate/peter-parker-glasses-on.png b/assets/img/5-Substrate/peter-parker-glasses-on.png new file mode 100644 index 00000000..2a8692e7 Binary files /dev/null and b/assets/img/5-Substrate/peter-parker-glasses-on.png differ diff --git a/assets/img/5-Substrate/rust-crab.svg b/assets/img/5-Substrate/rust-crab.svg new file mode 100644 index 00000000..c7f240dd --- /dev/null +++ b/assets/img/5-Substrate/rust-crab.svg @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/img/5-Substrate/substrate-logo.svg b/assets/img/5-Substrate/substrate-logo.svg new file mode 100644 index 00000000..2157ba94 --- /dev/null +++ b/assets/img/5-Substrate/substrate-logo.svg @@ -0,0 +1,2 @@ + +Parity Substrate icon \ No newline at end of file diff --git a/content/substrate/scale/img/thats_all_folks.png b/assets/img/5-Substrate/thats_all_folks copy.png similarity index 100% rename from content/substrate/scale/img/thats_all_folks.png rename to assets/img/5-Substrate/thats_all_folks copy.png diff --git a/assets/img/5-Substrate/thats_all_folks.png b/assets/img/5-Substrate/thats_all_folks.png new file mode 100644 index 00000000..258d115d Binary files /dev/null and b/assets/img/5-Substrate/thats_all_folks.png differ diff --git a/content/substrate/storage/img/trie-backend-simple-simple.svg b/assets/img/5-Substrate/trie-backend-simple-simple.svg similarity index 100% rename from content/substrate/storage/img/trie-backend-simple-simple.svg rename to assets/img/5-Substrate/trie-backend-simple-simple.svg diff --git a/content/frame/storage/img/unbalanced-tree.svg b/assets/img/5-Substrate/unbalanced-tree.svg similarity index 100% rename from content/frame/storage/img/unbalanced-tree.svg rename to assets/img/5-Substrate/unbalanced-tree.svg diff --git a/content/frame/storage/img/balance-trie.svg b/assets/img/6-FRAME/balance-trie.svg similarity index 100% rename from content/frame/storage/img/balance-trie.svg rename to assets/img/6-FRAME/balance-trie.svg diff --git a/content/frame/benchmarking-1/img/benchmarking.svg b/assets/img/6-FRAME/benchmark/benchmarking.svg similarity index 100% rename from content/frame/benchmarking-1/img/benchmarking.svg rename to assets/img/6-FRAME/benchmark/benchmarking.svg diff --git a/content/frame/benchmarking-1/img/block-import.svg b/assets/img/6-FRAME/benchmark/block-import.svg similarity index 100% rename from content/frame/benchmarking-1/img/block-import.svg rename to assets/img/6-FRAME/benchmark/block-import.svg diff --git a/assets/img/6-FRAME/benchmark/block-time.svg b/assets/img/6-FRAME/benchmark/block-time.svg new file mode 100644 index 00000000..8117a83d --- /dev/null +++ b/assets/img/6-FRAME/benchmark/block-time.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/content/frame/benchmarking-1/img/components.svg b/assets/img/6-FRAME/benchmark/components.svg similarity index 100% rename from content/frame/benchmarking-1/img/components.svg rename to assets/img/6-FRAME/benchmark/components.svg diff --git a/assets/img/6-FRAME/benchmark/db-inconsistent.png b/assets/img/6-FRAME/benchmark/db-inconsistent.png new file mode 100644 index 00000000..1de6ce93 Binary files /dev/null and b/assets/img/6-FRAME/benchmark/db-inconsistent.png differ diff --git a/content/frame/benchmarking-2/img/event-fix.png b/assets/img/6-FRAME/benchmark/event-fix.png similarity index 100% rename from content/frame/benchmarking-2/img/event-fix.png rename to assets/img/6-FRAME/benchmark/event-fix.png diff --git a/content/frame/benchmarking-1/img/identity-db-sub.png b/assets/img/6-FRAME/benchmark/identity-db-sub.png similarity index 100% rename from content/frame/benchmarking-1/img/identity-db-sub.png rename to assets/img/6-FRAME/benchmark/identity-db-sub.png diff --git a/content/frame/benchmarking-1/img/identity-icon.svg b/assets/img/6-FRAME/benchmark/identity-icon.svg similarity index 100% rename from content/frame/benchmarking-1/img/identity-icon.svg rename to assets/img/6-FRAME/benchmark/identity-icon.svg diff --git a/content/frame/benchmarking-1/img/identity-raw-fields.png b/assets/img/6-FRAME/benchmark/identity-raw-fields.png similarity index 100% rename from content/frame/benchmarking-1/img/identity-raw-fields.png rename to assets/img/6-FRAME/benchmark/identity-raw-fields.png diff --git a/content/frame/benchmarking-1/img/identity-raw-registrars.png b/assets/img/6-FRAME/benchmark/identity-raw-registrars.png similarity index 100% rename from content/frame/benchmarking-1/img/identity-raw-registrars.png rename to assets/img/6-FRAME/benchmark/identity-raw-registrars.png diff --git a/content/frame/benchmarking-1/img/identity-raw-sub.png b/assets/img/6-FRAME/benchmark/identity-raw-sub.png similarity index 100% rename from content/frame/benchmarking-1/img/identity-raw-sub.png rename to assets/img/6-FRAME/benchmark/identity-raw-sub.png diff --git a/content/frame/benchmarking-1/img/linear-regression.svg b/assets/img/6-FRAME/benchmark/linear-regression.svg similarity index 100% rename from content/frame/benchmarking-1/img/linear-regression.svg rename to assets/img/6-FRAME/benchmark/linear-regression.svg diff --git a/content/frame/benchmarking-2/img/nonlinear-events.png b/assets/img/6-FRAME/benchmark/nonlinear-events.png similarity index 100% rename from content/frame/benchmarking-2/img/nonlinear-events.png rename to assets/img/6-FRAME/benchmark/nonlinear-events.png diff --git a/content/frame/benchmarking-2/img/on-finalize.svg b/assets/img/6-FRAME/benchmark/on-finalize.svg similarity index 100% rename from content/frame/benchmarking-2/img/on-finalize.svg rename to assets/img/6-FRAME/benchmark/on-finalize.svg diff --git a/content/frame/benchmarking-2/img/paritydb-vs-rocksdb-read.png b/assets/img/6-FRAME/benchmark/paritydb-vs-rocksdb-read.png similarity index 100% rename from content/frame/benchmarking-2/img/paritydb-vs-rocksdb-read.png rename to assets/img/6-FRAME/benchmark/paritydb-vs-rocksdb-read.png diff --git a/content/frame/benchmarking-2/img/polkadot-size-histogram-alpha.png b/assets/img/6-FRAME/benchmark/polkadot-size-histogram-alpha.png similarity index 100% rename from content/frame/benchmarking-2/img/polkadot-size-histogram-alpha.png rename to assets/img/6-FRAME/benchmark/polkadot-size-histogram-alpha.png diff --git a/content/frame/benchmarking-2/img/polkadot-size-histogram.png b/assets/img/6-FRAME/benchmark/polkadot-size-histogram.png similarity index 100% rename from content/frame/benchmarking-2/img/polkadot-size-histogram.png rename to assets/img/6-FRAME/benchmark/polkadot-size-histogram.png diff --git a/content/frame/benchmarking-2/img/rocksdb-hiccups.png b/assets/img/6-FRAME/benchmark/rocksdb-hiccups.png similarity index 100% rename from content/frame/benchmarking-2/img/rocksdb-hiccups.png rename to assets/img/6-FRAME/benchmark/rocksdb-hiccups.png diff --git a/assets/img/6-FRAME/flow.svg b/assets/img/6-FRAME/flow.svg new file mode 100644 index 00000000..c2245ac8 --- /dev/null +++ b/assets/img/6-FRAME/flow.svg @@ -0,0 +1 @@ + diff --git a/content/frame/dive/img/frame0.svg b/assets/img/6-FRAME/frame0.svg similarity index 100% rename from content/frame/dive/img/frame0.svg rename to assets/img/6-FRAME/frame0.svg diff --git a/content/frame/intro/img/frame1.svg b/assets/img/6-FRAME/frame1.svg similarity index 100% rename from content/frame/intro/img/frame1.svg rename to assets/img/6-FRAME/frame1.svg diff --git a/content/frame/storage/img/navigate-storage-2.svg b/assets/img/6-FRAME/navigate-storage-2.svg similarity index 100% rename from content/frame/storage/img/navigate-storage-2.svg rename to assets/img/6-FRAME/navigate-storage-2.svg diff --git a/content/frame/hooks/img/ocw.svg b/assets/img/6-FRAME/ocw.svg similarity index 100% rename from content/frame/hooks/img/ocw.svg rename to assets/img/6-FRAME/ocw.svg diff --git a/content/frame/storage/img/patricia-trie.svg b/assets/img/6-FRAME/patricia-trie.svg similarity index 100% rename from content/frame/storage/img/patricia-trie.svg rename to assets/img/6-FRAME/patricia-trie.svg diff --git a/content/substrate/interact/img/pjs.png b/assets/img/6-FRAME/pjs.png similarity index 100% rename from content/substrate/interact/img/pjs.png rename to assets/img/6-FRAME/pjs.png diff --git a/content/frame/traits/img/polkadot-deep-dive.png b/assets/img/6-FRAME/polkadot-deep-dive.png similarity index 100% rename from content/frame/traits/img/polkadot-deep-dive.png rename to assets/img/6-FRAME/polkadot-deep-dive.png diff --git a/assets/img/6-FRAME/rocksdb-hiccups.png b/assets/img/6-FRAME/rocksdb-hiccups.png new file mode 100644 index 00000000..f39cf180 Binary files /dev/null and b/assets/img/6-FRAME/rocksdb-hiccups.png differ diff --git a/assets/img/6-FRAME/thats_all_folks.png b/assets/img/6-FRAME/thats_all_folks.png new file mode 100644 index 00000000..258d115d Binary files /dev/null and b/assets/img/6-FRAME/thats_all_folks.png differ diff --git a/content/polkadot/shared-security/img/wasm-in-storage.png b/assets/img/6-FRAME/wasm-in-storage.png similarity index 100% rename from content/polkadot/shared-security/img/wasm-in-storage.png rename to assets/img/6-FRAME/wasm-in-storage.png diff --git a/assets/img/7-Polkadot/5-3/proof-state.svg b/assets/img/7-Polkadot/5-3/proof-state.svg new file mode 100644 index 00000000..590e3bfc --- /dev/null +++ b/assets/img/7-Polkadot/5-3/proof-state.svg @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/img/7-Polkadot/5-3/proof-v2-v4.svg b/assets/img/7-Polkadot/5-3/proof-v2-v4.svg new file mode 100644 index 00000000..2760ba09 --- /dev/null +++ b/assets/img/7-Polkadot/5-3/proof-v2-v4.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/assets/img/7-Polkadot/5-3/proof-v2.svg b/assets/img/7-Polkadot/5-3/proof-v2.svg new file mode 100644 index 00000000..516fcfe8 --- /dev/null +++ b/assets/img/7-Polkadot/5-3/proof-v2.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/assets/img/7-Polkadot/5-3/proof1.svg b/assets/img/7-Polkadot/5-3/proof1.svg new file mode 100644 index 00000000..bd1dc673 --- /dev/null +++ b/assets/img/7-Polkadot/5-3/proof1.svg @@ -0,0 +1,360 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + State + proof V2 + Proof {V2, V4} + [R, B2, L5, V2] + [R, B2, B3, L5, +L7, V2, V4] + + diff --git a/assets/img/7-Polkadot/5-3/proof2.svg b/assets/img/7-Polkadot/5-3/proof2.svg new file mode 100644 index 00000000..5cca3941 --- /dev/null +++ b/assets/img/7-Polkadot/5-3/proof2.svg @@ -0,0 +1,189 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/img/7-Polkadot/5-3/proof3.jpg b/assets/img/7-Polkadot/5-3/proof3.jpg new file mode 100644 index 00000000..b09c09dc Binary files /dev/null and b/assets/img/7-Polkadot/5-3/proof3.jpg differ diff --git a/assets/img/7-Polkadot/5.2/5.2 Cumulus-diagram-1.png b/assets/img/7-Polkadot/5.2/5.2 Cumulus-diagram-1.png new file mode 100644 index 00000000..5e0d1b65 Binary files /dev/null and b/assets/img/7-Polkadot/5.2/5.2 Cumulus-diagram-1.png differ diff --git a/assets/img/7-Polkadot/5.2/5.2-Cumulus-diagram-2.png b/assets/img/7-Polkadot/5.2/5.2-Cumulus-diagram-2.png new file mode 100644 index 00000000..7a312da2 Binary files /dev/null and b/assets/img/7-Polkadot/5.2/5.2-Cumulus-diagram-2.png differ diff --git a/assets/img/7-Polkadot/5.2/5.2-Cumulus-diagram-3.png b/assets/img/7-Polkadot/5.2/5.2-Cumulus-diagram-3.png new file mode 100644 index 00000000..e23115ed Binary files /dev/null and b/assets/img/7-Polkadot/5.2/5.2-Cumulus-diagram-3.png differ diff --git a/assets/img/7-Polkadot/5.2/5.2-Cumulus-diagram-4.png b/assets/img/7-Polkadot/5.2/5.2-Cumulus-diagram-4.png new file mode 100644 index 00000000..948f8007 Binary files /dev/null and b/assets/img/7-Polkadot/5.2/5.2-Cumulus-diagram-4.png differ diff --git a/assets/img/7-Polkadot/5.4-1.svg b/assets/img/7-Polkadot/5.4-1.svg new file mode 100644 index 00000000..54124338 --- /dev/null +++ b/assets/img/7-Polkadot/5.4-1.svg @@ -0,0 +1,208 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/img/7-Polkadot/5.4-10.svg b/assets/img/7-Polkadot/5.4-10.svg new file mode 100644 index 00000000..39bfadaa --- /dev/null +++ b/assets/img/7-Polkadot/5.4-10.svg @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/img/7-Polkadot/5.4-2.svg b/assets/img/7-Polkadot/5.4-2.svg new file mode 100644 index 00000000..d16fa6a9 --- /dev/null +++ b/assets/img/7-Polkadot/5.4-2.svg @@ -0,0 +1,831 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/img/7-Polkadot/5.4-3.svg b/assets/img/7-Polkadot/5.4-3.svg new file mode 100644 index 00000000..f8fa8e26 --- /dev/null +++ b/assets/img/7-Polkadot/5.4-3.svg @@ -0,0 +1,831 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/img/7-Polkadot/5.4-4.svg b/assets/img/7-Polkadot/5.4-4.svg new file mode 100644 index 00000000..74e88425 --- /dev/null +++ b/assets/img/7-Polkadot/5.4-4.svg @@ -0,0 +1,363 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/img/7-Polkadot/5.4-6.svg b/assets/img/7-Polkadot/5.4-6.svg new file mode 100644 index 00000000..b7996bb9 --- /dev/null +++ b/assets/img/7-Polkadot/5.4-6.svg @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/img/7-Polkadot/5.4-7.svg b/assets/img/7-Polkadot/5.4-7.svg new file mode 100644 index 00000000..f548e221 --- /dev/null +++ b/assets/img/7-Polkadot/5.4-7.svg @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/img/7-Polkadot/5.4-8.svg b/assets/img/7-Polkadot/5.4-8.svg new file mode 100644 index 00000000..edfe9946 --- /dev/null +++ b/assets/img/7-Polkadot/5.4-8.svg @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/img/7-Polkadot/5.4-9.svg b/assets/img/7-Polkadot/5.4-9.svg new file mode 100644 index 00000000..04b40116 --- /dev/null +++ b/assets/img/7-Polkadot/5.4-9.svg @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/img/7-Polkadot/5.4-availability-gossip.svg b/assets/img/7-Polkadot/5.4-availability-gossip.svg new file mode 100644 index 00000000..63f877af --- /dev/null +++ b/assets/img/7-Polkadot/5.4-availability-gossip.svg @@ -0,0 +1,200 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Availability Core + diff --git a/assets/img/7-Polkadot/5.4-erasure-encoding-abstract.svg b/assets/img/7-Polkadot/5.4-erasure-encoding-abstract.svg new file mode 100644 index 00000000..2ae270d8 --- /dev/null +++ b/assets/img/7-Polkadot/5.4-erasure-encoding-abstract.svg @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/img/7-Polkadot/5.4-relay-block-construction-I.svg b/assets/img/7-Polkadot/5.4-relay-block-construction-I.svg new file mode 100644 index 00000000..123336f5 --- /dev/null +++ b/assets/img/7-Polkadot/5.4-relay-block-construction-I.svg @@ -0,0 +1,454 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/img/7-Polkadot/5.4-relay-block-construction-II.svg b/assets/img/7-Polkadot/5.4-relay-block-construction-II.svg new file mode 100644 index 00000000..e48799eb --- /dev/null +++ b/assets/img/7-Polkadot/5.4-relay-block-construction-II.svg @@ -0,0 +1,519 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/content/polkadot/scaling-heterogeneous/img/2dReedSolomon.png b/assets/img/7-Polkadot/Blockchain_Scaling/2dReedSolomon.png similarity index 100% rename from content/polkadot/scaling-heterogeneous/img/2dReedSolomon.png rename to assets/img/7-Polkadot/Blockchain_Scaling/2dReedSolomon.png diff --git a/content/polkadot/scaling-homogeneous/img/Eigenlayer.webp b/assets/img/7-Polkadot/Blockchain_Scaling/Eigenlayer.webp similarity index 100% rename from content/polkadot/scaling-homogeneous/img/Eigenlayer.webp rename to assets/img/7-Polkadot/Blockchain_Scaling/Eigenlayer.webp diff --git a/content/polkadot/scaling-heterogeneous/img/L2Beat.png b/assets/img/7-Polkadot/Blockchain_Scaling/L2Beat.png similarity index 100% rename from content/polkadot/scaling-heterogeneous/img/L2Beat.png rename to assets/img/7-Polkadot/Blockchain_Scaling/L2Beat.png diff --git a/content/polkadot/scaling-homogeneous/img/L2Evolution.png b/assets/img/7-Polkadot/Blockchain_Scaling/L2Evolution.png similarity index 100% rename from content/polkadot/scaling-homogeneous/img/L2Evolution.png rename to assets/img/7-Polkadot/Blockchain_Scaling/L2Evolution.png diff --git a/content/polkadot/scaling-homogeneous/img/Lightning-layers.png b/assets/img/7-Polkadot/Blockchain_Scaling/Lightning-layers.png similarity index 100% rename from content/polkadot/scaling-homogeneous/img/Lightning-layers.png rename to assets/img/7-Polkadot/Blockchain_Scaling/Lightning-layers.png diff --git a/assets/img/7-Polkadot/Blockchain_Scaling/MapReduce.png b/assets/img/7-Polkadot/Blockchain_Scaling/MapReduce.png new file mode 100644 index 00000000..6912fdbc Binary files /dev/null and b/assets/img/7-Polkadot/Blockchain_Scaling/MapReduce.png differ diff --git a/content/polkadot/scaling-homogeneous/img/Omniledger.png b/assets/img/7-Polkadot/Blockchain_Scaling/Omniledger.png similarity index 100% rename from content/polkadot/scaling-homogeneous/img/Omniledger.png rename to assets/img/7-Polkadot/Blockchain_Scaling/Omniledger.png diff --git a/content/polkadot/scaling-homogeneous/img/Plasma.jpg b/assets/img/7-Polkadot/Blockchain_Scaling/Plasma.jpg similarity index 100% rename from content/polkadot/scaling-homogeneous/img/Plasma.jpg rename to assets/img/7-Polkadot/Blockchain_Scaling/Plasma.jpg diff --git a/content/polkadot/scaling-homogeneous/img/VisaScale.png b/assets/img/7-Polkadot/Blockchain_Scaling/VisaScale.png similarity index 100% rename from content/polkadot/scaling-homogeneous/img/VisaScale.png rename to assets/img/7-Polkadot/Blockchain_Scaling/VisaScale.png diff --git a/content/polkadot/scaling-homogeneous/img/committees.png b/assets/img/7-Polkadot/Blockchain_Scaling/committees.png similarity index 100% rename from content/polkadot/scaling-homogeneous/img/committees.png rename to assets/img/7-Polkadot/Blockchain_Scaling/committees.png diff --git a/content/polkadot/scaling-homogeneous/img/horizontal-vs-vertical-scaling-diagram.png b/assets/img/7-Polkadot/Blockchain_Scaling/horizontal-vs-vertical-scaling-diagram.png similarity index 100% rename from content/polkadot/scaling-homogeneous/img/horizontal-vs-vertical-scaling-diagram.png rename to assets/img/7-Polkadot/Blockchain_Scaling/horizontal-vs-vertical-scaling-diagram.png diff --git a/content/polkadot/scaling-homogeneous/img/plasma_world_map.png b/assets/img/7-Polkadot/Blockchain_Scaling/plasma_world_map.png similarity index 100% rename from content/polkadot/scaling-homogeneous/img/plasma_world_map.png rename to assets/img/7-Polkadot/Blockchain_Scaling/plasma_world_map.png diff --git a/content/polkadot/scaling-heterogeneous/img/polkadot-rollup.png b/assets/img/7-Polkadot/Blockchain_Scaling/polkadot-rollup.png similarity index 100% rename from content/polkadot/scaling-heterogeneous/img/polkadot-rollup.png rename to assets/img/7-Polkadot/Blockchain_Scaling/polkadot-rollup.png diff --git a/assets/img/7-Polkadot/Blockchain_Scaling/trilemma.png b/assets/img/7-Polkadot/Blockchain_Scaling/trilemma.png new file mode 100644 index 00000000..53d000c7 Binary files /dev/null and b/assets/img/7-Polkadot/Blockchain_Scaling/trilemma.png differ diff --git a/content/polkadot/data-sharding/img/2d-reed-solomon.png b/assets/img/7-Polkadot/Data_Availability/2d-reed-solomon.png similarity index 100% rename from content/polkadot/data-sharding/img/2d-reed-solomon.png rename to assets/img/7-Polkadot/Data_Availability/2d-reed-solomon.png diff --git a/assets/img/7-Polkadot/Data_Availability/DA_Parachains_1.svg b/assets/img/7-Polkadot/Data_Availability/DA_Parachains_1.svg new file mode 100644 index 00000000..6df52b54 --- /dev/null +++ b/assets/img/7-Polkadot/Data_Availability/DA_Parachains_1.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/img/7-Polkadot/Data_Availability/DA_Parachains_2.svg b/assets/img/7-Polkadot/Data_Availability/DA_Parachains_2.svg new file mode 100644 index 00000000..301581a1 --- /dev/null +++ b/assets/img/7-Polkadot/Data_Availability/DA_Parachains_2.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/img/7-Polkadot/Data_Availability/DA_Relay_1.svg b/assets/img/7-Polkadot/Data_Availability/DA_Relay_1.svg new file mode 100644 index 00000000..ba2d9384 --- /dev/null +++ b/assets/img/7-Polkadot/Data_Availability/DA_Relay_1.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/img/7-Polkadot/Data_Availability/DA_Relay_2.svg b/assets/img/7-Polkadot/Data_Availability/DA_Relay_2.svg new file mode 100644 index 00000000..de7bf8a8 --- /dev/null +++ b/assets/img/7-Polkadot/Data_Availability/DA_Relay_2.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/img/7-Polkadot/Data_Availability/Multiple_Code_Words_1.svg b/assets/img/7-Polkadot/Data_Availability/Multiple_Code_Words_1.svg new file mode 100644 index 00000000..21901a23 --- /dev/null +++ b/assets/img/7-Polkadot/Data_Availability/Multiple_Code_Words_1.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/img/7-Polkadot/Data_Availability/Multiple_Code_Words_2.svg b/assets/img/7-Polkadot/Data_Availability/Multiple_Code_Words_2.svg new file mode 100644 index 00000000..6b2b938a --- /dev/null +++ b/assets/img/7-Polkadot/Data_Availability/Multiple_Code_Words_2.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/img/7-Polkadot/Data_Availability/Multiple_Code_Words_3.svg b/assets/img/7-Polkadot/Data_Availability/Multiple_Code_Words_3.svg new file mode 100644 index 00000000..7106d0ab --- /dev/null +++ b/assets/img/7-Polkadot/Data_Availability/Multiple_Code_Words_3.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/content/polkadot/data-sharding/img/Ralph_Merkle.png b/assets/img/7-Polkadot/Data_Availability/Ralph_Merkle.png similarity index 100% rename from content/polkadot/data-sharding/img/Ralph_Merkle.png rename to assets/img/7-Polkadot/Data_Availability/Ralph_Merkle.png diff --git a/content/polkadot/data-sharding/img/availability-bitfields.png b/assets/img/7-Polkadot/Data_Availability/availability-bitfields.png similarity index 100% rename from content/polkadot/data-sharding/img/availability-bitfields.png rename to assets/img/7-Polkadot/Data_Availability/availability-bitfields.png diff --git a/assets/img/7-Polkadot/Data_Availability/availability-gossip.svg b/assets/img/7-Polkadot/Data_Availability/availability-gossip.svg new file mode 100644 index 00000000..63f877af --- /dev/null +++ b/assets/img/7-Polkadot/Data_Availability/availability-gossip.svg @@ -0,0 +1,200 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Availability Core + diff --git a/assets/img/7-Polkadot/Data_Availability/bitfield-chunk-req.svg b/assets/img/7-Polkadot/Data_Availability/bitfield-chunk-req.svg new file mode 100644 index 00000000..6c803b7c --- /dev/null +++ b/assets/img/7-Polkadot/Data_Availability/bitfield-chunk-req.svg @@ -0,0 +1,273 @@ + + + + + + + + + v + + + v + + + + v + + + + v + + + + v + + + + v + + + + v + + + + v + + request chunk(s) + + + + + + + + + + + + + + + + + + + + + + + diff --git a/content/polkadot/data-sharding/img/candidate-included.png b/assets/img/7-Polkadot/Data_Availability/candidate-included.png similarity index 100% rename from content/polkadot/data-sharding/img/candidate-included.png rename to assets/img/7-Polkadot/Data_Availability/candidate-included.png diff --git a/content/polkadot/data-sharding/img/comic.png b/assets/img/7-Polkadot/Data_Availability/comic.png similarity index 100% rename from content/polkadot/data-sharding/img/comic.png rename to assets/img/7-Polkadot/Data_Availability/comic.png diff --git a/content/polkadot/data-sharding/img/erasure-coding-1.png b/assets/img/7-Polkadot/Data_Availability/erasure-coding-1.png similarity index 100% rename from content/polkadot/data-sharding/img/erasure-coding-1.png rename to assets/img/7-Polkadot/Data_Availability/erasure-coding-1.png diff --git a/content/polkadot/data-sharding/img/line-extra.svg b/assets/img/7-Polkadot/Data_Availability/line-extra.svg similarity index 100% rename from content/polkadot/data-sharding/img/line-extra.svg rename to assets/img/7-Polkadot/Data_Availability/line-extra.svg diff --git a/content/polkadot/data-sharding/img/line.svg b/assets/img/7-Polkadot/Data_Availability/line.svg similarity index 100% rename from content/polkadot/data-sharding/img/line.svg rename to assets/img/7-Polkadot/Data_Availability/line.svg diff --git a/content/polkadot/data-sharding/img/not-that-merkel.jpg b/assets/img/7-Polkadot/Data_Availability/merkel.JPG similarity index 100% rename from content/polkadot/data-sharding/img/not-that-merkel.jpg rename to assets/img/7-Polkadot/Data_Availability/merkel.JPG diff --git a/content/polkadot/data-sharding/img/polynomial-2.png b/assets/img/7-Polkadot/Data_Availability/polynomial-2.png similarity index 100% rename from content/polkadot/data-sharding/img/polynomial-2.png rename to assets/img/7-Polkadot/Data_Availability/polynomial-2.png diff --git a/content/polkadot/data-sharding/img/reed-solomon.png b/assets/img/7-Polkadot/Data_Availability/reed-solomon.png similarity index 100% rename from content/polkadot/data-sharding/img/reed-solomon.png rename to assets/img/7-Polkadot/Data_Availability/reed-solomon.png diff --git a/assets/img/7-Polkadot/Data_Availability/relay-block-construction-I.svg b/assets/img/7-Polkadot/Data_Availability/relay-block-construction-I.svg new file mode 100644 index 00000000..123336f5 --- /dev/null +++ b/assets/img/7-Polkadot/Data_Availability/relay-block-construction-I.svg @@ -0,0 +1,454 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/content/polkadot/opengov/img/Bitcoin.png b/assets/img/7-Polkadot/OpenGov-PBA2/Bitcoin.png similarity index 100% rename from content/polkadot/opengov/img/Bitcoin.png rename to assets/img/7-Polkadot/OpenGov-PBA2/Bitcoin.png diff --git a/content/polkadot/opengov/img/Ethereum.png b/assets/img/7-Polkadot/OpenGov-PBA2/Ethereum.png similarity index 100% rename from content/polkadot/opengov/img/Ethereum.png rename to assets/img/7-Polkadot/OpenGov-PBA2/Ethereum.png diff --git a/content/polkadot/opengov/img/Polkadot.png b/assets/img/7-Polkadot/OpenGov-PBA2/Polkadot.png similarity index 100% rename from content/polkadot/opengov/img/Polkadot.png rename to assets/img/7-Polkadot/OpenGov-PBA2/Polkadot.png diff --git a/content/polkadot/opengov/img/Snail.jpeg b/assets/img/7-Polkadot/OpenGov-PBA2/Snail.jpeg similarity index 100% rename from content/polkadot/opengov/img/Snail.jpeg rename to assets/img/7-Polkadot/OpenGov-PBA2/Snail.jpeg diff --git a/content/polkadot/opengov/img/TracksTable.webp b/assets/img/7-Polkadot/OpenGov-PBA2/TracksTable.webp similarity index 100% rename from content/polkadot/opengov/img/TracksTable.webp rename to assets/img/7-Polkadot/OpenGov-PBA2/TracksTable.webp diff --git a/content/polkadot/opengov/img/lifecycle_of_a_referendum.png b/assets/img/7-Polkadot/OpenGov-PBA2/lifecycle_of_a_referendum.png similarity index 100% rename from content/polkadot/opengov/img/lifecycle_of_a_referendum.png rename to assets/img/7-Polkadot/OpenGov-PBA2/lifecycle_of_a_referendum.png diff --git a/content/polkadot/opengov/img/overview.png b/assets/img/7-Polkadot/OpenGov-PBA2/overview.png similarity index 100% rename from content/polkadot/opengov/img/overview.png rename to assets/img/7-Polkadot/OpenGov-PBA2/overview.png diff --git a/assets/img/7-Polkadot/OpenGov-PBA2/polkadot_fellowship_background.jpeg b/assets/img/7-Polkadot/OpenGov-PBA2/polkadot_fellowship_background.jpeg new file mode 100644 index 00000000..b3d7cdde Binary files /dev/null and b/assets/img/7-Polkadot/OpenGov-PBA2/polkadot_fellowship_background.jpeg differ diff --git a/content/polkadot/opengov/img/proposals_from_democracy.png b/assets/img/7-Polkadot/OpenGov-PBA2/proposals_from_democracy.png similarity index 100% rename from content/polkadot/opengov/img/proposals_from_democracy.png rename to assets/img/7-Polkadot/OpenGov-PBA2/proposals_from_democracy.png diff --git a/content/polkadot/opengov/img/proposals_per_day.png b/assets/img/7-Polkadot/OpenGov-PBA2/proposals_per_day.png similarity index 100% rename from content/polkadot/opengov/img/proposals_per_day.png rename to assets/img/7-Polkadot/OpenGov-PBA2/proposals_per_day.png diff --git a/content/polkadot/opengov/img/rail_road_tracks.jpeg b/assets/img/7-Polkadot/OpenGov-PBA2/rail_road_tracks.jpeg similarity index 100% rename from content/polkadot/opengov/img/rail_road_tracks.jpeg rename to assets/img/7-Polkadot/OpenGov-PBA2/rail_road_tracks.jpeg diff --git a/content/polkadot/async-backing-deep/img/stopwatch.png b/assets/img/7-Polkadot/OpenGov-PBA2/stopwatch.png similarity index 100% rename from content/polkadot/async-backing-deep/img/stopwatch.png rename to assets/img/7-Polkadot/OpenGov-PBA2/stopwatch.png diff --git a/content/polkadot/opengov/img/support_and_approval_curves.png b/assets/img/7-Polkadot/OpenGov-PBA2/support_and_approval_curves.png similarity index 100% rename from content/polkadot/opengov/img/support_and_approval_curves.png rename to assets/img/7-Polkadot/OpenGov-PBA2/support_and_approval_curves.png diff --git a/content/polkadot/opengov/img/treasury_waste_since_opengov.png b/assets/img/7-Polkadot/OpenGov-PBA2/treasury_waste_since_opengov.png similarity index 100% rename from content/polkadot/opengov/img/treasury_waste_since_opengov.png rename to assets/img/7-Polkadot/OpenGov-PBA2/treasury_waste_since_opengov.png diff --git a/content/polkadot/opengov/img/vote.jpeg b/assets/img/7-Polkadot/OpenGov-PBA2/vote.jpeg similarity index 100% rename from content/polkadot/opengov/img/vote.jpeg rename to assets/img/7-Polkadot/OpenGov-PBA2/vote.jpeg diff --git a/assets/img/7-Polkadot/Scalability_History/Arbitrum.png b/assets/img/7-Polkadot/Scalability_History/Arbitrum.png new file mode 100644 index 00000000..234c1c76 Binary files /dev/null and b/assets/img/7-Polkadot/Scalability_History/Arbitrum.png differ diff --git a/assets/img/7-Polkadot/Scalability_History/Bitcoin.png b/assets/img/7-Polkadot/Scalability_History/Bitcoin.png new file mode 100644 index 00000000..7084bada Binary files /dev/null and b/assets/img/7-Polkadot/Scalability_History/Bitcoin.png differ diff --git a/assets/img/7-Polkadot/Scalability_History/Boba.png b/assets/img/7-Polkadot/Scalability_History/Boba.png new file mode 100644 index 00000000..b8c4f00b Binary files /dev/null and b/assets/img/7-Polkadot/Scalability_History/Boba.png differ diff --git a/assets/img/7-Polkadot/Scalability_History/Ethereum.png b/assets/img/7-Polkadot/Scalability_History/Ethereum.png new file mode 100644 index 00000000..c93d5205 Binary files /dev/null and b/assets/img/7-Polkadot/Scalability_History/Ethereum.png differ diff --git a/assets/img/7-Polkadot/Scalability_History/Optimism.png b/assets/img/7-Polkadot/Scalability_History/Optimism.png new file mode 100644 index 00000000..b2afcc12 Binary files /dev/null and b/assets/img/7-Polkadot/Scalability_History/Optimism.png differ diff --git a/assets/img/7-Polkadot/Scalability_History/POV_PVF_Diagram.png b/assets/img/7-Polkadot/Scalability_History/POV_PVF_Diagram.png new file mode 100644 index 00000000..33ee94c1 Binary files /dev/null and b/assets/img/7-Polkadot/Scalability_History/POV_PVF_Diagram.png differ diff --git a/assets/img/7-Polkadot/Scalability_History/Starkware.jpeg b/assets/img/7-Polkadot/Scalability_History/Starkware.jpeg new file mode 100644 index 00000000..a959b94e Binary files /dev/null and b/assets/img/7-Polkadot/Scalability_History/Starkware.jpeg differ diff --git a/assets/img/7-Polkadot/Scalability_History/ZkSync.png b/assets/img/7-Polkadot/Scalability_History/ZkSync.png new file mode 100644 index 00000000..2861f56f Binary files /dev/null and b/assets/img/7-Polkadot/Scalability_History/ZkSync.png differ diff --git a/assets/img/7-Polkadot/Scalability_History/channel-3-nodes.png b/assets/img/7-Polkadot/Scalability_History/channel-3-nodes.png new file mode 100644 index 00000000..56b35bbf Binary files /dev/null and b/assets/img/7-Polkadot/Scalability_History/channel-3-nodes.png differ diff --git a/assets/img/7-Polkadot/Scalability_History/channel-lock.png b/assets/img/7-Polkadot/Scalability_History/channel-lock.png new file mode 100644 index 00000000..399012f6 Binary files /dev/null and b/assets/img/7-Polkadot/Scalability_History/channel-lock.png differ diff --git a/assets/img/7-Polkadot/Scalability_History/fraud-proof.svg b/assets/img/7-Polkadot/Scalability_History/fraud-proof.svg new file mode 100644 index 00000000..78a48f43 --- /dev/null +++ b/assets/img/7-Polkadot/Scalability_History/fraud-proof.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/img/7-Polkadot/Scalability_History/galaxy-brain-sharding.jpg b/assets/img/7-Polkadot/Scalability_History/galaxy-brain-sharding.jpg new file mode 100644 index 00000000..678f4c75 Binary files /dev/null and b/assets/img/7-Polkadot/Scalability_History/galaxy-brain-sharding.jpg differ diff --git a/assets/img/7-Polkadot/Scalability_History/rollup-batch.svg b/assets/img/7-Polkadot/Scalability_History/rollup-batch.svg new file mode 100644 index 00000000..aea36089 --- /dev/null +++ b/assets/img/7-Polkadot/Scalability_History/rollup-batch.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/img/7-Polkadot/Scalability_History/sharding-trilemma.svg b/assets/img/7-Polkadot/Scalability_History/sharding-trilemma.svg new file mode 100644 index 00000000..f6293e15 --- /dev/null +++ b/assets/img/7-Polkadot/Scalability_History/sharding-trilemma.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/img/7-Polkadot/Scalability_History/shards.svg b/assets/img/7-Polkadot/Scalability_History/shards.svg new file mode 100644 index 00000000..77e94a63 --- /dev/null +++ b/assets/img/7-Polkadot/Scalability_History/shards.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/img/7-Polkadot/bandersnatch.png b/assets/img/7-Polkadot/bandersnatch.png new file mode 100644 index 00000000..5b193dea Binary files /dev/null and b/assets/img/7-Polkadot/bandersnatch.png differ diff --git a/assets/img/7-Polkadot/bs-bitfield-chunk-req.svg b/assets/img/7-Polkadot/bs-bitfield-chunk-req.svg new file mode 100644 index 00000000..6c803b7c --- /dev/null +++ b/assets/img/7-Polkadot/bs-bitfield-chunk-req.svg @@ -0,0 +1,273 @@ + + + + + + + + + v + + + v + + + + v + + + + v + + + + v + + + + v + + + + v + + + + v + + request chunk(s) + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/img/7-Polkadot/bs-bitfield-gossip.svg b/assets/img/7-Polkadot/bs-bitfield-gossip.svg new file mode 100644 index 00000000..cda00420 --- /dev/null +++ b/assets/img/7-Polkadot/bs-bitfield-gossip.svg @@ -0,0 +1,311 @@ + + + + + + + + + v + + + v + + + + v + + + + v + + + + v + + + + v + + + + v + + + + v + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + bitfieldgossip + + diff --git a/assets/img/7-Polkadot/bs-erasure-encoding-abstract.svg b/assets/img/7-Polkadot/bs-erasure-encoding-abstract.svg new file mode 100644 index 00000000..ef934e6a --- /dev/null +++ b/assets/img/7-Polkadot/bs-erasure-encoding-abstract.svg @@ -0,0 +1,315 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Original Data * + *: in case of a systematic code + Redundant elements + [u8] + map to field elements** + original payload + **: add zero padding as needed, to adjust for element size + + Apply transformation + diff --git a/assets/img/7-Polkadot/bs-erasure-encoding-data-layout-2.svg b/assets/img/7-Polkadot/bs-erasure-encoding-data-layout-2.svg new file mode 100644 index 00000000..713e9bd9 --- /dev/null +++ b/assets/img/7-Polkadot/bs-erasure-encoding-data-layout-2.svg @@ -0,0 +1,371 @@ + + + + + + + + + + + + + + + + + + + + + + + original payload + + + + + + + + Discarded + + + + + + validator idx 0 + validator idx 1 + validator idx n-1 + + + + + + + + + + + + + + + + + + + + diff --git a/assets/img/7-Polkadot/bs-erasure-encoding-data-layout-3.svg b/assets/img/7-Polkadot/bs-erasure-encoding-data-layout-3.svg new file mode 100644 index 00000000..b7d437eb --- /dev/null +++ b/assets/img/7-Polkadot/bs-erasure-encoding-data-layout-3.svg @@ -0,0 +1,416 @@ + + + + + + + + + + + + + + + + original payload + + + + + + + + + + Discarded + + + + + + validator idx 0 + validator idx 1 + validator idx n-1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Availability Data Chunk + diff --git a/assets/img/7-Polkadot/bs-erasure-encoding-data-layout.svg b/assets/img/7-Polkadot/bs-erasure-encoding-data-layout.svg new file mode 100644 index 00000000..6fd19820 --- /dev/null +++ b/assets/img/7-Polkadot/bs-erasure-encoding-data-layout.svg @@ -0,0 +1,318 @@ + + + + + + + + + + + + + + + + + + + + + + + original payload + Apply efficient transformation 2^2^z + + + + + + + + + + Discarded + + + + + + + validator idx 0 + validator idx 1 + validator idx n-1 + + + + + + + diff --git a/assets/img/7-Polkadot/bs-erasure-encoding-polkadot.svg b/assets/img/7-Polkadot/bs-erasure-encoding-polkadot.svg new file mode 100644 index 00000000..6c807aed --- /dev/null +++ b/assets/img/7-Polkadot/bs-erasure-encoding-polkadot.svg @@ -0,0 +1,355 @@ + + + + + + + + + + + + + + + + + + + + Original Data + Redundant elements + [u8] + [u16] + original payload + + + Apply efficient transformation 2^2^z + + + + + + + + + + + + + + + + Discarded + ... + + + necessary by polkadot, not by the algorithm + diff --git a/assets/img/7-Polkadot/bs_block_prod.svg b/assets/img/7-Polkadot/bs_block_prod.svg new file mode 100644 index 00000000..3f3f9ea5 --- /dev/null +++ b/assets/img/7-Polkadot/bs_block_prod.svg @@ -0,0 +1,380 @@ + + + + + + + + + + + + + + + + + + + Availability + Backing + + + + + + + + Approval + + + + + + + + + Availability + Backing + + + + + + + + Approval + Availability + + Backing + + + + + + Backing + + + + + + Approval + + time + + diff --git a/assets/img/7-Polkadot/bs_impl_arch.png b/assets/img/7-Polkadot/bs_impl_arch.png new file mode 100644 index 00000000..374fcd53 Binary files /dev/null and b/assets/img/7-Polkadot/bs_impl_arch.png differ diff --git a/assets/img/7-Polkadot/bs_impl_arch.svg b/assets/img/7-Polkadot/bs_impl_arch.svg new file mode 100644 index 00000000..8ee96d81 --- /dev/null +++ b/assets/img/7-Polkadot/bs_impl_arch.svg @@ -0,0 +1,2894 @@ + + + + + + + + + + + + 0 + + CandidateValidation + + + + 9 + + RuntimeApi + + + + 0->9 + + + RuntimeApiMessage + + + + 1 + + PvfChecker + + + + 1->0 + + + CandidateValidationMessage + + + + 1->9 + + + RuntimeApiMessage + + + + 2 + + CandidateBacking + ฮณ + + + + 2->0 + + + CandidateValidationMessage + + + + 3 + + StatementDistribution + ฮณ + + + + 2->3 + + + StatementDistributionMessage + ฮณ + + + + 4 + + AvailabilityDistribution + + + + 2->4 + + + AvailabilityDistributionMessage + + + + 8 + + Provisioner + ฮณ + + + + 2->8 + + + ProvisionerMessage + ฮณ + + + + 2->9 + + + RuntimeApiMessage + + + + 10 + + AvailabilityStore + + + + 2->10 + + + AvailabilityStoreMessage + + + + 15 + + CollatorProtocol + ฮณ + + + + 2->15 + + + CollatorProtocolMessage + ฮณ + + + + 19 + + DisputeCoordinator + ฮฑ + + + + 2->19 + + + DisputeCoordinatorMessage + + + + 3->2 + + + CandidateBackingMessage + ฮณ + + + + 3->9 + + + RuntimeApiMessage + + + + 12 + + NetworkBridgeTx + + + + 3->12 + + + NetworkBridgeTxMessage + + + + 5 + + AvailabilityRecovery + + + + 4->5 + + + AvailabilityRecoveryMessage + + + + 4->9 + + + RuntimeApiMessage + + + + 4->10 + + + AvailabilityStoreMessage + + + + 4->12 + + + NetworkBridgeTxMessage + + + + 13 + + ChainApi + + + + 4->13 + + + ChainApiMessage + + + + 5->9 + + + RuntimeApiMessage + + + + 5->10 + + + AvailabilityStoreMessage + + + + 5->12 + + + NetworkBridgeTxMessage + + + + 6 + + BitfieldSigning + + + + 7 + + BitfieldDistribution + + + + 6->7 + + + BitfieldDistributionMessage + + + + 6->9 + + + RuntimeApiMessage + + + + 6->10 + + + AvailabilityStoreMessage + + + + 7->8 + + + ProvisionerMessage + + + + 7->9 + + + RuntimeApiMessage + + + + 7->12 + + + NetworkBridgeTxMessage + + + + 8->2 + + + CandidateBackingMessage + ฮณ + + + + 8->9 + + + RuntimeApiMessage + + + + 8->13 + + + ChainApiMessage + + + + 8->19 + + + DisputeCoordinatorMessage + + + + 10->9 + + + RuntimeApiMessage + + + + 10->13 + + + ChainApiMessage + + + + 11 + + NetworkBridgeRx + ฮด + + + + 11->3 + + + StatementDistributionMessage + + + + 11->7 + + + BitfieldDistributionMessage + + + + 14 + + CollationGeneration + + + + 11->14 + + + CollationGenerationMessage + + + + 11->15 + + + CollatorProtocolMessage + + + + 16 + + ApprovalDistribution + ฮฒ + + + + 11->16 + + + ApprovalDistributionMessage + + + + 18 + + GossipSupport + ฮด + + + + 11->18 + + + GossipSupportMessage + ฮด + + + + 20 + + DisputeDistribution + ฮฑ + + + + 11->20 + + + DisputeDistributionMessage + + + + 14->9 + + + RuntimeApiMessage + + + + 14->15 + + + CollatorProtocolMessage + + + + 15->2 + + + CandidateBackingMessage + ฮณ + + + + 15->9 + + + RuntimeApiMessage + + + + 15->12 + + + NetworkBridgeTxMessage + + + + 16->12 + + + NetworkBridgeTxMessage + + + + 17 + + ApprovalVoting + ฮฒ + + + + 16->17 + + + ApprovalVotingMessage + ฮฒ + + + + 17->0 + + + CandidateValidationMessage + + + + 17->5 + + + AvailabilityRecoveryMessage + + + + 17->9 + + + RuntimeApiMessage + + + + 17->13 + + + ChainApiMessage + + + + 17->16 + + + ApprovalDistributionMessage + ฮฒ + + + + 17->19 + + + DisputeCoordinatorMessage + + + + 21 + + ChainSelection + + + + 17->21 + + + ChainSelectionMessage + + + + 18->9 + + + RuntimeApiMessage + + + + 18->11 + + + NetworkBridgeRxMessage + ฮด + + + + 18->12 + + + NetworkBridgeTxMessage + + + + 18->21 + + + ChainSelectionMessage + + + + 19->0 + + + CandidateValidationMessage + + + + 19->5 + + + AvailabilityRecoveryMessage + + + + 19->9 + + + RuntimeApiMessage + + + + 19->10 + + + AvailabilityStoreMessage + + + + 19->13 + + + ChainApiMessage + + + + 19->20 + + + DisputeDistributionMessage + ฮฑ + + + + 20->9 + + + RuntimeApiMessage + + + + 20->12 + + + NetworkBridgeTxMessage + + + + 20->19 + + + DisputeCoordinatorMessage + ฮฑ + + + + 21->13 + + + ChainApiMessage + + + + 22 + + + ๐Ÿ’€ + + + + 23 + + + โœจ + + + + 23->1 + + + PvfCheckerMessage + + + + 23->6 + + + BitfieldSigningMessage + + + diff --git a/assets/img/7-Polkadot/bs_inclusion.png b/assets/img/7-Polkadot/bs_inclusion.png new file mode 100644 index 00000000..60437d53 Binary files /dev/null and b/assets/img/7-Polkadot/bs_inclusion.png differ diff --git a/assets/img/7-Polkadot/bs_polkadot_js_bitfields.png b/assets/img/7-Polkadot/bs_polkadot_js_bitfields.png new file mode 100644 index 00000000..da4c4199 Binary files /dev/null and b/assets/img/7-Polkadot/bs_polkadot_js_bitfields.png differ diff --git a/assets/img/7-Polkadot/bs_polkadot_js_inclusion.png b/assets/img/7-Polkadot/bs_polkadot_js_inclusion.png new file mode 100644 index 00000000..60437d53 Binary files /dev/null and b/assets/img/7-Polkadot/bs_polkadot_js_inclusion.png differ diff --git a/content/polkadot/shared-security/img/chain-fork.svg b/assets/img/7-Polkadot/chain-fork.svg similarity index 100% rename from content/polkadot/shared-security/img/chain-fork.svg rename to assets/img/7-Polkadot/chain-fork.svg diff --git a/assets/img/7-Polkadot/cumulus/cumulus-1.svg b/assets/img/7-Polkadot/cumulus/cumulus-1.svg new file mode 100644 index 00000000..896d92b9 --- /dev/null +++ b/assets/img/7-Polkadot/cumulus/cumulus-1.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/img/7-Polkadot/cumulus/cumulus-2.svg b/assets/img/7-Polkadot/cumulus/cumulus-2.svg new file mode 100644 index 00000000..09340938 --- /dev/null +++ b/assets/img/7-Polkadot/cumulus/cumulus-2.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/img/7-Polkadot/cumulus/cumulus-3.svg b/assets/img/7-Polkadot/cumulus/cumulus-3.svg new file mode 100644 index 00000000..dd8d78a0 --- /dev/null +++ b/assets/img/7-Polkadot/cumulus/cumulus-3.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/img/7-Polkadot/cumulus/relay-chain-interface.png b/assets/img/7-Polkadot/cumulus/relay-chain-interface.png new file mode 100644 index 00000000..0ba50c9c Binary files /dev/null and b/assets/img/7-Polkadot/cumulus/relay-chain-interface.png differ diff --git a/content/polkadot/decisions/img/app-chain.svg b/assets/img/7-Polkadot/decisions/app-chain.svg similarity index 100% rename from content/polkadot/decisions/img/app-chain.svg rename to assets/img/7-Polkadot/decisions/app-chain.svg diff --git a/content/polkadot/decisions/img/babe.svg b/assets/img/7-Polkadot/decisions/babe.svg similarity index 100% rename from content/polkadot/decisions/img/babe.svg rename to assets/img/7-Polkadot/decisions/babe.svg diff --git a/content/polkadot/decisions/img/exotic-scheduling.png b/assets/img/7-Polkadot/decisions/exotic-scheduling.png similarity index 100% rename from content/polkadot/decisions/img/exotic-scheduling.png rename to assets/img/7-Polkadot/decisions/exotic-scheduling.png diff --git a/content/polkadot/decisions/img/grandpa.png b/assets/img/7-Polkadot/decisions/grandpa.png similarity index 100% rename from content/polkadot/decisions/img/grandpa.png rename to assets/img/7-Polkadot/decisions/grandpa.png diff --git a/assets/img/7-Polkadot/decisions/interoperability.svg b/assets/img/7-Polkadot/decisions/interoperability.svg new file mode 100644 index 00000000..754af167 --- /dev/null +++ b/assets/img/7-Polkadot/decisions/interoperability.svg @@ -0,0 +1 @@ +connected world \ No newline at end of file diff --git a/assets/img/7-Polkadot/decisions/jam-pen-polkadot.png b/assets/img/7-Polkadot/decisions/jam-pen-polkadot.png new file mode 100644 index 00000000..f159fb74 Binary files /dev/null and b/assets/img/7-Polkadot/decisions/jam-pen-polkadot.png differ diff --git a/content/polkadot/decisions/img/original-scheduling.png b/assets/img/7-Polkadot/decisions/original-scheduling.png similarity index 100% rename from content/polkadot/decisions/img/original-scheduling.png rename to assets/img/7-Polkadot/decisions/original-scheduling.png diff --git a/content/polkadot/decisions/img/runtime-upgrade.png b/assets/img/7-Polkadot/decisions/runtime-upgrade.png similarity index 100% rename from content/polkadot/decisions/img/runtime-upgrade.png rename to assets/img/7-Polkadot/decisions/runtime-upgrade.png diff --git a/content/polkadot/decisions/img/sharding.svg b/assets/img/7-Polkadot/decisions/sharding.svg similarity index 100% rename from content/polkadot/decisions/img/sharding.svg rename to assets/img/7-Polkadot/decisions/sharding.svg diff --git a/assets/img/7-Polkadot/decisions/substrate-connect.png b/assets/img/7-Polkadot/decisions/substrate-connect.png new file mode 100644 index 00000000..730ddc3e Binary files /dev/null and b/assets/img/7-Polkadot/decisions/substrate-connect.png differ diff --git a/content/polkadot/decisions/img/treasury.svg b/assets/img/7-Polkadot/decisions/treasury.svg similarity index 100% rename from content/polkadot/decisions/img/treasury.svg rename to assets/img/7-Polkadot/decisions/treasury.svg diff --git a/content/polkadot/decisions/img/voting.svg b/assets/img/7-Polkadot/decisions/voting.svg similarity index 100% rename from content/polkadot/decisions/img/voting.svg rename to assets/img/7-Polkadot/decisions/voting.svg diff --git a/assets/img/7-Polkadot/dot-bonding.svg b/assets/img/7-Polkadot/dot-bonding.svg new file mode 100644 index 00000000..c0709247 --- /dev/null +++ b/assets/img/7-Polkadot/dot-bonding.svg @@ -0,0 +1,89 @@ + + + + +hiress_Bonding + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/img/7-Polkadot/dot-governance.svg b/assets/img/7-Polkadot/dot-governance.svg new file mode 100644 index 00000000..588abb3c --- /dev/null +++ b/assets/img/7-Polkadot/dot-governance.svg @@ -0,0 +1,95 @@ + + + + +hiress_Governance + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/img/7-Polkadot/dot-staking.svg b/assets/img/7-Polkadot/dot-staking.svg new file mode 100644 index 00000000..d66f42b7 --- /dev/null +++ b/assets/img/7-Polkadot/dot-staking.svg @@ -0,0 +1,69 @@ + + + + +hiress_Operations + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/content/polkadot/shared-security/img/double-spend.svg b/assets/img/7-Polkadot/double-spend.svg similarity index 100% rename from content/polkadot/shared-security/img/double-spend.svg rename to assets/img/7-Polkadot/double-spend.svg diff --git a/content/polkadot/ecosystem-economy/img/collab.svg b/assets/img/7-Polkadot/eco/collab.svg similarity index 100% rename from content/polkadot/ecosystem-economy/img/collab.svg rename to assets/img/7-Polkadot/eco/collab.svg diff --git a/assets/img/7-Polkadot/eco/enkrypt.jpeg b/assets/img/7-Polkadot/eco/enkrypt.jpeg new file mode 100644 index 00000000..7a6b0e74 Binary files /dev/null and b/assets/img/7-Polkadot/eco/enkrypt.jpeg differ diff --git a/content/polkadot/ecosystem-economy/img/fellowship-manifesto.png b/assets/img/7-Polkadot/eco/fellowship-manifesto.png similarity index 100% rename from content/polkadot/ecosystem-economy/img/fellowship-manifesto.png rename to assets/img/7-Polkadot/eco/fellowship-manifesto.png diff --git a/content/polkadot/ecosystem-economy/img/fellowship-members.png b/assets/img/7-Polkadot/eco/fellowship-members.png similarity index 100% rename from content/polkadot/ecosystem-economy/img/fellowship-members.png rename to assets/img/7-Polkadot/eco/fellowship-members.png diff --git a/content/polkadot/ecosystem-economy/img/forum.png b/assets/img/7-Polkadot/eco/forum.png similarity index 100% rename from content/polkadot/ecosystem-economy/img/forum.png rename to assets/img/7-Polkadot/eco/forum.png diff --git a/content/polkadot/ecosystem-economy/img/governance.avif b/assets/img/7-Polkadot/eco/governance.avif similarity index 100% rename from content/polkadot/ecosystem-economy/img/governance.avif rename to assets/img/7-Polkadot/eco/governance.avif diff --git a/content/polkadot/ecosystem-economy/img/inflation.svg b/assets/img/7-Polkadot/eco/inflation.svg similarity index 100% rename from content/polkadot/ecosystem-economy/img/inflation.svg rename to assets/img/7-Polkadot/eco/inflation.svg diff --git a/assets/img/7-Polkadot/eco/jam-clients.png b/assets/img/7-Polkadot/eco/jam-clients.png new file mode 100644 index 00000000..cedc133f Binary files /dev/null and b/assets/img/7-Polkadot/eco/jam-clients.png differ diff --git a/content/polkadot/ecosystem-economy/img/ledger.webp b/assets/img/7-Polkadot/eco/ledger.webp similarity index 100% rename from content/polkadot/ecosystem-economy/img/ledger.webp rename to assets/img/7-Polkadot/eco/ledger.webp diff --git a/content/polkadot/ecosystem-economy/img/pjs-curves.png b/assets/img/7-Polkadot/eco/pjs-curves.png similarity index 100% rename from content/polkadot/ecosystem-economy/img/pjs-curves.png rename to assets/img/7-Polkadot/eco/pjs-curves.png diff --git a/content/polkadot/ecosystem-economy/img/polkadot-parachains.svg b/assets/img/7-Polkadot/eco/polkadot-parachains.svg similarity index 100% rename from content/polkadot/ecosystem-economy/img/polkadot-parachains.svg rename to assets/img/7-Polkadot/eco/polkadot-parachains.svg diff --git a/content/polkadot/ecosystem-economy/img/polkassembly.png b/assets/img/7-Polkadot/eco/polkassembly.png similarity index 100% rename from content/polkadot/ecosystem-economy/img/polkassembly.png rename to assets/img/7-Polkadot/eco/polkassembly.png diff --git a/content/polkadot/ecosystem-economy/img/rfcs.png b/assets/img/7-Polkadot/eco/rfcs.png similarity index 100% rename from content/polkadot/ecosystem-economy/img/rfcs.png rename to assets/img/7-Polkadot/eco/rfcs.png diff --git a/content/polkadot/ecosystem-economy/img/root-curve.png b/assets/img/7-Polkadot/eco/root-curve.png similarity index 100% rename from content/polkadot/ecosystem-economy/img/root-curve.png rename to assets/img/7-Polkadot/eco/root-curve.png diff --git a/content/polkadot/ecosystem-economy/img/staking.svg b/assets/img/7-Polkadot/eco/staking.svg similarity index 100% rename from content/polkadot/ecosystem-economy/img/staking.svg rename to assets/img/7-Polkadot/eco/staking.svg diff --git a/content/polkadot/ecosystem-economy/img/subsquare.png b/assets/img/7-Polkadot/eco/subsquare.png similarity index 100% rename from content/polkadot/ecosystem-economy/img/subsquare.png rename to assets/img/7-Polkadot/eco/subsquare.png diff --git a/content/polkadot/ecosystem-economy/img/token.avif b/assets/img/7-Polkadot/eco/token.avif similarity index 100% rename from content/polkadot/ecosystem-economy/img/token.avif rename to assets/img/7-Polkadot/eco/token.avif diff --git a/content/polkadot/ecosystem-economy/img/utility.avif b/assets/img/7-Polkadot/eco/utility.avif similarity index 100% rename from content/polkadot/ecosystem-economy/img/utility.avif rename to assets/img/7-Polkadot/eco/utility.avif diff --git a/assets/img/7-Polkadot/eco/wallets.png b/assets/img/7-Polkadot/eco/wallets.png new file mode 100644 index 00000000..55f9eabd Binary files /dev/null and b/assets/img/7-Polkadot/eco/wallets.png differ diff --git a/content/polkadot/shared-security/img/economics-security.svg b/assets/img/7-Polkadot/economics-security.svg similarity index 100% rename from content/polkadot/shared-security/img/economics-security.svg rename to assets/img/7-Polkadot/economics-security.svg diff --git a/assets/img/7-Polkadot/erasure-coding.jpg b/assets/img/7-Polkadot/erasure-coding.jpg new file mode 100644 index 00000000..8adc692c Binary files /dev/null and b/assets/img/7-Polkadot/erasure-coding.jpg differ diff --git a/assets/img/7-Polkadot/hrmp.svg b/assets/img/7-Polkadot/hrmp.svg new file mode 100644 index 00000000..3174c40f --- /dev/null +++ b/assets/img/7-Polkadot/hrmp.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/content/polkadot/shared-security/img/iceburg.jpg b/assets/img/7-Polkadot/iceburg.jpg similarity index 100% rename from content/polkadot/shared-security/img/iceburg.jpg rename to assets/img/7-Polkadot/iceburg.jpg diff --git a/assets/img/7-Polkadot/icon-glossary-bridge.svg b/assets/img/7-Polkadot/icon-glossary-bridge.svg new file mode 100644 index 00000000..b2254e8c --- /dev/null +++ b/assets/img/7-Polkadot/icon-glossary-bridge.svg @@ -0,0 +1,44 @@ + + + + +hiress_Artboard 1 copy 3 + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/img/7-Polkadot/icon-glossary-collator.svg b/assets/img/7-Polkadot/icon-glossary-collator.svg new file mode 100644 index 00000000..63180e27 --- /dev/null +++ b/assets/img/7-Polkadot/icon-glossary-collator.svg @@ -0,0 +1,35 @@ + + + + +hiress_Artboard 1 copy 9 + + + + + + + + + + + + + + + + + + + diff --git a/assets/img/7-Polkadot/icon-glossary-nominator.svg b/assets/img/7-Polkadot/icon-glossary-nominator.svg new file mode 100644 index 00000000..32abad2e --- /dev/null +++ b/assets/img/7-Polkadot/icon-glossary-nominator.svg @@ -0,0 +1,204 @@ + + + + +hiress_Artboard 1 copy 7 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/img/7-Polkadot/icon-glossary-parachain.svg b/assets/img/7-Polkadot/icon-glossary-parachain.svg new file mode 100644 index 00000000..17b1f452 --- /dev/null +++ b/assets/img/7-Polkadot/icon-glossary-parachain.svg @@ -0,0 +1,36 @@ + + + + +hiress_Artboard 1 copy 4 + + + + + + + + + + + + + + + + + + + + diff --git a/assets/img/7-Polkadot/icon-glossary-parathread.svg b/assets/img/7-Polkadot/icon-glossary-parathread.svg new file mode 100644 index 00000000..ae4adbf4 --- /dev/null +++ b/assets/img/7-Polkadot/icon-glossary-parathread.svg @@ -0,0 +1,48 @@ + + + + +hiress_Artboard 1 copy 6 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/img/7-Polkadot/icon-glossary-relay-chain.svg b/assets/img/7-Polkadot/icon-glossary-relay-chain.svg new file mode 100644 index 00000000..407f849f --- /dev/null +++ b/assets/img/7-Polkadot/icon-glossary-relay-chain.svg @@ -0,0 +1,52 @@ + + + + +hiress_Artboard 1 copy 8 + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/img/7-Polkadot/icon-glossary-validator.svg b/assets/img/7-Polkadot/icon-glossary-validator.svg new file mode 100644 index 00000000..fe320679 --- /dev/null +++ b/assets/img/7-Polkadot/icon-glossary-validator.svg @@ -0,0 +1,36 @@ + + + + +hiress_Artboard 1 copy 4 + + + + + + + + + + + + + + + + + + + + diff --git a/content/polkadot/ecosystem-economy/img/ideal-token-distribution.svg b/assets/img/7-Polkadot/ideal-token-distribution.svg similarity index 100% rename from content/polkadot/ecosystem-economy/img/ideal-token-distribution.svg rename to assets/img/7-Polkadot/ideal-token-distribution.svg diff --git a/assets/img/7-Polkadot/jam-block-encoding.png b/assets/img/7-Polkadot/jam-block-encoding.png new file mode 100644 index 00000000..25e30a12 Binary files /dev/null and b/assets/img/7-Polkadot/jam-block-encoding.png differ diff --git a/assets/img/7-Polkadot/jam-block.png b/assets/img/7-Polkadot/jam-block.png new file mode 100644 index 00000000..b37382da Binary files /dev/null and b/assets/img/7-Polkadot/jam-block.png differ diff --git a/assets/img/7-Polkadot/jam-cartoon.jpg b/assets/img/7-Polkadot/jam-cartoon.jpg new file mode 100644 index 00000000..bb987317 Binary files /dev/null and b/assets/img/7-Polkadot/jam-cartoon.jpg differ diff --git a/assets/img/7-Polkadot/jam-comparison.png b/assets/img/7-Polkadot/jam-comparison.png new file mode 100644 index 00000000..6439cdec Binary files /dev/null and b/assets/img/7-Polkadot/jam-comparison.png differ diff --git a/assets/img/7-Polkadot/jam-encoding1.png b/assets/img/7-Polkadot/jam-encoding1.png new file mode 100644 index 00000000..a6fd5ed4 Binary files /dev/null and b/assets/img/7-Polkadot/jam-encoding1.png differ diff --git a/assets/img/7-Polkadot/jam-encoding2.png b/assets/img/7-Polkadot/jam-encoding2.png new file mode 100644 index 00000000..a5acc81b Binary files /dev/null and b/assets/img/7-Polkadot/jam-encoding2.png differ diff --git a/assets/img/7-Polkadot/jam-extrinsics.png b/assets/img/7-Polkadot/jam-extrinsics.png new file mode 100644 index 00000000..b37382da Binary files /dev/null and b/assets/img/7-Polkadot/jam-extrinsics.png differ diff --git a/assets/img/7-Polkadot/jam-graypaper-reader.png b/assets/img/7-Polkadot/jam-graypaper-reader.png new file mode 100644 index 00000000..2e9c2617 Binary files /dev/null and b/assets/img/7-Polkadot/jam-graypaper-reader.png differ diff --git a/assets/img/7-Polkadot/jam-knife.png b/assets/img/7-Polkadot/jam-knife.png new file mode 100644 index 00000000..ff8b3b8d Binary files /dev/null and b/assets/img/7-Polkadot/jam-knife.png differ diff --git a/assets/img/7-Polkadot/jam-pvm.png b/assets/img/7-Polkadot/jam-pvm.png new file mode 100644 index 00000000..3e0915f5 Binary files /dev/null and b/assets/img/7-Polkadot/jam-pvm.png differ diff --git a/assets/img/7-Polkadot/jam-state.png b/assets/img/7-Polkadot/jam-state.png new file mode 100644 index 00000000..05ea4849 Binary files /dev/null and b/assets/img/7-Polkadot/jam-state.png differ diff --git a/assets/img/7-Polkadot/jam-stf-deps.png b/assets/img/7-Polkadot/jam-stf-deps.png new file mode 100644 index 00000000..2304a508 Binary files /dev/null and b/assets/img/7-Polkadot/jam-stf-deps.png differ diff --git a/assets/img/7-Polkadot/jam-stf.png b/assets/img/7-Polkadot/jam-stf.png new file mode 100644 index 00000000..fc011e9b Binary files /dev/null and b/assets/img/7-Polkadot/jam-stf.png differ diff --git a/assets/img/7-Polkadot/kusama-logo.svg b/assets/img/7-Polkadot/kusama-logo.svg new file mode 100644 index 00000000..9c7fd451 --- /dev/null +++ b/assets/img/7-Polkadot/kusama-logo.svg @@ -0,0 +1,11 @@ + + kusama-logo-svg + + + + + + + \ No newline at end of file diff --git a/content/polkadot/decisions/img/less-trust-more-truth.svg b/assets/img/7-Polkadot/less-trust-more-truth.svg similarity index 100% rename from content/polkadot/decisions/img/less-trust-more-truth.svg rename to assets/img/7-Polkadot/less-trust-more-truth.svg diff --git a/assets/img/7-Polkadot/locked-balance-example.svg b/assets/img/7-Polkadot/locked-balance-example.svg new file mode 100644 index 00000000..66c55e01 --- /dev/null +++ b/assets/img/7-Polkadot/locked-balance-example.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/img/7-Polkadot/locked-balance.svg b/assets/img/7-Polkadot/locked-balance.svg new file mode 100644 index 00000000..e487c7ff --- /dev/null +++ b/assets/img/7-Polkadot/locked-balance.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/content/polkadot/shared-security/img/network-attack-2.svg b/assets/img/7-Polkadot/network-attack-2.svg similarity index 100% rename from content/polkadot/shared-security/img/network-attack-2.svg rename to assets/img/7-Polkadot/network-attack-2.svg diff --git a/content/polkadot/shared-security/img/network-attack.svg b/assets/img/7-Polkadot/network-attack.svg similarity index 100% rename from content/polkadot/shared-security/img/network-attack.svg rename to assets/img/7-Polkadot/network-attack.svg diff --git a/content/polkadot/shared-security/img/nintendo-console-extreme.png b/assets/img/7-Polkadot/nintendo-console-extreme.png similarity index 100% rename from content/polkadot/shared-security/img/nintendo-console-extreme.png rename to assets/img/7-Polkadot/nintendo-console-extreme.png diff --git a/content/polkadot/shared-security/img/nintendo-game-acala.png b/assets/img/7-Polkadot/nintendo-game-acala.png similarity index 100% rename from content/polkadot/shared-security/img/nintendo-game-acala.png rename to assets/img/7-Polkadot/nintendo-game-acala.png diff --git a/content/polkadot/shared-security/img/nintendo-game-astar.png b/assets/img/7-Polkadot/nintendo-game-astar.png similarity index 100% rename from content/polkadot/shared-security/img/nintendo-game-astar.png rename to assets/img/7-Polkadot/nintendo-game-astar.png diff --git a/content/polkadot/shared-security/img/nintendo-game-moonbeam.png b/assets/img/7-Polkadot/nintendo-game-moonbeam.png similarity index 100% rename from content/polkadot/shared-security/img/nintendo-game-moonbeam.png rename to assets/img/7-Polkadot/nintendo-game-moonbeam.png diff --git a/content/polkadot/shared-security/img/nintendo-game-polkadot.png b/assets/img/7-Polkadot/nintendo-game-polkadot.png similarity index 100% rename from content/polkadot/shared-security/img/nintendo-game-polkadot.png rename to assets/img/7-Polkadot/nintendo-game-polkadot.png diff --git a/content/polkadot/shared-security/img/parachain-finalization.svg b/assets/img/7-Polkadot/parachain-finalization.svg similarity index 100% rename from content/polkadot/shared-security/img/parachain-finalization.svg rename to assets/img/7-Polkadot/parachain-finalization.svg diff --git a/content/polkadot/shared-security/img/parachain-validation-multiple.svg b/assets/img/7-Polkadot/parachain-validation-multiple.svg similarity index 100% rename from content/polkadot/shared-security/img/parachain-validation-multiple.svg rename to assets/img/7-Polkadot/parachain-validation-multiple.svg diff --git a/content/polkadot/shared-security/img/parachain-validation.svg b/assets/img/7-Polkadot/parachain-validation.svg similarity index 100% rename from content/polkadot/shared-security/img/parachain-validation.svg rename to assets/img/7-Polkadot/parachain-validation.svg diff --git a/content/polkadot/shared-security/img/parachain-validators-colored.svg b/assets/img/7-Polkadot/parachain-validators-colored.svg similarity index 100% rename from content/polkadot/shared-security/img/parachain-validators-colored.svg rename to assets/img/7-Polkadot/parachain-validators-colored.svg diff --git a/content/polkadot/shared-security/img/parachain-validators.svg b/assets/img/7-Polkadot/parachain-validators.svg similarity index 100% rename from content/polkadot/shared-security/img/parachain-validators.svg rename to assets/img/7-Polkadot/parachain-validators.svg diff --git a/assets/img/7-Polkadot/pvm-formula.png b/assets/img/7-Polkadot/pvm-formula.png new file mode 100644 index 00000000..df878139 Binary files /dev/null and b/assets/img/7-Polkadot/pvm-formula.png differ diff --git a/assets/img/7-Polkadot/reserved-balance-example.svg b/assets/img/7-Polkadot/reserved-balance-example.svg new file mode 100644 index 00000000..e370b561 --- /dev/null +++ b/assets/img/7-Polkadot/reserved-balance-example.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/img/7-Polkadot/reserved-balance.svg b/assets/img/7-Polkadot/reserved-balance.svg new file mode 100644 index 00000000..9c264db1 --- /dev/null +++ b/assets/img/7-Polkadot/reserved-balance.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/assets/img/7-Polkadot/rococo.png b/assets/img/7-Polkadot/rococo.png new file mode 100644 index 00000000..59956390 Binary files /dev/null and b/assets/img/7-Polkadot/rococo.png differ diff --git a/content/polkadot/shared-security/img/small-market-cap.svg b/assets/img/7-Polkadot/small-market-cap.svg similarity index 100% rename from content/polkadot/shared-security/img/small-market-cap.svg rename to assets/img/7-Polkadot/small-market-cap.svg diff --git a/content/polkadot/shared-security/img/speculative-graph.svg b/assets/img/7-Polkadot/speculative-graph.svg similarity index 100% rename from content/polkadot/shared-security/img/speculative-graph.svg rename to assets/img/7-Polkadot/speculative-graph.svg diff --git a/content/polkadot/shared-security/img/spongebob.jpg b/assets/img/7-Polkadot/spongebob.jpg similarity index 100% rename from content/polkadot/shared-security/img/spongebob.jpg rename to assets/img/7-Polkadot/spongebob.jpg diff --git a/assets/img/7-Polkadot/staking-rate.png b/assets/img/7-Polkadot/staking-rate.png new file mode 100644 index 00000000..f102d315 Binary files /dev/null and b/assets/img/7-Polkadot/staking-rate.png differ diff --git a/assets/img/7-Polkadot/substrate-abstract.png b/assets/img/7-Polkadot/substrate-abstract.png new file mode 100644 index 00000000..e0c73fc0 Binary files /dev/null and b/assets/img/7-Polkadot/substrate-abstract.png differ diff --git a/assets/img/7-Polkadot/treasury.png b/assets/img/7-Polkadot/treasury.png new file mode 100644 index 00000000..b7b42298 Binary files /dev/null and b/assets/img/7-Polkadot/treasury.png differ diff --git a/content/polkadot/decisions/img/trilemma.svg b/assets/img/7-Polkadot/trilemma.svg similarity index 100% rename from content/polkadot/decisions/img/trilemma.svg rename to assets/img/7-Polkadot/trilemma.svg diff --git a/assets/img/7-Polkadot/vmp.svg b/assets/img/7-Polkadot/vmp.svg new file mode 100644 index 00000000..07bcc151 --- /dev/null +++ b/assets/img/7-Polkadot/vmp.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/content/polkadot/decisions/img/xcm-stack.svg b/assets/img/7-Polkadot/xcm-stack.svg similarity index 100% rename from content/polkadot/decisions/img/xcm-stack.svg rename to assets/img/7-Polkadot/xcm-stack.svg diff --git a/content/polkadot/decisions/img/xcmp-2.svg b/assets/img/7-Polkadot/xcmp-2.svg similarity index 100% rename from content/polkadot/decisions/img/xcmp-2.svg rename to assets/img/7-Polkadot/xcmp-2.svg diff --git a/content/polkadot/decisions/img/xcmp-finalization.svg b/assets/img/7-Polkadot/xcmp-finalization.svg similarity index 100% rename from content/polkadot/decisions/img/xcmp-finalization.svg rename to assets/img/7-Polkadot/xcmp-finalization.svg diff --git a/assets/img/7-Polkadot/xcmp.svg b/assets/img/7-Polkadot/xcmp.svg new file mode 100644 index 00000000..963cf4c3 --- /dev/null +++ b/assets/img/7-Polkadot/xcmp.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/content/polkadot/zombienet/img/zombienet-env-vars.png b/assets/img/7-Polkadot/zombienet/zombienet-env-vars.png similarity index 100% rename from content/polkadot/zombienet/img/zombienet-env-vars.png rename to assets/img/7-Polkadot/zombienet/zombienet-env-vars.png diff --git a/assets/img/README.md b/assets/img/README.md new file mode 100644 index 00000000..0565c773 --- /dev/null +++ b/assets/img/README.md @@ -0,0 +1,5 @@ +# PBA Graphical Assets + +- Please use any assets that live in any Parity of Web3 websites if possible first. +- ALWAYS cite where you sourced an image you use! Put a note in these folders or the image title, and use that directly in your materials (citation specifics TBA, for now a link only is OK) +- Peruse existing assets before requesting or adding another! diff --git a/assets/ink!ubator_PBA6_2025.pdf b/assets/ink!ubator_PBA6_2025.pdf new file mode 100644 index 00000000..af0b1956 Binary files /dev/null and b/assets/ink!ubator_PBA6_2025.pdf differ diff --git a/assets/opengov_pba_lucerne_2025.pdf b/assets/opengov_pba_lucerne_2025.pdf new file mode 100644 index 00000000..656544ba Binary files /dev/null and b/assets/opengov_pba_lucerne_2025.pdf differ diff --git a/assets/opengov_pba_lucerne_2025_fin.pdf b/assets/opengov_pba_lucerne_2025_fin.pdf new file mode 100644 index 00000000..b1577192 Binary files /dev/null and b/assets/opengov_pba_lucerne_2025_fin.pdf differ diff --git a/assets/plugin/chart/chart.js b/assets/plugin/chart/chart.js new file mode 100644 index 00000000..62870bb1 --- /dev/null +++ b/assets/plugin/chart/chart.js @@ -0,0 +1,207 @@ +/***************************************************************** + ** Author: Asvin Goel, goel@telematique.eu + ** Fixed for Reveal4: kotborealis@awooo.ru + ** + ** A plugin for reveal.js allowing to integrate Chart.js + ** + ** Version: 1.3.1 + ** + ** License: MIT license (see LICENSE.md) + ** + ******************************************************************/ + +/** + * Reveal Plugin + * https://revealjs.com/creating-plugins/ + */ +window.RevealChart = window.RevealChart || { + id: "RevealChart", + init: function(deck) { + initChart(deck); + }, + update: function(canvas, idx, data) { + update(canvas, idx, data); + }, +}; + +const initChart = function(Reveal) { + function parseJSON(str) { + var json; + try { + json = JSON.parse(str); + } catch (e) { + return null; + } + return json; + } + + /* + * Recursively merge properties of two objects + */ + function mergeRecursive(obj1, obj2) { + for (var p in obj2) { + try { + // Property in destination object set; update its value. + if (obj1[p] !== null && typeof obj1[p] === "object" && typeof obj2[p] === "object") { + obj1[p] = mergeRecursive(obj1[p], obj2[p]); + } else { + obj1[p] = obj2[p]; + } + } catch (e) { + // Property in destination object not set; create it and set its value. + obj1[p] = obj2[p]; + } + } + + return obj1; + } + + function createChart(canvas, CSV, comments) { + canvas.chart = null; + var ctx = canvas.getContext("2d"); + var chartOptions = { responsive: true, maintainAspectRatio: false }; + var chartData = { labels: null, datasets: [] }; + if (comments !== null) { + for (var j = 0; j < comments.length; j++) { + comments[j] = comments[j].replace(//, ""); + var config = parseJSON(comments[j]); + if (config) { + if (config.data) { + mergeRecursive(chartData, config.data); + } + if (config.options) { + mergeRecursive(chartOptions, config.options); + } + } + } + } + + var lines = CSV.split("\n").filter(function(v) { + return v !== ""; + }); + // if labels are not defined, get them from first line + if (chartData.labels === null && lines.length > 0) { + chartData.labels = lines[0].split(","); + chartData.labels.shift(); + lines.shift(); + } + // get data values + for (var j = 0; j < lines.length; j++) { + if (chartData.datasets.length <= j) chartData.datasets[j] = {}; + chartData.datasets[j].data = lines[j].split(","); // .filter(function(v){return v!==''}); + chartData.datasets[j].label = chartData.datasets[j].data[0]; + chartData.datasets[j].data.shift(); + for (var k = 0; k < chartData.datasets[j].data.length; k++) { + chartData.datasets[j].data[k] = Number(chartData.datasets[j].data[k]); + } + } + + // add chart options + var config = chartConfig[canvas.getAttribute("data-chart")]; + if (config) { + for (var j = 0; j < chartData.datasets.length; j++) { + for (var attrname in config) { + if (!chartData.datasets[j][attrname]) { + chartData.datasets[j][attrname] = config[attrname][j % config[attrname].length]; + } + } + } + } + + canvas.chart = new Chart(ctx, { type: canvas.getAttribute("data-chart"), data: chartData, options: chartOptions }); + } + + function updateChart(canvas, idx, data) { + canvas.chart.data.datasets[idx].data = data; + recreateChart(canvas); + } + + var initializeCharts = function() { + // Get all canvases + var canvases = document.querySelectorAll("canvas"); + for (var i = 0; i < canvases.length; i++) { + // check if canvas has data-chart attribute + if (canvases[i].hasAttribute("data-chart")) { + var CSV = canvases[i].innerHTML.trim(); + var comments = CSV.match(//g); + CSV = CSV.replace(//g, "").replace(/^\s*\n/gm, ""); + if (!canvases[i].hasAttribute("data-chart-src")) { + createChart(canvases[i], CSV, comments); + } else { + var canvas = canvases[i]; + var xhr = new XMLHttpRequest(); + xhr.onload = function() { + if (xhr.readyState === 4) { + createChart(canvas, xhr.responseText, comments); + } else { + console.warn( + "Failed to get file " + canvas.getAttribute("data-chart-src") + ". ReadyState: " + xhr.readyState + + ", Status: " + xhr.status, + ); + } + }; + + xhr.open("GET", canvas.getAttribute("data-chart-src"), false); + try { + xhr.send(); + } catch (error) { + console.warn( + "Failed to get file " + canvas.getAttribute("data-chart-src") + + ". Make sure that the presentation and the file are served by a HTTP server and the file can be found there. " + + error, + ); + } + } + } + } + }; + + function recreateChart(canvas) { + // clear data to redraw animation + var data = canvas.chart.data.datasets; + canvas.chart.data.datasets = []; + canvas.chart.update(); + canvas.style.visibility = "hidden"; + setTimeout( + function(canvas, data) { + canvas.chart.data.datasets = data; + canvas.style.visibility = "visible"; + canvas.chart.update(); + }, + 500, + canvas, + data, + ); // wait for slide transition to re-add data and animation + /* + var config = canvas.chart.config; + canvas.chart.destroy(); + setTimeout( function() { canvas.chart = new Chart(canvas, config);}, 500); // wait for slide transition + */ + } + + // check if chart option is given or not + var chartConfig = Reveal.getConfig().chart || {}; + + // set global chart options + var config = chartConfig.defaults; + if (config) { + mergeRecursive(Chart.defaults, config); + } + + Reveal.addEventListener("ready", function() { + initializeCharts(); + Reveal.addEventListener("slidechanged", function() { + var canvases = Reveal.getCurrentSlide().querySelectorAll("canvas[data-chart]"); + for (var i = 0; i < canvases.length; i++) { + if (canvases[i].chart && canvases[i].chart.config.options.animation !== false) { + recreateChart(canvases[i]); + } + } + }); + }); + + this.update = updateChart; + + return this; +}; diff --git a/assets/plugin/chart/chart.min.js b/assets/plugin/chart/chart.min.js new file mode 100644 index 00000000..42006258 --- /dev/null +++ b/assets/plugin/chart/chart.min.js @@ -0,0 +1,8754 @@ +/*! + * Chart.js v3.9.0 + * https://www.chartjs.org + * (c) 2022 Chart.js Contributors + * Released under the MIT License + */ +!function(t, e) { + "object" == typeof exports && "undefined" != typeof module + ? module.exports = e() + : "function" == typeof define && define.amd + ? define(e) + : (t = "undefined" != typeof globalThis ? globalThis : t || self).Chart = e(); +}(this, function() { + "use strict"; + function t() {} + const e = function() { + let t = 0; + return function() { + return t++; + }; + }(); + function i(t) { + return null == t; + } + function s(t) { + if (Array.isArray && Array.isArray(t)) return !0; + const e = Object.prototype.toString.call(t); + return "[object" === e.slice(0, 7) && "Array]" === e.slice(-6); + } + function n(t) { + return null !== t && "[object Object]" === Object.prototype.toString.call(t); + } + const o = t => ("number" == typeof t || t instanceof Number) && isFinite(+t); + function a(t, e) { + return o(t) ? t : e; + } + function r(t, e) { + return void 0 === t ? e : t; + } + const l = (t, e) => "string" == typeof t && t.endsWith("%") ? parseFloat(t) / 100 : t / e, + h = (t, e) => "string" == typeof t && t.endsWith("%") ? parseFloat(t) / 100 * e : +t; + function c(t, e, i) { + if (t && "function" == typeof t.call) return t.apply(i, e); + } + function d(t, e, i, o) { + let a, r, l; + if (s(t)) { + if (r = t.length, o) for (a = r - 1; a >= 0; a--) e.call(i, t[a], a); + else for (a = 0; a < r; a++) e.call(i, t[a], a); + } else if (n(t)) for (l = Object.keys(t), r = l.length, a = 0; a < r; a++) e.call(i, t[l[a]], l[a]); + } + function u(t, e) { + let i, s, n, o; + if (!t || !e || t.length !== e.length) return !1; + for (i = 0, s = t.length; i < s; ++i) { + if (n = t[i], o = e[i], n.datasetIndex !== o.datasetIndex || n.index !== o.index) return !1; + } + return !0; + } + function f(t) { + if (s(t)) return t.map(f); + if (n(t)) { + const e = Object.create(null), i = Object.keys(t), s = i.length; + let n = 0; + for (; n < s; ++n) e[i[n]] = f(t[i[n]]); + return e; + } + return t; + } + function g(t) { + return -1 === ["__proto__", "prototype", "constructor"].indexOf(t); + } + function p(t, e, i, s) { + if (!g(t)) return; + const o = e[t], a = i[t]; + n(o) && n(a) ? m(o, a, s) : e[t] = f(a); + } + function m(t, e, i) { + const o = s(e) ? e : [e], a = o.length; + if (!n(t)) return t; + const r = (i = i || {}).merger || p; + for (let s = 0; s < a; ++s) { + if (!n(e = o[s])) continue; + const a = Object.keys(e); + for (let s = 0, n = a.length; s < n; ++s) r(a[s], t, e, i); + } + return t; + } + function b(t, e) { + return m(t, e, { merger: x }); + } + function x(t, e, i) { + if (!g(t)) return; + const s = e[t], o = i[t]; + n(s) && n(o) ? b(s, o) : Object.prototype.hasOwnProperty.call(e, t) || (e[t] = f(o)); + } + const _ = { "": t => t, x: t => t.x, y: t => t.y }; + function y(t, e) { + const i = _[e] || (_[e] = function(t) { + const e = v(t); + return t => { + for (const i of e) { + if ("" === i) break; + t = t && t[i]; + } + return t; + }; + }(e)); + return i(t); + } + function v(t) { + const e = t.split("."), i = []; + let s = ""; + for (const t of e) s += t, s.endsWith("\\") ? s = s.slice(0, -1) + "." : (i.push(s), s = ""); + return i; + } + function w(t) { + return t.charAt(0).toUpperCase() + t.slice(1); + } + const M = t => void 0 !== t, + k = t => "function" == typeof t, + S = (t, e) => { + if (t.size !== e.size) return !1; + for (const i of t) if (!e.has(i)) return !1; + return !0; + }; + function P(t) { + return "mouseup" === t.type || "click" === t.type || "contextmenu" === t.type; + } + const D = Math.PI, + O = 2 * D, + C = O + D, + A = Number.POSITIVE_INFINITY, + T = D / 180, + L = D / 2, + E = D / 4, + R = 2 * D / 3, + I = Math.log10, + z = Math.sign; + function F(t) { + const e = Math.round(t); + t = N(t, e, t / 1e3) ? e : t; + const i = Math.pow(10, Math.floor(I(t))), s = t / i; + return (s <= 1 ? 1 : s <= 2 ? 2 : s <= 5 ? 5 : 10) * i; + } + function V(t) { + const e = [], i = Math.sqrt(t); + let s; + for (s = 1; s < i; s++) t % s == 0 && (e.push(s), e.push(t / s)); + return i === (0 | i) && e.push(i), e.sort((t, e) => t - e).pop(), e; + } + function B(t) { + return !isNaN(parseFloat(t)) && isFinite(t); + } + function N(t, e, i) { + return Math.abs(t - e) < i; + } + function W(t, e) { + const i = Math.round(t); + return i - e <= t && i + e >= t; + } + function j(t, e, i) { + let s, n, o; + for (s = 0, n = t.length; s < n; s++) { + o = t[s][i], isNaN(o) || (e.min = Math.min(e.min, o), e.max = Math.max(e.max, o)); + } + } + function H(t) { + return t * (D / 180); + } + function $(t) { + return t * (180 / D); + } + function Y(t) { + if (!o(t)) return; + let e = 1, i = 0; + for (; Math.round(t * e) / e !== t;) e *= 10, i++; + return i; + } + function U(t, e) { + const i = e.x - t.x, s = e.y - t.y, n = Math.sqrt(i * i + s * s); + let o = Math.atan2(s, i); + return o < -.5 * D && (o += O), { angle: o, distance: n }; + } + function X(t, e) { + return Math.sqrt(Math.pow(e.x - t.x, 2) + Math.pow(e.y - t.y, 2)); + } + function q(t, e) { + return (t - e + C) % O - D; + } + function K(t) { + return (t % O + O) % O; + } + function G(t, e, i, s) { + const n = K(t), o = K(e), a = K(i), r = K(o - n), l = K(a - n), h = K(n - o), c = K(n - a); + return n === o || n === a || s && o === a || r > l && h < c; + } + function Z(t, e, i) { + return Math.max(e, Math.min(i, t)); + } + function J(t) { + return Z(t, -32768, 32767); + } + function Q(t, e, i, s = 1e-6) { + return t >= Math.min(e, i) - s && t <= Math.max(e, i) + s; + } + function tt(t, e, i) { + i = i || (i => t[i] < e); + let s, n = t.length - 1, o = 0; + for (; n - o > 1;) s = o + n >> 1, i(s) ? o = s : n = s; + return { lo: o, hi: n }; + } + const et = (t, e, i, s) => tt(t, i, s ? s => t[s][e] <= i : s => t[s][e] < i), + it = (t, e, i) => tt(t, i, s => t[s][e] >= i); + function st(t, e, i) { + let s = 0, n = t.length; + for (; s < n && t[s] < e;) s++; + for (; n > s && t[n - 1] > i;) n--; + return s > 0 || n < t.length ? t.slice(s, n) : t; + } + const nt = ["push", "pop", "shift", "splice", "unshift"]; + function ot(t, e) { + t._chartjs + ? t._chartjs.listeners.push(e) + : (Object.defineProperty(t, "_chartjs", { configurable: !0, enumerable: !1, value: { listeners: [e] } }), + nt.forEach(e => { + const i = "_onData" + w(e), s = t[e]; + Object.defineProperty(t, e, { + configurable: !0, + enumerable: !1, + value(...e) { + const n = s.apply(this, e); + return t._chartjs.listeners.forEach(t => { + "function" == typeof t[i] && t[i](...e); + }), + n; + }, + }); + })); + } + function at(t, e) { + const i = t._chartjs; + if (!i) return; + const s = i.listeners, n = s.indexOf(e); + -1 !== n && s.splice(n, 1), + s.length > 0 || (nt.forEach(e => { + delete t[e]; + }), + delete t._chartjs); + } + function rt(t) { + const e = new Set(); + let i, s; + for (i = 0, s = t.length; i < s; ++i) e.add(t[i]); + return e.size === s ? t : Array.from(e); + } + const lt = "undefined" == typeof window + ? function(t) { + return t(); + } + : window.requestAnimationFrame; + function ht(t, e, i) { + const s = i || (t => Array.prototype.slice.call(t)); + let n = !1, o = []; + return function(...i) { + o = s(i), + n || (n = !0, + lt.call(window, () => { + n = !1, t.apply(e, o); + })); + }; + } + function ct(t, e) { + let i; + return function(...s) { + return e ? (clearTimeout(i), i = setTimeout(t, e, s)) : t.apply(this, s), e; + }; + } + const dt = t => "start" === t ? "left" : "end" === t ? "right" : "center", + ut = (t, e, i) => "start" === t ? e : "end" === t ? i : (e + i) / 2, + ft = (t, e, i, s) => t === (s ? "left" : "right") ? i : "center" === t ? (e + i) / 2 : e; + function gt(t, e, i) { + const s = e.length; + let n = 0, o = s; + if (t._sorted) { + const { iScale: a, _parsed: r } = t, + l = a.axis, + { min: h, max: c, minDefined: d, maxDefined: u } = a.getUserBounds(); + d && (n = Z(Math.min(et(r, a.axis, h).lo, i ? s : et(e, l, a.getPixelForValue(h)).lo), 0, s - 1)), + o = u + ? Z(Math.max(et(r, a.axis, c, !0).hi + 1, i ? 0 : et(e, l, a.getPixelForValue(c), !0).hi + 1), n, s) - n + : s - n; + } + return { start: n, count: o }; + } + function pt(t) { + const { xScale: e, yScale: i, _scaleRanges: s } = t, n = { xmin: e.min, xmax: e.max, ymin: i.min, ymax: i.max }; + if (!s) return t._scaleRanges = n, !0; + const o = s.xmin !== e.min || s.xmax !== e.max || s.ymin !== i.min || s.ymax !== i.max; + return Object.assign(s, n), o; + } + var mt = new class { + constructor() { + this._request = null, this._charts = new Map(), this._running = !1, this._lastDate = void 0; + } + _notify(t, e, i, s) { + const n = e.listeners[s], o = e.duration; + n.forEach(s => s({ chart: t, initial: e.initial, numSteps: o, currentStep: Math.min(i - e.start, o) })); + } + _refresh() { + this._request || (this._running = !0, + this._request = lt.call(window, () => { + this._update(), this._request = null, this._running && this._refresh(); + })); + } + _update(t = Date.now()) { + let e = 0; + this._charts.forEach((i, s) => { + if (!i.running || !i.items.length) return; + const n = i.items; + let o, a = n.length - 1, r = !1; + for (; a >= 0; --a) { + o = n[a], + o._active + ? (o._total > i.duration && (i.duration = o._total), o.tick(t), r = !0) + : (n[a] = n[n.length - 1], n.pop()); + } + r && (s.draw(), this._notify(s, i, t, "progress")), + n.length || (i.running = !1, this._notify(s, i, t, "complete"), i.initial = !1), + e += n.length; + }), + this._lastDate = t, + 0 === e && (this._running = !1); + } + _getAnims(t) { + const e = this._charts; + let i = e.get(t); + return i || (i = { running: !1, initial: !0, items: [], listeners: { complete: [], progress: [] } }, e.set(t, i)), + i; + } + listen(t, e, i) { + this._getAnims(t).listeners[e].push(i); + } + add(t, e) { + e && e.length && this._getAnims(t).items.push(...e); + } + has(t) { + return this._getAnims(t).items.length > 0; + } + start(t) { + const e = this._charts.get(t); + e + && (e.running = !0, + e.start = Date.now(), + e.duration = e.items.reduce((t, e) => Math.max(t, e._duration), 0), + this._refresh()); + } + running(t) { + if (!this._running) return !1; + const e = this._charts.get(t); + return !!(e && e.running && e.items.length); + } + stop(t) { + const e = this._charts.get(t); + if (!e || !e.items.length) return; + const i = e.items; + let s = i.length - 1; + for (; s >= 0; --s) i[s].cancel(); + e.items = [], this._notify(t, e, Date.now(), "complete"); + } + remove(t) { + return this._charts.delete(t); + } + }(); + /*! + * @kurkle/color v0.2.1 + * https://github.com/kurkle/color#readme + * (c) 2022 Jukka Kurkela + * Released under the MIT License + */ function bt(t) { + return t + .5 | 0; + } + const xt = (t, e, i) => Math.max(Math.min(t, i), e); + function _t(t) { + return xt(bt(2.55 * t), 0, 255); + } + function yt(t) { + return xt(bt(255 * t), 0, 255); + } + function vt(t) { + return xt(bt(t / 2.55) / 100, 0, 1); + } + function wt(t) { + return xt(bt(100 * t), 0, 100); + } + const Mt = { + 0: 0, + 1: 1, + 2: 2, + 3: 3, + 4: 4, + 5: 5, + 6: 6, + 7: 7, + 8: 8, + 9: 9, + A: 10, + B: 11, + C: 12, + D: 13, + E: 14, + F: 15, + a: 10, + b: 11, + c: 12, + d: 13, + e: 14, + f: 15, + }, + kt = [..."0123456789ABCDEF"], + St = t => kt[15 & t], + Pt = t => kt[(240 & t) >> 4] + kt[15 & t], + Dt = t => (240 & t) >> 4 == (15 & t); + function Ot(t) { + var e = (t => Dt(t.r) && Dt(t.g) && Dt(t.b) && Dt(t.a))(t) ? St : Pt; + return t ? "#" + e(t.r) + e(t.g) + e(t.b) + ((t, e) => t < 255 ? e(t) : "")(t.a, e) : void 0; + } + const Ct = + /^(hsla?|hwb|hsv)\(\s*([-+.e\d]+)(?:deg)?[\s,]+([-+.e\d]+)%[\s,]+([-+.e\d]+)%(?:[\s,]+([-+.e\d]+)(%)?)?\s*\)$/; + function At(t, e, i) { + const s = e * Math.min(i, 1 - i), n = (e, n = (e + t / 30) % 12) => i - s * Math.max(Math.min(n - 3, 9 - n, 1), -1); + return [n(0), n(8), n(4)]; + } + function Tt(t, e, i) { + const s = (s, n = (s + t / 60) % 6) => i - i * e * Math.max(Math.min(n, 4 - n, 1), 0); + return [s(5), s(3), s(1)]; + } + function Lt(t, e, i) { + const s = At(t, 1, .5); + let n; + for (e + i > 1 && (n = 1 / (e + i), e *= n, i *= n), n = 0; n < 3; n++) s[n] *= 1 - e - i, s[n] += e; + return s; + } + function Et(t) { + const e = t.r / 255, i = t.g / 255, s = t.b / 255, n = Math.max(e, i, s), o = Math.min(e, i, s), a = (n + o) / 2; + let r, l, h; + return n !== o && (h = n - o, + l = a > .5 ? h / (2 - n - o) : h / (n + o), + r = function(t, e, i, s, n) { + return t === n ? (e - i) / s + (e < i ? 6 : 0) : e === n ? (i - t) / s + 2 : (t - e) / s + 4; + }(e, i, s, h, n), + r = 60 * r + .5), + [0 | r, l || 0, a]; + } + function Rt(t, e, i, s) { + return (Array.isArray(e) ? t(e[0], e[1], e[2]) : t(e, i, s)).map(yt); + } + function It(t, e, i) { + return Rt(At, t, e, i); + } + function zt(t) { + return (t % 360 + 360) % 360; + } + function Ft(t) { + const e = Ct.exec(t); + let i, s = 255; + if (!e) return; + e[5] !== i && (s = e[6] ? _t(+e[5]) : yt(+e[5])); + const n = zt(+e[2]), o = +e[3] / 100, a = +e[4] / 100; + return i = "hwb" === e[1] + ? function(t, e, i) { + return Rt(Lt, t, e, i); + }(n, o, a) + : "hsv" === e[1] + ? function(t, e, i) { + return Rt(Tt, t, e, i); + }(n, o, a) + : It(n, o, a), + { r: i[0], g: i[1], b: i[2], a: s }; + } + const Vt = { + x: "dark", + Z: "light", + Y: "re", + X: "blu", + W: "gr", + V: "medium", + U: "slate", + A: "ee", + T: "ol", + S: "or", + B: "ra", + C: "lateg", + D: "ights", + R: "in", + Q: "turquois", + E: "hi", + P: "ro", + O: "al", + N: "le", + M: "de", + L: "yello", + F: "en", + K: "ch", + G: "arks", + H: "ea", + I: "ightg", + J: "wh", + }, + Bt = { + OiceXe: "f0f8ff", + antiquewEte: "faebd7", + aqua: "ffff", + aquamarRe: "7fffd4", + azuY: "f0ffff", + beige: "f5f5dc", + bisque: "ffe4c4", + black: "0", + blanKedOmond: "ffebcd", + Xe: "ff", + XeviTet: "8a2be2", + bPwn: "a52a2a", + burlywood: "deb887", + caMtXe: "5f9ea0", + KartYuse: "7fff00", + KocTate: "d2691e", + cSO: "ff7f50", + cSnflowerXe: "6495ed", + cSnsilk: "fff8dc", + crimson: "dc143c", + cyan: "ffff", + xXe: "8b", + xcyan: "8b8b", + xgTMnPd: "b8860b", + xWay: "a9a9a9", + xgYF: "6400", + xgYy: "a9a9a9", + xkhaki: "bdb76b", + xmagFta: "8b008b", + xTivegYF: "556b2f", + xSange: "ff8c00", + xScEd: "9932cc", + xYd: "8b0000", + xsOmon: "e9967a", + xsHgYF: "8fbc8f", + xUXe: "483d8b", + xUWay: "2f4f4f", + xUgYy: "2f4f4f", + xQe: "ced1", + xviTet: "9400d3", + dAppRk: "ff1493", + dApskyXe: "bfff", + dimWay: "696969", + dimgYy: "696969", + dodgerXe: "1e90ff", + fiYbrick: "b22222", + flSOwEte: "fffaf0", + foYstWAn: "228b22", + fuKsia: "ff00ff", + gaRsbSo: "dcdcdc", + ghostwEte: "f8f8ff", + gTd: "ffd700", + gTMnPd: "daa520", + Way: "808080", + gYF: "8000", + gYFLw: "adff2f", + gYy: "808080", + honeyMw: "f0fff0", + hotpRk: "ff69b4", + RdianYd: "cd5c5c", + Rdigo: "4b0082", + ivSy: "fffff0", + khaki: "f0e68c", + lavFMr: "e6e6fa", + lavFMrXsh: "fff0f5", + lawngYF: "7cfc00", + NmoncEffon: "fffacd", + ZXe: "add8e6", + ZcSO: "f08080", + Zcyan: "e0ffff", + ZgTMnPdLw: "fafad2", + ZWay: "d3d3d3", + ZgYF: "90ee90", + ZgYy: "d3d3d3", + ZpRk: "ffb6c1", + ZsOmon: "ffa07a", + ZsHgYF: "20b2aa", + ZskyXe: "87cefa", + ZUWay: "778899", + ZUgYy: "778899", + ZstAlXe: "b0c4de", + ZLw: "ffffe0", + lime: "ff00", + limegYF: "32cd32", + lRF: "faf0e6", + magFta: "ff00ff", + maPon: "800000", + VaquamarRe: "66cdaa", + VXe: "cd", + VScEd: "ba55d3", + VpurpN: "9370db", + VsHgYF: "3cb371", + VUXe: "7b68ee", + VsprRggYF: "fa9a", + VQe: "48d1cc", + VviTetYd: "c71585", + midnightXe: "191970", + mRtcYam: "f5fffa", + mistyPse: "ffe4e1", + moccasR: "ffe4b5", + navajowEte: "ffdead", + navy: "80", + Tdlace: "fdf5e6", + Tive: "808000", + TivedBb: "6b8e23", + Sange: "ffa500", + SangeYd: "ff4500", + ScEd: "da70d6", + pOegTMnPd: "eee8aa", + pOegYF: "98fb98", + pOeQe: "afeeee", + pOeviTetYd: "db7093", + papayawEp: "ffefd5", + pHKpuff: "ffdab9", + peru: "cd853f", + pRk: "ffc0cb", + plum: "dda0dd", + powMrXe: "b0e0e6", + purpN: "800080", + YbeccapurpN: "663399", + Yd: "ff0000", + Psybrown: "bc8f8f", + PyOXe: "4169e1", + saddNbPwn: "8b4513", + sOmon: "fa8072", + sandybPwn: "f4a460", + sHgYF: "2e8b57", + sHshell: "fff5ee", + siFna: "a0522d", + silver: "c0c0c0", + skyXe: "87ceeb", + UXe: "6a5acd", + UWay: "708090", + UgYy: "708090", + snow: "fffafa", + sprRggYF: "ff7f", + stAlXe: "4682b4", + tan: "d2b48c", + teO: "8080", + tEstN: "d8bfd8", + tomato: "ff6347", + Qe: "40e0d0", + viTet: "ee82ee", + JHt: "f5deb3", + wEte: "ffffff", + wEtesmoke: "f5f5f5", + Lw: "ffff00", + LwgYF: "9acd32", + }; + let Nt; + function Wt(t) { + Nt || (Nt = function() { + const t = {}, e = Object.keys(Bt), i = Object.keys(Vt); + let s, n, o, a, r; + for (s = 0; s < e.length; s++) { + for (a = r = e[s], n = 0; n < i.length; n++) o = i[n], r = r.replace(o, Vt[o]); + o = parseInt(Bt[a], 16), t[r] = [o >> 16 & 255, o >> 8 & 255, 255 & o]; + } + return t; + }(), + Nt.transparent = [0, 0, 0, 0]); + const e = Nt[t.toLowerCase()]; + return e && { r: e[0], g: e[1], b: e[2], a: 4 === e.length ? e[3] : 255 }; + } + const jt = /^rgba?\(\s*([-+.\d]+)(%)?[\s,]+([-+.e\d]+)(%)?[\s,]+([-+.e\d]+)(%)?(?:[\s,/]+([-+.e\d]+)(%)?)?\s*\)$/; + const Ht = t => t <= .0031308 ? 12.92 * t : 1.055 * Math.pow(t, 1 / 2.4) - .055, + $t = t => t <= .04045 ? t / 12.92 : Math.pow((t + .055) / 1.055, 2.4); + function Yt(t, e, i) { + if (t) { + let s = Et(t); + s[e] = Math.max(0, Math.min(s[e] + s[e] * i, 0 === e ? 360 : 1)), s = It(s), t.r = s[0], t.g = s[1], t.b = s[2]; + } + } + function Ut(t, e) { + return t ? Object.assign(e || {}, t) : t; + } + function Xt(t) { + var e = { r: 0, g: 0, b: 0, a: 255 }; + return Array.isArray(t) + ? t.length >= 3 && (e = { r: t[0], g: t[1], b: t[2], a: 255 }, t.length > 3 && (e.a = yt(t[3]))) + : (e = Ut(t, { r: 0, g: 0, b: 0, a: 1 })).a = yt(e.a), + e; + } + function qt(t) { + return "r" === t.charAt(0) + ? function(t) { + const e = jt.exec(t); + let i, s, n, o = 255; + if (e) { + if (e[7] !== i) { + const t = +e[7]; + o = e[8] ? _t(t) : xt(255 * t, 0, 255); + } + return i = +e[1], + s = +e[3], + n = +e[5], + i = 255 & (e[2] ? _t(i) : xt(i, 0, 255)), + s = 255 & (e[4] ? _t(s) : xt(s, 0, 255)), + n = 255 & (e[6] ? _t(n) : xt(n, 0, 255)), + { r: i, g: s, b: n, a: o }; + } + }(t) + : Ft(t); + } + class Kt { + constructor(t) { + if (t instanceof Kt) return t; + const e = typeof t; + let i; + var s, n, o; + "object" === e ? i = Xt(t) : "string" === e && (o = (s = t).length, + "#" === s[0] + && (4 === o || 5 === o + ? n = { + r: 255 & 17 * Mt[s[1]], + g: 255 & 17 * Mt[s[2]], + b: 255 & 17 * Mt[s[3]], + a: 5 === o ? 17 * Mt[s[4]] : 255, + } + : 7 !== o && 9 !== o + || (n = { + r: Mt[s[1]] << 4 | Mt[s[2]], + g: Mt[s[3]] << 4 | Mt[s[4]], + b: Mt[s[5]] << 4 | Mt[s[6]], + a: 9 === o ? Mt[s[7]] << 4 | Mt[s[8]] : 255, + })), + i = n || Wt(t) || qt(t)), + this._rgb = i, + this._valid = !!i; + } + get valid() { + return this._valid; + } + get rgb() { + var t = Ut(this._rgb); + return t && (t.a = vt(t.a)), t; + } + set rgb(t) { + this._rgb = Xt(t); + } + rgbString() { + return this._valid + ? (t = this._rgb) && (t.a < 255 ? `rgba(${t.r}, ${t.g}, ${t.b}, ${vt(t.a)})` : `rgb(${t.r}, ${t.g}, ${t.b})`) + : void 0; + var t; + } + hexString() { + return this._valid ? Ot(this._rgb) : void 0; + } + hslString() { + return this._valid + ? function(t) { + if (!t) return; + const e = Et(t), i = e[0], s = wt(e[1]), n = wt(e[2]); + return t.a < 255 ? `hsla(${i}, ${s}%, ${n}%, ${vt(t.a)})` : `hsl(${i}, ${s}%, ${n}%)`; + }(this._rgb) + : void 0; + } + mix(t, e) { + if (t) { + const i = this.rgb, s = t.rgb; + let n; + const o = e === n ? .5 : e, + a = 2 * o - 1, + r = i.a - s.a, + l = ((a * r == -1 ? a : (a + r) / (1 + a * r)) + 1) / 2; + n = 1 - l, + i.r = 255 & l * i.r + n * s.r + .5, + i.g = 255 & l * i.g + n * s.g + .5, + i.b = 255 & l * i.b + n * s.b + .5, + i.a = o * i.a + (1 - o) * s.a, + this.rgb = i; + } + return this; + } + interpolate(t, e) { + return t && (this._rgb = function(t, e, i) { + const s = $t(vt(t.r)), n = $t(vt(t.g)), o = $t(vt(t.b)); + return { + r: yt(Ht(s + i * ($t(vt(e.r)) - s))), + g: yt(Ht(n + i * ($t(vt(e.g)) - n))), + b: yt(Ht(o + i * ($t(vt(e.b)) - o))), + a: t.a + i * (e.a - t.a), + }; + }(this._rgb, t._rgb, e)), + this; + } + clone() { + return new Kt(this.rgb); + } + alpha(t) { + return this._rgb.a = yt(t), this; + } + clearer(t) { + return this._rgb.a *= 1 - t, this; + } + greyscale() { + const t = this._rgb, e = bt(.3 * t.r + .59 * t.g + .11 * t.b); + return t.r = t.g = t.b = e, this; + } + opaquer(t) { + return this._rgb.a *= 1 + t, this; + } + negate() { + const t = this._rgb; + return t.r = 255 - t.r, t.g = 255 - t.g, t.b = 255 - t.b, this; + } + lighten(t) { + return Yt(this._rgb, 2, t), this; + } + darken(t) { + return Yt(this._rgb, 2, -t), this; + } + saturate(t) { + return Yt(this._rgb, 1, t), this; + } + desaturate(t) { + return Yt(this._rgb, 1, -t), this; + } + rotate(t) { + return function(t, e) { + var i = Et(t); + i[0] = zt(i[0] + e), i = It(i), t.r = i[0], t.g = i[1], t.b = i[2]; + }(this._rgb, t), + this; + } + } + function Gt(t) { + return new Kt(t); + } + function Zt(t) { + if (t && "object" == typeof t) { + const e = t.toString(); + return "[object CanvasPattern]" === e || "[object CanvasGradient]" === e; + } + return !1; + } + function Jt(t) { + return Zt(t) ? t : Gt(t); + } + function Qt(t) { + return Zt(t) ? t : Gt(t).saturate(.5).darken(.1).hexString(); + } + const te = Object.create(null), ee = Object.create(null); + function ie(t, e) { + if (!e) return t; + const i = e.split("."); + for (let e = 0, s = i.length; e < s; ++e) { + const s = i[e]; + t = t[s] || (t[s] = Object.create(null)); + } + return t; + } + function se(t, e, i) { + return "string" == typeof e ? m(ie(t, e), i) : m(ie(t, ""), e); + } + var ne = new class { + constructor(t) { + this.animation = void 0, + this.backgroundColor = "rgba(0,0,0,0.1)", + this.borderColor = "rgba(0,0,0,0.1)", + this.color = "#666", + this.datasets = {}, + this.devicePixelRatio = t => t.chart.platform.getDevicePixelRatio(), + this.elements = {}, + this.events = ["mousemove", "mouseout", "click", "touchstart", "touchmove"], + this.font = { + family: "'Helvetica Neue', 'Helvetica', 'Arial', sans-serif", + size: 12, + style: "normal", + lineHeight: 1.2, + weight: null, + }, + this.hover = {}, + this.hoverBackgroundColor = (t, e) => Qt(e.backgroundColor), + this.hoverBorderColor = (t, e) => Qt(e.borderColor), + this.hoverColor = (t, e) => Qt(e.color), + this.indexAxis = "x", + this.interaction = { mode: "nearest", intersect: !0, includeInvisible: !1 }, + this.maintainAspectRatio = !0, + this.onHover = null, + this.onClick = null, + this.parsing = !0, + this.plugins = {}, + this.responsive = !0, + this.scale = void 0, + this.scales = {}, + this.showLine = !0, + this.drawActiveElementsOnTop = !0, + this.describe(t); + } + set(t, e) { + return se(this, t, e); + } + get(t) { + return ie(this, t); + } + describe(t, e) { + return se(ee, t, e); + } + override(t, e) { + return se(te, t, e); + } + route(t, e, i, s) { + const o = ie(this, t), a = ie(this, i), l = "_" + e; + Object.defineProperties(o, { + [l]: { value: o[e], writable: !0 }, + [e]: { + enumerable: !0, + get() { + const t = this[l], e = a[s]; + return n(t) ? Object.assign({}, e, t) : r(t, e); + }, + set(t) { + this[l] = t; + }, + }, + }); + } + }({ + _scriptable: t => !t.startsWith("on"), + _indexable: t => "events" !== t, + hover: { _fallback: "interaction" }, + interaction: { _scriptable: !1, _indexable: !1 }, + }); + function oe() { + return "undefined" != typeof window && "undefined" != typeof document; + } + function ae(t) { + let e = t.parentNode; + return e && "[object ShadowRoot]" === e.toString() && (e = e.host), e; + } + function re(t, e, i) { + let s; + return "string" == typeof t + ? (s = parseInt(t, 10), -1 !== t.indexOf("%") && (s = s / 100 * e.parentNode[i])) + : s = t, + s; + } + const le = t => window.getComputedStyle(t, null); + function he(t, e) { + return le(t).getPropertyValue(e); + } + const ce = ["top", "right", "bottom", "left"]; + function de(t, e, i) { + const s = {}; + i = i ? "-" + i : ""; + for (let n = 0; n < 4; n++) { + const o = ce[n]; + s[o] = parseFloat(t[e + "-" + o + i]) || 0; + } + return s.width = s.left + s.right, s.height = s.top + s.bottom, s; + } + function ue(t, e) { + if ("native" in t) return t; + const { canvas: i, currentDevicePixelRatio: s } = e, + n = le(i), + o = "border-box" === n.boxSizing, + a = de(n, "padding"), + r = de(n, "border", "width"), + { x: l, y: h, box: c } = function(t, e) { + const i = t.touches, s = i && i.length ? i[0] : t, { offsetX: n, offsetY: o } = s; + let a, r, l = !1; + if (((t, e, i) => (t > 0 || e > 0) && (!i || !i.shadowRoot))(n, o, t.target)) a = n, r = o; + else { + const t = e.getBoundingClientRect(); + a = s.clientX - t.left, r = s.clientY - t.top, l = !0; + } + return { x: a, y: r, box: l }; + }(t, i), + d = a.left + (c && r.left), + u = a.top + (c && r.top); + let { width: f, height: g } = e; + return o && (f -= a.width + r.width, g -= a.height + r.height), + { x: Math.round((l - d) / f * i.width / s), y: Math.round((h - u) / g * i.height / s) }; + } + const fe = t => Math.round(10 * t) / 10; + function ge(t, e, i, s) { + const n = le(t), + o = de(n, "margin"), + a = re(n.maxWidth, t, "clientWidth") || A, + r = re(n.maxHeight, t, "clientHeight") || A, + l = function(t, e, i) { + let s, n; + if (void 0 === e || void 0 === i) { + const o = ae(t); + if (o) { + const t = o.getBoundingClientRect(), a = le(o), r = de(a, "border", "width"), l = de(a, "padding"); + e = t.width - l.width - r.width, + i = t.height - l.height - r.height, + s = re(a.maxWidth, o, "clientWidth"), + n = re(a.maxHeight, o, "clientHeight"); + } else e = t.clientWidth, i = t.clientHeight; + } + return { width: e, height: i, maxWidth: s || A, maxHeight: n || A }; + }(t, e, i); + let { width: h, height: c } = l; + if ("content-box" === n.boxSizing) { + const t = de(n, "border", "width"), e = de(n, "padding"); + h -= e.width + t.width, c -= e.height + t.height; + } + return h = Math.max(0, h - o.width), + c = Math.max(0, s ? Math.floor(h / s) : c - o.height), + h = fe(Math.min(h, a, l.maxWidth)), + c = fe(Math.min(c, r, l.maxHeight)), + h && !c && (c = fe(h / 2)), + { width: h, height: c }; + } + function pe(t, e, i) { + const s = e || 1, n = Math.floor(t.height * s), o = Math.floor(t.width * s); + t.height = n / s, t.width = o / s; + const a = t.canvas; + return a.style && (i || !a.style.height && !a.style.width) + && (a.style.height = `${t.height}px`, a.style.width = `${t.width}px`), + (t.currentDevicePixelRatio !== s || a.height !== n || a.width !== o) + && (t.currentDevicePixelRatio = s, a.height = n, a.width = o, t.ctx.setTransform(s, 0, 0, s, 0, 0), !0); + } + const me = function() { + let t = !1; + try { + const e = { + get passive() { + return t = !0, !1; + }, + }; + window.addEventListener("test", null, e), window.removeEventListener("test", null, e); + } catch (t) {} + return t; + }(); + function be(t, e) { + const i = he(t, e), s = i && i.match(/^(\d+)(\.\d+)?px$/); + return s ? +s[1] : void 0; + } + function xe(t) { + return !t || i(t.size) || i(t.family) + ? null + : (t.style ? t.style + " " : "") + (t.weight ? t.weight + " " : "") + t.size + "px " + t.family; + } + function _e(t, e, i, s, n) { + let o = e[n]; + return o || (o = e[n] = t.measureText(n).width, i.push(n)), o > s && (s = o), s; + } + function ye(t, e, i, n) { + let o = (n = n || {}).data = n.data || {}, a = n.garbageCollect = n.garbageCollect || []; + n.font !== e && (o = n.data = {}, a = n.garbageCollect = [], n.font = e), t.save(), t.font = e; + let r = 0; + const l = i.length; + let h, c, d, u, f; + for (h = 0; h < l; h++) { + if (u = i[h], null != u && !0 !== s(u)) r = _e(t, o, a, r, u); + else if (s(u)) for (c = 0, d = u.length; c < d; c++) f = u[c], null == f || s(f) || (r = _e(t, o, a, r, f)); + } + t.restore(); + const g = a.length / 2; + if (g > i.length) { + for (h = 0; h < g; h++) delete o[a[h]]; + a.splice(0, g); + } + return r; + } + function ve(t, e, i) { + const s = t.currentDevicePixelRatio, n = 0 !== i ? Math.max(i / 2, .5) : 0; + return Math.round((e - n) * s) / s + n; + } + function we(t, e) { + (e = e || t.getContext("2d")).save(), e.resetTransform(), e.clearRect(0, 0, t.width, t.height), e.restore(); + } + function Me(t, e, i, s) { + ke(t, e, i, s, null); + } + function ke(t, e, i, s, n) { + let o, a, r, l, h, c; + const d = e.pointStyle, u = e.rotation, f = e.radius; + let g = (u || 0) * T; + if ( + d && "object" == typeof d + && (o = d.toString(), "[object HTMLImageElement]" === o || "[object HTMLCanvasElement]" === o) + ) { + return t.save(), + t.translate(i, s), + t.rotate(g), + t.drawImage(d, -d.width / 2, -d.height / 2, d.width, d.height), + void t.restore(); + } + if (!(isNaN(f) || f <= 0)) { + switch (t.beginPath(), d) { + default: + n ? t.ellipse(i, s, n / 2, f, 0, 0, O) : t.arc(i, s, f, 0, O), t.closePath(); + break; + case "triangle": + t.moveTo(i + Math.sin(g) * f, s - Math.cos(g) * f), + g += R, + t.lineTo(i + Math.sin(g) * f, s - Math.cos(g) * f), + g += R, + t.lineTo(i + Math.sin(g) * f, s - Math.cos(g) * f), + t.closePath(); + break; + case "rectRounded": + h = .516 * f, + l = f - h, + a = Math.cos(g + E) * l, + r = Math.sin(g + E) * l, + t.arc(i - a, s - r, h, g - D, g - L), + t.arc(i + r, s - a, h, g - L, g), + t.arc(i + a, s + r, h, g, g + L), + t.arc(i - r, s + a, h, g + L, g + D), + t.closePath(); + break; + case "rect": + if (!u) { + l = Math.SQRT1_2 * f, c = n ? n / 2 : l, t.rect(i - c, s - l, 2 * c, 2 * l); + break; + } + g += E; + case "rectRot": + a = Math.cos(g) * f, + r = Math.sin(g) * f, + t.moveTo(i - a, s - r), + t.lineTo(i + r, s - a), + t.lineTo(i + a, s + r), + t.lineTo(i - r, s + a), + t.closePath(); + break; + case "crossRot": + g += E; + case "cross": + a = Math.cos(g) * f, + r = Math.sin(g) * f, + t.moveTo(i - a, s - r), + t.lineTo(i + a, s + r), + t.moveTo(i + r, s - a), + t.lineTo(i - r, s + a); + break; + case "star": + a = Math.cos(g) * f, + r = Math.sin(g) * f, + t.moveTo(i - a, s - r), + t.lineTo(i + a, s + r), + t.moveTo(i + r, s - a), + t.lineTo(i - r, s + a), + g += E, + a = Math.cos(g) * f, + r = Math.sin(g) * f, + t.moveTo(i - a, s - r), + t.lineTo(i + a, s + r), + t.moveTo(i + r, s - a), + t.lineTo(i - r, s + a); + break; + case "line": + a = n ? n / 2 : Math.cos(g) * f, r = Math.sin(g) * f, t.moveTo(i - a, s - r), t.lineTo(i + a, s + r); + break; + case "dash": + t.moveTo(i, s), t.lineTo(i + Math.cos(g) * f, s + Math.sin(g) * f); + } + t.fill(), e.borderWidth > 0 && t.stroke(); + } + } + function Se(t, e, i) { + return i = i || .5, !e || t && t.x > e.left - i && t.x < e.right + i && t.y > e.top - i && t.y < e.bottom + i; + } + function Pe(t, e) { + t.save(), t.beginPath(), t.rect(e.left, e.top, e.right - e.left, e.bottom - e.top), t.clip(); + } + function De(t) { + t.restore(); + } + function Oe(t, e, i, s, n) { + if (!e) return t.lineTo(i.x, i.y); + if ("middle" === n) { + const s = (e.x + i.x) / 2; + t.lineTo(s, e.y), t.lineTo(s, i.y); + } else "after" === n != !!s ? t.lineTo(e.x, i.y) : t.lineTo(i.x, e.y); + t.lineTo(i.x, i.y); + } + function Ce(t, e, i, s) { + if (!e) return t.lineTo(i.x, i.y); + t.bezierCurveTo(s ? e.cp1x : e.cp2x, s ? e.cp1y : e.cp2y, s ? i.cp2x : i.cp1x, s ? i.cp2y : i.cp1y, i.x, i.y); + } + function Ae(t, e, n, o, a, r = {}) { + const l = s(e) ? e : [e], h = r.strokeWidth > 0 && "" !== r.strokeColor; + let c, d; + for ( + t.save(), + t.font = a.string, + function(t, e) { + e.translation && t.translate(e.translation[0], e.translation[1]); + i(e.rotation) || t.rotate(e.rotation); + e.color && (t.fillStyle = e.color); + e.textAlign && (t.textAlign = e.textAlign); + e.textBaseline && (t.textBaseline = e.textBaseline); + }(t, r), + c = 0; + c < l.length; + ++c + ) { + d = l[c], + h + && (r.strokeColor && (t.strokeStyle = r.strokeColor), + i(r.strokeWidth) || (t.lineWidth = r.strokeWidth), + t.strokeText(d, n, o, r.maxWidth)), + t.fillText(d, n, o, r.maxWidth), + Te(t, n, o, d, r), + o += a.lineHeight; + } + t.restore(); + } + function Te(t, e, i, s, n) { + if (n.strikethrough || n.underline) { + const o = t.measureText(s), + a = e - o.actualBoundingBoxLeft, + r = e + o.actualBoundingBoxRight, + l = i - o.actualBoundingBoxAscent, + h = i + o.actualBoundingBoxDescent, + c = n.strikethrough ? (l + h) / 2 : h; + t.strokeStyle = t.fillStyle, + t.beginPath(), + t.lineWidth = n.decorationWidth || 2, + t.moveTo(a, c), + t.lineTo(r, c), + t.stroke(); + } + } + function Le(t, e) { + const { x: i, y: s, w: n, h: o, radius: a } = e; + t.arc(i + a.topLeft, s + a.topLeft, a.topLeft, -L, D, !0), + t.lineTo(i, s + o - a.bottomLeft), + t.arc(i + a.bottomLeft, s + o - a.bottomLeft, a.bottomLeft, D, L, !0), + t.lineTo(i + n - a.bottomRight, s + o), + t.arc(i + n - a.bottomRight, s + o - a.bottomRight, a.bottomRight, L, 0, !0), + t.lineTo(i + n, s + a.topRight), + t.arc(i + n - a.topRight, s + a.topRight, a.topRight, 0, -L, !0), + t.lineTo(i + a.topLeft, s); + } + function Ee(t, e = [""], i = t, s, n = (() => t[0])) { + M(s) || (s = $e("_fallback", t)); + const o = { + [Symbol.toStringTag]: "Object", + _cacheable: !0, + _scopes: t, + _rootScopes: i, + _fallback: s, + _getTarget: n, + override: n => Ee([n, ...t], e, i, s), + }; + return new Proxy(o, { + deleteProperty: (e, i) => (delete e[i], delete e._keys, delete t[0][i], !0), + get: (i, s) => + Ve(i, s, () => + function(t, e, i, s) { + let n; + for (const o of e) if (n = $e(ze(o, t), i), M(n)) return Fe(t, n) ? je(i, s, t, n) : n; + }(s, e, t, i)), + getOwnPropertyDescriptor: (t, e) => Reflect.getOwnPropertyDescriptor(t._scopes[0], e), + getPrototypeOf: () => Reflect.getPrototypeOf(t[0]), + has: (t, e) => Ye(t).includes(e), + ownKeys: t => Ye(t), + set(t, e, i) { + const s = t._storage || (t._storage = n()); + return t[e] = s[e] = i, delete t._keys, !0; + }, + }); + } + function Re(t, e, i, o) { + const a = { + _cacheable: !1, + _proxy: t, + _context: e, + _subProxy: i, + _stack: new Set(), + _descriptors: Ie(t, o), + setContext: e => Re(t, e, i, o), + override: s => Re(t.override(s), e, i, o), + }; + return new Proxy(a, { + deleteProperty: (e, i) => (delete e[i], delete t[i], !0), + get: (t, e, i) => + Ve(t, e, () => + function(t, e, i) { + const { _proxy: o, _context: a, _subProxy: r, _descriptors: l } = t; + let h = o[e]; + k(h) && l.isScriptable(e) && (h = function(t, e, i, s) { + const { _proxy: n, _context: o, _subProxy: a, _stack: r } = i; + if (r.has(t)) throw new Error("Recursion detected: " + Array.from(r).join("->") + "->" + t); + r.add(t), e = e(o, a || s), r.delete(t), Fe(t, e) && (e = je(n._scopes, n, t, e)); + return e; + }(e, h, t, i)); + s(h) && h.length && (h = function(t, e, i, s) { + const { _proxy: o, _context: a, _subProxy: r, _descriptors: l } = i; + if (M(a.index) && s(t)) e = e[a.index % e.length]; + else if (n(e[0])) { + const i = e, s = o._scopes.filter(t => t !== i); + e = []; + for (const n of i) { + const i = je(s, o, t, n); + e.push(Re(i, a, r && r[t], l)); + } + } + return e; + }(e, h, t, l.isIndexable)); + Fe(e, h) && (h = Re(h, a, r && r[e], l)); + return h; + }(t, e, i)), + getOwnPropertyDescriptor: (e, i) => + e._descriptors.allKeys + ? Reflect.has(t, i) ? { enumerable: !0, configurable: !0 } : void 0 + : Reflect.getOwnPropertyDescriptor(t, i), + getPrototypeOf: () => Reflect.getPrototypeOf(t), + has: (e, i) => Reflect.has(t, i), + ownKeys: () => Reflect.ownKeys(t), + set: (e, i, s) => (t[i] = s, delete e[i], !0), + }); + } + function Ie(t, e = { scriptable: !0, indexable: !0 }) { + const { _scriptable: i = e.scriptable, _indexable: s = e.indexable, _allKeys: n = e.allKeys } = t; + return { + allKeys: n, + scriptable: i, + indexable: s, + isScriptable: k(i) ? i : () => i, + isIndexable: k(s) ? s : () => s, + }; + } + const ze = (t, e) => t ? t + w(e) : e, + Fe = (t, e) => n(e) && "adapters" !== t && (null === Object.getPrototypeOf(e) || e.constructor === Object); + function Ve(t, e, i) { + if (Object.prototype.hasOwnProperty.call(t, e)) return t[e]; + const s = i(); + return t[e] = s, s; + } + function Be(t, e, i) { + return k(t) ? t(e, i) : t; + } + const Ne = (t, e) => !0 === t ? e : "string" == typeof t ? y(e, t) : void 0; + function We(t, e, i, s, n) { + for (const o of e) { + const e = Ne(i, o); + if (e) { + t.add(e); + const o = Be(e._fallback, i, n); + if (M(o) && o !== i && o !== s) return o; + } else if (!1 === e && M(s) && i !== s) return null; + } + return !1; + } + function je(t, e, i, o) { + const a = e._rootScopes, r = Be(e._fallback, i, o), l = [...t, ...a], h = new Set(); + h.add(o); + let c = He(h, l, i, r || i, o); + return null !== c + && ((!M(r) || r === i || (c = He(h, l, r, c, o), null !== c)) + && Ee(Array.from(h), [""], a, r, () => + function(t, e, i) { + const o = t._getTarget(); + e in o || (o[e] = {}); + const a = o[e]; + if (s(a) && n(i)) return i; + return a; + }(e, i, o))); + } + function He(t, e, i, s, n) { + for (; i;) i = We(t, e, i, s, n); + return i; + } + function $e(t, e) { + for (const i of e) { + if (!i) continue; + const e = i[t]; + if (M(e)) return e; + } + } + function Ye(t) { + let e = t._keys; + return e || (e = t._keys = function(t) { + const e = new Set(); + for (const i of t) for (const t of Object.keys(i).filter(t => !t.startsWith("_"))) e.add(t); + return Array.from(e); + }(t._scopes)), + e; + } + function Ue(t, e, i, s) { + const { iScale: n } = t, { key: o = "r" } = this._parsing, a = new Array(s); + let r, l, h, c; + for (r = 0, l = s; r < l; ++r) h = r + i, c = e[h], a[r] = { r: n.parse(y(c, o), h) }; + return a; + } + const Xe = Number.EPSILON || 1e-14, + qe = (t, e) => e < t.length && !t[e].skip && t[e], + Ke = t => "x" === t ? "y" : "x"; + function Ge(t, e, i, s) { + const n = t.skip ? e : t, o = e, a = i.skip ? e : i, r = X(o, n), l = X(a, o); + let h = r / (r + l), c = l / (r + l); + h = isNaN(h) ? 0 : h, c = isNaN(c) ? 0 : c; + const d = s * h, u = s * c; + return { + previous: { x: o.x - d * (a.x - n.x), y: o.y - d * (a.y - n.y) }, + next: { x: o.x + u * (a.x - n.x), y: o.y + u * (a.y - n.y) }, + }; + } + function Ze(t, e = "x") { + const i = Ke(e), s = t.length, n = Array(s).fill(0), o = Array(s); + let a, r, l, h = qe(t, 0); + for (a = 0; a < s; ++a) { + if (r = l, l = h, h = qe(t, a + 1), l) { + if (h) { + const t = h[e] - l[e]; + n[a] = 0 !== t ? (h[i] - l[i]) / t : 0; + } + o[a] = r ? h ? z(n[a - 1]) !== z(n[a]) ? 0 : (n[a - 1] + n[a]) / 2 : n[a - 1] : n[a]; + } + } + !function(t, e, i) { + const s = t.length; + let n, o, a, r, l, h = qe(t, 0); + for (let c = 0; c < s - 1; ++c) { + l = h, + h = qe(t, c + 1), + l && h && (N(e[c], 0, Xe) + ? i[c] = i[c + 1] = 0 + : (n = i[c] / e[c], + o = i[c + 1] / e[c], + r = Math.pow(n, 2) + Math.pow(o, 2), + r <= 9 || (a = 3 / Math.sqrt(r), i[c] = n * a * e[c], i[c + 1] = o * a * e[c]))); + } + }(t, n, o), + function(t, e, i = "x") { + const s = Ke(i), n = t.length; + let o, a, r, l = qe(t, 0); + for (let h = 0; h < n; ++h) { + if (a = r, r = l, l = qe(t, h + 1), !r) continue; + const n = r[i], c = r[s]; + a && (o = (n - a[i]) / 3, r[`cp1${i}`] = n - o, r[`cp1${s}`] = c - o * e[h]), + l && (o = (l[i] - n) / 3, r[`cp2${i}`] = n + o, r[`cp2${s}`] = c + o * e[h]); + } + }(t, o, e); + } + function Je(t, e, i) { + return Math.max(Math.min(t, i), e); + } + function Qe(t, e, i, s, n) { + let o, a, r, l; + if (e.spanGaps && (t = t.filter(t => !t.skip)), "monotone" === e.cubicInterpolationMode) Ze(t, n); + else { + let i = s ? t[t.length - 1] : t[0]; + for (o = 0, a = t.length; o < a; ++o) { + r = t[o], + l = Ge(i, r, t[Math.min(o + 1, a - (s ? 0 : 1)) % a], e.tension), + r.cp1x = l.previous.x, + r.cp1y = l.previous.y, + r.cp2x = l.next.x, + r.cp2y = l.next.y, + i = r; + } + } + e.capBezierPoints && function(t, e) { + let i, s, n, o, a, r = Se(t[0], e); + for (i = 0, s = t.length; i < s; ++i) { + a = o, + o = r, + r = i < s - 1 && Se(t[i + 1], e), + o + && (n = t[i], + a && (n.cp1x = Je(n.cp1x, e.left, e.right), n.cp1y = Je(n.cp1y, e.top, e.bottom)), + r && (n.cp2x = Je(n.cp2x, e.left, e.right), n.cp2y = Je(n.cp2y, e.top, e.bottom))); + } + }(t, i); + } + const ti = t => 0 === t || 1 === t, + ei = (t, e, i) => -Math.pow(2, 10 * (t -= 1)) * Math.sin((t - e) * O / i), + ii = (t, e, i) => Math.pow(2, -10 * t) * Math.sin((t - e) * O / i) + 1, + si = { + linear: t => t, + easeInQuad: t => t * t, + easeOutQuad: t => -t * (t - 2), + easeInOutQuad: t => (t /= .5) < 1 ? .5 * t * t : -.5 * (--t * (t - 2) - 1), + easeInCubic: t => t * t * t, + easeOutCubic: t => (t -= 1) * t * t + 1, + easeInOutCubic: t => (t /= .5) < 1 ? .5 * t * t * t : .5 * ((t -= 2) * t * t + 2), + easeInQuart: t => t * t * t * t, + easeOutQuart: t => -((t -= 1) * t * t * t - 1), + easeInOutQuart: t => (t /= .5) < 1 ? .5 * t * t * t * t : -.5 * ((t -= 2) * t * t * t - 2), + easeInQuint: t => t * t * t * t * t, + easeOutQuint: t => (t -= 1) * t * t * t * t + 1, + easeInOutQuint: t => (t /= .5) < 1 ? .5 * t * t * t * t * t : .5 * ((t -= 2) * t * t * t * t + 2), + easeInSine: t => 1 - Math.cos(t * L), + easeOutSine: t => Math.sin(t * L), + easeInOutSine: t => -.5 * (Math.cos(D * t) - 1), + easeInExpo: t => 0 === t ? 0 : Math.pow(2, 10 * (t - 1)), + easeOutExpo: t => 1 === t ? 1 : 1 - Math.pow(2, -10 * t), + easeInOutExpo: t => + ti(t) ? t : t < .5 ? .5 * Math.pow(2, 10 * (2 * t - 1)) : .5 * (2 - Math.pow(2, -10 * (2 * t - 1))), + easeInCirc: t => t >= 1 ? t : -(Math.sqrt(1 - t * t) - 1), + easeOutCirc: t => Math.sqrt(1 - (t -= 1) * t), + easeInOutCirc: t => (t /= .5) < 1 ? -.5 * (Math.sqrt(1 - t * t) - 1) : .5 * (Math.sqrt(1 - (t -= 2) * t) + 1), + easeInElastic: t => ti(t) ? t : ei(t, .075, .3), + easeOutElastic: t => ti(t) ? t : ii(t, .075, .3), + easeInOutElastic(t) { + const e = .1125; + return ti(t) ? t : t < .5 ? .5 * ei(2 * t, e, .45) : .5 + .5 * ii(2 * t - 1, e, .45); + }, + easeInBack(t) { + const e = 1.70158; + return t * t * ((e + 1) * t - e); + }, + easeOutBack(t) { + const e = 1.70158; + return (t -= 1) * t * ((e + 1) * t + e) + 1; + }, + easeInOutBack(t) { + let e = 1.70158; + return (t /= .5) < 1 + ? t * t * ((1 + (e *= 1.525)) * t - e) * .5 + : .5 * ((t -= 2) * t * ((1 + (e *= 1.525)) * t + e) + 2); + }, + easeInBounce: t => 1 - si.easeOutBounce(1 - t), + easeOutBounce(t) { + const e = 7.5625, i = 2.75; + return t < 1 / i + ? e * t * t + : t < 2 / i + ? e * (t -= 1.5 / i) * t + .75 + : t < 2.5 / i + ? e * (t -= 2.25 / i) * t + .9375 + : e * (t -= 2.625 / i) * t + .984375; + }, + easeInOutBounce: t => t < .5 ? .5 * si.easeInBounce(2 * t) : .5 * si.easeOutBounce(2 * t - 1) + .5, + }; + function ni(t, e, i, s) { + return { x: t.x + i * (e.x - t.x), y: t.y + i * (e.y - t.y) }; + } + function oi(t, e, i, s) { + return { + x: t.x + i * (e.x - t.x), + y: "middle" === s ? i < .5 ? t.y : e.y : "after" === s ? i < 1 ? t.y : e.y : i > 0 ? e.y : t.y, + }; + } + function ai(t, e, i, s) { + const n = { x: t.cp2x, y: t.cp2y }, + o = { x: e.cp1x, y: e.cp1y }, + a = ni(t, n, i), + r = ni(n, o, i), + l = ni(o, e, i), + h = ni(a, r, i), + c = ni(r, l, i); + return ni(h, c, i); + } + const ri = new Map(); + function li(t, e, i) { + return function(t, e) { + e = e || {}; + const i = t + JSON.stringify(e); + let s = ri.get(i); + return s || (s = new Intl.NumberFormat(t, e), ri.set(i, s)), s; + }(e, i).format(t); + } + const hi = new RegExp(/^(normal|(\d+(?:\.\d+)?)(px|em|%)?)$/), + ci = new RegExp(/^(normal|italic|initial|inherit|unset|(oblique( -?[0-9]?[0-9]deg)?))$/); + function di(t, e) { + const i = ("" + t).match(hi); + if (!i || "normal" === i[1]) return 1.2 * e; + switch (t = +i[2], i[3]) { + case "px": + return t; + case "%": + t /= 100; + } + return e * t; + } + function ui(t, e) { + const i = {}, s = n(e), o = s ? Object.keys(e) : e, a = n(t) ? s ? i => r(t[i], t[e[i]]) : e => t[e] : () => t; + for (const t of o) i[t] = +a(t) || 0; + return i; + } + function fi(t) { + return ui(t, { top: "y", right: "x", bottom: "y", left: "x" }); + } + function gi(t) { + return ui(t, ["topLeft", "topRight", "bottomLeft", "bottomRight"]); + } + function pi(t) { + const e = fi(t); + return e.width = e.left + e.right, e.height = e.top + e.bottom, e; + } + function mi(t, e) { + t = t || {}, e = e || ne.font; + let i = r(t.size, e.size); + "string" == typeof i && (i = parseInt(i, 10)); + let s = r(t.style, e.style); + s && !("" + s).match(ci) && (console.warn("Invalid font style specified: \"" + s + "\""), s = ""); + const n = { + family: r(t.family, e.family), + lineHeight: di(r(t.lineHeight, e.lineHeight), i), + size: i, + style: s, + weight: r(t.weight, e.weight), + string: "", + }; + return n.string = xe(n), n; + } + function bi(t, e, i, n) { + let o, a, r, l = !0; + for (o = 0, a = t.length; o < a; ++o) { + if ( + r = t[o], + void 0 !== r + && (void 0 !== e && "function" == typeof r && (r = r(e), l = !1), + void 0 !== i && s(r) && (r = r[i % r.length], l = !1), + void 0 !== r) + ) return n && !l && (n.cacheable = !1), r; + } + } + function xi(t, e, i) { + const { min: s, max: n } = t, o = h(e, (n - s) / 2), a = (t, e) => i && 0 === t ? 0 : t + e; + return { min: a(s, -Math.abs(o)), max: a(n, o) }; + } + function _i(t, e) { + return Object.assign(Object.create(t), e); + } + function yi(t, e, i) { + return t + ? function(t, e) { + return { + x: i => t + t + e - i, + setWidth(t) { + e = t; + }, + textAlign: t => "center" === t ? t : "right" === t ? "left" : "right", + xPlus: (t, e) => t - e, + leftForLtr: (t, e) => t - e, + }; + }(e, i) + : { x: t => t, setWidth(t) {}, textAlign: t => t, xPlus: (t, e) => t + e, leftForLtr: (t, e) => t }; + } + function vi(t, e) { + let i, s; + "ltr" !== e && "rtl" !== e + || (i = t.canvas.style, + s = [i.getPropertyValue("direction"), i.getPropertyPriority("direction")], + i.setProperty("direction", e, "important"), + t.prevTextDirection = s); + } + function wi(t, e) { + void 0 !== e && (delete t.prevTextDirection, t.canvas.style.setProperty("direction", e[0], e[1])); + } + function Mi(t) { + return "angle" === t + ? { between: G, compare: q, normalize: K } + : { between: Q, compare: (t, e) => t - e, normalize: t => t }; + } + function ki({ start: t, end: e, count: i, loop: s, style: n }) { + return { start: t % i, end: e % i, loop: s && (e - t + 1) % i == 0, style: n }; + } + function Si(t, e, i) { + if (!i) return [t]; + const { property: s, start: n, end: o } = i, + a = e.length, + { compare: r, between: l, normalize: h } = Mi(s), + { start: c, end: d, loop: u, style: f } = function(t, e, i) { + const { property: s, start: n, end: o } = i, { between: a, normalize: r } = Mi(s), l = e.length; + let h, c, { start: d, end: u, loop: f } = t; + if (f) { + for (d += l, u += l, h = 0, c = l; h < c && a(r(e[d % l][s]), n, o); ++h) d--, u--; + d %= l, u %= l; + } + return u < d && (u += l), { start: d, end: u, loop: f, style: t.style }; + }(t, e, i), + g = []; + let p, m, b, x = !1, _ = null; + const y = () => x || l(n, b, p) && 0 !== r(n, b), v = () => !x || 0 === r(o, p) || l(o, b, p); + for (let t = c, i = c; t <= d; ++t) { + m = e[t % a], + m.skip + || (p = h(m[s]), + p !== b + && (x = l(p, n, o), + null === _ && y() && (_ = 0 === r(p, n) ? t : i), + null !== _ && v() && (g.push(ki({ start: _, end: t, loop: u, count: a, style: f })), _ = null), + i = t, + b = p)); + } + return null !== _ && g.push(ki({ start: _, end: d, loop: u, count: a, style: f })), g; + } + function Pi(t, e) { + const i = [], s = t.segments; + for (let n = 0; n < s.length; n++) { + const o = Si(s[n], t.points, e); + o.length && i.push(...o); + } + return i; + } + function Di(t, e) { + const i = t.points, s = t.options.spanGaps, n = i.length; + if (!n) return []; + const o = !!t._loop, + { start: a, end: r } = function(t, e, i, s) { + let n = 0, o = e - 1; + if (i && !s) for (; n < e && !t[n].skip;) n++; + for (; n < e && t[n].skip;) n++; + for (n %= e, i && (o += n); o > n && t[o % e].skip;) o--; + return o %= e, { start: n, end: o }; + }(i, n, o, s); + if (!0 === s) return Oi(t, [{ start: a, end: r, loop: o }], i, e); + return Oi( + t, + function(t, e, i, s) { + const n = t.length, o = []; + let a, r = e, l = t[e]; + for (a = e + 1; a <= i; ++a) { + const i = t[a % n]; + i.skip || i.stop + ? l.skip || (s = !1, o.push({ start: e % n, end: (a - 1) % n, loop: s }), e = r = i.stop ? a : null) + : (r = a, l.skip && (e = a)), l = i; + } + return null !== r && o.push({ start: e % n, end: r % n, loop: s }), o; + }(i, a, r < a ? r + n : r, !!t._fullLoop && 0 === a && r === n - 1), + i, + e, + ); + } + function Oi(t, e, i, s) { + return s && s.setContext && i + ? function(t, e, i, s) { + const n = t._chart.getContext(), + o = Ci(t.options), + { _datasetIndex: a, options: { spanGaps: r } } = t, + l = i.length, + h = []; + let c = o, d = e[0].start, u = d; + function f(t, e, s, n) { + const o = r ? -1 : 1; + if (t !== e) { + for (t += l; i[t % l].skip;) t -= o; + for (; i[e % l].skip;) e += o; + t % l != e % l && (h.push({ start: t % l, end: e % l, loop: s, style: n }), c = n, d = e % l); + } + } + for (const t of e) { + d = r ? d : t.start; + let e, o = i[d % l]; + for (u = d + 1; u <= t.end; u++) { + const r = i[u % l]; + e = Ci( + s.setContext( + _i(n, { type: "segment", p0: o, p1: r, p0DataIndex: (u - 1) % l, p1DataIndex: u % l, datasetIndex: a }), + ), + ), + Ai(e, c) && f(d, u - 1, t.loop, c), + o = r, + c = e; + } + d < u - 1 && f(d, u - 1, t.loop, c); + } + return h; + }(t, e, i, s) + : e; + } + function Ci(t) { + return { + backgroundColor: t.backgroundColor, + borderCapStyle: t.borderCapStyle, + borderDash: t.borderDash, + borderDashOffset: t.borderDashOffset, + borderJoinStyle: t.borderJoinStyle, + borderWidth: t.borderWidth, + borderColor: t.borderColor, + }; + } + function Ai(t, e) { + return e && JSON.stringify(t) !== JSON.stringify(e); + } + var Ti = Object.freeze({ + __proto__: null, + easingEffects: si, + isPatternOrGradient: Zt, + color: Jt, + getHoverColor: Qt, + noop: t, + uid: e, + isNullOrUndef: i, + isArray: s, + isObject: n, + isFinite: o, + finiteOrDefault: a, + valueOrDefault: r, + toPercentage: l, + toDimension: h, + callback: c, + each: d, + _elementsEqual: u, + clone: f, + _merger: p, + merge: m, + mergeIf: b, + _mergerIf: x, + _deprecated: function(t, e, i, s) { + void 0 !== e && console.warn(t + ": \"" + i + "\" is deprecated. Please use \"" + s + "\" instead"); + }, + resolveObjectKey: y, + _splitKey: v, + _capitalize: w, + defined: M, + isFunction: k, + setsEqual: S, + _isClickEvent: P, + toFontString: xe, + _measureText: _e, + _longestText: ye, + _alignPixel: ve, + clearCanvas: we, + drawPoint: Me, + drawPointLegend: ke, + _isPointInArea: Se, + clipArea: Pe, + unclipArea: De, + _steppedLineTo: Oe, + _bezierCurveTo: Ce, + renderText: Ae, + addRoundedRectPath: Le, + _lookup: tt, + _lookupByKey: et, + _rlookupByKey: it, + _filterBetween: st, + listenArrayEvents: ot, + unlistenArrayEvents: at, + _arrayUnique: rt, + _createResolver: Ee, + _attachContext: Re, + _descriptors: Ie, + _parseObjectDataRadialScale: Ue, + splineCurve: Ge, + splineCurveMonotone: Ze, + _updateBezierControlPoints: Qe, + _isDomSupported: oe, + _getParentNode: ae, + getStyle: he, + getRelativePosition: ue, + getMaximumSize: ge, + retinaScale: pe, + supportsEventListenerOptions: me, + readUsedSize: be, + fontString: function(t, e, i) { + return e + " " + t + "px " + i; + }, + requestAnimFrame: lt, + throttled: ht, + debounce: ct, + _toLeftRightCenter: dt, + _alignStartEnd: ut, + _textX: ft, + _getStartAndCountOfVisiblePoints: gt, + _scaleRangesChanged: pt, + _pointInLine: ni, + _steppedInterpolation: oi, + _bezierInterpolation: ai, + formatNumber: li, + toLineHeight: di, + _readValueToProps: ui, + toTRBL: fi, + toTRBLCorners: gi, + toPadding: pi, + toFont: mi, + resolve: bi, + _addGrace: xi, + createContext: _i, + PI: D, + TAU: O, + PITAU: C, + INFINITY: A, + RAD_PER_DEG: T, + HALF_PI: L, + QUARTER_PI: E, + TWO_THIRDS_PI: R, + log10: I, + sign: z, + niceNum: F, + _factorize: V, + isNumber: B, + almostEquals: N, + almostWhole: W, + _setMinAndMaxByKey: j, + toRadians: H, + toDegrees: $, + _decimalPlaces: Y, + getAngleFromPoint: U, + distanceBetweenPoints: X, + _angleDiff: q, + _normalizeAngle: K, + _angleBetween: G, + _limitValue: Z, + _int16Range: J, + _isBetween: Q, + getRtlAdapter: yi, + overrideTextDirection: vi, + restoreTextDirection: wi, + _boundSegment: Si, + _boundSegments: Pi, + _computeSegments: Di, + }); + function Li(t, e, i, s) { + const { controller: n, data: o, _sorted: a } = t, r = n._cachedMeta.iScale; + if (r && e === r.axis && "r" !== e && a && o.length) { + const t = r._reversePixels ? it : et; + if (!s) return t(o, e, i); + if (n._sharedOptions) { + const s = o[0], n = "function" == typeof s.getRange && s.getRange(e); + if (n) { + const s = t(o, e, i - n), a = t(o, e, i + n); + return { lo: s.lo, hi: a.hi }; + } + } + } + return { lo: 0, hi: o.length - 1 }; + } + function Ei(t, e, i, s, n) { + const o = t.getSortedVisibleDatasetMetas(), a = i[e]; + for (let t = 0, i = o.length; t < i; ++t) { + const { index: i, data: r } = o[t], { lo: l, hi: h } = Li(o[t], e, a, n); + for (let t = l; t <= h; ++t) { + const e = r[t]; + e.skip || s(e, i, t); + } + } + } + function Ri(t, e, i, s, n) { + const o = []; + if (!n && !t.isPointInArea(e)) return o; + return Ei(t, i, e, function(i, a, r) { + (n || Se(i, t.chartArea, 0)) && i.inRange(e.x, e.y, s) && o.push({ element: i, datasetIndex: a, index: r }); + }, !0), + o; + } + function Ii(t, e, i, s, n, o) { + let a = []; + const r = function(t) { + const e = -1 !== t.indexOf("x"), i = -1 !== t.indexOf("y"); + return function(t, s) { + const n = e ? Math.abs(t.x - s.x) : 0, o = i ? Math.abs(t.y - s.y) : 0; + return Math.sqrt(Math.pow(n, 2) + Math.pow(o, 2)); + }; + }(i); + let l = Number.POSITIVE_INFINITY; + return Ei(t, i, e, function(i, h, c) { + const d = i.inRange(e.x, e.y, n); + if (s && !d) return; + const u = i.getCenterPoint(n); + if (!(!!o || t.isPointInArea(u)) && !d) return; + const f = r(e, u); + f < l + ? (a = [{ element: i, datasetIndex: h, index: c }], l = f) + : f === l && a.push({ element: i, datasetIndex: h, index: c }); + }), + a; + } + function zi(t, e, i, s, n, o) { + return o || t.isPointInArea(e) + ? "r" !== i || s ? Ii(t, e, i, s, n, o) : function(t, e, i, s) { + let n = []; + return Ei(t, i, e, function(t, i, o) { + const { startAngle: a, endAngle: r } = t.getProps(["startAngle", "endAngle"], s), + { angle: l } = U(t, { x: e.x, y: e.y }); + G(l, a, r) && n.push({ element: t, datasetIndex: i, index: o }); + }), + n; + }(t, e, i, n) + : []; + } + function Fi(t, e, i, s, n) { + const o = [], a = "x" === i ? "inXRange" : "inYRange"; + let r = !1; + return Ei(t, i, e, (t, s, l) => { + t[a](e[i], n) && (o.push({ element: t, datasetIndex: s, index: l }), r = r || t.inRange(e.x, e.y, n)); + }), + s && !r ? [] : o; + } + var Vi = { + evaluateInteractionItems: Ei, + modes: { + index(t, e, i, s) { + const n = ue(e, t), + o = i.axis || "x", + a = i.includeInvisible || !1, + r = i.intersect ? Ri(t, n, o, s, a) : zi(t, n, o, !1, s, a), + l = []; + return r.length + ? (t.getSortedVisibleDatasetMetas().forEach(t => { + const e = r[0].index, i = t.data[e]; + i && !i.skip && l.push({ element: i, datasetIndex: t.index, index: e }); + }), + l) + : []; + }, + dataset(t, e, i, s) { + const n = ue(e, t), o = i.axis || "xy", a = i.includeInvisible || !1; + let r = i.intersect ? Ri(t, n, o, s, a) : zi(t, n, o, !1, s, a); + if (r.length > 0) { + const e = r[0].datasetIndex, i = t.getDatasetMeta(e).data; + r = []; + for (let t = 0; t < i.length; ++t) r.push({ element: i[t], datasetIndex: e, index: t }); + } + return r; + }, + point: (t, e, i, s) => Ri(t, ue(e, t), i.axis || "xy", s, i.includeInvisible || !1), + nearest(t, e, i, s) { + const n = ue(e, t), o = i.axis || "xy", a = i.includeInvisible || !1; + return zi(t, n, o, i.intersect, s, a); + }, + x: (t, e, i, s) => Fi(t, ue(e, t), "x", i.intersect, s), + y: (t, e, i, s) => Fi(t, ue(e, t), "y", i.intersect, s), + }, + }; + const Bi = ["left", "top", "right", "bottom"]; + function Ni(t, e) { + return t.filter(t => t.pos === e); + } + function Wi(t, e) { + return t.filter(t => -1 === Bi.indexOf(t.pos) && t.box.axis === e); + } + function ji(t, e) { + return t.sort((t, i) => { + const s = e ? i : t, n = e ? t : i; + return s.weight === n.weight ? s.index - n.index : s.weight - n.weight; + }); + } + function Hi(t, e) { + const i = function(t) { + const e = {}; + for (const i of t) { + const { stack: t, pos: s, stackWeight: n } = i; + if (!t || !Bi.includes(s)) continue; + const o = e[t] || (e[t] = { count: 0, placed: 0, weight: 0, size: 0 }); + o.count++, o.weight += n; + } + return e; + }(t), + { vBoxMaxWidth: s, hBoxMaxHeight: n } = e; + let o, a, r; + for (o = 0, a = t.length; o < a; ++o) { + r = t[o]; + const { fullSize: a } = r.box, l = i[r.stack], h = l && r.stackWeight / l.weight; + r.horizontal + ? (r.width = h ? h * s : a && e.availableWidth, r.height = n) + : (r.width = s, r.height = h ? h * n : a && e.availableHeight); + } + return i; + } + function $i(t, e, i, s) { + return Math.max(t[i], e[i]) + Math.max(t[s], e[s]); + } + function Yi(t, e) { + t.top = Math.max(t.top, e.top), + t.left = Math.max(t.left, e.left), + t.bottom = Math.max(t.bottom, e.bottom), + t.right = Math.max(t.right, e.right); + } + function Ui(t, e, i, s) { + const { pos: o, box: a } = i, r = t.maxPadding; + if (!n(o)) { + i.size && (t[o] -= i.size); + const e = s[i.stack] || { size: 0, count: 1 }; + e.size = Math.max(e.size, i.horizontal ? a.height : a.width), i.size = e.size / e.count, t[o] += i.size; + } + a.getPadding && Yi(r, a.getPadding()); + const l = Math.max(0, e.outerWidth - $i(r, t, "left", "right")), + h = Math.max(0, e.outerHeight - $i(r, t, "top", "bottom")), + c = l !== t.w, + d = h !== t.h; + return t.w = l, t.h = h, i.horizontal ? { same: c, other: d } : { same: d, other: c }; + } + function Xi(t, e) { + const i = e.maxPadding; + function s(t) { + const s = { left: 0, top: 0, right: 0, bottom: 0 }; + return t.forEach(t => { + s[t] = Math.max(e[t], i[t]); + }), + s; + } + return s(t ? ["left", "right"] : ["top", "bottom"]); + } + function qi(t, e, i, s) { + const n = []; + let o, a, r, l, h, c; + for (o = 0, a = t.length, h = 0; o < a; ++o) { + r = t[o], l = r.box, l.update(r.width || e.w, r.height || e.h, Xi(r.horizontal, e)); + const { same: a, other: d } = Ui(e, i, r, s); + h |= a && n.length, c = c || d, l.fullSize || n.push(r); + } + return h && qi(n, e, i, s) || c; + } + function Ki(t, e, i, s, n) { + t.top = i, t.left = e, t.right = e + s, t.bottom = i + n, t.width = s, t.height = n; + } + function Gi(t, e, i, s) { + const n = i.padding; + let { x: o, y: a } = e; + for (const r of t) { + const t = r.box, l = s[r.stack] || { count: 1, placed: 0, weight: 1 }, h = r.stackWeight / l.weight || 1; + if (r.horizontal) { + const s = e.w * h, o = l.size || t.height; + M(l.start) && (a = l.start), + t.fullSize ? Ki(t, n.left, a, i.outerWidth - n.right - n.left, o) : Ki(t, e.left + l.placed, a, s, o), + l.start = a, + l.placed += s, + a = t.bottom; + } else { + const s = e.h * h, a = l.size || t.width; + M(l.start) && (o = l.start), + t.fullSize ? Ki(t, o, n.top, a, i.outerHeight - n.bottom - n.top) : Ki(t, o, e.top + l.placed, a, s), + l.start = o, + l.placed += s, + o = t.right; + } + } + e.x = o, e.y = a; + } + ne.set("layout", { autoPadding: !0, padding: { top: 0, right: 0, bottom: 0, left: 0 } }); + var Zi = { + addBox(t, e) { + t.boxes || (t.boxes = []), + e.fullSize = e.fullSize || !1, + e.position = e.position || "top", + e.weight = e.weight || 0, + e._layers = e._layers || function() { + return [{ + z: 0, + draw(t) { + e.draw(t); + }, + }]; + }, + t.boxes.push(e); + }, + removeBox(t, e) { + const i = t.boxes ? t.boxes.indexOf(e) : -1; + -1 !== i && t.boxes.splice(i, 1); + }, + configure(t, e, i) { + e.fullSize = i.fullSize, e.position = i.position, e.weight = i.weight; + }, + update(t, e, i, s) { + if (!t) return; + const n = pi(t.options.layout.padding), + o = Math.max(e - n.width, 0), + a = Math.max(i - n.height, 0), + r = function(t) { + const e = function(t) { + const e = []; + let i, s, n, o, a, r; + for (i = 0, s = (t || []).length; i < s; ++i) { + n = t[i], + ({ position: o, options: { stack: a, stackWeight: r = 1 } } = n), + e.push({ + index: i, + box: n, + pos: o, + horizontal: n.isHorizontal(), + weight: n.weight, + stack: a && o + a, + stackWeight: r, + }); + } + return e; + }(t), + i = ji(e.filter(t => t.box.fullSize), !0), + s = ji(Ni(e, "left"), !0), + n = ji(Ni(e, "right")), + o = ji(Ni(e, "top"), !0), + a = ji(Ni(e, "bottom")), + r = Wi(e, "x"), + l = Wi(e, "y"); + return { + fullSize: i, + leftAndTop: s.concat(o), + rightAndBottom: n.concat(l).concat(a).concat(r), + chartArea: Ni(e, "chartArea"), + vertical: s.concat(n).concat(l), + horizontal: o.concat(a).concat(r), + }; + }(t.boxes), + l = r.vertical, + h = r.horizontal; + d(t.boxes, t => { + "function" == typeof t.beforeLayout && t.beforeLayout(); + }); + const c = l.reduce((t, e) => e.box.options && !1 === e.box.options.display ? t : t + 1, 0) || 1, + u = Object.freeze({ + outerWidth: e, + outerHeight: i, + padding: n, + availableWidth: o, + availableHeight: a, + vBoxMaxWidth: o / 2 / c, + hBoxMaxHeight: a / 2, + }), + f = Object.assign({}, n); + Yi(f, pi(s)); + const g = Object.assign({ maxPadding: f, w: o, h: a, x: n.left, y: n.top }, n), p = Hi(l.concat(h), u); + qi(r.fullSize, g, u, p), + qi(l, g, u, p), + qi(h, g, u, p) && qi(l, g, u, p), + function(t) { + const e = t.maxPadding; + function i(i) { + const s = Math.max(e[i] - t[i], 0); + return t[i] += s, s; + } + t.y += i("top"), t.x += i("left"), i("right"), i("bottom"); + }(g), + Gi(r.leftAndTop, g, u, p), + g.x += g.w, + g.y += g.h, + Gi(r.rightAndBottom, g, u, p), + t.chartArea = { left: g.left, top: g.top, right: g.left + g.w, bottom: g.top + g.h, height: g.h, width: g.w }, + d(r.chartArea, e => { + const i = e.box; + Object.assign(i, t.chartArea), i.update(g.w, g.h, { left: 0, top: 0, right: 0, bottom: 0 }); + }); + }, + }; + class Ji { + acquireContext(t, e) {} + releaseContext(t) { + return !1; + } + addEventListener(t, e, i) {} + removeEventListener(t, e, i) {} + getDevicePixelRatio() { + return 1; + } + getMaximumSize(t, e, i, s) { + return e = Math.max(0, e || t.width), + i = i || t.height, + { width: e, height: Math.max(0, s ? Math.floor(e / s) : i) }; + } + isAttached(t) { + return !0; + } + updateConfig(t) {} + } + class Qi extends Ji { + acquireContext(t) { + return t && t.getContext && t.getContext("2d") || null; + } + updateConfig(t) { + t.options.animation = !1; + } + } + const ts = { + touchstart: "mousedown", + touchmove: "mousemove", + touchend: "mouseup", + pointerenter: "mouseenter", + pointerdown: "mousedown", + pointermove: "mousemove", + pointerup: "mouseup", + pointerleave: "mouseout", + pointerout: "mouseout", + }, + es = t => null === t || "" === t; + const is = !!me && { passive: !0 }; + function ss(t, e, i) { + t.canvas.removeEventListener(e, i, is); + } + function ns(t, e) { + for (const i of t) if (i === e || i.contains(e)) return !0; + } + function os(t, e, i) { + const s = t.canvas, + n = new MutationObserver(t => { + let e = !1; + for (const i of t) e = e || ns(i.addedNodes, s), e = e && !ns(i.removedNodes, s); + e && i(); + }); + return n.observe(document, { childList: !0, subtree: !0 }), n; + } + function as(t, e, i) { + const s = t.canvas, + n = new MutationObserver(t => { + let e = !1; + for (const i of t) e = e || ns(i.removedNodes, s), e = e && !ns(i.addedNodes, s); + e && i(); + }); + return n.observe(document, { childList: !0, subtree: !0 }), n; + } + const rs = new Map(); + let ls = 0; + function hs() { + const t = window.devicePixelRatio; + t !== ls && (ls = t, + rs.forEach((e, i) => { + i.currentDevicePixelRatio !== t && e(); + })); + } + function cs(t, e, i) { + const s = t.canvas, n = s && ae(s); + if (!n) return; + const o = ht((t, e) => { + const s = n.clientWidth; + i(t, e), s < n.clientWidth && i(); + }, window), + a = new ResizeObserver(t => { + const e = t[0], i = e.contentRect.width, s = e.contentRect.height; + 0 === i && 0 === s || o(i, s); + }); + return a.observe(n), + function(t, e) { + rs.size || window.addEventListener("resize", hs), rs.set(t, e); + }(t, o), + a; + } + function ds(t, e, i) { + i && i.disconnect(), + "resize" === e && function(t) { + rs.delete(t), rs.size || window.removeEventListener("resize", hs); + }(t); + } + function us(t, e, i) { + const s = t.canvas, + n = ht( + e => { + null !== t.ctx && i(function(t, e) { + const i = ts[t.type] || t.type, { x: s, y: n } = ue(t, e); + return { type: i, chart: e, native: t, x: void 0 !== s ? s : null, y: void 0 !== n ? n : null }; + }(e, t)); + }, + t, + t => { + const e = t[0]; + return [e, e.offsetX, e.offsetY]; + }, + ); + return function(t, e, i) { + t.addEventListener(e, i, is); + }(s, e, n), + n; + } + class fs extends Ji { + acquireContext(t, e) { + const i = t && t.getContext && t.getContext("2d"); + return i && i.canvas === t + ? (function(t, e) { + const i = t.style, s = t.getAttribute("height"), n = t.getAttribute("width"); + if ( + t.$chartjs = { + initial: { height: s, width: n, style: { display: i.display, height: i.height, width: i.width } }, + }, + i.display = i.display || "block", + i.boxSizing = i.boxSizing || "border-box", + es(n) + ) { + const e = be(t, "width"); + void 0 !== e && (t.width = e); + } + if (es(s)) { + if ("" === t.style.height) t.height = t.width / (e || 2); + else { + const e = be(t, "height"); + void 0 !== e && (t.height = e); + } + } + }(t, e), + i) + : null; + } + releaseContext(t) { + const e = t.canvas; + if (!e.$chartjs) return !1; + const s = e.$chartjs.initial; + ["height", "width"].forEach(t => { + const n = s[t]; + i(n) ? e.removeAttribute(t) : e.setAttribute(t, n); + }); + const n = s.style || {}; + return Object.keys(n).forEach(t => { + e.style[t] = n[t]; + }), + e.width = e.width, + delete e.$chartjs, + !0; + } + addEventListener(t, e, i) { + this.removeEventListener(t, e); + const s = t.$proxies || (t.$proxies = {}), n = { attach: os, detach: as, resize: cs }[e] || us; + s[e] = n(t, e, i); + } + removeEventListener(t, e) { + const i = t.$proxies || (t.$proxies = {}), s = i[e]; + if (!s) return; + ({ attach: ds, detach: ds, resize: ds }[e] || ss)(t, e, s), i[e] = void 0; + } + getDevicePixelRatio() { + return window.devicePixelRatio; + } + getMaximumSize(t, e, i, s) { + return ge(t, e, i, s); + } + isAttached(t) { + const e = ae(t); + return !(!e || !e.isConnected); + } + } + function gs(t) { + return !oe() || "undefined" != typeof OffscreenCanvas && t instanceof OffscreenCanvas ? Qi : fs; + } + var ps = Object.freeze({ + __proto__: null, + _detectPlatform: gs, + BasePlatform: Ji, + BasicPlatform: Qi, + DomPlatform: fs, + }); + const ms = "transparent", + bs = { + boolean: (t, e, i) => i > .5 ? e : t, + color(t, e, i) { + const s = Jt(t || ms), n = s.valid && Jt(e || ms); + return n && n.valid ? n.mix(s, i).hexString() : e; + }, + number: (t, e, i) => t + (e - t) * i, + }; + class xs { + constructor(t, e, i, s) { + const n = e[i]; + s = bi([t.to, s, n, t.from]); + const o = bi([t.from, n, s]); + this._active = !0, + this._fn = t.fn || bs[t.type || typeof o], + this._easing = si[t.easing] || si.linear, + this._start = Math.floor(Date.now() + (t.delay || 0)), + this._duration = this._total = Math.floor(t.duration), + this._loop = !!t.loop, + this._target = e, + this._prop = i, + this._from = o, + this._to = s, + this._promises = void 0; + } + active() { + return this._active; + } + update(t, e, i) { + if (this._active) { + this._notify(!1); + const s = this._target[this._prop], n = i - this._start, o = this._duration - n; + this._start = i, + this._duration = Math.floor(Math.max(o, t.duration)), + this._total += n, + this._loop = !!t.loop, + this._to = bi([t.to, e, s, t.from]), + this._from = bi([t.from, s, e]); + } + } + cancel() { + this._active && (this.tick(Date.now()), this._active = !1, this._notify(!1)); + } + tick(t) { + const e = t - this._start, i = this._duration, s = this._prop, n = this._from, o = this._loop, a = this._to; + let r; + if (this._active = n !== a && (o || e < i), !this._active) return this._target[s] = a, void this._notify(!0); + e < 0 + ? this._target[s] = n + : (r = e / i % 2, + r = o && r > 1 ? 2 - r : r, + r = this._easing(Math.min(1, Math.max(0, r))), + this._target[s] = this._fn(n, a, r)); + } + wait() { + const t = this._promises || (this._promises = []); + return new Promise((e, i) => { + t.push({ res: e, rej: i }); + }); + } + _notify(t) { + const e = t ? "res" : "rej", i = this._promises || []; + for (let t = 0; t < i.length; t++) i[t][e](); + } + } + ne.set("animation", { + delay: void 0, + duration: 1e3, + easing: "easeOutQuart", + fn: void 0, + from: void 0, + loop: void 0, + to: void 0, + type: void 0, + }); + const _s = Object.keys(ne.animation); + ne.describe("animation", { + _fallback: !1, + _indexable: !1, + _scriptable: t => "onProgress" !== t && "onComplete" !== t && "fn" !== t, + }), + ne.set("animations", { + colors: { type: "color", properties: ["color", "borderColor", "backgroundColor"] }, + numbers: { type: "number", properties: ["x", "y", "borderWidth", "radius", "tension"] }, + }), + ne.describe("animations", { _fallback: "animation" }), + ne.set("transitions", { + active: { animation: { duration: 400 } }, + resize: { animation: { duration: 0 } }, + show: { animations: { colors: { from: "transparent" }, visible: { type: "boolean", duration: 0 } } }, + hide: { + animations: { colors: { to: "transparent" }, visible: { type: "boolean", easing: "linear", fn: t => 0 | t } }, + }, + }); + class ys { + constructor(t, e) { + this._chart = t, this._properties = new Map(), this.configure(e); + } + configure(t) { + if (!n(t)) return; + const e = this._properties; + Object.getOwnPropertyNames(t).forEach(i => { + const o = t[i]; + if (!n(o)) return; + const a = {}; + for (const t of _s) a[t] = o[t]; + (s(o.properties) && o.properties || [i]).forEach(t => { + t !== i && e.has(t) || e.set(t, a); + }); + }); + } + _animateOptions(t, e) { + const i = e.options, + s = function(t, e) { + if (!e) return; + let i = t.options; + if (!i) return void (t.options = e); + i.$shared && (t.options = i = Object.assign({}, i, { $shared: !1, $animations: {} })); + return i; + }(t, i); + if (!s) return []; + const n = this._createAnimations(s, i); + return i.$shared && function(t, e) { + const i = [], s = Object.keys(e); + for (let e = 0; e < s.length; e++) { + const n = t[s[e]]; + n && n.active() && i.push(n.wait()); + } + return Promise.all(i); + }(t.options.$animations, i).then(() => { + t.options = i; + }, () => {}), + n; + } + _createAnimations(t, e) { + const i = this._properties, s = [], n = t.$animations || (t.$animations = {}), o = Object.keys(e), a = Date.now(); + let r; + for (r = o.length - 1; r >= 0; --r) { + const l = o[r]; + if ("$" === l.charAt(0)) continue; + if ("options" === l) { + s.push(...this._animateOptions(t, e)); + continue; + } + const h = e[l]; + let c = n[l]; + const d = i.get(l); + if (c) { + if (d && c.active()) { + c.update(d, h, a); + continue; + } + c.cancel(); + } + d && d.duration ? (n[l] = c = new xs(d, t, l, h), s.push(c)) : t[l] = h; + } + return s; + } + update(t, e) { + if (0 === this._properties.size) return void Object.assign(t, e); + const i = this._createAnimations(t, e); + return i.length ? (mt.add(this._chart, i), !0) : void 0; + } + } + function vs(t, e) { + const i = t && t.options || {}, s = i.reverse, n = void 0 === i.min ? e : 0, o = void 0 === i.max ? e : 0; + return { start: s ? o : n, end: s ? n : o }; + } + function ws(t, e) { + const i = [], s = t._getSortedDatasetMetas(e); + let n, o; + for (n = 0, o = s.length; n < o; ++n) i.push(s[n].index); + return i; + } + function Ms(t, e, i, s = {}) { + const n = t.keys, a = "single" === s.mode; + let r, l, h, c; + if (null !== e) { + for (r = 0, l = n.length; r < l; ++r) { + if (h = +n[r], h === i) { + if (s.all) continue; + break; + } + c = t.values[h], o(c) && (a || 0 === e || z(e) === z(c)) && (e += c); + } + return e; + } + } + function ks(t, e) { + const i = t && t.options.stacked; + return i || void 0 === i && void 0 !== e.stack; + } + function Ss(t, e, i) { + const s = t[e] || (t[e] = {}); + return s[i] || (s[i] = {}); + } + function Ps(t, e, i, s) { + for (const n of e.getMatchingVisibleMetas(s).reverse()) { + const e = t[n.index]; + if (i && e > 0 || !i && e < 0) return n.index; + } + return null; + } + function Ds(t, e) { + const { chart: i, _cachedMeta: s } = t, + n = i._stacks || (i._stacks = {}), + { iScale: o, vScale: a, index: r } = s, + l = o.axis, + h = a.axis, + c = function(t, e, i) { + return `${t.id}.${e.id}.${i.stack || i.type}`; + }(o, a, s), + d = e.length; + let u; + for (let t = 0; t < d; ++t) { + const i = e[t], { [l]: o, [h]: d } = i; + u = (i._stacks || (i._stacks = {}))[h] = Ss(n, c, o), + u[r] = d, + u._top = Ps(u, a, !0, s.type), + u._bottom = Ps(u, a, !1, s.type); + } + } + function Os(t, e) { + const i = t.scales; + return Object.keys(i).filter(t => i[t].axis === e).shift(); + } + function Cs(t, e) { + const i = t.controller.index, s = t.vScale && t.vScale.axis; + if (s) { + e = e || t._parsed; + for (const t of e) { + const e = t._stacks; + if (!e || void 0 === e[s] || void 0 === e[s][i]) return; + delete e[s][i]; + } + } + } + const As = t => "reset" === t || "none" === t, Ts = (t, e) => e ? t : Object.assign({}, t); + class Ls { + constructor(t, e) { + this.chart = t, + this._ctx = t.ctx, + this.index = e, + this._cachedDataOpts = {}, + this._cachedMeta = this.getMeta(), + this._type = this._cachedMeta.type, + this.options = void 0, + this._parsing = !1, + this._data = void 0, + this._objectData = void 0, + this._sharedOptions = void 0, + this._drawStart = void 0, + this._drawCount = void 0, + this.enableOptionSharing = !1, + this.supportsDecimation = !1, + this.$context = void 0, + this._syncList = [], + this.initialize(); + } + initialize() { + const t = this._cachedMeta; + this.configure(), this.linkScales(), t._stacked = ks(t.vScale, t), this.addElements(); + } + updateIndex(t) { + this.index !== t && Cs(this._cachedMeta), this.index = t; + } + linkScales() { + const t = this.chart, + e = this._cachedMeta, + i = this.getDataset(), + s = (t, e, i, s) => "x" === t ? e : "r" === t ? s : i, + n = e.xAxisID = r(i.xAxisID, Os(t, "x")), + o = e.yAxisID = r(i.yAxisID, Os(t, "y")), + a = e.rAxisID = r(i.rAxisID, Os(t, "r")), + l = e.indexAxis, + h = e.iAxisID = s(l, n, o, a), + c = e.vAxisID = s(l, o, n, a); + e.xScale = this.getScaleForId(n), + e.yScale = this.getScaleForId(o), + e.rScale = this.getScaleForId(a), + e.iScale = this.getScaleForId(h), + e.vScale = this.getScaleForId(c); + } + getDataset() { + return this.chart.data.datasets[this.index]; + } + getMeta() { + return this.chart.getDatasetMeta(this.index); + } + getScaleForId(t) { + return this.chart.scales[t]; + } + _getOtherScale(t) { + const e = this._cachedMeta; + return t === e.iScale ? e.vScale : e.iScale; + } + reset() { + this._update("reset"); + } + _destroy() { + const t = this._cachedMeta; + this._data && at(this._data, this), t._stacked && Cs(t); + } + _dataCheck() { + const t = this.getDataset(), e = t.data || (t.data = []), i = this._data; + if (n(e)) { + this._data = function(t) { + const e = Object.keys(t), i = new Array(e.length); + let s, n, o; + for (s = 0, n = e.length; s < n; ++s) o = e[s], i[s] = { x: o, y: t[o] }; + return i; + }(e); + } else if (i !== e) { + if (i) { + at(i, this); + const t = this._cachedMeta; + Cs(t), t._parsed = []; + } + e && Object.isExtensible(e) && ot(e, this), this._syncList = [], this._data = e; + } + } + addElements() { + const t = this._cachedMeta; + this._dataCheck(), this.datasetElementType && (t.dataset = new this.datasetElementType()); + } + buildOrUpdateElements(t) { + const e = this._cachedMeta, i = this.getDataset(); + let s = !1; + this._dataCheck(); + const n = e._stacked; + e._stacked = ks(e.vScale, e), + e.stack !== i.stack && (s = !0, Cs(e), e.stack = i.stack), + this._resyncElements(t), + (s || n !== e._stacked) && Ds(this, e._parsed); + } + configure() { + const t = this.chart.config, e = t.datasetScopeKeys(this._type), i = t.getOptionScopes(this.getDataset(), e, !0); + this.options = t.createResolver(i, this.getContext()), + this._parsing = this.options.parsing, + this._cachedDataOpts = {}; + } + parse(t, e) { + const { _cachedMeta: i, _data: o } = this, { iScale: a, _stacked: r } = i, l = a.axis; + let h, c, d, u = 0 === t && e === o.length || i._sorted, f = t > 0 && i._parsed[t - 1]; + if (!1 === this._parsing) i._parsed = o, i._sorted = !0, d = o; + else { + d = s(o[t]) + ? this.parseArrayData(i, o, t, e) + : n(o[t]) + ? this.parseObjectData(i, o, t, e) + : this.parsePrimitiveData(i, o, t, e); + const a = () => null === c[l] || f && c[l] < f[l]; + for (h = 0; h < e; ++h) i._parsed[h + t] = c = d[h], u && (a() && (u = !1), f = c); + i._sorted = u; + } + r && Ds(this, d); + } + parsePrimitiveData(t, e, i, s) { + const { iScale: n, vScale: o } = t, a = n.axis, r = o.axis, l = n.getLabels(), h = n === o, c = new Array(s); + let d, u, f; + for (d = 0, u = s; d < u; ++d) f = d + i, c[d] = { [a]: h || n.parse(l[f], f), [r]: o.parse(e[f], f) }; + return c; + } + parseArrayData(t, e, i, s) { + const { xScale: n, yScale: o } = t, a = new Array(s); + let r, l, h, c; + for (r = 0, l = s; r < l; ++r) h = r + i, c = e[h], a[r] = { x: n.parse(c[0], h), y: o.parse(c[1], h) }; + return a; + } + parseObjectData(t, e, i, s) { + const { xScale: n, yScale: o } = t, { xAxisKey: a = "x", yAxisKey: r = "y" } = this._parsing, l = new Array(s); + let h, c, d, u; + for (h = 0, c = s; h < c; ++h) d = h + i, u = e[d], l[h] = { x: n.parse(y(u, a), d), y: o.parse(y(u, r), d) }; + return l; + } + getParsed(t) { + return this._cachedMeta._parsed[t]; + } + getDataElement(t) { + return this._cachedMeta.data[t]; + } + applyStack(t, e, i) { + const s = this.chart, n = this._cachedMeta, o = e[t.axis]; + return Ms({ keys: ws(s, !0), values: e._stacks[t.axis] }, o, n.index, { mode: i }); + } + updateRangeFromParsed(t, e, i, s) { + const n = i[e.axis]; + let o = null === n ? NaN : n; + const a = s && i._stacks[e.axis]; + s && a && (s.values = a, o = Ms(s, n, this._cachedMeta.index)), + t.min = Math.min(t.min, o), + t.max = Math.max(t.max, o); + } + getMinMax(t, e) { + const i = this._cachedMeta, + s = i._parsed, + n = i._sorted && t === i.iScale, + a = s.length, + r = this._getOtherScale(t), + l = ((t, e, i) => t && !e.hidden && e._stacked && { keys: ws(i, !0), values: null })(e, i, this.chart), + h = { min: Number.POSITIVE_INFINITY, max: Number.NEGATIVE_INFINITY }, + { min: c, max: d } = function(t) { + const { min: e, max: i, minDefined: s, maxDefined: n } = t.getUserBounds(); + return { min: s ? e : Number.NEGATIVE_INFINITY, max: n ? i : Number.POSITIVE_INFINITY }; + }(r); + let u, f; + function g() { + f = s[u]; + const e = f[r.axis]; + return !o(f[t.axis]) || c > e || d < e; + } + for (u = 0; u < a && (g() || (this.updateRangeFromParsed(h, t, f, l), !n)); ++u); + if (n) { + for (u = a - 1; u >= 0; --u) { + if (!g()) { + this.updateRangeFromParsed(h, t, f, l); + break; + } + } + } + return h; + } + getAllParsedValues(t) { + const e = this._cachedMeta._parsed, i = []; + let s, n, a; + for (s = 0, n = e.length; s < n; ++s) a = e[s][t.axis], o(a) && i.push(a); + return i; + } + getMaxOverflow() { + return !1; + } + getLabelAndValue(t) { + const e = this._cachedMeta, i = e.iScale, s = e.vScale, n = this.getParsed(t); + return { label: i ? "" + i.getLabelForValue(n[i.axis]) : "", value: s ? "" + s.getLabelForValue(n[s.axis]) : "" }; + } + _update(t) { + const e = this._cachedMeta; + this.update(t || "default"), + e._clip = function(t) { + let e, i, s, o; + return n(t) ? (e = t.top, i = t.right, s = t.bottom, o = t.left) : e = + i = + s = + o = + t, + { top: e, right: i, bottom: s, left: o, disabled: !1 === t }; + }(r( + this.options.clip, + function(t, e, i) { + if (!1 === i) return !1; + const s = vs(t, i), n = vs(e, i); + return { top: n.end, right: s.end, bottom: n.start, left: s.start }; + }(e.xScale, e.yScale, this.getMaxOverflow()), + )); + } + update(t) {} + draw() { + const t = this._ctx, + e = this.chart, + i = this._cachedMeta, + s = i.data || [], + n = e.chartArea, + o = [], + a = this._drawStart || 0, + r = this._drawCount || s.length - a, + l = this.options.drawActiveElementsOnTop; + let h; + for (i.dataset && i.dataset.draw(t, n, a, r), h = a; h < a + r; ++h) { + const e = s[h]; + e.hidden || (e.active && l ? o.push(e) : e.draw(t, n)); + } + for (h = 0; h < o.length; ++h) o[h].draw(t, n); + } + getStyle(t, e) { + const i = e ? "active" : "default"; + return void 0 === t && this._cachedMeta.dataset + ? this.resolveDatasetElementOptions(i) + : this.resolveDataElementOptions(t || 0, i); + } + getContext(t, e, i) { + const s = this.getDataset(); + let n; + if (t >= 0 && t < this._cachedMeta.data.length) { + const e = this._cachedMeta.data[t]; + n = e.$context || (e.$context = function(t, e, i) { + return _i(t, { + active: !1, + dataIndex: e, + parsed: void 0, + raw: void 0, + element: i, + index: e, + mode: "default", + type: "data", + }); + }(this.getContext(), t, e)), + n.parsed = this.getParsed(t), + n.raw = s.data[t], + n.index = n.dataIndex = t; + } else {n = this.$context || (this.$context = function(t, e) { + return _i(t, { active: !1, dataset: void 0, datasetIndex: e, index: e, mode: "default", type: "dataset" }); + }(this.chart.getContext(), this.index)), + n.dataset = s, + n.index = n.datasetIndex = this.index;} + return n.active = !!e, n.mode = i, n; + } + resolveDatasetElementOptions(t) { + return this._resolveElementOptions(this.datasetElementType.id, t); + } + resolveDataElementOptions(t, e) { + return this._resolveElementOptions(this.dataElementType.id, e, t); + } + _resolveElementOptions(t, e = "default", i) { + const s = "active" === e, + n = this._cachedDataOpts, + o = t + "-" + e, + a = n[o], + r = this.enableOptionSharing && M(i); + if (a) return Ts(a, r); + const l = this.chart.config, + h = l.datasetElementScopeKeys(this._type, t), + c = s ? [`${t}Hover`, "hover", t, ""] : [t, ""], + d = l.getOptionScopes(this.getDataset(), h), + u = Object.keys(ne.elements[t]), + f = l.resolveNamedOptions(d, u, () => this.getContext(i, s), c); + return f.$shared && (f.$shared = r, n[o] = Object.freeze(Ts(f, r))), f; + } + _resolveAnimations(t, e, i) { + const s = this.chart, n = this._cachedDataOpts, o = `animation-${e}`, a = n[o]; + if (a) return a; + let r; + if (!1 !== s.options.animation) { + const s = this.chart.config, + n = s.datasetAnimationScopeKeys(this._type, e), + o = s.getOptionScopes(this.getDataset(), n); + r = s.createResolver(o, this.getContext(t, i, e)); + } + const l = new ys(s, r && r.animations); + return r && r._cacheable && (n[o] = Object.freeze(l)), l; + } + getSharedOptions(t) { + if (t.$shared) return this._sharedOptions || (this._sharedOptions = Object.assign({}, t)); + } + includeOptions(t, e) { + return !e || As(t) || this.chart._animationsDisabled; + } + _getSharedOptions(t, e) { + const i = this.resolveDataElementOptions(t, e), + s = this._sharedOptions, + n = this.getSharedOptions(i), + o = this.includeOptions(e, n) || n !== s; + return this.updateSharedOptions(n, e, i), { sharedOptions: n, includeOptions: o }; + } + updateElement(t, e, i, s) { + As(s) ? Object.assign(t, i) : this._resolveAnimations(e, s).update(t, i); + } + updateSharedOptions(t, e, i) { + t && !As(e) && this._resolveAnimations(void 0, e).update(t, i); + } + _setStyle(t, e, i, s) { + t.active = s; + const n = this.getStyle(e, s); + this._resolveAnimations(e, i, s).update(t, { options: !s && this.getSharedOptions(n) || n }); + } + removeHoverStyle(t, e, i) { + this._setStyle(t, i, "active", !1); + } + setHoverStyle(t, e, i) { + this._setStyle(t, i, "active", !0); + } + _removeDatasetHoverStyle() { + const t = this._cachedMeta.dataset; + t && this._setStyle(t, void 0, "active", !1); + } + _setDatasetHoverStyle() { + const t = this._cachedMeta.dataset; + t && this._setStyle(t, void 0, "active", !0); + } + _resyncElements(t) { + const e = this._data, i = this._cachedMeta.data; + for (const [t, e, i] of this._syncList) this[t](e, i); + this._syncList = []; + const s = i.length, n = e.length, o = Math.min(n, s); + o && this.parse(0, o), n > s ? this._insertElements(s, n - s, t) : n < s && this._removeElements(n, s - n); + } + _insertElements(t, e, i = !0) { + const s = this._cachedMeta, n = s.data, o = t + e; + let a; + const r = t => { + for (t.length += e, a = t.length - 1; a >= o; a--) t[a] = t[a - e]; + }; + for (r(n), a = t; a < o; ++a) n[a] = new this.dataElementType(); + this._parsing && r(s._parsed), this.parse(t, e), i && this.updateElements(n, t, e, "reset"); + } + updateElements(t, e, i, s) {} + _removeElements(t, e) { + const i = this._cachedMeta; + if (this._parsing) { + const s = i._parsed.splice(t, e); + i._stacked && Cs(i, s); + } + i.data.splice(t, e); + } + _sync(t) { + if (this._parsing) this._syncList.push(t); + else { + const [e, i, s] = t; + this[e](i, s); + } + this.chart._dataChanges.push([this.index, ...t]); + } + _onDataPush() { + const t = arguments.length; + this._sync(["_insertElements", this.getDataset().data.length - t, t]); + } + _onDataPop() { + this._sync(["_removeElements", this._cachedMeta.data.length - 1, 1]); + } + _onDataShift() { + this._sync(["_removeElements", 0, 1]); + } + _onDataSplice(t, e) { + e && this._sync(["_removeElements", t, e]); + const i = arguments.length - 2; + i && this._sync(["_insertElements", t, i]); + } + _onDataUnshift() { + this._sync(["_insertElements", 0, arguments.length]); + } + } + Ls.defaults = {}, Ls.prototype.datasetElementType = null, Ls.prototype.dataElementType = null; + class Es { + constructor() { + this.x = void 0, this.y = void 0, this.active = !1, this.options = void 0, this.$animations = void 0; + } + tooltipPosition(t) { + const { x: e, y: i } = this.getProps(["x", "y"], t); + return { x: e, y: i }; + } + hasValue() { + return B(this.x) && B(this.y); + } + getProps(t, e) { + const i = this.$animations; + if (!e || !i) return this; + const s = {}; + return t.forEach(t => { + s[t] = i[t] && i[t].active() ? i[t]._to : this[t]; + }), + s; + } + } + Es.defaults = {}, Es.defaultRoutes = void 0; + const Rs = { + values: t => s(t) ? t : "" + t, + numeric(t, e, i) { + if (0 === t) return "0"; + const s = this.chart.options.locale; + let n, o = t; + if (i.length > 1) { + const e = Math.max(Math.abs(i[0].value), Math.abs(i[i.length - 1].value)); + (e < 1e-4 || e > 1e15) && (n = "scientific"), + o = function(t, e) { + let i = e.length > 3 ? e[2].value - e[1].value : e[1].value - e[0].value; + Math.abs(i) >= 1 && t !== Math.floor(t) && (i = t - Math.floor(t)); + return i; + }(t, i); + } + const a = I(Math.abs(o)), + r = Math.max(Math.min(-1 * Math.floor(a), 20), 0), + l = { notation: n, minimumFractionDigits: r, maximumFractionDigits: r }; + return Object.assign(l, this.options.ticks.format), li(t, s, l); + }, + logarithmic(t, e, i) { + if (0 === t) return "0"; + const s = t / Math.pow(10, Math.floor(I(t))); + return 1 === s || 2 === s || 5 === s ? Rs.numeric.call(this, t, e, i) : ""; + }, + }; + var Is = { formatters: Rs }; + function zs(t, e) { + const s = t.options.ticks, + n = s.maxTicksLimit || function(t) { + const e = t.options.offset, i = t._tickSize(), s = t._length / i + (e ? 0 : 1), n = t._maxLength / i; + return Math.floor(Math.min(s, n)); + }(t), + o = s.major.enabled + ? function(t) { + const e = []; + let i, s; + for (i = 0, s = t.length; i < s; i++) t[i].major && e.push(i); + return e; + }(e) + : [], + a = o.length, + r = o[0], + l = o[a - 1], + h = []; + if (a > n) { + return function(t, e, i, s) { + let n, o = 0, a = i[0]; + for (s = Math.ceil(s), n = 0; n < t.length; n++) n === a && (e.push(t[n]), o++, a = i[o * s]); + }(e, h, o, a / n), + h; + } + const c = function(t, e, i) { + const s = function(t) { + const e = t.length; + let i, s; + if (e < 2) return !1; + for (s = t[0], i = 1; i < e; ++i) if (t[i] - t[i - 1] !== s) return !1; + return s; + }(t), + n = e.length / i; + if (!s) return Math.max(n, 1); + const o = V(s); + for (let t = 0, e = o.length - 1; t < e; t++) { + const e = o[t]; + if (e > n) return e; + } + return Math.max(n, 1); + }(o, e, n); + if (a > 0) { + let t, s; + const n = a > 1 ? Math.round((l - r) / (a - 1)) : null; + for (Fs(e, h, c, i(n) ? 0 : r - n, r), t = 0, s = a - 1; t < s; t++) Fs(e, h, c, o[t], o[t + 1]); + return Fs(e, h, c, l, i(n) ? e.length : l + n), h; + } + return Fs(e, h, c), h; + } + function Fs(t, e, i, s, n) { + const o = r(s, 0), a = Math.min(r(n, t.length), t.length); + let l, h, c, d = 0; + for (i = Math.ceil(i), n && (l = n - s, i = l / Math.floor(l / i)), c = o; c < 0;) d++, c = Math.round(o + d * i); + for (h = Math.max(o, 0); h < a; h++) h === c && (e.push(t[h]), d++, c = Math.round(o + d * i)); + } + ne.set("scale", { + display: !0, + offset: !1, + reverse: !1, + beginAtZero: !1, + bounds: "ticks", + grace: 0, + grid: { + display: !0, + lineWidth: 1, + drawBorder: !0, + drawOnChartArea: !0, + drawTicks: !0, + tickLength: 8, + tickWidth: (t, e) => e.lineWidth, + tickColor: (t, e) => e.color, + offset: !1, + borderDash: [], + borderDashOffset: 0, + borderWidth: 1, + }, + title: { display: !1, text: "", padding: { top: 4, bottom: 4 } }, + ticks: { + minRotation: 0, + maxRotation: 50, + mirror: !1, + textStrokeWidth: 0, + textStrokeColor: "", + padding: 3, + display: !0, + autoSkip: !0, + autoSkipPadding: 3, + labelOffset: 0, + callback: Is.formatters.values, + minor: {}, + major: {}, + align: "center", + crossAlign: "near", + showLabelBackdrop: !1, + backdropColor: "rgba(255, 255, 255, 0.75)", + backdropPadding: 2, + }, + }), + ne.route("scale.ticks", "color", "", "color"), + ne.route("scale.grid", "color", "", "borderColor"), + ne.route("scale.grid", "borderColor", "", "borderColor"), + ne.route("scale.title", "color", "", "color"), + ne.describe("scale", { + _fallback: !1, + _scriptable: t => !t.startsWith("before") && !t.startsWith("after") && "callback" !== t && "parser" !== t, + _indexable: t => "borderDash" !== t && "tickBorderDash" !== t, + }), + ne.describe("scales", { _fallback: "scale" }), + ne.describe("scale.ticks", { + _scriptable: t => "backdropPadding" !== t && "callback" !== t, + _indexable: t => "backdropPadding" !== t, + }); + const Vs = (t, e, i) => "top" === e || "left" === e ? t[e] + i : t[e] - i; + function Bs(t, e) { + const i = [], s = t.length / e, n = t.length; + let o = 0; + for (; o < n; o += s) i.push(t[Math.floor(o)]); + return i; + } + function Ns(t, e, i) { + const s = t.ticks.length, n = Math.min(e, s - 1), o = t._startPixel, a = t._endPixel, r = 1e-6; + let l, h = t.getPixelForTick(n); + if ( + !(i && (l = 1 === s + ? Math.max(h - o, a - h) + : 0 === e + ? (t.getPixelForTick(1) - h) / 2 + : (h - t.getPixelForTick(n - 1)) / 2, + h += n < e ? l : -l, + h < o - r || h > a + r)) + ) return h; + } + function Ws(t) { + return t.drawTicks ? t.tickLength : 0; + } + function js(t, e) { + if (!t.display) return 0; + const i = mi(t.font, e), n = pi(t.padding); + return (s(t.text) ? t.text.length : 1) * i.lineHeight + n.height; + } + function Hs(t, e, i) { + let s = dt(t); + return (i && "right" !== e || !i && "right" === e) + && (s = (t => "left" === t ? "right" : "right" === t ? "left" : t)(s)), + s; + } + class $s extends Es { + constructor(t) { + super(), + this.id = t.id, + this.type = t.type, + this.options = void 0, + this.ctx = t.ctx, + this.chart = t.chart, + this.top = void 0, + this.bottom = void 0, + this.left = void 0, + this.right = void 0, + this.width = void 0, + this.height = void 0, + this._margins = { left: 0, right: 0, top: 0, bottom: 0 }, + this.maxWidth = void 0, + this.maxHeight = void 0, + this.paddingTop = void 0, + this.paddingBottom = void 0, + this.paddingLeft = void 0, + this.paddingRight = void 0, + this.axis = void 0, + this.labelRotation = void 0, + this.min = void 0, + this.max = void 0, + this._range = void 0, + this.ticks = [], + this._gridLineItems = null, + this._labelItems = null, + this._labelSizes = null, + this._length = 0, + this._maxLength = 0, + this._longestTextCache = {}, + this._startPixel = void 0, + this._endPixel = void 0, + this._reversePixels = !1, + this._userMax = void 0, + this._userMin = void 0, + this._suggestedMax = void 0, + this._suggestedMin = void 0, + this._ticksLength = 0, + this._borderValue = 0, + this._cache = {}, + this._dataLimitsCached = !1, + this.$context = void 0; + } + init(t) { + this.options = t.setContext(this.getContext()), + this.axis = t.axis, + this._userMin = this.parse(t.min), + this._userMax = this.parse(t.max), + this._suggestedMin = this.parse(t.suggestedMin), + this._suggestedMax = this.parse(t.suggestedMax); + } + parse(t, e) { + return t; + } + getUserBounds() { + let { _userMin: t, _userMax: e, _suggestedMin: i, _suggestedMax: s } = this; + return t = a(t, Number.POSITIVE_INFINITY), + e = a(e, Number.NEGATIVE_INFINITY), + i = a(i, Number.POSITIVE_INFINITY), + s = a(s, Number.NEGATIVE_INFINITY), + { min: a(t, i), max: a(e, s), minDefined: o(t), maxDefined: o(e) }; + } + getMinMax(t) { + let e, { min: i, max: s, minDefined: n, maxDefined: o } = this.getUserBounds(); + if (n && o) return { min: i, max: s }; + const r = this.getMatchingVisibleMetas(); + for (let a = 0, l = r.length; a < l; ++a) { + e = r[a].controller.getMinMax(this, t), n || (i = Math.min(i, e.min)), o || (s = Math.max(s, e.max)); + } + return i = o && i > s ? s : i, s = n && i > s ? i : s, { min: a(i, a(s, i)), max: a(s, a(i, s)) }; + } + getPadding() { + return { + left: this.paddingLeft || 0, + top: this.paddingTop || 0, + right: this.paddingRight || 0, + bottom: this.paddingBottom || 0, + }; + } + getTicks() { + return this.ticks; + } + getLabels() { + const t = this.chart.data; + return this.options.labels || (this.isHorizontal() ? t.xLabels : t.yLabels) || t.labels || []; + } + beforeLayout() { + this._cache = {}, this._dataLimitsCached = !1; + } + beforeUpdate() { + c(this.options.beforeUpdate, [this]); + } + update(t, e, i) { + const { beginAtZero: s, grace: n, ticks: o } = this.options, a = o.sampleSize; + this.beforeUpdate(), + this.maxWidth = t, + this.maxHeight = e, + this._margins = i = Object.assign({ left: 0, right: 0, top: 0, bottom: 0 }, i), + this.ticks = null, + this._labelSizes = null, + this._gridLineItems = null, + this._labelItems = null, + this.beforeSetDimensions(), + this.setDimensions(), + this.afterSetDimensions(), + this._maxLength = this.isHorizontal() ? this.width + i.left + i.right : this.height + i.top + i.bottom, + this._dataLimitsCached + || (this.beforeDataLimits(), + this.determineDataLimits(), + this.afterDataLimits(), + this._range = xi(this, n, s), + this._dataLimitsCached = !0), + this.beforeBuildTicks(), + this.ticks = this.buildTicks() || [], + this.afterBuildTicks(); + const r = a < this.ticks.length; + this._convertTicksToLabels(r ? Bs(this.ticks, a) : this.ticks), + this.configure(), + this.beforeCalculateLabelRotation(), + this.calculateLabelRotation(), + this.afterCalculateLabelRotation(), + o.display && (o.autoSkip || "auto" === o.source) + && (this.ticks = zs(this, this.ticks), this._labelSizes = null, this.afterAutoSkip()), + r && this._convertTicksToLabels(this.ticks), + this.beforeFit(), + this.fit(), + this.afterFit(), + this.afterUpdate(); + } + configure() { + let t, e, i = this.options.reverse; + this.isHorizontal() ? (t = this.left, e = this.right) : (t = this.top, e = this.bottom, i = !i), + this._startPixel = t, + this._endPixel = e, + this._reversePixels = i, + this._length = e - t, + this._alignToPixels = this.options.alignToPixels; + } + afterUpdate() { + c(this.options.afterUpdate, [this]); + } + beforeSetDimensions() { + c(this.options.beforeSetDimensions, [this]); + } + setDimensions() { + this.isHorizontal() + ? (this.width = this.maxWidth, this.left = 0, this.right = this.width) + : (this.height = this.maxHeight, this.top = 0, this.bottom = this.height), + this.paddingLeft = 0, + this.paddingTop = 0, + this.paddingRight = 0, + this.paddingBottom = 0; + } + afterSetDimensions() { + c(this.options.afterSetDimensions, [this]); + } + _callHooks(t) { + this.chart.notifyPlugins(t, this.getContext()), c(this.options[t], [this]); + } + beforeDataLimits() { + this._callHooks("beforeDataLimits"); + } + determineDataLimits() {} + afterDataLimits() { + this._callHooks("afterDataLimits"); + } + beforeBuildTicks() { + this._callHooks("beforeBuildTicks"); + } + buildTicks() { + return []; + } + afterBuildTicks() { + this._callHooks("afterBuildTicks"); + } + beforeTickToLabelConversion() { + c(this.options.beforeTickToLabelConversion, [this]); + } + generateTickLabels(t) { + const e = this.options.ticks; + let i, s, n; + for (i = 0, s = t.length; i < s; i++) n = t[i], n.label = c(e.callback, [n.value, i, t], this); + } + afterTickToLabelConversion() { + c(this.options.afterTickToLabelConversion, [this]); + } + beforeCalculateLabelRotation() { + c(this.options.beforeCalculateLabelRotation, [this]); + } + calculateLabelRotation() { + const t = this.options, e = t.ticks, i = this.ticks.length, s = e.minRotation || 0, n = e.maxRotation; + let o, a, r, l = s; + if (!this._isVisible() || !e.display || s >= n || i <= 1 || !this.isHorizontal()) { + return void (this.labelRotation = s); + } + const h = this._getLabelSizes(), + c = h.widest.width, + d = h.highest.height, + u = Z(this.chart.width - c, 0, this.maxWidth); + o = t.offset ? this.maxWidth / i : u / (i - 1), + c + 6 > o + && (o = u / (i - (t.offset ? .5 : 1)), + a = this.maxHeight - Ws(t.grid) - e.padding - js(t.title, this.chart.options.font), + r = Math.sqrt(c * c + d * d), + l = $( + Math.min( + Math.asin(Z((h.highest.height + 6) / o, -1, 1)), + Math.asin(Z(a / r, -1, 1)) - Math.asin(Z(d / r, -1, 1)), + ), + ), + l = Math.max(s, Math.min(n, l))), + this.labelRotation = l; + } + afterCalculateLabelRotation() { + c(this.options.afterCalculateLabelRotation, [this]); + } + afterAutoSkip() {} + beforeFit() { + c(this.options.beforeFit, [this]); + } + fit() { + const t = { width: 0, height: 0 }, + { chart: e, options: { ticks: i, title: s, grid: n } } = this, + o = this._isVisible(), + a = this.isHorizontal(); + if (o) { + const o = js(s, e.options.font); + if ( + a ? (t.width = this.maxWidth, t.height = Ws(n) + o) : (t.height = this.maxHeight, t.width = Ws(n) + o), + i.display && this.ticks.length + ) { + const { first: e, last: s, widest: n, highest: o } = this._getLabelSizes(), + r = 2 * i.padding, + l = H(this.labelRotation), + h = Math.cos(l), + c = Math.sin(l); + if (a) { + const e = i.mirror ? 0 : c * n.width + h * o.height; + t.height = Math.min(this.maxHeight, t.height + e + r); + } else { + const e = i.mirror ? 0 : h * n.width + c * o.height; + t.width = Math.min(this.maxWidth, t.width + e + r); + } + this._calculatePadding(e, s, c, h); + } + } + this._handleMargins(), + a + ? (this.width = this._length = e.width - this._margins.left - this._margins.right, this.height = t.height) + : (this.width = t.width, this.height = this._length = e.height - this._margins.top - this._margins.bottom); + } + _calculatePadding(t, e, i, s) { + const { ticks: { align: n, padding: o }, position: a } = this.options, + r = 0 !== this.labelRotation, + l = "top" !== a && "x" === this.axis; + if (this.isHorizontal()) { + const a = this.getPixelForTick(0) - this.left, h = this.right - this.getPixelForTick(this.ticks.length - 1); + let c = 0, d = 0; + r + ? l ? (c = s * t.width, d = i * e.height) : (c = i * t.height, d = s * e.width) + : "start" === n + ? d = e.width + : "end" === n + ? c = t.width + : "inner" !== n && (c = t.width / 2, d = e.width / 2), + this.paddingLeft = Math.max((c - a + o) * this.width / (this.width - a), 0), + this.paddingRight = Math.max((d - h + o) * this.width / (this.width - h), 0); + } else { + let i = e.height / 2, s = t.height / 2; + "start" === n ? (i = 0, s = t.height) : "end" === n && (i = e.height, s = 0), + this.paddingTop = i + o, + this.paddingBottom = s + o; + } + } + _handleMargins() { + this._margins + && (this._margins.left = Math.max(this.paddingLeft, this._margins.left), + this._margins.top = Math.max(this.paddingTop, this._margins.top), + this._margins.right = Math.max(this.paddingRight, this._margins.right), + this._margins.bottom = Math.max(this.paddingBottom, this._margins.bottom)); + } + afterFit() { + c(this.options.afterFit, [this]); + } + isHorizontal() { + const { axis: t, position: e } = this.options; + return "top" === e || "bottom" === e || "x" === t; + } + isFullSize() { + return this.options.fullSize; + } + _convertTicksToLabels(t) { + let e, s; + for (this.beforeTickToLabelConversion(), this.generateTickLabels(t), e = 0, s = t.length; e < s; e++) { + i(t[e].label) && (t.splice(e, 1), s--, e--); + } + this.afterTickToLabelConversion(); + } + _getLabelSizes() { + let t = this._labelSizes; + if (!t) { + const e = this.options.ticks.sampleSize; + let i = this.ticks; + e < i.length && (i = Bs(i, e)), this._labelSizes = t = this._computeLabelSizes(i, i.length); + } + return t; + } + _computeLabelSizes(t, e) { + const { ctx: n, _longestTextCache: o } = this, a = [], r = []; + let l, h, c, u, f, g, p, m, b, x, _, y = 0, v = 0; + for (l = 0; l < e; ++l) { + if ( + u = t[l].label, + f = this._resolveTickFontOptions(l), + n.font = g = f.string, + p = o[g] = o[g] || { data: {}, gc: [] }, + m = f.lineHeight, + b = x = 0, + i(u) || s(u) + ) { + if (s(u)) { + for (h = 0, c = u.length; h < c; ++h) _ = u[h], i(_) || s(_) || (b = _e(n, p.data, p.gc, b, _), x += m); + } + } else b = _e(n, p.data, p.gc, b, u), x = m; + a.push(b), r.push(x), y = Math.max(b, y), v = Math.max(x, v); + } + !function(t, e) { + d(t, t => { + const i = t.gc, s = i.length / 2; + let n; + if (s > e) { + for (n = 0; n < s; ++n) delete t.data[i[n]]; + i.splice(0, s); + } + }); + }(o, e); + const w = a.indexOf(y), M = r.indexOf(v), k = t => ({ width: a[t] || 0, height: r[t] || 0 }); + return { first: k(0), last: k(e - 1), widest: k(w), highest: k(M), widths: a, heights: r }; + } + getLabelForValue(t) { + return t; + } + getPixelForValue(t, e) { + return NaN; + } + getValueForPixel(t) {} + getPixelForTick(t) { + const e = this.ticks; + return t < 0 || t > e.length - 1 ? null : this.getPixelForValue(e[t].value); + } + getPixelForDecimal(t) { + this._reversePixels && (t = 1 - t); + const e = this._startPixel + t * this._length; + return J(this._alignToPixels ? ve(this.chart, e, 0) : e); + } + getDecimalForPixel(t) { + const e = (t - this._startPixel) / this._length; + return this._reversePixels ? 1 - e : e; + } + getBasePixel() { + return this.getPixelForValue(this.getBaseValue()); + } + getBaseValue() { + const { min: t, max: e } = this; + return t < 0 && e < 0 ? e : t > 0 && e > 0 ? t : 0; + } + getContext(t) { + const e = this.ticks || []; + if (t >= 0 && t < e.length) { + const i = e[t]; + return i.$context || (i.$context = function(t, e, i) { + return _i(t, { tick: i, index: e, type: "tick" }); + }(this.getContext(), t, i)); + } + return this.$context || (this.$context = _i(this.chart.getContext(), { scale: this, type: "scale" })); + } + _tickSize() { + const t = this.options.ticks, + e = H(this.labelRotation), + i = Math.abs(Math.cos(e)), + s = Math.abs(Math.sin(e)), + n = this._getLabelSizes(), + o = t.autoSkipPadding || 0, + a = n ? n.widest.width + o : 0, + r = n ? n.highest.height + o : 0; + return this.isHorizontal() ? r * i > a * s ? a / i : r / s : r * s < a * i ? r / i : a / s; + } + _isVisible() { + const t = this.options.display; + return "auto" !== t ? !!t : this.getMatchingVisibleMetas().length > 0; + } + _computeGridLineItems(t) { + const e = this.axis, + i = this.chart, + s = this.options, + { grid: o, position: a } = s, + l = o.offset, + h = this.isHorizontal(), + c = this.ticks.length + (l ? 1 : 0), + d = Ws(o), + u = [], + f = o.setContext(this.getContext()), + g = f.drawBorder ? f.borderWidth : 0, + p = g / 2, + m = function(t) { + return ve(i, t, g); + }; + let b, x, _, y, v, w, M, k, S, P, D, O; + if ("top" === a) b = m(this.bottom), w = this.bottom - d, k = b - p, P = m(t.top) + p, O = t.bottom; + else if ("bottom" === a) b = m(this.top), P = t.top, O = m(t.bottom) - p, w = b + p, k = this.top + d; + else if ("left" === a) b = m(this.right), v = this.right - d, M = b - p, S = m(t.left) + p, D = t.right; + else if ("right" === a) b = m(this.left), S = t.left, D = m(t.right) - p, v = b + p, M = this.left + d; + else if ("x" === e) { + if ("center" === a) b = m((t.top + t.bottom) / 2 + .5); + else if (n(a)) { + const t = Object.keys(a)[0], e = a[t]; + b = m(this.chart.scales[t].getPixelForValue(e)); + } + P = t.top, O = t.bottom, w = b + p, k = w + d; + } else if ("y" === e) { + if ("center" === a) b = m((t.left + t.right) / 2); + else if (n(a)) { + const t = Object.keys(a)[0], e = a[t]; + b = m(this.chart.scales[t].getPixelForValue(e)); + } + v = b - p, M = v - d, S = t.left, D = t.right; + } + const C = r(s.ticks.maxTicksLimit, c), A = Math.max(1, Math.ceil(c / C)); + for (x = 0; x < c; x += A) { + const t = o.setContext(this.getContext(x)), + e = t.lineWidth, + s = t.color, + n = t.borderDash || [], + a = t.borderDashOffset, + r = t.tickWidth, + c = t.tickColor, + d = t.tickBorderDash || [], + f = t.tickBorderDashOffset; + _ = Ns(this, x, l), + void 0 !== _ && (y = ve(i, _, e), + h + ? v = + M = + S = + D = + y + : w = + k = + P = + O = + y, + u.push({ + tx1: v, + ty1: w, + tx2: M, + ty2: k, + x1: S, + y1: P, + x2: D, + y2: O, + width: e, + color: s, + borderDash: n, + borderDashOffset: a, + tickWidth: r, + tickColor: c, + tickBorderDash: d, + tickBorderDashOffset: f, + })); + } + return this._ticksLength = c, this._borderValue = b, u; + } + _computeLabelItems(t) { + const e = this.axis, + i = this.options, + { position: o, ticks: a } = i, + r = this.isHorizontal(), + l = this.ticks, + { align: h, crossAlign: c, padding: d, mirror: u } = a, + f = Ws(i.grid), + g = f + d, + p = u ? -d : g, + m = -H(this.labelRotation), + b = []; + let x, _, y, v, w, M, k, S, P, D, O, C, A = "middle"; + if ("top" === o) M = this.bottom - p, k = this._getXAxisLabelAlignment(); + else if ("bottom" === o) M = this.top + p, k = this._getXAxisLabelAlignment(); + else if ("left" === o) { + const t = this._getYAxisLabelAlignment(f); + k = t.textAlign, w = t.x; + } else if ("right" === o) { + const t = this._getYAxisLabelAlignment(f); + k = t.textAlign, w = t.x; + } else if ("x" === e) { + if ("center" === o) M = (t.top + t.bottom) / 2 + g; + else if (n(o)) { + const t = Object.keys(o)[0], e = o[t]; + M = this.chart.scales[t].getPixelForValue(e) + g; + } + k = this._getXAxisLabelAlignment(); + } else if ("y" === e) { + if ("center" === o) w = (t.left + t.right) / 2 - g; + else if (n(o)) { + const t = Object.keys(o)[0], e = o[t]; + w = this.chart.scales[t].getPixelForValue(e); + } + k = this._getYAxisLabelAlignment(f).textAlign; + } + "y" === e && ("start" === h ? A = "top" : "end" === h && (A = "bottom")); + const T = this._getLabelSizes(); + for (x = 0, _ = l.length; x < _; ++x) { + y = l[x], v = y.label; + const t = a.setContext(this.getContext(x)); + S = this.getPixelForTick(x) + a.labelOffset, + P = this._resolveTickFontOptions(x), + D = P.lineHeight, + O = s(v) ? v.length : 1; + const e = O / 2, i = t.color, n = t.textStrokeColor, h = t.textStrokeWidth; + let d, f = k; + if ( + r + ? (w = S, + "inner" === k && (f = x === _ - 1 + ? this.options.reverse ? "left" : "right" + : 0 === x + ? this.options.reverse ? "right" : "left" + : "center"), + C = "top" === o + ? "near" === c || 0 !== m + ? -O * D + D / 2 + : "center" === c + ? -T.highest.height / 2 - e * D + D + : -T.highest.height + D / 2 + : "near" === c || 0 !== m + ? D / 2 + : "center" === c + ? T.highest.height / 2 - e * D + : T.highest.height - O * D, + u && (C *= -1)) + : (M = S, C = (1 - O) * D / 2), t.showLabelBackdrop + ) { + const e = pi(t.backdropPadding), i = T.heights[x], s = T.widths[x]; + let n = M + C - e.top, o = w - e.left; + switch (A) { + case "middle": + n -= i / 2; + break; + case "bottom": + n -= i; + } + switch (k) { + case "center": + o -= s / 2; + break; + case "right": + o -= s; + } + d = { left: o, top: n, width: s + e.width, height: i + e.height, color: t.backdropColor }; + } + b.push({ + rotation: m, + label: v, + font: P, + color: i, + strokeColor: n, + strokeWidth: h, + textOffset: C, + textAlign: f, + textBaseline: A, + translation: [w, M], + backdrop: d, + }); + } + return b; + } + _getXAxisLabelAlignment() { + const { position: t, ticks: e } = this.options; + if (-H(this.labelRotation)) return "top" === t ? "left" : "right"; + let i = "center"; + return "start" === e.align ? i = "left" : "end" === e.align ? i = "right" : "inner" === e.align && (i = "inner"), + i; + } + _getYAxisLabelAlignment(t) { + const { position: e, ticks: { crossAlign: i, mirror: s, padding: n } } = this.options, + o = t + n, + a = this._getLabelSizes().widest.width; + let r, l; + return "left" === e + ? s + ? (l = this.right + n, + "near" === i ? r = "left" : "center" === i ? (r = "center", l += a / 2) : (r = "right", l += a)) + : (l = this.right - o, + "near" === i ? r = "right" : "center" === i ? (r = "center", l -= a / 2) : (r = "left", l = this.left)) + : "right" === e + ? s + ? (l = this.left + n, + "near" === i ? r = "right" : "center" === i ? (r = "center", l -= a / 2) : (r = "left", l -= a)) + : (l = this.left + o, + "near" === i ? r = "left" : "center" === i ? (r = "center", l += a / 2) : (r = "right", l = this.right)) + : r = "right", + { textAlign: r, x: l }; + } + _computeLabelArea() { + if (this.options.ticks.mirror) return; + const t = this.chart, e = this.options.position; + return "left" === e || "right" === e + ? { top: 0, left: this.left, bottom: t.height, right: this.right } + : "top" === e || "bottom" === e + ? { top: this.top, left: 0, bottom: this.bottom, right: t.width } + : void 0; + } + drawBackground() { + const { ctx: t, options: { backgroundColor: e }, left: i, top: s, width: n, height: o } = this; + e && (t.save(), t.fillStyle = e, t.fillRect(i, s, n, o), t.restore()); + } + getLineWidthForValue(t) { + const e = this.options.grid; + if (!this._isVisible() || !e.display) return 0; + const i = this.ticks.findIndex(e => e.value === t); + if (i >= 0) return e.setContext(this.getContext(i)).lineWidth; + return 0; + } + drawGrid(t) { + const e = this.options.grid, + i = this.ctx, + s = this._gridLineItems || (this._gridLineItems = this._computeGridLineItems(t)); + let n, o; + const a = (t, e, s) => { + s.width && s.color + && (i.save(), + i.lineWidth = s.width, + i.strokeStyle = s.color, + i.setLineDash(s.borderDash || []), + i.lineDashOffset = s.borderDashOffset, + i.beginPath(), + i.moveTo(t.x, t.y), + i.lineTo(e.x, e.y), + i.stroke(), + i.restore()); + }; + if (e.display) { + for (n = 0, o = s.length; n < o; ++n) { + const t = s[n]; + e.drawOnChartArea && a({ x: t.x1, y: t.y1 }, { x: t.x2, y: t.y2 }, t), + e.drawTicks + && a({ x: t.tx1, y: t.ty1 }, { x: t.tx2, y: t.ty2 }, { + color: t.tickColor, + width: t.tickWidth, + borderDash: t.tickBorderDash, + borderDashOffset: t.tickBorderDashOffset, + }); + } + } + } + drawBorder() { + const { chart: t, ctx: e, options: { grid: i } } = this, + s = i.setContext(this.getContext()), + n = i.drawBorder ? s.borderWidth : 0; + if (!n) return; + const o = i.setContext(this.getContext(0)).lineWidth, a = this._borderValue; + let r, l, h, c; + this.isHorizontal() + ? (r = ve(t, this.left, n) - n / 2, l = ve(t, this.right, o) + o / 2, h = c = a) + : (h = ve(t, this.top, n) - n / 2, c = ve(t, this.bottom, o) + o / 2, r = l = a), + e.save(), + e.lineWidth = s.borderWidth, + e.strokeStyle = s.borderColor, + e.beginPath(), + e.moveTo(r, h), + e.lineTo(l, c), + e.stroke(), + e.restore(); + } + drawLabels(t) { + if (!this.options.ticks.display) return; + const e = this.ctx, i = this._computeLabelArea(); + i && Pe(e, i); + const s = this._labelItems || (this._labelItems = this._computeLabelItems(t)); + let n, o; + for (n = 0, o = s.length; n < o; ++n) { + const t = s[n], i = t.font, o = t.label; + t.backdrop + && (e.fillStyle = t.backdrop.color, + e.fillRect(t.backdrop.left, t.backdrop.top, t.backdrop.width, t.backdrop.height)), + Ae(e, o, 0, t.textOffset, i, t); + } + i && De(e); + } + drawTitle() { + const { ctx: t, options: { position: e, title: i, reverse: o } } = this; + if (!i.display) return; + const a = mi(i.font), r = pi(i.padding), l = i.align; + let h = a.lineHeight / 2; + "bottom" === e || "center" === e || n(e) + ? (h += r.bottom, s(i.text) && (h += a.lineHeight * (i.text.length - 1))) + : h += r.top; + const { titleX: c, titleY: d, maxWidth: u, rotation: f } = function(t, e, i, s) { + const { top: o, left: a, bottom: r, right: l, chart: h } = t, { chartArea: c, scales: d } = h; + let u, f, g, p = 0; + const m = r - o, b = l - a; + if (t.isHorizontal()) { + if (f = ut(s, a, l), n(i)) { + const t = Object.keys(i)[0], s = i[t]; + g = d[t].getPixelForValue(s) + m - e; + } else g = "center" === i ? (c.bottom + c.top) / 2 + m - e : Vs(t, i, e); + u = l - a; + } else { + if (n(i)) { + const t = Object.keys(i)[0], s = i[t]; + f = d[t].getPixelForValue(s) - b + e; + } else f = "center" === i ? (c.left + c.right) / 2 - b + e : Vs(t, i, e); + g = ut(s, r, o), p = "left" === i ? -L : L; + } + return { titleX: f, titleY: g, maxWidth: u, rotation: p }; + }(this, h, e, l); + Ae(t, i.text, 0, 0, a, { + color: i.color, + maxWidth: u, + rotation: f, + textAlign: Hs(l, e, o), + textBaseline: "middle", + translation: [c, d], + }); + } + draw(t) { + this._isVisible() + && (this.drawBackground(), this.drawGrid(t), this.drawBorder(), this.drawTitle(), this.drawLabels(t)); + } + _layers() { + const t = this.options, e = t.ticks && t.ticks.z || 0, i = r(t.grid && t.grid.z, -1); + return this._isVisible() && this.draw === $s.prototype.draw + ? [{ + z: i, + draw: t => { + this.drawBackground(), this.drawGrid(t), this.drawTitle(); + }, + }, { + z: i + 1, + draw: () => { + this.drawBorder(); + }, + }, { + z: e, + draw: t => { + this.drawLabels(t); + }, + }] + : [{ + z: e, + draw: t => { + this.draw(t); + }, + }]; + } + getMatchingVisibleMetas(t) { + const e = this.chart.getSortedVisibleDatasetMetas(), i = this.axis + "AxisID", s = []; + let n, o; + for (n = 0, o = e.length; n < o; ++n) { + const o = e[n]; + o[i] !== this.id || t && o.type !== t || s.push(o); + } + return s; + } + _resolveTickFontOptions(t) { + return mi(this.options.ticks.setContext(this.getContext(t)).font); + } + _maxDigits() { + const t = this._resolveTickFontOptions(0).lineHeight; + return (this.isHorizontal() ? this.width : this.height) / t; + } + } + class Ys { + constructor(t, e, i) { + this.type = t, this.scope = e, this.override = i, this.items = Object.create(null); + } + isForType(t) { + return Object.prototype.isPrototypeOf.call(this.type.prototype, t.prototype); + } + register(t) { + const e = Object.getPrototypeOf(t); + let i; + (function(t) { + return "id" in t && "defaults" in t; + })(e) && (i = this.register(e)); + const s = this.items, n = t.id, o = this.scope + "." + n; + if (!n) throw new Error("class does not have id: " + t); + return n in s || (s[n] = t, + function(t, e, i) { + const s = m(Object.create(null), [i ? ne.get(i) : {}, ne.get(e), t.defaults]); + ne.set(e, s), + t.defaultRoutes && function(t, e) { + Object.keys(e).forEach(i => { + const s = i.split("."), + n = s.pop(), + o = [t].concat(s).join("."), + a = e[i].split("."), + r = a.pop(), + l = a.join("."); + ne.route(o, n, l, r); + }); + }(e, t.defaultRoutes); + t.descriptors && ne.describe(e, t.descriptors); + }(t, o, i), + this.override && ne.override(t.id, t.overrides)), + o; + } + get(t) { + return this.items[t]; + } + unregister(t) { + const e = this.items, i = t.id, s = this.scope; + i in e && delete e[i], s && i in ne[s] && (delete ne[s][i], this.override && delete te[i]); + } + } + var Us = new class { + constructor() { + this.controllers = new Ys(Ls, "datasets", !0), + this.elements = new Ys(Es, "elements"), + this.plugins = new Ys(Object, "plugins"), + this.scales = new Ys($s, "scales"), + this._typedRegistries = [this.controllers, this.scales, this.elements]; + } + add(...t) { + this._each("register", t); + } + remove(...t) { + this._each("unregister", t); + } + addControllers(...t) { + this._each("register", t, this.controllers); + } + addElements(...t) { + this._each("register", t, this.elements); + } + addPlugins(...t) { + this._each("register", t, this.plugins); + } + addScales(...t) { + this._each("register", t, this.scales); + } + getController(t) { + return this._get(t, this.controllers, "controller"); + } + getElement(t) { + return this._get(t, this.elements, "element"); + } + getPlugin(t) { + return this._get(t, this.plugins, "plugin"); + } + getScale(t) { + return this._get(t, this.scales, "scale"); + } + removeControllers(...t) { + this._each("unregister", t, this.controllers); + } + removeElements(...t) { + this._each("unregister", t, this.elements); + } + removePlugins(...t) { + this._each("unregister", t, this.plugins); + } + removeScales(...t) { + this._each("unregister", t, this.scales); + } + _each(t, e, i) { + [...e].forEach(e => { + const s = i || this._getRegistryForType(e); + i || s.isForType(e) || s === this.plugins && e.id ? this._exec(t, s, e) : d(e, e => { + const s = i || this._getRegistryForType(e); + this._exec(t, s, e); + }); + }); + } + _exec(t, e, i) { + const s = w(t); + c(i["before" + s], [], i), e[t](i), c(i["after" + s], [], i); + } + _getRegistryForType(t) { + for (let e = 0; e < this._typedRegistries.length; e++) { + const i = this._typedRegistries[e]; + if (i.isForType(t)) return i; + } + return this.plugins; + } + _get(t, e, i) { + const s = e.get(t); + if (void 0 === s) throw new Error("\"" + t + "\" is not a registered " + i + "."); + return s; + } + }(); + class Xs { + constructor() { + this._init = []; + } + notify(t, e, i, s) { + "beforeInit" === e && (this._init = this._createDescriptors(t, !0), this._notify(this._init, t, "install")); + const n = s ? this._descriptors(t).filter(s) : this._descriptors(t), o = this._notify(n, t, e, i); + return "afterDestroy" === e && (this._notify(n, t, "stop"), this._notify(this._init, t, "uninstall")), o; + } + _notify(t, e, i, s) { + s = s || {}; + for (const n of t) { + const t = n.plugin; + if (!1 === c(t[i], [e, s, n.options], t) && s.cancelable) return !1; + } + return !0; + } + invalidate() { + i(this._cache) || (this._oldCache = this._cache, this._cache = void 0); + } + _descriptors(t) { + if (this._cache) return this._cache; + const e = this._cache = this._createDescriptors(t); + return this._notifyStateChanges(t), e; + } + _createDescriptors(t, e) { + const i = t && t.config, + s = r(i.options && i.options.plugins, {}), + n = function(t) { + const e = {}, i = [], s = Object.keys(Us.plugins.items); + for (let t = 0; t < s.length; t++) i.push(Us.getPlugin(s[t])); + const n = t.plugins || []; + for (let t = 0; t < n.length; t++) { + const s = n[t]; + -1 === i.indexOf(s) && (i.push(s), e[s.id] = !0); + } + return { plugins: i, localIds: e }; + }(i); + return !1 !== s || e + ? function(t, { plugins: e, localIds: i }, s, n) { + const o = [], a = t.getContext(); + for (const r of e) { + const e = r.id, l = qs(s[e], n); + null !== l && o.push({ plugin: r, options: Ks(t.config, { plugin: r, local: i[e] }, l, a) }); + } + return o; + }(t, n, s, e) + : []; + } + _notifyStateChanges(t) { + const e = this._oldCache || [], + i = this._cache, + s = (t, e) => t.filter(t => !e.some(e => t.plugin.id === e.plugin.id)); + this._notify(s(e, i), t, "stop"), this._notify(s(i, e), t, "start"); + } + } + function qs(t, e) { + return e || !1 !== t ? !0 === t ? {} : t : null; + } + function Ks(t, { plugin: e, local: i }, s, n) { + const o = t.pluginScopeKeys(e), a = t.getOptionScopes(s, o); + return i && e.defaults && a.push(e.defaults), + t.createResolver(a, n, [""], { scriptable: !1, indexable: !1, allKeys: !0 }); + } + function Gs(t, e) { + const i = ne.datasets[t] || {}; + return ((e.datasets || {})[t] || {}).indexAxis || e.indexAxis || i.indexAxis || "x"; + } + function Zs(t, e) { + return "x" === t || "y" === t + ? t + : e.axis || ("top" === (i = e.position) || "bottom" === i ? "x" : "left" === i || "right" === i ? "y" : void 0) + || t.charAt(0).toLowerCase(); + var i; + } + function Js(t) { + const e = t.options || (t.options = {}); + e.plugins = r(e.plugins, {}), + e.scales = function(t, e) { + const i = te[t.type] || { scales: {} }, + s = e.scales || {}, + o = Gs(t.type, e), + a = Object.create(null), + r = Object.create(null); + return Object.keys(s).forEach(t => { + const e = s[t]; + if (!n(e)) return console.error(`Invalid scale configuration for scale: ${t}`); + if (e._proxy) return console.warn(`Ignoring resolver passed as options for scale: ${t}`); + const l = Zs(t, e), + h = function(t, e) { + return t === e ? "_index_" : "_value_"; + }(l, o), + c = i.scales || {}; + a[l] = a[l] || t, r[t] = b(Object.create(null), [{ axis: l }, e, c[l], c[h]]); + }), + t.data.datasets.forEach(i => { + const n = i.type || t.type, o = i.indexAxis || Gs(n, e), l = (te[n] || {}).scales || {}; + Object.keys(l).forEach(t => { + const e = function(t, e) { + let i = t; + return "_index_" === t ? i = e : "_value_" === t && (i = "x" === e ? "y" : "x"), i; + }(t, o), + n = i[e + "AxisID"] || a[e] || e; + r[n] = r[n] || Object.create(null), b(r[n], [{ axis: e }, s[n], l[t]]); + }); + }), + Object.keys(r).forEach(t => { + const e = r[t]; + b(e, [ne.scales[e.type], ne.scale]); + }), + r; + }(t, e); + } + function Qs(t) { + return (t = t || {}).datasets = t.datasets || [], t.labels = t.labels || [], t; + } + const tn = new Map(), en = new Set(); + function sn(t, e) { + let i = tn.get(t); + return i || (i = e(), tn.set(t, i), en.add(i)), i; + } + const nn = (t, e, i) => { + const s = y(e, i); + void 0 !== s && t.add(s); + }; + class on { + constructor(t) { + this._config = function(t) { + return (t = t || {}).data = Qs(t.data), Js(t), t; + }(t), + this._scopeCache = new Map(), + this._resolverCache = new Map(); + } + get platform() { + return this._config.platform; + } + get type() { + return this._config.type; + } + set type(t) { + this._config.type = t; + } + get data() { + return this._config.data; + } + set data(t) { + this._config.data = Qs(t); + } + get options() { + return this._config.options; + } + set options(t) { + this._config.options = t; + } + get plugins() { + return this._config.plugins; + } + update() { + const t = this._config; + this.clearCache(), Js(t); + } + clearCache() { + this._scopeCache.clear(), this._resolverCache.clear(); + } + datasetScopeKeys(t) { + return sn(t, () => [[`datasets.${t}`, ""]]); + } + datasetAnimationScopeKeys(t, e) { + return sn( + `${t}.transition.${e}`, + () => [[`datasets.${t}.transitions.${e}`, `transitions.${e}`], [`datasets.${t}`, ""]], + ); + } + datasetElementScopeKeys(t, e) { + return sn(`${t}-${e}`, () => [[`datasets.${t}.elements.${e}`, `datasets.${t}`, `elements.${e}`, ""]]); + } + pluginScopeKeys(t) { + const e = t.id; + return sn(`${this.type}-plugin-${e}`, () => [[`plugins.${e}`, ...t.additionalOptionScopes || []]]); + } + _cachedScopes(t, e) { + const i = this._scopeCache; + let s = i.get(t); + return s && !e || (s = new Map(), i.set(t, s)), s; + } + getOptionScopes(t, e, i) { + const { options: s, type: n } = this, o = this._cachedScopes(t, i), a = o.get(e); + if (a) return a; + const r = new Set(); + e.forEach(e => { + t && (r.add(t), e.forEach(e => nn(r, t, e))), + e.forEach(t => nn(r, s, t)), + e.forEach(t => nn(r, te[n] || {}, t)), + e.forEach(t => nn(r, ne, t)), + e.forEach(t => nn(r, ee, t)); + }); + const l = Array.from(r); + return 0 === l.length && l.push(Object.create(null)), en.has(e) && o.set(e, l), l; + } + chartOptionScopes() { + const { options: t, type: e } = this; + return [t, te[e] || {}, ne.datasets[e] || {}, { type: e }, ne, ee]; + } + resolveNamedOptions(t, e, i, n = [""]) { + const o = { $shared: !0 }, { resolver: a, subPrefixes: r } = an(this._resolverCache, t, n); + let l = a; + if ( + function(t, e) { + const { isScriptable: i, isIndexable: n } = Ie(t); + for (const o of e) { + const e = i(o), a = n(o), r = (a || e) && t[o]; + if (e && (k(r) || rn(r)) || a && s(r)) return !0; + } + return !1; + }(a, e) + ) { + o.$shared = !1; + l = Re(a, i = k(i) ? i() : i, this.createResolver(t, i, r)); + } + for (const t of e) o[t] = l[t]; + return o; + } + createResolver(t, e, i = [""], s) { + const { resolver: o } = an(this._resolverCache, t, i); + return n(e) ? Re(o, e, void 0, s) : o; + } + } + function an(t, e, i) { + let s = t.get(e); + s || (s = new Map(), t.set(e, s)); + const n = i.join(); + let o = s.get(n); + if (!o) o = { resolver: Ee(e, i), subPrefixes: i.filter(t => !t.toLowerCase().includes("hover")) }, s.set(n, o); + return o; + } + const rn = t => n(t) && Object.getOwnPropertyNames(t).reduce((e, i) => e || k(t[i]), !1); + const ln = ["top", "bottom", "left", "right", "chartArea"]; + function hn(t, e) { + return "top" === t || "bottom" === t || -1 === ln.indexOf(t) && "x" === e; + } + function cn(t, e) { + return function(i, s) { + return i[t] === s[t] ? i[e] - s[e] : i[t] - s[t]; + }; + } + function dn(t) { + const e = t.chart, i = e.options.animation; + e.notifyPlugins("afterRender"), c(i && i.onComplete, [t], e); + } + function un(t) { + const e = t.chart, i = e.options.animation; + c(i && i.onProgress, [t], e); + } + function fn(t) { + return oe() && "string" == typeof t ? t = document.getElementById(t) : t && t.length && (t = t[0]), + t && t.canvas && (t = t.canvas), + t; + } + const gn = {}, + pn = t => { + const e = fn(t); + return Object.values(gn).filter(t => t.canvas === e).pop(); + }; + function mn(t, e, i) { + const s = Object.keys(t); + for (const n of s) { + const s = +n; + if (s >= e) { + const o = t[n]; + delete t[n], (i > 0 || s > e) && (t[s + i] = o); + } + } + } + class bn { + constructor(t, i) { + const s = this.config = new on(i), n = fn(t), o = pn(n); + if (o) { + throw new Error( + "Canvas is already in use. Chart with ID '" + o.id + "' must be destroyed before the canvas with ID '" + + o.canvas.id + "' can be reused.", + ); + } + const a = s.createResolver(s.chartOptionScopes(), this.getContext()); + this.platform = new (s.platform || gs(n))(), this.platform.updateConfig(s); + const r = this.platform.acquireContext(n, a.aspectRatio), l = r && r.canvas, h = l && l.height, c = l && l.width; + this.id = e(), + this.ctx = r, + this.canvas = l, + this.width = c, + this.height = h, + this._options = a, + this._aspectRatio = this.aspectRatio, + this._layers = [], + this._metasets = [], + this._stacks = void 0, + this.boxes = [], + this.currentDevicePixelRatio = void 0, + this.chartArea = void 0, + this._active = [], + this._lastEvent = void 0, + this._listeners = {}, + this._responsiveListeners = void 0, + this._sortedMetasets = [], + this.scales = {}, + this._plugins = new Xs(), + this.$proxies = {}, + this._hiddenIndices = {}, + this.attached = !1, + this._animationsDisabled = void 0, + this.$context = void 0, + this._doResize = ct(t => this.update(t), a.resizeDelay || 0), + this._dataChanges = [], + gn[this.id] = this, + r && l + ? (mt.listen(this, "complete", dn), + mt.listen(this, "progress", un), + this._initialize(), + this.attached && this.update()) + : console.error("Failed to create chart: can't acquire context from the given item"); + } + get aspectRatio() { + const { options: { aspectRatio: t, maintainAspectRatio: e }, width: s, height: n, _aspectRatio: o } = this; + return i(t) ? e && o ? o : n ? s / n : null : t; + } + get data() { + return this.config.data; + } + set data(t) { + this.config.data = t; + } + get options() { + return this._options; + } + set options(t) { + this.config.options = t; + } + _initialize() { + return this.notifyPlugins("beforeInit"), + this.options.responsive ? this.resize() : pe(this, this.options.devicePixelRatio), + this.bindEvents(), + this.notifyPlugins("afterInit"), + this; + } + clear() { + return we(this.canvas, this.ctx), this; + } + stop() { + return mt.stop(this), this; + } + resize(t, e) { + mt.running(this) ? this._resizeBeforeDraw = { width: t, height: e } : this._resize(t, e); + } + _resize(t, e) { + const i = this.options, + s = this.canvas, + n = i.maintainAspectRatio && this.aspectRatio, + o = this.platform.getMaximumSize(s, t, e, n), + a = i.devicePixelRatio || this.platform.getDevicePixelRatio(), + r = this.width ? "resize" : "attach"; + this.width = o.width, + this.height = o.height, + this._aspectRatio = this.aspectRatio, + pe(this, a, !0) + && (this.notifyPlugins("resize", { size: o }), + c(i.onResize, [this, o], this), + this.attached && this._doResize(r) && this.render()); + } + ensureScalesHaveIDs() { + d(this.options.scales || {}, (t, e) => { + t.id = e; + }); + } + buildOrUpdateScales() { + const t = this.options, e = t.scales, i = this.scales, s = Object.keys(i).reduce((t, e) => (t[e] = !1, t), {}); + let n = []; + e && (n = n.concat( + Object.keys(e).map(t => { + const i = e[t], s = Zs(t, i), n = "r" === s, o = "x" === s; + return { + options: i, + dposition: n ? "chartArea" : o ? "bottom" : "left", + dtype: n ? "radialLinear" : o ? "category" : "linear", + }; + }), + )), + d(n, e => { + const n = e.options, o = n.id, a = Zs(o, n), l = r(n.type, e.dtype); + void 0 !== n.position && hn(n.position, a) === hn(e.dposition) || (n.position = e.dposition), s[o] = !0; + let h = null; + if (o in i && i[o].type === l) h = i[o]; + else h = new (Us.getScale(l))({ id: o, type: l, ctx: this.ctx, chart: this }), i[h.id] = h; + h.init(n, t); + }), + d(s, (t, e) => { + t || delete i[e]; + }), + d(i, t => { + Zi.configure(this, t, t.options), Zi.addBox(this, t); + }); + } + _updateMetasets() { + const t = this._metasets, e = this.data.datasets.length, i = t.length; + if (t.sort((t, e) => t.index - e.index), i > e) { + for (let t = e; t < i; ++t) this._destroyDatasetMeta(t); + t.splice(e, i - e); + } + this._sortedMetasets = t.slice(0).sort(cn("order", "index")); + } + _removeUnreferencedMetasets() { + const { _metasets: t, data: { datasets: e } } = this; + t.length > e.length && delete this._stacks, + t.forEach((t, i) => { + 0 === e.filter(e => e === t._dataset).length && this._destroyDatasetMeta(i); + }); + } + buildOrUpdateControllers() { + const t = [], e = this.data.datasets; + let i, s; + for (this._removeUnreferencedMetasets(), i = 0, s = e.length; i < s; i++) { + const s = e[i]; + let n = this.getDatasetMeta(i); + const o = s.type || this.config.type; + if ( + n.type && n.type !== o && (this._destroyDatasetMeta(i), n = this.getDatasetMeta(i)), + n.type = o, + n.indexAxis = s.indexAxis || Gs(o, this.options), + n.order = s.order || 0, + n.index = i, + n.label = "" + s.label, + n.visible = this.isDatasetVisible(i), + n.controller + ) n.controller.updateIndex(i), n.controller.linkScales(); + else { + const e = Us.getController(o), { datasetElementType: s, dataElementType: a } = ne.datasets[o]; + Object.assign(e.prototype, { dataElementType: Us.getElement(a), datasetElementType: s && Us.getElement(s) }), + n.controller = new e(this, i), + t.push(n.controller); + } + } + return this._updateMetasets(), t; + } + _resetElements() { + d(this.data.datasets, (t, e) => { + this.getDatasetMeta(e).controller.reset(); + }, this); + } + reset() { + this._resetElements(), this.notifyPlugins("reset"); + } + update(t) { + const e = this.config; + e.update(); + const i = this._options = e.createResolver(e.chartOptionScopes(), this.getContext()), + s = this._animationsDisabled = !i.animation; + if ( + this._updateScales(), + this._checkEventBindings(), + this._updateHiddenIndices(), + this._plugins.invalidate(), + !1 === this.notifyPlugins("beforeUpdate", { mode: t, cancelable: !0 }) + ) return; + const n = this.buildOrUpdateControllers(); + this.notifyPlugins("beforeElementsUpdate"); + let o = 0; + for (let t = 0, e = this.data.datasets.length; t < e; t++) { + const { controller: e } = this.getDatasetMeta(t), i = !s && -1 === n.indexOf(e); + e.buildOrUpdateElements(i), o = Math.max(+e.getMaxOverflow(), o); + } + o = this._minPadding = i.layout.autoPadding ? o : 0, + this._updateLayout(o), + s || d(n, t => { + t.reset(); + }), + this._updateDatasets(t), + this.notifyPlugins("afterUpdate", { mode: t }), + this._layers.sort(cn("z", "_idx")); + const { _active: a, _lastEvent: r } = this; + r ? this._eventHandler(r, !0) : a.length && this._updateHoverStyles(a, a, !0), this.render(); + } + _updateScales() { + d(this.scales, t => { + Zi.removeBox(this, t); + }), + this.ensureScalesHaveIDs(), + this.buildOrUpdateScales(); + } + _checkEventBindings() { + const t = this.options, e = new Set(Object.keys(this._listeners)), i = new Set(t.events); + S(e, i) && !!this._responsiveListeners === t.responsive || (this.unbindEvents(), this.bindEvents()); + } + _updateHiddenIndices() { + const { _hiddenIndices: t } = this, e = this._getUniformDataChanges() || []; + for (const { method: i, start: s, count: n } of e) mn(t, s, "_removeElements" === i ? -n : n); + } + _getUniformDataChanges() { + const t = this._dataChanges; + if (!t || !t.length) return; + this._dataChanges = []; + const e = this.data.datasets.length, + i = e => new Set(t.filter(t => t[0] === e).map((t, e) => e + "," + t.splice(1).join(","))), + s = i(0); + for (let t = 1; t < e; t++) if (!S(s, i(t))) return; + return Array.from(s).map(t => t.split(",")).map(t => ({ method: t[1], start: +t[2], count: +t[3] })); + } + _updateLayout(t) { + if (!1 === this.notifyPlugins("beforeLayout", { cancelable: !0 })) return; + Zi.update(this, this.width, this.height, t); + const e = this.chartArea, i = e.width <= 0 || e.height <= 0; + this._layers = [], + d(this.boxes, t => { + i && "chartArea" === t.position || (t.configure && t.configure(), this._layers.push(...t._layers())); + }, this), + this._layers.forEach((t, e) => { + t._idx = e; + }), + this.notifyPlugins("afterLayout"); + } + _updateDatasets(t) { + if (!1 !== this.notifyPlugins("beforeDatasetsUpdate", { mode: t, cancelable: !0 })) { + for (let t = 0, e = this.data.datasets.length; t < e; ++t) this.getDatasetMeta(t).controller.configure(); + for (let e = 0, i = this.data.datasets.length; e < i; ++e) { + this._updateDataset(e, k(t) ? t({ datasetIndex: e }) : t); + } + this.notifyPlugins("afterDatasetsUpdate", { mode: t }); + } + } + _updateDataset(t, e) { + const i = this.getDatasetMeta(t), s = { meta: i, index: t, mode: e, cancelable: !0 }; + !1 !== this.notifyPlugins("beforeDatasetUpdate", s) + && (i.controller._update(e), s.cancelable = !1, this.notifyPlugins("afterDatasetUpdate", s)); + } + render() { + !1 !== this.notifyPlugins("beforeRender", { cancelable: !0 }) + && (mt.has(this) ? this.attached && !mt.running(this) && mt.start(this) : (this.draw(), dn({ chart: this }))); + } + draw() { + let t; + if (this._resizeBeforeDraw) { + const { width: t, height: e } = this._resizeBeforeDraw; + this._resize(t, e), this._resizeBeforeDraw = null; + } + if (this.clear(), this.width <= 0 || this.height <= 0) return; + if (!1 === this.notifyPlugins("beforeDraw", { cancelable: !0 })) return; + const e = this._layers; + for (t = 0; t < e.length && e[t].z <= 0; ++t) e[t].draw(this.chartArea); + for (this._drawDatasets(); t < e.length; ++t) e[t].draw(this.chartArea); + this.notifyPlugins("afterDraw"); + } + _getSortedDatasetMetas(t) { + const e = this._sortedMetasets, i = []; + let s, n; + for (s = 0, n = e.length; s < n; ++s) { + const n = e[s]; + t && !n.visible || i.push(n); + } + return i; + } + getSortedVisibleDatasetMetas() { + return this._getSortedDatasetMetas(!0); + } + _drawDatasets() { + if (!1 === this.notifyPlugins("beforeDatasetsDraw", { cancelable: !0 })) return; + const t = this.getSortedVisibleDatasetMetas(); + for (let e = t.length - 1; e >= 0; --e) this._drawDataset(t[e]); + this.notifyPlugins("afterDatasetsDraw"); + } + _drawDataset(t) { + const e = this.ctx, + i = t._clip, + s = !i.disabled, + n = this.chartArea, + o = { meta: t, index: t.index, cancelable: !0 }; + !1 !== this.notifyPlugins("beforeDatasetDraw", o) + && (s + && Pe(e, { + left: !1 === i.left ? 0 : n.left - i.left, + right: !1 === i.right ? this.width : n.right + i.right, + top: !1 === i.top ? 0 : n.top - i.top, + bottom: !1 === i.bottom ? this.height : n.bottom + i.bottom, + }), + t.controller.draw(), + s && De(e), + o.cancelable = !1, + this.notifyPlugins("afterDatasetDraw", o)); + } + isPointInArea(t) { + return Se(t, this.chartArea, this._minPadding); + } + getElementsAtEventForMode(t, e, i, s) { + const n = Vi.modes[e]; + return "function" == typeof n ? n(this, t, i, s) : []; + } + getDatasetMeta(t) { + const e = this.data.datasets[t], i = this._metasets; + let s = i.filter(t => t && t._dataset === e).pop(); + return s + || (s = { + type: null, + data: [], + dataset: null, + controller: null, + hidden: null, + xAxisID: null, + yAxisID: null, + order: e && e.order || 0, + index: t, + _dataset: e, + _parsed: [], + _sorted: !1, + }, + i.push(s)), + s; + } + getContext() { + return this.$context || (this.$context = _i(null, { chart: this, type: "chart" })); + } + getVisibleDatasetCount() { + return this.getSortedVisibleDatasetMetas().length; + } + isDatasetVisible(t) { + const e = this.data.datasets[t]; + if (!e) return !1; + const i = this.getDatasetMeta(t); + return "boolean" == typeof i.hidden ? !i.hidden : !e.hidden; + } + setDatasetVisibility(t, e) { + this.getDatasetMeta(t).hidden = !e; + } + toggleDataVisibility(t) { + this._hiddenIndices[t] = !this._hiddenIndices[t]; + } + getDataVisibility(t) { + return !this._hiddenIndices[t]; + } + _updateVisibility(t, e, i) { + const s = i ? "show" : "hide", n = this.getDatasetMeta(t), o = n.controller._resolveAnimations(void 0, s); + M(e) + ? (n.data[e].hidden = !i, this.update()) + : (this.setDatasetVisibility(t, i), + o.update(n, { visible: i }), + this.update(e => e.datasetIndex === t ? s : void 0)); + } + hide(t, e) { + this._updateVisibility(t, e, !1); + } + show(t, e) { + this._updateVisibility(t, e, !0); + } + _destroyDatasetMeta(t) { + const e = this._metasets[t]; + e && e.controller && e.controller._destroy(), delete this._metasets[t]; + } + _stop() { + let t, e; + for (this.stop(), mt.remove(this), t = 0, e = this.data.datasets.length; t < e; ++t) this._destroyDatasetMeta(t); + } + destroy() { + this.notifyPlugins("beforeDestroy"); + const { canvas: t, ctx: e } = this; + this._stop(), + this.config.clearCache(), + t && (this.unbindEvents(), we(t, e), this.platform.releaseContext(e), this.canvas = null, this.ctx = null), + this.notifyPlugins("destroy"), + delete gn[this.id], + this.notifyPlugins("afterDestroy"); + } + toBase64Image(...t) { + return this.canvas.toDataURL(...t); + } + bindEvents() { + this.bindUserEvents(), this.options.responsive ? this.bindResponsiveEvents() : this.attached = !0; + } + bindUserEvents() { + const t = this._listeners, + e = this.platform, + i = (i, s) => { + e.addEventListener(this, i, s), t[i] = s; + }, + s = (t, e, i) => { + t.offsetX = e, t.offsetY = i, this._eventHandler(t); + }; + d(this.options.events, t => i(t, s)); + } + bindResponsiveEvents() { + this._responsiveListeners || (this._responsiveListeners = {}); + const t = this._responsiveListeners, + e = this.platform, + i = (i, s) => { + e.addEventListener(this, i, s), t[i] = s; + }, + s = (i, s) => { + t[i] && (e.removeEventListener(this, i, s), delete t[i]); + }, + n = (t, e) => { + this.canvas && this.resize(t, e); + }; + let o; + const a = () => { + s("attach", a), this.attached = !0, this.resize(), i("resize", n), i("detach", o); + }; + o = () => { + this.attached = !1, s("resize", n), this._stop(), this._resize(0, 0), i("attach", a); + }, e.isAttached(this.canvas) ? a() : o(); + } + unbindEvents() { + d(this._listeners, (t, e) => { + this.platform.removeEventListener(this, e, t); + }), + this._listeners = {}, + d(this._responsiveListeners, (t, e) => { + this.platform.removeEventListener(this, e, t); + }), + this._responsiveListeners = void 0; + } + updateHoverStyle(t, e, i) { + const s = i ? "set" : "remove"; + let n, o, a, r; + for ( + "dataset" === e && (n = this.getDatasetMeta(t[0].datasetIndex), n.controller["_" + s + "DatasetHoverStyle"]()), + a = 0, + r = t.length; + a < r; + ++a + ) { + o = t[a]; + const e = o && this.getDatasetMeta(o.datasetIndex).controller; + e && e[s + "HoverStyle"](o.element, o.datasetIndex, o.index); + } + } + getActiveElements() { + return this._active || []; + } + setActiveElements(t) { + const e = this._active || [], + i = t.map(({ datasetIndex: t, index: e }) => { + const i = this.getDatasetMeta(t); + if (!i) throw new Error("No dataset found at index " + t); + return { datasetIndex: t, element: i.data[e], index: e }; + }); + !u(i, e) && (this._active = i, this._lastEvent = null, this._updateHoverStyles(i, e)); + } + notifyPlugins(t, e, i) { + return this._plugins.notify(this, t, e, i); + } + _updateHoverStyles(t, e, i) { + const s = this.options.hover, + n = (t, e) => t.filter(t => !e.some(e => t.datasetIndex === e.datasetIndex && t.index === e.index)), + o = n(e, t), + a = i ? t : n(t, e); + o.length && this.updateHoverStyle(o, s.mode, !1), a.length && s.mode && this.updateHoverStyle(a, s.mode, !0); + } + _eventHandler(t, e) { + const i = { event: t, replay: e, cancelable: !0, inChartArea: this.isPointInArea(t) }, + s = e => (e.options.events || this.options.events).includes(t.native.type); + if (!1 === this.notifyPlugins("beforeEvent", i, s)) return; + const n = this._handleEvent(t, e, i.inChartArea); + return i.cancelable = !1, this.notifyPlugins("afterEvent", i, s), (n || i.changed) && this.render(), this; + } + _handleEvent(t, e, i) { + const { _active: s = [], options: n } = this, + o = e, + a = this._getActiveElements(t, s, i, o), + r = P(t), + l = function(t, e, i, s) { + return i && "mouseout" !== t.type ? s ? e : t : null; + }(t, this._lastEvent, i, r); + i && (this._lastEvent = null, c(n.onHover, [t, a, this], this), r && c(n.onClick, [t, a, this], this)); + const h = !u(a, s); + return (h || e) && (this._active = a, this._updateHoverStyles(a, s, e)), this._lastEvent = l, h; + } + _getActiveElements(t, e, i, s) { + if ("mouseout" === t.type) return []; + if (!i) return e; + const n = this.options.hover; + return this.getElementsAtEventForMode(t, n.mode, n, s); + } + } + const xn = () => d(bn.instances, t => t._plugins.invalidate()), _n = !0; + function yn() { + throw new Error("This method is not implemented: Check that a complete date adapter is provided."); + } + Object.defineProperties(bn, { + defaults: { enumerable: _n, value: ne }, + instances: { enumerable: _n, value: gn }, + overrides: { enumerable: _n, value: te }, + registry: { enumerable: _n, value: Us }, + version: { enumerable: _n, value: "3.9.0" }, + getChart: { enumerable: _n, value: pn }, + register: { + enumerable: _n, + value: (...t) => { + Us.add(...t), xn(); + }, + }, + unregister: { + enumerable: _n, + value: (...t) => { + Us.remove(...t), xn(); + }, + }, + }); + class vn { + constructor(t) { + this.options = t || {}; + } + init(t) {} + formats() { + return yn(); + } + parse(t, e) { + return yn(); + } + format(t, e) { + return yn(); + } + add(t, e, i) { + return yn(); + } + diff(t, e, i) { + return yn(); + } + startOf(t, e, i) { + return yn(); + } + endOf(t, e) { + return yn(); + } + } + vn.override = function(t) { + Object.assign(vn.prototype, t); + }; + var wn = { _date: vn }; + function Mn(t) { + const e = t.iScale, + i = function(t, e) { + if (!t._cache.$bar) { + const i = t.getMatchingVisibleMetas(e); + let s = []; + for (let e = 0, n = i.length; e < n; e++) s = s.concat(i[e].controller.getAllParsedValues(t)); + t._cache.$bar = rt(s.sort((t, e) => t - e)); + } + return t._cache.$bar; + }(e, t.type); + let s, n, o, a, r = e._length; + const l = () => { + 32767 !== o && -32768 !== o && (M(a) && (r = Math.min(r, Math.abs(o - a) || r)), a = o); + }; + for (s = 0, n = i.length; s < n; ++s) o = e.getPixelForValue(i[s]), l(); + for (a = void 0, s = 0, n = e.ticks.length; s < n; ++s) o = e.getPixelForTick(s), l(); + return r; + } + function kn(t, e, i, n) { + return s(t) + ? function(t, e, i, s) { + const n = i.parse(t[0], s), o = i.parse(t[1], s), a = Math.min(n, o), r = Math.max(n, o); + let l = a, h = r; + Math.abs(a) > Math.abs(r) && (l = r, h = a), + e[i.axis] = h, + e._custom = { barStart: l, barEnd: h, start: n, end: o, min: a, max: r }; + }(t, e, i, n) + : e[i.axis] = i.parse(t, n), + e; + } + function Sn(t, e, i, s) { + const n = t.iScale, o = t.vScale, a = n.getLabels(), r = n === o, l = []; + let h, c, d, u; + for (h = i, c = i + s; h < c; ++h) u = e[h], d = {}, d[n.axis] = r || n.parse(a[h], h), l.push(kn(u, d, o, h)); + return l; + } + function Pn(t) { + return t && void 0 !== t.barStart && void 0 !== t.barEnd; + } + function Dn(t, e, i, s) { + let n = e.borderSkipped; + const o = {}; + if (!n) return void (t.borderSkipped = o); + if (!0 === n) return void (t.borderSkipped = { top: !0, right: !0, bottom: !0, left: !0 }); + const { start: a, end: r, reverse: l, top: h, bottom: c } = function(t) { + let e, i, s, n, o; + return t.horizontal ? (e = t.base > t.x, i = "left", s = "right") : (e = t.base < t.y, i = "bottom", s = "top"), + e ? (n = "end", o = "start") : (n = "start", o = "end"), + { start: i, end: s, reverse: e, top: n, bottom: o }; + }(t); + "middle" === n && i + && (t.enableBorderRadius = !0, + (i._top || 0) === s ? n = h : (i._bottom || 0) === s ? n = c : (o[On(c, a, r, l)] = !0, n = h)), + o[On(n, a, r, l)] = !0, + t.borderSkipped = o; + } + function On(t, e, i, s) { + var n, o, a; + return s ? (a = i, t = Cn(t = (n = t) === (o = e) ? a : n === a ? o : n, i, e)) : t = Cn(t, e, i), t; + } + function Cn(t, e, i) { + return "start" === t ? e : "end" === t ? i : t; + } + function An(t, { inflateAmount: e }, i) { + t.inflateAmount = "auto" === e ? 1 === i ? .33 : 0 : e; + } + class Tn extends Ls { + parsePrimitiveData(t, e, i, s) { + return Sn(t, e, i, s); + } + parseArrayData(t, e, i, s) { + return Sn(t, e, i, s); + } + parseObjectData(t, e, i, s) { + const { iScale: n, vScale: o } = t, + { xAxisKey: a = "x", yAxisKey: r = "y" } = this._parsing, + l = "x" === n.axis ? a : r, + h = "x" === o.axis ? a : r, + c = []; + let d, u, f, g; + for (d = i, u = i + s; d < u; ++d) { + g = e[d], f = {}, f[n.axis] = n.parse(y(g, l), d), c.push(kn(y(g, h), f, o, d)); + } + return c; + } + updateRangeFromParsed(t, e, i, s) { + super.updateRangeFromParsed(t, e, i, s); + const n = i._custom; + n && e === this._cachedMeta.vScale && (t.min = Math.min(t.min, n.min), t.max = Math.max(t.max, n.max)); + } + getMaxOverflow() { + return 0; + } + getLabelAndValue(t) { + const e = this._cachedMeta, + { iScale: i, vScale: s } = e, + n = this.getParsed(t), + o = n._custom, + a = Pn(o) ? "[" + o.start + ", " + o.end + "]" : "" + s.getLabelForValue(n[s.axis]); + return { label: "" + i.getLabelForValue(n[i.axis]), value: a }; + } + initialize() { + this.enableOptionSharing = !0, super.initialize(); + this._cachedMeta.stack = this.getDataset().stack; + } + update(t) { + const e = this._cachedMeta; + this.updateElements(e.data, 0, e.data.length, t); + } + updateElements(t, e, s, n) { + const o = "reset" === n, + { index: a, _cachedMeta: { vScale: r } } = this, + l = r.getBasePixel(), + h = r.isHorizontal(), + c = this._getRuler(), + { sharedOptions: d, includeOptions: u } = this._getSharedOptions(e, n); + for (let f = e; f < e + s; f++) { + const e = this.getParsed(f), + s = o || i(e[r.axis]) ? { base: l, head: l } : this._calculateBarValuePixels(f), + g = this._calculateBarIndexPixels(f, c), + p = (e._stacks || {})[r.axis], + m = { + horizontal: h, + base: s.base, + enableBorderRadius: !p || Pn(e._custom) || a === p._top || a === p._bottom, + x: h ? s.head : g.center, + y: h ? g.center : s.head, + height: h ? g.size : Math.abs(s.size), + width: h ? Math.abs(s.size) : g.size, + }; + u && (m.options = d || this.resolveDataElementOptions(f, t[f].active ? "active" : n)); + const b = m.options || t[f].options; + Dn(m, b, p, a), An(m, b, c.ratio), this.updateElement(t[f], f, m, n); + } + } + _getStacks(t, e) { + const { iScale: s } = this._cachedMeta, + n = s.getMatchingVisibleMetas(this._type).filter(t => t.controller.options.grouped), + o = s.options.stacked, + a = [], + r = t => { + const s = t.controller.getParsed(e), n = s && s[t.vScale.axis]; + if (i(n) || isNaN(n)) return !0; + }; + for (const i of n) { + if ( + (void 0 === e || !r(i)) + && ((!1 === o || -1 === a.indexOf(i.stack) || void 0 === o && void 0 === i.stack) && a.push(i.stack), + i.index === t) + ) break; + } + return a.length || a.push(void 0), a; + } + _getStackCount(t) { + return this._getStacks(void 0, t).length; + } + _getStackIndex(t, e, i) { + const s = this._getStacks(t, i), n = void 0 !== e ? s.indexOf(e) : -1; + return -1 === n ? s.length - 1 : n; + } + _getRuler() { + const t = this.options, e = this._cachedMeta, i = e.iScale, s = []; + let n, o; + for (n = 0, o = e.data.length; n < o; ++n) s.push(i.getPixelForValue(this.getParsed(n)[i.axis], n)); + const a = t.barThickness; + return { + min: a || Mn(e), + pixels: s, + start: i._startPixel, + end: i._endPixel, + stackCount: this._getStackCount(), + scale: i, + grouped: t.grouped, + ratio: a ? 1 : t.categoryPercentage * t.barPercentage, + }; + } + _calculateBarValuePixels(t) { + const { _cachedMeta: { vScale: e, _stacked: s }, options: { base: n, minBarLength: o } } = this, + a = n || 0, + r = this.getParsed(t), + l = r._custom, + h = Pn(l); + let c, d, u = r[e.axis], f = 0, g = s ? this.applyStack(e, r, s) : u; + g !== u && (f = g - u, g = u), + h && (u = l.barStart, g = l.barEnd - l.barStart, 0 !== u && z(u) !== z(l.barEnd) && (f = 0), f += u); + const p = i(n) || h ? f : n; + let m = e.getPixelForValue(p); + if (c = this.chart.getDataVisibility(t) ? e.getPixelForValue(f + g) : m, d = c - m, Math.abs(d) < o) { + d = function(t, e, i) { + return 0 !== t ? z(t) : (e.isHorizontal() ? 1 : -1) * (e.min >= i ? 1 : -1); + }(d, e, a) * o, u === a && (m -= d / 2); + const t = e.getPixelForDecimal(0), i = e.getPixelForDecimal(1), s = Math.min(t, i), n = Math.max(t, i); + m = Math.max(Math.min(m, n), s), c = m + d; + } + if (m === e.getPixelForValue(a)) { + const t = z(d) * e.getLineWidthForValue(a) / 2; + m += t, d -= t; + } + return { size: d, base: m, head: c, center: c + d / 2 }; + } + _calculateBarIndexPixels(t, e) { + const s = e.scale, n = this.options, o = n.skipNull, a = r(n.maxBarThickness, 1 / 0); + let l, h; + if (e.grouped) { + const s = o ? this._getStackCount(t) : e.stackCount, + r = "flex" === n.barThickness + ? function(t, e, i, s) { + const n = e.pixels, o = n[t]; + let a = t > 0 ? n[t - 1] : null, r = t < n.length - 1 ? n[t + 1] : null; + const l = i.categoryPercentage; + null === a && (a = o - (null === r ? e.end - e.start : r - o)), null === r && (r = o + o - a); + const h = o - (o - Math.min(a, r)) / 2 * l; + return { chunk: Math.abs(r - a) / 2 * l / s, ratio: i.barPercentage, start: h }; + }(t, e, n, s) + : function(t, e, s, n) { + const o = s.barThickness; + let a, r; + return i(o) ? (a = e.min * s.categoryPercentage, r = s.barPercentage) : (a = o * n, r = 1), + { chunk: a / n, ratio: r, start: e.pixels[t] - a / 2 }; + }(t, e, n, s), + c = this._getStackIndex(this.index, this._cachedMeta.stack, o ? t : void 0); + l = r.start + r.chunk * c + r.chunk / 2, h = Math.min(a, r.chunk * r.ratio); + } else l = s.getPixelForValue(this.getParsed(t)[s.axis], t), h = Math.min(a, e.min * e.ratio); + return { base: l - h / 2, head: l + h / 2, center: l, size: h }; + } + draw() { + const t = this._cachedMeta, e = t.vScale, i = t.data, s = i.length; + let n = 0; + for (; n < s; ++n) null !== this.getParsed(n)[e.axis] && i[n].draw(this._ctx); + } + } + Tn.id = "bar", + Tn.defaults = { + datasetElementType: !1, + dataElementType: "bar", + categoryPercentage: .8, + barPercentage: .9, + grouped: !0, + animations: { numbers: { type: "number", properties: ["x", "y", "base", "width", "height"] } }, + }, + Tn.overrides = { + scales: { + _index_: { type: "category", offset: !0, grid: { offset: !0 } }, + _value_: { type: "linear", beginAtZero: !0 }, + }, + }; + class Ln extends Ls { + initialize() { + this.enableOptionSharing = !0, super.initialize(); + } + parsePrimitiveData(t, e, i, s) { + const n = super.parsePrimitiveData(t, e, i, s); + for (let t = 0; t < n.length; t++) n[t]._custom = this.resolveDataElementOptions(t + i).radius; + return n; + } + parseArrayData(t, e, i, s) { + const n = super.parseArrayData(t, e, i, s); + for (let t = 0; t < n.length; t++) { + const s = e[i + t]; + n[t]._custom = r(s[2], this.resolveDataElementOptions(t + i).radius); + } + return n; + } + parseObjectData(t, e, i, s) { + const n = super.parseObjectData(t, e, i, s); + for (let t = 0; t < n.length; t++) { + const s = e[i + t]; + n[t]._custom = r(s && s.r && +s.r, this.resolveDataElementOptions(t + i).radius); + } + return n; + } + getMaxOverflow() { + const t = this._cachedMeta.data; + let e = 0; + for (let i = t.length - 1; i >= 0; --i) e = Math.max(e, t[i].size(this.resolveDataElementOptions(i)) / 2); + return e > 0 && e; + } + getLabelAndValue(t) { + const e = this._cachedMeta, + { xScale: i, yScale: s } = e, + n = this.getParsed(t), + o = i.getLabelForValue(n.x), + a = s.getLabelForValue(n.y), + r = n._custom; + return { label: e.label, value: "(" + o + ", " + a + (r ? ", " + r : "") + ")" }; + } + update(t) { + const e = this._cachedMeta.data; + this.updateElements(e, 0, e.length, t); + } + updateElements(t, e, i, s) { + const n = "reset" === s, + { iScale: o, vScale: a } = this._cachedMeta, + { sharedOptions: r, includeOptions: l } = this._getSharedOptions(e, s), + h = o.axis, + c = a.axis; + for (let d = e; d < e + i; d++) { + const e = t[d], + i = !n && this.getParsed(d), + u = {}, + f = u[h] = n ? o.getPixelForDecimal(.5) : o.getPixelForValue(i[h]), + g = u[c] = n ? a.getBasePixel() : a.getPixelForValue(i[c]); + u.skip = isNaN(f) || isNaN(g), + l + && (u.options = r || this.resolveDataElementOptions(d, e.active ? "active" : s), n && (u.options.radius = 0)), + this.updateElement(e, d, u, s); + } + } + resolveDataElementOptions(t, e) { + const i = this.getParsed(t); + let s = super.resolveDataElementOptions(t, e); + s.$shared && (s = Object.assign({}, s, { $shared: !1 })); + const n = s.radius; + return "active" !== e && (s.radius = 0), s.radius += r(i && i._custom, n), s; + } + } + Ln.id = "bubble", + Ln.defaults = { + datasetElementType: !1, + dataElementType: "point", + animations: { numbers: { type: "number", properties: ["x", "y", "borderWidth", "radius"] } }, + }, + Ln.overrides = { + scales: { x: { type: "linear" }, y: { type: "linear" } }, + plugins: { tooltip: { callbacks: { title: () => "" } } }, + }; + class En extends Ls { + constructor(t, e) { + super(t, e), + this.enableOptionSharing = !0, + this.innerRadius = void 0, + this.outerRadius = void 0, + this.offsetX = void 0, + this.offsetY = void 0; + } + linkScales() {} + parse(t, e) { + const i = this.getDataset().data, s = this._cachedMeta; + if (!1 === this._parsing) s._parsed = i; + else { + let o, a, r = t => +i[t]; + if (n(i[t])) { + const { key: t = "value" } = this._parsing; + r = e => +y(i[e], t); + } + for (o = t, a = t + e; o < a; ++o) s._parsed[o] = r(o); + } + } + _getRotation() { + return H(this.options.rotation - 90); + } + _getCircumference() { + return H(this.options.circumference); + } + _getRotationExtents() { + let t = O, e = -O; + for (let i = 0; i < this.chart.data.datasets.length; ++i) { + if (this.chart.isDatasetVisible(i)) { + const s = this.chart.getDatasetMeta(i).controller, n = s._getRotation(), o = s._getCircumference(); + t = Math.min(t, n), e = Math.max(e, n + o); + } + } + return { rotation: t, circumference: e - t }; + } + update(t) { + const e = this.chart, + { chartArea: i } = e, + s = this._cachedMeta, + n = s.data, + o = this.getMaxBorderWidth() + this.getMaxOffset(n) + this.options.spacing, + a = Math.max((Math.min(i.width, i.height) - o) / 2, 0), + r = Math.min(l(this.options.cutout, a), 1), + c = this._getRingWeight(this.index), + { circumference: d, rotation: u } = this._getRotationExtents(), + { ratioX: f, ratioY: g, offsetX: p, offsetY: m } = function(t, e, i) { + let s = 1, n = 1, o = 0, a = 0; + if (e < O) { + const r = t, + l = r + e, + h = Math.cos(r), + c = Math.sin(r), + d = Math.cos(l), + u = Math.sin(l), + f = (t, e, s) => G(t, r, l, !0) ? 1 : Math.max(e, e * i, s, s * i), + g = (t, e, s) => G(t, r, l, !0) ? -1 : Math.min(e, e * i, s, s * i), + p = f(0, h, d), + m = f(L, c, u), + b = g(D, h, d), + x = g(D + L, c, u); + s = (p - b) / 2, n = (m - x) / 2, o = -(p + b) / 2, a = -(m + x) / 2; + } + return { ratioX: s, ratioY: n, offsetX: o, offsetY: a }; + }(u, d, r), + b = (i.width - o) / f, + x = (i.height - o) / g, + _ = Math.max(Math.min(b, x) / 2, 0), + y = h(this.options.radius, _), + v = (y - Math.max(y * r, 0)) / this._getVisibleDatasetWeightTotal(); + this.offsetX = p * y, + this.offsetY = m * y, + s.total = this.calculateTotal(), + this.outerRadius = y - v * this._getRingWeightOffset(this.index), + this.innerRadius = Math.max(this.outerRadius - v * c, 0), + this.updateElements(n, 0, n.length, t); + } + _circumference(t, e) { + const i = this.options, s = this._cachedMeta, n = this._getCircumference(); + return e && i.animation.animateRotate || !this.chart.getDataVisibility(t) || null === s._parsed[t] + || s.data[t].hidden + ? 0 + : this.calculateCircumference(s._parsed[t] * n / O); + } + updateElements(t, e, i, s) { + const n = "reset" === s, + o = this.chart, + a = o.chartArea, + r = o.options.animation, + l = (a.left + a.right) / 2, + h = (a.top + a.bottom) / 2, + c = n && r.animateScale, + d = c ? 0 : this.innerRadius, + u = c ? 0 : this.outerRadius, + { sharedOptions: f, includeOptions: g } = this._getSharedOptions(e, s); + let p, m = this._getRotation(); + for (p = 0; p < e; ++p) m += this._circumference(p, n); + for (p = e; p < e + i; ++p) { + const e = this._circumference(p, n), + i = t[p], + o = { + x: l + this.offsetX, + y: h + this.offsetY, + startAngle: m, + endAngle: m + e, + circumference: e, + outerRadius: u, + innerRadius: d, + }; + g && (o.options = f || this.resolveDataElementOptions(p, i.active ? "active" : s)), + m += e, + this.updateElement(i, p, o, s); + } + } + calculateTotal() { + const t = this._cachedMeta, e = t.data; + let i, s = 0; + for (i = 0; i < e.length; i++) { + const n = t._parsed[i]; + null === n || isNaN(n) || !this.chart.getDataVisibility(i) || e[i].hidden || (s += Math.abs(n)); + } + return s; + } + calculateCircumference(t) { + const e = this._cachedMeta.total; + return e > 0 && !isNaN(t) ? O * (Math.abs(t) / e) : 0; + } + getLabelAndValue(t) { + const e = this._cachedMeta, i = this.chart, s = i.data.labels || [], n = li(e._parsed[t], i.options.locale); + return { label: s[t] || "", value: n }; + } + getMaxBorderWidth(t) { + let e = 0; + const i = this.chart; + let s, n, o, a, r; + if (!t) { + for (s = 0, n = i.data.datasets.length; s < n; ++s) { + if (i.isDatasetVisible(s)) { + o = i.getDatasetMeta(s), t = o.data, a = o.controller; + break; + } + } + } + if (!t) return 0; + for (s = 0, n = t.length; s < n; ++s) { + r = a.resolveDataElementOptions(s), + "inner" !== r.borderAlign && (e = Math.max(e, r.borderWidth || 0, r.hoverBorderWidth || 0)); + } + return e; + } + getMaxOffset(t) { + let e = 0; + for (let i = 0, s = t.length; i < s; ++i) { + const t = this.resolveDataElementOptions(i); + e = Math.max(e, t.offset || 0, t.hoverOffset || 0); + } + return e; + } + _getRingWeightOffset(t) { + let e = 0; + for (let i = 0; i < t; ++i) this.chart.isDatasetVisible(i) && (e += this._getRingWeight(i)); + return e; + } + _getRingWeight(t) { + return Math.max(r(this.chart.data.datasets[t].weight, 1), 0); + } + _getVisibleDatasetWeightTotal() { + return this._getRingWeightOffset(this.chart.data.datasets.length) || 1; + } + } + En.id = "doughnut", + En.defaults = { + datasetElementType: !1, + dataElementType: "arc", + animation: { animateRotate: !0, animateScale: !1 }, + animations: { + numbers: { + type: "number", + properties: [ + "circumference", + "endAngle", + "innerRadius", + "outerRadius", + "startAngle", + "x", + "y", + "offset", + "borderWidth", + "spacing", + ], + }, + }, + cutout: "50%", + rotation: 0, + circumference: 360, + radius: "100%", + spacing: 0, + indexAxis: "r", + }, + En.descriptors = { _scriptable: t => "spacing" !== t, _indexable: t => "spacing" !== t }, + En.overrides = { + aspectRatio: 1, + plugins: { + legend: { + labels: { + generateLabels(t) { + const e = t.data; + if (e.labels.length && e.datasets.length) { + const { labels: { pointStyle: i } } = t.legend.options; + return e.labels.map((e, s) => { + const n = t.getDatasetMeta(0).controller.getStyle(s); + return { + text: e, + fillStyle: n.backgroundColor, + strokeStyle: n.borderColor, + lineWidth: n.borderWidth, + pointStyle: i, + hidden: !t.getDataVisibility(s), + index: s, + }; + }); + } + return []; + }, + }, + onClick(t, e, i) { + i.chart.toggleDataVisibility(e.index), i.chart.update(); + }, + }, + tooltip: { + callbacks: { + title: () => "", + label(t) { + let e = t.label; + const i = ": " + t.formattedValue; + return s(e) ? (e = e.slice(), e[0] += i) : e += i, e; + }, + }, + }, + }, + }; + class Rn extends Ls { + initialize() { + this.enableOptionSharing = !0, this.supportsDecimation = !0, super.initialize(); + } + update(t) { + const e = this._cachedMeta, { dataset: i, data: s = [], _dataset: n } = e, o = this.chart._animationsDisabled; + let { start: a, count: r } = gt(e, s, o); + this._drawStart = a, + this._drawCount = r, + pt(e) && (a = 0, r = s.length), + i._chart = this.chart, + i._datasetIndex = this.index, + i._decimated = !!n._decimated, + i.points = s; + const l = this.resolveDatasetElementOptions(t); + this.options.showLine || (l.borderWidth = 0), + l.segment = this.options.segment, + this.updateElement(i, void 0, { animated: !o, options: l }, t), + this.updateElements(s, a, r, t); + } + updateElements(t, e, s, n) { + const o = "reset" === n, + { iScale: a, vScale: r, _stacked: l, _dataset: h } = this._cachedMeta, + { sharedOptions: c, includeOptions: d } = this._getSharedOptions(e, n), + u = a.axis, + f = r.axis, + { spanGaps: g, segment: p } = this.options, + m = B(g) ? g : Number.POSITIVE_INFINITY, + b = this.chart._animationsDisabled || o || "none" === n; + let x = e > 0 && this.getParsed(e - 1); + for (let g = e; g < e + s; ++g) { + const e = t[g], + s = this.getParsed(g), + _ = b ? e : {}, + y = i(s[f]), + v = _[u] = a.getPixelForValue(s[u], g), + w = _[f] = o || y ? r.getBasePixel() : r.getPixelForValue(l ? this.applyStack(r, s, l) : s[f], g); + _.skip = isNaN(v) || isNaN(w) || y, + _.stop = g > 0 && Math.abs(s[u] - x[u]) > m, + p && (_.parsed = s, _.raw = h.data[g]), + d && (_.options = c || this.resolveDataElementOptions(g, e.active ? "active" : n)), + b || this.updateElement(e, g, _, n), + x = s; + } + } + getMaxOverflow() { + const t = this._cachedMeta, e = t.dataset, i = e.options && e.options.borderWidth || 0, s = t.data || []; + if (!s.length) return i; + const n = s[0].size(this.resolveDataElementOptions(0)), + o = s[s.length - 1].size(this.resolveDataElementOptions(s.length - 1)); + return Math.max(i, n, o) / 2; + } + draw() { + const t = this._cachedMeta; + t.dataset.updateControlPoints(this.chart.chartArea, t.iScale.axis), super.draw(); + } + } + Rn.id = "line", + Rn.defaults = { datasetElementType: "line", dataElementType: "point", showLine: !0, spanGaps: !1 }, + Rn.overrides = { scales: { _index_: { type: "category" }, _value_: { type: "linear" } } }; + class In extends Ls { + constructor(t, e) { + super(t, e), this.innerRadius = void 0, this.outerRadius = void 0; + } + getLabelAndValue(t) { + const e = this._cachedMeta, i = this.chart, s = i.data.labels || [], n = li(e._parsed[t].r, i.options.locale); + return { label: s[t] || "", value: n }; + } + parseObjectData(t, e, i, s) { + return Ue.bind(this)(t, e, i, s); + } + update(t) { + const e = this._cachedMeta.data; + this._updateRadius(), this.updateElements(e, 0, e.length, t); + } + getMinMax() { + const t = this._cachedMeta, e = { min: Number.POSITIVE_INFINITY, max: Number.NEGATIVE_INFINITY }; + return t.data.forEach((t, i) => { + const s = this.getParsed(i).r; + !isNaN(s) && this.chart.getDataVisibility(i) && (s < e.min && (e.min = s), s > e.max && (e.max = s)); + }), + e; + } + _updateRadius() { + const t = this.chart, + e = t.chartArea, + i = t.options, + s = Math.min(e.right - e.left, e.bottom - e.top), + n = Math.max(s / 2, 0), + o = (n - Math.max(i.cutoutPercentage ? n / 100 * i.cutoutPercentage : 1, 0)) / t.getVisibleDatasetCount(); + this.outerRadius = n - o * this.index, this.innerRadius = this.outerRadius - o; + } + updateElements(t, e, i, s) { + const n = "reset" === s, + o = this.chart, + a = o.options.animation, + r = this._cachedMeta.rScale, + l = r.xCenter, + h = r.yCenter, + c = r.getIndexAngle(0) - .5 * D; + let d, u = c; + const f = 360 / this.countVisibleElements(); + for (d = 0; d < e; ++d) u += this._computeAngle(d, s, f); + for (d = e; d < e + i; d++) { + const e = t[d]; + let i = u, + g = u + this._computeAngle(d, s, f), + p = o.getDataVisibility(d) ? r.getDistanceFromCenterForValue(this.getParsed(d).r) : 0; + u = g, n && (a.animateScale && (p = 0), a.animateRotate && (i = g = c)); + const m = { + x: l, + y: h, + innerRadius: 0, + outerRadius: p, + startAngle: i, + endAngle: g, + options: this.resolveDataElementOptions(d, e.active ? "active" : s), + }; + this.updateElement(e, d, m, s); + } + } + countVisibleElements() { + const t = this._cachedMeta; + let e = 0; + return t.data.forEach((t, i) => { + !isNaN(this.getParsed(i).r) && this.chart.getDataVisibility(i) && e++; + }), + e; + } + _computeAngle(t, e, i) { + return this.chart.getDataVisibility(t) ? H(this.resolveDataElementOptions(t, e).angle || i) : 0; + } + } + In.id = "polarArea", + In.defaults = { + dataElementType: "arc", + animation: { animateRotate: !0, animateScale: !0 }, + animations: { + numbers: { type: "number", properties: ["x", "y", "startAngle", "endAngle", "innerRadius", "outerRadius"] }, + }, + indexAxis: "r", + startAngle: 0, + }, + In.overrides = { + aspectRatio: 1, + plugins: { + legend: { + labels: { + generateLabels(t) { + const e = t.data; + if (e.labels.length && e.datasets.length) { + const { labels: { pointStyle: i } } = t.legend.options; + return e.labels.map((e, s) => { + const n = t.getDatasetMeta(0).controller.getStyle(s); + return { + text: e, + fillStyle: n.backgroundColor, + strokeStyle: n.borderColor, + lineWidth: n.borderWidth, + pointStyle: i, + hidden: !t.getDataVisibility(s), + index: s, + }; + }); + } + return []; + }, + }, + onClick(t, e, i) { + i.chart.toggleDataVisibility(e.index), i.chart.update(); + }, + }, + tooltip: { + callbacks: { title: () => "", label: t => t.chart.data.labels[t.dataIndex] + ": " + t.formattedValue }, + }, + }, + scales: { + r: { + type: "radialLinear", + angleLines: { display: !1 }, + beginAtZero: !0, + grid: { circular: !0 }, + pointLabels: { display: !1 }, + startAngle: 0, + }, + }, + }; + class zn extends En {} + zn.id = "pie", zn.defaults = { cutout: 0, rotation: 0, circumference: 360, radius: "100%" }; + class Fn extends Ls { + getLabelAndValue(t) { + const e = this._cachedMeta.vScale, i = this.getParsed(t); + return { label: e.getLabels()[t], value: "" + e.getLabelForValue(i[e.axis]) }; + } + parseObjectData(t, e, i, s) { + return Ue.bind(this)(t, e, i, s); + } + update(t) { + const e = this._cachedMeta, i = e.dataset, s = e.data || [], n = e.iScale.getLabels(); + if (i.points = s, "resize" !== t) { + const e = this.resolveDatasetElementOptions(t); + this.options.showLine || (e.borderWidth = 0); + const o = { _loop: !0, _fullLoop: n.length === s.length, options: e }; + this.updateElement(i, void 0, o, t); + } + this.updateElements(s, 0, s.length, t); + } + updateElements(t, e, i, s) { + const n = this._cachedMeta.rScale, o = "reset" === s; + for (let a = e; a < e + i; a++) { + const e = t[a], + i = this.resolveDataElementOptions(a, e.active ? "active" : s), + r = n.getPointPositionForValue(a, this.getParsed(a).r), + l = o ? n.xCenter : r.x, + h = o ? n.yCenter : r.y, + c = { x: l, y: h, angle: r.angle, skip: isNaN(l) || isNaN(h), options: i }; + this.updateElement(e, a, c, s); + } + } + } + Fn.id = "radar", + Fn.defaults = { + datasetElementType: "line", + dataElementType: "point", + indexAxis: "r", + showLine: !0, + elements: { line: { fill: "start" } }, + }, + Fn.overrides = { aspectRatio: 1, scales: { r: { type: "radialLinear" } } }; + class Vn extends Ls { + update(t) { + const e = this._cachedMeta, { data: i = [] } = e, s = this.chart._animationsDisabled; + let { start: n, count: o } = gt(e, i, s); + if (this._drawStart = n, this._drawCount = o, pt(e) && (n = 0, o = i.length), this.options.showLine) { + const { dataset: n, _dataset: o } = e; + n._chart = this.chart, n._datasetIndex = this.index, n._decimated = !!o._decimated, n.points = i; + const a = this.resolveDatasetElementOptions(t); + a.segment = this.options.segment, this.updateElement(n, void 0, { animated: !s, options: a }, t); + } + this.updateElements(i, n, o, t); + } + addElements() { + const { showLine: t } = this.options; + !this.datasetElementType && t && (this.datasetElementType = Us.getElement("line")), super.addElements(); + } + updateElements(t, e, s, n) { + const o = "reset" === n, + { iScale: a, vScale: r, _stacked: l, _dataset: h } = this._cachedMeta, + c = this.resolveDataElementOptions(e, n), + d = this.getSharedOptions(c), + u = this.includeOptions(n, d), + f = a.axis, + g = r.axis, + { spanGaps: p, segment: m } = this.options, + b = B(p) ? p : Number.POSITIVE_INFINITY, + x = this.chart._animationsDisabled || o || "none" === n; + let _ = e > 0 && this.getParsed(e - 1); + for (let c = e; c < e + s; ++c) { + const e = t[c], + s = this.getParsed(c), + p = x ? e : {}, + y = i(s[g]), + v = p[f] = a.getPixelForValue(s[f], c), + w = p[g] = o || y ? r.getBasePixel() : r.getPixelForValue(l ? this.applyStack(r, s, l) : s[g], c); + p.skip = isNaN(v) || isNaN(w) || y, + p.stop = c > 0 && Math.abs(s[f] - _[f]) > b, + m && (p.parsed = s, p.raw = h.data[c]), + u && (p.options = d || this.resolveDataElementOptions(c, e.active ? "active" : n)), + x || this.updateElement(e, c, p, n), + _ = s; + } + this.updateSharedOptions(d, n, c); + } + getMaxOverflow() { + const t = this._cachedMeta, e = t.data || []; + if (!this.options.showLine) { + let t = 0; + for (let i = e.length - 1; i >= 0; --i) t = Math.max(t, e[i].size(this.resolveDataElementOptions(i)) / 2); + return t > 0 && t; + } + const i = t.dataset, s = i.options && i.options.borderWidth || 0; + if (!e.length) return s; + const n = e[0].size(this.resolveDataElementOptions(0)), + o = e[e.length - 1].size(this.resolveDataElementOptions(e.length - 1)); + return Math.max(s, n, o) / 2; + } + } + Vn.id = "scatter", + Vn.defaults = { datasetElementType: !1, dataElementType: "point", showLine: !1, fill: !1 }, + Vn.overrides = { + interaction: { mode: "point" }, + plugins: { + tooltip: { callbacks: { title: () => "", label: t => "(" + t.label + ", " + t.formattedValue + ")" } }, + }, + scales: { x: { type: "linear" }, y: { type: "linear" } }, + }; + var Bn = Object.freeze({ + __proto__: null, + BarController: Tn, + BubbleController: Ln, + DoughnutController: En, + LineController: Rn, + PolarAreaController: In, + PieController: zn, + RadarController: Fn, + ScatterController: Vn, + }); + function Nn(t, e, i) { + const { startAngle: s, pixelMargin: n, x: o, y: a, outerRadius: r, innerRadius: l } = e; + let h = n / r; + t.beginPath(), + t.arc(o, a, r, s - h, i + h), + l > n ? (h = n / l, t.arc(o, a, l, i + h, s - h, !0)) : t.arc(o, a, n, i + L, s - L), + t.closePath(), + t.clip(); + } + function Wn(t, e, i, s) { + const n = ui(t.options.borderRadius, ["outerStart", "outerEnd", "innerStart", "innerEnd"]); + const o = (i - e) / 2, + a = Math.min(o, s * e / 2), + r = t => { + const e = (i - Math.min(o, t)) * s / 2; + return Z(t, 0, Math.min(o, e)); + }; + return { + outerStart: r(n.outerStart), + outerEnd: r(n.outerEnd), + innerStart: Z(n.innerStart, 0, a), + innerEnd: Z(n.innerEnd, 0, a), + }; + } + function jn(t, e, i, s) { + return { x: i + t * Math.cos(e), y: s + t * Math.sin(e) }; + } + function Hn(t, e, i, s, n, o) { + const { x: a, y: r, startAngle: l, pixelMargin: h, innerRadius: c } = e, + d = Math.max(e.outerRadius + s + i - h, 0), + u = c > 0 ? c + s + i + h : 0; + let f = 0; + const g = n - l; + if (s) { + const t = ((c > 0 ? c - s : 0) + (d > 0 ? d - s : 0)) / 2; + f = (g - (0 !== t ? g * t / (t + s) : g)) / 2; + } + const p = (g - Math.max(.001, g * d - i / D) / d) / 2, + m = l + p + f, + b = n - p - f, + { outerStart: x, outerEnd: _, innerStart: y, innerEnd: v } = Wn(e, u, d, b - m), + w = d - x, + M = d - _, + k = m + x / w, + S = b - _ / M, + P = u + y, + O = u + v, + C = m + y / P, + A = b - v / O; + if (t.beginPath(), o) { + if (t.arc(a, r, d, k, S), _ > 0) { + const e = jn(M, S, a, r); + t.arc(e.x, e.y, _, S, b + L); + } + const e = jn(O, b, a, r); + if (t.lineTo(e.x, e.y), v > 0) { + const e = jn(O, A, a, r); + t.arc(e.x, e.y, v, b + L, A + Math.PI); + } + if (t.arc(a, r, u, b - v / u, m + y / u, !0), y > 0) { + const e = jn(P, C, a, r); + t.arc(e.x, e.y, y, C + Math.PI, m - L); + } + const i = jn(w, m, a, r); + if (t.lineTo(i.x, i.y), x > 0) { + const e = jn(w, k, a, r); + t.arc(e.x, e.y, x, m - L, k); + } + } else { + t.moveTo(a, r); + const e = Math.cos(k) * d + a, i = Math.sin(k) * d + r; + t.lineTo(e, i); + const s = Math.cos(S) * d + a, n = Math.sin(S) * d + r; + t.lineTo(s, n); + } + t.closePath(); + } + function $n(t, e, i, s, n, o) { + const { options: a } = e, { borderWidth: r, borderJoinStyle: l } = a, h = "inner" === a.borderAlign; + r + && (h ? (t.lineWidth = 2 * r, t.lineJoin = l || "round") : (t.lineWidth = r, t.lineJoin = l || "bevel"), + e.fullCircles && function(t, e, i) { + const { x: s, y: n, startAngle: o, pixelMargin: a, fullCircles: r } = e, + l = Math.max(e.outerRadius - a, 0), + h = e.innerRadius + a; + let c; + for (i && Nn(t, e, o + O), t.beginPath(), t.arc(s, n, h, o + O, o, !0), c = 0; c < r; ++c) t.stroke(); + for (t.beginPath(), t.arc(s, n, l, o, o + O), c = 0; c < r; ++c) t.stroke(); + }(t, e, h), + h && Nn(t, e, n), + Hn(t, e, i, s, n, o), + t.stroke()); + } + class Yn extends Es { + constructor(t) { + super(), + this.options = void 0, + this.circumference = void 0, + this.startAngle = void 0, + this.endAngle = void 0, + this.innerRadius = void 0, + this.outerRadius = void 0, + this.pixelMargin = 0, + this.fullCircles = 0, + t && Object.assign(this, t); + } + inRange(t, e, i) { + const s = this.getProps(["x", "y"], i), + { angle: n, distance: o } = U(s, { x: t, y: e }), + { startAngle: a, endAngle: l, innerRadius: h, outerRadius: c, circumference: d } = this.getProps([ + "startAngle", + "endAngle", + "innerRadius", + "outerRadius", + "circumference", + ], i), + u = this.options.spacing / 2, + f = r(d, l - a) >= O || G(n, a, l), + g = Q(o, h + u, c + u); + return f && g; + } + getCenterPoint(t) { + const { x: e, y: i, startAngle: s, endAngle: n, innerRadius: o, outerRadius: a } = this.getProps([ + "x", + "y", + "startAngle", + "endAngle", + "innerRadius", + "outerRadius", + "circumference", + ], t), + { offset: r, spacing: l } = this.options, + h = (s + n) / 2, + c = (o + a + l + r) / 2; + return { x: e + Math.cos(h) * c, y: i + Math.sin(h) * c }; + } + tooltipPosition(t) { + return this.getCenterPoint(t); + } + draw(t) { + const { options: e, circumference: i } = this, s = (e.offset || 0) / 2, n = (e.spacing || 0) / 2, o = e.circular; + if ( + this.pixelMargin = "inner" === e.borderAlign ? .33 : 0, + this.fullCircles = i > O ? Math.floor(i / O) : 0, + 0 === i || this.innerRadius < 0 || this.outerRadius < 0 + ) return; + t.save(); + let a = 0; + if (s) { + a = s / 2; + const e = (this.startAngle + this.endAngle) / 2; + t.translate(Math.cos(e) * a, Math.sin(e) * a), this.circumference >= D && (a = s); + } + t.fillStyle = e.backgroundColor, t.strokeStyle = e.borderColor; + const r = function(t, e, i, s, n) { + const { fullCircles: o, startAngle: a, circumference: r } = e; + let l = e.endAngle; + if (o) { + Hn(t, e, i, s, a + O, n); + for (let e = 0; e < o; ++e) t.fill(); + isNaN(r) || (l = a + r % O, r % O == 0 && (l += O)); + } + return Hn(t, e, i, s, l, n), t.fill(), l; + }(t, this, a, n, o); + $n(t, this, a, n, r, o), t.restore(); + } + } + function Un(t, e, i = e) { + t.lineCap = r(i.borderCapStyle, e.borderCapStyle), + t.setLineDash(r(i.borderDash, e.borderDash)), + t.lineDashOffset = r(i.borderDashOffset, e.borderDashOffset), + t.lineJoin = r(i.borderJoinStyle, e.borderJoinStyle), + t.lineWidth = r(i.borderWidth, e.borderWidth), + t.strokeStyle = r(i.borderColor, e.borderColor); + } + function Xn(t, e, i) { + t.lineTo(i.x, i.y); + } + function qn(t, e, i = {}) { + const s = t.length, + { start: n = 0, end: o = s - 1 } = i, + { start: a, end: r } = e, + l = Math.max(n, a), + h = Math.min(o, r), + c = n < a && o < a || n > r && o > r; + return { count: s, start: l, loop: e.loop, ilen: h < l && !c ? s + h - l : h - l }; + } + function Kn(t, e, i, s) { + const { points: n, options: o } = e, + { count: a, start: r, loop: l, ilen: h } = qn(n, i, s), + c = function(t) { + return t.stepped ? Oe : t.tension || "monotone" === t.cubicInterpolationMode ? Ce : Xn; + }(o); + let d, u, f, { move: g = !0, reverse: p } = s || {}; + for (d = 0; d <= h; ++d) { + u = n[(r + (p ? h - d : d)) % a], u.skip || (g ? (t.moveTo(u.x, u.y), g = !1) : c(t, f, u, p, o.stepped), f = u); + } + return l && (u = n[(r + (p ? h : 0)) % a], c(t, f, u, p, o.stepped)), !!l; + } + function Gn(t, e, i, s) { + const n = e.points, { count: o, start: a, ilen: r } = qn(n, i, s), { move: l = !0, reverse: h } = s || {}; + let c, d, u, f, g, p, m = 0, b = 0; + const x = t => (a + (h ? r - t : t)) % o, + _ = () => { + f !== g && (t.lineTo(m, g), t.lineTo(m, f), t.lineTo(m, p)); + }; + for (l && (d = n[x(0)], t.moveTo(d.x, d.y)), c = 0; c <= r; ++c) { + if (d = n[x(c)], d.skip) continue; + const e = d.x, i = d.y, s = 0 | e; + s === u + ? (i < f ? f = i : i > g && (g = i), m = (b * m + e) / ++b) + : (_(), t.lineTo(e, i), u = s, b = 0, f = g = i), p = i; + } + _(); + } + function Zn(t) { + const e = t.options, i = e.borderDash && e.borderDash.length; + return !(t._decimated || t._loop || e.tension || "monotone" === e.cubicInterpolationMode || e.stepped || i) + ? Gn + : Kn; + } + Yn.id = "arc", + Yn.defaults = { + borderAlign: "center", + borderColor: "#fff", + borderJoinStyle: void 0, + borderRadius: 0, + borderWidth: 2, + offset: 0, + spacing: 0, + angle: void 0, + circular: !0, + }, + Yn.defaultRoutes = { backgroundColor: "backgroundColor" }; + const Jn = "function" == typeof Path2D; + function Qn(t, e, i, s) { + Jn && !e.options.segment + ? function(t, e, i, s) { + let n = e._path; + n || (n = e._path = new Path2D(), e.path(n, i, s) && n.closePath()), Un(t, e.options), t.stroke(n); + }(t, e, i, s) + : function(t, e, i, s) { + const { segments: n, options: o } = e, a = Zn(e); + for (const r of n) { + Un(t, o, r.style), t.beginPath(), a(t, e, r, { start: i, end: i + s - 1 }) && t.closePath(), t.stroke(); + } + }(t, e, i, s); + } + class to extends Es { + constructor(t) { + super(), + this.animated = !0, + this.options = void 0, + this._chart = void 0, + this._loop = void 0, + this._fullLoop = void 0, + this._path = void 0, + this._points = void 0, + this._segments = void 0, + this._decimated = !1, + this._pointsUpdated = !1, + this._datasetIndex = void 0, + t && Object.assign(this, t); + } + updateControlPoints(t, e) { + const i = this.options; + if ((i.tension || "monotone" === i.cubicInterpolationMode) && !i.stepped && !this._pointsUpdated) { + const s = i.spanGaps ? this._loop : this._fullLoop; + Qe(this._points, i, t, s, e), this._pointsUpdated = !0; + } + } + set points(t) { + this._points = t, delete this._segments, delete this._path, this._pointsUpdated = !1; + } + get points() { + return this._points; + } + get segments() { + return this._segments || (this._segments = Di(this, this.options.segment)); + } + first() { + const t = this.segments, e = this.points; + return t.length && e[t[0].start]; + } + last() { + const t = this.segments, e = this.points, i = t.length; + return i && e[t[i - 1].end]; + } + interpolate(t, e) { + const i = this.options, s = t[e], n = this.points, o = Pi(this, { property: e, start: s, end: s }); + if (!o.length) return; + const a = [], + r = function(t) { + return t.stepped ? oi : t.tension || "monotone" === t.cubicInterpolationMode ? ai : ni; + }(i); + let l, h; + for (l = 0, h = o.length; l < h; ++l) { + const { start: h, end: c } = o[l], d = n[h], u = n[c]; + if (d === u) { + a.push(d); + continue; + } + const f = r(d, u, Math.abs((s - d[e]) / (u[e] - d[e])), i.stepped); + f[e] = t[e], a.push(f); + } + return 1 === a.length ? a[0] : a; + } + pathSegment(t, e, i) { + return Zn(this)(t, this, e, i); + } + path(t, e, i) { + const s = this.segments, n = Zn(this); + let o = this._loop; + e = e || 0, i = i || this.points.length - e; + for (const a of s) o &= n(t, this, a, { start: e, end: e + i - 1 }); + return !!o; + } + draw(t, e, i, s) { + const n = this.options || {}; + (this.points || []).length && n.borderWidth && (t.save(), Qn(t, this, i, s), t.restore()), + this.animated && (this._pointsUpdated = !1, this._path = void 0); + } + } + function eo(t, e, i, s) { + const n = t.options, { [i]: o } = t.getProps([i], s); + return Math.abs(e - o) < n.radius + n.hitRadius; + } + to.id = "line", + to.defaults = { + borderCapStyle: "butt", + borderDash: [], + borderDashOffset: 0, + borderJoinStyle: "miter", + borderWidth: 3, + capBezierPoints: !0, + cubicInterpolationMode: "default", + fill: !1, + spanGaps: !1, + stepped: !1, + tension: 0, + }, + to.defaultRoutes = { backgroundColor: "backgroundColor", borderColor: "borderColor" }, + to.descriptors = { _scriptable: !0, _indexable: t => "borderDash" !== t && "fill" !== t }; + class io extends Es { + constructor(t) { + super(), + this.options = void 0, + this.parsed = void 0, + this.skip = void 0, + this.stop = void 0, + t && Object.assign(this, t); + } + inRange(t, e, i) { + const s = this.options, { x: n, y: o } = this.getProps(["x", "y"], i); + return Math.pow(t - n, 2) + Math.pow(e - o, 2) < Math.pow(s.hitRadius + s.radius, 2); + } + inXRange(t, e) { + return eo(this, t, "x", e); + } + inYRange(t, e) { + return eo(this, t, "y", e); + } + getCenterPoint(t) { + const { x: e, y: i } = this.getProps(["x", "y"], t); + return { x: e, y: i }; + } + size(t) { + let e = (t = t || this.options || {}).radius || 0; + e = Math.max(e, e && t.hoverRadius || 0); + return 2 * (e + (e && t.borderWidth || 0)); + } + draw(t, e) { + const i = this.options; + this.skip || i.radius < .1 || !Se(this, e, this.size(i) / 2) + || (t.strokeStyle = i.borderColor, + t.lineWidth = i.borderWidth, + t.fillStyle = i.backgroundColor, + Me(t, i, this.x, this.y)); + } + getRange() { + const t = this.options || {}; + return t.radius + t.hitRadius; + } + } + function so(t, e) { + const { x: i, y: s, base: n, width: o, height: a } = t.getProps(["x", "y", "base", "width", "height"], e); + let r, l, h, c, d; + return t.horizontal + ? (d = a / 2, r = Math.min(i, n), l = Math.max(i, n), h = s - d, c = s + d) + : (d = o / 2, r = i - d, l = i + d, h = Math.min(s, n), c = Math.max(s, n)), + { left: r, top: h, right: l, bottom: c }; + } + function no(t, e, i, s) { + return t ? 0 : Z(e, i, s); + } + function oo(t) { + const e = so(t), + i = e.right - e.left, + s = e.bottom - e.top, + o = function(t, e, i) { + const s = t.options.borderWidth, n = t.borderSkipped, o = fi(s); + return { + t: no(n.top, o.top, 0, i), + r: no(n.right, o.right, 0, e), + b: no(n.bottom, o.bottom, 0, i), + l: no(n.left, o.left, 0, e), + }; + }(t, i / 2, s / 2), + a = function(t, e, i) { + const { enableBorderRadius: s } = t.getProps(["enableBorderRadius"]), + o = t.options.borderRadius, + a = gi(o), + r = Math.min(e, i), + l = t.borderSkipped, + h = s || n(o); + return { + topLeft: no(!h || l.top || l.left, a.topLeft, 0, r), + topRight: no(!h || l.top || l.right, a.topRight, 0, r), + bottomLeft: no(!h || l.bottom || l.left, a.bottomLeft, 0, r), + bottomRight: no(!h || l.bottom || l.right, a.bottomRight, 0, r), + }; + }(t, i / 2, s / 2); + return { + outer: { x: e.left, y: e.top, w: i, h: s, radius: a }, + inner: { + x: e.left + o.l, + y: e.top + o.t, + w: i - o.l - o.r, + h: s - o.t - o.b, + radius: { + topLeft: Math.max(0, a.topLeft - Math.max(o.t, o.l)), + topRight: Math.max(0, a.topRight - Math.max(o.t, o.r)), + bottomLeft: Math.max(0, a.bottomLeft - Math.max(o.b, o.l)), + bottomRight: Math.max(0, a.bottomRight - Math.max(o.b, o.r)), + }, + }, + }; + } + function ao(t, e, i, s) { + const n = null === e, o = null === i, a = t && !(n && o) && so(t, s); + return a && (n || Q(e, a.left, a.right)) && (o || Q(i, a.top, a.bottom)); + } + function ro(t, e) { + t.rect(e.x, e.y, e.w, e.h); + } + function lo(t, e, i = {}) { + const s = t.x !== i.x ? -e : 0, + n = t.y !== i.y ? -e : 0, + o = (t.x + t.w !== i.x + i.w ? e : 0) - s, + a = (t.y + t.h !== i.y + i.h ? e : 0) - n; + return { x: t.x + s, y: t.y + n, w: t.w + o, h: t.h + a, radius: t.radius }; + } + io.id = "point", + io.defaults = { + borderWidth: 1, + hitRadius: 1, + hoverBorderWidth: 1, + hoverRadius: 4, + pointStyle: "circle", + radius: 3, + rotation: 0, + }, + io.defaultRoutes = { backgroundColor: "backgroundColor", borderColor: "borderColor" }; + class ho extends Es { + constructor(t) { + super(), + this.options = void 0, + this.horizontal = void 0, + this.base = void 0, + this.width = void 0, + this.height = void 0, + this.inflateAmount = void 0, + t && Object.assign(this, t); + } + draw(t) { + const { inflateAmount: e, options: { borderColor: i, backgroundColor: s } } = this, + { inner: n, outer: o } = oo(this), + a = (r = o.radius).topLeft || r.topRight || r.bottomLeft || r.bottomRight ? Le : ro; + var r; + t.save(), + o.w === n.w && o.h === n.h + || (t.beginPath(), a(t, lo(o, e, n)), t.clip(), a(t, lo(n, -e, o)), t.fillStyle = i, t.fill("evenodd")), + t.beginPath(), + a(t, lo(n, e)), + t.fillStyle = s, + t.fill(), + t.restore(); + } + inRange(t, e, i) { + return ao(this, t, e, i); + } + inXRange(t, e) { + return ao(this, t, null, e); + } + inYRange(t, e) { + return ao(this, null, t, e); + } + getCenterPoint(t) { + const { x: e, y: i, base: s, horizontal: n } = this.getProps(["x", "y", "base", "horizontal"], t); + return { x: n ? (e + s) / 2 : e, y: n ? i : (i + s) / 2 }; + } + getRange(t) { + return "x" === t ? this.width / 2 : this.height / 2; + } + } + ho.id = "bar", + ho.defaults = { + borderSkipped: "start", + borderWidth: 0, + borderRadius: 0, + inflateAmount: "auto", + pointStyle: void 0, + }, + ho.defaultRoutes = { backgroundColor: "backgroundColor", borderColor: "borderColor" }; + var co = Object.freeze({ __proto__: null, ArcElement: Yn, LineElement: to, PointElement: io, BarElement: ho }); + function uo(t) { + if (t._decimated) { + const e = t._data; + delete t._decimated, delete t._data, Object.defineProperty(t, "data", { value: e }); + } + } + function fo(t) { + t.data.datasets.forEach(t => { + uo(t); + }); + } + var go = { + id: "decimation", + defaults: { algorithm: "min-max", enabled: !1 }, + beforeElementsUpdate: (t, e, s) => { + if (!s.enabled) return void fo(t); + const n = t.width; + t.data.datasets.forEach((e, o) => { + const { _data: a, indexAxis: r } = e, l = t.getDatasetMeta(o), h = a || e.data; + if ("y" === bi([r, t.options.indexAxis])) return; + if (!l.controller.supportsDecimation) return; + const c = t.scales[l.xAxisID]; + if ("linear" !== c.type && "time" !== c.type) return; + if (t.options.parsing) return; + let { start: d, count: u } = function(t, e) { + const i = e.length; + let s, n = 0; + const { iScale: o } = t, { min: a, max: r, minDefined: l, maxDefined: h } = o.getUserBounds(); + return l && (n = Z(et(e, o.axis, a).lo, 0, i - 1)), + s = h ? Z(et(e, o.axis, r).hi + 1, n, i) - n : i - n, + { start: n, count: s }; + }(l, h); + if (u <= (s.threshold || 4 * n)) return void uo(e); + let f; + switch ( + i(a) + && (e._data = h, + delete e.data, + Object.defineProperty(e, "data", { + configurable: !0, + enumerable: !0, + get: function() { + return this._decimated; + }, + set: function(t) { + this._data = t; + }, + })), s.algorithm + ) { + case "lttb": + f = function(t, e, i, s, n) { + const o = n.samples || s; + if (o >= i) return t.slice(e, e + i); + const a = [], r = (i - 2) / (o - 2); + let l = 0; + const h = e + i - 1; + let c, d, u, f, g, p = e; + for (a[l++] = t[p], c = 0; c < o - 2; c++) { + let s, n = 0, o = 0; + const h = Math.floor((c + 1) * r) + 1 + e, m = Math.min(Math.floor((c + 2) * r) + 1, i) + e, b = m - h; + for (s = h; s < m; s++) n += t[s].x, o += t[s].y; + n /= b, o /= b; + const x = Math.floor(c * r) + 1 + e, + _ = Math.min(Math.floor((c + 1) * r) + 1, i) + e, + { x: y, y: v } = t[p]; + for (u = f = -1, s = x; s < _; s++) { + f = .5 * Math.abs((y - n) * (t[s].y - v) - (y - t[s].x) * (o - v)), f > u && (u = f, d = t[s], g = s); + } + a[l++] = d, p = g; + } + return a[l++] = t[h], a; + }(h, d, u, n, s); + break; + case "min-max": + f = function(t, e, s, n) { + let o, a, r, l, h, c, d, u, f, g, p = 0, m = 0; + const b = [], x = e + s - 1, _ = t[e].x, y = t[x].x - _; + for (o = e; o < e + s; ++o) { + a = t[o], r = (a.x - _) / y * n, l = a.y; + const e = 0 | r; + if (e === h) l < f ? (f = l, c = o) : l > g && (g = l, d = o), p = (m * p + a.x) / ++m; + else { + const s = o - 1; + if (!i(c) && !i(d)) { + const e = Math.min(c, d), i = Math.max(c, d); + e !== u && e !== s && b.push({ ...t[e], x: p }), i !== u && i !== s && b.push({ ...t[i], x: p }); + } + o > 0 && s !== u && b.push(t[s]), b.push(a), h = e, m = 0, f = g = l, c = d = u = o; + } + } + return b; + }(h, d, u, n); + break; + default: + throw new Error(`Unsupported decimation algorithm '${s.algorithm}'`); + } + e._decimated = f; + }); + }, + destroy(t) { + fo(t); + }, + }; + function po(t, e, i, s) { + if (s) return; + let n = e[t], o = i[t]; + return "angle" === t && (n = K(n), o = K(o)), { property: t, start: n, end: o }; + } + function mo(t, e, i) { + for (; e > t; e--) { + const t = i[e]; + if (!isNaN(t.x) && !isNaN(t.y)) break; + } + return e; + } + function bo(t, e, i, s) { + return t && e ? s(t[i], e[i]) : t ? t[i] : e ? e[i] : 0; + } + function xo(t, e) { + let i = [], n = !1; + return s(t) ? (n = !0, i = t) : i = function(t, e) { + const { x: i = null, y: s = null } = t || {}, n = e.points, o = []; + return e.segments.forEach(({ start: t, end: e }) => { + e = mo(t, e, n); + const a = n[t], r = n[e]; + null !== s + ? (o.push({ x: a.x, y: s }), o.push({ x: r.x, y: s })) + : null !== i && (o.push({ x: i, y: a.y }), o.push({ x: i, y: r.y })); + }), + o; + }(t, e), + i.length ? new to({ points: i, options: { tension: 0 }, _loop: n, _fullLoop: n }) : null; + } + function _o(t) { + return t && !1 !== t.fill; + } + function yo(t, e, i) { + let s = t[e].fill; + const n = [e]; + let a; + if (!i) return s; + for (; !1 !== s && -1 === n.indexOf(s);) { + if (!o(s)) return s; + if (a = t[s], !a) return !1; + if (a.visible) return s; + n.push(s), s = a.fill; + } + return !1; + } + function vo(t, e, i) { + const s = function(t) { + const e = t.options, i = e.fill; + let s = r(i && i.target, i); + void 0 === s && (s = !!e.backgroundColor); + if (!1 === s || null === s) return !1; + if (!0 === s) return "origin"; + return s; + }(t); + if (n(s)) return !isNaN(s.value) && s; + let a = parseFloat(s); + return o(a) && Math.floor(a) === a + ? function(t, e, i, s) { + "-" !== t && "+" !== t || (i = e + i); + if (i === e || i < 0 || i >= s) return !1; + return i; + }(s[0], e, a, i) + : ["origin", "start", "end", "stack", "shape"].indexOf(s) >= 0 && s; + } + function wo(t, e, i) { + const s = []; + for (let n = 0; n < i.length; n++) { + const o = i[n], { first: a, last: r, point: l } = Mo(o, e, "x"); + if (!(!l || a && r)) { + if (a) s.unshift(l); + else if (t.push(l), !r) break; + } + } + t.push(...s); + } + function Mo(t, e, i) { + const s = t.interpolate(e, i); + if (!s) return {}; + const n = s[i], o = t.segments, a = t.points; + let r = !1, l = !1; + for (let t = 0; t < o.length; t++) { + const e = o[t], s = a[e.start][i], h = a[e.end][i]; + if (Q(n, s, h)) { + r = n === s, l = n === h; + break; + } + } + return { first: r, last: l, point: s }; + } + class ko { + constructor(t) { + this.x = t.x, this.y = t.y, this.radius = t.radius; + } + pathSegment(t, e, i) { + const { x: s, y: n, radius: o } = this; + return e = e || { start: 0, end: O }, t.arc(s, n, o, e.end, e.start, !0), !i.bounds; + } + interpolate(t) { + const { x: e, y: i, radius: s } = this, n = t.angle; + return { x: e + Math.cos(n) * s, y: i + Math.sin(n) * s, angle: n }; + } + } + function So(t) { + const { chart: e, fill: i, line: s } = t; + if (o(i)) { + return function(t, e) { + const i = t.getDatasetMeta(e); + return i && t.isDatasetVisible(e) ? i.dataset : null; + }(e, i); + } + if ("stack" === i) { + return function(t) { + const { scale: e, index: i, line: s } = t, + n = [], + o = s.segments, + a = s.points, + r = function(t, e) { + const i = [], s = t.getMatchingVisibleMetas("line"); + for (let t = 0; t < s.length; t++) { + const n = s[t]; + if (n.index === e) break; + n.hidden || i.unshift(n.dataset); + } + return i; + }(e, i); + r.push(xo({ x: null, y: e.bottom }, s)); + for (let t = 0; t < o.length; t++) { + const e = o[t]; + for (let t = e.start; t <= e.end; t++) wo(n, a[t], r); + } + return new to({ points: n, options: {} }); + }(t); + } + if ("shape" === i) return !0; + const a = function(t) { + if ((t.scale || {}).getPointPositionForValue) { + return function(t) { + const { scale: e, fill: i } = t, + s = e.options, + o = e.getLabels().length, + a = s.reverse ? e.max : e.min, + r = function(t, e, i) { + let s; + return s = "start" === t + ? i + : "end" === t + ? e.options.reverse ? e.min : e.max + : n(t) + ? t.value + : e.getBaseValue(), + s; + }(i, e, a), + l = []; + if (s.grid.circular) { + const t = e.getPointPositionForValue(0, a); + return new ko({ x: t.x, y: t.y, radius: e.getDistanceFromCenterForValue(r) }); + } + for (let t = 0; t < o; ++t) l.push(e.getPointPositionForValue(t, r)); + return l; + }(t); + } + return function(t) { + const { scale: e = {}, fill: i } = t, + s = function(t, e) { + let i = null; + return "start" === t + ? i = e.bottom + : "end" === t + ? i = e.top + : n(t) + ? i = e.getPixelForValue(t.value) + : e.getBasePixel && (i = e.getBasePixel()), + i; + }(i, e); + if (o(s)) { + const t = e.isHorizontal(); + return { x: t ? s : null, y: t ? null : s }; + } + return null; + }(t); + }(t); + return a instanceof ko ? a : xo(a, s); + } + function Po(t, e, i) { + const s = So(e), + { line: n, scale: o, axis: a } = e, + r = n.options, + l = r.fill, + h = r.backgroundColor, + { above: c = h, below: d = h } = l || {}; + s && n.points.length && (Pe(t, i), + function(t, e) { + const { line: i, target: s, above: n, below: o, area: a, scale: r } = e, l = i._loop ? "angle" : e.axis; + t.save(), + "x" === l && o !== n + && (Do(t, s, a.top), + Oo(t, { line: i, target: s, color: n, scale: r, property: l }), + t.restore(), + t.save(), + Do(t, s, a.bottom)); + Oo(t, { line: i, target: s, color: o, scale: r, property: l }), t.restore(); + }(t, { line: n, target: s, above: c, below: d, area: i, scale: o, axis: a }), + De(t)); + } + function Do(t, e, i) { + const { segments: s, points: n } = e; + let o = !0, a = !1; + t.beginPath(); + for (const r of s) { + const { start: s, end: l } = r, h = n[s], c = n[mo(s, l, n)]; + o ? (t.moveTo(h.x, h.y), o = !1) : (t.lineTo(h.x, i), t.lineTo(h.x, h.y)), + a = !!e.pathSegment(t, r, { move: a }), + a ? t.closePath() : t.lineTo(c.x, i); + } + t.lineTo(e.first().x, i), t.closePath(), t.clip(); + } + function Oo(t, e) { + const { line: i, target: s, property: n, color: o, scale: a } = e, + r = function(t, e, i) { + const s = t.segments, n = t.points, o = e.points, a = []; + for (const t of s) { + let { start: s, end: r } = t; + r = mo(s, r, n); + const l = po(i, n[s], n[r], t.loop); + if (!e.segments) { + a.push({ source: t, target: l, start: n[s], end: n[r] }); + continue; + } + const h = Pi(e, l); + for (const e of h) { + const s = po(i, o[e.start], o[e.end], e.loop), r = Si(t, n, s); + for (const t of r) { + a.push({ + source: t, + target: e, + start: { [i]: bo(l, s, "start", Math.max) }, + end: { [i]: bo(l, s, "end", Math.min) }, + }); + } + } + } + return a; + }(i, s, n); + for (const { source: e, target: l, start: h, end: c } of r) { + const { style: { backgroundColor: r = o } = {} } = e, d = !0 !== s; + t.save(), t.fillStyle = r, Co(t, a, d && po(n, h, c)), t.beginPath(); + const u = !!i.pathSegment(t, e); + let f; + if (d) { + u ? t.closePath() : Ao(t, s, c, n); + const e = !!s.pathSegment(t, l, { move: u, reverse: !0 }); + f = u && e, f || Ao(t, s, h, n); + } + t.closePath(), t.fill(f ? "evenodd" : "nonzero"), t.restore(); + } + } + function Co(t, e, i) { + const { top: s, bottom: n } = e.chart.chartArea, { property: o, start: a, end: r } = i || {}; + "x" === o && (t.beginPath(), t.rect(a, s, r - a, n - s), t.clip()); + } + function Ao(t, e, i, s) { + const n = e.interpolate(i, s); + n && t.lineTo(n.x, n.y); + } + var To = { + id: "filler", + afterDatasetsUpdate(t, e, i) { + const s = (t.data.datasets || []).length, n = []; + let o, a, r, l; + for (a = 0; a < s; ++a) { + o = t.getDatasetMeta(a), + r = o.dataset, + l = null, + r && r.options && r instanceof to + && (l = { + visible: t.isDatasetVisible(a), + index: a, + fill: vo(r, a, s), + chart: t, + axis: o.controller.options.indexAxis, + scale: o.vScale, + line: r, + }), + o.$filler = l, + n.push(l); + } + for (a = 0; a < s; ++a) l = n[a], l && !1 !== l.fill && (l.fill = yo(n, a, i.propagate)); + }, + beforeDraw(t, e, i) { + const s = "beforeDraw" === i.drawTime, n = t.getSortedVisibleDatasetMetas(), o = t.chartArea; + for (let e = n.length - 1; e >= 0; --e) { + const i = n[e].$filler; + i && (i.line.updateControlPoints(o, i.axis), s && i.fill && Po(t.ctx, i, o)); + } + }, + beforeDatasetsDraw(t, e, i) { + if ("beforeDatasetsDraw" !== i.drawTime) return; + const s = t.getSortedVisibleDatasetMetas(); + for (let e = s.length - 1; e >= 0; --e) { + const i = s[e].$filler; + _o(i) && Po(t.ctx, i, t.chartArea); + } + }, + beforeDatasetDraw(t, e, i) { + const s = e.meta.$filler; + _o(s) && "beforeDatasetDraw" === i.drawTime && Po(t.ctx, s, t.chartArea); + }, + defaults: { propagate: !0, drawTime: "beforeDatasetDraw" }, + }; + const Lo = (t, e) => { + let { boxHeight: i = e, boxWidth: s = e } = t; + return t.usePointStyle && (i = Math.min(i, e), s = t.pointStyleWidth || Math.min(s, e)), + { boxWidth: s, boxHeight: i, itemHeight: Math.max(e, i) }; + }; + class Eo extends Es { + constructor(t) { + super(), + this._added = !1, + this.legendHitBoxes = [], + this._hoveredItem = null, + this.doughnutMode = !1, + this.chart = t.chart, + this.options = t.options, + this.ctx = t.ctx, + this.legendItems = void 0, + this.columnSizes = void 0, + this.lineWidths = void 0, + this.maxHeight = void 0, + this.maxWidth = void 0, + this.top = void 0, + this.bottom = void 0, + this.left = void 0, + this.right = void 0, + this.height = void 0, + this.width = void 0, + this._margins = void 0, + this.position = void 0, + this.weight = void 0, + this.fullSize = void 0; + } + update(t, e, i) { + this.maxWidth = t, this.maxHeight = e, this._margins = i, this.setDimensions(), this.buildLabels(), this.fit(); + } + setDimensions() { + this.isHorizontal() + ? (this.width = this.maxWidth, this.left = this._margins.left, this.right = this.width) + : (this.height = this.maxHeight, this.top = this._margins.top, this.bottom = this.height); + } + buildLabels() { + const t = this.options.labels || {}; + let e = c(t.generateLabels, [this.chart], this) || []; + t.filter && (e = e.filter(e => t.filter(e, this.chart.data))), + t.sort && (e = e.sort((e, i) => t.sort(e, i, this.chart.data))), + this.options.reverse && e.reverse(), + this.legendItems = e; + } + fit() { + const { options: t, ctx: e } = this; + if (!t.display) return void (this.width = this.height = 0); + const i = t.labels, + s = mi(i.font), + n = s.size, + o = this._computeTitleHeight(), + { boxWidth: a, itemHeight: r } = Lo(i, n); + let l, h; + e.font = s.string, + this.isHorizontal() + ? (l = this.maxWidth, h = this._fitRows(o, n, a, r) + 10) + : (h = this.maxHeight, l = this._fitCols(o, n, a, r) + 10), + this.width = Math.min(l, t.maxWidth || this.maxWidth), + this.height = Math.min(h, t.maxHeight || this.maxHeight); + } + _fitRows(t, e, i, s) { + const { ctx: n, maxWidth: o, options: { labels: { padding: a } } } = this, + r = this.legendHitBoxes = [], + l = this.lineWidths = [0], + h = s + a; + let c = t; + n.textAlign = "left", n.textBaseline = "middle"; + let d = -1, u = -h; + return this.legendItems.forEach((t, f) => { + const g = i + e / 2 + n.measureText(t.text).width; + (0 === f || l[l.length - 1] + g + 2 * a > o) && (c += h, l[l.length - (f > 0 ? 0 : 1)] = 0, u += h, d++), + r[f] = { left: 0, top: u, row: d, width: g, height: s }, + l[l.length - 1] += g + a; + }), + c; + } + _fitCols(t, e, i, s) { + const { ctx: n, maxHeight: o, options: { labels: { padding: a } } } = this, + r = this.legendHitBoxes = [], + l = this.columnSizes = [], + h = o - t; + let c = a, d = 0, u = 0, f = 0, g = 0; + return this.legendItems.forEach((t, o) => { + const p = i + e / 2 + n.measureText(t.text).width; + o > 0 && u + s + 2 * a > h && (c += d + a, l.push({ width: d, height: u }), f += d + a, g++, d = u = 0), + r[o] = { left: f, top: u, col: g, width: p, height: s }, + d = Math.max(d, p), + u += s + a; + }), + c += d, + l.push({ width: d, height: u }), + c; + } + adjustHitBoxes() { + if (!this.options.display) return; + const t = this._computeTitleHeight(), + { legendHitBoxes: e, options: { align: i, labels: { padding: s }, rtl: n } } = this, + o = yi(n, this.left, this.width); + if (this.isHorizontal()) { + let n = 0, a = ut(i, this.left + s, this.right - this.lineWidths[n]); + for (const r of e) { + n !== r.row && (n = r.row, a = ut(i, this.left + s, this.right - this.lineWidths[n])), + r.top += this.top + t + s, + r.left = o.leftForLtr(o.x(a), r.width), + a += r.width + s; + } + } else { + let n = 0, a = ut(i, this.top + t + s, this.bottom - this.columnSizes[n].height); + for (const r of e) { + r.col !== n && (n = r.col, a = ut(i, this.top + t + s, this.bottom - this.columnSizes[n].height)), + r.top = a, + r.left += this.left + s, + r.left = o.leftForLtr(o.x(r.left), r.width), + a += r.height + s; + } + } + } + isHorizontal() { + return "top" === this.options.position || "bottom" === this.options.position; + } + draw() { + if (this.options.display) { + const t = this.ctx; + Pe(t, this), this._draw(), De(t); + } + } + _draw() { + const { options: t, columnSizes: e, lineWidths: i, ctx: s } = this, + { align: n, labels: o } = t, + a = ne.color, + l = yi(t.rtl, this.left, this.width), + h = mi(o.font), + { color: c, padding: d } = o, + u = h.size, + f = u / 2; + let g; + this.drawTitle(), + s.textAlign = l.textAlign("left"), + s.textBaseline = "middle", + s.lineWidth = .5, + s.font = h.string; + const { boxWidth: p, boxHeight: m, itemHeight: b } = Lo(o, u), + x = this.isHorizontal(), + _ = this._computeTitleHeight(); + g = x + ? { x: ut(n, this.left + d, this.right - i[0]), y: this.top + d + _, line: 0 } + : { x: this.left + d, y: ut(n, this.top + _ + d, this.bottom - e[0].height), line: 0 }, + vi(this.ctx, t.textDirection); + const y = b + d; + this.legendItems.forEach((v, w) => { + s.strokeStyle = v.fontColor || c, s.fillStyle = v.fontColor || c; + const M = s.measureText(v.text).width, + k = l.textAlign(v.textAlign || (v.textAlign = o.textAlign)), + S = p + f + M; + let P = g.x, D = g.y; + l.setWidth(this.width), + x + ? w > 0 && P + S + d > this.right + && (D = g.y += y, g.line++, P = g.x = ut(n, this.left + d, this.right - i[g.line])) + : w > 0 && D + y > this.bottom + && (P = g.x = P + e[g.line].width + d, + g.line++, + D = g.y = ut(n, this.top + _ + d, this.bottom - e[g.line].height)); + !function(t, e, i) { + if (isNaN(p) || p <= 0 || isNaN(m) || m < 0) return; + s.save(); + const n = r(i.lineWidth, 1); + if ( + s.fillStyle = r(i.fillStyle, a), + s.lineCap = r(i.lineCap, "butt"), + s.lineDashOffset = r(i.lineDashOffset, 0), + s.lineJoin = r(i.lineJoin, "miter"), + s.lineWidth = n, + s.strokeStyle = r(i.strokeStyle, a), + s.setLineDash(r(i.lineDash, [])), + o.usePointStyle + ) { + const a = { radius: m * Math.SQRT2 / 2, pointStyle: i.pointStyle, rotation: i.rotation, borderWidth: n }, + r = l.xPlus(t, p / 2); + ke(s, a, r, e + f, o.pointStyleWidth && p); + } else { + const o = e + Math.max((u - m) / 2, 0), a = l.leftForLtr(t, p), r = gi(i.borderRadius); + s.beginPath(), + Object.values(r).some(t => 0 !== t) ? Le(s, { x: a, y: o, w: p, h: m, radius: r }) : s.rect(a, o, p, m), + s.fill(), + 0 !== n && s.stroke(); + } + s.restore(); + }(l.x(P), D, v), + P = ft(k, P + p + f, x ? P + S : this.right, t.rtl), + function(t, e, i) { + Ae(s, i.text, t, e + b / 2, h, { strikethrough: i.hidden, textAlign: l.textAlign(i.textAlign) }); + }(l.x(P), D, v), + x ? g.x += S + d : g.y += y; + }), wi(this.ctx, t.textDirection); + } + drawTitle() { + const t = this.options, e = t.title, i = mi(e.font), s = pi(e.padding); + if (!e.display) return; + const n = yi(t.rtl, this.left, this.width), o = this.ctx, a = e.position, r = i.size / 2, l = s.top + r; + let h, c = this.left, d = this.width; + if (this.isHorizontal()) d = Math.max(...this.lineWidths), h = this.top + l, c = ut(t.align, c, this.right - d); + else { + const e = this.columnSizes.reduce((t, e) => Math.max(t, e.height), 0); + h = l + ut(t.align, this.top, this.bottom - e - t.labels.padding - this._computeTitleHeight()); + } + const u = ut(a, c, c + d); + o.textAlign = n.textAlign(dt(a)), + o.textBaseline = "middle", + o.strokeStyle = e.color, + o.fillStyle = e.color, + o.font = i.string, + Ae(o, e.text, u, h, i); + } + _computeTitleHeight() { + const t = this.options.title, e = mi(t.font), i = pi(t.padding); + return t.display ? e.lineHeight + i.height : 0; + } + _getLegendItemAt(t, e) { + let i, s, n; + if (Q(t, this.left, this.right) && Q(e, this.top, this.bottom)) { + for (n = this.legendHitBoxes, i = 0; i < n.length; ++i) { + if (s = n[i], Q(t, s.left, s.left + s.width) && Q(e, s.top, s.top + s.height)) return this.legendItems[i]; + } + } + return null; + } + handleEvent(t) { + const e = this.options; + if ( + !function(t, e) { + if (("mousemove" === t || "mouseout" === t) && (e.onHover || e.onLeave)) return !0; + if (e.onClick && ("click" === t || "mouseup" === t)) return !0; + return !1; + }(t.type, e) + ) return; + const i = this._getLegendItemAt(t.x, t.y); + if ("mousemove" === t.type || "mouseout" === t.type) { + const o = this._hoveredItem, + a = (n = i, null !== (s = o) && null !== n && s.datasetIndex === n.datasetIndex && s.index === n.index); + o && !a && c(e.onLeave, [t, o, this], this), this._hoveredItem = i, i && !a && c(e.onHover, [t, i, this], this); + } else i && c(e.onClick, [t, i, this], this); + var s, n; + } + } + var Ro = { + id: "legend", + _element: Eo, + start(t, e, i) { + const s = t.legend = new Eo({ ctx: t.ctx, options: i, chart: t }); + Zi.configure(t, s, i), Zi.addBox(t, s); + }, + stop(t) { + Zi.removeBox(t, t.legend), delete t.legend; + }, + beforeUpdate(t, e, i) { + const s = t.legend; + Zi.configure(t, s, i), s.options = i; + }, + afterUpdate(t) { + const e = t.legend; + e.buildLabels(), e.adjustHitBoxes(); + }, + afterEvent(t, e) { + e.replay || t.legend.handleEvent(e.event); + }, + defaults: { + display: !0, + position: "top", + align: "center", + fullSize: !0, + reverse: !1, + weight: 1e3, + onClick(t, e, i) { + const s = e.datasetIndex, n = i.chart; + n.isDatasetVisible(s) ? (n.hide(s), e.hidden = !0) : (n.show(s), e.hidden = !1); + }, + onHover: null, + onLeave: null, + labels: { + color: t => t.chart.options.color, + boxWidth: 40, + padding: 10, + generateLabels(t) { + const e = t.data.datasets, + { labels: { usePointStyle: i, pointStyle: s, textAlign: n, color: o } } = t.legend.options; + return t._getSortedDatasetMetas().map(t => { + const a = t.controller.getStyle(i ? 0 : void 0), r = pi(a.borderWidth); + return { + text: e[t.index].label, + fillStyle: a.backgroundColor, + fontColor: o, + hidden: !t.visible, + lineCap: a.borderCapStyle, + lineDash: a.borderDash, + lineDashOffset: a.borderDashOffset, + lineJoin: a.borderJoinStyle, + lineWidth: (r.width + r.height) / 4, + strokeStyle: a.borderColor, + pointStyle: s || a.pointStyle, + rotation: a.rotation, + textAlign: n || a.textAlign, + borderRadius: 0, + datasetIndex: t.index, + }; + }, this); + }, + }, + title: { color: t => t.chart.options.color, display: !1, position: "center", text: "" }, + }, + descriptors: { + _scriptable: t => !t.startsWith("on"), + labels: { _scriptable: t => !["generateLabels", "filter", "sort"].includes(t) }, + }, + }; + class Io extends Es { + constructor(t) { + super(), + this.chart = t.chart, + this.options = t.options, + this.ctx = t.ctx, + this._padding = void 0, + this.top = void 0, + this.bottom = void 0, + this.left = void 0, + this.right = void 0, + this.width = void 0, + this.height = void 0, + this.position = void 0, + this.weight = void 0, + this.fullSize = void 0; + } + update(t, e) { + const i = this.options; + if (this.left = 0, this.top = 0, !i.display) { + return void (this.width = + this.height = + this.right = + this.bottom = + 0); + } + this.width = this.right = t, this.height = this.bottom = e; + const n = s(i.text) ? i.text.length : 1; + this._padding = pi(i.padding); + const o = n * mi(i.font).lineHeight + this._padding.height; + this.isHorizontal() ? this.height = o : this.width = o; + } + isHorizontal() { + const t = this.options.position; + return "top" === t || "bottom" === t; + } + _drawArgs(t) { + const { top: e, left: i, bottom: s, right: n, options: o } = this, a = o.align; + let r, l, h, c = 0; + return this.isHorizontal() + ? (l = ut(a, i, n), h = e + t, r = n - i) + : ("left" === o.position ? (l = i + t, h = ut(a, s, e), c = -.5 * D) : (l = n - t, h = ut(a, e, s), c = .5 * D), + r = s - e), + { titleX: l, titleY: h, maxWidth: r, rotation: c }; + } + draw() { + const t = this.ctx, e = this.options; + if (!e.display) return; + const i = mi(e.font), + s = i.lineHeight / 2 + this._padding.top, + { titleX: n, titleY: o, maxWidth: a, rotation: r } = this._drawArgs(s); + Ae(t, e.text, 0, 0, i, { + color: e.color, + maxWidth: a, + rotation: r, + textAlign: dt(e.align), + textBaseline: "middle", + translation: [n, o], + }); + } + } + var zo = { + id: "title", + _element: Io, + start(t, e, i) { + !function(t, e) { + const i = new Io({ ctx: t.ctx, options: e, chart: t }); + Zi.configure(t, i, e), Zi.addBox(t, i), t.titleBlock = i; + }(t, i); + }, + stop(t) { + const e = t.titleBlock; + Zi.removeBox(t, e), delete t.titleBlock; + }, + beforeUpdate(t, e, i) { + const s = t.titleBlock; + Zi.configure(t, s, i), s.options = i; + }, + defaults: { + align: "center", + display: !1, + font: { weight: "bold" }, + fullSize: !0, + padding: 10, + position: "top", + text: "", + weight: 2e3, + }, + defaultRoutes: { color: "color" }, + descriptors: { _scriptable: !0, _indexable: !1 }, + }; + const Fo = new WeakMap(); + var Vo = { + id: "subtitle", + start(t, e, i) { + const s = new Io({ ctx: t.ctx, options: i, chart: t }); + Zi.configure(t, s, i), Zi.addBox(t, s), Fo.set(t, s); + }, + stop(t) { + Zi.removeBox(t, Fo.get(t)), Fo.delete(t); + }, + beforeUpdate(t, e, i) { + const s = Fo.get(t); + Zi.configure(t, s, i), s.options = i; + }, + defaults: { + align: "center", + display: !1, + font: { weight: "normal" }, + fullSize: !0, + padding: 0, + position: "top", + text: "", + weight: 1500, + }, + defaultRoutes: { color: "color" }, + descriptors: { _scriptable: !0, _indexable: !1 }, + }; + const Bo = { + average(t) { + if (!t.length) return !1; + let e, i, s = 0, n = 0, o = 0; + for (e = 0, i = t.length; e < i; ++e) { + const i = t[e].element; + if (i && i.hasValue()) { + const t = i.tooltipPosition(); + s += t.x, n += t.y, ++o; + } + } + return { x: s / o, y: n / o }; + }, + nearest(t, e) { + if (!t.length) return !1; + let i, s, n, o = e.x, a = e.y, r = Number.POSITIVE_INFINITY; + for (i = 0, s = t.length; i < s; ++i) { + const s = t[i].element; + if (s && s.hasValue()) { + const t = X(e, s.getCenterPoint()); + t < r && (r = t, n = s); + } + } + if (n) { + const t = n.tooltipPosition(); + o = t.x, a = t.y; + } + return { x: o, y: a }; + }, + }; + function No(t, e) { + return e && (s(e) ? Array.prototype.push.apply(t, e) : t.push(e)), t; + } + function Wo(t) { + return ("string" == typeof t || t instanceof String) && t.indexOf("\n") > -1 ? t.split("\n") : t; + } + function jo(t, e) { + const { element: i, datasetIndex: s, index: n } = e, + o = t.getDatasetMeta(s).controller, + { label: a, value: r } = o.getLabelAndValue(n); + return { + chart: t, + label: a, + parsed: o.getParsed(n), + raw: t.data.datasets[s].data[n], + formattedValue: r, + dataset: o.getDataset(), + dataIndex: n, + datasetIndex: s, + element: i, + }; + } + function Ho(t, e) { + const i = t.chart.ctx, + { body: s, footer: n, title: o } = t, + { boxWidth: a, boxHeight: r } = e, + l = mi(e.bodyFont), + h = mi(e.titleFont), + c = mi(e.footerFont), + u = o.length, + f = n.length, + g = s.length, + p = pi(e.padding); + let m = p.height, b = 0, x = s.reduce((t, e) => t + e.before.length + e.lines.length + e.after.length, 0); + if ( + x += t.beforeBody.length + t.afterBody.length, + u && (m += u * h.lineHeight + (u - 1) * e.titleSpacing + e.titleMarginBottom), + x + ) { + m += g * (e.displayColors ? Math.max(r, l.lineHeight) : l.lineHeight) + (x - g) * l.lineHeight + + (x - 1) * e.bodySpacing; + } + f && (m += e.footerMarginTop + f * c.lineHeight + (f - 1) * e.footerSpacing); + let _ = 0; + const y = function(t) { + b = Math.max(b, i.measureText(t).width + _); + }; + return i.save(), + i.font = h.string, + d(t.title, y), + i.font = l.string, + d(t.beforeBody.concat(t.afterBody), y), + _ = e.displayColors ? a + 2 + e.boxPadding : 0, + d(s, t => { + d(t.before, y), d(t.lines, y), d(t.after, y); + }), + _ = 0, + i.font = c.string, + d(t.footer, y), + i.restore(), + b += p.width, + { width: b, height: m }; + } + function $o(t, e, i, s) { + const { x: n, width: o } = i, { width: a, chartArea: { left: r, right: l } } = t; + let h = "center"; + return "center" === s + ? h = n <= (r + l) / 2 ? "left" : "right" + : n <= o / 2 + ? h = "left" + : n >= a - o / 2 && (h = "right"), + function(t, e, i, s) { + const { x: n, width: o } = s, a = i.caretSize + i.caretPadding; + return "left" === t && n + o + a > e.width || "right" === t && n - o - a < 0 || void 0; + }(h, t, e, i) && (h = "center"), + h; + } + function Yo(t, e, i) { + const s = i.yAlign || e.yAlign || function(t, e) { + const { y: i, height: s } = e; + return i < s / 2 ? "top" : i > t.height - s / 2 ? "bottom" : "center"; + }(t, i); + return { xAlign: i.xAlign || e.xAlign || $o(t, e, i, s), yAlign: s }; + } + function Uo(t, e, i, s) { + const { caretSize: n, caretPadding: o, cornerRadius: a } = t, + { xAlign: r, yAlign: l } = i, + h = n + o, + { topLeft: c, topRight: d, bottomLeft: u, bottomRight: f } = gi(a); + let g = function(t, e) { + let { x: i, width: s } = t; + return "right" === e ? i -= s : "center" === e && (i -= s / 2), i; + }(e, r); + const p = function(t, e, i) { + let { y: s, height: n } = t; + return "top" === e ? s += i : s -= "bottom" === e ? n + i : n / 2, s; + }(e, l, h); + return "center" === l + ? "left" === r ? g += h : "right" === r && (g -= h) + : "left" === r + ? g -= Math.max(c, u) + n + : "right" === r && (g += Math.max(d, f) + n), + { x: Z(g, 0, s.width - e.width), y: Z(p, 0, s.height - e.height) }; + } + function Xo(t, e, i) { + const s = pi(i.padding); + return "center" === e ? t.x + t.width / 2 : "right" === e ? t.x + t.width - s.right : t.x + s.left; + } + function qo(t) { + return No([], Wo(t)); + } + function Ko(t, e) { + const i = e && e.dataset && e.dataset.tooltip && e.dataset.tooltip.callbacks; + return i ? t.override(i) : t; + } + class Go extends Es { + constructor(t) { + super(), + this.opacity = 0, + this._active = [], + this._eventPosition = void 0, + this._size = void 0, + this._cachedAnimations = void 0, + this._tooltipItems = [], + this.$animations = void 0, + this.$context = void 0, + this.chart = t.chart || t._chart, + this._chart = this.chart, + this.options = t.options, + this.dataPoints = void 0, + this.title = void 0, + this.beforeBody = void 0, + this.body = void 0, + this.afterBody = void 0, + this.footer = void 0, + this.xAlign = void 0, + this.yAlign = void 0, + this.x = void 0, + this.y = void 0, + this.height = void 0, + this.width = void 0, + this.caretX = void 0, + this.caretY = void 0, + this.labelColors = void 0, + this.labelPointStyles = void 0, + this.labelTextColors = void 0; + } + initialize(t) { + this.options = t, this._cachedAnimations = void 0, this.$context = void 0; + } + _resolveAnimations() { + const t = this._cachedAnimations; + if (t) return t; + const e = this.chart, + i = this.options.setContext(this.getContext()), + s = i.enabled && e.options.animation && i.animations, + n = new ys(this.chart, s); + return s._cacheable && (this._cachedAnimations = Object.freeze(n)), n; + } + getContext() { + return this.$context + || (this.$context = + (t = this.chart.getContext(), + e = this, + i = this._tooltipItems, + _i(t, { tooltip: e, tooltipItems: i, type: "tooltip" }))); + var t, e, i; + } + getTitle(t, e) { + const { callbacks: i } = e, + s = i.beforeTitle.apply(this, [t]), + n = i.title.apply(this, [t]), + o = i.afterTitle.apply(this, [t]); + let a = []; + return a = No(a, Wo(s)), a = No(a, Wo(n)), a = No(a, Wo(o)), a; + } + getBeforeBody(t, e) { + return qo(e.callbacks.beforeBody.apply(this, [t])); + } + getBody(t, e) { + const { callbacks: i } = e, s = []; + return d(t, t => { + const e = { before: [], lines: [], after: [] }, n = Ko(i, t); + No(e.before, Wo(n.beforeLabel.call(this, t))), + No(e.lines, n.label.call(this, t)), + No(e.after, Wo(n.afterLabel.call(this, t))), + s.push(e); + }), + s; + } + getAfterBody(t, e) { + return qo(e.callbacks.afterBody.apply(this, [t])); + } + getFooter(t, e) { + const { callbacks: i } = e, + s = i.beforeFooter.apply(this, [t]), + n = i.footer.apply(this, [t]), + o = i.afterFooter.apply(this, [t]); + let a = []; + return a = No(a, Wo(s)), a = No(a, Wo(n)), a = No(a, Wo(o)), a; + } + _createItems(t) { + const e = this._active, i = this.chart.data, s = [], n = [], o = []; + let a, r, l = []; + for (a = 0, r = e.length; a < r; ++a) l.push(jo(this.chart, e[a])); + return t.filter && (l = l.filter((e, s, n) => t.filter(e, s, n, i))), + t.itemSort && (l = l.sort((e, s) => t.itemSort(e, s, i))), + d(l, e => { + const i = Ko(t.callbacks, e); + s.push(i.labelColor.call(this, e)), + n.push(i.labelPointStyle.call(this, e)), + o.push(i.labelTextColor.call(this, e)); + }), + this.labelColors = s, + this.labelPointStyles = n, + this.labelTextColors = o, + this.dataPoints = l, + l; + } + update(t, e) { + const i = this.options.setContext(this.getContext()), s = this._active; + let n, o = []; + if (s.length) { + const t = Bo[i.position].call(this, s, this._eventPosition); + o = this._createItems(i), + this.title = this.getTitle(o, i), + this.beforeBody = this.getBeforeBody(o, i), + this.body = this.getBody(o, i), + this.afterBody = this.getAfterBody(o, i), + this.footer = this.getFooter(o, i); + const e = this._size = Ho(this, i), + a = Object.assign({}, t, e), + r = Yo(this.chart, i, a), + l = Uo(i, a, r, this.chart); + this.xAlign = r.xAlign, + this.yAlign = r.yAlign, + n = { opacity: 1, x: l.x, y: l.y, width: e.width, height: e.height, caretX: t.x, caretY: t.y }; + } else 0 !== this.opacity && (n = { opacity: 0 }); + this._tooltipItems = o, + this.$context = void 0, + n && this._resolveAnimations().update(this, n), + t && i.external && i.external.call(this, { chart: this.chart, tooltip: this, replay: e }); + } + drawCaret(t, e, i, s) { + const n = this.getCaretPosition(t, i, s); + e.lineTo(n.x1, n.y1), e.lineTo(n.x2, n.y2), e.lineTo(n.x3, n.y3); + } + getCaretPosition(t, e, i) { + const { xAlign: s, yAlign: n } = this, + { caretSize: o, cornerRadius: a } = i, + { topLeft: r, topRight: l, bottomLeft: h, bottomRight: c } = gi(a), + { x: d, y: u } = t, + { width: f, height: g } = e; + let p, m, b, x, _, y; + return "center" === n + ? (_ = u + g / 2, + "left" === s ? (p = d, m = p - o, x = _ + o, y = _ - o) : (p = d + f, m = p + o, x = _ - o, y = _ + o), + b = p) + : (m = "left" === s ? d + Math.max(r, h) + o : "right" === s ? d + f - Math.max(l, c) - o : this.caretX, + "top" === n ? (x = u, _ = x - o, p = m - o, b = m + o) : (x = u + g, _ = x + o, p = m + o, b = m - o), + y = x), + { x1: p, x2: m, x3: b, y1: x, y2: _, y3: y }; + } + drawTitle(t, e, i) { + const s = this.title, n = s.length; + let o, a, r; + if (n) { + const l = yi(i.rtl, this.x, this.width); + for ( + t.x = Xo(this, i.titleAlign, i), + e.textAlign = l.textAlign(i.titleAlign), + e.textBaseline = "middle", + o = mi(i.titleFont), + a = i.titleSpacing, + e.fillStyle = i.titleColor, + e.font = o.string, + r = 0; + r < n; + ++r + ) { + e.fillText(s[r], l.x(t.x), t.y + o.lineHeight / 2), + t.y += o.lineHeight + a, + r + 1 === n && (t.y += i.titleMarginBottom - a); + } + } + } + _drawColorBox(t, e, i, s, o) { + const a = this.labelColors[i], + r = this.labelPointStyles[i], + { boxHeight: l, boxWidth: h, boxPadding: c } = o, + d = mi(o.bodyFont), + u = Xo(this, "left", o), + f = s.x(u), + g = l < d.lineHeight ? (d.lineHeight - l) / 2 : 0, + p = e.y + g; + if (o.usePointStyle) { + const e = { radius: Math.min(h, l) / 2, pointStyle: r.pointStyle, rotation: r.rotation, borderWidth: 1 }, + i = s.leftForLtr(f, h) + h / 2, + n = p + l / 2; + t.strokeStyle = o.multiKeyBackground, + t.fillStyle = o.multiKeyBackground, + Me(t, e, i, n), + t.strokeStyle = a.borderColor, + t.fillStyle = a.backgroundColor, + Me(t, e, i, n); + } else { + t.lineWidth = n(a.borderWidth) ? Math.max(...Object.values(a.borderWidth)) : a.borderWidth || 1, + t.strokeStyle = a.borderColor, + t.setLineDash(a.borderDash || []), + t.lineDashOffset = a.borderDashOffset || 0; + const e = s.leftForLtr(f, h - c), i = s.leftForLtr(s.xPlus(f, 1), h - c - 2), r = gi(a.borderRadius); + Object.values(r).some(t => 0 !== t) + ? (t.beginPath(), + t.fillStyle = o.multiKeyBackground, + Le(t, { x: e, y: p, w: h, h: l, radius: r }), + t.fill(), + t.stroke(), + t.fillStyle = a.backgroundColor, + t.beginPath(), + Le(t, { x: i, y: p + 1, w: h - 2, h: l - 2, radius: r }), + t.fill()) + : (t.fillStyle = o.multiKeyBackground, + t.fillRect(e, p, h, l), + t.strokeRect(e, p, h, l), + t.fillStyle = a.backgroundColor, + t.fillRect(i, p + 1, h - 2, l - 2)); + } + t.fillStyle = this.labelTextColors[i]; + } + drawBody(t, e, i) { + const { body: s } = this, + { bodySpacing: n, bodyAlign: o, displayColors: a, boxHeight: r, boxWidth: l, boxPadding: h } = i, + c = mi(i.bodyFont); + let u = c.lineHeight, f = 0; + const g = yi(i.rtl, this.x, this.width), + p = function(i) { + e.fillText(i, g.x(t.x + f), t.y + u / 2), t.y += u + n; + }, + m = g.textAlign(o); + let b, x, _, y, v, w, M; + for ( + e.textAlign = o, + e.textBaseline = "middle", + e.font = c.string, + t.x = Xo(this, m, i), + e.fillStyle = i.bodyColor, + d(this.beforeBody, p), + f = a && "right" !== m ? "center" === o ? l / 2 + h : l + 2 + h : 0, + y = 0, + w = s.length; + y < w; + ++y + ) { + for ( + b = s[y], + x = this.labelTextColors[y], + e.fillStyle = x, + d(b.before, p), + _ = b.lines, + a && _.length && (this._drawColorBox(e, t, y, g, i), u = Math.max(c.lineHeight, r)), + v = 0, + M = _.length; + v < M; + ++v + ) p(_[v]), u = c.lineHeight; + d(b.after, p); + } + f = 0, u = c.lineHeight, d(this.afterBody, p), t.y -= n; + } + drawFooter(t, e, i) { + const s = this.footer, n = s.length; + let o, a; + if (n) { + const r = yi(i.rtl, this.x, this.width); + for ( + t.x = Xo(this, i.footerAlign, i), + t.y += i.footerMarginTop, + e.textAlign = r.textAlign(i.footerAlign), + e.textBaseline = "middle", + o = mi(i.footerFont), + e.fillStyle = i.footerColor, + e.font = o.string, + a = 0; + a < n; + ++a + ) e.fillText(s[a], r.x(t.x), t.y + o.lineHeight / 2), t.y += o.lineHeight + i.footerSpacing; + } + } + drawBackground(t, e, i, s) { + const { xAlign: n, yAlign: o } = this, + { x: a, y: r } = t, + { width: l, height: h } = i, + { topLeft: c, topRight: d, bottomLeft: u, bottomRight: f } = gi(s.cornerRadius); + e.fillStyle = s.backgroundColor, + e.strokeStyle = s.borderColor, + e.lineWidth = s.borderWidth, + e.beginPath(), + e.moveTo(a + c, r), + "top" === o && this.drawCaret(t, e, i, s), + e.lineTo(a + l - d, r), + e.quadraticCurveTo(a + l, r, a + l, r + d), + "center" === o && "right" === n && this.drawCaret(t, e, i, s), + e.lineTo(a + l, r + h - f), + e.quadraticCurveTo(a + l, r + h, a + l - f, r + h), + "bottom" === o && this.drawCaret(t, e, i, s), + e.lineTo(a + u, r + h), + e.quadraticCurveTo(a, r + h, a, r + h - u), + "center" === o && "left" === n && this.drawCaret(t, e, i, s), + e.lineTo(a, r + c), + e.quadraticCurveTo(a, r, a + c, r), + e.closePath(), + e.fill(), + s.borderWidth > 0 && e.stroke(); + } + _updateAnimationTarget(t) { + const e = this.chart, i = this.$animations, s = i && i.x, n = i && i.y; + if (s || n) { + const i = Bo[t.position].call(this, this._active, this._eventPosition); + if (!i) return; + const o = this._size = Ho(this, t), a = Object.assign({}, i, this._size), r = Yo(e, t, a), l = Uo(t, a, r, e); + s._to === l.x && n._to === l.y + || (this.xAlign = r.xAlign, + this.yAlign = r.yAlign, + this.width = o.width, + this.height = o.height, + this.caretX = i.x, + this.caretY = i.y, + this._resolveAnimations().update(this, l)); + } + } + _willRender() { + return !!this.opacity; + } + draw(t) { + const e = this.options.setContext(this.getContext()); + let i = this.opacity; + if (!i) return; + this._updateAnimationTarget(e); + const s = { width: this.width, height: this.height }, n = { x: this.x, y: this.y }; + i = Math.abs(i) < .001 ? 0 : i; + const o = pi(e.padding), + a = this.title.length || this.beforeBody.length || this.body.length || this.afterBody.length + || this.footer.length; + e.enabled && a + && (t.save(), + t.globalAlpha = i, + this.drawBackground(n, t, s, e), + vi(t, e.textDirection), + n.y += o.top, + this.drawTitle(n, t, e), + this.drawBody(n, t, e), + this.drawFooter(n, t, e), + wi(t, e.textDirection), + t.restore()); + } + getActiveElements() { + return this._active || []; + } + setActiveElements(t, e) { + const i = this._active, + s = t.map(({ datasetIndex: t, index: e }) => { + const i = this.chart.getDatasetMeta(t); + if (!i) throw new Error("Cannot find a dataset at index " + t); + return { datasetIndex: t, element: i.data[e], index: e }; + }), + n = !u(i, s), + o = this._positionChanged(s, e); + (n || o) && (this._active = s, this._eventPosition = e, this._ignoreReplayEvents = !0, this.update(!0)); + } + handleEvent(t, e, i = !0) { + if (e && this._ignoreReplayEvents) return !1; + this._ignoreReplayEvents = !1; + const s = this.options, + n = this._active || [], + o = this._getActiveElements(t, n, e, i), + a = this._positionChanged(o, t), + r = e || !u(o, n) || a; + return r + && (this._active = o, + (s.enabled || s.external) && (this._eventPosition = { x: t.x, y: t.y }, this.update(!0, e))), + r; + } + _getActiveElements(t, e, i, s) { + const n = this.options; + if ("mouseout" === t.type) return []; + if (!s) return e; + const o = this.chart.getElementsAtEventForMode(t, n.mode, n, i); + return n.reverse && o.reverse(), o; + } + _positionChanged(t, e) { + const { caretX: i, caretY: s, options: n } = this, o = Bo[n.position].call(this, t, e); + return !1 !== o && (i !== o.x || s !== o.y); + } + } + Go.positioners = Bo; + var Zo = { + id: "tooltip", + _element: Go, + positioners: Bo, + afterInit(t, e, i) { + i && (t.tooltip = new Go({ chart: t, options: i })); + }, + beforeUpdate(t, e, i) { + t.tooltip && t.tooltip.initialize(i); + }, + reset(t, e, i) { + t.tooltip && t.tooltip.initialize(i); + }, + afterDraw(t) { + const e = t.tooltip; + if (e && e._willRender()) { + const i = { tooltip: e }; + if (!1 === t.notifyPlugins("beforeTooltipDraw", i)) return; + e.draw(t.ctx), t.notifyPlugins("afterTooltipDraw", i); + } + }, + afterEvent(t, e) { + if (t.tooltip) { + const i = e.replay; + t.tooltip.handleEvent(e.event, i, e.inChartArea) && (e.changed = !0); + } + }, + defaults: { + enabled: !0, + external: null, + position: "average", + backgroundColor: "rgba(0,0,0,0.8)", + titleColor: "#fff", + titleFont: { weight: "bold" }, + titleSpacing: 2, + titleMarginBottom: 6, + titleAlign: "left", + bodyColor: "#fff", + bodySpacing: 2, + bodyFont: {}, + bodyAlign: "left", + footerColor: "#fff", + footerSpacing: 2, + footerMarginTop: 6, + footerFont: { weight: "bold" }, + footerAlign: "left", + padding: 6, + caretPadding: 2, + caretSize: 5, + cornerRadius: 6, + boxHeight: (t, e) => e.bodyFont.size, + boxWidth: (t, e) => e.bodyFont.size, + multiKeyBackground: "#fff", + displayColors: !0, + boxPadding: 0, + borderColor: "rgba(0,0,0,0)", + borderWidth: 0, + animation: { duration: 400, easing: "easeOutQuart" }, + animations: { + numbers: { type: "number", properties: ["x", "y", "width", "height", "caretX", "caretY"] }, + opacity: { easing: "linear", duration: 200 }, + }, + callbacks: { + beforeTitle: t, + title(t) { + if (t.length > 0) { + const e = t[0], i = e.chart.data.labels, s = i ? i.length : 0; + if (this && this.options && "dataset" === this.options.mode) return e.dataset.label || ""; + if (e.label) return e.label; + if (s > 0 && e.dataIndex < s) return i[e.dataIndex]; + } + return ""; + }, + afterTitle: t, + beforeBody: t, + beforeLabel: t, + label(t) { + if (this && this.options && "dataset" === this.options.mode) { + return t.label + ": " + t.formattedValue || t.formattedValue; + } + let e = t.dataset.label || ""; + e && (e += ": "); + const s = t.formattedValue; + return i(s) || (e += s), e; + }, + labelColor(t) { + const e = t.chart.getDatasetMeta(t.datasetIndex).controller.getStyle(t.dataIndex); + return { + borderColor: e.borderColor, + backgroundColor: e.backgroundColor, + borderWidth: e.borderWidth, + borderDash: e.borderDash, + borderDashOffset: e.borderDashOffset, + borderRadius: 0, + }; + }, + labelTextColor() { + return this.options.bodyColor; + }, + labelPointStyle(t) { + const e = t.chart.getDatasetMeta(t.datasetIndex).controller.getStyle(t.dataIndex); + return { pointStyle: e.pointStyle, rotation: e.rotation }; + }, + afterLabel: t, + afterBody: t, + beforeFooter: t, + footer: t, + afterFooter: t, + }, + }, + defaultRoutes: { bodyFont: "font", footerFont: "font", titleFont: "font" }, + descriptors: { + _scriptable: t => "filter" !== t && "itemSort" !== t && "external" !== t, + _indexable: !1, + callbacks: { _scriptable: !1, _indexable: !1 }, + animation: { _fallback: !1 }, + animations: { _fallback: "animation" }, + }, + additionalOptionScopes: ["interaction"], + }, + Jo = Object.freeze({ + __proto__: null, + Decimation: go, + Filler: To, + Legend: Ro, + SubTitle: Vo, + Title: zo, + Tooltip: Zo, + }); + function Qo(t, e, i, s) { + const n = t.indexOf(e); + if (-1 === n) { + return (( + t, + e, + i, + s, + ) => ("string" == typeof e ? (i = t.push(e) - 1, s.unshift({ index: i, label: e })) : isNaN(e) && (i = null), i))( + t, + e, + i, + s, + ); + } + return n !== t.lastIndexOf(e) ? i : n; + } + class ta extends $s { + constructor(t) { + super(t), this._startValue = void 0, this._valueRange = 0, this._addedLabels = []; + } + init(t) { + const e = this._addedLabels; + if (e.length) { + const t = this.getLabels(); + for (const { index: i, label: s } of e) t[i] === s && t.splice(i, 1); + this._addedLabels = []; + } + super.init(t); + } + parse(t, e) { + if (i(t)) return null; + const s = this.getLabels(); + return ((t, e) => null === t ? null : Z(Math.round(t), 0, e))( + e = isFinite(e) && s[e] === t ? e : Qo(s, t, r(e, t), this._addedLabels), + s.length - 1, + ); + } + determineDataLimits() { + const { minDefined: t, maxDefined: e } = this.getUserBounds(); + let { min: i, max: s } = this.getMinMax(!0); + "ticks" === this.options.bounds && (t || (i = 0), e || (s = this.getLabels().length - 1)), + this.min = i, + this.max = s; + } + buildTicks() { + const t = this.min, e = this.max, i = this.options.offset, s = []; + let n = this.getLabels(); + n = 0 === t && e === n.length - 1 ? n : n.slice(t, e + 1), + this._valueRange = Math.max(n.length - (i ? 0 : 1), 1), + this._startValue = this.min - (i ? .5 : 0); + for (let i = t; i <= e; i++) s.push({ value: i }); + return s; + } + getLabelForValue(t) { + const e = this.getLabels(); + return t >= 0 && t < e.length ? e[t] : t; + } + configure() { + super.configure(), this.isHorizontal() || (this._reversePixels = !this._reversePixels); + } + getPixelForValue(t) { + return "number" != typeof t && (t = this.parse(t)), + null === t ? NaN : this.getPixelForDecimal((t - this._startValue) / this._valueRange); + } + getPixelForTick(t) { + const e = this.ticks; + return t < 0 || t > e.length - 1 ? null : this.getPixelForValue(e[t].value); + } + getValueForPixel(t) { + return Math.round(this._startValue + this.getDecimalForPixel(t) * this._valueRange); + } + getBasePixel() { + return this.bottom; + } + } + function ea(t, e, { horizontal: i, minRotation: s }) { + const n = H(s), o = (i ? Math.sin(n) : Math.cos(n)) || .001, a = .75 * e * ("" + t).length; + return Math.min(e / o, a); + } + ta.id = "category", ta.defaults = { ticks: { callback: ta.prototype.getLabelForValue } }; + class ia extends $s { + constructor(t) { + super(t), + this.start = void 0, + this.end = void 0, + this._startValue = void 0, + this._endValue = void 0, + this._valueRange = 0; + } + parse(t, e) { + return i(t) || ("number" == typeof t || t instanceof Number) && !isFinite(+t) ? null : +t; + } + handleTickRangeOptions() { + const { beginAtZero: t } = this.options, { minDefined: e, maxDefined: i } = this.getUserBounds(); + let { min: s, max: n } = this; + const o = t => s = e ? s : t, a = t => n = i ? n : t; + if (t) { + const t = z(s), e = z(n); + t < 0 && e < 0 ? a(0) : t > 0 && e > 0 && o(0); + } + if (s === n) { + let e = 1; + (n >= Number.MAX_SAFE_INTEGER || s <= Number.MIN_SAFE_INTEGER) && (e = Math.abs(.05 * n)), + a(n + e), + t || o(s - e); + } + this.min = s, this.max = n; + } + getTickLimit() { + const t = this.options.ticks; + let e, { maxTicksLimit: i, stepSize: s } = t; + return s + ? (e = Math.ceil(this.max / s) - Math.floor(this.min / s) + 1, + e > 1e3 + && (console.warn( + `scales.${this.id}.ticks.stepSize: ${s} would result generating up to ${e} ticks. Limiting to 1000.`, + ), + e = 1e3)) + : (e = this.computeTickLimit(), i = i || 11), + i && (e = Math.min(i, e)), + e; + } + computeTickLimit() { + return Number.POSITIVE_INFINITY; + } + buildTicks() { + const t = this.options, e = t.ticks; + let s = this.getTickLimit(); + s = Math.max(2, s); + const n = function(t, e) { + const s = [], + { bounds: n, step: o, min: a, max: r, precision: l, count: h, maxTicks: c, maxDigits: d, includeBounds: u } = + t, + f = o || 1, + g = c - 1, + { min: p, max: m } = e, + b = !i(a), + x = !i(r), + _ = !i(h), + y = (m - p) / (d + 1); + let v, w, M, k, S = F((m - p) / g / f) * f; + if (S < 1e-14 && !b && !x) return [{ value: p }, { value: m }]; + k = Math.ceil(m / S) - Math.floor(p / S), + k > g && (S = F(k * S / g / f) * f), + i(l) || (v = Math.pow(10, l), S = Math.ceil(S * v) / v), + "ticks" === n ? (w = Math.floor(p / S) * S, M = Math.ceil(m / S) * S) : (w = p, M = m), + b && x && o && W((r - a) / o, S / 1e3) + ? (k = Math.round(Math.min((r - a) / S, c)), S = (r - a) / k, w = a, M = r) + : _ + ? (w = b ? a : w, M = x ? r : M, k = h - 1, S = (M - w) / k) + : (k = (M - w) / S, k = N(k, Math.round(k), S / 1e3) ? Math.round(k) : Math.ceil(k)); + const P = Math.max(Y(S), Y(w)); + v = Math.pow(10, i(l) ? P : l), w = Math.round(w * v) / v, M = Math.round(M * v) / v; + let D = 0; + for ( + b && (u && w !== a + ? (s.push({ value: a }), w < a && D++, N(Math.round((w + D * S) * v) / v, a, ea(a, y, t)) && D++) + : w < a && D++); + D < k; + ++D + ) s.push({ value: Math.round((w + D * S) * v) / v }); + return x && u && M !== r + ? s.length && N(s[s.length - 1].value, r, ea(r, y, t)) ? s[s.length - 1].value = r : s.push({ value: r }) + : x && M !== r || s.push({ value: M }), + s; + }({ + maxTicks: s, + bounds: t.bounds, + min: t.min, + max: t.max, + precision: e.precision, + step: e.stepSize, + count: e.count, + maxDigits: this._maxDigits(), + horizontal: this.isHorizontal(), + minRotation: e.minRotation || 0, + includeBounds: !1 !== e.includeBounds, + }, this._range || this); + return "ticks" === t.bounds && j(n, this, "value"), + t.reverse + ? (n.reverse(), this.start = this.max, this.end = this.min) + : (this.start = this.min, this.end = this.max), + n; + } + configure() { + const t = this.ticks; + let e = this.min, i = this.max; + if (super.configure(), this.options.offset && t.length) { + const s = (i - e) / Math.max(t.length - 1, 1) / 2; + e -= s, i += s; + } + this._startValue = e, this._endValue = i, this._valueRange = i - e; + } + getLabelForValue(t) { + return li(t, this.chart.options.locale, this.options.ticks.format); + } + } + class sa extends ia { + determineDataLimits() { + const { min: t, max: e } = this.getMinMax(!0); + this.min = o(t) ? t : 0, this.max = o(e) ? e : 1, this.handleTickRangeOptions(); + } + computeTickLimit() { + const t = this.isHorizontal(), + e = t ? this.width : this.height, + i = H(this.options.ticks.minRotation), + s = (t ? Math.sin(i) : Math.cos(i)) || .001, + n = this._resolveTickFontOptions(0); + return Math.ceil(e / Math.min(40, n.lineHeight / s)); + } + getPixelForValue(t) { + return null === t ? NaN : this.getPixelForDecimal((t - this._startValue) / this._valueRange); + } + getValueForPixel(t) { + return this._startValue + this.getDecimalForPixel(t) * this._valueRange; + } + } + function na(t) { + return 1 === t / Math.pow(10, Math.floor(I(t))); + } + sa.id = "linear", sa.defaults = { ticks: { callback: Is.formatters.numeric } }; + class oa extends $s { + constructor(t) { + super(t), this.start = void 0, this.end = void 0, this._startValue = void 0, this._valueRange = 0; + } + parse(t, e) { + const i = ia.prototype.parse.apply(this, [t, e]); + if (0 !== i) return o(i) && i > 0 ? i : null; + this._zero = !0; + } + determineDataLimits() { + const { min: t, max: e } = this.getMinMax(!0); + this.min = o(t) ? Math.max(0, t) : null, + this.max = o(e) ? Math.max(0, e) : null, + this.options.beginAtZero && (this._zero = !0), + this.handleTickRangeOptions(); + } + handleTickRangeOptions() { + const { minDefined: t, maxDefined: e } = this.getUserBounds(); + let i = this.min, s = this.max; + const n = e => i = t ? i : e, o = t => s = e ? s : t, a = (t, e) => Math.pow(10, Math.floor(I(t)) + e); + i === s && (i <= 0 ? (n(1), o(10)) : (n(a(i, -1)), o(a(s, 1)))), + i <= 0 && n(a(s, -1)), + s <= 0 && o(a(i, 1)), + this._zero && this.min !== this._suggestedMin && i === a(this.min, 0) && n(a(i, -1)), + this.min = i, + this.max = s; + } + buildTicks() { + const t = this.options, + e = function(t, e) { + const i = Math.floor(I(e.max)), s = Math.ceil(e.max / Math.pow(10, i)), n = []; + let o = a(t.min, Math.pow(10, Math.floor(I(e.min)))), + r = Math.floor(I(o)), + l = Math.floor(o / Math.pow(10, r)), + h = r < 0 ? Math.pow(10, Math.abs(r)) : 1; + do { + n.push({ value: o, major: na(o) }), + ++l, + 10 === l && (l = 1, ++r, h = r >= 0 ? 1 : h), + o = Math.round(l * Math.pow(10, r) * h) / h; + } while (r < i || r === i && l < s); + const c = a(t.max, o); + return n.push({ value: c, major: na(o) }), n; + }({ min: this._userMin, max: this._userMax }, this); + return "ticks" === t.bounds && j(e, this, "value"), + t.reverse + ? (e.reverse(), this.start = this.max, this.end = this.min) + : (this.start = this.min, this.end = this.max), + e; + } + getLabelForValue(t) { + return void 0 === t ? "0" : li(t, this.chart.options.locale, this.options.ticks.format); + } + configure() { + const t = this.min; + super.configure(), this._startValue = I(t), this._valueRange = I(this.max) - I(t); + } + getPixelForValue(t) { + return void 0 !== t && 0 !== t || (t = this.min), + null === t || isNaN(t) + ? NaN + : this.getPixelForDecimal(t === this.min ? 0 : (I(t) - this._startValue) / this._valueRange); + } + getValueForPixel(t) { + const e = this.getDecimalForPixel(t); + return Math.pow(10, this._startValue + e * this._valueRange); + } + } + function aa(t) { + const e = t.ticks; + if (e.display && t.display) { + const t = pi(e.backdropPadding); + return r(e.font && e.font.size, ne.font.size) + t.height; + } + return 0; + } + function ra(t, e, i, s, n) { + return t === s || t === n + ? { start: e - i / 2, end: e + i / 2 } + : t < s || t > n + ? { start: e - i, end: e } + : { start: e, end: e + i }; + } + function la(t) { + const e = { + l: t.left + t._padding.left, + r: t.right - t._padding.right, + t: t.top + t._padding.top, + b: t.bottom - t._padding.bottom, + }, + i = Object.assign({}, e), + n = [], + o = [], + a = t._pointLabels.length, + r = t.options.pointLabels, + l = r.centerPointLabels ? D / a : 0; + for (let u = 0; u < a; u++) { + const a = r.setContext(t.getPointLabelContext(u)); + o[u] = a.padding; + const f = t.getPointPosition(u, t.drawingArea + o[u], l), + g = mi(a.font), + p = + (h = t.ctx, + c = g, + d = s(d = t._pointLabels[u]) ? d : [d], + { w: ye(h, c.string, d), h: d.length * c.lineHeight }); + n[u] = p; + const m = K(t.getIndexAngle(u) + l), b = Math.round($(m)); + ha(i, e, m, ra(b, f.x, p.w, 0, 180), ra(b, f.y, p.h, 90, 270)); + } + var h, c, d; + t.setCenterPoint(e.l - i.l, i.r - e.r, e.t - i.t, i.b - e.b), + t._pointLabelItems = function(t, e, i) { + const s = [], + n = t._pointLabels.length, + o = t.options, + a = aa(o) / 2, + r = t.drawingArea, + l = o.pointLabels.centerPointLabels ? D / n : 0; + for (let o = 0; o < n; o++) { + const n = t.getPointPosition(o, r + a + i[o], l), + h = Math.round($(K(n.angle + L))), + c = e[o], + d = ua(n.y, c.h, h), + u = ca(h), + f = da(n.x, c.w, u); + s.push({ x: n.x, y: d, textAlign: u, left: f, top: d, right: f + c.w, bottom: d + c.h }); + } + return s; + }(t, n, o); + } + function ha(t, e, i, s, n) { + const o = Math.abs(Math.sin(i)), a = Math.abs(Math.cos(i)); + let r = 0, l = 0; + s.start < e.l + ? (r = (e.l - s.start) / o, t.l = Math.min(t.l, e.l - r)) + : s.end > e.r && (r = (s.end - e.r) / o, t.r = Math.max(t.r, e.r + r)), + n.start < e.t + ? (l = (e.t - n.start) / a, t.t = Math.min(t.t, e.t - l)) + : n.end > e.b && (l = (n.end - e.b) / a, t.b = Math.max(t.b, e.b + l)); + } + function ca(t) { + return 0 === t || 180 === t ? "center" : t < 180 ? "left" : "right"; + } + function da(t, e, i) { + return "right" === i ? t -= e : "center" === i && (t -= e / 2), t; + } + function ua(t, e, i) { + return 90 === i || 270 === i ? t -= e / 2 : (i > 270 || i < 90) && (t -= e), t; + } + function fa(t, e, i, s) { + const { ctx: n } = t; + if (i) n.arc(t.xCenter, t.yCenter, e, 0, O); + else { + let i = t.getPointPosition(0, e); + n.moveTo(i.x, i.y); + for (let o = 1; o < s; o++) i = t.getPointPosition(o, e), n.lineTo(i.x, i.y); + } + } + oa.id = "logarithmic", oa.defaults = { ticks: { callback: Is.formatters.logarithmic, major: { enabled: !0 } } }; + class ga extends ia { + constructor(t) { + super(t), + this.xCenter = void 0, + this.yCenter = void 0, + this.drawingArea = void 0, + this._pointLabels = [], + this._pointLabelItems = []; + } + setDimensions() { + const t = this._padding = pi(aa(this.options) / 2), + e = this.width = this.maxWidth - t.width, + i = this.height = this.maxHeight - t.height; + this.xCenter = Math.floor(this.left + e / 2 + t.left), + this.yCenter = Math.floor(this.top + i / 2 + t.top), + this.drawingArea = Math.floor(Math.min(e, i) / 2); + } + determineDataLimits() { + const { min: t, max: e } = this.getMinMax(!1); + this.min = o(t) && !isNaN(t) ? t : 0, this.max = o(e) && !isNaN(e) ? e : 0, this.handleTickRangeOptions(); + } + computeTickLimit() { + return Math.ceil(this.drawingArea / aa(this.options)); + } + generateTickLabels(t) { + ia.prototype.generateTickLabels.call(this, t), + this._pointLabels = this.getLabels().map((t, e) => { + const i = c(this.options.pointLabels.callback, [t, e], this); + return i || 0 === i ? i : ""; + }).filter((t, e) => this.chart.getDataVisibility(e)); + } + fit() { + const t = this.options; + t.display && t.pointLabels.display ? la(this) : this.setCenterPoint(0, 0, 0, 0); + } + setCenterPoint(t, e, i, s) { + this.xCenter += Math.floor((t - e) / 2), + this.yCenter += Math.floor((i - s) / 2), + this.drawingArea -= Math.min(this.drawingArea / 2, Math.max(t, e, i, s)); + } + getIndexAngle(t) { + return K(t * (O / (this._pointLabels.length || 1)) + H(this.options.startAngle || 0)); + } + getDistanceFromCenterForValue(t) { + if (i(t)) return NaN; + const e = this.drawingArea / (this.max - this.min); + return this.options.reverse ? (this.max - t) * e : (t - this.min) * e; + } + getValueForDistanceFromCenter(t) { + if (i(t)) return NaN; + const e = t / (this.drawingArea / (this.max - this.min)); + return this.options.reverse ? this.max - e : this.min + e; + } + getPointLabelContext(t) { + const e = this._pointLabels || []; + if (t >= 0 && t < e.length) { + const i = e[t]; + return function(t, e, i) { + return _i(t, { label: i, index: e, type: "pointLabel" }); + }(this.getContext(), t, i); + } + } + getPointPosition(t, e, i = 0) { + const s = this.getIndexAngle(t) - L + i; + return { x: Math.cos(s) * e + this.xCenter, y: Math.sin(s) * e + this.yCenter, angle: s }; + } + getPointPositionForValue(t, e) { + return this.getPointPosition(t, this.getDistanceFromCenterForValue(e)); + } + getBasePosition(t) { + return this.getPointPositionForValue(t || 0, this.getBaseValue()); + } + getPointLabelPosition(t) { + const { left: e, top: i, right: s, bottom: n } = this._pointLabelItems[t]; + return { left: e, top: i, right: s, bottom: n }; + } + drawBackground() { + const { backgroundColor: t, grid: { circular: e } } = this.options; + if (t) { + const i = this.ctx; + i.save(), + i.beginPath(), + fa(this, this.getDistanceFromCenterForValue(this._endValue), e, this._pointLabels.length), + i.closePath(), + i.fillStyle = t, + i.fill(), + i.restore(); + } + } + drawGrid() { + const t = this.ctx, e = this.options, { angleLines: s, grid: n } = e, o = this._pointLabels.length; + let a, r, l; + if ( + e.pointLabels.display && function(t, e) { + const { ctx: s, options: { pointLabels: n } } = t; + for (let o = e - 1; o >= 0; o--) { + const e = n.setContext(t.getPointLabelContext(o)), + a = mi(e.font), + { x: r, y: l, textAlign: h, left: c, top: d, right: u, bottom: f } = t._pointLabelItems[o], + { backdropColor: g } = e; + if (!i(g)) { + const t = gi(e.borderRadius), i = pi(e.backdropPadding); + s.fillStyle = g; + const n = c - i.left, o = d - i.top, a = u - c + i.width, r = f - d + i.height; + Object.values(t).some(t => 0 !== t) + ? (s.beginPath(), Le(s, { x: n, y: o, w: a, h: r, radius: t }), s.fill()) + : s.fillRect(n, o, a, r); + } + Ae(s, t._pointLabels[o], r, l + a.lineHeight / 2, a, { + color: e.color, + textAlign: h, + textBaseline: "middle", + }); + } + }(this, o), + n.display && this.ticks.forEach((t, e) => { + if (0 !== e) { + r = this.getDistanceFromCenterForValue(t.value); + !function(t, e, i, s) { + const n = t.ctx, o = e.circular, { color: a, lineWidth: r } = e; + !o && !s || !a || !r || i < 0 + || (n.save(), + n.strokeStyle = a, + n.lineWidth = r, + n.setLineDash(e.borderDash), + n.lineDashOffset = e.borderDashOffset, + n.beginPath(), + fa(t, i, o, s), + n.closePath(), + n.stroke(), + n.restore()); + }(this, n.setContext(this.getContext(e - 1)), r, o); + } + }), + s.display + ) { + for (t.save(), a = o - 1; a >= 0; a--) { + const i = s.setContext(this.getPointLabelContext(a)), { color: n, lineWidth: o } = i; + o && n + && (t.lineWidth = o, + t.strokeStyle = n, + t.setLineDash(i.borderDash), + t.lineDashOffset = i.borderDashOffset, + r = this.getDistanceFromCenterForValue(e.ticks.reverse ? this.min : this.max), + l = this.getPointPosition(a, r), + t.beginPath(), + t.moveTo(this.xCenter, this.yCenter), + t.lineTo(l.x, l.y), + t.stroke()); + } + t.restore(); + } + } + drawBorder() {} + drawLabels() { + const t = this.ctx, e = this.options, i = e.ticks; + if (!i.display) return; + const s = this.getIndexAngle(0); + let n, o; + t.save(), + t.translate(this.xCenter, this.yCenter), + t.rotate(s), + t.textAlign = "center", + t.textBaseline = "middle", + this.ticks.forEach((s, a) => { + if (0 === a && !e.reverse) return; + const r = i.setContext(this.getContext(a)), l = mi(r.font); + if (n = this.getDistanceFromCenterForValue(this.ticks[a].value), r.showLabelBackdrop) { + t.font = l.string, o = t.measureText(s.label).width, t.fillStyle = r.backdropColor; + const e = pi(r.backdropPadding); + t.fillRect(-o / 2 - e.left, -n - l.size / 2 - e.top, o + e.width, l.size + e.height); + } + Ae(t, s.label, 0, -n, l, { color: r.color }); + }), + t.restore(); + } + drawTitle() {} + } + ga.id = "radialLinear", + ga.defaults = { + display: !0, + animate: !0, + position: "chartArea", + angleLines: { display: !0, lineWidth: 1, borderDash: [], borderDashOffset: 0 }, + grid: { circular: !1 }, + startAngle: 0, + ticks: { showLabelBackdrop: !0, callback: Is.formatters.numeric }, + pointLabels: { + backdropColor: void 0, + backdropPadding: 2, + display: !0, + font: { size: 10 }, + callback: t => t, + padding: 5, + centerPointLabels: !1, + }, + }, + ga.defaultRoutes = { "angleLines.color": "borderColor", "pointLabels.color": "color", "ticks.color": "color" }, + ga.descriptors = { angleLines: { _fallback: "grid" } }; + const pa = { + millisecond: { common: !0, size: 1, steps: 1e3 }, + second: { common: !0, size: 1e3, steps: 60 }, + minute: { common: !0, size: 6e4, steps: 60 }, + hour: { common: !0, size: 36e5, steps: 24 }, + day: { common: !0, size: 864e5, steps: 30 }, + week: { common: !1, size: 6048e5, steps: 4 }, + month: { common: !0, size: 2628e6, steps: 12 }, + quarter: { common: !1, size: 7884e6, steps: 4 }, + year: { common: !0, size: 3154e7 }, + }, + ma = Object.keys(pa); + function ba(t, e) { + return t - e; + } + function xa(t, e) { + if (i(e)) return null; + const s = t._adapter, { parser: n, round: a, isoWeekday: r } = t._parseOpts; + let l = e; + return "function" == typeof n && (l = n(l)), + o(l) || (l = "string" == typeof n ? s.parse(l, n) : s.parse(l)), + null === l + ? null + : (a && (l = "week" !== a || !B(r) && !0 !== r ? s.startOf(l, a) : s.startOf(l, "isoWeek", r)), +l); + } + function _a(t, e, i, s) { + const n = ma.length; + for (let o = ma.indexOf(t); o < n - 1; ++o) { + const t = pa[ma[o]], n = t.steps ? t.steps : Number.MAX_SAFE_INTEGER; + if (t.common && Math.ceil((i - e) / (n * t.size)) <= s) return ma[o]; + } + return ma[n - 1]; + } + function ya(t, e, i) { + if (i) { + if (i.length) { + const { lo: s, hi: n } = tt(i, e); + t[i[s] >= e ? i[s] : i[n]] = !0; + } + } else t[e] = !0; + } + function va(t, e, i) { + const s = [], n = {}, o = e.length; + let a, r; + for (a = 0; a < o; ++a) r = e[a], n[r] = a, s.push({ value: r, major: !1 }); + return 0 !== o && i + ? function(t, e, i, s) { + const n = t._adapter, o = +n.startOf(e[0].value, s), a = e[e.length - 1].value; + let r, l; + for (r = o; r <= a; r = +n.add(r, 1, s)) l = i[r], l >= 0 && (e[l].major = !0); + return e; + }(t, s, n, i) + : s; + } + class wa extends $s { + constructor(t) { + super(t), + this._cache = { data: [], labels: [], all: [] }, + this._unit = "day", + this._majorUnit = void 0, + this._offsets = {}, + this._normalized = !1, + this._parseOpts = void 0; + } + init(t, e) { + const i = t.time || (t.time = {}), s = this._adapter = new wn._date(t.adapters.date); + s.init(e), + b(i.displayFormats, s.formats()), + this._parseOpts = { parser: i.parser, round: i.round, isoWeekday: i.isoWeekday }, + super.init(t), + this._normalized = e.normalized; + } + parse(t, e) { + return void 0 === t ? null : xa(this, t); + } + beforeLayout() { + super.beforeLayout(), this._cache = { data: [], labels: [], all: [] }; + } + determineDataLimits() { + const t = this.options, e = this._adapter, i = t.time.unit || "day"; + let { min: s, max: n, minDefined: a, maxDefined: r } = this.getUserBounds(); + function l(t) { + a || isNaN(t.min) || (s = Math.min(s, t.min)), r || isNaN(t.max) || (n = Math.max(n, t.max)); + } + a && r + || (l(this._getLabelBounds()), "ticks" === t.bounds && "labels" === t.ticks.source || l(this.getMinMax(!1))), + s = o(s) && !isNaN(s) ? s : +e.startOf(Date.now(), i), + n = o(n) && !isNaN(n) ? n : +e.endOf(Date.now(), i) + 1, + this.min = Math.min(s, n - 1), + this.max = Math.max(s + 1, n); + } + _getLabelBounds() { + const t = this.getLabelTimestamps(); + let e = Number.POSITIVE_INFINITY, i = Number.NEGATIVE_INFINITY; + return t.length && (e = t[0], i = t[t.length - 1]), { min: e, max: i }; + } + buildTicks() { + const t = this.options, + e = t.time, + i = t.ticks, + s = "labels" === i.source ? this.getLabelTimestamps() : this._generate(); + "ticks" === t.bounds && s.length + && (this.min = this._userMin || s[0], this.max = this._userMax || s[s.length - 1]); + const n = this.min, o = st(s, n, this.max); + return this._unit = e.unit + || (i.autoSkip ? _a(e.minUnit, this.min, this.max, this._getLabelCapacity(n)) : function(t, e, i, s, n) { + for (let o = ma.length - 1; o >= ma.indexOf(i); o--) { + const i = ma[o]; + if (pa[i].common && t._adapter.diff(n, s, i) >= e - 1) return i; + } + return ma[i ? ma.indexOf(i) : 0]; + }(this, o.length, e.minUnit, this.min, this.max)), + this._majorUnit = i.major.enabled && "year" !== this._unit + ? function(t) { + for (let e = ma.indexOf(t) + 1, i = ma.length; e < i; ++e) if (pa[ma[e]].common) return ma[e]; + }(this._unit) + : void 0, + this.initOffsets(s), + t.reverse && o.reverse(), + va(this, o, this._majorUnit); + } + afterAutoSkip() { + this.options.offsetAfterAutoskip && this.initOffsets(this.ticks.map(t => +t.value)); + } + initOffsets(t) { + let e, i, s = 0, n = 0; + this.options.offset && t.length + && (e = this.getDecimalForValue(t[0]), + s = 1 === t.length ? 1 - e : (this.getDecimalForValue(t[1]) - e) / 2, + i = this.getDecimalForValue(t[t.length - 1]), + n = 1 === t.length ? i : (i - this.getDecimalForValue(t[t.length - 2])) / 2); + const o = t.length < 3 ? .5 : .25; + s = Z(s, 0, o), n = Z(n, 0, o), this._offsets = { start: s, end: n, factor: 1 / (s + 1 + n) }; + } + _generate() { + const t = this._adapter, + e = this.min, + i = this.max, + s = this.options, + n = s.time, + o = n.unit || _a(n.minUnit, e, i, this._getLabelCapacity(e)), + a = r(n.stepSize, 1), + l = "week" === o && n.isoWeekday, + h = B(l) || !0 === l, + c = {}; + let d, u, f = e; + if (h && (f = +t.startOf(f, "isoWeek", l)), f = +t.startOf(f, h ? "day" : o), t.diff(i, e, o) > 1e5 * a) { + throw new Error(e + " and " + i + " are too far apart with stepSize of " + a + " " + o); + } + const g = "data" === s.ticks.source && this.getDataTimestamps(); + for (d = f, u = 0; d < i; d = +t.add(d, a, o), u++) ya(c, d, g); + return d !== i && "ticks" !== s.bounds && 1 !== u || ya(c, d, g), + Object.keys(c).sort((t, e) => t - e).map(t => +t); + } + getLabelForValue(t) { + const e = this._adapter, i = this.options.time; + return i.tooltipFormat ? e.format(t, i.tooltipFormat) : e.format(t, i.displayFormats.datetime); + } + _tickFormatFunction(t, e, i, s) { + const n = this.options, + o = n.time.displayFormats, + a = this._unit, + r = this._majorUnit, + l = a && o[a], + h = r && o[r], + d = i[e], + u = r && h && d && d.major, + f = this._adapter.format(t, s || (u ? h : l)), + g = n.ticks.callback; + return g ? c(g, [f, e, i], this) : f; + } + generateTickLabels(t) { + let e, i, s; + for (e = 0, i = t.length; e < i; ++e) s = t[e], s.label = this._tickFormatFunction(s.value, e, t); + } + getDecimalForValue(t) { + return null === t ? NaN : (t - this.min) / (this.max - this.min); + } + getPixelForValue(t) { + const e = this._offsets, i = this.getDecimalForValue(t); + return this.getPixelForDecimal((e.start + i) * e.factor); + } + getValueForPixel(t) { + const e = this._offsets, i = this.getDecimalForPixel(t) / e.factor - e.end; + return this.min + i * (this.max - this.min); + } + _getLabelSize(t) { + const e = this.options.ticks, + i = this.ctx.measureText(t).width, + s = H(this.isHorizontal() ? e.maxRotation : e.minRotation), + n = Math.cos(s), + o = Math.sin(s), + a = this._resolveTickFontOptions(0).size; + return { w: i * n + a * o, h: i * o + a * n }; + } + _getLabelCapacity(t) { + const e = this.options.time, + i = e.displayFormats, + s = i[e.unit] || i.millisecond, + n = this._tickFormatFunction(t, 0, va(this, [t], this._majorUnit), s), + o = this._getLabelSize(n), + a = Math.floor(this.isHorizontal() ? this.width / o.w : this.height / o.h) - 1; + return a > 0 ? a : 1; + } + getDataTimestamps() { + let t, e, i = this._cache.data || []; + if (i.length) return i; + const s = this.getMatchingVisibleMetas(); + if (this._normalized && s.length) return this._cache.data = s[0].controller.getAllParsedValues(this); + for (t = 0, e = s.length; t < e; ++t) i = i.concat(s[t].controller.getAllParsedValues(this)); + return this._cache.data = this.normalize(i); + } + getLabelTimestamps() { + const t = this._cache.labels || []; + let e, i; + if (t.length) return t; + const s = this.getLabels(); + for (e = 0, i = s.length; e < i; ++e) t.push(xa(this, s[e])); + return this._cache.labels = this._normalized ? t : this.normalize(t); + } + normalize(t) { + return rt(t.sort(ba)); + } + } + function Ma(t, e, i) { + let s, n, o, a, r = 0, l = t.length - 1; + i + ? (e >= t[r].pos && e <= t[l].pos && ({ lo: r, hi: l } = et(t, "pos", e)), + ({ pos: s, time: o } = t[r]), + ({ pos: n, time: a } = t[l])) + : (e >= t[r].time && e <= t[l].time && ({ lo: r, hi: l } = et(t, "time", e)), + ({ time: s, pos: o } = t[r]), + ({ time: n, pos: a } = t[l])); + const h = n - s; + return h ? o + (a - o) * (e - s) / h : o; + } + wa.id = "time", + wa.defaults = { + bounds: "data", + adapters: {}, + time: { parser: !1, unit: !1, round: !1, isoWeekday: !1, minUnit: "millisecond", displayFormats: {} }, + ticks: { source: "auto", major: { enabled: !1 } }, + }; + class ka extends wa { + constructor(t) { + super(t), this._table = [], this._minPos = void 0, this._tableRange = void 0; + } + initOffsets() { + const t = this._getTimestampsForTable(), e = this._table = this.buildLookupTable(t); + this._minPos = Ma(e, this.min), this._tableRange = Ma(e, this.max) - this._minPos, super.initOffsets(t); + } + buildLookupTable(t) { + const { min: e, max: i } = this, s = [], n = []; + let o, a, r, l, h; + for (o = 0, a = t.length; o < a; ++o) l = t[o], l >= e && l <= i && s.push(l); + if (s.length < 2) return [{ time: e, pos: 0 }, { time: i, pos: 1 }]; + for (o = 0, a = s.length; o < a; ++o) { + h = s[o + 1], r = s[o - 1], l = s[o], Math.round((h + r) / 2) !== l && n.push({ time: l, pos: o / (a - 1) }); + } + return n; + } + _getTimestampsForTable() { + let t = this._cache.all || []; + if (t.length) return t; + const e = this.getDataTimestamps(), i = this.getLabelTimestamps(); + return t = e.length && i.length ? this.normalize(e.concat(i)) : e.length ? e : i, t = this._cache.all = t, t; + } + getDecimalForValue(t) { + return (Ma(this._table, t) - this._minPos) / this._tableRange; + } + getValueForPixel(t) { + const e = this._offsets, i = this.getDecimalForPixel(t) / e.factor - e.end; + return Ma(this._table, i * this._tableRange + this._minPos, !0); + } + } + ka.id = "timeseries", ka.defaults = wa.defaults; + var Sa = Object.freeze({ + __proto__: null, + CategoryScale: ta, + LinearScale: sa, + LogarithmicScale: oa, + RadialLinearScale: ga, + TimeScale: wa, + TimeSeriesScale: ka, + }); + return bn.register(Bn, Sa, co, Jo), + bn.helpers = { ...Ti }, + bn._adapters = wn, + bn.Animation = xs, + bn.Animations = ys, + bn.animator = mt, + bn.controllers = Us.controllers.items, + bn.DatasetController = Ls, + bn.Element = Es, + bn.elements = co, + bn.Interaction = Vi, + bn.layouts = Zi, + bn.platforms = ps, + bn.Scale = $s, + bn.Ticks = Is, + Object.assign(bn, Bn, Sa, co, Jo, ps), + bn.Chart = bn, + "undefined" != typeof window && (window.Chart = bn), + bn; +}); diff --git a/assets/plugin/mermaid-theme.js b/assets/plugin/mermaid-theme.js new file mode 100644 index 00000000..0513f2fa --- /dev/null +++ b/assets/plugin/mermaid-theme.js @@ -0,0 +1,34 @@ +// Mermaid theme and functions +const pink = "#E6007A"; +const purple = "#442299"; +const lightPurple = "#6D3AEE"; +const white = "#FFFFFF"; + +Reveal.addEventListener("ready", event => asyncMermaidRender(event)); + +async function asyncMermaidRender(event) { + var graphs = document.querySelectorAll(".mermaid"); + graphs.forEach((item, index) => { + let graphCode = item.textContent.trim(); // trim() becase of gantt, class and git diagram + let mermaidDiv = document.createElement("div"); + mermaidDiv.classList.add("mermaid"); + mermaidDiv.setAttribute("data-processed", "true"); + + try { + // item.innerText ignores html elements added by revealjs highlight plugin. + mermaid.mermaidAPI.render("theGraph" + index, graphCode, function(svgCode) { + mermaidDiv.innerHTML = svgCode; + }); + + let parentDiv = document.createElement("div"); + parentDiv.appendChild(mermaidDiv); + parentDiv.style.width = "100%"; + parentDiv.style.height = "100%"; + item.parentNode.parentNode.insertBefore(parentDiv, item.parentNode); + item.parentNode.remove(); + } catch (err) { + console.log("Cannot render mermaid diagram " + index + "\n" + graphCode); + console.log(err.message); + } + }); +} diff --git a/assets/plugin/mermaid.js b/assets/plugin/mermaid.js new file mode 100644 index 00000000..bfa7f98a --- /dev/null +++ b/assets/plugin/mermaid.js @@ -0,0 +1,40764 @@ +!function(t, e) { + "object" == typeof exports && "undefined" != typeof module + ? module.exports = e() + : "function" == typeof define && define.amd + ? define(e) + : (t = "undefined" != typeof globalThis ? globalThis : t || self).RevealMermaid = e(); +}(this, function() { + "use strict"; + "undefined" != typeof globalThis + ? globalThis + : "undefined" != typeof window + ? window + : "undefined" != typeof global + ? global + : "undefined" != typeof self && self; + var t = { exports: {} }; + !function(t, e) { + t.exports = function() { + var e; + function n() { + return e.apply(null, arguments); + } + function i(t) { + return t instanceof Array || "[object Array]" === Object.prototype.toString.call(t); + } + function r(t) { + return null != t && "[object Object]" === Object.prototype.toString.call(t); + } + function a(t, e) { + return Object.prototype.hasOwnProperty.call(t, e); + } + function s(t) { + if (Object.getOwnPropertyNames) return 0 === Object.getOwnPropertyNames(t).length; + for (var e in t) if (a(t, e)) return; + return 1; + } + function o(t) { + return void 0 === t; + } + function l(t) { + return "number" == typeof t || "[object Number]" === Object.prototype.toString.call(t); + } + function c(t) { + return t instanceof Date || "[object Date]" === Object.prototype.toString.call(t); + } + function h(t, e) { + for (var n = [], i = t.length, r = 0; r < i; ++r) n.push(e(t[r], r)); + return n; + } + function u(t, e) { + for (var n in e) a(e, n) && (t[n] = e[n]); + return a(e, "toString") && (t.toString = e.toString), a(e, "valueOf") && (t.valueOf = e.valueOf), t; + } + function d(t, e, n, i) { + return De(t, e, n, i, !0).utc(); + } + function p(t) { + return null == t._pf + && (t._pf = { + empty: !1, + unusedTokens: [], + unusedInput: [], + overflow: -2, + charsLeftOver: 0, + nullInput: !1, + invalidEra: null, + invalidMonth: null, + invalidFormat: !1, + userInvalidated: !1, + iso: !1, + parsedDateParts: [], + era: null, + meridiem: null, + rfc2822: !1, + weekdayMismatch: !1, + }), + t._pf; + } + function f(t) { + if (null == t._isValid) { + var e = p(t), + n = y.call(e.parsedDateParts, function(t) { + return null != t; + }); + if ( + n = !isNaN(t._d.getTime()) && e.overflow < 0 && !e.empty && !e.invalidEra && !e.invalidMonth + && !e.invalidWeekday && !e.weekdayMismatch && !e.nullInput && !e.invalidFormat && !e.userInvalidated + && (!e.meridiem || e.meridiem && n), + t._strict && (n = n && 0 === e.charsLeftOver && 0 === e.unusedTokens.length && void 0 === e.bigHour), + null != Object.isFrozen && Object.isFrozen(t) + ) return n; + t._isValid = n; + } + return t._isValid; + } + function g(t) { + var e = d(NaN); + return null != t ? u(p(e), t) : p(e).userInvalidated = !0, e; + } + var y = Array.prototype.some || function(t) { + for (var e = Object(this), n = e.length >>> 0, i = 0; i < n; i++) { + if (i in e && t.call(this, e[i], i, e)) return !0; + } + return !1; + }, + m = n.momentProperties = [], + b = !1; + function _(t, e) { + var n, i, r, a = m.length; + if ( + o(e._isAMomentObject) || (t._isAMomentObject = e._isAMomentObject), + o(e._i) || (t._i = e._i), + o(e._f) || (t._f = e._f), + o(e._l) || (t._l = e._l), + o(e._strict) || (t._strict = e._strict), + o(e._tzm) || (t._tzm = e._tzm), + o(e._isUTC) || (t._isUTC = e._isUTC), + o(e._offset) || (t._offset = e._offset), + o(e._pf) || (t._pf = p(e)), + o(e._locale) || (t._locale = e._locale), + 0 < a + ) for (n = 0; n < a; n++) o(r = e[i = m[n]]) || (t[i] = r); + return t; + } + function x(t) { + _(this, t), + this._d = new Date(null != t._d ? t._d.getTime() : NaN), + this.isValid() || (this._d = new Date(NaN)), + !1 === b && (b = !0, n.updateOffset(this), b = !1); + } + function v(t) { + return t instanceof x || null != t && null != t._isAMomentObject; + } + function k(t) { + !1 === n.suppressDeprecationWarnings && "undefined" != typeof console && console.warn + && console.warn("Deprecation warning: " + t); + } + function w(t, e) { + var i = !0; + return u(function() { + if (null != n.deprecationHandler && n.deprecationHandler(null, t), i) { + for (var r, s, o = [], l = arguments.length, c = 0; c < l; c++) { + if (r = "", "object" == typeof arguments[c]) { + for (s in r += "\n[" + c + "] ", arguments[0]) { + a(arguments[0], s) && (r += s + ": " + arguments[0][s] + ", "); + } + r = r.slice(0, -2); + } else r = arguments[c]; + o.push(r); + } + k(t + "\nArguments: " + Array.prototype.slice.call(o).join("") + "\n" + (new Error()).stack), i = !1; + } + return e.apply(this, arguments); + }, e); + } + var T = {}; + function C(t, e) { + null != n.deprecationHandler && n.deprecationHandler(t, e), T[t] || (k(e), T[t] = !0); + } + function E(t) { + return "undefined" != typeof Function && t instanceof Function + || "[object Function]" === Object.prototype.toString.call(t); + } + function S(t, e) { + var n, i = u({}, t); + for (n in e) { + a(e, n) && (r(t[n]) && r(e[n]) + ? (i[n] = {}, u(i[n], t[n]), u(i[n], e[n])) + : null != e[n] + ? i[n] = e[n] + : delete i[n]); + } + for (n in t) a(t, n) && !a(e, n) && r(t[n]) && (i[n] = u({}, i[n])); + return i; + } + function A(t) { + null != t && this.set(t); + } + n.suppressDeprecationWarnings = !1, n.deprecationHandler = null; + var D = Object.keys || function(t) { + var e, n = []; + for (e in t) a(t, e) && n.push(e); + return n; + }; + function L(t, e, n) { + var i = "" + Math.abs(t); + return (0 <= t ? n ? "+" : "" : "-") + Math.pow(10, Math.max(0, e - i.length)).toString().substr(1) + i; + } + var O = + /(\[[^\[]*\])|(\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|N{1,5}|YYYYYY|YYYYY|YYYY|YY|y{2,4}|yo?|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g, + N = /(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g, + M = {}, + B = {}; + function I(t, e, n, i) { + var r = "string" == typeof i + ? function() { + return this[i](); + } + : i; + t && (B[t] = r), + e && (B[e[0]] = function() { + return L(r.apply(this, arguments), e[1], e[2]); + }), + n && (B[n] = function() { + return this.localeData().ordinal(r.apply(this, arguments), t); + }); + } + function F(t, e) { + return t.isValid() + ? (e = R(e, t.localeData()), + M[e] = M[e] || function(t) { + for (var e, n = t.match(O), i = 0, r = n.length; i < r; i++) { + B[n[i]] + ? n[i] = B[n[i]] + : n[i] = (e = n[i]).match(/\[[\s\S]/) ? e.replace(/^\[|\]$/g, "") : e.replace(/\\/g, ""); + } + return function(e) { + for (var i = "", a = 0; a < r; a++) i += E(n[a]) ? n[a].call(e, t) : n[a]; + return i; + }; + }(e), + M[e](t)) + : t.localeData().invalidDate(); + } + function R(t, e) { + var n = 5; + function i(t) { + return e.longDateFormat(t) || t; + } + for (N.lastIndex = 0; 0 <= n && N.test(t);) t = t.replace(N, i), N.lastIndex = 0, --n; + return t; + } + var $ = {}; + function P(t, e) { + var n = t.toLowerCase(); + $[n] = $[n + "s"] = $[e] = t; + } + function Y(t) { + return "string" == typeof t ? $[t] || $[t.toLowerCase()] : void 0; + } + function j(t) { + var e, n, i = {}; + for (n in t) a(t, n) && (e = Y(n)) && (i[e] = t[n]); + return i; + } + var z = {}; + function U(t, e) { + z[t] = e; + } + function W(t) { + return t % 4 == 0 && t % 100 != 0 || t % 400 == 0; + } + function H(t) { + return t < 0 ? Math.ceil(t) || 0 : Math.floor(t); + } + function q(t) { + var e = 0; + return 0 != (t = +t) && isFinite(t) ? H(t) : e; + } + function V(t, e) { + return function(i) { + return null != i ? (X(this, t, i), n.updateOffset(this, e), this) : G(this, t); + }; + } + function G(t, e) { + return t.isValid() ? t._d["get" + (t._isUTC ? "UTC" : "") + e]() : NaN; + } + function X(t, e, n) { + t.isValid() && !isNaN(n) + && ("FullYear" === e && W(t.year()) && 1 === t.month() && 29 === t.date() + ? (n = q(n), t._d["set" + (t._isUTC ? "UTC" : "") + e](n, t.month(), Dt(n, t.month()))) + : t._d["set" + (t._isUTC ? "UTC" : "") + e](n)); + } + var Z = /\d/, + Q = /\d\d/, + K = /\d{3}/, + J = /\d{4}/, + tt = /[+-]?\d{6}/, + et = /\d\d?/, + nt = /\d\d\d\d?/, + it = /\d\d\d\d\d\d?/, + rt = /\d{1,3}/, + at = /\d{1,4}/, + st = /[+-]?\d{1,6}/, + ot = /\d+/, + lt = /[+-]?\d+/, + ct = /Z|[+-]\d\d:?\d\d/gi, + ht = /Z|[+-]\d\d(?::?\d\d)?/gi, + ut = + /[0-9]{0,256}['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFF07\uFF10-\uFFEF]{1,256}|[\u0600-\u06FF\/]{1,256}(\s*?[\u0600-\u06FF]{1,256}){1,2}/i; + function dt(t, e, n) { + gt[t] = E(e) ? e : function(t, i) { + return t && n ? n : e; + }; + } + function pt(t, e) { + return a(gt, t) + ? gt[t](e._strict, e._locale) + : new RegExp(ft( + t.replace("\\", "").replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g, function(t, e, n, i, r) { + return e || n || i || r; + }), + )); + } + function ft(t) { + return t.replace(/[-\/\\^$*+?.()|[\]{}]/g, "\\$&"); + } + var gt = {}, yt = {}; + function mt(t, e) { + var n, i, r = e; + for ( + "string" == typeof t && (t = [t]), + l(e) && (r = function(t, n) { + n[e] = q(t); + }), + i = t.length, + n = 0; + n < i; + n++ + ) yt[t[n]] = r; + } + function bt(t, e) { + mt(t, function(t, n, i, r) { + i._w = i._w || {}, e(t, i._w, i, r); + }); + } + var _t, xt = 0, vt = 1, kt = 2, wt = 3, Tt = 4, Ct = 5, Et = 6, St = 7, At = 8; + function Dt(t, e) { + if (isNaN(t) || isNaN(e)) return NaN; + var n = (e % (n = 12) + n) % n; + return t += (e - n) / 12, 1 == n ? W(t) ? 29 : 28 : 31 - n % 7 % 2; + } + _t = Array.prototype.indexOf || function(t) { + for (var e = 0; e < this.length; ++e) if (this[e] === t) return e; + return -1; + }, + I("M", ["MM", 2], "Mo", function() { + return this.month() + 1; + }), + I("MMM", 0, 0, function(t) { + return this.localeData().monthsShort(this, t); + }), + I("MMMM", 0, 0, function(t) { + return this.localeData().months(this, t); + }), + P("month", "M"), + U("month", 8), + dt("M", et), + dt("MM", et, Q), + dt("MMM", function(t, e) { + return e.monthsShortRegex(t); + }), + dt("MMMM", function(t, e) { + return e.monthsRegex(t); + }), + mt(["M", "MM"], function(t, e) { + e[vt] = q(t) - 1; + }), + mt(["MMM", "MMMM"], function(t, e, n, i) { + null != (i = n._locale.monthsParse(t, i, n._strict)) ? e[vt] = i : p(n).invalidMonth = t; + }); + var Lt = "January_February_March_April_May_June_July_August_September_October_November_December".split("_"), + Ot = "Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_"), + Nt = /D[oD]?(\[[^\[\]]*\]|\s)+MMMM?/, + Mt = ut, + Bt = ut; + function It(t, e) { + var n; + if (t.isValid()) { + if ("string" == typeof e) { + if (/^\d+$/.test(e)) e = q(e); + else if (!l(e = t.localeData().monthsParse(e))) return; + } + n = Math.min(t.date(), Dt(t.year(), e)), t._d["set" + (t._isUTC ? "UTC" : "") + "Month"](e, n); + } + } + function Ft(t) { + return null != t ? (It(this, t), n.updateOffset(this, !0), this) : G(this, "Month"); + } + function Rt() { + function t(t, e) { + return e.length - t.length; + } + for (var e, n = [], i = [], r = [], a = 0; a < 12; a++) { + e = d([2e3, a]), + n.push(this.monthsShort(e, "")), + i.push(this.months(e, "")), + r.push(this.months(e, "")), + r.push(this.monthsShort(e, "")); + } + for (n.sort(t), i.sort(t), r.sort(t), a = 0; a < 12; a++) n[a] = ft(n[a]), i[a] = ft(i[a]); + for (a = 0; a < 24; a++) r[a] = ft(r[a]); + this._monthsRegex = new RegExp("^(" + r.join("|") + ")", "i"), + this._monthsShortRegex = this._monthsRegex, + this._monthsStrictRegex = new RegExp("^(" + i.join("|") + ")", "i"), + this._monthsShortStrictRegex = new RegExp("^(" + n.join("|") + ")", "i"); + } + function $t(t) { + return W(t) ? 366 : 365; + } + I("Y", 0, 0, function() { + var t = this.year(); + return t <= 9999 ? L(t, 4) : "+" + t; + }), + I(0, ["YY", 2], 0, function() { + return this.year() % 100; + }), + I(0, ["YYYY", 4], 0, "year"), + I(0, ["YYYYY", 5], 0, "year"), + I(0, ["YYYYYY", 6, !0], 0, "year"), + P("year", "y"), + U("year", 1), + dt("Y", lt), + dt("YY", et, Q), + dt("YYYY", at, J), + dt("YYYYY", st, tt), + dt("YYYYYY", st, tt), + mt(["YYYYY", "YYYYYY"], xt), + mt("YYYY", function(t, e) { + e[xt] = 2 === t.length ? n.parseTwoDigitYear(t) : q(t); + }), + mt("YY", function(t, e) { + e[xt] = n.parseTwoDigitYear(t); + }), + mt("Y", function(t, e) { + e[xt] = parseInt(t, 10); + }), + n.parseTwoDigitYear = function(t) { + return q(t) + (68 < q(t) ? 1900 : 2e3); + }; + var Pt = V("FullYear", !0); + function Yt(t, e, n, i, r, a, s) { + var o; + return t < 100 && 0 <= t + ? (o = new Date(t + 400, e, n, i, r, a, s), isFinite(o.getFullYear()) && o.setFullYear(t)) + : o = new Date(t, e, n, i, r, a, s), + o; + } + function jt(t) { + var e; + return t < 100 && 0 <= t + ? ((e = Array.prototype.slice.call(arguments))[0] = t + 400, + e = new Date(Date.UTC.apply(null, e)), + isFinite(e.getUTCFullYear()) && e.setUTCFullYear(t)) + : e = new Date(Date.UTC.apply(null, arguments)), + e; + } + function zt(t, e, n) { + return (n = 7 + e - n) - (7 + jt(t, 0, n).getUTCDay() - e) % 7 - 1; + } + function Ut(t, e, n, i, r) { + var a; + return n = (e = 1 + 7 * (e - 1) + (7 + n - i) % 7 + zt(t, i, r)) <= 0 + ? $t(a = t - 1) + e + : e > $t(t) + ? (a = t + 1, e - $t(t)) + : (a = t, e), + { year: a, dayOfYear: n }; + } + function Wt(t, e, n) { + var i, r, a = zt(t.year(), e, n); + return (a = Math.floor((t.dayOfYear() - a - 1) / 7) + 1) < 1 + ? i = a + Ht(r = t.year() - 1, e, n) + : a > Ht(t.year(), e, n) + ? (i = a - Ht(t.year(), e, n), r = t.year() + 1) + : (r = t.year(), i = a), + { week: i, year: r }; + } + function Ht(t, e, n) { + var i = zt(t, e, n); + return e = zt(t + 1, e, n), ($t(t) - i + e) / 7; + } + function qt(t, e) { + return t.slice(e, 7).concat(t.slice(0, e)); + } + I("w", ["ww", 2], "wo", "week"), + I("W", ["WW", 2], "Wo", "isoWeek"), + P("week", "w"), + P("isoWeek", "W"), + U("week", 5), + U("isoWeek", 5), + dt("w", et), + dt("ww", et, Q), + dt("W", et), + dt("WW", et, Q), + bt(["w", "ww", "W", "WW"], function(t, e, n, i) { + e[i.substr(0, 1)] = q(t); + }), + I("d", 0, "do", "day"), + I("dd", 0, 0, function(t) { + return this.localeData().weekdaysMin(this, t); + }), + I("ddd", 0, 0, function(t) { + return this.localeData().weekdaysShort(this, t); + }), + I("dddd", 0, 0, function(t) { + return this.localeData().weekdays(this, t); + }), + I("e", 0, 0, "weekday"), + I("E", 0, 0, "isoWeekday"), + P("day", "d"), + P("weekday", "e"), + P("isoWeekday", "E"), + U("day", 11), + U("weekday", 11), + U("isoWeekday", 11), + dt("d", et), + dt("e", et), + dt("E", et), + dt("dd", function(t, e) { + return e.weekdaysMinRegex(t); + }), + dt("ddd", function(t, e) { + return e.weekdaysShortRegex(t); + }), + dt("dddd", function(t, e) { + return e.weekdaysRegex(t); + }), + bt(["dd", "ddd", "dddd"], function(t, e, n, i) { + null != (i = n._locale.weekdaysParse(t, i, n._strict)) ? e.d = i : p(n).invalidWeekday = t; + }), + bt(["d", "e", "E"], function(t, e, n, i) { + e[i] = q(t); + }); + var Vt = "Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"), + Gt = "Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"), + Xt = "Su_Mo_Tu_We_Th_Fr_Sa".split("_"), + Zt = ut, + Qt = ut, + Kt = ut; + function Jt() { + function t(t, e) { + return e.length - t.length; + } + for (var e, n, i, r = [], a = [], s = [], o = [], l = 0; l < 7; l++) { + i = d([2e3, 1]).day(l), + e = ft(this.weekdaysMin(i, "")), + n = ft(this.weekdaysShort(i, "")), + i = ft(this.weekdays(i, "")), + r.push(e), + a.push(n), + s.push(i), + o.push(e), + o.push(n), + o.push(i); + } + r.sort(t), + a.sort(t), + s.sort(t), + o.sort(t), + this._weekdaysRegex = new RegExp("^(" + o.join("|") + ")", "i"), + this._weekdaysShortRegex = this._weekdaysRegex, + this._weekdaysMinRegex = this._weekdaysRegex, + this._weekdaysStrictRegex = new RegExp("^(" + s.join("|") + ")", "i"), + this._weekdaysShortStrictRegex = new RegExp("^(" + a.join("|") + ")", "i"), + this._weekdaysMinStrictRegex = new RegExp("^(" + r.join("|") + ")", "i"); + } + function te() { + return this.hours() % 12 || 12; + } + function ee(t, e) { + I(t, 0, 0, function() { + return this.localeData().meridiem(this.hours(), this.minutes(), e); + }); + } + function ne(t, e) { + return e._meridiemParse; + } + I("H", ["HH", 2], 0, "hour"), + I("h", ["hh", 2], 0, te), + I("k", ["kk", 2], 0, function() { + return this.hours() || 24; + }), + I("hmm", 0, 0, function() { + return "" + te.apply(this) + L(this.minutes(), 2); + }), + I("hmmss", 0, 0, function() { + return "" + te.apply(this) + L(this.minutes(), 2) + L(this.seconds(), 2); + }), + I("Hmm", 0, 0, function() { + return "" + this.hours() + L(this.minutes(), 2); + }), + I("Hmmss", 0, 0, function() { + return "" + this.hours() + L(this.minutes(), 2) + L(this.seconds(), 2); + }), + ee("a", !0), + ee("A", !1), + P("hour", "h"), + U("hour", 13), + dt("a", ne), + dt("A", ne), + dt("H", et), + dt("h", et), + dt("k", et), + dt("HH", et, Q), + dt("hh", et, Q), + dt("kk", et, Q), + dt("hmm", nt), + dt("hmmss", it), + dt("Hmm", nt), + dt("Hmmss", it), + mt(["H", "HH"], wt), + mt(["k", "kk"], function(t, e, n) { + t = q(t), e[wt] = 24 === t ? 0 : t; + }), + mt(["a", "A"], function(t, e, n) { + n._isPm = n._locale.isPM(t), n._meridiem = t; + }), + mt(["h", "hh"], function(t, e, n) { + e[wt] = q(t), p(n).bigHour = !0; + }), + mt("hmm", function(t, e, n) { + var i = t.length - 2; + e[wt] = q(t.substr(0, i)), e[Tt] = q(t.substr(i)), p(n).bigHour = !0; + }), + mt("hmmss", function(t, e, n) { + var i = t.length - 4, r = t.length - 2; + e[wt] = q(t.substr(0, i)), e[Tt] = q(t.substr(i, 2)), e[Ct] = q(t.substr(r)), p(n).bigHour = !0; + }), + mt("Hmm", function(t, e, n) { + var i = t.length - 2; + e[wt] = q(t.substr(0, i)), e[Tt] = q(t.substr(i)); + }), + mt("Hmmss", function(t, e, n) { + var i = t.length - 4, r = t.length - 2; + e[wt] = q(t.substr(0, i)), e[Tt] = q(t.substr(i, 2)), e[Ct] = q(t.substr(r)); + }), + ut = V("Hours", !0); + var ie, + re = { + calendar: { + sameDay: "[Today at] LT", + nextDay: "[Tomorrow at] LT", + nextWeek: "dddd [at] LT", + lastDay: "[Yesterday at] LT", + lastWeek: "[Last] dddd [at] LT", + sameElse: "L", + }, + longDateFormat: { + LTS: "h:mm:ss A", + LT: "h:mm A", + L: "MM/DD/YYYY", + LL: "MMMM D, YYYY", + LLL: "MMMM D, YYYY h:mm A", + LLLL: "dddd, MMMM D, YYYY h:mm A", + }, + invalidDate: "Invalid date", + ordinal: "%d", + dayOfMonthOrdinalParse: /\d{1,2}/, + relativeTime: { + future: "in %s", + past: "%s ago", + s: "a few seconds", + ss: "%d seconds", + m: "a minute", + mm: "%d minutes", + h: "an hour", + hh: "%d hours", + d: "a day", + dd: "%d days", + w: "a week", + ww: "%d weeks", + M: "a month", + MM: "%d months", + y: "a year", + yy: "%d years", + }, + months: Lt, + monthsShort: Ot, + week: { dow: 0, doy: 6 }, + weekdays: Vt, + weekdaysMin: Xt, + weekdaysShort: Gt, + meridiemParse: /[ap]\.?m?\.?/i, + }, + ae = {}, + se = {}; + function oe(t) { + return t && t.toLowerCase().replace("_", "-"); + } + function le(t) { + for (var e, n, i, r, a = 0; a < t.length;) { + for (e = (r = oe(t[a]).split("-")).length, n = (n = oe(t[a + 1])) ? n.split("-") : null; 0 < e;) { + if (i = ce(r.slice(0, e).join("-"))) return i; + if ( + n && n.length >= e && function(t, e) { + for (var n = Math.min(t.length, e.length), i = 0; i < n; i += 1) if (t[i] !== e[i]) return i; + return n; + }(r, n) >= e - 1 + ) break; + e--; + } + a++; + } + return ie; + } + function ce(e) { + var n; + if (void 0 === ae[e] && t && t.exports && null != e.match("^[^/\\\\]*$")) { + try { + n = ie._abbr, + function(t) { + throw new Error( + "Could not dynamically require \"" + t + + "\". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.", + ); + }("./locale/" + e), + he(n); + } catch (n) { + ae[e] = null; + } + } + return ae[e]; + } + function he(t, e) { + return t + && ((e = o(e) ? de(t) : ue(t, e)) + ? ie = e + : "undefined" != typeof console && console.warn + && console.warn("Locale " + t + " not found. Did you forget to load it?")), + ie._abbr; + } + function ue(t, e) { + if (null === e) return delete ae[t], null; + var n, i = re; + if (e.abbr = t, null != ae[t]) { + C( + "defineLocaleOverride", + "use moment.updateLocale(localeName, config) to change an existing locale. moment.defineLocale(localeName, config) should only be used for creating a new locale See http://momentjs.com/guides/#/warnings/define-locale/ for more info.", + ), i = ae[t]._config; + } else if (null != e.parentLocale) { + if (null != ae[e.parentLocale]) i = ae[e.parentLocale]._config; + else { + if (null == (n = ce(e.parentLocale))) { + return se[e.parentLocale] || (se[e.parentLocale] = []), + se[e.parentLocale].push({ name: t, config: e }), + null; + } + i = n._config; + } + } + return ae[t] = new A(S(i, e)), + se[t] && se[t].forEach(function(t) { + ue(t.name, t.config); + }), + he(t), + ae[t]; + } + function de(t) { + var e; + if (!(t = t && t._locale && t._locale._abbr ? t._locale._abbr : t)) return ie; + if (!i(t)) { + if (e = ce(t)) return e; + t = [t]; + } + return le(t); + } + function pe(t) { + var e = t._a; + return e && -2 === p(t).overflow + && (e = e[vt] < 0 || 11 < e[vt] + ? vt + : e[kt] < 1 || e[kt] > Dt(e[xt], e[vt]) + ? kt + : e[wt] < 0 || 24 < e[wt] || 24 === e[wt] && (0 !== e[Tt] || 0 !== e[Ct] || 0 !== e[Et]) + ? wt + : e[Tt] < 0 || 59 < e[Tt] + ? Tt + : e[Ct] < 0 || 59 < e[Ct] + ? Ct + : e[Et] < 0 || 999 < e[Et] + ? Et + : -1, + p(t)._overflowDayOfYear && (e < xt || kt < e) && (e = kt), + p(t)._overflowWeeks && -1 === e && (e = St), + p(t)._overflowWeekday && -1 === e && (e = At), + p(t).overflow = e), + t; + } + var fe = + /^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([+-]\d\d(?::?\d\d)?|\s*Z)?)?$/, + ge = + /^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d|))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([+-]\d\d(?::?\d\d)?|\s*Z)?)?$/, + ye = /Z|[+-]\d\d(?::?\d\d)?/, + me = [ + ["YYYYYY-MM-DD", /[+-]\d{6}-\d\d-\d\d/], + ["YYYY-MM-DD", /\d{4}-\d\d-\d\d/], + ["GGGG-[W]WW-E", /\d{4}-W\d\d-\d/], + ["GGGG-[W]WW", /\d{4}-W\d\d/, !1], + ["YYYY-DDD", /\d{4}-\d{3}/], + ["YYYY-MM", /\d{4}-\d\d/, !1], + ["YYYYYYMMDD", /[+-]\d{10}/], + ["YYYYMMDD", /\d{8}/], + ["GGGG[W]WWE", /\d{4}W\d{3}/], + ["GGGG[W]WW", /\d{4}W\d{2}/, !1], + ["YYYYDDD", /\d{7}/], + ["YYYYMM", /\d{6}/, !1], + ["YYYY", /\d{4}/, !1], + ], + be = [ + ["HH:mm:ss.SSSS", /\d\d:\d\d:\d\d\.\d+/], + ["HH:mm:ss,SSSS", /\d\d:\d\d:\d\d,\d+/], + ["HH:mm:ss", /\d\d:\d\d:\d\d/], + ["HH:mm", /\d\d:\d\d/], + ["HHmmss.SSSS", /\d\d\d\d\d\d\.\d+/], + ["HHmmss,SSSS", /\d\d\d\d\d\d,\d+/], + ["HHmmss", /\d\d\d\d\d\d/], + ["HHmm", /\d\d\d\d/], + ["HH", /\d\d/], + ], + _e = /^\/?Date\((-?\d+)/i, + xe = + /^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\s)?(\d{1,2})\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(\d{2,4})\s(\d\d):(\d\d)(?::(\d\d))?\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\d{4}))$/, + ve = { UT: 0, GMT: 0, EDT: -240, EST: -300, CDT: -300, CST: -360, MDT: -360, MST: -420, PDT: -420, PST: -480 }; + function ke(t) { + var e, n, i, r, a, s, o = t._i, l = fe.exec(o) || ge.exec(o), c = (o = me.length, be.length); + if (l) { + for (p(t).iso = !0, e = 0, n = o; e < n; e++) { + if (me[e][1].exec(l[1])) { + r = me[e][0], i = !1 !== me[e][2]; + break; + } + } + if (null == r) t._isValid = !1; + else { + if (l[3]) { + for (e = 0, n = c; e < n; e++) { + if (be[e][1].exec(l[3])) { + a = (l[2] || " ") + be[e][0]; + break; + } + } + if (null == a) return void (t._isValid = !1); + } + if (i || null == a) { + if (l[4]) { + if (!ye.exec(l[4])) return void (t._isValid = !1); + s = "Z"; + } + t._f = r + (a || "") + (s || ""), Se(t); + } else t._isValid = !1; + } + } else t._isValid = !1; + } + function we(t, e, n, i, r, a) { + return t = [ + function(t) { + return (t = parseInt(t, 10)) <= 49 ? 2e3 + t : t <= 999 ? 1900 + t : t; + }(t), + Ot.indexOf(e), + parseInt(n, 10), + parseInt(i, 10), + parseInt(r, 10), + ], + a && t.push(parseInt(a, 10)), + t; + } + function Te(t) { + var e, + n, + i, + r, + a = xe.exec( + t._i.replace(/\([^()]*\)|[\n\t]/g, " ").replace(/(\s\s+)/g, " ").replace(/^\s\s*/, "").replace( + /\s\s*$/, + "", + ), + ); + a + ? (i = e = we(a[4], a[3], a[2], a[5], a[6], a[7]), + r = t, + (n = a[1]) && Gt.indexOf(n) !== new Date(i[0], i[1], i[2]).getDay() + ? (p(r).weekdayMismatch = !0, r._isValid = !1) + : (t._a = e, + t._tzm = + (n = a[8], + i = a[9], + r = a[10], + n ? ve[n] : i ? 0 : ((n = parseInt(r, 10)) - (i = n % 100)) / 100 * 60 + i), + t._d = jt.apply(null, t._a), + t._d.setUTCMinutes(t._d.getUTCMinutes() - t._tzm), + p(t).rfc2822 = !0)) + : t._isValid = !1; + } + function Ce(t, e, n) { + return null != t ? t : null != e ? e : n; + } + function Ee(t) { + var e, i, r, a, s, o, l, c, h, u, d, f = []; + if (!t._d) { + for ( + r = t, + a = new Date(n.now()), + i = r._useUTC + ? [a.getUTCFullYear(), a.getUTCMonth(), a.getUTCDate()] + : [a.getFullYear(), a.getMonth(), a.getDate()], + t._w && null == t._a[kt] && null == t._a[vt] && (null != (a = (r = t)._w).GG || null != a.W || null != a.E + ? (c = 1, + h = 4, + s = Ce(a.GG, r._a[xt], Wt(Le(), 1, 4).year), + o = Ce(a.W, 1), + ((l = Ce(a.E, 1)) < 1 || 7 < l) && (u = !0)) + : (c = r._locale._week.dow, + h = r._locale._week.doy, + d = Wt(Le(), c, h), + s = Ce(a.gg, r._a[xt], d.year), + o = Ce(a.w, d.week), + null != a.d + ? ((l = a.d) < 0 || 6 < l) && (u = !0) + : null != a.e + ? (l = a.e + c, (a.e < 0 || 6 < a.e) && (u = !0)) + : l = c), + o < 1 || o > Ht(s, c, h) + ? p(r)._overflowWeeks = !0 + : null != u + ? p(r)._overflowWeekday = !0 + : (d = Ut(s, o, l, c, h), r._a[xt] = d.year, r._dayOfYear = d.dayOfYear)), + null != t._dayOfYear + && (a = Ce(t._a[xt], i[xt]), + (t._dayOfYear > $t(a) || 0 === t._dayOfYear) && (p(t)._overflowDayOfYear = !0), + u = jt(a, 0, t._dayOfYear), + t._a[vt] = u.getUTCMonth(), + t._a[kt] = u.getUTCDate()), + e = 0; + e < 3 && null == t._a[e]; + ++e + ) t._a[e] = f[e] = i[e]; + for (; e < 7; e++) t._a[e] = f[e] = null == t._a[e] ? 2 === e ? 1 : 0 : t._a[e]; + 24 === t._a[wt] && 0 === t._a[Tt] && 0 === t._a[Ct] && 0 === t._a[Et] && (t._nextDay = !0, t._a[wt] = 0), + t._d = (t._useUTC ? jt : Yt).apply(null, f), + s = t._useUTC ? t._d.getUTCDay() : t._d.getDay(), + null != t._tzm && t._d.setUTCMinutes(t._d.getUTCMinutes() - t._tzm), + t._nextDay && (t._a[wt] = 24), + t._w && void 0 !== t._w.d && t._w.d !== s && (p(t).weekdayMismatch = !0); + } + } + function Se(t) { + if (t._f === n.ISO_8601) ke(t); + else if (t._f === n.RFC_2822) Te(t); + else { + t._a = [], p(t).empty = !0; + for ( + var e, + i, + r, + s, + o, + l = "" + t._i, + c = l.length, + h = 0, + u = R(t._f, t._locale).match(O) || [], + d = u.length, + f = 0; + f < d; + f++ + ) { + i = u[f], + (e = (l.match(pt(i, t)) || [])[0]) + && (0 < (r = l.substr(0, l.indexOf(e))).length && p(t).unusedInput.push(r), + l = l.slice(l.indexOf(e) + e.length), + h += e.length), + B[i] + ? (e ? p(t).empty = !1 : p(t).unusedTokens.push(i), + r = i, + o = t, + null != (s = e) && a(yt, r) && yt[r](s, o._a, o, r)) + : t._strict && !e && p(t).unusedTokens.push(i); + } + p(t).charsLeftOver = c - h, + 0 < l.length && p(t).unusedInput.push(l), + t._a[wt] <= 12 && !0 === p(t).bigHour && 0 < t._a[wt] && (p(t).bigHour = void 0), + p(t).parsedDateParts = t._a.slice(0), + p(t).meridiem = t._meridiem, + t._a[wt] = function(t, e, n) { + return null == n + ? e + : null != t.meridiemHour + ? t.meridiemHour(e, n) + : null != t.isPM + ? ((t = t.isPM(n)) && e < 12 && (e += 12), e = t || 12 !== e ? e : 0) + : e; + }(t._locale, t._a[wt], t._meridiem), + null !== (c = p(t).era) && (t._a[xt] = t._locale.erasConvertYear(c, t._a[xt])), + Ee(t), + pe(t); + } + } + function Ae(t) { + var e, a, s, d = t._i, y = t._f; + return t._locale = t._locale || de(t._l), + null === d || void 0 === y && "" === d + ? g({ nullInput: !0 }) + : ("string" == typeof d && (t._i = d = t._locale.preparse(d)), + v(d) ? new x(pe(d)) : (c(d) ? t._d = d : i(y) + ? function(t) { + var e, n, i, r, a, s, o = !1, l = t._f.length; + if (0 === l) return p(t).invalidFormat = !0, t._d = new Date(NaN); + for (r = 0; r < l; r++) { + a = 0, + s = !1, + e = _({}, t), + null != t._useUTC && (e._useUTC = t._useUTC), + e._f = t._f[r], + Se(e), + f(e) && (s = !0), + a = (a += p(e).charsLeftOver) + 10 * p(e).unusedTokens.length, + p(e).score = a, + o ? a < i && (i = a, n = e) : (null == i || a < i || s) && (i = a, n = e, s && (o = !0)); + } + u(t, n || e); + }(t) + : y + ? Se(t) + : o(y = (d = t)._i) + ? d._d = new Date(n.now()) + : c(y) + ? d._d = new Date(y.valueOf()) + : "string" == typeof y + ? (a = d, + null !== (e = _e.exec(a._i)) + ? a._d = new Date(+e[1]) + : (ke(a), + !1 === a._isValid + && (delete a._isValid, + Te(a), + !1 === a._isValid + && (delete a._isValid, a._strict ? a._isValid = !1 : n.createFromInputFallback(a))))) + : i(y) + ? (d._a = h(y.slice(0), function(t) { + return parseInt(t, 10); + }), + Ee(d)) + : r(y) + ? (e = d)._d + || (s = void 0 === (a = j(e._i)).day ? a.date : a.day, + e._a = h([a.year, a.month, s, a.hour, a.minute, a.second, a.millisecond], function(t) { + return t && parseInt(t, 10); + }), + Ee(e)) + : l(y) + ? d._d = new Date(y) + : n.createFromInputFallback(d), + f(t) || (t._d = null), + t)); + } + function De(t, e, n, a, o) { + var l = {}; + return !0 !== e && !1 !== e || (a = e, e = void 0), + !0 !== n && !1 !== n || (a = n, n = void 0), + (r(t) && s(t) || i(t) && 0 === t.length) && (t = void 0), + l._isAMomentObject = !0, + l._useUTC = l._isUTC = o, + l._l = n, + l._i = t, + l._f = e, + l._strict = a, + (o = new x(pe(Ae(o = l))))._nextDay && (o.add(1, "d"), o._nextDay = void 0), + o; + } + function Le(t, e, n, i) { + return De(t, e, n, i, !1); + } + function Oe(t, e) { + var n, r; + if (!(e = 1 === e.length && i(e[0]) ? e[0] : e).length) return Le(); + for (n = e[0], r = 1; r < e.length; ++r) e[r].isValid() && !e[r][t](n) || (n = e[r]); + return n; + } + n.createFromInputFallback = w( + "value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are discouraged. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.", + function(t) { + t._d = new Date(t._i + (t._useUTC ? " UTC" : "")); + }, + ), + n.ISO_8601 = function() {}, + n.RFC_2822 = function() {}, + nt = w( + "moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/", + function() { + var t = Le.apply(null, arguments); + return this.isValid() && t.isValid() ? t < this ? this : t : g(); + }, + ), + it = w( + "moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/", + function() { + var t = Le.apply(null, arguments); + return this.isValid() && t.isValid() ? this < t ? this : t : g(); + }, + ); + var Ne = ["year", "quarter", "month", "week", "day", "hour", "minute", "second", "millisecond"]; + function Me(t) { + var e = (t = j(t)).year || 0, + n = t.quarter || 0, + i = t.month || 0, + r = t.week || t.isoWeek || 0, + s = t.day || 0, + o = t.hour || 0, + l = t.minute || 0, + c = t.second || 0, + h = t.millisecond || 0; + this._isValid = function(t) { + var e, n, i = !1, r = Ne.length; + for (e in t) if (a(t, e) && (-1 === _t.call(Ne, e) || null != t[e] && isNaN(t[e]))) return !1; + for (n = 0; n < r; ++n) { + if (t[Ne[n]]) { + if (i) return !1; + parseFloat(t[Ne[n]]) !== q(t[Ne[n]]) && (i = !0); + } + } + return !0; + }(t), + this._milliseconds = +h + 1e3 * c + 6e4 * l + 1e3 * o * 60 * 60, + this._days = +s + 7 * r, + this._months = +i + 3 * n + 12 * e, + this._data = {}, + this._locale = de(), + this._bubble(); + } + function Be(t) { + return t instanceof Me; + } + function Ie(t) { + return t < 0 ? -1 * Math.round(-1 * t) : Math.round(t); + } + function Fe(t, e) { + I(t, 0, 0, function() { + var t = this.utcOffset(), n = "+"; + return t < 0 && (t = -t, n = "-"), n + L(~~(t / 60), 2) + e + L(~~t % 60, 2); + }); + } + Fe("Z", ":"), + Fe("ZZ", ""), + dt("Z", ht), + dt("ZZ", ht), + mt(["Z", "ZZ"], function(t, e, n) { + n._useUTC = !0, n._tzm = $e(ht, t); + }); + var Re = /([\+\-]|\d\d)/gi; + function $e(t, e) { + return null === (e = (e || "").match(t)) + ? null + : 0 === (e = 60 * (t = ((e[e.length - 1] || []) + "").match(Re) || ["-", 0, 0])[1] + q(t[2])) + ? 0 + : "+" === t[0] + ? e + : -e; + } + function Pe(t, e) { + var i; + return e._isUTC + ? (e = e.clone(), + i = (v(t) || c(t) ? t : Le(t)).valueOf() - e.valueOf(), + e._d.setTime(e._d.valueOf() + i), + n.updateOffset(e, !1), + e) + : Le(t).local(); + } + function Ye(t) { + return -Math.round(t._d.getTimezoneOffset()); + } + function je() { + return !!this.isValid() && this._isUTC && 0 === this._offset; + } + n.updateOffset = function() {}; + var ze = /^(-|\+)?(?:(\d*)[. ])?(\d+):(\d+)(?::(\d+)(\.\d*)?)?$/, + Ue = + /^(-|\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/; + function We(t, e) { + var n, i = t, r = null; + return Be(t) + ? i = { ms: t._milliseconds, d: t._days, M: t._months } + : l(t) || !isNaN(+t) + ? (i = {}, e ? i[e] = +t : i.milliseconds = +t) + : (r = ze.exec(t)) + ? (n = "-" === r[1] ? -1 : 1, + i = { + y: 0, + d: q(r[kt]) * n, + h: q(r[wt]) * n, + m: q(r[Tt]) * n, + s: q(r[Ct]) * n, + ms: q(Ie(1e3 * r[Et])) * n, + }) + : (r = Ue.exec(t)) + ? (n = "-" === r[1] ? -1 : 1, + i = { + y: He(r[2], n), + M: He(r[3], n), + w: He(r[4], n), + d: He(r[5], n), + h: He(r[6], n), + m: He(r[7], n), + s: He(r[8], n), + }) + : null == i + ? i = {} + : "object" == typeof i && ("from" in i || "to" in i) && (e = function(t, e) { + var n; + return t.isValid() && e.isValid() + ? (e = Pe(e, t), + t.isBefore(e) ? n = qe(t, e) : ((n = qe(e, t)).milliseconds = -n.milliseconds, n.months = -n.months), + n) + : { milliseconds: 0, months: 0 }; + }(Le(i.from), Le(i.to)), + (i = {}).ms = e.milliseconds, + i.M = e.months), + r = new Me(i), + Be(t) && a(t, "_locale") && (r._locale = t._locale), + Be(t) && a(t, "_isValid") && (r._isValid = t._isValid), + r; + } + function He(t, e) { + return t = t && parseFloat(t.replace(",", ".")), (isNaN(t) ? 0 : t) * e; + } + function qe(t, e) { + var n = {}; + return n.months = e.month() - t.month() + 12 * (e.year() - t.year()), + t.clone().add(n.months, "M").isAfter(e) && --n.months, + n.milliseconds = +e - +t.clone().add(n.months, "M"), + n; + } + function Ve(t, e) { + return function(n, i) { + var r; + return null === i || isNaN(+i) + || (C( + e, + "moment()." + e + "(period, number) is deprecated. Please use moment()." + e + + "(number, period). See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info.", + ), + r = n, + n = i, + i = r), + Ge(this, We(n, i), t), + this; + }; + } + function Ge(t, e, i, r) { + var a = e._milliseconds, s = Ie(e._days); + e = Ie(e._months), + t.isValid() + && (r = null == r || r, + e && It(t, G(t, "Month") + e * i), + s && X(t, "Date", G(t, "Date") + s * i), + a && t._d.setTime(t._d.valueOf() + a * i), + r && n.updateOffset(t, s || e)); + } + function Xe(t) { + return "string" == typeof t || t instanceof String; + } + function Ze(t) { + return v(t) || c(t) || Xe(t) || l(t) || function(t) { + var e = i(t), n = !1; + return e && (n = 0 === t.filter(function(e) { + return !l(e) && Xe(t); + }).length), + e && n; + }(t) || function(t) { + var e, + n, + i = r(t) && !s(t), + o = !1, + l = [ + "years", + "year", + "y", + "months", + "month", + "M", + "days", + "day", + "d", + "dates", + "date", + "D", + "hours", + "hour", + "h", + "minutes", + "minute", + "m", + "seconds", + "second", + "s", + "milliseconds", + "millisecond", + "ms", + ], + c = l.length; + for (e = 0; e < c; e += 1) n = l[e], o = o || a(t, n); + return i && o; + }(t) || null == t; + } + function Qe(t, e) { + if (t.date() < e.date()) return -Qe(e, t); + var n = 12 * (e.year() - t.year()) + (e.month() - t.month()), i = t.clone().add(n, "months"); + return -(n + + (e = e - i < 0 + ? (e - i) / (i - t.clone().add(n - 1, "months")) + : (e - i) / (t.clone().add(1 + n, "months") - i))) || 0; + } + function Ke(t) { + return void 0 === t ? this._locale._abbr : (null != (t = de(t)) && (this._locale = t), this); + } + function Je() { + return this._locale; + } + We.fn = Me.prototype, + We.invalid = function() { + return We(NaN); + }, + Lt = Ve(1, "add"), + Vt = Ve(-1, "subtract"), + n.defaultFormat = "YYYY-MM-DDTHH:mm:ssZ", + n.defaultFormatUtc = "YYYY-MM-DDTHH:mm:ss[Z]", + Xt = w( + "moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.", + function(t) { + return void 0 === t ? this.localeData() : this.locale(t); + }, + ); + var tn, en = 126227808e5; + function nn(t, e) { + return (t % e + e) % e; + } + function rn(t, e, n) { + return t < 100 && 0 <= t ? new Date(t + 400, e, n) - en : new Date(t, e, n).valueOf(); + } + function an(t, e, n) { + return t < 100 && 0 <= t ? Date.UTC(t + 400, e, n) - en : Date.UTC(t, e, n); + } + function sn(t, e) { + return e.erasAbbrRegex(t); + } + function on() { + for (var t = [], e = [], n = [], i = [], r = this.eras(), a = 0, s = r.length; a < s; ++a) { + e.push(ft(r[a].name)), + t.push(ft(r[a].abbr)), + n.push(ft(r[a].narrow)), + i.push(ft(r[a].name)), + i.push(ft(r[a].abbr)), + i.push(ft(r[a].narrow)); + } + this._erasRegex = new RegExp("^(" + i.join("|") + ")", "i"), + this._erasNameRegex = new RegExp("^(" + e.join("|") + ")", "i"), + this._erasAbbrRegex = new RegExp("^(" + t.join("|") + ")", "i"), + this._erasNarrowRegex = new RegExp("^(" + n.join("|") + ")", "i"); + } + function ln(t, e) { + I(0, [t, t.length], 0, e); + } + function cn(t, e, n, i, r) { + var a; + return null == t ? Wt(this, i, r).year : (a = Ht(t, i, r), + function(t, e, n, i, r) { + return e = jt((t = Ut(t, e, n, i, r)).year, 0, t.dayOfYear), + this.year(e.getUTCFullYear()), + this.month(e.getUTCMonth()), + this.date(e.getUTCDate()), + this; + }.call(this, t, e = a < e ? a : e, n, i, r)); + } + for ( + I("N", 0, 0, "eraAbbr"), + I("NN", 0, 0, "eraAbbr"), + I("NNN", 0, 0, "eraAbbr"), + I("NNNN", 0, 0, "eraName"), + I("NNNNN", 0, 0, "eraNarrow"), + I("y", ["y", 1], "yo", "eraYear"), + I("y", ["yy", 2], 0, "eraYear"), + I("y", ["yyy", 3], 0, "eraYear"), + I("y", ["yyyy", 4], 0, "eraYear"), + dt("N", sn), + dt("NN", sn), + dt("NNN", sn), + dt("NNNN", function(t, e) { + return e.erasNameRegex(t); + }), + dt("NNNNN", function(t, e) { + return e.erasNarrowRegex(t); + }), + mt(["N", "NN", "NNN", "NNNN", "NNNNN"], function(t, e, n, i) { + (i = n._locale.erasParse(t, i, n._strict)) ? p(n).era = i : p(n).invalidEra = t; + }), + dt("y", ot), + dt("yy", ot), + dt("yyy", ot), + dt("yyyy", ot), + dt("yo", function(t, e) { + return e._eraYearOrdinalRegex || ot; + }), + mt(["y", "yy", "yyy", "yyyy"], xt), + mt(["yo"], function(t, e, n, i) { + var r; + n._locale._eraYearOrdinalRegex && (r = t.match(n._locale._eraYearOrdinalRegex)), + n._locale.eraYearOrdinalParse ? e[xt] = n._locale.eraYearOrdinalParse(t, r) : e[xt] = parseInt(t, 10); + }), + I(0, ["gg", 2], 0, function() { + return this.weekYear() % 100; + }), + I(0, ["GG", 2], 0, function() { + return this.isoWeekYear() % 100; + }), + ln("gggg", "weekYear"), + ln("ggggg", "weekYear"), + ln("GGGG", "isoWeekYear"), + ln("GGGGG", "isoWeekYear"), + P("weekYear", "gg"), + P("isoWeekYear", "GG"), + U("weekYear", 1), + U("isoWeekYear", 1), + dt("G", lt), + dt("g", lt), + dt("GG", et, Q), + dt("gg", et, Q), + dt("GGGG", at, J), + dt("gggg", at, J), + dt("GGGGG", st, tt), + dt("ggggg", st, tt), + bt(["gggg", "ggggg", "GGGG", "GGGGG"], function(t, e, n, i) { + e[i.substr(0, 2)] = q(t); + }), + bt(["gg", "GG"], function(t, e, i, r) { + e[r] = n.parseTwoDigitYear(t); + }), + I("Q", 0, "Qo", "quarter"), + P("quarter", "Q"), + U("quarter", 7), + dt("Q", Z), + mt("Q", function(t, e) { + e[vt] = 3 * (q(t) - 1); + }), + I("D", ["DD", 2], "Do", "date"), + P("date", "D"), + U("date", 9), + dt("D", et), + dt("DD", et, Q), + dt("Do", function(t, e) { + return t ? e._dayOfMonthOrdinalParse || e._ordinalParse : e._dayOfMonthOrdinalParseLenient; + }), + mt(["D", "DD"], kt), + mt("Do", function(t, e) { + e[kt] = q(t.match(et)[0]); + }), + at = V("Date", !0), + I("DDD", ["DDDD", 3], "DDDo", "dayOfYear"), + P("dayOfYear", "DDD"), + U("dayOfYear", 4), + dt("DDD", rt), + dt("DDDD", K), + mt(["DDD", "DDDD"], function(t, e, n) { + n._dayOfYear = q(t); + }), + I("m", ["mm", 2], 0, "minute"), + P("minute", "m"), + U("minute", 14), + dt("m", et), + dt("mm", et, Q), + mt(["m", "mm"], Tt), + J = V("Minutes", !1), + I("s", ["ss", 2], 0, "second"), + P("second", "s"), + U("second", 15), + dt("s", et), + dt("ss", et, Q), + mt(["s", "ss"], Ct), + st = V("Seconds", !1), + I("S", 0, 0, function() { + return ~~(this.millisecond() / 100); + }), + I(0, ["SS", 2], 0, function() { + return ~~(this.millisecond() / 10); + }), + I(0, ["SSS", 3], 0, "millisecond"), + I(0, ["SSSS", 4], 0, function() { + return 10 * this.millisecond(); + }), + I(0, ["SSSSS", 5], 0, function() { + return 100 * this.millisecond(); + }), + I(0, ["SSSSSS", 6], 0, function() { + return 1e3 * this.millisecond(); + }), + I(0, ["SSSSSSS", 7], 0, function() { + return 1e4 * this.millisecond(); + }), + I(0, ["SSSSSSSS", 8], 0, function() { + return 1e5 * this.millisecond(); + }), + I(0, ["SSSSSSSSS", 9], 0, function() { + return 1e6 * this.millisecond(); + }), + P("millisecond", "ms"), + U("millisecond", 16), + dt("S", rt, Z), + dt("SS", rt, Q), + dt("SSS", rt, K), + tn = "SSSS"; + tn.length <= 9; + tn += "S" + ) dt(tn, ot); + function hn(t, e) { + e[Et] = q(1e3 * ("0." + t)); + } + for (tn = "S"; tn.length <= 9; tn += "S") mt(tn, hn); + function un(t) { + return t; + } + function dn(t, e, n, i) { + var r = de(); + return i = d().set(i, e), r[n](i, t); + } + function pn(t, e, n) { + if (l(t) && (e = t, t = void 0), t = t || "", null != e) return dn(t, e, n, "month"); + for (var i = [], r = 0; r < 12; r++) i[r] = dn(t, r, n, "month"); + return i; + } + function fn(t, e, n, i) { + "boolean" == typeof t ? l(e) && (n = e, e = void 0) : (e = t, t = !1, l(n = e) && (n = e, e = void 0)), + e = e || ""; + var r, a = de(), s = t ? a._week.dow : 0, o = []; + if (null != n) return dn(e, (n + s) % 7, i, "day"); + for (r = 0; r < 7; r++) o[r] = dn(e, (r + s) % 7, i, "day"); + return o; + } + tt = V("Milliseconds", !1), + I("z", 0, 0, "zoneAbbr"), + I("zz", 0, 0, "zoneName"), + (Z = x.prototype).add = Lt, + Z.calendar = function(t, e) { + 1 === arguments.length && (arguments[0] + ? Ze(arguments[0]) ? (t = arguments[0], e = void 0) : function(t) { + for ( + var e = r(t) && !s(t), + n = !1, + i = ["sameDay", "nextDay", "lastDay", "nextWeek", "lastWeek", "sameElse"], + o = 0; + o < i.length; + o += 1 + ) n = n || a(t, i[o]); + return e && n; + }(arguments[0]) && (e = arguments[0], t = void 0) + : e = t = void 0); + var i = Pe(t = t || Le(), this).startOf("day"); + return i = n.calendarFormat(this, i) || "sameElse", + e = e && (E(e[i]) ? e[i].call(this, t) : e[i]), + this.format(e || this.localeData().calendar(i, this, Le(t))); + }, + Z.clone = function() { + return new x(this); + }, + Z.diff = function(t, e, n) { + var i, r, a; + if (!this.isValid()) return NaN; + if (!(i = Pe(t, this)).isValid()) return NaN; + switch (r = 6e4 * (i.utcOffset() - this.utcOffset()), e = Y(e)) { + case "year": + a = Qe(this, i) / 12; + break; + case "month": + a = Qe(this, i); + break; + case "quarter": + a = Qe(this, i) / 3; + break; + case "second": + a = (this - i) / 1e3; + break; + case "minute": + a = (this - i) / 6e4; + break; + case "hour": + a = (this - i) / 36e5; + break; + case "day": + a = (this - i - r) / 864e5; + break; + case "week": + a = (this - i - r) / 6048e5; + break; + default: + a = this - i; + } + return n ? a : H(a); + }, + Z.endOf = function(t) { + var e, i; + if (void 0 === (t = Y(t)) || "millisecond" === t || !this.isValid()) return this; + switch (i = this._isUTC ? an : rn, t) { + case "year": + e = i(this.year() + 1, 0, 1) - 1; + break; + case "quarter": + e = i(this.year(), this.month() - this.month() % 3 + 3, 1) - 1; + break; + case "month": + e = i(this.year(), this.month() + 1, 1) - 1; + break; + case "week": + e = i(this.year(), this.month(), this.date() - this.weekday() + 7) - 1; + break; + case "isoWeek": + e = i(this.year(), this.month(), this.date() - (this.isoWeekday() - 1) + 7) - 1; + break; + case "day": + case "date": + e = i(this.year(), this.month(), this.date() + 1) - 1; + break; + case "hour": + e = this._d.valueOf(), e += 36e5 - nn(e + (this._isUTC ? 0 : 6e4 * this.utcOffset()), 36e5) - 1; + break; + case "minute": + e = this._d.valueOf(), e += 6e4 - nn(e, 6e4) - 1; + break; + case "second": + e = this._d.valueOf(), e += 1e3 - nn(e, 1e3) - 1; + } + return this._d.setTime(e), n.updateOffset(this, !0), this; + }, + Z.format = function(t) { + return t = F(this, t = t || (this.isUtc() ? n.defaultFormatUtc : n.defaultFormat)), + this.localeData().postformat(t); + }, + Z.from = function(t, e) { + return this.isValid() && (v(t) && t.isValid() || Le(t).isValid()) + ? We({ to: this, from: t }).locale(this.locale()).humanize(!e) + : this.localeData().invalidDate(); + }, + Z.fromNow = function(t) { + return this.from(Le(), t); + }, + Z.to = function(t, e) { + return this.isValid() && (v(t) && t.isValid() || Le(t).isValid()) + ? We({ from: this, to: t }).locale(this.locale()).humanize(!e) + : this.localeData().invalidDate(); + }, + Z.toNow = function(t) { + return this.to(Le(), t); + }, + Z.get = function(t) { + return E(this[t = Y(t)]) ? this[t]() : this; + }, + Z.invalidAt = function() { + return p(this).overflow; + }, + Z.isAfter = function(t, e) { + return t = v(t) ? t : Le(t), + !(!this.isValid() || !t.isValid()) + && ("millisecond" === (e = Y(e) || "millisecond") + ? this.valueOf() > t.valueOf() + : t.valueOf() < this.clone().startOf(e).valueOf()); + }, + Z.isBefore = function(t, e) { + return t = v(t) ? t : Le(t), + !(!this.isValid() || !t.isValid()) + && ("millisecond" === (e = Y(e) || "millisecond") + ? this.valueOf() < t.valueOf() + : this.clone().endOf(e).valueOf() < t.valueOf()); + }, + Z.isBetween = function(t, e, n, i) { + return t = v(t) ? t : Le(t), + e = v(e) ? e : Le(e), + !!(this.isValid() && t.isValid() && e.isValid()) + && ("(" === (i = i || "()")[0] ? this.isAfter(t, n) : !this.isBefore(t, n)) + && (")" === i[1] ? this.isBefore(e, n) : !this.isAfter(e, n)); + }, + Z.isSame = function(t, e) { + return t = v(t) ? t : Le(t), + !(!this.isValid() || !t.isValid()) + && ("millisecond" === (e = Y(e) || "millisecond") + ? this.valueOf() === t.valueOf() + : (t = t.valueOf(), this.clone().startOf(e).valueOf() <= t && t <= this.clone().endOf(e).valueOf())); + }, + Z.isSameOrAfter = function(t, e) { + return this.isSame(t, e) || this.isAfter(t, e); + }, + Z.isSameOrBefore = function(t, e) { + return this.isSame(t, e) || this.isBefore(t, e); + }, + Z.isValid = function() { + return f(this); + }, + Z.lang = Xt, + Z.locale = Ke, + Z.localeData = Je, + Z.max = it, + Z.min = nt, + Z.parsingFlags = function() { + return u({}, p(this)); + }, + Z.set = function(t, e) { + if ("object" == typeof t) { + for ( + var n = function(t) { + var e, n = []; + for (e in t) a(t, e) && n.push({ unit: e, priority: z[e] }); + return n.sort(function(t, e) { + return t.priority - e.priority; + }), + n; + }(t = j(t)), + i = n.length, + r = 0; + r < i; + r++ + ) this[n[r].unit](t[n[r].unit]); + } else if (E(this[t = Y(t)])) return this[t](e); + return this; + }, + Z.startOf = function(t) { + var e, i; + if (void 0 === (t = Y(t)) || "millisecond" === t || !this.isValid()) return this; + switch (i = this._isUTC ? an : rn, t) { + case "year": + e = i(this.year(), 0, 1); + break; + case "quarter": + e = i(this.year(), this.month() - this.month() % 3, 1); + break; + case "month": + e = i(this.year(), this.month(), 1); + break; + case "week": + e = i(this.year(), this.month(), this.date() - this.weekday()); + break; + case "isoWeek": + e = i(this.year(), this.month(), this.date() - (this.isoWeekday() - 1)); + break; + case "day": + case "date": + e = i(this.year(), this.month(), this.date()); + break; + case "hour": + e = this._d.valueOf(), e -= nn(e + (this._isUTC ? 0 : 6e4 * this.utcOffset()), 36e5); + break; + case "minute": + e = this._d.valueOf(), e -= nn(e, 6e4); + break; + case "second": + e = this._d.valueOf(), e -= nn(e, 1e3); + } + return this._d.setTime(e), n.updateOffset(this, !0), this; + }, + Z.subtract = Vt, + Z.toArray = function() { + var t = this; + return [t.year(), t.month(), t.date(), t.hour(), t.minute(), t.second(), t.millisecond()]; + }, + Z.toObject = function() { + var t = this; + return { + years: t.year(), + months: t.month(), + date: t.date(), + hours: t.hours(), + minutes: t.minutes(), + seconds: t.seconds(), + milliseconds: t.milliseconds(), + }; + }, + Z.toDate = function() { + return new Date(this.valueOf()); + }, + Z.toISOString = function(t) { + if (!this.isValid()) return null; + var e = (t = !0 !== t) ? this.clone().utc() : this; + return e.year() < 0 || 9999 < e.year() + ? F(e, t ? "YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]" : "YYYYYY-MM-DD[T]HH:mm:ss.SSSZ") + : E(Date.prototype.toISOString) + ? t + ? this.toDate().toISOString() + : new Date(this.valueOf() + 60 * this.utcOffset() * 1e3).toISOString().replace("Z", F(e, "Z")) + : F(e, t ? "YYYY-MM-DD[T]HH:mm:ss.SSS[Z]" : "YYYY-MM-DD[T]HH:mm:ss.SSSZ"); + }, + Z.inspect = function() { + if (!this.isValid()) return "moment.invalid(/* " + this._i + " */)"; + var t, e = "moment", n = ""; + return this.isLocal() || (e = 0 === this.utcOffset() ? "moment.utc" : "moment.parseZone", n = "Z"), + e = "[" + e + "(\"]", + t = 0 <= this.year() && this.year() <= 9999 ? "YYYY" : "YYYYYY", + this.format(e + t + "-MM-DD[T]HH:mm:ss.SSS" + n + "[\")]"); + }, + "undefined" != typeof Symbol && null != Symbol.for + && (Z[Symbol.for("nodejs.util.inspect.custom")] = function() { + return "Moment<" + this.format() + ">"; + }), + Z.toJSON = function() { + return this.isValid() ? this.toISOString() : null; + }, + Z.toString = function() { + return this.clone().locale("en").format("ddd MMM DD YYYY HH:mm:ss [GMT]ZZ"); + }, + Z.unix = function() { + return Math.floor(this.valueOf() / 1e3); + }, + Z.valueOf = function() { + return this._d.valueOf() - 6e4 * (this._offset || 0); + }, + Z.creationData = function() { + return { input: this._i, format: this._f, locale: this._locale, isUTC: this._isUTC, strict: this._strict }; + }, + Z.eraName = function() { + for (var t, e = this.localeData().eras(), n = 0, i = e.length; n < i; ++n) { + if (t = this.clone().startOf("day").valueOf(), e[n].since <= t && t <= e[n].until) return e[n].name; + if (e[n].until <= t && t <= e[n].since) return e[n].name; + } + return ""; + }, + Z.eraNarrow = function() { + for (var t, e = this.localeData().eras(), n = 0, i = e.length; n < i; ++n) { + if (t = this.clone().startOf("day").valueOf(), e[n].since <= t && t <= e[n].until) return e[n].narrow; + if (e[n].until <= t && t <= e[n].since) return e[n].narrow; + } + return ""; + }, + Z.eraAbbr = function() { + for (var t, e = this.localeData().eras(), n = 0, i = e.length; n < i; ++n) { + if (t = this.clone().startOf("day").valueOf(), e[n].since <= t && t <= e[n].until) return e[n].abbr; + if (e[n].until <= t && t <= e[n].since) return e[n].abbr; + } + return ""; + }, + Z.eraYear = function() { + for (var t, e, i = this.localeData().eras(), r = 0, a = i.length; r < a; ++r) { + if ( + t = i[r].since <= i[r].until ? 1 : -1, + e = this.clone().startOf("day").valueOf(), + i[r].since <= e && e <= i[r].until || i[r].until <= e && e <= i[r].since + ) return (this.year() - n(i[r].since).year()) * t + i[r].offset; + } + return this.year(); + }, + Z.year = Pt, + Z.isLeapYear = function() { + return W(this.year()); + }, + Z.weekYear = function(t) { + return cn.call( + this, + t, + this.week(), + this.weekday(), + this.localeData()._week.dow, + this.localeData()._week.doy, + ); + }, + Z.isoWeekYear = function(t) { + return cn.call(this, t, this.isoWeek(), this.isoWeekday(), 1, 4); + }, + Z.quarter = Z.quarters = function(t) { + return null == t ? Math.ceil((this.month() + 1) / 3) : this.month(3 * (t - 1) + this.month() % 3); + }, + Z.month = Ft, + Z.daysInMonth = function() { + return Dt(this.year(), this.month()); + }, + Z.week = Z.weeks = function(t) { + var e = this.localeData().week(this); + return null == t ? e : this.add(7 * (t - e), "d"); + }, + Z.isoWeek = Z.isoWeeks = function(t) { + var e = Wt(this, 1, 4).week; + return null == t ? e : this.add(7 * (t - e), "d"); + }, + Z.weeksInYear = function() { + var t = this.localeData()._week; + return Ht(this.year(), t.dow, t.doy); + }, + Z.weeksInWeekYear = function() { + var t = this.localeData()._week; + return Ht(this.weekYear(), t.dow, t.doy); + }, + Z.isoWeeksInYear = function() { + return Ht(this.year(), 1, 4); + }, + Z.isoWeeksInISOWeekYear = function() { + return Ht(this.isoWeekYear(), 1, 4); + }, + Z.date = at, + Z.day = Z.days = function(t) { + if (!this.isValid()) return null != t ? this : NaN; + var e, n, i = this._isUTC ? this._d.getUTCDay() : this._d.getDay(); + return null != t + ? (e = t, + n = this.localeData(), + t = "string" != typeof e + ? e + : isNaN(e) + ? "number" == typeof (e = n.weekdaysParse(e)) ? e : null + : parseInt(e, 10), + this.add(t - i, "d")) + : i; + }, + Z.weekday = function(t) { + if (!this.isValid()) return null != t ? this : NaN; + var e = (this.day() + 7 - this.localeData()._week.dow) % 7; + return null == t ? e : this.add(t - e, "d"); + }, + Z.isoWeekday = function(t) { + return this.isValid() + ? null != t + ? (e = t, + n = this.localeData(), + n = "string" == typeof e ? n.weekdaysParse(e) % 7 || 7 : isNaN(e) ? null : e, + this.day(this.day() % 7 ? n : n - 7)) + : this.day() || 7 + : null != t + ? this + : NaN; + var e, n; + }, + Z.dayOfYear = function(t) { + var e = Math.round((this.clone().startOf("day") - this.clone().startOf("year")) / 864e5) + 1; + return null == t ? e : this.add(t - e, "d"); + }, + Z.hour = Z.hours = ut, + Z.minute = Z.minutes = J, + Z.second = Z.seconds = st, + Z.millisecond = Z.milliseconds = tt, + Z.utcOffset = function(t, e, i) { + var r, a = this._offset || 0; + if (!this.isValid()) return null != t ? this : NaN; + if (null == t) return this._isUTC ? a : Ye(this); + if ("string" == typeof t) { + if (null === (t = $e(ht, t))) return this; + else Math.abs(t) < 16 && !i && (t *= 60); + } + return !this._isUTC && e && (r = Ye(this)), + this._offset = t, + this._isUTC = !0, + null != r && this.add(r, "m"), + a !== t + && (!e || this._changeInProgress + ? Ge(this, We(t - a, "m"), 1, !1) + : this._changeInProgress + || (this._changeInProgress = !0, n.updateOffset(this, !0), this._changeInProgress = null)), + this; + }, + Z.utc = function(t) { + return this.utcOffset(0, t); + }, + Z.local = function(t) { + return this._isUTC && (this.utcOffset(0, t), this._isUTC = !1, t && this.subtract(Ye(this), "m")), this; + }, + Z.parseZone = function() { + var t; + return null != this._tzm + ? this.utcOffset(this._tzm, !1, !0) + : "string" == typeof this._i && (null != (t = $e(ct, this._i)) ? this.utcOffset(t) : this.utcOffset(0, !0)), + this; + }, + Z.hasAlignedHourOffset = function(t) { + return !!this.isValid() && (t = t ? Le(t).utcOffset() : 0, (this.utcOffset() - t) % 60 == 0); + }, + Z.isDST = function() { + return this.utcOffset() > this.clone().month(0).utcOffset() + || this.utcOffset() > this.clone().month(5).utcOffset(); + }, + Z.isLocal = function() { + return !!this.isValid() && !this._isUTC; + }, + Z.isUtcOffset = function() { + return !!this.isValid() && this._isUTC; + }, + Z.isUtc = je, + Z.isUTC = je, + Z.zoneAbbr = function() { + return this._isUTC ? "UTC" : ""; + }, + Z.zoneName = function() { + return this._isUTC ? "Coordinated Universal Time" : ""; + }, + Z.dates = w("dates accessor is deprecated. Use date instead.", at), + Z.months = w("months accessor is deprecated. Use month instead", Ft), + Z.years = w("years accessor is deprecated. Use year instead", Pt), + Z.zone = w( + "moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/", + function(t, e) { + return null != t ? (this.utcOffset(t = "string" != typeof t ? -t : t, e), this) : -this.utcOffset(); + }, + ), + Z.isDSTShifted = w( + "isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information", + function() { + if (!o(this._isDSTShifted)) return this._isDSTShifted; + var t, e = {}; + return _(e, this), + (e = Ae(e))._a + ? (t = (e._isUTC ? d : Le)(e._a), + this._isDSTShifted = this.isValid() && 0 < function(t, e, n) { + for ( + var i = Math.min(t.length, e.length), r = Math.abs(t.length - e.length), a = 0, s = 0; + s < i; + s++ + ) (n && t[s] !== e[s] || !n && q(t[s]) !== q(e[s])) && a++; + return a + r; + }(e._a, t.toArray())) + : this._isDSTShifted = !1, + this._isDSTShifted; + }, + ), + (Q = A.prototype).calendar = function(t, e, n) { + return E(t = this._calendar[t] || this._calendar.sameElse) ? t.call(e, n) : t; + }, + Q.longDateFormat = function(t) { + var e = this._longDateFormat[t], n = this._longDateFormat[t.toUpperCase()]; + return e || !n ? e : (this._longDateFormat[t] = n.match(O).map(function(t) { + return "MMMM" === t || "MM" === t || "DD" === t || "dddd" === t ? t.slice(1) : t; + }).join(""), + this._longDateFormat[t]); + }, + Q.invalidDate = function() { + return this._invalidDate; + }, + Q.ordinal = function(t) { + return this._ordinal.replace("%d", t); + }, + Q.preparse = un, + Q.postformat = un, + Q.relativeTime = function(t, e, n, i) { + var r = this._relativeTime[n]; + return E(r) ? r(t, e, n, i) : r.replace(/%d/i, t); + }, + Q.pastFuture = function(t, e) { + return E(t = this._relativeTime[0 < t ? "future" : "past"]) ? t(e) : t.replace(/%s/i, e); + }, + Q.set = function(t) { + var e, n; + for (n in t) a(t, n) && (E(e = t[n]) ? this[n] = e : this["_" + n] = e); + this._config = t, + this._dayOfMonthOrdinalParseLenient = new RegExp( + (this._dayOfMonthOrdinalParse.source || this._ordinalParse.source) + "|" + /\d{1,2}/.source, + ); + }, + Q.eras = function(t, e) { + for (var i, r = this._eras || de("en")._eras, a = 0, s = r.length; a < s; ++a) { + switch ( + "string" == typeof r[a].since && (i = n(r[a].since).startOf("day"), r[a].since = i.valueOf()), + typeof r[a].until + ) { + case "undefined": + r[a].until = 1 / 0; + break; + case "string": + i = n(r[a].until).startOf("day").valueOf(), r[a].until = i.valueOf(); + } + } + return r; + }, + Q.erasParse = function(t, e, n) { + var i, r, a, s, o, l = this.eras(); + for (t = t.toUpperCase(), i = 0, r = l.length; i < r; ++i) { + if (a = l[i].name.toUpperCase(), s = l[i].abbr.toUpperCase(), o = l[i].narrow.toUpperCase(), n) { + switch (e) { + case "N": + case "NN": + case "NNN": + if (s === t) return l[i]; + break; + case "NNNN": + if (a === t) return l[i]; + break; + case "NNNNN": + if (o === t) return l[i]; + } + } else if (0 <= [a, s, o].indexOf(t)) return l[i]; + } + }, + Q.erasConvertYear = function(t, e) { + var i = t.since <= t.until ? 1 : -1; + return void 0 === e ? n(t.since).year() : n(t.since).year() + (e - t.offset) * i; + }, + Q.erasAbbrRegex = function(t) { + return a(this, "_erasAbbrRegex") || on.call(this), t ? this._erasAbbrRegex : this._erasRegex; + }, + Q.erasNameRegex = function(t) { + return a(this, "_erasNameRegex") || on.call(this), t ? this._erasNameRegex : this._erasRegex; + }, + Q.erasNarrowRegex = function(t) { + return a(this, "_erasNarrowRegex") || on.call(this), t ? this._erasNarrowRegex : this._erasRegex; + }, + Q.months = function(t, e) { + return t + ? (i(this._months) + ? this._months + : this._months[(this._months.isFormat || Nt).test(e) ? "format" : "standalone"])[t.month()] + : i(this._months) + ? this._months + : this._months.standalone; + }, + Q.monthsShort = function(t, e) { + return t + ? (i(this._monthsShort) ? this._monthsShort : this._monthsShort[Nt.test(e) ? "format" : "standalone"])[ + t.month() + ] + : i(this._monthsShort) + ? this._monthsShort + : this._monthsShort.standalone; + }, + Q.monthsParse = function(t, e, n) { + var i, r; + if (this._monthsParseExact) { + return function(t, e, n) { + var i, r, a; + if (t = t.toLocaleLowerCase(), !this._monthsParse) { + for ( + this._monthsParse = [], this._longMonthsParse = [], this._shortMonthsParse = [], i = 0; + i < 12; + ++i + ) { + a = d([2e3, i]), + this._shortMonthsParse[i] = this.monthsShort(a, "").toLocaleLowerCase(), + this._longMonthsParse[i] = this.months(a, "").toLocaleLowerCase(); + } + } + return n + ? "MMM" === e + ? -1 !== (r = _t.call(this._shortMonthsParse, t)) ? r : null + : -1 !== (r = _t.call(this._longMonthsParse, t)) + ? r + : null + : "MMM" === e + ? -1 !== (r = _t.call(this._shortMonthsParse, t)) || -1 !== (r = _t.call(this._longMonthsParse, t)) + ? r + : null + : -1 !== (r = _t.call(this._longMonthsParse, t)) || -1 !== (r = _t.call(this._shortMonthsParse, t)) + ? r + : null; + }.call(this, t, e, n); + } + for ( + this._monthsParse || (this._monthsParse = [], this._longMonthsParse = [], this._shortMonthsParse = []), + i = 0; + i < 12; + i++ + ) { + if ( + r = d([2e3, i]), + n && !this._longMonthsParse[i] + && (this._longMonthsParse[i] = new RegExp("^" + this.months(r, "").replace(".", "") + "$", "i"), + this._shortMonthsParse[i] = new RegExp("^" + this.monthsShort(r, "").replace(".", "") + "$", "i")), + n || this._monthsParse[i] + || (r = "^" + this.months(r, "") + "|^" + this.monthsShort(r, ""), + this._monthsParse[i] = new RegExp(r.replace(".", ""), "i")), + n && "MMMM" === e && this._longMonthsParse[i].test(t) + ) return i; + if (n && "MMM" === e && this._shortMonthsParse[i].test(t)) return i; + if (!n && this._monthsParse[i].test(t)) return i; + } + }, + Q.monthsRegex = function(t) { + return this._monthsParseExact + ? (a(this, "_monthsRegex") || Rt.call(this), t ? this._monthsStrictRegex : this._monthsRegex) + : (a(this, "_monthsRegex") || (this._monthsRegex = Bt), + this._monthsStrictRegex && t ? this._monthsStrictRegex : this._monthsRegex); + }, + Q.monthsShortRegex = function(t) { + return this._monthsParseExact + ? (a(this, "_monthsRegex") || Rt.call(this), t ? this._monthsShortStrictRegex : this._monthsShortRegex) + : (a(this, "_monthsShortRegex") || (this._monthsShortRegex = Mt), + this._monthsShortStrictRegex && t ? this._monthsShortStrictRegex : this._monthsShortRegex); + }, + Q.week = function(t) { + return Wt(t, this._week.dow, this._week.doy).week; + }, + Q.firstDayOfYear = function() { + return this._week.doy; + }, + Q.firstDayOfWeek = function() { + return this._week.dow; + }, + Q.weekdays = function(t, e) { + return e = i(this._weekdays) + ? this._weekdays + : this._weekdays[t && !0 !== t && this._weekdays.isFormat.test(e) ? "format" : "standalone"], + !0 === t ? qt(e, this._week.dow) : t ? e[t.day()] : e; + }, + Q.weekdaysMin = function(t) { + return !0 === t ? qt(this._weekdaysMin, this._week.dow) : t ? this._weekdaysMin[t.day()] : this._weekdaysMin; + }, + Q.weekdaysShort = function(t) { + return !0 === t + ? qt(this._weekdaysShort, this._week.dow) + : t + ? this._weekdaysShort[t.day()] + : this._weekdaysShort; + }, + Q.weekdaysParse = function(t, e, n) { + var i, r; + if (this._weekdaysParseExact) { + return function(t, e, n) { + var i, r, a; + if (t = t.toLocaleLowerCase(), !this._weekdaysParse) { + for ( + this._weekdaysParse = [], this._shortWeekdaysParse = [], this._minWeekdaysParse = [], i = 0; + i < 7; + ++i + ) { + a = d([2e3, 1]).day(i), + this._minWeekdaysParse[i] = this.weekdaysMin(a, "").toLocaleLowerCase(), + this._shortWeekdaysParse[i] = this.weekdaysShort(a, "").toLocaleLowerCase(), + this._weekdaysParse[i] = this.weekdays(a, "").toLocaleLowerCase(); + } + } + return n + ? "dddd" === e + ? -1 !== (r = _t.call(this._weekdaysParse, t)) ? r : null + : "ddd" === e + ? -1 !== (r = _t.call(this._shortWeekdaysParse, t)) ? r : null + : -1 !== (r = _t.call(this._minWeekdaysParse, t)) + ? r + : null + : "dddd" === e + ? -1 !== (r = _t.call(this._weekdaysParse, t)) || -1 !== (r = _t.call(this._shortWeekdaysParse, t)) + || -1 !== (r = _t.call(this._minWeekdaysParse, t)) + ? r + : null + : "ddd" === e + ? -1 !== (r = _t.call(this._shortWeekdaysParse, t)) || -1 !== (r = _t.call(this._weekdaysParse, t)) + || -1 !== (r = _t.call(this._minWeekdaysParse, t)) + ? r + : null + : -1 !== (r = _t.call(this._minWeekdaysParse, t)) || -1 !== (r = _t.call(this._weekdaysParse, t)) + || -1 !== (r = _t.call(this._shortWeekdaysParse, t)) + ? r + : null; + }.call(this, t, e, n); + } + for ( + this._weekdaysParse + || (this._weekdaysParse = [], + this._minWeekdaysParse = [], + this._shortWeekdaysParse = [], + this._fullWeekdaysParse = []), i = 0; + i < 7; + i++ + ) { + if ( + r = d([2e3, 1]).day(i), + n && !this._fullWeekdaysParse[i] + && (this._fullWeekdaysParse[i] = new RegExp("^" + this.weekdays(r, "").replace(".", "\\.?") + "$", "i"), + this._shortWeekdaysParse[i] = new RegExp( + "^" + this.weekdaysShort(r, "").replace(".", "\\.?") + "$", + "i", + ), + this._minWeekdaysParse[i] = new RegExp( + "^" + this.weekdaysMin(r, "").replace(".", "\\.?") + "$", + "i", + )), + this._weekdaysParse[i] + || (r = "^" + this.weekdays(r, "") + "|^" + this.weekdaysShort(r, "") + "|^" + this.weekdaysMin(r, ""), + this._weekdaysParse[i] = new RegExp(r.replace(".", ""), "i")), + n && "dddd" === e && this._fullWeekdaysParse[i].test(t) + ) return i; + if (n && "ddd" === e && this._shortWeekdaysParse[i].test(t)) return i; + if (n && "dd" === e && this._minWeekdaysParse[i].test(t)) return i; + if (!n && this._weekdaysParse[i].test(t)) return i; + } + }, + Q.weekdaysRegex = function(t) { + return this._weekdaysParseExact + ? (a(this, "_weekdaysRegex") || Jt.call(this), t ? this._weekdaysStrictRegex : this._weekdaysRegex) + : (a(this, "_weekdaysRegex") || (this._weekdaysRegex = Zt), + this._weekdaysStrictRegex && t ? this._weekdaysStrictRegex : this._weekdaysRegex); + }, + Q.weekdaysShortRegex = function(t) { + return this._weekdaysParseExact + ? (a(this, "_weekdaysRegex") || Jt.call(this), + t ? this._weekdaysShortStrictRegex : this._weekdaysShortRegex) + : (a(this, "_weekdaysShortRegex") || (this._weekdaysShortRegex = Qt), + this._weekdaysShortStrictRegex && t ? this._weekdaysShortStrictRegex : this._weekdaysShortRegex); + }, + Q.weekdaysMinRegex = function(t) { + return this._weekdaysParseExact + ? (a(this, "_weekdaysRegex") || Jt.call(this), t ? this._weekdaysMinStrictRegex : this._weekdaysMinRegex) + : (a(this, "_weekdaysMinRegex") || (this._weekdaysMinRegex = Kt), + this._weekdaysMinStrictRegex && t ? this._weekdaysMinStrictRegex : this._weekdaysMinRegex); + }, + Q.isPM = function(t) { + return "p" === (t + "").toLowerCase().charAt(0); + }, + Q.meridiem = function(t, e, n) { + return 11 < t ? n ? "pm" : "PM" : n ? "am" : "AM"; + }, + he("en", { + eras: [{ since: "0001-01-01", until: 1 / 0, offset: 1, name: "Anno Domini", narrow: "AD", abbr: "AD" }, { + since: "0000-12-31", + until: -1 / 0, + offset: 1, + name: "Before Christ", + narrow: "BC", + abbr: "BC", + }], + dayOfMonthOrdinalParse: /\d{1,2}(th|st|nd|rd)/, + ordinal: function(t) { + var e = t % 10; + return t + (1 === q(t % 100 / 10) ? "th" : 1 == e ? "st" : 2 == e ? "nd" : 3 == e ? "rd" : "th"); + }, + }), + n.lang = w("moment.lang is deprecated. Use moment.locale instead.", he), + n.langData = w("moment.langData is deprecated. Use moment.localeData instead.", de); + var gn = Math.abs; + function yn(t, e, n, i) { + return e = We(e, n), + t._milliseconds += i * e._milliseconds, + t._days += i * e._days, + t._months += i * e._months, + t._bubble(); + } + function mn(t) { + return t < 0 ? Math.floor(t) : Math.ceil(t); + } + function bn(t) { + return 4800 * t / 146097; + } + function _n(t) { + return 146097 * t / 4800; + } + function xn(t) { + return function() { + return this.as(t); + }; + } + function vn(t) { + return function() { + return this.isValid() ? this._data[t] : NaN; + }; + } + rt = xn("ms"), + K = xn("s"), + Lt = xn("m"), + it = xn("h"), + nt = xn("d"), + Vt = xn("w"), + ut = xn("M"), + J = xn("Q"), + st = xn("y"), + tt = vn("milliseconds"), + at = vn("seconds"), + Pt = vn("minutes"), + Q = vn("hours"); + var kn = vn("days"), + wn = vn("months"), + Tn = vn("years"), + Cn = Math.round, + En = { ss: 44, s: 45, m: 45, h: 22, d: 26, w: null, M: 11 }; + function Sn(t, e, n, i) { + var r = We(t).abs(), + a = Cn(r.as("s")), + s = Cn(r.as("m")), + o = Cn(r.as("h")), + l = Cn(r.as("d")), + c = Cn(r.as("M")), + h = Cn(r.as("w")); + return r = Cn(r.as("y")), + a = (a <= n.ss ? ["s", a] : a < n.s && ["ss", a]) || s <= 1 && ["m"] || s < n.m && ["mm", s] + || o <= 1 && ["h"] || o < n.h && ["hh", o] || l <= 1 && ["d"] || l < n.d && ["dd", l], + (a = (a = null != n.w ? a || h <= 1 && ["w"] || h < n.w && ["ww", h] : a) || c <= 1 && ["M"] + || c < n.M && ["MM", c] || r <= 1 && ["y"] || ["yy", r])[2] = e, + a[3] = 0 < +t, + a[4] = i, + function(t, e, n, i, r) { + return r.relativeTime(e || 1, !!n, t, i); + }.apply(null, a); + } + var An = Math.abs; + function Dn(t) { + return (0 < t) - (t < 0) || +t; + } + function Ln() { + if (!this.isValid()) return this.localeData().invalidDate(); + var t, + e, + n, + i, + r, + a, + s, + o = An(this._milliseconds) / 1e3, + l = An(this._days), + c = An(this._months), + h = this.asSeconds(); + return h + ? (t = H(o / 60), + e = H(t / 60), + o %= 60, + t %= 60, + n = H(c / 12), + c %= 12, + i = o ? o.toFixed(3).replace(/\.?0+$/, "") : "", + r = Dn(this._months) !== Dn(h) ? "-" : "", + a = Dn(this._days) !== Dn(h) ? "-" : "", + s = Dn(this._milliseconds) !== Dn(h) ? "-" : "", + (h < 0 ? "-" : "") + "P" + (n ? r + n + "Y" : "") + (c ? r + c + "M" : "") + (l ? a + l + "D" : "") + + (e || t || o ? "T" : "") + (e ? s + e + "H" : "") + (t ? s + t + "M" : "") + (o ? s + i + "S" : "")) + : "P0D"; + } + var On = Me.prototype; + return On.isValid = function() { + return this._isValid; + }, + On.abs = function() { + var t = this._data; + return this._milliseconds = gn(this._milliseconds), + this._days = gn(this._days), + this._months = gn(this._months), + t.milliseconds = gn(t.milliseconds), + t.seconds = gn(t.seconds), + t.minutes = gn(t.minutes), + t.hours = gn(t.hours), + t.months = gn(t.months), + t.years = gn(t.years), + this; + }, + On.add = function(t, e) { + return yn(this, t, e, 1); + }, + On.subtract = function(t, e) { + return yn(this, t, e, -1); + }, + On.as = function(t) { + if (!this.isValid()) return NaN; + var e, n, i = this._milliseconds; + if ("month" === (t = Y(t)) || "quarter" === t || "year" === t) { + switch (e = this._days + i / 864e5, n = this._months + bn(e), t) { + case "month": + return n; + case "quarter": + return n / 3; + case "year": + return n / 12; + } + } else {switch (e = this._days + Math.round(_n(this._months)), t) { + case "week": + return e / 7 + i / 6048e5; + case "day": + return e + i / 864e5; + case "hour": + return 24 * e + i / 36e5; + case "minute": + return 1440 * e + i / 6e4; + case "second": + return 86400 * e + i / 1e3; + case "millisecond": + return Math.floor(864e5 * e) + i; + default: + throw new Error("Unknown unit " + t); + }} + }, + On.asMilliseconds = rt, + On.asSeconds = K, + On.asMinutes = Lt, + On.asHours = it, + On.asDays = nt, + On.asWeeks = Vt, + On.asMonths = ut, + On.asQuarters = J, + On.asYears = st, + On.valueOf = function() { + return this.isValid() + ? this._milliseconds + 864e5 * this._days + this._months % 12 * 2592e6 + 31536e6 * q(this._months / 12) + : NaN; + }, + On._bubble = function() { + var t = this._milliseconds, e = this._days, n = this._months, i = this._data; + return 0 <= t && 0 <= e && 0 <= n || t <= 0 && e <= 0 && n <= 0 || (t += 864e5 * mn(_n(n) + e), n = e = 0), + i.milliseconds = t % 1e3, + t = H(t / 1e3), + i.seconds = t % 60, + t = H(t / 60), + i.minutes = t % 60, + t = H(t / 60), + i.hours = t % 24, + e += H(t / 24), + n += t = H(bn(e)), + e -= mn(_n(t)), + t = H(n / 12), + n %= 12, + i.days = e, + i.months = n, + i.years = t, + this; + }, + On.clone = function() { + return We(this); + }, + On.get = function(t) { + return t = Y(t), this.isValid() ? this[t + "s"]() : NaN; + }, + On.milliseconds = tt, + On.seconds = at, + On.minutes = Pt, + On.hours = Q, + On.days = kn, + On.weeks = function() { + return H(this.days() / 7); + }, + On.months = wn, + On.years = Tn, + On.humanize = function(t, e) { + if (!this.isValid()) return this.localeData().invalidDate(); + var n = !1, i = En; + return "object" == typeof t && (e = t, t = !1), + "boolean" == typeof t && (n = t), + "object" == typeof e && (i = Object.assign({}, En, e), null != e.s && null == e.ss && (i.ss = e.s - 1)), + e = Sn(this, !n, i, t = this.localeData()), + n && (e = t.pastFuture(+this, e)), + t.postformat(e); + }, + On.toISOString = Ln, + On.toString = Ln, + On.toJSON = Ln, + On.locale = Ke, + On.localeData = Je, + On.toIsoString = w("toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)", Ln), + On.lang = Xt, + I("X", 0, 0, "unix"), + I("x", 0, 0, "valueOf"), + dt("x", lt), + dt("X", /[+-]?\d+(\.\d{1,3})?/), + mt("X", function(t, e, n) { + n._d = new Date(1e3 * parseFloat(t)); + }), + mt("x", function(t, e, n) { + n._d = new Date(q(t)); + }), + n.version = "2.29.4", + e = Le, + n.fn = Z, + n.min = function() { + return Oe("isBefore", [].slice.call(arguments, 0)); + }, + n.max = function() { + return Oe("isAfter", [].slice.call(arguments, 0)); + }, + n.now = function() { + return Date.now ? Date.now() : +new Date(); + }, + n.utc = d, + n.unix = function(t) { + return Le(1e3 * t); + }, + n.months = function(t, e) { + return pn(t, e, "months"); + }, + n.isDate = c, + n.locale = he, + n.invalid = g, + n.duration = We, + n.isMoment = v, + n.weekdays = function(t, e, n) { + return fn(t, e, n, "weekdays"); + }, + n.parseZone = function() { + return Le.apply(null, arguments).parseZone(); + }, + n.localeData = de, + n.isDuration = Be, + n.monthsShort = function(t, e) { + return pn(t, e, "monthsShort"); + }, + n.weekdaysMin = function(t, e, n) { + return fn(t, e, n, "weekdaysMin"); + }, + n.defineLocale = ue, + n.updateLocale = function(t, e) { + var n, i; + return null != e + ? (i = re, + null != ae[t] && null != ae[t].parentLocale + ? ae[t].set(S(ae[t]._config, e)) + : (e = S(i = null != (n = ce(t)) ? n._config : i, e), + null == n && (e.abbr = t), + (i = new A(e)).parentLocale = ae[t], + ae[t] = i), + he(t)) + : null != ae[t] + && (null != ae[t].parentLocale + ? (ae[t] = ae[t].parentLocale, t === he() && he(t)) + : null != ae[t] && delete ae[t]), + ae[t]; + }, + n.locales = function() { + return D(ae); + }, + n.weekdaysShort = function(t, e, n) { + return fn(t, e, n, "weekdaysShort"); + }, + n.normalizeUnits = Y, + n.relativeTimeRounding = function(t) { + return void 0 === t ? Cn : "function" == typeof t && (Cn = t, !0); + }, + n.relativeTimeThreshold = function(t, e) { + return void 0 !== En[t] && (void 0 === e ? En[t] : (En[t] = e, "s" === t && (En.ss = e - 1), !0)); + }, + n.calendarFormat = function(t, e) { + return (t = t.diff(e, "days", !0)) < -6 + ? "sameElse" + : t < -1 + ? "lastWeek" + : t < 0 + ? "lastDay" + : t < 1 + ? "sameDay" + : t < 2 + ? "nextDay" + : t < 7 + ? "nextWeek" + : "sameElse"; + }, + n.prototype = Z, + n.HTML5_FMT = { + DATETIME_LOCAL: "YYYY-MM-DDTHH:mm", + DATETIME_LOCAL_SECONDS: "YYYY-MM-DDTHH:mm:ss", + DATETIME_LOCAL_MS: "YYYY-MM-DDTHH:mm:ss.SSS", + DATE: "YYYY-MM-DD", + TIME: "HH:mm", + TIME_SECONDS: "HH:mm:ss", + TIME_MS: "HH:mm:ss.SSS", + WEEK: "GGGG-[W]WW", + MONTH: "YYYY-MM", + }, + n; + }(); + }(t); + var e = t.exports, n = {}; + Object.defineProperty(n, "__esModule", { value: !0 }); + var i = n.sanitizeUrl = void 0, + r = /^([^\w]*)(javascript|data|vbscript)/im, + a = /&#(\w+)(^\w|;)?/g, + s = /&(newline|tab);/gi, + o = /[\u0000-\u001F\u007F-\u009F\u2000-\u200D\uFEFF]/gim, + l = /^.+(:|:)/gim, + h = [".", "/"]; + function u(t, e) { + return null == t || null == e ? NaN : t < e ? -1 : t > e ? 1 : t >= e ? 0 : NaN; + } + function d(t, e) { + return null == t || null == e ? NaN : e < t ? -1 : e > t ? 1 : e >= t ? 0 : NaN; + } + function p(t) { + let e, n, i; + function r(t, i, r = 0, a = t.length) { + if (r < a) { + if (0 !== e(i, i)) return a; + do { + const e = r + a >>> 1; + n(t[e], i) < 0 ? r = e + 1 : a = e; + } while (r < a); + } + return r; + } + return 2 !== t.length + ? (e = u, n = (e, n) => u(t(e), n), i = (e, n) => t(e) - n) + : (e = t === u || t === d ? t : f, n = t, i = t), + { + left: r, + center: function(t, e, n = 0, a = t.length) { + const s = r(t, e, n, a - 1); + return s > n && i(t[s - 1], e) > -i(t[s], e) ? s - 1 : s; + }, + right: function(t, i, r = 0, a = t.length) { + if (r < a) { + if (0 !== e(i, i)) return a; + do { + const e = r + a >>> 1; + n(t[e], i) <= 0 ? r = e + 1 : a = e; + } while (r < a); + } + return r; + }, + }; + } + function f() { + return 0; + } + i = n.sanitizeUrl = function(t) { + var e = function(t) { + return t.replace(a, function(t, e) { + return String.fromCharCode(e); + }); + }(t || "").replace(s, "").replace(o, "").trim(); + if (!e) return "about:blank"; + if ( + function(t) { + return h.indexOf(t[0]) > -1; + }(e) + ) return e; + var n = e.match(l); + if (!n) return e; + var i = n[0]; + return r.test(i) ? "about:blank" : e; + }; + const g = p(u).right; + p(function(t) { + return null === t ? NaN : +t; + }).center; + var y = g; + class m extends Map { + constructor(t, e = _) { + if (super(), Object.defineProperties(this, { _intern: { value: new Map() }, _key: { value: e } }), null != t) { + for (const [e, n] of t) this.set(e, n); + } + } + get(t) { + return super.get(b(this, t)); + } + has(t) { + return super.has(b(this, t)); + } + set(t, e) { + return super.set( + function({ _intern: t, _key: e }, n) { + const i = e(n); + return t.has(i) ? t.get(i) : (t.set(i, n), n); + }(this, t), + e, + ); + } + delete(t) { + return super.delete(function({ _intern: t, _key: e }, n) { + const i = e(n); + t.has(i) && (n = t.get(i), t.delete(i)); + return n; + }(this, t)); + } + } + function b({ _intern: t, _key: e }, n) { + const i = e(n); + return t.has(i) ? t.get(i) : n; + } + function _(t) { + return null !== t && "object" == typeof t ? t.valueOf() : t; + } + const x = Math.sqrt(50), v = Math.sqrt(10), k = Math.sqrt(2); + function w(t, e, n) { + const i = (e - t) / Math.max(0, n), + r = Math.floor(Math.log10(i)), + a = i / Math.pow(10, r), + s = a >= x ? 10 : a >= v ? 5 : a >= k ? 2 : 1; + let o, l, c; + return r < 0 + ? (c = Math.pow(10, -r) / s, + o = Math.round(t * c), + l = Math.round(e * c), + o / c < t && ++o, + l / c > e && --l, + c = -c) + : (c = Math.pow(10, r) * s, o = Math.round(t / c), l = Math.round(e / c), o * c < t && ++o, l * c > e && --l), + l < o && .5 <= n && n < 2 ? w(t, e, 2 * n) : [o, l, c]; + } + function T(t, e, n) { + return w(t = +t, e = +e, n = +n)[2]; + } + function C(t, e, n) { + n = +n; + const i = (e = +e) < (t = +t), r = i ? T(e, t, n) : T(t, e, n); + return (i ? -1 : 1) * (r < 0 ? 1 / -r : r); + } + function E(t, e) { + let n; + if (void 0 === e) for (const e of t) null != e && (n < e || void 0 === n && e >= e) && (n = e); + else { + let i = -1; + for (let r of t) null != (r = e(r, ++i, t)) && (n < r || void 0 === n && r >= r) && (n = r); + } + return n; + } + function S(t, e) { + let n; + if (void 0 === e) for (const e of t) null != e && (n > e || void 0 === n && e >= e) && (n = e); + else { + let i = -1; + for (let r of t) null != (r = e(r, ++i, t)) && (n > r || void 0 === n && r >= r) && (n = r); + } + return n; + } + function A(t) { + return t; + } + var D = 1, L = 2, O = 3, N = 4, M = 1e-6; + function B(t) { + return "translate(" + t + ",0)"; + } + function I(t) { + return "translate(0," + t + ")"; + } + function F(t) { + return e => +t(e); + } + function R(t, e) { + return e = Math.max(0, t.bandwidth() - 2 * e) / 2, t.round() && (e = Math.round(e)), n => +t(n) + e; + } + function $() { + return !this.__axis; + } + function P(t, e) { + var n = [], + i = null, + r = null, + a = 6, + s = 6, + o = 3, + l = "undefined" != typeof window && window.devicePixelRatio > 1 ? 0 : .5, + c = t === D || t === N ? -1 : 1, + h = t === N || t === L ? "x" : "y", + u = t === D || t === O ? B : I; + function d(d) { + var p = null == i ? e.ticks ? e.ticks.apply(e, n) : e.domain() : i, + f = null == r ? e.tickFormat ? e.tickFormat.apply(e, n) : A : r, + g = Math.max(a, 0) + o, + y = e.range(), + m = +y[0] + l, + b = +y[y.length - 1] + l, + _ = (e.bandwidth ? R : F)(e.copy(), l), + x = d.selection ? d.selection() : d, + v = x.selectAll(".domain").data([null]), + k = x.selectAll(".tick").data(p, e).order(), + w = k.exit(), + T = k.enter().append("g").attr("class", "tick"), + C = k.select("line"), + E = k.select("text"); + v = v.merge(v.enter().insert("path", ".tick").attr("class", "domain").attr("stroke", "currentColor")), + k = k.merge(T), + C = C.merge(T.append("line").attr("stroke", "currentColor").attr(h + "2", c * a)), + E = E.merge( + T.append("text").attr("fill", "currentColor").attr(h, c * g).attr( + "dy", + t === D ? "0em" : t === O ? "0.71em" : "0.32em", + ), + ), + d !== x + && (v = v.transition(d), + k = k.transition(d), + C = C.transition(d), + E = E.transition(d), + w = w.transition(d).attr("opacity", M).attr("transform", function(t) { + return isFinite(t = _(t)) ? u(t + l) : this.getAttribute("transform"); + }), + T.attr("opacity", M).attr("transform", function(t) { + var e = this.parentNode.__axis; + return u((e && isFinite(e = e(t)) ? e : _(t)) + l); + })), + w.remove(), + v.attr( + "d", + t === N || t === L + ? s ? "M" + c * s + "," + m + "H" + l + "V" + b + "H" + c * s : "M" + l + "," + m + "V" + b + : s + ? "M" + m + "," + c * s + "V" + l + "H" + b + "V" + c * s + : "M" + m + "," + l + "H" + b, + ), + k.attr("opacity", 1).attr("transform", function(t) { + return u(_(t) + l); + }), + C.attr(h + "2", c * a), + E.attr(h, c * g).text(f), + x.filter($).attr("fill", "none").attr("font-size", 10).attr("font-family", "sans-serif").attr( + "text-anchor", + t === L ? "start" : t === N ? "end" : "middle", + ), + x.each(function() { + this.__axis = _; + }); + } + return d.scale = function(t) { + return arguments.length ? (e = t, d) : e; + }, + d.ticks = function() { + return n = Array.from(arguments), d; + }, + d.tickArguments = function(t) { + return arguments.length ? (n = null == t ? [] : Array.from(t), d) : n.slice(); + }, + d.tickValues = function(t) { + return arguments.length ? (i = null == t ? null : Array.from(t), d) : i && i.slice(); + }, + d.tickFormat = function(t) { + return arguments.length ? (r = t, d) : r; + }, + d.tickSize = function(t) { + return arguments.length ? (a = s = +t, d) : a; + }, + d.tickSizeInner = function(t) { + return arguments.length ? (a = +t, d) : a; + }, + d.tickSizeOuter = function(t) { + return arguments.length ? (s = +t, d) : s; + }, + d.tickPadding = function(t) { + return arguments.length ? (o = +t, d) : o; + }, + d.offset = function(t) { + return arguments.length ? (l = +t, d) : l; + }, + d; + } + var Y = { value: () => {} }; + function j() { + for (var t, e = 0, n = arguments.length, i = {}; e < n; ++e) { + if (!(t = arguments[e] + "") || t in i || /[\s.]/.test(t)) throw new Error("illegal type: " + t); + i[t] = []; + } + return new z(i); + } + function z(t) { + this._ = t; + } + function U(t, e) { + for (var n, i = 0, r = t.length; i < r; ++i) if ((n = t[i]).name === e) return n.value; + } + function W(t, e, n) { + for (var i = 0, r = t.length; i < r; ++i) { + if (t[i].name === e) { + t[i] = Y, t = t.slice(0, i).concat(t.slice(i + 1)); + break; + } + } + return null != n && t.push({ name: e, value: n }), t; + } + z.prototype = j.prototype = { + constructor: z, + on: function(t, e) { + var n, + i = this._, + r = function(t, e) { + return t.trim().split(/^|\s+/).map(function(t) { + var n = "", i = t.indexOf("."); + if (i >= 0 && (n = t.slice(i + 1), t = t.slice(0, i)), t && !e.hasOwnProperty(t)) { + throw new Error("unknown type: " + t); + } + return { type: t, name: n }; + }); + }(t + "", i), + a = -1, + s = r.length; + if (!(arguments.length < 2)) { + if (null != e && "function" != typeof e) throw new Error("invalid callback: " + e); + for (; ++a < s;) { + if (n = (t = r[a]).type) i[n] = W(i[n], t.name, e); + else if (null == e) for (n in i) i[n] = W(i[n], t.name, null); + } + return this; + } + for (; ++a < s;) if ((n = (t = r[a]).type) && (n = U(i[n], t.name))) return n; + }, + copy: function() { + var t = {}, e = this._; + for (var n in e) t[n] = e[n].slice(); + return new z(t); + }, + call: function(t, e) { + if ((n = arguments.length - 2) > 0) for (var n, i, r = new Array(n), a = 0; a < n; ++a) r[a] = arguments[a + 2]; + if (!this._.hasOwnProperty(t)) throw new Error("unknown type: " + t); + for (a = 0, n = (i = this._[t]).length; a < n; ++a) i[a].value.apply(e, r); + }, + apply: function(t, e, n) { + if (!this._.hasOwnProperty(t)) throw new Error("unknown type: " + t); + for (var i = this._[t], r = 0, a = i.length; r < a; ++r) i[r].value.apply(e, n); + }, + }; + var H = "http://www.w3.org/1999/xhtml", + q = { + svg: "http://www.w3.org/2000/svg", + xhtml: H, + xlink: "http://www.w3.org/1999/xlink", + xml: "http://www.w3.org/XML/1998/namespace", + xmlns: "http://www.w3.org/2000/xmlns/", + }; + function V(t) { + var e = t += "", n = e.indexOf(":"); + return n >= 0 && "xmlns" !== (e = t.slice(0, n)) && (t = t.slice(n + 1)), + q.hasOwnProperty(e) ? { space: q[e], local: t } : t; + } + function G(t) { + return function() { + var e = this.ownerDocument, n = this.namespaceURI; + return n === H && e.documentElement.namespaceURI === H ? e.createElement(t) : e.createElementNS(n, t); + }; + } + function X(t) { + return function() { + return this.ownerDocument.createElementNS(t.space, t.local); + }; + } + function Z(t) { + var e = V(t); + return (e.local ? X : G)(e); + } + function Q() {} + function K(t) { + return null == t ? Q : function() { + return this.querySelector(t); + }; + } + function J(t) { + return null == t ? [] : Array.isArray(t) ? t : Array.from(t); + } + function tt() { + return []; + } + function et(t) { + return null == t ? tt : function() { + return this.querySelectorAll(t); + }; + } + function nt(t) { + return function() { + return this.matches(t); + }; + } + function it(t) { + return function(e) { + return e.matches(t); + }; + } + var rt = Array.prototype.find; + function at() { + return this.firstElementChild; + } + var st = Array.prototype.filter; + function ot() { + return Array.from(this.children); + } + function lt(t) { + return new Array(t.length); + } + function ct(t, e) { + this.ownerDocument = t.ownerDocument, + this.namespaceURI = t.namespaceURI, + this._next = null, + this._parent = t, + this.__data__ = e; + } + function ht(t, e, n, i, r, a) { + for (var s, o = 0, l = e.length, c = a.length; o < c; ++o) { + (s = e[o]) + ? (s.__data__ = a[o], i[o] = s) + : n[o] = new ct(t, a[o]); + } + for (; o < l; ++o) (s = e[o]) && (r[o] = s); + } + function ut(t, e, n, i, r, a, s) { + var o, l, c, h = new Map(), u = e.length, d = a.length, p = new Array(u); + for (o = 0; o < u; ++o) { + (l = e[o]) && (p[o] = c = s.call(l, l.__data__, o, e) + "", h.has(c) ? r[o] = l : h.set(c, l)); + } + for (o = 0; o < d; ++o) { + c = s.call(t, a[o], o, a) + "", + (l = h.get(c)) ? (i[o] = l, l.__data__ = a[o], h.delete(c)) : n[o] = new ct(t, a[o]); + } + for (o = 0; o < u; ++o) (l = e[o]) && h.get(p[o]) === l && (r[o] = l); + } + function dt(t) { + return t.__data__; + } + function pt(t) { + return "object" == typeof t && "length" in t ? t : Array.from(t); + } + function ft(t, e) { + return t < e ? -1 : t > e ? 1 : t >= e ? 0 : NaN; + } + function gt(t) { + return function() { + this.removeAttribute(t); + }; + } + function yt(t) { + return function() { + this.removeAttributeNS(t.space, t.local); + }; + } + function mt(t, e) { + return function() { + this.setAttribute(t, e); + }; + } + function bt(t, e) { + return function() { + this.setAttributeNS(t.space, t.local, e); + }; + } + function _t(t, e) { + return function() { + var n = e.apply(this, arguments); + null == n ? this.removeAttribute(t) : this.setAttribute(t, n); + }; + } + function xt(t, e) { + return function() { + var n = e.apply(this, arguments); + null == n ? this.removeAttributeNS(t.space, t.local) : this.setAttributeNS(t.space, t.local, n); + }; + } + function vt(t) { + return t.ownerDocument && t.ownerDocument.defaultView || t.document && t || t.defaultView; + } + function kt(t) { + return function() { + this.style.removeProperty(t); + }; + } + function wt(t, e, n) { + return function() { + this.style.setProperty(t, e, n); + }; + } + function Tt(t, e, n) { + return function() { + var i = e.apply(this, arguments); + null == i ? this.style.removeProperty(t) : this.style.setProperty(t, i, n); + }; + } + function Ct(t, e) { + return t.style.getPropertyValue(e) || vt(t).getComputedStyle(t, null).getPropertyValue(e); + } + function Et(t) { + return function() { + delete this[t]; + }; + } + function St(t, e) { + return function() { + this[t] = e; + }; + } + function At(t, e) { + return function() { + var n = e.apply(this, arguments); + null == n ? delete this[t] : this[t] = n; + }; + } + function Dt(t) { + return t.trim().split(/^|\s+/); + } + function Lt(t) { + return t.classList || new Ot(t); + } + function Ot(t) { + this._node = t, this._names = Dt(t.getAttribute("class") || ""); + } + function Nt(t, e) { + for (var n = Lt(t), i = -1, r = e.length; ++i < r;) n.add(e[i]); + } + function Mt(t, e) { + for (var n = Lt(t), i = -1, r = e.length; ++i < r;) n.remove(e[i]); + } + function Bt(t) { + return function() { + Nt(this, t); + }; + } + function It(t) { + return function() { + Mt(this, t); + }; + } + function Ft(t, e) { + return function() { + (e.apply(this, arguments) ? Nt : Mt)(this, t); + }; + } + function Rt() { + this.textContent = ""; + } + function $t(t) { + return function() { + this.textContent = t; + }; + } + function Pt(t) { + return function() { + var e = t.apply(this, arguments); + this.textContent = null == e ? "" : e; + }; + } + function Yt() { + this.innerHTML = ""; + } + function jt(t) { + return function() { + this.innerHTML = t; + }; + } + function zt(t) { + return function() { + var e = t.apply(this, arguments); + this.innerHTML = null == e ? "" : e; + }; + } + function Ut() { + this.nextSibling && this.parentNode.appendChild(this); + } + function Wt() { + this.previousSibling && this.parentNode.insertBefore(this, this.parentNode.firstChild); + } + function Ht() { + return null; + } + function qt() { + var t = this.parentNode; + t && t.removeChild(this); + } + function Vt() { + var t = this.cloneNode(!1), e = this.parentNode; + return e ? e.insertBefore(t, this.nextSibling) : t; + } + function Gt() { + var t = this.cloneNode(!0), e = this.parentNode; + return e ? e.insertBefore(t, this.nextSibling) : t; + } + function Xt(t) { + return function() { + var e = this.__on; + if (e) { + for (var n, i = 0, r = -1, a = e.length; i < a; ++i) { + n = e[i], + t.type && n.type !== t.type || n.name !== t.name + ? e[++r] = n + : this.removeEventListener(n.type, n.listener, n.options); + } + ++r ? e.length = r : delete this.__on; + } + }; + } + function Zt(t, e, n) { + return function() { + var i, + r = this.__on, + a = function(t) { + return function(e) { + t.call(this, e, this.__data__); + }; + }(e); + if (r) { + for (var s = 0, o = r.length; s < o; ++s) { + if ((i = r[s]).type === t.type && i.name === t.name) { + return this.removeEventListener(i.type, i.listener, i.options), + this.addEventListener(i.type, i.listener = a, i.options = n), + void (i.value = e); + } + } + } + this.addEventListener(t.type, a, n), + i = { type: t.type, name: t.name, value: e, listener: a, options: n }, + r ? r.push(i) : this.__on = [i]; + }; + } + function Qt(t, e, n) { + var i = vt(t), r = i.CustomEvent; + "function" == typeof r + ? r = new r(e, n) + : (r = i.document.createEvent("Event"), + n ? (r.initEvent(e, n.bubbles, n.cancelable), r.detail = n.detail) : r.initEvent(e, !1, !1)), + t.dispatchEvent(r); + } + function Kt(t, e) { + return function() { + return Qt(this, t, e); + }; + } + function Jt(t, e) { + return function() { + return Qt(this, t, e.apply(this, arguments)); + }; + } + ct.prototype = { + constructor: ct, + appendChild: function(t) { + return this._parent.insertBefore(t, this._next); + }, + insertBefore: function(t, e) { + return this._parent.insertBefore(t, e); + }, + querySelector: function(t) { + return this._parent.querySelector(t); + }, + querySelectorAll: function(t) { + return this._parent.querySelectorAll(t); + }, + }, + Ot.prototype = { + add: function(t) { + this._names.indexOf(t) < 0 && (this._names.push(t), this._node.setAttribute("class", this._names.join(" "))); + }, + remove: function(t) { + var e = this._names.indexOf(t); + e >= 0 && (this._names.splice(e, 1), this._node.setAttribute("class", this._names.join(" "))); + }, + contains: function(t) { + return this._names.indexOf(t) >= 0; + }, + }; + var te = [null]; + function ee(t, e) { + this._groups = t, this._parents = e; + } + function ne() { + return new ee([[document.documentElement]], te); + } + function ie(t) { + return "string" == typeof t ? new ee([[document.querySelector(t)]], [document.documentElement]) : new ee([[t]], te); + } + function re(t) { + return "string" == typeof t + ? new ee([document.querySelectorAll(t)], [document.documentElement]) + : new ee([J(t)], te); + } + function ae(t, e, n) { + t.prototype = e.prototype = n, n.constructor = t; + } + function se(t, e) { + var n = Object.create(t.prototype); + for (var i in e) n[i] = e[i]; + return n; + } + function oe() {} + ee.prototype = ne.prototype = { + constructor: ee, + select: function(t) { + "function" != typeof t && (t = K(t)); + for (var e = this._groups, n = e.length, i = new Array(n), r = 0; r < n; ++r) { + for (var a, s, o = e[r], l = o.length, c = i[r] = new Array(l), h = 0; h < l; ++h) { + (a = o[h]) && (s = t.call(a, a.__data__, h, o)) && ("__data__" in a && (s.__data__ = a.__data__), c[h] = s); + } + } + return new ee(i, this._parents); + }, + selectAll: function(t) { + t = "function" == typeof t + ? function(t) { + return function() { + return J(t.apply(this, arguments)); + }; + }(t) + : et(t); + for (var e = this._groups, n = e.length, i = [], r = [], a = 0; a < n; ++a) { + for (var s, o = e[a], l = o.length, c = 0; c < l; ++c) { + (s = o[c]) && (i.push(t.call(s, s.__data__, c, o)), r.push(s)); + } + } + return new ee(i, r); + }, + selectChild: function(t) { + return this.select( + null == t ? at : function(t) { + return function() { + return rt.call(this.children, t); + }; + }("function" == typeof t ? t : it(t)), + ); + }, + selectChildren: function(t) { + return this.selectAll( + null == t ? ot : function(t) { + return function() { + return st.call(this.children, t); + }; + }("function" == typeof t ? t : it(t)), + ); + }, + filter: function(t) { + "function" != typeof t && (t = nt(t)); + for (var e = this._groups, n = e.length, i = new Array(n), r = 0; r < n; ++r) { + for (var a, s = e[r], o = s.length, l = i[r] = [], c = 0; c < o; ++c) { + (a = s[c]) && t.call(a, a.__data__, c, s) && l.push(a); + } + } + return new ee(i, this._parents); + }, + data: function(t, e) { + if (!arguments.length) return Array.from(this, dt); + var n = e ? ut : ht, i = this._parents, r = this._groups; + "function" != typeof t && (t = function(t) { + return function() { + return t; + }; + }(t)); + for (var a = r.length, s = new Array(a), o = new Array(a), l = new Array(a), c = 0; c < a; ++c) { + var h = i[c], + u = r[c], + d = u.length, + p = pt(t.call(h, h && h.__data__, c, i)), + f = p.length, + g = o[c] = new Array(f), + y = s[c] = new Array(f); + n(h, u, g, y, l[c] = new Array(d), p, e); + for (var m, b, _ = 0, x = 0; _ < f; ++_) { + if (m = g[_]) { + for (_ >= x && (x = _ + 1); !(b = y[x]) && ++x < f;); + m._next = b || null; + } + } + } + return (s = new ee(s, i))._enter = o, s._exit = l, s; + }, + enter: function() { + return new ee(this._enter || this._groups.map(lt), this._parents); + }, + exit: function() { + return new ee(this._exit || this._groups.map(lt), this._parents); + }, + join: function(t, e, n) { + var i = this.enter(), r = this, a = this.exit(); + return "function" == typeof t ? (i = t(i)) && (i = i.selection()) : i = i.append(t + ""), + null != e && (r = e(r)) && (r = r.selection()), + null == n ? a.remove() : n(a), + i && r ? i.merge(r).order() : r; + }, + merge: function(t) { + for ( + var e = t.selection ? t.selection() : t, + n = this._groups, + i = e._groups, + r = n.length, + a = i.length, + s = Math.min(r, a), + o = new Array(r), + l = 0; + l < s; + ++l + ) { + for (var c, h = n[l], u = i[l], d = h.length, p = o[l] = new Array(d), f = 0; f < d; ++f) { + (c = h[f] || u[f]) && (p[f] = c); + } + } + for (; l < r; ++l) o[l] = n[l]; + return new ee(o, this._parents); + }, + selection: function() { + return this; + }, + order: function() { + for (var t = this._groups, e = -1, n = t.length; ++e < n;) { + for (var i, r = t[e], a = r.length - 1, s = r[a]; --a >= 0;) { + (i = r[a]) && (s && 4 ^ i.compareDocumentPosition(s) && s.parentNode.insertBefore(i, s), s = i); + } + } + return this; + }, + sort: function(t) { + function e(e, n) { + return e && n ? t(e.__data__, n.__data__) : !e - !n; + } + t || (t = ft); + for (var n = this._groups, i = n.length, r = new Array(i), a = 0; a < i; ++a) { + for (var s, o = n[a], l = o.length, c = r[a] = new Array(l), h = 0; h < l; ++h) (s = o[h]) && (c[h] = s); + c.sort(e); + } + return new ee(r, this._parents).order(); + }, + call: function() { + var t = arguments[0]; + return arguments[0] = this, t.apply(null, arguments), this; + }, + nodes: function() { + return Array.from(this); + }, + node: function() { + for (var t = this._groups, e = 0, n = t.length; e < n; ++e) { + for (var i = t[e], r = 0, a = i.length; r < a; ++r) { + var s = i[r]; + if (s) return s; + } + } + return null; + }, + size: function() { + let t = 0; + for (const e of this) ++t; + return t; + }, + empty: function() { + return !this.node(); + }, + each: function(t) { + for (var e = this._groups, n = 0, i = e.length; n < i; ++n) { + for (var r, a = e[n], s = 0, o = a.length; s < o; ++s) { + (r = a[s]) && t.call(r, r.__data__, s, a); + } + } + return this; + }, + attr: function(t, e) { + var n = V(t); + if (arguments.length < 2) { + var i = this.node(); + return n.local ? i.getAttributeNS(n.space, n.local) : i.getAttribute(n); + } + return this.each( + (null == e ? n.local ? yt : gt : "function" == typeof e ? n.local ? xt : _t : n.local ? bt : mt)(n, e), + ); + }, + style: function(t, e, n) { + return arguments.length > 1 + ? this.each((null == e ? kt : "function" == typeof e ? Tt : wt)(t, e, null == n ? "" : n)) + : Ct(this.node(), t); + }, + property: function(t, e) { + return arguments.length > 1 + ? this.each((null == e ? Et : "function" == typeof e ? At : St)(t, e)) + : this.node()[t]; + }, + classed: function(t, e) { + var n = Dt(t + ""); + if (arguments.length < 2) { + for (var i = Lt(this.node()), r = -1, a = n.length; ++r < a;) if (!i.contains(n[r])) return !1; + return !0; + } + return this.each(("function" == typeof e ? Ft : e ? Bt : It)(n, e)); + }, + text: function(t) { + return arguments.length + ? this.each(null == t ? Rt : ("function" == typeof t ? Pt : $t)(t)) + : this.node().textContent; + }, + html: function(t) { + return arguments.length + ? this.each(null == t ? Yt : ("function" == typeof t ? zt : jt)(t)) + : this.node().innerHTML; + }, + raise: function() { + return this.each(Ut); + }, + lower: function() { + return this.each(Wt); + }, + append: function(t) { + var e = "function" == typeof t ? t : Z(t); + return this.select(function() { + return this.appendChild(e.apply(this, arguments)); + }); + }, + insert: function(t, e) { + var n = "function" == typeof t ? t : Z(t), i = null == e ? Ht : "function" == typeof e ? e : K(e); + return this.select(function() { + return this.insertBefore(n.apply(this, arguments), i.apply(this, arguments) || null); + }); + }, + remove: function() { + return this.each(qt); + }, + clone: function(t) { + return this.select(t ? Gt : Vt); + }, + datum: function(t) { + return arguments.length ? this.property("__data__", t) : this.node().__data__; + }, + on: function(t, e, n) { + var i, + r, + a = function(t) { + return t.trim().split(/^|\s+/).map(function(t) { + var e = "", n = t.indexOf("."); + return n >= 0 && (e = t.slice(n + 1), t = t.slice(0, n)), { type: t, name: e }; + }); + }(t + ""), + s = a.length; + if (!(arguments.length < 2)) { + for (o = e ? Zt : Xt, i = 0; i < s; ++i) this.each(o(a[i], e, n)); + return this; + } + var o = this.node().__on; + if (o) { + for (var l, c = 0, h = o.length; c < h; ++c) { + for (i = 0, l = o[c]; i < s; ++i) if ((r = a[i]).type === l.type && r.name === l.name) return l.value; + } + } + }, + dispatch: function(t, e) { + return this.each(("function" == typeof e ? Jt : Kt)(t, e)); + }, + [Symbol.iterator]: function*() { + for (var t = this._groups, e = 0, n = t.length; e < n; ++e) { + for (var i, r = t[e], a = 0, s = r.length; a < s; ++a) { + (i = r[a]) && (yield i); + } + } + }, + }; + var le = .7, + ce = 1 / le, + he = "\\s*([+-]?\\d+)\\s*", + ue = "\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*", + de = "\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*", + pe = /^#([0-9a-f]{3,8})$/, + fe = new RegExp(`^rgb\\(${he},${he},${he}\\)$`), + ge = new RegExp(`^rgb\\(${de},${de},${de}\\)$`), + ye = new RegExp(`^rgba\\(${he},${he},${he},${ue}\\)$`), + me = new RegExp(`^rgba\\(${de},${de},${de},${ue}\\)$`), + be = new RegExp(`^hsl\\(${ue},${de},${de}\\)$`), + _e = new RegExp(`^hsla\\(${ue},${de},${de},${ue}\\)$`), + xe = { + aliceblue: 15792383, + antiquewhite: 16444375, + aqua: 65535, + aquamarine: 8388564, + azure: 15794175, + beige: 16119260, + bisque: 16770244, + black: 0, + blanchedalmond: 16772045, + blue: 255, + blueviolet: 9055202, + brown: 10824234, + burlywood: 14596231, + cadetblue: 6266528, + chartreuse: 8388352, + chocolate: 13789470, + coral: 16744272, + cornflowerblue: 6591981, + cornsilk: 16775388, + crimson: 14423100, + cyan: 65535, + darkblue: 139, + darkcyan: 35723, + darkgoldenrod: 12092939, + darkgray: 11119017, + darkgreen: 25600, + darkgrey: 11119017, + darkkhaki: 12433259, + darkmagenta: 9109643, + darkolivegreen: 5597999, + darkorange: 16747520, + darkorchid: 10040012, + darkred: 9109504, + darksalmon: 15308410, + darkseagreen: 9419919, + darkslateblue: 4734347, + darkslategray: 3100495, + darkslategrey: 3100495, + darkturquoise: 52945, + darkviolet: 9699539, + deeppink: 16716947, + deepskyblue: 49151, + dimgray: 6908265, + dimgrey: 6908265, + dodgerblue: 2003199, + firebrick: 11674146, + floralwhite: 16775920, + forestgreen: 2263842, + fuchsia: 16711935, + gainsboro: 14474460, + ghostwhite: 16316671, + gold: 16766720, + goldenrod: 14329120, + gray: 8421504, + green: 32768, + greenyellow: 11403055, + grey: 8421504, + honeydew: 15794160, + hotpink: 16738740, + indianred: 13458524, + indigo: 4915330, + ivory: 16777200, + khaki: 15787660, + lavender: 15132410, + lavenderblush: 16773365, + lawngreen: 8190976, + lemonchiffon: 16775885, + lightblue: 11393254, + lightcoral: 15761536, + lightcyan: 14745599, + lightgoldenrodyellow: 16448210, + lightgray: 13882323, + lightgreen: 9498256, + lightgrey: 13882323, + lightpink: 16758465, + lightsalmon: 16752762, + lightseagreen: 2142890, + lightskyblue: 8900346, + lightslategray: 7833753, + lightslategrey: 7833753, + lightsteelblue: 11584734, + lightyellow: 16777184, + lime: 65280, + limegreen: 3329330, + linen: 16445670, + magenta: 16711935, + maroon: 8388608, + mediumaquamarine: 6737322, + mediumblue: 205, + mediumorchid: 12211667, + mediumpurple: 9662683, + mediumseagreen: 3978097, + mediumslateblue: 8087790, + mediumspringgreen: 64154, + mediumturquoise: 4772300, + mediumvioletred: 13047173, + midnightblue: 1644912, + mintcream: 16121850, + mistyrose: 16770273, + moccasin: 16770229, + navajowhite: 16768685, + navy: 128, + oldlace: 16643558, + olive: 8421376, + olivedrab: 7048739, + orange: 16753920, + orangered: 16729344, + orchid: 14315734, + palegoldenrod: 15657130, + palegreen: 10025880, + paleturquoise: 11529966, + palevioletred: 14381203, + papayawhip: 16773077, + peachpuff: 16767673, + peru: 13468991, + pink: 16761035, + plum: 14524637, + powderblue: 11591910, + purple: 8388736, + rebeccapurple: 6697881, + red: 16711680, + rosybrown: 12357519, + royalblue: 4286945, + saddlebrown: 9127187, + salmon: 16416882, + sandybrown: 16032864, + seagreen: 3050327, + seashell: 16774638, + sienna: 10506797, + silver: 12632256, + skyblue: 8900331, + slateblue: 6970061, + slategray: 7372944, + slategrey: 7372944, + snow: 16775930, + springgreen: 65407, + steelblue: 4620980, + tan: 13808780, + teal: 32896, + thistle: 14204888, + tomato: 16737095, + turquoise: 4251856, + violet: 15631086, + wheat: 16113331, + white: 16777215, + whitesmoke: 16119285, + yellow: 16776960, + yellowgreen: 10145074, + }; + function ve() { + return this.rgb().formatHex(); + } + function ke() { + return this.rgb().formatRgb(); + } + function we(t) { + var e, n; + return t = (t + "").trim().toLowerCase(), + (e = pe.exec(t)) + ? (n = e[1].length, + e = parseInt(e[1], 16), + 6 === n + ? Te(e) + : 3 === n + ? new Ae(e >> 8 & 15 | e >> 4 & 240, e >> 4 & 15 | 240 & e, (15 & e) << 4 | 15 & e, 1) + : 8 === n + ? Ce(e >> 24 & 255, e >> 16 & 255, e >> 8 & 255, (255 & e) / 255) + : 4 === n + ? Ce( + e >> 12 & 15 | e >> 8 & 240, + e >> 8 & 15 | e >> 4 & 240, + e >> 4 & 15 | 240 & e, + ((15 & e) << 4 | 15 & e) / 255, + ) + : null) + : (e = fe.exec(t)) + ? new Ae(e[1], e[2], e[3], 1) + : (e = ge.exec(t)) + ? new Ae(255 * e[1] / 100, 255 * e[2] / 100, 255 * e[3] / 100, 1) + : (e = ye.exec(t)) + ? Ce(e[1], e[2], e[3], e[4]) + : (e = me.exec(t)) + ? Ce(255 * e[1] / 100, 255 * e[2] / 100, 255 * e[3] / 100, e[4]) + : (e = be.exec(t)) + ? Be(e[1], e[2] / 100, e[3] / 100, 1) + : (e = _e.exec(t)) + ? Be(e[1], e[2] / 100, e[3] / 100, e[4]) + : xe.hasOwnProperty(t) + ? Te(xe[t]) + : "transparent" === t + ? new Ae(NaN, NaN, NaN, 0) + : null; + } + function Te(t) { + return new Ae(t >> 16 & 255, t >> 8 & 255, 255 & t, 1); + } + function Ce(t, e, n, i) { + return i <= 0 && (t = e = n = NaN), new Ae(t, e, n, i); + } + function Ee(t) { + return t instanceof oe || (t = we(t)), t ? new Ae((t = t.rgb()).r, t.g, t.b, t.opacity) : new Ae(); + } + function Se(t, e, n, i) { + return 1 === arguments.length ? Ee(t) : new Ae(t, e, n, null == i ? 1 : i); + } + function Ae(t, e, n, i) { + this.r = +t, this.g = +e, this.b = +n, this.opacity = +i; + } + function De() { + return `#${Me(this.r)}${Me(this.g)}${Me(this.b)}`; + } + function Le() { + const t = Oe(this.opacity); + return `${1 === t ? "rgb(" : "rgba("}${Ne(this.r)}, ${Ne(this.g)}, ${Ne(this.b)}${1 === t ? ")" : `, ${t})`}`; + } + function Oe(t) { + return isNaN(t) ? 1 : Math.max(0, Math.min(1, t)); + } + function Ne(t) { + return Math.max(0, Math.min(255, Math.round(t) || 0)); + } + function Me(t) { + return ((t = Ne(t)) < 16 ? "0" : "") + t.toString(16); + } + function Be(t, e, n, i) { + return i <= 0 ? t = e = n = NaN : n <= 0 || n >= 1 ? t = e = NaN : e <= 0 && (t = NaN), new Fe(t, e, n, i); + } + function Ie(t) { + if (t instanceof Fe) return new Fe(t.h, t.s, t.l, t.opacity); + if (t instanceof oe || (t = we(t)), !t) return new Fe(); + if (t instanceof Fe) return t; + var e = (t = t.rgb()).r / 255, + n = t.g / 255, + i = t.b / 255, + r = Math.min(e, n, i), + a = Math.max(e, n, i), + s = NaN, + o = a - r, + l = (a + r) / 2; + return o + ? (s = e === a ? (n - i) / o + 6 * (n < i) : n === a ? (i - e) / o + 2 : (e - n) / o + 4, + o /= l < .5 ? a + r : 2 - a - r, + s *= 60) + : o = l > 0 && l < 1 ? 0 : s, + new Fe(s, o, l, t.opacity); + } + function Fe(t, e, n, i) { + this.h = +t, this.s = +e, this.l = +n, this.opacity = +i; + } + function Re(t) { + return (t = (t || 0) % 360) < 0 ? t + 360 : t; + } + function $e(t) { + return Math.max(0, Math.min(1, t || 0)); + } + function Pe(t, e, n) { + return 255 * (t < 60 ? e + (n - e) * t / 60 : t < 180 ? n : t < 240 ? e + (n - e) * (240 - t) / 60 : e); + } + ae(oe, we, { + copy(t) { + return Object.assign(new this.constructor(), this, t); + }, + displayable() { + return this.rgb().displayable(); + }, + hex: ve, + formatHex: ve, + formatHex8: function() { + return this.rgb().formatHex8(); + }, + formatHsl: function() { + return Ie(this).formatHsl(); + }, + formatRgb: ke, + toString: ke, + }), + ae( + Ae, + Se, + se(oe, { + brighter(t) { + return t = null == t ? ce : Math.pow(ce, t), new Ae(this.r * t, this.g * t, this.b * t, this.opacity); + }, + darker(t) { + return t = null == t ? le : Math.pow(le, t), new Ae(this.r * t, this.g * t, this.b * t, this.opacity); + }, + rgb() { + return this; + }, + clamp() { + return new Ae(Ne(this.r), Ne(this.g), Ne(this.b), Oe(this.opacity)); + }, + displayable() { + return -.5 <= this.r && this.r < 255.5 && -.5 <= this.g && this.g < 255.5 && -.5 <= this.b && this.b < 255.5 + && 0 <= this.opacity && this.opacity <= 1; + }, + hex: De, + formatHex: De, + formatHex8: function() { + return `#${Me(this.r)}${Me(this.g)}${Me(this.b)}${Me(255 * (isNaN(this.opacity) ? 1 : this.opacity))}`; + }, + formatRgb: Le, + toString: Le, + }), + ), + ae( + Fe, + function(t, e, n, i) { + return 1 === arguments.length ? Ie(t) : new Fe(t, e, n, null == i ? 1 : i); + }, + se(oe, { + brighter(t) { + return t = null == t ? ce : Math.pow(ce, t), new Fe(this.h, this.s, this.l * t, this.opacity); + }, + darker(t) { + return t = null == t ? le : Math.pow(le, t), new Fe(this.h, this.s, this.l * t, this.opacity); + }, + rgb() { + var t = this.h % 360 + 360 * (this.h < 0), + e = isNaN(t) || isNaN(this.s) ? 0 : this.s, + n = this.l, + i = n + (n < .5 ? n : 1 - n) * e, + r = 2 * n - i; + return new Ae( + Pe(t >= 240 ? t - 240 : t + 120, r, i), + Pe(t, r, i), + Pe(t < 120 ? t + 240 : t - 120, r, i), + this.opacity, + ); + }, + clamp() { + return new Fe(Re(this.h), $e(this.s), $e(this.l), Oe(this.opacity)); + }, + displayable() { + return (0 <= this.s && this.s <= 1 || isNaN(this.s)) && 0 <= this.l && this.l <= 1 && 0 <= this.opacity + && this.opacity <= 1; + }, + formatHsl() { + const t = Oe(this.opacity); + return `${1 === t ? "hsl(" : "hsla("}${Re(this.h)}, ${100 * $e(this.s)}%, ${100 * $e(this.l)}%${ + 1 === t ? ")" : `, ${t})` + }`; + }, + }), + ); + const Ye = Math.PI / 180, + je = 180 / Math.PI, + ze = .96422, + Ue = 1, + We = .82521, + He = 4 / 29, + qe = 6 / 29, + Ve = 3 * qe * qe, + Ge = qe * qe * qe; + function Xe(t) { + if (t instanceof Ze) return new Ze(t.l, t.a, t.b, t.opacity); + if (t instanceof nn) return rn(t); + t instanceof Ae || (t = Ee(t)); + var e, n, i = tn(t.r), r = tn(t.g), a = tn(t.b), s = Qe((.2225045 * i + .7168786 * r + .0606169 * a) / Ue); + return i === r && r === a + ? e = n = s + : (e = Qe((.4360747 * i + .3850649 * r + .1430804 * a) / ze), + n = Qe((.0139322 * i + .0971045 * r + .7141733 * a) / We)), + new Ze(116 * s - 16, 500 * (e - s), 200 * (s - n), t.opacity); + } + function Ze(t, e, n, i) { + this.l = +t, this.a = +e, this.b = +n, this.opacity = +i; + } + function Qe(t) { + return t > Ge ? Math.pow(t, 1 / 3) : t / Ve + He; + } + function Ke(t) { + return t > qe ? t * t * t : Ve * (t - He); + } + function Je(t) { + return 255 * (t <= .0031308 ? 12.92 * t : 1.055 * Math.pow(t, 1 / 2.4) - .055); + } + function tn(t) { + return (t /= 255) <= .04045 ? t / 12.92 : Math.pow((t + .055) / 1.055, 2.4); + } + function en(t, e, n, i) { + return 1 === arguments.length + ? function(t) { + if (t instanceof nn) return new nn(t.h, t.c, t.l, t.opacity); + if (t instanceof Ze || (t = Xe(t)), 0 === t.a && 0 === t.b) { + return new nn(NaN, 0 < t.l && t.l < 100 ? 0 : NaN, t.l, t.opacity); + } + var e = Math.atan2(t.b, t.a) * je; + return new nn(e < 0 ? e + 360 : e, Math.sqrt(t.a * t.a + t.b * t.b), t.l, t.opacity); + }(t) + : new nn(t, e, n, null == i ? 1 : i); + } + function nn(t, e, n, i) { + this.h = +t, this.c = +e, this.l = +n, this.opacity = +i; + } + function rn(t) { + if (isNaN(t.h)) { + return new Ze(t.l, 0, 0, t.opacity); + } + var e = t.h * Ye; + return new Ze(t.l, Math.cos(e) * t.c, Math.sin(e) * t.c, t.opacity); + } + ae( + Ze, + function(t, e, n, i) { + return 1 === arguments.length ? Xe(t) : new Ze(t, e, n, null == i ? 1 : i); + }, + se(oe, { + brighter(t) { + return new Ze(this.l + 18 * (null == t ? 1 : t), this.a, this.b, this.opacity); + }, + darker(t) { + return new Ze(this.l - 18 * (null == t ? 1 : t), this.a, this.b, this.opacity); + }, + rgb() { + var t = (this.l + 16) / 116, e = isNaN(this.a) ? t : t + this.a / 500, n = isNaN(this.b) ? t : t - this.b / 200; + return new Ae( + Je(3.1338561 * (e = ze * Ke(e)) - 1.6168667 * (t = Ue * Ke(t)) - .4906146 * (n = We * Ke(n))), + Je(-.9787684 * e + 1.9161415 * t + .033454 * n), + Je(.0719453 * e - .2289914 * t + 1.4052427 * n), + this.opacity, + ); + }, + }), + ), + ae( + nn, + en, + se(oe, { + brighter(t) { + return new nn(this.h, this.c, this.l + 18 * (null == t ? 1 : t), this.opacity); + }, + darker(t) { + return new nn(this.h, this.c, this.l - 18 * (null == t ? 1 : t), this.opacity); + }, + rgb() { + return rn(this).rgb(); + }, + }), + ); + var an = t => () => t; + function sn(t, e) { + return function(n) { + return t + n * e; + }; + } + function on(t) { + return 1 == (t = +t) ? ln : function(e, n) { + return n - e + ? function(t, e, n) { + return t = Math.pow(t, n), e = Math.pow(e, n) - t, n = 1 / n, function(i) { + return Math.pow(t + i * e, n); + }; + }(e, n, t) + : an(isNaN(e) ? n : e); + }; + } + function ln(t, e) { + var n = e - t; + return n ? sn(t, n) : an(isNaN(t) ? e : t); + } + var cn = function t(e) { + var n = on(e); + function i(t, e) { + var i = n((t = Se(t)).r, (e = Se(e)).r), r = n(t.g, e.g), a = n(t.b, e.b), s = ln(t.opacity, e.opacity); + return function(e) { + return t.r = i(e), t.g = r(e), t.b = a(e), t.opacity = s(e), t + ""; + }; + } + return i.gamma = t, i; + }(1); + function hn(t, e) { + e || (e = []); + var n, i = t ? Math.min(e.length, t.length) : 0, r = e.slice(); + return function(a) { + for (n = 0; n < i; ++n) r[n] = t[n] * (1 - a) + e[n] * a; + return r; + }; + } + function un(t, e) { + var n, i = e ? e.length : 0, r = t ? Math.min(i, t.length) : 0, a = new Array(r), s = new Array(i); + for (n = 0; n < r; ++n) a[n] = bn(t[n], e[n]); + for (; n < i; ++n) s[n] = e[n]; + return function(t) { + for (n = 0; n < r; ++n) s[n] = a[n](t); + return s; + }; + } + function dn(t, e) { + var n = new Date(); + return t = +t, e = +e, function(i) { + return n.setTime(t * (1 - i) + e * i), n; + }; + } + function pn(t, e) { + return t = +t, e = +e, function(n) { + return t * (1 - n) + e * n; + }; + } + function fn(t, e) { + var n, i = {}, r = {}; + for (n in null !== t && "object" == typeof t || (t = {}), null !== e && "object" == typeof e || (e = {}), e) { + n in t + ? i[n] = bn(t[n], e[n]) + : r[n] = e[n]; + } + return function(t) { + for (n in i) r[n] = i[n](t); + return r; + }; + } + var gn = /[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g, yn = new RegExp(gn.source, "g"); + function mn(t, e) { + var n, i, r, a = gn.lastIndex = yn.lastIndex = 0, s = -1, o = [], l = []; + for (t += "", e += ""; (n = gn.exec(t)) && (i = yn.exec(e));) { + (r = i.index) > a && (r = e.slice(a, r), o[s] ? o[s] += r : o[++s] = r), + (n = n[0]) === (i = i[0]) ? o[s] ? o[s] += i : o[++s] = i : (o[++s] = null, l.push({ i: s, x: pn(n, i) })), + a = yn.lastIndex; + } + return a < e.length && (r = e.slice(a), o[s] ? o[s] += r : o[++s] = r), + o.length < 2 + ? l[0] + ? function(t) { + return function(e) { + return t(e) + ""; + }; + }(l[0].x) + : function(t) { + return function() { + return t; + }; + }(e) + : (e = l.length, function(t) { + for (var n, i = 0; i < e; ++i) o[(n = l[i]).i] = n.x(t); + return o.join(""); + }); + } + function bn(t, e) { + var n, i = typeof e; + return null == e || "boolean" === i + ? an(e) + : ("number" === i + ? pn + : "string" === i + ? (n = we(e)) ? (e = n, cn) : mn + : e instanceof we + ? cn + : e instanceof Date + ? dn + : (function(t) { + return ArrayBuffer.isView(t) && !(t instanceof DataView); + })(e) + ? hn + : Array.isArray(e) + ? un + : "function" != typeof e.valueOf && "function" != typeof e.toString || isNaN(e) + ? fn + : pn)(t, e); + } + function _n(t, e) { + return t = +t, e = +e, function(n) { + return Math.round(t * (1 - n) + e * n); + }; + } + var xn, vn = 180 / Math.PI, kn = { translateX: 0, translateY: 0, rotate: 0, skewX: 0, scaleX: 1, scaleY: 1 }; + function wn(t, e, n, i, r, a) { + var s, o, l; + return (s = Math.sqrt(t * t + e * e)) && (t /= s, e /= s), + (l = t * n + e * i) && (n -= t * l, i -= e * l), + (o = Math.sqrt(n * n + i * i)) && (n /= o, i /= o, l /= o), + t * i < e * n && (t = -t, e = -e, l = -l, s = -s), + { translateX: r, translateY: a, rotate: Math.atan2(e, t) * vn, skewX: Math.atan(l) * vn, scaleX: s, scaleY: o }; + } + function Tn(t, e, n, i) { + function r(t) { + return t.length ? t.pop() + " " : ""; + } + return function(a, s) { + var o = [], l = []; + return a = t(a), + s = t(s), + function(t, i, r, a, s, o) { + if (t !== r || i !== a) { + var l = s.push("translate(", null, e, null, n); + o.push({ i: l - 4, x: pn(t, r) }, { i: l - 2, x: pn(i, a) }); + } else (r || a) && s.push("translate(" + r + e + a + n); + }(a.translateX, a.translateY, s.translateX, s.translateY, o, l), + function(t, e, n, a) { + t !== e + ? (t - e > 180 ? e += 360 : e - t > 180 && (t += 360), + a.push({ i: n.push(r(n) + "rotate(", null, i) - 2, x: pn(t, e) })) + : e && n.push(r(n) + "rotate(" + e + i); + }(a.rotate, s.rotate, o, l), + function(t, e, n, a) { + t !== e + ? a.push({ i: n.push(r(n) + "skewX(", null, i) - 2, x: pn(t, e) }) + : e && n.push(r(n) + "skewX(" + e + i); + }(a.skewX, s.skewX, o, l), + function(t, e, n, i, a, s) { + if (t !== n || e !== i) { + var o = a.push(r(a) + "scale(", null, ",", null, ")"); + s.push({ i: o - 4, x: pn(t, n) }, { i: o - 2, x: pn(e, i) }); + } else 1 === n && 1 === i || a.push(r(a) + "scale(" + n + "," + i + ")"); + }(a.scaleX, a.scaleY, s.scaleX, s.scaleY, o, l), + a = s = null, + function(t) { + for (var e, n = -1, i = l.length; ++n < i;) o[(e = l[n]).i] = e.x(t); + return o.join(""); + }; + }; + } + var Cn = Tn( + function(t) { + const e = new ("function" == typeof DOMMatrix ? DOMMatrix : WebKitCSSMatrix)(t + ""); + return e.isIdentity ? kn : wn(e.a, e.b, e.c, e.d, e.e, e.f); + }, + "px, ", + "px)", + "deg)", + ), + En = Tn( + function(t) { + return null == t + ? kn + : (xn || (xn = document.createElementNS("http://www.w3.org/2000/svg", "g")), + xn.setAttribute("transform", t), + (t = xn.transform.baseVal.consolidate()) ? wn((t = t.matrix).a, t.b, t.c, t.d, t.e, t.f) : kn); + }, + ", ", + ")", + ")", + ); + var Sn, + An, + Dn = function(t) { + return function(e, n) { + var i = t((e = en(e)).h, (n = en(n)).h), r = ln(e.c, n.c), a = ln(e.l, n.l), s = ln(e.opacity, n.opacity); + return function(t) { + return e.h = i(t), e.c = r(t), e.l = a(t), e.opacity = s(t), e + ""; + }; + }; + }(function(t, e) { + var n = e - t; + return n ? sn(t, n > 180 || n < -180 ? n - 360 * Math.round(n / 360) : n) : an(isNaN(t) ? e : t); + }), + Ln = 0, + On = 0, + Nn = 0, + Mn = 1e3, + Bn = 0, + In = 0, + Fn = 0, + Rn = "object" == typeof performance && performance.now ? performance : Date, + $n = "object" == typeof window && window.requestAnimationFrame + ? window.requestAnimationFrame.bind(window) + : function(t) { + setTimeout(t, 17); + }; + function Pn() { + return In || ($n(Yn), In = Rn.now() + Fn); + } + function Yn() { + In = 0; + } + function jn() { + this._call = this._time = this._next = null; + } + function zn(t, e, n) { + var i = new jn(); + return i.restart(t, e, n), i; + } + function Un() { + In = (Bn = Rn.now()) + Fn, Ln = On = 0; + try { + !function() { + Pn(), ++Ln; + for (var t, e = Sn; e;) (t = In - e._time) >= 0 && e._call.call(void 0, t), e = e._next; + --Ln; + }(); + } finally { + Ln = 0, + function() { + var t, e, n = Sn, i = 1 / 0; + for (; n;) { + n._call + ? (i > n._time && (i = n._time), t = n, n = n._next) + : (e = n._next, n._next = null, n = t ? t._next = e : Sn = e); + } + An = t, Hn(i); + }(), + In = 0; + } + } + function Wn() { + var t = Rn.now(), e = t - Bn; + e > Mn && (Fn -= e, Bn = t); + } + function Hn(t) { + Ln + || (On && (On = clearTimeout(On)), + t - In > 24 + ? (t < 1 / 0 && (On = setTimeout(Un, t - Rn.now() - Fn)), Nn && (Nn = clearInterval(Nn))) + : (Nn || (Bn = Rn.now(), Nn = setInterval(Wn, Mn)), Ln = 1, $n(Un))); + } + function qn(t, e, n) { + var i = new jn(); + return e = null == e ? 0 : +e, + i.restart( + n => { + i.stop(), t(n + e); + }, + e, + n, + ), + i; + } + jn.prototype = zn.prototype = { + constructor: jn, + restart: function(t, e, n) { + if ("function" != typeof t) throw new TypeError("callback is not a function"); + n = (null == n ? Pn() : +n) + (null == e ? 0 : +e), + this._next || An === this || (An ? An._next = this : Sn = this, An = this), + this._call = t, + this._time = n, + Hn(); + }, + stop: function() { + this._call && (this._call = null, this._time = 1 / 0, Hn()); + }, + }; + var Vn = j("start", "end", "cancel", "interrupt"), Gn = [], Xn = 0, Zn = 1, Qn = 2, Kn = 3, Jn = 4, ti = 5, ei = 6; + function ni(t, e, n, i, r, a) { + var s = t.__transition; + if (s) { + if (n in s) return; + else t.__transition = {}; + } + !function(t, e, n) { + var i, r = t.__transition; + function a(t) { + n.state = Zn, n.timer.restart(s, n.delay, n.time), n.delay <= t && s(t - n.delay); + } + function s(a) { + var c, h, u, d; + if (n.state !== Zn) return l(); + for (c in r) { + if ((d = r[c]).name === n.name) { + if (d.state === Kn) return qn(s); + d.state === Jn + ? (d.state = ei, d.timer.stop(), d.on.call("interrupt", t, t.__data__, d.index, d.group), delete r[c]) + : +c < e + && (d.state = ei, d.timer.stop(), d.on.call("cancel", t, t.__data__, d.index, d.group), delete r[c]); + } + } + if ( + qn(function() { + n.state === Kn && (n.state = Jn, n.timer.restart(o, n.delay, n.time), o(a)); + }), + n.state = Qn, + n.on.call("start", t, t.__data__, n.index, n.group), + n.state === Qn + ) { + for (n.state = Kn, i = new Array(u = n.tween.length), c = 0, h = -1; c < u; ++c) { + (d = n.tween[c].value.call(t, t.__data__, n.index, n.group)) && (i[++h] = d); + } + i.length = h + 1; + } + } + function o(e) { + for ( + var r = e < n.duration ? n.ease.call(null, e / n.duration) : (n.timer.restart(l), n.state = ti, 1), + a = -1, + s = i.length; + ++a < s; + ) i[a].call(t, r); + n.state === ti && (n.on.call("end", t, t.__data__, n.index, n.group), l()); + } + function l() { + for (var i in n.state = ei, n.timer.stop(), delete r[e], r) return; + delete t.__transition; + } + r[e] = n, n.timer = zn(a, 0, n.time); + }(t, n, { + name: e, + index: i, + group: r, + on: Vn, + tween: Gn, + time: a.time, + delay: a.delay, + duration: a.duration, + ease: a.ease, + timer: null, + state: Xn, + }); + } + function ii(t, e) { + var n = ai(t, e); + if (n.state > Xn) throw new Error("too late; already scheduled"); + return n; + } + function ri(t, e) { + var n = ai(t, e); + if (n.state > Kn) throw new Error("too late; already running"); + return n; + } + function ai(t, e) { + var n = t.__transition; + if (!n || !(n = n[e])) throw new Error("transition not found"); + return n; + } + function si(t, e) { + var n, i; + return function() { + var r = ri(this, t), a = r.tween; + if (a !== n) { + for (var s = 0, o = (i = n = a).length; s < o; ++s) { + if (i[s].name === e) { + (i = i.slice()).splice(s, 1); + break; + } + } + } + r.tween = i; + }; + } + function oi(t, e, n) { + var i, r; + if ("function" != typeof n) throw new Error(); + return function() { + var a = ri(this, t), s = a.tween; + if (s !== i) { + r = (i = s).slice(); + for (var o = { name: e, value: n }, l = 0, c = r.length; l < c; ++l) { + if (r[l].name === e) { + r[l] = o; + break; + } + } + l === c && r.push(o); + } + a.tween = r; + }; + } + function li(t, e, n) { + var i = t._id; + return t.each(function() { + var t = ri(this, i); + (t.value || (t.value = {}))[e] = n.apply(this, arguments); + }), + function(t) { + return ai(t, i).value[e]; + }; + } + function ci(t, e) { + var n; + return ("number" == typeof e ? pn : e instanceof we ? cn : (n = we(e)) ? (e = n, cn) : mn)(t, e); + } + function hi(t) { + return function() { + this.removeAttribute(t); + }; + } + function ui(t) { + return function() { + this.removeAttributeNS(t.space, t.local); + }; + } + function di(t, e, n) { + var i, r, a = n + ""; + return function() { + var s = this.getAttribute(t); + return s === a ? null : s === i ? r : r = e(i = s, n); + }; + } + function pi(t, e, n) { + var i, r, a = n + ""; + return function() { + var s = this.getAttributeNS(t.space, t.local); + return s === a ? null : s === i ? r : r = e(i = s, n); + }; + } + function fi(t, e, n) { + var i, r, a; + return function() { + var s, o, l = n(this); + if (null != l) { + return (s = this.getAttribute(t)) === (o = l + "") + ? null + : s === i && o === r + ? a + : (r = o, a = e(i = s, l)); + } + this.removeAttribute(t); + }; + } + function gi(t, e, n) { + var i, r, a; + return function() { + var s, o, l = n(this); + if (null != l) { + return (s = this.getAttributeNS(t.space, t.local)) === (o = l + "") + ? null + : s === i && o === r + ? a + : (r = o, a = e(i = s, l)); + } + this.removeAttributeNS(t.space, t.local); + }; + } + function yi(t, e) { + var n, i; + function r() { + var r = e.apply(this, arguments); + return r !== i && (n = (i = r) && function(t, e) { + return function(n) { + this.setAttributeNS(t.space, t.local, e.call(this, n)); + }; + }(t, r)), + n; + } + return r._value = e, r; + } + function mi(t, e) { + var n, i; + function r() { + var r = e.apply(this, arguments); + return r !== i && (n = (i = r) && function(t, e) { + return function(n) { + this.setAttribute(t, e.call(this, n)); + }; + }(t, r)), + n; + } + return r._value = e, r; + } + function bi(t, e) { + return function() { + ii(this, t).delay = +e.apply(this, arguments); + }; + } + function _i(t, e) { + return e = +e, function() { + ii(this, t).delay = e; + }; + } + function xi(t, e) { + return function() { + ri(this, t).duration = +e.apply(this, arguments); + }; + } + function vi(t, e) { + return e = +e, function() { + ri(this, t).duration = e; + }; + } + var ki = ne.prototype.constructor; + function wi(t) { + return function() { + this.style.removeProperty(t); + }; + } + var Ti = 0; + function Ci(t, e, n, i) { + this._groups = t, this._parents = e, this._name = n, this._id = i; + } + function Ei() { + return ++Ti; + } + var Si = ne.prototype; + Ci.prototype = { + constructor: Ci, + select: function(t) { + var e = this._name, n = this._id; + "function" != typeof t && (t = K(t)); + for (var i = this._groups, r = i.length, a = new Array(r), s = 0; s < r; ++s) { + for (var o, l, c = i[s], h = c.length, u = a[s] = new Array(h), d = 0; d < h; ++d) { + (o = c[d]) && (l = t.call(o, o.__data__, d, c)) + && ("__data__" in o && (l.__data__ = o.__data__), u[d] = l, ni(u[d], e, n, d, u, ai(o, n))); + } + } + return new Ci(a, this._parents, e, n); + }, + selectAll: function(t) { + var e = this._name, n = this._id; + "function" != typeof t && (t = et(t)); + for (var i = this._groups, r = i.length, a = [], s = [], o = 0; o < r; ++o) { + for (var l, c = i[o], h = c.length, u = 0; u < h; ++u) { + if (l = c[u]) { + for (var d, p = t.call(l, l.__data__, u, c), f = ai(l, n), g = 0, y = p.length; g < y; ++g) { + (d = p[g]) && ni(d, e, n, g, p, f); + } + a.push(p), s.push(l); + } + } + } + return new Ci(a, s, e, n); + }, + selectChild: Si.selectChild, + selectChildren: Si.selectChildren, + filter: function(t) { + "function" != typeof t && (t = nt(t)); + for (var e = this._groups, n = e.length, i = new Array(n), r = 0; r < n; ++r) { + for (var a, s = e[r], o = s.length, l = i[r] = [], c = 0; c < o; ++c) { + (a = s[c]) && t.call(a, a.__data__, c, s) && l.push(a); + } + } + return new Ci(i, this._parents, this._name, this._id); + }, + merge: function(t) { + if (t._id !== this._id) throw new Error(); + for ( + var e = this._groups, n = t._groups, i = e.length, r = n.length, a = Math.min(i, r), s = new Array(i), o = 0; + o < a; + ++o + ) { + for (var l, c = e[o], h = n[o], u = c.length, d = s[o] = new Array(u), p = 0; p < u; ++p) { + (l = c[p] || h[p]) && (d[p] = l); + } + } + for (; o < i; ++o) s[o] = e[o]; + return new Ci(s, this._parents, this._name, this._id); + }, + selection: function() { + return new ki(this._groups, this._parents); + }, + transition: function() { + for (var t = this._name, e = this._id, n = Ei(), i = this._groups, r = i.length, a = 0; a < r; ++a) { + for (var s, o = i[a], l = o.length, c = 0; c < l; ++c) { + if (s = o[c]) { + var h = ai(s, e); + ni(s, t, n, c, o, { time: h.time + h.delay + h.duration, delay: 0, duration: h.duration, ease: h.ease }); + } + } + } + return new Ci(i, this._parents, t, n); + }, + call: Si.call, + nodes: Si.nodes, + node: Si.node, + size: Si.size, + empty: Si.empty, + each: Si.each, + on: function(t, e) { + var n = this._id; + return arguments.length < 2 ? ai(this.node(), n).on.on(t) : this.each(function(t, e, n) { + var i, + r, + a = (function(t) { + return (t + "").trim().split(/^|\s+/).every(function(t) { + var e = t.indexOf("."); + return e >= 0 && (t = t.slice(0, e)), !t || "start" === t; + }); + })(e) + ? ii + : ri; + return function() { + var s = a(this, t), o = s.on; + o !== i && (r = (i = o).copy()).on(e, n), s.on = r; + }; + }(n, t, e)); + }, + attr: function(t, e) { + var n = V(t), i = "transform" === n ? En : ci; + return this.attrTween( + t, + "function" == typeof e + ? (n.local ? gi : fi)(n, i, li(this, "attr." + t, e)) + : null == e + ? (n.local ? ui : hi)(n) + : (n.local ? pi : di)(n, i, e), + ); + }, + attrTween: function(t, e) { + var n = "attr." + t; + if (arguments.length < 2) return (n = this.tween(n)) && n._value; + if (null == e) return this.tween(n, null); + if ("function" != typeof e) throw new Error(); + var i = V(t); + return this.tween(n, (i.local ? yi : mi)(i, e)); + }, + style: function(t, e, n) { + var i = "transform" == (t += "") ? Cn : ci; + return null == e + ? this.styleTween( + t, + function(t, e) { + var n, i, r; + return function() { + var a = Ct(this, t), s = (this.style.removeProperty(t), Ct(this, t)); + return a === s ? null : a === n && s === i ? r : r = e(n = a, i = s); + }; + }(t, i), + ).on("end.style." + t, wi(t)) + : "function" == typeof e + ? this.styleTween( + t, + function(t, e, n) { + var i, r, a; + return function() { + var s = Ct(this, t), o = n(this), l = o + ""; + return null == o && (this.style.removeProperty(t), l = o = Ct(this, t)), + s === l ? null : s === i && l === r ? a : (r = l, a = e(i = s, o)); + }; + }(t, i, li(this, "style." + t, e)), + ).each(function(t, e) { + var n, i, r, a, s = "style." + e, o = "end." + s; + return function() { + var l = ri(this, t), c = l.on, h = null == l.value[s] ? a || (a = wi(e)) : void 0; + c === n && r === h || (i = (n = c).copy()).on(o, r = h), l.on = i; + }; + }(this._id, t)) + : this.styleTween( + t, + function(t, e, n) { + var i, r, a = n + ""; + return function() { + var s = Ct(this, t); + return s === a ? null : s === i ? r : r = e(i = s, n); + }; + }(t, i, e), + n, + ).on("end.style." + t, null); + }, + styleTween: function(t, e, n) { + var i = "style." + (t += ""); + if (arguments.length < 2) return (i = this.tween(i)) && i._value; + if (null == e) return this.tween(i, null); + if ("function" != typeof e) throw new Error(); + return this.tween( + i, + function(t, e, n) { + var i, r; + function a() { + var a = e.apply(this, arguments); + return a !== r && (i = (r = a) && function(t, e, n) { + return function(i) { + this.style.setProperty(t, e.call(this, i), n); + }; + }(t, a, n)), + i; + } + return a._value = e, a; + }(t, e, null == n ? "" : n), + ); + }, + text: function(t) { + return this.tween( + "text", + "function" == typeof t + ? function(t) { + return function() { + var e = t(this); + this.textContent = null == e ? "" : e; + }; + }(li(this, "text", t)) + : function(t) { + return function() { + this.textContent = t; + }; + }(null == t ? "" : t + ""), + ); + }, + textTween: function(t) { + var e = "text"; + if (arguments.length < 1) return (e = this.tween(e)) && e._value; + if (null == t) return this.tween(e, null); + if ("function" != typeof t) throw new Error(); + return this.tween( + e, + function(t) { + var e, n; + function i() { + var i = t.apply(this, arguments); + return i !== n && (e = (n = i) && function(t) { + return function(e) { + this.textContent = t.call(this, e); + }; + }(i)), + e; + } + return i._value = t, i; + }(t), + ); + }, + remove: function() { + return this.on( + "end.remove", + function(t) { + return function() { + var e = this.parentNode; + for (var n in this.__transition) if (+n !== t) return; + e && e.removeChild(this); + }; + }(this._id), + ); + }, + tween: function(t, e) { + var n = this._id; + if (t += "", arguments.length < 2) { + for (var i, r = ai(this.node(), n).tween, a = 0, s = r.length; a < s; ++a) { + if ((i = r[a]).name === t) return i.value; + } + return null; + } + return this.each((null == e ? si : oi)(n, t, e)); + }, + delay: function(t) { + var e = this._id; + return arguments.length ? this.each(("function" == typeof t ? bi : _i)(e, t)) : ai(this.node(), e).delay; + }, + duration: function(t) { + var e = this._id; + return arguments.length ? this.each(("function" == typeof t ? xi : vi)(e, t)) : ai(this.node(), e).duration; + }, + ease: function(t) { + var e = this._id; + return arguments.length + ? this.each(function(t, e) { + if ("function" != typeof e) throw new Error(); + return function() { + ri(this, t).ease = e; + }; + }(e, t)) + : ai(this.node(), e).ease; + }, + easeVarying: function(t) { + if ("function" != typeof t) throw new Error(); + return this.each(function(t, e) { + return function() { + var n = e.apply(this, arguments); + if ("function" != typeof n) throw new Error(); + ri(this, t).ease = n; + }; + }(this._id, t)); + }, + end: function() { + var t, e, n = this, i = n._id, r = n.size(); + return new Promise(function(a, s) { + var o = { value: s }, + l = { + value: function() { + 0 == --r && a(); + }, + }; + n.each(function() { + var n = ri(this, i), r = n.on; + r !== t && ((e = (t = r).copy())._.cancel.push(o), e._.interrupt.push(o), e._.end.push(l)), n.on = e; + }), 0 === r && a(); + }); + }, + [Symbol.iterator]: Si[Symbol.iterator], + }; + var Ai = { + time: null, + delay: 0, + duration: 250, + ease: function(t) { + return ((t *= 2) <= 1 ? t * t * t : (t -= 2) * t * t + 2) / 2; + }, + }; + function Di(t, e) { + for (var n; !(n = t.__transition) || !(n = n[e]);) { + if (!(t = t.parentNode)) throw new Error(`transition ${e} not found`); + } + return n; + } + ne.prototype.interrupt = function(t) { + return this.each(function() { + !function(t, e) { + var n, i, r, a = t.__transition, s = !0; + if (a) { + for (r in e = null == e ? null : e + "", a) { + (n = a[r]).name === e + ? (i = n.state > Qn && n.state < ti, + n.state = ei, + n.timer.stop(), + n.on.call(i ? "interrupt" : "cancel", t, t.__data__, n.index, n.group), + delete a[r]) + : s = !1; + } + s && delete t.__transition; + } + }(this, t); + }); + }, + ne.prototype.transition = function(t) { + var e, n; + t instanceof Ci ? (e = t._id, t = t._name) : (e = Ei(), (n = Ai).time = Pn(), t = null == t ? null : t + ""); + for (var i = this._groups, r = i.length, a = 0; a < r; ++a) { + for (var s, o = i[a], l = o.length, c = 0; c < l; ++c) { + (s = o[c]) && ni(s, t, e, c, o, n || Di(s, e)); + } + } + return new Ci(i, this._parents, t, e); + }; + const Li = Math.PI, Oi = 2 * Li, Ni = 1e-6, Mi = Oi - Ni; + function Bi(t) { + this._ += t[0]; + for (let e = 1, n = t.length; e < n; ++e) this._ += arguments[e] + t[e]; + } + class Ii { + constructor(t) { + this._x0 = + this._y0 = + this._x1 = + this._y1 = + null, + this._ = "", + this._append = null == t ? Bi : function(t) { + let e = Math.floor(t); + if (!(e >= 0)) throw new Error(`invalid digits: ${t}`); + if (e > 15) return Bi; + const n = 10 ** e; + return function(t) { + this._ += t[0]; + for (let e = 1, i = t.length; e < i; ++e) this._ += Math.round(arguments[e] * n) / n + t[e]; + }; + }(t); + } + moveTo(t, e) { + this._append`M${this._x0 = this._x1 = +t},${this._y0 = this._y1 = +e}`; + } + closePath() { + null !== this._x1 && (this._x1 = this._x0, this._y1 = this._y0, this._append`Z`); + } + lineTo(t, e) { + this._append`L${this._x1 = +t},${this._y1 = +e}`; + } + quadraticCurveTo(t, e, n, i) { + this._append`Q${+t},${+e},${this._x1 = +n},${this._y1 = +i}`; + } + bezierCurveTo(t, e, n, i, r, a) { + this._append`C${+t},${+e},${+n},${+i},${this._x1 = +r},${this._y1 = +a}`; + } + arcTo(t, e, n, i, r) { + if (t = +t, e = +e, n = +n, i = +i, (r = +r) < 0) throw new Error(`negative radius: ${r}`); + let a = this._x1, s = this._y1, o = n - t, l = i - e, c = a - t, h = s - e, u = c * c + h * h; + if (null === this._x1) this._append`M${this._x1 = t},${this._y1 = e}`; + else if (u > Ni) { + if (Math.abs(h * o - l * c) > Ni && r) { + let d = n - a, + p = i - s, + f = o * o + l * l, + g = d * d + p * p, + y = Math.sqrt(f), + m = Math.sqrt(u), + b = r * Math.tan((Li - Math.acos((f + u - g) / (2 * y * m))) / 2), + _ = b / m, + x = b / y; + Math.abs(_ - 1) > Ni && this._append`L${t + _ * c},${e + _ * h}`, + this._append`A${r},${r},0,0,${+(h * d > c * p)},${this._x1 = t + x * o},${this._y1 = e + x * l}`; + } else this._append`L${this._x1 = t},${this._y1 = e}`; + } else; + } + arc(t, e, n, i, r, a) { + if (t = +t, e = +e, a = !!a, (n = +n) < 0) throw new Error(`negative radius: ${n}`); + let s = n * Math.cos(i), o = n * Math.sin(i), l = t + s, c = e + o, h = 1 ^ a, u = a ? i - r : r - i; + null === this._x1 + ? this._append`M${l},${c}` + : (Math.abs(this._x1 - l) > Ni || Math.abs(this._y1 - c) > Ni) && this._append`L${l},${c}`, + n + && (u < 0 && (u = u % Oi + Oi), + u > Mi + ? this._append`A${n},${n},0,1,${h},${t - s},${e - o}A${n},${n},0,1,${h},${this._x1 = l},${this._y1 = c}` + : u > Ni + && this._append`A${n},${n},0,${+(u >= Li)},${h},${this._x1 = t + n * Math.cos(r)},${this._y1 = e + + n * Math.sin(r)}`); + } + rect(t, e, n, i) { + this._append`M${this._x0 = this._x1 = +t},${this._y0 = this._y1 = +e}h${n = +n}v${+i}h${-n}Z`; + } + toString() { + return this._; + } + } + function Fi(t) { + if (!t.ok) throw new Error(t.status + " " + t.statusText); + return t.text(); + } + function Ri(t, e) { + if ((n = (t = e ? t.toExponential(e - 1) : t.toExponential()).indexOf("e")) < 0) return null; + var n, i = t.slice(0, n); + return [i.length > 1 ? i[0] + i.slice(2) : i, +t.slice(n + 1)]; + } + function $i(t) { + return (t = Ri(Math.abs(t))) ? t[1] : NaN; + } + var Pi, Yi = /^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i; + function ji(t) { + if (!(e = Yi.exec(t))) throw new Error("invalid format: " + t); + var e; + return new zi({ + fill: e[1], + align: e[2], + sign: e[3], + symbol: e[4], + zero: e[5], + width: e[6], + comma: e[7], + precision: e[8] && e[8].slice(1), + trim: e[9], + type: e[10], + }); + } + function zi(t) { + this.fill = void 0 === t.fill ? " " : t.fill + "", + this.align = void 0 === t.align ? ">" : t.align + "", + this.sign = void 0 === t.sign ? "-" : t.sign + "", + this.symbol = void 0 === t.symbol ? "" : t.symbol + "", + this.zero = !!t.zero, + this.width = void 0 === t.width ? void 0 : +t.width, + this.comma = !!t.comma, + this.precision = void 0 === t.precision ? void 0 : +t.precision, + this.trim = !!t.trim, + this.type = void 0 === t.type ? "" : t.type + ""; + } + function Ui(t, e) { + var n = Ri(t, e); + if (!n) return t + ""; + var i = n[0], r = n[1]; + return r < 0 + ? "0." + new Array(-r).join("0") + i + : i.length > r + 1 + ? i.slice(0, r + 1) + "." + i.slice(r + 1) + : i + new Array(r - i.length + 2).join("0"); + } + ji.prototype = zi.prototype, + zi.prototype.toString = function() { + return this.fill + this.align + this.sign + this.symbol + (this.zero ? "0" : "") + + (void 0 === this.width ? "" : Math.max(1, 0 | this.width)) + (this.comma ? "," : "") + + (void 0 === this.precision ? "" : "." + Math.max(0, 0 | this.precision)) + (this.trim ? "~" : "") + this.type; + }; + var Wi = { + "%": (t, e) => (100 * t).toFixed(e), + b: t => Math.round(t).toString(2), + c: t => t + "", + d: function(t) { + return Math.abs(t = Math.round(t)) >= 1e21 ? t.toLocaleString("en").replace(/,/g, "") : t.toString(10); + }, + e: (t, e) => t.toExponential(e), + f: (t, e) => t.toFixed(e), + g: (t, e) => t.toPrecision(e), + o: t => Math.round(t).toString(8), + p: (t, e) => Ui(100 * t, e), + r: Ui, + s: function(t, e) { + var n = Ri(t, e); + if (!n) return t + ""; + var i = n[0], r = n[1], a = r - (Pi = 3 * Math.max(-8, Math.min(8, Math.floor(r / 3)))) + 1, s = i.length; + return a === s + ? i + : a > s + ? i + new Array(a - s + 1).join("0") + : a > 0 + ? i.slice(0, a) + "." + i.slice(a) + : "0." + new Array(1 - a).join("0") + Ri(t, Math.max(0, e + a - 1))[0]; + }, + X: t => Math.round(t).toString(16).toUpperCase(), + x: t => Math.round(t).toString(16), + }; + function Hi(t) { + return t; + } + var qi, + Vi, + Gi, + Xi = Array.prototype.map, + Zi = ["y", "z", "a", "f", "p", "n", "ยต", "m", "", "k", "M", "G", "T", "P", "E", "Z", "Y"]; + function Qi(t) { + var e, + n, + i = void 0 === t.grouping || void 0 === t.thousands + ? Hi + : (e = Xi.call(t.grouping, Number), n = t.thousands + "", function(t, i) { + for ( + var r = t.length, a = [], s = 0, o = e[0], l = 0; + r > 0 && o > 0 + && (l + o + 1 > i && (o = Math.max(1, i - l)), a.push(t.substring(r -= o, r + o)), !((l += o + 1) > i)); + ) o = e[s = (s + 1) % e.length]; + return a.reverse().join(n); + }), + r = void 0 === t.currency ? "" : t.currency[0] + "", + a = void 0 === t.currency ? "" : t.currency[1] + "", + s = void 0 === t.decimal ? "." : t.decimal + "", + o = void 0 === t.numerals ? Hi : function(t) { + return function(e) { + return e.replace(/[0-9]/g, function(e) { + return t[+e]; + }); + }; + }(Xi.call(t.numerals, String)), + l = void 0 === t.percent ? "%" : t.percent + "", + c = void 0 === t.minus ? "โˆ’" : t.minus + "", + h = void 0 === t.nan ? "NaN" : t.nan + ""; + function u(t) { + var e = (t = ji(t)).fill, + n = t.align, + u = t.sign, + d = t.symbol, + p = t.zero, + f = t.width, + g = t.comma, + y = t.precision, + m = t.trim, + b = t.type; + "n" === b ? (g = !0, b = "g") : Wi[b] || (void 0 === y && (y = 12), m = !0, b = "g"), + (p || "0" === e && "=" === n) && (p = !0, e = "0", n = "="); + var _ = "$" === d ? r : "#" === d && /[boxX]/.test(b) ? "0" + b.toLowerCase() : "", + x = "$" === d ? a : /[%p]/.test(b) ? l : "", + v = Wi[b], + k = /[defgprs%]/.test(b); + function w(t) { + var r, a, l, d = _, w = x; + if ("c" === b) w = v(t) + w, t = ""; + else { + var T = (t = +t) < 0 || 1 / t < 0; + if ( + t = isNaN(t) ? h : v(Math.abs(t), y), + m && (t = function(t) { + t: for (var e, n = t.length, i = 1, r = -1; i < n; ++i) { + switch (t[i]) { + case ".": + r = e = i; + break; + case "0": + 0 === r && (r = i), e = i; + break; + default: + if (!+t[i]) break t; + r > 0 && (r = 0); + } + } + return r > 0 ? t.slice(0, r) + t.slice(e + 1) : t; + }(t)), + T && 0 == +t && "+" !== u && (T = !1), + d = (T ? "(" === u ? u : c : "-" === u || "(" === u ? "" : u) + d, + w = ("s" === b ? Zi[8 + Pi / 3] : "") + w + (T && "(" === u ? ")" : ""), + k + ) { + for (r = -1, a = t.length; ++r < a;) { + if (48 > (l = t.charCodeAt(r)) || l > 57) { + w = (46 === l ? s + t.slice(r + 1) : t.slice(r)) + w, t = t.slice(0, r); + break; + } + } + } + } + g && !p && (t = i(t, 1 / 0)); + var C = d.length + t.length + w.length, E = C < f ? new Array(f - C + 1).join(e) : ""; + switch (g && p && (t = i(E + t, E.length ? f - w.length : 1 / 0), E = ""), n) { + case "<": + t = d + t + w + E; + break; + case "=": + t = d + E + t + w; + break; + case "^": + t = E.slice(0, C = E.length >> 1) + d + t + w + E.slice(C); + break; + default: + t = E + d + t + w; + } + return o(t); + } + return y = void 0 === y ? 6 : /[gprs]/.test(b) ? Math.max(1, Math.min(21, y)) : Math.max(0, Math.min(20, y)), + w.toString = function() { + return t + ""; + }, + w; + } + return { + format: u, + formatPrefix: function(t, e) { + var n = u(((t = ji(t)).type = "f", t)), + i = 3 * Math.max(-8, Math.min(8, Math.floor($i(e) / 3))), + r = Math.pow(10, -i), + a = Zi[8 + i / 3]; + return function(t) { + return n(r * t) + a; + }; + }, + }; + } + function Ki(t, e) { + switch (arguments.length) { + case 0: + break; + case 1: + this.range(t); + break; + default: + this.range(e).domain(t); + } + return this; + } + qi = Qi({ thousands: ",", grouping: [3], currency: ["$", ""] }), Vi = qi.format, Gi = qi.formatPrefix; + const Ji = Symbol("implicit"); + function tr() { + var t = new m(), e = [], n = [], i = Ji; + function r(r) { + let a = t.get(r); + if (void 0 === a) { + if (i !== Ji) return i; + t.set(r, a = e.push(r) - 1); + } + return n[a % n.length]; + } + return r.domain = function(n) { + if (!arguments.length) return e.slice(); + e = [], t = new m(); + for (const i of n) t.has(i) || t.set(i, e.push(i) - 1); + return r; + }, + r.range = function(t) { + return arguments.length ? (n = Array.from(t), r) : n.slice(); + }, + r.unknown = function(t) { + return arguments.length ? (i = t, r) : i; + }, + r.copy = function() { + return tr(e, n).unknown(i); + }, + Ki.apply(r, arguments), + r; + } + function er(t) { + return +t; + } + var nr = [0, 1]; + function ir(t) { + return t; + } + function rr(t, e) { + return (e -= t = +t) + ? function(n) { + return (n - t) / e; + } + : function(t) { + return function() { + return t; + }; + }(isNaN(e) ? NaN : .5); + } + function ar(t, e, n) { + var i = t[0], r = t[1], a = e[0], s = e[1]; + return r < i ? (i = rr(r, i), a = n(s, a)) : (i = rr(i, r), a = n(a, s)), function(t) { + return a(i(t)); + }; + } + function sr(t, e, n) { + var i = Math.min(t.length, e.length) - 1, r = new Array(i), a = new Array(i), s = -1; + for (t[i] < t[0] && (t = t.slice().reverse(), e = e.slice().reverse()); ++s < i;) { + r[s] = rr(t[s], t[s + 1]), a[s] = n(e[s], e[s + 1]); + } + return function(e) { + var n = y(t, e, 1, i) - 1; + return a[n](r[n](e)); + }; + } + function or(t, e) { + return e.domain(t.domain()).range(t.range()).interpolate(t.interpolate()).clamp(t.clamp()).unknown(t.unknown()); + } + function lr() { + var t, e, n, i, r, a, s = nr, o = nr, l = bn, c = ir; + function h() { + var t, e, n, l = Math.min(s.length, o.length); + return c !== ir && (t = s[0], + e = s[l - 1], + t > e && (n = t, t = e, e = n), + c = function(n) { + return Math.max(t, Math.min(e, n)); + }), + i = l > 2 ? sr : ar, + r = a = null, + u; + } + function u(e) { + return null == e || isNaN(e = +e) ? n : (r || (r = i(s.map(t), o, l)))(t(c(e))); + } + return u.invert = function(n) { + return c(e((a || (a = i(o, s.map(t), pn)))(n))); + }, + u.domain = function(t) { + return arguments.length ? (s = Array.from(t, er), h()) : s.slice(); + }, + u.range = function(t) { + return arguments.length ? (o = Array.from(t), h()) : o.slice(); + }, + u.rangeRound = function(t) { + return o = Array.from(t), l = _n, h(); + }, + u.clamp = function(t) { + return arguments.length ? (c = !!t || ir, h()) : c !== ir; + }, + u.interpolate = function(t) { + return arguments.length ? (l = t, h()) : l; + }, + u.unknown = function(t) { + return arguments.length ? (n = t, u) : n; + }, + function(n, i) { + return t = n, e = i, h(); + }; + } + function cr() { + return lr()(ir, ir); + } + function hr(t, e, n, i) { + var r, a = C(t, e, n); + switch ((i = ji(null == i ? ",f" : i)).type) { + case "s": + var s = Math.max(Math.abs(t), Math.abs(e)); + return null != i.precision || isNaN( + r = function(t, e) { + return Math.max(0, 3 * Math.max(-8, Math.min(8, Math.floor($i(e) / 3))) - $i(Math.abs(t))); + }(a, s), + ) || (i.precision = r), + Gi(i, s); + case "": + case "e": + case "g": + case "p": + case "r": + null != i.precision || isNaN( + r = function(t, e) { + return t = Math.abs(t), e = Math.abs(e) - t, Math.max(0, $i(e) - $i(t)) + 1; + }(a, Math.max(Math.abs(t), Math.abs(e))), + ) || (i.precision = r - ("e" === i.type)); + break; + case "f": + case "%": + null != i.precision || isNaN( + r = function(t) { + return Math.max(0, -$i(Math.abs(t))); + }(a), + ) || (i.precision = r - 2 * ("%" === i.type)); + } + return Vi(i); + } + function ur(t) { + var e = t.domain; + return t.ticks = function(t) { + var n = e(); + return function(t, e, n) { + if (!((n = +n) > 0)) return []; + if ((t = +t) == (e = +e)) return [t]; + const i = e < t, [r, a, s] = i ? w(e, t, n) : w(t, e, n); + if (!(a >= r)) return []; + const o = a - r + 1, l = new Array(o); + if (i) { + if (s < 0) for (let t = 0; t < o; ++t) l[t] = (a - t) / -s; + else for (let t = 0; t < o; ++t) l[t] = (a - t) * s; + } else if (s < 0) for (let t = 0; t < o; ++t) l[t] = (r + t) / -s; + else for (let t = 0; t < o; ++t) l[t] = (r + t) * s; + return l; + }(n[0], n[n.length - 1], null == t ? 10 : t); + }, + t.tickFormat = function(t, n) { + var i = e(); + return hr(i[0], i[i.length - 1], null == t ? 10 : t, n); + }, + t.nice = function(n) { + null == n && (n = 10); + var i, r, a = e(), s = 0, o = a.length - 1, l = a[s], c = a[o], h = 10; + for (c < l && (r = l, l = c, c = r, r = s, s = o, o = r); h-- > 0;) { + if ((r = T(l, c, n)) === i) return a[s] = l, a[o] = c, e(a); + if (r > 0) l = Math.floor(l / r) * r, c = Math.ceil(c / r) * r; + else { + if (!(r < 0)) break; + l = Math.ceil(l * r) / r, c = Math.floor(c * r) / r; + } + i = r; + } + return t; + }, + t; + } + function dr() { + var t = cr(); + return t.copy = function() { + return or(t, dr()); + }, + Ki.apply(t, arguments), + ur(t); + } + const pr = new Date(), fr = new Date(); + function gr(t, e, n, i) { + function r(e) { + return t(e = 0 === arguments.length ? new Date() : new Date(+e)), e; + } + return r.floor = e => (t(e = new Date(+e)), e), + r.ceil = n => (t(n = new Date(n - 1)), e(n, 1), t(n), n), + r.round = t => { + const e = r(t), n = r.ceil(t); + return t - e < n - t ? e : n; + }, + r.offset = (t, n) => (e(t = new Date(+t), null == n ? 1 : Math.floor(n)), t), + r.range = (n, i, a) => { + const s = []; + if (n = r.ceil(n), a = null == a ? 1 : Math.floor(a), !(n < i && a > 0)) return s; + let o; + do { + s.push(o = new Date(+n)), e(n, a), t(n); + } while (o < n && n < i); + return s; + }, + r.filter = n => + gr(e => { + if (e >= e) for (; t(e), !n(e);) e.setTime(e - 1); + }, (t, i) => { + if (t >= t) { + if (i < 0) for (; ++i <= 0;) for (; e(t, -1), !n(t);); + else for (; --i >= 0;) for (; e(t, 1), !n(t);); + } + }), + n + && (r.count = (e, i) => (pr.setTime(+e), fr.setTime(+i), t(pr), t(fr), Math.floor(n(pr, fr))), + r.every = t => (t = Math.floor(t), + isFinite(t) && t > 0 + ? t > 1 + ? r.filter( + i + ? e => i(e) % t == 0 + : e => r.count(0, e) % t == 0, + ) + : r + : null)), + r; + } + const yr = gr(() => {}, (t, e) => { + t.setTime(+t + e); + }, (t, e) => e - t); + yr.every = t => (t = Math.floor(t), + isFinite(t) && t > 0 + ? t > 1 + ? gr(e => { + e.setTime(Math.floor(e / t) * t); + }, (e, n) => { + e.setTime(+e + n * t); + }, (e, n) => (n - e) / t) + : yr + : null), yr.range; + const mr = 1e3, + br = 60 * mr, + _r = 60 * br, + xr = 24 * _r, + vr = 7 * xr, + kr = 30 * xr, + wr = 365 * xr, + Tr = gr( + t => { + t.setTime(t - t.getMilliseconds()); + }, + (t, e) => { + t.setTime(+t + e * mr); + }, + (t, e) => (e - t) / mr, + t => t.getUTCSeconds(), + ); + Tr.range; + const Cr = gr( + t => { + t.setTime(t - t.getMilliseconds() - t.getSeconds() * mr); + }, + (t, e) => { + t.setTime(+t + e * br); + }, + (t, e) => (e - t) / br, + t => t.getMinutes(), + ); + Cr.range; + const Er = gr( + t => { + t.setUTCSeconds(0, 0); + }, + (t, e) => { + t.setTime(+t + e * br); + }, + (t, e) => (e - t) / br, + t => t.getUTCMinutes(), + ); + Er.range; + const Sr = gr( + t => { + t.setTime(t - t.getMilliseconds() - t.getSeconds() * mr - t.getMinutes() * br); + }, + (t, e) => { + t.setTime(+t + e * _r); + }, + (t, e) => (e - t) / _r, + t => t.getHours(), + ); + Sr.range; + const Ar = gr( + t => { + t.setUTCMinutes(0, 0, 0); + }, + (t, e) => { + t.setTime(+t + e * _r); + }, + (t, e) => (e - t) / _r, + t => t.getUTCHours(), + ); + Ar.range; + const Dr = gr( + t => t.setHours(0, 0, 0, 0), + (t, e) => t.setDate(t.getDate() + e), + (t, e) => (e - t - (e.getTimezoneOffset() - t.getTimezoneOffset()) * br) / xr, + t => t.getDate() - 1, + ); + Dr.range; + const Lr = gr( + t => { + t.setUTCHours(0, 0, 0, 0); + }, + (t, e) => { + t.setUTCDate(t.getUTCDate() + e); + }, + (t, e) => (e - t) / xr, + t => t.getUTCDate() - 1, + ); + Lr.range; + const Or = gr( + t => { + t.setUTCHours(0, 0, 0, 0); + }, + (t, e) => { + t.setUTCDate(t.getUTCDate() + e); + }, + (t, e) => (e - t) / xr, + t => Math.floor(t / xr), + ); + function Nr(t) { + return gr(e => { + e.setDate(e.getDate() - (e.getDay() + 7 - t) % 7), e.setHours(0, 0, 0, 0); + }, (t, e) => { + t.setDate(t.getDate() + 7 * e); + }, (t, e) => (e - t - (e.getTimezoneOffset() - t.getTimezoneOffset()) * br) / vr); + } + Or.range; + const Mr = Nr(0), Br = Nr(1), Ir = Nr(2), Fr = Nr(3), Rr = Nr(4), $r = Nr(5), Pr = Nr(6); + function Yr(t) { + return gr(e => { + e.setUTCDate(e.getUTCDate() - (e.getUTCDay() + 7 - t) % 7), e.setUTCHours(0, 0, 0, 0); + }, (t, e) => { + t.setUTCDate(t.getUTCDate() + 7 * e); + }, (t, e) => (e - t) / vr); + } + Mr.range, Br.range, Ir.range, Fr.range, Rr.range, $r.range, Pr.range; + const jr = Yr(0), zr = Yr(1), Ur = Yr(2), Wr = Yr(3), Hr = Yr(4), qr = Yr(5), Vr = Yr(6); + jr.range, zr.range, Ur.range, Wr.range, Hr.range, qr.range, Vr.range; + const Gr = gr( + t => { + t.setDate(1), t.setHours(0, 0, 0, 0); + }, + (t, e) => { + t.setMonth(t.getMonth() + e); + }, + (t, e) => e.getMonth() - t.getMonth() + 12 * (e.getFullYear() - t.getFullYear()), + t => t.getMonth(), + ); + Gr.range; + const Xr = gr( + t => { + t.setUTCDate(1), t.setUTCHours(0, 0, 0, 0); + }, + (t, e) => { + t.setUTCMonth(t.getUTCMonth() + e); + }, + (t, e) => e.getUTCMonth() - t.getUTCMonth() + 12 * (e.getUTCFullYear() - t.getUTCFullYear()), + t => t.getUTCMonth(), + ); + Xr.range; + const Zr = gr( + t => { + t.setMonth(0, 1), t.setHours(0, 0, 0, 0); + }, + (t, e) => { + t.setFullYear(t.getFullYear() + e); + }, + (t, e) => e.getFullYear() - t.getFullYear(), + t => t.getFullYear(), + ); + Zr.every = t => + isFinite(t = Math.floor(t)) && t > 0 + ? gr(e => { + e.setFullYear(Math.floor(e.getFullYear() / t) * t), e.setMonth(0, 1), e.setHours(0, 0, 0, 0); + }, (e, n) => { + e.setFullYear(e.getFullYear() + n * t); + }) + : null, Zr.range; + const Qr = gr( + t => { + t.setUTCMonth(0, 1), t.setUTCHours(0, 0, 0, 0); + }, + (t, e) => { + t.setUTCFullYear(t.getUTCFullYear() + e); + }, + (t, e) => e.getUTCFullYear() - t.getUTCFullYear(), + t => t.getUTCFullYear(), + ); + function Kr(t, e, n, i, r, a) { + const s = [ + [Tr, 1, mr], + [Tr, 5, 5 * mr], + [Tr, 15, 15 * mr], + [Tr, 30, 30 * mr], + [a, 1, br], + [a, 5, 5 * br], + [a, 15, 15 * br], + [a, 30, 30 * br], + [r, 1, _r], + [r, 3, 3 * _r], + [r, 6, 6 * _r], + [r, 12, 12 * _r], + [i, 1, xr], + [i, 2, 2 * xr], + [n, 1, vr], + [e, 1, kr], + [e, 3, 3 * kr], + [t, 1, wr], + ]; + function o(e, n, i) { + const r = Math.abs(n - e) / i, a = p(([, , t]) => t).right(s, r); + if (a === s.length) return t.every(C(e / wr, n / wr, i)); + if (0 === a) return yr.every(Math.max(C(e, n, i), 1)); + const [o, l] = s[r / s[a - 1][2] < s[a][2] / r ? a - 1 : a]; + return o.every(l); + } + return [function(t, e, n) { + const i = e < t; + i && ([t, e] = [e, t]); + const r = n && "function" == typeof n.range ? n : o(t, e, n), a = r ? r.range(t, +e + 1) : []; + return i ? a.reverse() : a; + }, o]; + } + Qr.every = t => + isFinite(t = Math.floor(t)) && t > 0 + ? gr(e => { + e.setUTCFullYear(Math.floor(e.getUTCFullYear() / t) * t), e.setUTCMonth(0, 1), e.setUTCHours(0, 0, 0, 0); + }, (e, n) => { + e.setUTCFullYear(e.getUTCFullYear() + n * t); + }) + : null, + Qr.range, + Kr(Qr, Xr, jr, Or, Ar, Er); + const [Jr, ta] = Kr(Zr, Gr, Mr, Dr, Sr, Cr); + function ea(t) { + if (0 <= t.y && t.y < 100) { + var e = new Date(-1, t.m, t.d, t.H, t.M, t.S, t.L); + return e.setFullYear(t.y), e; + } + return new Date(t.y, t.m, t.d, t.H, t.M, t.S, t.L); + } + function na(t) { + if (0 <= t.y && t.y < 100) { + var e = new Date(Date.UTC(-1, t.m, t.d, t.H, t.M, t.S, t.L)); + return e.setUTCFullYear(t.y), e; + } + return new Date(Date.UTC(t.y, t.m, t.d, t.H, t.M, t.S, t.L)); + } + function ia(t, e, n) { + return { y: t, m: e, d: n, H: 0, M: 0, S: 0, L: 0 }; + } + var ra, aa, sa = { "-": "", _: " ", 0: "0" }, oa = /^\s*\d+/, la = /^%/, ca = /[\\^$*+?|[\]().{}]/g; + function ha(t, e, n) { + var i = t < 0 ? "-" : "", r = (i ? -t : t) + "", a = r.length; + return i + (a < n ? new Array(n - a + 1).join(e) + r : r); + } + function ua(t) { + return t.replace(ca, "\\$&"); + } + function da(t) { + return new RegExp("^(?:" + t.map(ua).join("|") + ")", "i"); + } + function pa(t) { + return new Map(t.map((t, e) => [t.toLowerCase(), e])); + } + function fa(t, e, n) { + var i = oa.exec(e.slice(n, n + 1)); + return i ? (t.w = +i[0], n + i[0].length) : -1; + } + function ga(t, e, n) { + var i = oa.exec(e.slice(n, n + 1)); + return i ? (t.u = +i[0], n + i[0].length) : -1; + } + function ya(t, e, n) { + var i = oa.exec(e.slice(n, n + 2)); + return i ? (t.U = +i[0], n + i[0].length) : -1; + } + function ma(t, e, n) { + var i = oa.exec(e.slice(n, n + 2)); + return i ? (t.V = +i[0], n + i[0].length) : -1; + } + function ba(t, e, n) { + var i = oa.exec(e.slice(n, n + 2)); + return i ? (t.W = +i[0], n + i[0].length) : -1; + } + function _a(t, e, n) { + var i = oa.exec(e.slice(n, n + 4)); + return i ? (t.y = +i[0], n + i[0].length) : -1; + } + function xa(t, e, n) { + var i = oa.exec(e.slice(n, n + 2)); + return i ? (t.y = +i[0] + (+i[0] > 68 ? 1900 : 2e3), n + i[0].length) : -1; + } + function va(t, e, n) { + var i = /^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(e.slice(n, n + 6)); + return i ? (t.Z = i[1] ? 0 : -(i[2] + (i[3] || "00")), n + i[0].length) : -1; + } + function ka(t, e, n) { + var i = oa.exec(e.slice(n, n + 1)); + return i ? (t.q = 3 * i[0] - 3, n + i[0].length) : -1; + } + function wa(t, e, n) { + var i = oa.exec(e.slice(n, n + 2)); + return i ? (t.m = i[0] - 1, n + i[0].length) : -1; + } + function Ta(t, e, n) { + var i = oa.exec(e.slice(n, n + 2)); + return i ? (t.d = +i[0], n + i[0].length) : -1; + } + function Ca(t, e, n) { + var i = oa.exec(e.slice(n, n + 3)); + return i ? (t.m = 0, t.d = +i[0], n + i[0].length) : -1; + } + function Ea(t, e, n) { + var i = oa.exec(e.slice(n, n + 2)); + return i ? (t.H = +i[0], n + i[0].length) : -1; + } + function Sa(t, e, n) { + var i = oa.exec(e.slice(n, n + 2)); + return i ? (t.M = +i[0], n + i[0].length) : -1; + } + function Aa(t, e, n) { + var i = oa.exec(e.slice(n, n + 2)); + return i ? (t.S = +i[0], n + i[0].length) : -1; + } + function Da(t, e, n) { + var i = oa.exec(e.slice(n, n + 3)); + return i ? (t.L = +i[0], n + i[0].length) : -1; + } + function La(t, e, n) { + var i = oa.exec(e.slice(n, n + 6)); + return i ? (t.L = Math.floor(i[0] / 1e3), n + i[0].length) : -1; + } + function Oa(t, e, n) { + var i = la.exec(e.slice(n, n + 1)); + return i ? n + i[0].length : -1; + } + function Na(t, e, n) { + var i = oa.exec(e.slice(n)); + return i ? (t.Q = +i[0], n + i[0].length) : -1; + } + function Ma(t, e, n) { + var i = oa.exec(e.slice(n)); + return i ? (t.s = +i[0], n + i[0].length) : -1; + } + function Ba(t, e) { + return ha(t.getDate(), e, 2); + } + function Ia(t, e) { + return ha(t.getHours(), e, 2); + } + function Fa(t, e) { + return ha(t.getHours() % 12 || 12, e, 2); + } + function Ra(t, e) { + return ha(1 + Dr.count(Zr(t), t), e, 3); + } + function $a(t, e) { + return ha(t.getMilliseconds(), e, 3); + } + function Pa(t, e) { + return $a(t, e) + "000"; + } + function Ya(t, e) { + return ha(t.getMonth() + 1, e, 2); + } + function ja(t, e) { + return ha(t.getMinutes(), e, 2); + } + function za(t, e) { + return ha(t.getSeconds(), e, 2); + } + function Ua(t) { + var e = t.getDay(); + return 0 === e ? 7 : e; + } + function Wa(t, e) { + return ha(Mr.count(Zr(t) - 1, t), e, 2); + } + function Ha(t) { + var e = t.getDay(); + return e >= 4 || 0 === e ? Rr(t) : Rr.ceil(t); + } + function qa(t, e) { + return t = Ha(t), ha(Rr.count(Zr(t), t) + (4 === Zr(t).getDay()), e, 2); + } + function Va(t) { + return t.getDay(); + } + function Ga(t, e) { + return ha(Br.count(Zr(t) - 1, t), e, 2); + } + function Xa(t, e) { + return ha(t.getFullYear() % 100, e, 2); + } + function Za(t, e) { + return ha((t = Ha(t)).getFullYear() % 100, e, 2); + } + function Qa(t, e) { + return ha(t.getFullYear() % 1e4, e, 4); + } + function Ka(t, e) { + var n = t.getDay(); + return ha((t = n >= 4 || 0 === n ? Rr(t) : Rr.ceil(t)).getFullYear() % 1e4, e, 4); + } + function Ja(t) { + var e = t.getTimezoneOffset(); + return (e > 0 ? "-" : (e *= -1, "+")) + ha(e / 60 | 0, "0", 2) + ha(e % 60, "0", 2); + } + function ts(t, e) { + return ha(t.getUTCDate(), e, 2); + } + function es(t, e) { + return ha(t.getUTCHours(), e, 2); + } + function ns(t, e) { + return ha(t.getUTCHours() % 12 || 12, e, 2); + } + function is(t, e) { + return ha(1 + Lr.count(Qr(t), t), e, 3); + } + function rs(t, e) { + return ha(t.getUTCMilliseconds(), e, 3); + } + function as(t, e) { + return rs(t, e) + "000"; + } + function ss(t, e) { + return ha(t.getUTCMonth() + 1, e, 2); + } + function os(t, e) { + return ha(t.getUTCMinutes(), e, 2); + } + function ls(t, e) { + return ha(t.getUTCSeconds(), e, 2); + } + function cs(t) { + var e = t.getUTCDay(); + return 0 === e ? 7 : e; + } + function hs(t, e) { + return ha(jr.count(Qr(t) - 1, t), e, 2); + } + function us(t) { + var e = t.getUTCDay(); + return e >= 4 || 0 === e ? Hr(t) : Hr.ceil(t); + } + function ds(t, e) { + return t = us(t), ha(Hr.count(Qr(t), t) + (4 === Qr(t).getUTCDay()), e, 2); + } + function ps(t) { + return t.getUTCDay(); + } + function fs(t, e) { + return ha(zr.count(Qr(t) - 1, t), e, 2); + } + function gs(t, e) { + return ha(t.getUTCFullYear() % 100, e, 2); + } + function ys(t, e) { + return ha((t = us(t)).getUTCFullYear() % 100, e, 2); + } + function ms(t, e) { + return ha(t.getUTCFullYear() % 1e4, e, 4); + } + function bs(t, e) { + var n = t.getUTCDay(); + return ha((t = n >= 4 || 0 === n ? Hr(t) : Hr.ceil(t)).getUTCFullYear() % 1e4, e, 4); + } + function _s() { + return "+0000"; + } + function xs() { + return "%"; + } + function vs(t) { + return +t; + } + function ks(t) { + return Math.floor(+t / 1e3); + } + function ws(t) { + return new Date(t); + } + function Ts(t) { + return t instanceof Date ? +t : +new Date(+t); + } + function Cs(t, e, n, i, r, a, s, o, l, c) { + var h = cr(), + u = h.invert, + d = h.domain, + p = c(".%L"), + f = c(":%S"), + g = c("%I:%M"), + y = c("%I %p"), + m = c("%a %d"), + b = c("%b %d"), + _ = c("%B"), + x = c("%Y"); + function v(t) { + return (l(t) < t + ? p + : o(t) < t + ? f + : s(t) < t + ? g + : a(t) < t + ? y + : i(t) < t + ? r(t) < t ? m : b + : n(t) < t + ? _ + : x)(t); + } + return h.invert = function(t) { + return new Date(u(t)); + }, + h.domain = function(t) { + return arguments.length ? d(Array.from(t, Ts)) : d().map(ws); + }, + h.ticks = function(e) { + var n = d(); + return t(n[0], n[n.length - 1], null == e ? 10 : e); + }, + h.tickFormat = function(t, e) { + return null == e ? v : c(e); + }, + h.nice = function(t) { + var n = d(); + return t && "function" == typeof t.range || (t = e(n[0], n[n.length - 1], null == t ? 10 : t)), + t + ? d(function(t, e) { + var n, i = 0, r = (t = t.slice()).length - 1, a = t[i], s = t[r]; + return s < a && (n = i, i = r, r = n, n = a, a = s, s = n), t[i] = e.floor(a), t[r] = e.ceil(s), t; + }(n, t)) + : h; + }, + h.copy = function() { + return or(h, Cs(t, e, n, i, r, a, s, o, l, c)); + }, + h; + } + function Es() { + return Ki.apply( + Cs(Jr, ta, Zr, Gr, Mr, Dr, Sr, Cr, Tr, aa).domain([new Date(2e3, 0, 1), new Date(2e3, 0, 2)]), + arguments, + ); + } + function Ss(t) { + return function() { + return t; + }; + } + !function(t) { + ra = function(t) { + var e = t.dateTime, + n = t.date, + i = t.time, + r = t.periods, + a = t.days, + s = t.shortDays, + o = t.months, + l = t.shortMonths, + c = da(r), + h = pa(r), + u = da(a), + d = pa(a), + p = da(s), + f = pa(s), + g = da(o), + y = pa(o), + m = da(l), + b = pa(l), + _ = { + a: function(t) { + return s[t.getDay()]; + }, + A: function(t) { + return a[t.getDay()]; + }, + b: function(t) { + return l[t.getMonth()]; + }, + B: function(t) { + return o[t.getMonth()]; + }, + c: null, + d: Ba, + e: Ba, + f: Pa, + g: Za, + G: Ka, + H: Ia, + I: Fa, + j: Ra, + L: $a, + m: Ya, + M: ja, + p: function(t) { + return r[+(t.getHours() >= 12)]; + }, + q: function(t) { + return 1 + ~~(t.getMonth() / 3); + }, + Q: vs, + s: ks, + S: za, + u: Ua, + U: Wa, + V: qa, + w: Va, + W: Ga, + x: null, + X: null, + y: Xa, + Y: Qa, + Z: Ja, + "%": xs, + }, + x = { + a: function(t) { + return s[t.getUTCDay()]; + }, + A: function(t) { + return a[t.getUTCDay()]; + }, + b: function(t) { + return l[t.getUTCMonth()]; + }, + B: function(t) { + return o[t.getUTCMonth()]; + }, + c: null, + d: ts, + e: ts, + f: as, + g: ys, + G: bs, + H: es, + I: ns, + j: is, + L: rs, + m: ss, + M: os, + p: function(t) { + return r[+(t.getUTCHours() >= 12)]; + }, + q: function(t) { + return 1 + ~~(t.getUTCMonth() / 3); + }, + Q: vs, + s: ks, + S: ls, + u: cs, + U: hs, + V: ds, + w: ps, + W: fs, + x: null, + X: null, + y: gs, + Y: ms, + Z: _s, + "%": xs, + }, + v = { + a: function(t, e, n) { + var i = p.exec(e.slice(n)); + return i ? (t.w = f.get(i[0].toLowerCase()), n + i[0].length) : -1; + }, + A: function(t, e, n) { + var i = u.exec(e.slice(n)); + return i ? (t.w = d.get(i[0].toLowerCase()), n + i[0].length) : -1; + }, + b: function(t, e, n) { + var i = m.exec(e.slice(n)); + return i ? (t.m = b.get(i[0].toLowerCase()), n + i[0].length) : -1; + }, + B: function(t, e, n) { + var i = g.exec(e.slice(n)); + return i ? (t.m = y.get(i[0].toLowerCase()), n + i[0].length) : -1; + }, + c: function(t, n, i) { + return T(t, e, n, i); + }, + d: Ta, + e: Ta, + f: La, + g: xa, + G: _a, + H: Ea, + I: Ea, + j: Ca, + L: Da, + m: wa, + M: Sa, + p: function(t, e, n) { + var i = c.exec(e.slice(n)); + return i ? (t.p = h.get(i[0].toLowerCase()), n + i[0].length) : -1; + }, + q: ka, + Q: Na, + s: Ma, + S: Aa, + u: ga, + U: ya, + V: ma, + w: fa, + W: ba, + x: function(t, e, i) { + return T(t, n, e, i); + }, + X: function(t, e, n) { + return T(t, i, e, n); + }, + y: xa, + Y: _a, + Z: va, + "%": Oa, + }; + function k(t, e) { + return function(n) { + var i, r, a, s = [], o = -1, l = 0, c = t.length; + for (n instanceof Date || (n = new Date(+n)); ++o < c;) { + 37 === t.charCodeAt(o) + && (s.push(t.slice(l, o)), + null != (r = sa[i = t.charAt(++o)]) ? i = t.charAt(++o) : r = "e" === i ? " " : "0", + (a = e[i]) && (i = a(n, r)), + s.push(i), + l = o + 1); + } + return s.push(t.slice(l, o)), s.join(""); + }; + } + function w(t, e) { + return function(n) { + var i, r, a = ia(1900, void 0, 1); + if (T(a, t, n += "", 0) != n.length) return null; + if ("Q" in a) return new Date(a.Q); + if ("s" in a) return new Date(1e3 * a.s + ("L" in a ? a.L : 0)); + if ( + e && !("Z" in a) && (a.Z = 0), + "p" in a && (a.H = a.H % 12 + 12 * a.p), + void 0 === a.m && (a.m = "q" in a ? a.q : 0), + "V" in a + ) { + if (a.V < 1 || a.V > 53) return null; + "w" in a || (a.w = 1), + "Z" in a + ? (r = (i = na(ia(a.y, 0, 1))).getUTCDay(), + i = r > 4 || 0 === r ? zr.ceil(i) : zr(i), + i = Lr.offset(i, 7 * (a.V - 1)), + a.y = i.getUTCFullYear(), + a.m = i.getUTCMonth(), + a.d = i.getUTCDate() + (a.w + 6) % 7) + : (r = (i = ea(ia(a.y, 0, 1))).getDay(), + i = r > 4 || 0 === r ? Br.ceil(i) : Br(i), + i = Dr.offset(i, 7 * (a.V - 1)), + a.y = i.getFullYear(), + a.m = i.getMonth(), + a.d = i.getDate() + (a.w + 6) % 7); + } else {("W" in a || "U" in a) + && ("w" in a || (a.w = "u" in a ? a.u % 7 : "W" in a ? 1 : 0), + r = "Z" in a ? na(ia(a.y, 0, 1)).getUTCDay() : ea(ia(a.y, 0, 1)).getDay(), + a.m = 0, + a.d = "W" in a ? (a.w + 6) % 7 + 7 * a.W - (r + 5) % 7 : a.w + 7 * a.U - (r + 6) % 7);} + return "Z" in a ? (a.H += a.Z / 100 | 0, a.M += a.Z % 100, na(a)) : ea(a); + }; + } + function T(t, e, n, i) { + for (var r, a, s = 0, o = e.length, l = n.length; s < o;) { + if (i >= l) return -1; + if (37 === (r = e.charCodeAt(s++))) { + if (r = e.charAt(s++), !(a = v[r in sa ? e.charAt(s++) : r]) || (i = a(t, n, i)) < 0) return -1; + } else if (r != n.charCodeAt(i++)) return -1; + } + return i; + } + return _.x = k(n, _), _.X = k(i, _), _.c = k(e, _), x.x = k(n, x), x.X = k(i, x), x.c = k(e, x), { + format: function(t) { + var e = k(t += "", _); + return e.toString = function() { + return t; + }, + e; + }, + parse: function(t) { + var e = w(t += "", !1); + return e.toString = function() { + return t; + }, + e; + }, + utcFormat: function(t) { + var e = k(t += "", x); + return e.toString = function() { + return t; + }, + e; + }, + utcParse: function(t) { + var e = w(t += "", !0); + return e.toString = function() { + return t; + }, + e; + }, + }; + }(t), + aa = ra.format, + ra.parse, + ra.utcFormat, + ra.utcParse; + }({ + 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"], + }); + const As = Math.abs, + Ds = Math.atan2, + Ls = Math.cos, + Os = Math.max, + Ns = Math.min, + Ms = Math.sin, + Bs = Math.sqrt, + Is = 1e-12, + Fs = Math.PI, + Rs = Fs / 2, + $s = 2 * Fs; + function Ps(t) { + return t >= 1 ? Rs : t <= -1 ? -Rs : Math.asin(t); + } + function Ys(t) { + let e = 3; + return t.digits = function(n) { + if (!arguments.length) return e; + if (null == n) e = null; + else { + const t = Math.floor(n); + if (!(t >= 0)) throw new RangeError(`invalid digits: ${n}`); + e = t; + } + return t; + }, + () => new Ii(e); + } + function js(t) { + return t.innerRadius; + } + function zs(t) { + return t.outerRadius; + } + function Us(t) { + return t.startAngle; + } + function Ws(t) { + return t.endAngle; + } + function Hs(t) { + return t && t.padAngle; + } + function qs(t, e, n, i, r, a, s) { + var o = t - n, + l = e - i, + c = (s ? a : -a) / Bs(o * o + l * l), + h = c * l, + u = -c * o, + d = t + h, + p = e + u, + f = n + h, + g = i + u, + y = (d + f) / 2, + m = (p + g) / 2, + b = f - d, + _ = g - p, + x = b * b + _ * _, + v = r - a, + k = d * g - f * p, + w = (_ < 0 ? -1 : 1) * Bs(Os(0, v * v * x - k * k)), + T = (k * _ - b * w) / x, + C = (-k * b - _ * w) / x, + E = (k * _ + b * w) / x, + S = (-k * b + _ * w) / x, + A = T - y, + D = C - m, + L = E - y, + O = S - m; + return A * A + D * D > L * L + O * O && (T = E, C = S), + { cx: T, cy: C, x01: -h, y01: -u, x11: T * (r / v - 1), y11: C * (r / v - 1) }; + } + function Vs() { + var t = js, e = zs, n = Ss(0), i = null, r = Us, a = Ws, s = Hs, o = null, l = Ys(c); + function c() { + var c, + h, + u = +t.apply(this, arguments), + d = +e.apply(this, arguments), + p = r.apply(this, arguments) - Rs, + f = a.apply(this, arguments) - Rs, + g = As(f - p), + y = f > p; + if (o || (o = c = l()), d < u && (h = d, d = u, u = h), d > Is) { + if (g > $s - Is) { + o.moveTo(d * Ls(p), d * Ms(p)), + o.arc(0, 0, d, p, f, !y), + u > Is && (o.moveTo(u * Ls(f), u * Ms(f)), o.arc(0, 0, u, f, p, y)); + } else { + var m, + b, + _ = p, + x = f, + v = p, + k = f, + w = g, + T = g, + C = s.apply(this, arguments) / 2, + E = C > Is && (i ? +i.apply(this, arguments) : Bs(u * u + d * d)), + S = Ns(As(d - u) / 2, +n.apply(this, arguments)), + A = S, + D = S; + if (E > Is) { + var L = Ps(E / u * Ms(C)), O = Ps(E / d * Ms(C)); + (w -= 2 * L) > Is ? (v += L *= y ? 1 : -1, k -= L) : (w = 0, v = k = (p + f) / 2), + (T -= 2 * O) > Is ? (_ += O *= y ? 1 : -1, x -= O) : (T = 0, _ = x = (p + f) / 2); + } + var N = d * Ls(_), M = d * Ms(_), B = u * Ls(k), I = u * Ms(k); + if (S > Is) { + var F, R = d * Ls(x), $ = d * Ms(x), P = u * Ls(v), Y = u * Ms(v); + if (g < Fs) { + if ( + F = function(t, e, n, i, r, a, s, o) { + var l = n - t, c = i - e, h = s - r, u = o - a, d = u * l - h * c; + if (!(d * d < Is)) return [t + (d = (h * (e - a) - u * (t - r)) / d) * l, e + d * c]; + }(N, M, P, Y, R, $, B, I) + ) { + var j = N - F[0], + z = M - F[1], + U = R - F[0], + W = $ - F[1], + H = 1 / Ms( + function(t) { + return t > 1 ? 0 : t < -1 ? Fs : Math.acos(t); + }((j * U + z * W) / (Bs(j * j + z * z) * Bs(U * U + W * W))) / 2, + ), + q = Bs(F[0] * F[0] + F[1] * F[1]); + A = Ns(S, (u - q) / (H - 1)), D = Ns(S, (d - q) / (H + 1)); + } else A = D = 0; + } + } + T > Is + ? D > Is + ? (m = qs(P, Y, N, M, d, D, y), + b = qs(R, $, B, I, d, D, y), + o.moveTo(m.cx + m.x01, m.cy + m.y01), + D < S + ? o.arc(m.cx, m.cy, D, Ds(m.y01, m.x01), Ds(b.y01, b.x01), !y) + : (o.arc(m.cx, m.cy, D, Ds(m.y01, m.x01), Ds(m.y11, m.x11), !y), + o.arc(0, 0, d, Ds(m.cy + m.y11, m.cx + m.x11), Ds(b.cy + b.y11, b.cx + b.x11), !y), + o.arc(b.cx, b.cy, D, Ds(b.y11, b.x11), Ds(b.y01, b.x01), !y))) + : (o.moveTo(N, M), o.arc(0, 0, d, _, x, !y)) + : o.moveTo(N, M), + u > Is && w > Is + ? A > Is + ? (m = qs(B, I, R, $, u, -A, y), + b = qs(N, M, P, Y, u, -A, y), + o.lineTo(m.cx + m.x01, m.cy + m.y01), + A < S + ? o.arc(m.cx, m.cy, A, Ds(m.y01, m.x01), Ds(b.y01, b.x01), !y) + : (o.arc(m.cx, m.cy, A, Ds(m.y01, m.x01), Ds(m.y11, m.x11), !y), + o.arc(0, 0, u, Ds(m.cy + m.y11, m.cx + m.x11), Ds(b.cy + b.y11, b.cx + b.x11), y), + o.arc(b.cx, b.cy, A, Ds(b.y11, b.x11), Ds(b.y01, b.x01), !y))) + : o.arc(0, 0, u, k, v, y) + : o.lineTo(B, I); + } + } else o.moveTo(0, 0); + if (o.closePath(), c) return o = null, c + "" || null; + } + return c.centroid = function() { + var n = (+t.apply(this, arguments) + +e.apply(this, arguments)) / 2, + i = (+r.apply(this, arguments) + +a.apply(this, arguments)) / 2 - Fs / 2; + return [Ls(i) * n, Ms(i) * n]; + }, + c.innerRadius = function(e) { + return arguments.length ? (t = "function" == typeof e ? e : Ss(+e), c) : t; + }, + c.outerRadius = function(t) { + return arguments.length ? (e = "function" == typeof t ? t : Ss(+t), c) : e; + }, + c.cornerRadius = function(t) { + return arguments.length ? (n = "function" == typeof t ? t : Ss(+t), c) : n; + }, + c.padRadius = function(t) { + return arguments.length ? (i = null == t ? null : "function" == typeof t ? t : Ss(+t), c) : i; + }, + c.startAngle = function(t) { + return arguments.length ? (r = "function" == typeof t ? t : Ss(+t), c) : r; + }, + c.endAngle = function(t) { + return arguments.length ? (a = "function" == typeof t ? t : Ss(+t), c) : a; + }, + c.padAngle = function(t) { + return arguments.length ? (s = "function" == typeof t ? t : Ss(+t), c) : s; + }, + c.context = function(t) { + return arguments.length ? (o = null == t ? null : t, c) : o; + }, + c; + } + function Gs(t) { + return "object" == typeof t && "length" in t ? t : Array.from(t); + } + function Xs(t) { + this._context = t; + } + function Zs(t) { + return new Xs(t); + } + function Qs(t) { + return t[0]; + } + function Ks(t) { + return t[1]; + } + function Js(t, e) { + var n = Ss(!0), i = null, r = Zs, a = null, s = Ys(o); + function o(o) { + var l, c, h, u = (o = Gs(o)).length, d = !1; + for (null == i && (a = r(h = s())), l = 0; l <= u; ++l) { + !(l < u && n(c = o[l], l, o)) === d && ((d = !d) ? a.lineStart() : a.lineEnd()), + d && a.point(+t(c, l, o), +e(c, l, o)); + } + if (h) return a = null, h + "" || null; + } + return t = "function" == typeof t ? t : void 0 === t ? Qs : Ss(t), + e = "function" == typeof e ? e : void 0 === e ? Ks : Ss(e), + o.x = function(e) { + return arguments.length ? (t = "function" == typeof e ? e : Ss(+e), o) : t; + }, + o.y = function(t) { + return arguments.length ? (e = "function" == typeof t ? t : Ss(+t), o) : e; + }, + o.defined = function(t) { + return arguments.length ? (n = "function" == typeof t ? t : Ss(!!t), o) : n; + }, + o.curve = function(t) { + return arguments.length ? (r = t, null != i && (a = r(i)), o) : r; + }, + o.context = function(t) { + return arguments.length ? (null == t ? i = a = null : a = r(i = t), o) : i; + }, + o; + } + function to(t, e) { + return e < t ? -1 : e > t ? 1 : e >= t ? 0 : NaN; + } + function eo(t) { + return t; + } + function no() {} + function io(t, e, n) { + 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 + e) / 6, + (t._y0 + 4 * t._y1 + n) / 6, + ); + } + function ro(t) { + this._context = t; + } + function ao(t) { + return new ro(t); + } + function so(t) { + this._context = t; + } + function oo(t) { + this._context = t; + } + function lo(t) { + this._context = t; + } + function co(t) { + return t < 0 ? -1 : 1; + } + function ho(t, e, n) { + var i = t._x1 - t._x0, + r = e - t._x1, + a = (t._y1 - t._y0) / (i || r < 0 && -0), + s = (n - t._y1) / (r || i < 0 && -0), + o = (a * r + s * i) / (i + r); + return (co(a) + co(s)) * Math.min(Math.abs(a), Math.abs(s), .5 * Math.abs(o)) || 0; + } + function uo(t, e) { + var n = t._x1 - t._x0; + return n ? (3 * (t._y1 - t._y0) / n - e) / 2 : e; + } + function po(t, e, n) { + var i = t._x0, r = t._y0, a = t._x1, s = t._y1, o = (a - i) / 3; + t._context.bezierCurveTo(i + o, r + o * e, a - o, s - o * n, a, s); + } + function fo(t) { + this._context = t; + } + function go(t) { + this._context = new yo(t); + } + function yo(t) { + this._context = t; + } + function mo(t) { + this._context = t; + } + function bo(t) { + var e, n, i = t.length - 1, r = new Array(i), a = new Array(i), s = new Array(i); + for (r[0] = 0, a[0] = 2, s[0] = t[0] + 2 * t[1], e = 1; e < i - 1; ++e) { + r[e] = 1, a[e] = 4, s[e] = 4 * t[e] + 2 * t[e + 1]; + } + for (r[i - 1] = 2, a[i - 1] = 7, s[i - 1] = 8 * t[i - 1] + t[i], e = 1; e < i; ++e) { + n = r[e] / a[e - 1], a[e] -= n, s[e] -= n * s[e - 1]; + } + for (r[i - 1] = s[i - 1] / a[i - 1], e = i - 2; e >= 0; --e) r[e] = (s[e] - r[e + 1]) / a[e]; + for (a[i - 1] = (t[i] + r[i - 1]) / 2, e = 0; e < i - 1; ++e) a[e] = 2 * t[e + 1] - r[e + 1]; + return [r, a]; + } + function _o(t, e) { + this._context = t, this._t = e; + } + function xo(t, e, n) { + this.k = t, this.x = e, this.y = n; + } + /*! @license DOMPurify 2.4.1 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/2.4.1/LICENSE */ + function vo(t) { + return vo = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator + ? function(t) { + return typeof t; + } + : function(t) { + return t && "function" == typeof Symbol && t.constructor === Symbol && t !== Symbol.prototype + ? "symbol" + : typeof t; + }, + vo(t); + } + function ko(t, e) { + return ko = Object.setPrototypeOf || function(t, e) { + return t.__proto__ = e, t; + }, + ko(t, e); + } + function wo(t, e, n) { + return wo = (function() { + if ("undefined" == typeof Reflect || !Reflect.construct) return !1; + if (Reflect.construct.sham) return !1; + if ("function" == typeof Proxy) return !0; + try { + return Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function() {})), !0; + } catch (t) { + return !1; + } + })() + ? Reflect.construct + : function(t, e, n) { + var i = [null]; + i.push.apply(i, e); + var r = new (Function.bind.apply(t, i))(); + return n && ko(r, n.prototype), r; + }, + wo.apply(null, arguments); + } + function To(t) { + return function(t) { + if (Array.isArray(t)) return Co(t); + }(t) || function(t) { + if ("undefined" != typeof Symbol && null != t[Symbol.iterator] || null != t["@@iterator"]) return Array.from(t); + }(t) || function(t, e) { + if (!t) return; + if ("string" == typeof t) return Co(t, e); + var n = Object.prototype.toString.call(t).slice(8, -1); + "Object" === n && t.constructor && (n = t.constructor.name); + if ("Map" === n || "Set" === n) return Array.from(t); + if ("Arguments" === n || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return Co(t, e); + }(t) || function() { + throw new TypeError( + "Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.", + ); + }(); + } + function Co(t, e) { + (null == e || e > t.length) && (e = t.length); + for (var n = 0, i = new Array(e); n < e; n++) i[n] = t[n]; + return i; + } + Xs.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, e) { + switch (t = +t, e = +e, this._point) { + case 0: + this._point = 1, this._line ? this._context.lineTo(t, e) : this._context.moveTo(t, e); + break; + case 1: + this._point = 2; + default: + this._context.lineTo(t, e); + } + }, + }, + ro.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: + io(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, e) { + switch (t = +t, e = +e, this._point) { + case 0: + this._point = 1, this._line ? this._context.lineTo(t, e) : this._context.moveTo(t, e); + 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: + io(this, t, e); + } + this._x0 = this._x1, this._x1 = t, this._y0 = this._y1, this._y1 = e; + }, + }, + so.prototype = { + areaStart: no, + areaEnd: no, + 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, e) { + switch (t = +t, e = +e, this._point) { + case 0: + this._point = 1, this._x2 = t, this._y2 = e; + break; + case 1: + this._point = 2, this._x3 = t, this._y3 = e; + break; + case 2: + this._point = 3, + this._x4 = t, + this._y4 = e, + this._context.moveTo((this._x0 + 4 * this._x1 + t) / 6, (this._y0 + 4 * this._y1 + e) / 6); + break; + default: + io(this, t, e); + } + this._x0 = this._x1, this._x1 = t, this._y0 = this._y1, this._y1 = e; + }, + }, + oo.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, e) { + switch (t = +t, e = +e, this._point) { + case 0: + this._point = 1; + break; + case 1: + this._point = 2; + break; + case 2: + this._point = 3; + var n = (this._x0 + 4 * this._x1 + t) / 6, i = (this._y0 + 4 * this._y1 + e) / 6; + this._line ? this._context.lineTo(n, i) : this._context.moveTo(n, i); + break; + case 3: + this._point = 4; + default: + io(this, t, e); + } + this._x0 = this._x1, this._x1 = t, this._y0 = this._y1, this._y1 = e; + }, + }, + lo.prototype = { + areaStart: no, + areaEnd: no, + lineStart: function() { + this._point = 0; + }, + lineEnd: function() { + this._point && this._context.closePath(); + }, + point: function(t, e) { + t = +t, e = +e, this._point ? this._context.lineTo(t, e) : (this._point = 1, this._context.moveTo(t, e)); + }, + }, + fo.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: + po(this, this._t0, uo(this, this._t0)); + } + (this._line || 0 !== this._line && 1 === this._point) && this._context.closePath(), this._line = 1 - this._line; + }, + point: function(t, e) { + var n = NaN; + if (e = +e, (t = +t) !== this._x1 || e !== this._y1) { + switch (this._point) { + case 0: + this._point = 1, this._line ? this._context.lineTo(t, e) : this._context.moveTo(t, e); + break; + case 1: + this._point = 2; + break; + case 2: + this._point = 3, po(this, uo(this, n = ho(this, t, e)), n); + break; + default: + po(this, this._t0, n = ho(this, t, e)); + } + this._x0 = this._x1, this._x1 = t, this._y0 = this._y1, this._y1 = e, this._t0 = n; + } + }, + }, + (go.prototype = Object.create(fo.prototype)).point = function(t, e) { + fo.prototype.point.call(this, e, t); + }, + yo.prototype = { + moveTo: function(t, e) { + this._context.moveTo(e, t); + }, + closePath: function() { + this._context.closePath(); + }, + lineTo: function(t, e) { + this._context.lineTo(e, t); + }, + bezierCurveTo: function(t, e, n, i, r, a) { + this._context.bezierCurveTo(e, t, i, n, a, r); + }, + }, + mo.prototype = { + areaStart: function() { + this._line = 0; + }, + areaEnd: function() { + this._line = NaN; + }, + lineStart: function() { + this._x = [], this._y = []; + }, + lineEnd: function() { + var t = this._x, e = this._y, n = t.length; + if (n) { + if (this._line ? this._context.lineTo(t[0], e[0]) : this._context.moveTo(t[0], e[0]), 2 === n) { + this._context.lineTo(t[1], e[1]); + } else {for (var i = bo(t), r = bo(e), a = 0, s = 1; s < n; ++a, ++s) { + this._context.bezierCurveTo(i[0][a], r[0][a], i[1][a], r[1][a], t[s], e[s]); + }} + } + (this._line || 0 !== this._line && 1 === n) && this._context.closePath(), + this._line = 1 - this._line, + this._x = this._y = null; + }, + point: function(t, e) { + this._x.push(+t), this._y.push(+e); + }, + }, + _o.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, e) { + switch (t = +t, e = +e, this._point) { + case 0: + this._point = 1, this._line ? this._context.lineTo(t, e) : this._context.moveTo(t, e); + break; + case 1: + this._point = 2; + default: + if (this._t <= 0) { + this._context.lineTo(this._x, e), this._context.lineTo(t, e); + } else { + var n = this._x * (1 - this._t) + t * this._t; + this._context.lineTo(n, this._y), this._context.lineTo(n, e); + } + } + this._x = t, this._y = e; + }, + }, + xo.prototype = { + constructor: xo, + scale: function(t) { + return 1 === t ? this : new xo(this.k * t, this.x, this.y); + }, + translate: function(t, e) { + return 0 === t & 0 === e ? this : new xo(this.k, this.x + this.k * t, this.y + this.k * e); + }, + apply: function(t) { + return [t[0] * this.k + this.x, t[1] * this.k + this.y]; + }, + applyX: function(t) { + return t * this.k + this.x; + }, + applyY: function(t) { + return t * this.k + this.y; + }, + invert: function(t) { + return [(t[0] - this.x) / this.k, (t[1] - this.y) / this.k]; + }, + invertX: function(t) { + return (t - this.x) / this.k; + }, + invertY: function(t) { + return (t - this.y) / this.k; + }, + rescaleX: function(t) { + return t.copy().domain(t.range().map(this.invertX, this).map(t.invert, t)); + }, + rescaleY: function(t) { + return t.copy().domain(t.range().map(this.invertY, this).map(t.invert, t)); + }, + toString: function() { + return "translate(" + this.x + "," + this.y + ") scale(" + this.k + ")"; + }, + }, + new xo(1, 0, 0), + xo.prototype; + var Eo = Object.hasOwnProperty, + So = Object.setPrototypeOf, + Ao = Object.isFrozen, + Do = Object.getPrototypeOf, + Lo = Object.getOwnPropertyDescriptor, + Oo = Object.freeze, + No = Object.seal, + Mo = Object.create, + Bo = "undefined" != typeof Reflect && Reflect, + Io = Bo.apply, + Fo = Bo.construct; + Io || (Io = function(t, e, n) { + return t.apply(e, n); + }), + Oo || (Oo = function(t) { + return t; + }), + No || (No = function(t) { + return t; + }), + Fo || (Fo = function(t, e) { + return wo(t, To(e)); + }); + var Ro, + $o = Xo(Array.prototype.forEach), + Po = Xo(Array.prototype.pop), + Yo = Xo(Array.prototype.push), + jo = Xo(String.prototype.toLowerCase), + zo = Xo(String.prototype.toString), + Uo = Xo(String.prototype.match), + Wo = Xo(String.prototype.replace), + Ho = Xo(String.prototype.indexOf), + qo = Xo(String.prototype.trim), + Vo = Xo(RegExp.prototype.test), + Go = (Ro = TypeError, function() { + for (var t = arguments.length, e = new Array(t), n = 0; n < t; n++) { + e[n] = arguments[n]; + } + return Fo(Ro, e); + }); + function Xo(t) { + return function(e) { + for (var n = arguments.length, i = new Array(n > 1 ? n - 1 : 0), r = 1; r < n; r++) { + i[r - 1] = arguments[r]; + } + return Io(t, e, i); + }; + } + function Zo(t, e, n) { + n = n || jo, So && So(t, null); + for (var i = e.length; i--;) { + var r = e[i]; + if ("string" == typeof r) { + var a = n(r); + a !== r && (Ao(e) || (e[i] = a), r = a); + } + t[r] = !0; + } + return t; + } + function Qo(t) { + var e, n = Mo(null); + for (e in t) Io(Eo, t, [e]) && (n[e] = t[e]); + return n; + } + function Ko(t, e) { + for (; null !== t;) { + var n = Lo(t, e); + if (n) { + if (n.get) return Xo(n.get); + if ("function" == typeof n.value) return Xo(n.value); + } + t = Do(t); + } + return function(t) { + return console.warn("fallback value for", t), null; + }; + } + var Jo = Oo([ + "a", + "abbr", + "acronym", + "address", + "area", + "article", + "aside", + "audio", + "b", + "bdi", + "bdo", + "big", + "blink", + "blockquote", + "body", + "br", + "button", + "canvas", + "caption", + "center", + "cite", + "code", + "col", + "colgroup", + "content", + "data", + "datalist", + "dd", + "decorator", + "del", + "details", + "dfn", + "dialog", + "dir", + "div", + "dl", + "dt", + "element", + "em", + "fieldset", + "figcaption", + "figure", + "font", + "footer", + "form", + "h1", + "h2", + "h3", + "h4", + "h5", + "h6", + "head", + "header", + "hgroup", + "hr", + "html", + "i", + "img", + "input", + "ins", + "kbd", + "label", + "legend", + "li", + "main", + "map", + "mark", + "marquee", + "menu", + "menuitem", + "meter", + "nav", + "nobr", + "ol", + "optgroup", + "option", + "output", + "p", + "picture", + "pre", + "progress", + "q", + "rp", + "rt", + "ruby", + "s", + "samp", + "section", + "select", + "shadow", + "small", + "source", + "spacer", + "span", + "strike", + "strong", + "style", + "sub", + "summary", + "sup", + "table", + "tbody", + "td", + "template", + "textarea", + "tfoot", + "th", + "thead", + "time", + "tr", + "track", + "tt", + "u", + "ul", + "var", + "video", + "wbr", + ]), + tl = Oo([ + "svg", + "a", + "altglyph", + "altglyphdef", + "altglyphitem", + "animatecolor", + "animatemotion", + "animatetransform", + "circle", + "clippath", + "defs", + "desc", + "ellipse", + "filter", + "font", + "g", + "glyph", + "glyphref", + "hkern", + "image", + "line", + "lineargradient", + "marker", + "mask", + "metadata", + "mpath", + "path", + "pattern", + "polygon", + "polyline", + "radialgradient", + "rect", + "stop", + "style", + "switch", + "symbol", + "text", + "textpath", + "title", + "tref", + "tspan", + "view", + "vkern", + ]), + el = Oo([ + "feBlend", + "feColorMatrix", + "feComponentTransfer", + "feComposite", + "feConvolveMatrix", + "feDiffuseLighting", + "feDisplacementMap", + "feDistantLight", + "feFlood", + "feFuncA", + "feFuncB", + "feFuncG", + "feFuncR", + "feGaussianBlur", + "feImage", + "feMerge", + "feMergeNode", + "feMorphology", + "feOffset", + "fePointLight", + "feSpecularLighting", + "feSpotLight", + "feTile", + "feTurbulence", + ]), + nl = Oo([ + "animate", + "color-profile", + "cursor", + "discard", + "fedropshadow", + "font-face", + "font-face-format", + "font-face-name", + "font-face-src", + "font-face-uri", + "foreignobject", + "hatch", + "hatchpath", + "mesh", + "meshgradient", + "meshpatch", + "meshrow", + "missing-glyph", + "script", + "set", + "solidcolor", + "unknown", + "use", + ]), + il = Oo([ + "math", + "menclose", + "merror", + "mfenced", + "mfrac", + "mglyph", + "mi", + "mlabeledtr", + "mmultiscripts", + "mn", + "mo", + "mover", + "mpadded", + "mphantom", + "mroot", + "mrow", + "ms", + "mspace", + "msqrt", + "mstyle", + "msub", + "msup", + "msubsup", + "mtable", + "mtd", + "mtext", + "mtr", + "munder", + "munderover", + ]), + rl = Oo([ + "maction", + "maligngroup", + "malignmark", + "mlongdiv", + "mscarries", + "mscarry", + "msgroup", + "mstack", + "msline", + "msrow", + "semantics", + "annotation", + "annotation-xml", + "mprescripts", + "none", + ]), + al = Oo(["#text"]), + sl = Oo([ + "accept", + "action", + "align", + "alt", + "autocapitalize", + "autocomplete", + "autopictureinpicture", + "autoplay", + "background", + "bgcolor", + "border", + "capture", + "cellpadding", + "cellspacing", + "checked", + "cite", + "class", + "clear", + "color", + "cols", + "colspan", + "controls", + "controlslist", + "coords", + "crossorigin", + "datetime", + "decoding", + "default", + "dir", + "disabled", + "disablepictureinpicture", + "disableremoteplayback", + "download", + "draggable", + "enctype", + "enterkeyhint", + "face", + "for", + "headers", + "height", + "hidden", + "high", + "href", + "hreflang", + "id", + "inputmode", + "integrity", + "ismap", + "kind", + "label", + "lang", + "list", + "loading", + "loop", + "low", + "max", + "maxlength", + "media", + "method", + "min", + "minlength", + "multiple", + "muted", + "name", + "nonce", + "noshade", + "novalidate", + "nowrap", + "open", + "optimum", + "pattern", + "placeholder", + "playsinline", + "poster", + "preload", + "pubdate", + "radiogroup", + "readonly", + "rel", + "required", + "rev", + "reversed", + "role", + "rows", + "rowspan", + "spellcheck", + "scope", + "selected", + "shape", + "size", + "sizes", + "span", + "srclang", + "start", + "src", + "srcset", + "step", + "style", + "summary", + "tabindex", + "title", + "translate", + "type", + "usemap", + "valign", + "value", + "width", + "xmlns", + "slot", + ]), + ol = Oo([ + "accent-height", + "accumulate", + "additive", + "alignment-baseline", + "ascent", + "attributename", + "attributetype", + "azimuth", + "basefrequency", + "baseline-shift", + "begin", + "bias", + "by", + "class", + "clip", + "clippathunits", + "clip-path", + "clip-rule", + "color", + "color-interpolation", + "color-interpolation-filters", + "color-profile", + "color-rendering", + "cx", + "cy", + "d", + "dx", + "dy", + "diffuseconstant", + "direction", + "display", + "divisor", + "dur", + "edgemode", + "elevation", + "end", + "fill", + "fill-opacity", + "fill-rule", + "filter", + "filterunits", + "flood-color", + "flood-opacity", + "font-family", + "font-size", + "font-size-adjust", + "font-stretch", + "font-style", + "font-variant", + "font-weight", + "fx", + "fy", + "g1", + "g2", + "glyph-name", + "glyphref", + "gradientunits", + "gradienttransform", + "height", + "href", + "id", + "image-rendering", + "in", + "in2", + "k", + "k1", + "k2", + "k3", + "k4", + "kerning", + "keypoints", + "keysplines", + "keytimes", + "lang", + "lengthadjust", + "letter-spacing", + "kernelmatrix", + "kernelunitlength", + "lighting-color", + "local", + "marker-end", + "marker-mid", + "marker-start", + "markerheight", + "markerunits", + "markerwidth", + "maskcontentunits", + "maskunits", + "max", + "mask", + "media", + "method", + "mode", + "min", + "name", + "numoctaves", + "offset", + "operator", + "opacity", + "order", + "orient", + "orientation", + "origin", + "overflow", + "paint-order", + "path", + "pathlength", + "patterncontentunits", + "patterntransform", + "patternunits", + "points", + "preservealpha", + "preserveaspectratio", + "primitiveunits", + "r", + "rx", + "ry", + "radius", + "refx", + "refy", + "repeatcount", + "repeatdur", + "restart", + "result", + "rotate", + "scale", + "seed", + "shape-rendering", + "specularconstant", + "specularexponent", + "spreadmethod", + "startoffset", + "stddeviation", + "stitchtiles", + "stop-color", + "stop-opacity", + "stroke-dasharray", + "stroke-dashoffset", + "stroke-linecap", + "stroke-linejoin", + "stroke-miterlimit", + "stroke-opacity", + "stroke", + "stroke-width", + "style", + "surfacescale", + "systemlanguage", + "tabindex", + "targetx", + "targety", + "transform", + "transform-origin", + "text-anchor", + "text-decoration", + "text-rendering", + "textlength", + "type", + "u1", + "u2", + "unicode", + "values", + "viewbox", + "visibility", + "version", + "vert-adv-y", + "vert-origin-x", + "vert-origin-y", + "width", + "word-spacing", + "wrap", + "writing-mode", + "xchannelselector", + "ychannelselector", + "x", + "x1", + "x2", + "xmlns", + "y", + "y1", + "y2", + "z", + "zoomandpan", + ]), + ll = Oo([ + "accent", + "accentunder", + "align", + "bevelled", + "close", + "columnsalign", + "columnlines", + "columnspan", + "denomalign", + "depth", + "dir", + "display", + "displaystyle", + "encoding", + "fence", + "frame", + "height", + "href", + "id", + "largeop", + "length", + "linethickness", + "lspace", + "lquote", + "mathbackground", + "mathcolor", + "mathsize", + "mathvariant", + "maxsize", + "minsize", + "movablelimits", + "notation", + "numalign", + "open", + "rowalign", + "rowlines", + "rowspacing", + "rowspan", + "rspace", + "rquote", + "scriptlevel", + "scriptminsize", + "scriptsizemultiplier", + "selection", + "separator", + "separators", + "stretchy", + "subscriptshift", + "supscriptshift", + "symmetric", + "voffset", + "width", + "xmlns", + ]), + cl = Oo(["xlink:href", "xml:id", "xlink:title", "xml:space", "xmlns:xlink"]), + hl = No(/\{\{[\w\W]*|[\w\W]*\}\}/gm), + ul = No(/<%[\w\W]*|[\w\W]*%>/gm), + dl = No(/\${[\w\W]*}/gm), + pl = No(/^data-[\-\w.\u00B7-\uFFFF]/), + fl = No(/^aria-[\-\w]+$/), + gl = No(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|cid|xmpp):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i), + yl = No(/^(?:\w+script|data):/i), + ml = No(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g), + bl = No(/^html$/i), + _l = function() { + return "undefined" == typeof window ? null : window; + }, + xl = function(t, e) { + if ("object" !== vo(t) || "function" != typeof t.createPolicy) return null; + var n = null, i = "data-tt-policy-suffix"; + e.currentScript && e.currentScript.hasAttribute(i) && (n = e.currentScript.getAttribute(i)); + var r = "dompurify" + (n ? "#" + n : ""); + try { + return t.createPolicy(r, { + createHTML: function(t) { + return t; + }, + createScriptURL: function(t) { + return t; + }, + }); + } catch (t) { + return console.warn("TrustedTypes policy " + r + " could not be created."), null; + } + }; + var vl = function t() { + var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : _l(), + n = function(e) { + return t(e); + }; + if (n.version = "2.4.1", n.removed = [], !e || !e.document || 9 !== e.document.nodeType) { + return n.isSupported = !1, n; + } + var i = e.document, + r = e.document, + a = e.DocumentFragment, + s = e.HTMLTemplateElement, + o = e.Node, + l = e.Element, + c = e.NodeFilter, + h = e.NamedNodeMap, + u = void 0 === h ? e.NamedNodeMap || e.MozNamedAttrMap : h, + d = e.HTMLFormElement, + p = e.DOMParser, + f = e.trustedTypes, + g = l.prototype, + y = Ko(g, "cloneNode"), + m = Ko(g, "nextSibling"), + b = Ko(g, "childNodes"), + _ = Ko(g, "parentNode"); + if ("function" == typeof s) { + var x = r.createElement("template"); + x.content && x.content.ownerDocument && (r = x.content.ownerDocument); + } + var v = xl(f, i), + k = v ? v.createHTML("") : "", + w = r, + T = w.implementation, + C = w.createNodeIterator, + E = w.createDocumentFragment, + S = w.getElementsByTagName, + A = i.importNode, + D = {}; + try { + D = Qo(r).documentMode ? r.documentMode : {}; + } catch (t) {} + var L = {}; + n.isSupported = "function" == typeof _ && T && void 0 !== T.createHTMLDocument && 9 !== D; + var O, + N, + M = hl, + B = ul, + I = dl, + F = pl, + R = fl, + $ = yl, + P = ml, + Y = gl, + j = null, + z = Zo({}, [].concat(To(Jo), To(tl), To(el), To(il), To(al))), + U = null, + W = Zo({}, [].concat(To(sl), To(ol), To(ll), To(cl))), + H = Object.seal( + Object.create(null, { + tagNameCheck: { writable: !0, configurable: !1, enumerable: !0, value: null }, + attributeNameCheck: { writable: !0, configurable: !1, enumerable: !0, value: null }, + allowCustomizedBuiltInElements: { writable: !0, configurable: !1, enumerable: !0, value: !1 }, + }), + ), + q = null, + V = null, + G = !0, + X = !0, + Z = !1, + Q = !1, + K = !1, + J = !1, + tt = !1, + et = !1, + nt = !1, + it = !1, + rt = !0, + at = !1, + st = !0, + ot = !1, + lt = {}, + ct = null, + ht = Zo({}, [ + "annotation-xml", + "audio", + "colgroup", + "desc", + "foreignobject", + "head", + "iframe", + "math", + "mi", + "mn", + "mo", + "ms", + "mtext", + "noembed", + "noframes", + "noscript", + "plaintext", + "script", + "style", + "svg", + "template", + "thead", + "title", + "video", + "xmp", + ]), + ut = null, + dt = Zo({}, ["audio", "video", "img", "source", "image", "track"]), + pt = null, + ft = Zo({}, [ + "alt", + "class", + "for", + "id", + "label", + "name", + "pattern", + "placeholder", + "role", + "summary", + "title", + "value", + "style", + "xmlns", + ]), + gt = "http://www.w3.org/1998/Math/MathML", + yt = "http://www.w3.org/2000/svg", + mt = "http://www.w3.org/1999/xhtml", + bt = mt, + _t = !1, + xt = null, + vt = Zo({}, [gt, yt, mt], zo), + kt = ["application/xhtml+xml", "text/html"], + wt = null, + Tt = r.createElement("form"), + Ct = function(t) { + return t instanceof RegExp || t instanceof Function; + }, + Et = function(t) { + wt && wt === t + || (t && "object" === vo(t) || (t = {}), + t = Qo(t), + O = O = -1 === kt.indexOf(t.PARSER_MEDIA_TYPE) ? "text/html" : t.PARSER_MEDIA_TYPE, + N = "application/xhtml+xml" === O ? zo : jo, + j = "ALLOWED_TAGS" in t ? Zo({}, t.ALLOWED_TAGS, N) : z, + U = "ALLOWED_ATTR" in t ? Zo({}, t.ALLOWED_ATTR, N) : W, + xt = "ALLOWED_NAMESPACES" in t ? Zo({}, t.ALLOWED_NAMESPACES, zo) : vt, + pt = "ADD_URI_SAFE_ATTR" in t ? Zo(Qo(ft), t.ADD_URI_SAFE_ATTR, N) : ft, + ut = "ADD_DATA_URI_TAGS" in t ? Zo(Qo(dt), t.ADD_DATA_URI_TAGS, N) : dt, + ct = "FORBID_CONTENTS" in t ? Zo({}, t.FORBID_CONTENTS, N) : ht, + q = "FORBID_TAGS" in t ? Zo({}, t.FORBID_TAGS, N) : {}, + V = "FORBID_ATTR" in t ? Zo({}, t.FORBID_ATTR, N) : {}, + lt = "USE_PROFILES" in t && t.USE_PROFILES, + G = !1 !== t.ALLOW_ARIA_ATTR, + X = !1 !== t.ALLOW_DATA_ATTR, + Z = t.ALLOW_UNKNOWN_PROTOCOLS || !1, + Q = t.SAFE_FOR_TEMPLATES || !1, + K = t.WHOLE_DOCUMENT || !1, + et = t.RETURN_DOM || !1, + nt = t.RETURN_DOM_FRAGMENT || !1, + it = t.RETURN_TRUSTED_TYPE || !1, + tt = t.FORCE_BODY || !1, + rt = !1 !== t.SANITIZE_DOM, + at = t.SANITIZE_NAMED_PROPS || !1, + st = !1 !== t.KEEP_CONTENT, + ot = t.IN_PLACE || !1, + Y = t.ALLOWED_URI_REGEXP || Y, + bt = t.NAMESPACE || mt, + t.CUSTOM_ELEMENT_HANDLING && Ct(t.CUSTOM_ELEMENT_HANDLING.tagNameCheck) + && (H.tagNameCheck = t.CUSTOM_ELEMENT_HANDLING.tagNameCheck), + t.CUSTOM_ELEMENT_HANDLING && Ct(t.CUSTOM_ELEMENT_HANDLING.attributeNameCheck) + && (H.attributeNameCheck = t.CUSTOM_ELEMENT_HANDLING.attributeNameCheck), + t.CUSTOM_ELEMENT_HANDLING && "boolean" == typeof t.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements + && (H.allowCustomizedBuiltInElements = t.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements), + Q && (X = !1), + nt && (et = !0), + lt + && (j = Zo({}, To(al)), + U = [], + !0 === lt.html && (Zo(j, Jo), Zo(U, sl)), + !0 === lt.svg && (Zo(j, tl), Zo(U, ol), Zo(U, cl)), + !0 === lt.svgFilters && (Zo(j, el), Zo(U, ol), Zo(U, cl)), + !0 === lt.mathMl && (Zo(j, il), Zo(U, ll), Zo(U, cl))), + t.ADD_TAGS && (j === z && (j = Qo(j)), Zo(j, t.ADD_TAGS, N)), + t.ADD_ATTR && (U === W && (U = Qo(U)), Zo(U, t.ADD_ATTR, N)), + t.ADD_URI_SAFE_ATTR && Zo(pt, t.ADD_URI_SAFE_ATTR, N), + t.FORBID_CONTENTS && (ct === ht && (ct = Qo(ct)), Zo(ct, t.FORBID_CONTENTS, N)), + st && (j["#text"] = !0), + K && Zo(j, ["html", "head", "body"]), + j.table && (Zo(j, ["tbody"]), delete q.tbody), + Oo && Oo(t), + wt = t); + }, + St = Zo({}, ["mi", "mo", "mn", "ms", "mtext"]), + At = Zo({}, ["foreignobject", "desc", "title", "annotation-xml"]), + Dt = Zo({}, ["title", "style", "font", "a", "script"]), + Lt = Zo({}, tl); + Zo(Lt, el), Zo(Lt, nl); + var Ot = Zo({}, il); + Zo(Ot, rl); + var Nt = function(t) { + Yo(n.removed, { element: t }); + try { + t.parentNode.removeChild(t); + } catch (e) { + try { + t.outerHTML = k; + } catch (e) { + t.remove(); + } + } + }, + Mt = function(t, e) { + try { + Yo(n.removed, { attribute: e.getAttributeNode(t), from: e }); + } catch (t) { + Yo(n.removed, { attribute: null, from: e }); + } + if (e.removeAttribute(t), "is" === t && !U[t]) { + if (et || nt) { + try { + Nt(e); + } catch (t) {} + } else {try { + e.setAttribute(t, ""); + } catch (t) {}} + } + }, + Bt = function(t) { + var e, n; + if (tt) t = "" + t; + else { + var i = Uo(t, /^[\r\n\t ]+/); + n = i && i[0]; + } + "application/xhtml+xml" === O && bt === mt + && (t = "" + t + ""); + var a = v ? v.createHTML(t) : t; + if (bt === mt) { + try { + e = (new p()).parseFromString(a, O); + } catch (t) {} + } + if (!e || !e.documentElement) { + e = T.createDocument(bt, "template", null); + try { + e.documentElement.innerHTML = _t ? "" : a; + } catch (t) {} + } + var s = e.body || e.documentElement; + return t && n && s.insertBefore(r.createTextNode(n), s.childNodes[0] || null), + bt === mt ? S.call(e, K ? "html" : "body")[0] : K ? e.documentElement : s; + }, + It = function(t) { + return C.call(t.ownerDocument || t, t, c.SHOW_ELEMENT | c.SHOW_COMMENT | c.SHOW_TEXT, null, !1); + }, + Ft = function(t) { + return "object" === vo(o) + ? t instanceof o + : t && "object" === vo(t) && "number" == typeof t.nodeType && "string" == typeof t.nodeName; + }, + Rt = function(t, e, i) { + L[t] && $o(L[t], function(t) { + t.call(n, e, i, wt); + }); + }, + $t = function(t) { + var e, i; + if ( + Rt("beforeSanitizeElements", t, null), + (i = t) instanceof d + && ("string" != typeof i.nodeName || "string" != typeof i.textContent || "function" != typeof i.removeChild + || !(i.attributes instanceof u) || "function" != typeof i.removeAttribute + || "function" != typeof i.setAttribute || "string" != typeof i.namespaceURI + || "function" != typeof i.insertBefore || "function" != typeof i.hasChildNodes) + ) return Nt(t), !0; + if (Vo(/[\u0080-\uFFFF]/, t.nodeName)) return Nt(t), !0; + var r = N(t.nodeName); + if ( + Rt("uponSanitizeElement", t, { tagName: r, allowedTags: j }), + t.hasChildNodes() && !Ft(t.firstElementChild) && (!Ft(t.content) || !Ft(t.content.firstElementChild)) + && Vo(/<[/\w]/g, t.innerHTML) && Vo(/<[/\w]/g, t.textContent) + ) return Nt(t), !0; + if ("select" === r && Vo(/