diff --git a/builds/feed.xml b/builds/feed.xml index c39cc2f3..34a68ebd 100644 --- a/builds/feed.xml +++ b/builds/feed.xml @@ -4,8 +4,8 @@ MyWarp Development Builds Provides information about succesfull MyWarp builds. https://mywarp.github.io/builds/ - Thu, 8 Jun 2023 00:00:00 +0000 - Fri, 23 Jun 2023 22:24:02 +0000 + Thu, 8 Oct 2020 00:00:00 +0000 + Mon, 17 Jul 2023 21:19:33 +0000 https://mywarp.github.io/favicon-32x32.png MyWarp Development Builds @@ -14,109 +14,109 @@ 32 - Build No. 139 (2a7f1ab1f7) - Bump spigot-api from 1.17.1-R0.1-SNAPSHOT to 1.18-R0.1-SNAPSHOT (#376) - Wed, 1 Dec 2021 00:00:00 +0000 - https://mywarp.github.io/builds/139.html - https://mywarp.github.io/builds/139.html + Build No. 90 (67419622cc) + Bump spigot-api from 1.16.5-R0.1-SNAPSHOT to 1.17-R0.1-SNAPSHOT (#328) + Mon, 14 Jun 2021 00:00:00 +0000 + https://mywarp.github.io/builds/90.html + https://mywarp.github.io/builds/90.html - Build No. 60 (5e7c1e1b5b) - Bump flyway-core from 7.7.3 to 7.8.0 (#314) - Fri, 16 Apr 2021 00:00:00 +0000 - https://mywarp.github.io/builds/60.html - https://mywarp.github.io/builds/60.html + Build No. 32 (a9d333ad81) + Bump jooq-checker from 3.14.6 to 3.14.7 (#299) + Wed, 3 Feb 2021 00:00:00 +0000 + https://mywarp.github.io/builds/32.html + https://mywarp.github.io/builds/32.html - Build No. 1818 (3264ee2b35) - [Bukkit] Remove deprecated chunk pre-loading - Mon, 2 Dec 2019 00:00:00 +0000 - https://mywarp.github.io/builds/1818.html - https://mywarp.github.io/builds/1818.html + Build No. 1807 (7ebc83c87f) + Fix link to build website + Mon, 2 Sep 2019 00:00:00 +0000 + https://mywarp.github.io/builds/1807.html + https://mywarp.github.io/builds/1807.html - Build No. 88 (00be889301) - Bump flyway-core from 7.9.2 to 7.10.0 (#327) - Fri, 11 Jun 2021 00:00:00 +0000 - https://mywarp.github.io/builds/88.html - https://mywarp.github.io/builds/88.html + Build No. 239 (55a421a616) + Add downloads badge to the README + Wed, 17 Aug 2022 00:00:00 +0000 + https://mywarp.github.io/builds/239.html + https://mywarp.github.io/builds/239.html - Build No. 86 (42d69122ef) - Bump flyway-core from 7.9.1 to 7.9.2 (#326) - Mon, 7 Jun 2021 00:00:00 +0000 - https://mywarp.github.io/builds/86.html - https://mywarp.github.io/builds/86.html + Build No. 1889 (80d7f00a9f) + Bump flyway-core from 7.0.2 to 7.0.3 (#267) + Thu, 15 Oct 2020 00:00:00 +0000 + https://mywarp.github.io/builds/1889.html + https://mywarp.github.io/builds/1889.html - Build No. 1921 (8eaccaea65) - Bump jooq-checker from 3.14.1 to 3.14.3 (#280) - Wed, 11 Nov 2020 00:00:00 +0000 - https://mywarp.github.io/builds/1921.html - https://mywarp.github.io/builds/1921.html + Build No. 1833 (18b42a1c8c) + Bump squirrelid from 0.1.0 to 0.2.0 (#229) + Fri, 27 Dec 2019 00:00:00 +0000 + https://mywarp.github.io/builds/1833.html + https://mywarp.github.io/builds/1833.html - Build No. 1821 (e3c967e693) - Update Flyway to 6.1.1 - Fri, 13 Dec 2019 00:00:00 +0000 - https://mywarp.github.io/builds/1821.html - https://mywarp.github.io/builds/1821.html + Build No. 250 (009cfc0659) + Bump spigot-api from 1.19.2-R0.1-SNAPSHOT to 1.19.3-R0.1-SNAPSHOT (#465) + Tue, 27 Dec 2022 00:00:00 +0000 + https://mywarp.github.io/builds/250.html + https://mywarp.github.io/builds/250.html - Build No. 1815 (77239c4f28) - Release 3.1 - Sun, 1 Dec 2019 00:00:00 +0000 - https://mywarp.github.io/builds/1815.html - https://mywarp.github.io/builds/1815.html + Build No. 1910 (488af1d2f0) + Bump ru.vyarus.animalsniffer from 1.5.1 to 1.5.2 (#276) + Thu, 5 Nov 2020 00:00:00 +0000 + https://mywarp.github.io/builds/1910.html + https://mywarp.github.io/builds/1910.html - Build No. 1864 (0440f00135) - Correctly display the invitee's name - Sat, 22 Aug 2020 00:00:00 +0000 - https://mywarp.github.io/builds/1864.html - https://mywarp.github.io/builds/1864.html + Build No. 1859 (1b2f2f1894) + Bump spigot-api from 1.16.1-R0.1-SNAPSHOT to 1.16.2-R0.1-SNAPSHOT (#252) + Wed, 12 Aug 2020 00:00:00 +0000 + https://mywarp.github.io/builds/1859.html + https://mywarp.github.io/builds/1859.html - Build No. 250 (009cfc0659) - Bump spigot-api from 1.19.2-R0.1-SNAPSHOT to 1.19.3-R0.1-SNAPSHOT (#465) - Tue, 27 Dec 2022 00:00:00 +0000 - https://mywarp.github.io/builds/250.html - https://mywarp.github.io/builds/250.html + Build No. 1828 (94cd688516) + Bump com.github.johnrengelman.shadow from 5.1.0 to 5.2.0 (#228) + Fri, 20 Dec 2019 00:00:00 +0000 + https://mywarp.github.io/builds/1828.html + https://mywarp.github.io/builds/1828.html - Build No. 23 (3b91129114) - Bump jooq-checker from 3.14.4 to 3.14.6 (#293) - Wed, 27 Jan 2021 00:00:00 +0000 - https://mywarp.github.io/builds/23.html - https://mywarp.github.io/builds/23.html + Build No. 1885 (5be86ff3de) + Improve warning if a limit's world does not exist + Thu, 8 Oct 2020 00:00:00 +0000 + https://mywarp.github.io/builds/1885.html + https://mywarp.github.io/builds/1885.html - Build No. 145 (aa6a8d46ef) - Bump spigot-api from 1.18-R0.1-SNAPSHOT to 1.18.1-R0.1-SNAPSHOT (#381) - Sat, 11 Dec 2021 00:00:00 +0000 - https://mywarp.github.io/builds/145.html - https://mywarp.github.io/builds/145.html + Build No. 1891 (5d3f133462) + Bump flyway-core from 7.0.3 to 7.0.4 (#268) + Mon, 19 Oct 2020 00:00:00 +0000 + https://mywarp.github.io/builds/1891.html + https://mywarp.github.io/builds/1891.html - Build No. 183 (7e0b9b40e0) - Bump spigot-api from 1.18.1-R0.1-SNAPSHOT to 1.18.2-R0.1-SNAPSHOT (#412) - Fri, 4 Mar 2022 00:00:00 +0000 - https://mywarp.github.io/builds/183.html - https://mywarp.github.io/builds/183.html + Build No. 228 (a5406964d9) + Bump spigot-api from 1.18.2-R0.1-SNAPSHOT to 1.19.2-R0.1-SNAPSHOT (#451) + Tue, 16 Aug 2022 00:00:00 +0000 + https://mywarp.github.io/builds/228.html + https://mywarp.github.io/builds/228.html - Build No. 1854 (7ca3776d58) - Update exception.no-such-player message - Thu, 6 Aug 2020 00:00:00 +0000 - https://mywarp.github.io/builds/1854.html - https://mywarp.github.io/builds/1854.html + Build No. 8 (1be4341292) + Bump flyway-core from 7.3.1 to 7.3.2 (#288) + Fri, 18 Dec 2020 00:00:00 +0000 + https://mywarp.github.io/builds/8.html + https://mywarp.github.io/builds/8.html - Build No. 1916 (667ff808e4) - Bump flyway-core from 7.1.1 to 7.2.0 (#279) - Wed, 11 Nov 2020 00:00:00 +0000 - https://mywarp.github.io/builds/1916.html - https://mywarp.github.io/builds/1916.html + Build No. 1749 (c3cbe61) + Release 3.0 + Tue, 1 Jan 2019 00:00:00 +0000 + https://mywarp.github.io/builds/1749.html + https://mywarp.github.io/builds/1749.html Build No. 1775 (86d9f59) @@ -126,109 +126,165 @@ https://mywarp.github.io/builds/1775.html - Build No. 18 (aa21fbbc35) - Bump spigot-api from 1.16.4-R0.1-SNAPSHOT to 1.16.5-R0.1-SNAPSHOT (#291) - Mon, 18 Jan 2021 00:00:00 +0000 - https://mywarp.github.io/builds/18.html - https://mywarp.github.io/builds/18.html + Build No. 1804 (8444615) + [Travis] Fix environment variable definition, 2nd attempt + Sat, 31 Aug 2019 00:00:00 +0000 + https://mywarp.github.io/builds/1804.html + https://mywarp.github.io/builds/1804.html - Build No. 1839 (af154f27d0) - Bump bukkit from 1.15.1-R0.1-SNAPSHOT to 1.15.2-R0.1-SNAPSHOT (#233) - Thu, 23 Jan 2020 00:00:00 +0000 - https://mywarp.github.io/builds/1839.html - https://mywarp.github.io/builds/1839.html + Build No. 7 (cfde2ab9dc) + Remove Travis. + Fri, 18 Dec 2020 00:00:00 +0000 + https://mywarp.github.io/builds/7.html + https://mywarp.github.io/builds/7.html - Build No. 1870 (40e6b0b6f1) - Bump flyway-core from 6.5.6 to 6.5.7 (#260) - Wed, 23 Sep 2020 00:00:00 +0000 - https://mywarp.github.io/builds/1870.html - https://mywarp.github.io/builds/1870.html + Build No. 257 (cad233e3a5) + Bump org.spigotmc:spigot-api (#472) + Wed, 15 Mar 2023 00:00:00 +0000 + https://mywarp.github.io/builds/257.html + https://mywarp.github.io/builds/257.html - Build No. 72 (13f021d784) - Bump flyway-core from 7.8.2 to 7.9.0 (#320) - Fri, 14 May 2021 00:00:00 +0000 - https://mywarp.github.io/builds/72.html - https://mywarp.github.io/builds/72.html + Build No. 1819 (b1f5e3ff8b) + [Bukkit] Simplify chunk pre-loading + Thu, 5 Dec 2019 00:00:00 +0000 + https://mywarp.github.io/builds/1819.html + https://mywarp.github.io/builds/1819.html - Build No. 10 (4841409a43) - Deploy released artifacts to GitHub Releases (experimental) - Sat, 19 Dec 2020 00:00:00 +0000 - https://mywarp.github.io/builds/10.html - https://mywarp.github.io/builds/10.html + Build No. 1908 (5d17329b19) + Bump spigot-api from 1.16.3-R0.1-SNAPSHOT to 1.16.4-R0.1-SNAPSHOT (#275) + Tue, 3 Nov 2020 00:00:00 +0000 + https://mywarp.github.io/builds/1908.html + https://mywarp.github.io/builds/1908.html - Build No. 1753 (24de5b6) - [Bukkit] Add missing api-version to plugin.yml - Sat, 5 Jan 2019 00:00:00 +0000 - https://mywarp.github.io/builds/1753.html - https://mywarp.github.io/builds/1753.html + Build No. 1842 (d8bab4f38c) + Bump com.palantir.git-version from 0.12.2 to 0.12.3 (#236) + Mon, 30 Mar 2020 00:00:00 +0000 + https://mywarp.github.io/builds/1842.html + https://mywarp.github.io/builds/1842.html - Build No. 1778 (1b75d82) - Fix interaction event cancellation - Fri, 29 Mar 2019 00:00:00 +0000 - https://mywarp.github.io/builds/1778.html - https://mywarp.github.io/builds/1778.html + Build No. 1835 (d1f8450bfe) + Bump slf4j-api from 1.7.25 to 1.7.30 (#226) + Fri, 27 Dec 2019 00:00:00 +0000 + https://mywarp.github.io/builds/1835.html + https://mywarp.github.io/builds/1835.html - Build No. 1812 (1ebc24b1c0) - Update JOOQ to 3.12.3 - Sun, 1 Dec 2019 00:00:00 +0000 - https://mywarp.github.io/builds/1812.html - https://mywarp.github.io/builds/1812.html + Build No. 1906 (f4cc2a3ad1) + Bump flyway-core from 7.1.0 to 7.1.1 (#274) + Fri, 30 Oct 2020 00:00:00 +0000 + https://mywarp.github.io/builds/1906.html + https://mywarp.github.io/builds/1906.html - Build No. 1877 (c8e1d631d3) - Bump jooq-checker from 3.13.4 to 3.13.5 (#262) - Mon, 5 Oct 2020 00:00:00 +0000 - https://mywarp.github.io/builds/1877.html - https://mywarp.github.io/builds/1877.html + Build No. 1925 (634c34fd88) + Bump flyway-core from 7.2.1 to 7.3.0 (#284) + Thu, 26 Nov 2020 00:00:00 +0000 + https://mywarp.github.io/builds/1925.html + https://mywarp.github.io/builds/1925.html - Build No. 271 (57143930ea) - Bump org.spigotmc:spigot-api (#479) - Fri, 23 Jun 2023 00:00:00 +0000 - https://mywarp.github.io/builds/271.html - https://mywarp.github.io/builds/271.html + Build No. 54 (45e5df7891) + Bump flyway-core from 7.7.0 to 7.7.1 (#309) + Thu, 25 Mar 2021 00:00:00 +0000 + https://mywarp.github.io/builds/54.html + https://mywarp.github.io/builds/54.html - Build No. 1843 (8c61372fdd) - Update Flyway to 6.3.2 - Mon, 30 Mar 2020 00:00:00 +0000 - https://mywarp.github.io/builds/1843.html - https://mywarp.github.io/builds/1843.html - + Build No. 12 (e0a29e9d15) + Bump flyway-core from 7.3.2 to 7.4.0 (#289) + Tue, 5 Jan 2021 00:00:00 +0000 + https://mywarp.github.io/builds/12.html + https://mywarp.github.io/builds/12.html + - Build No. 1776 (351e1d5) - Release 3.0.1 - Tue, 19 Feb 2019 00:00:00 +0000 - https://mywarp.github.io/builds/1776.html - https://mywarp.github.io/builds/1776.html + Build No. 1805 (c26de8df5f) + Fix creation of shadow jar for Bukkit + Sat, 31 Aug 2019 00:00:00 +0000 + https://mywarp.github.io/builds/1805.html + https://mywarp.github.io/builds/1805.html - Build No. 26 (d262a223e6) - Bump flyway-core from 7.5.1 to 7.5.2 (#295) - Thu, 28 Jan 2021 00:00:00 +0000 - https://mywarp.github.io/builds/26.html - https://mywarp.github.io/builds/26.html + Build No. 40 (b7e5fc8c2e) + Bump ru.vyarus.animalsniffer from 1.5.2 to 1.5.3 (#302) + Thu, 18 Feb 2021 00:00:00 +0000 + https://mywarp.github.io/builds/40.html + https://mywarp.github.io/builds/40.html - Build No. 1904 (6352795c00) - Bump jooq-checker from 3.14.0 to 3.14.1 (#273) - Thu, 29 Oct 2020 00:00:00 +0000 - https://mywarp.github.io/builds/1904.html - https://mywarp.github.io/builds/1904.html + Build No. 263 (2af009b441) + Bump org.codehaus.mojo:animal-sniffer-annotations from 1.22 to 1.23 (#475) + Sat, 6 May 2023 00:00:00 +0000 + https://mywarp.github.io/builds/263.html + https://mywarp.github.io/builds/263.html - Build No. 1897 (b6965d8081) - Bump jooq from 3.13.5 to 3.14.0 (#269) - Mon, 26 Oct 2020 00:00:00 +0000 - https://mywarp.github.io/builds/1897.html - https://mywarp.github.io/builds/1897.html + Build No. 119 (48e88a6593) + Add a configuration option to specify which warps are shown on Dynmap + Fri, 17 Sep 2021 00:00:00 +0000 + https://mywarp.github.io/builds/119.html + https://mywarp.github.io/builds/119.html + + + Build No. 1840 (a7f912dddf) + Update Flyway to 6.2.3 + Wed, 19 Feb 2020 00:00:00 +0000 + https://mywarp.github.io/builds/1840.html + https://mywarp.github.io/builds/1840.html + + + Build No. 1866 (ceb3357a96) + Bump spigot-api from 1.16.2-R0.1-SNAPSHOT to 1.16.3-R0.1-SNAPSHOT (#258) + Fri, 11 Sep 2020 00:00:00 +0000 + https://mywarp.github.io/builds/1866.html + https://mywarp.github.io/builds/1866.html + + + Build No. 15 (80abfb9dff) + Fix version string + Tue, 12 Jan 2021 00:00:00 +0000 + https://mywarp.github.io/builds/15.html + https://mywarp.github.io/builds/15.html + + + Build No. 48 (15039e4840) + Trigger build + Fri, 5 Mar 2021 00:00:00 +0000 + https://mywarp.github.io/builds/48.html + https://mywarp.github.io/builds/48.html + + + Build No. 1894 (f814d932fa) + Remove Code Climate + Thu, 22 Oct 2020 00:00:00 +0000 + https://mywarp.github.io/builds/1894.html + https://mywarp.github.io/builds/1894.html + + + Build No. 52 (bfedcc42c6) + Bump flyway-core from 7.6.0 to 7.7.0 (#308) + Fri, 12 Mar 2021 00:00:00 +0000 + https://mywarp.github.io/builds/52.html + https://mywarp.github.io/builds/52.html + + + Build No. 75 (158deef45e) + Bump com.github.johnrengelman.shadow from 6.1.0 to 7.0.0 (#318) + Mon, 17 May 2021 00:00:00 +0000 + https://mywarp.github.io/builds/75.html + https://mywarp.github.io/builds/75.html + + + Build No. 1793 (1f2438a) + Revert unsuccessfully deployment changes + Wed, 28 Aug 2019 00:00:00 +0000 + https://mywarp.github.io/builds/1793.html + https://mywarp.github.io/builds/1793.html Build No. 36 (780a6097a0) @@ -238,53 +294,88 @@ https://mywarp.github.io/builds/36.html - Build No. 1882 (8ff3a86a1d) - Bump flyway-core from 7.0.0 to 7.0.1 (#265) - Thu, 8 Oct 2020 00:00:00 +0000 - https://mywarp.github.io/builds/1882.html - https://mywarp.github.io/builds/1882.html + Build No. 1851 (90a241f859) + Bump animal-sniffer-annotations from 1.18 to 1.19 (#248) + Wed, 5 Aug 2020 00:00:00 +0000 + https://mywarp.github.io/builds/1851.html + https://mywarp.github.io/builds/1851.html - Build No. 16 (d80ddf2ca9) - Release 3.1.1 - Tue, 12 Jan 2021 00:00:00 +0000 - https://mywarp.github.io/builds/16.html - https://mywarp.github.io/builds/16.html + Build No. 1849 (9c5763c5cb) + Create Dependabot config file (#250) + Wed, 5 Aug 2020 00:00:00 +0000 + https://mywarp.github.io/builds/1849.html + https://mywarp.github.io/builds/1849.html - Build No. 56 (bdf01d46f6) - Bump flyway-core from 7.7.1 to 7.7.2 (#311) - Fri, 2 Apr 2021 00:00:00 +0000 - https://mywarp.github.io/builds/56.html - https://mywarp.github.io/builds/56.html + Build No. 139 (2a7f1ab1f7) + Bump spigot-api from 1.17.1-R0.1-SNAPSHOT to 1.18-R0.1-SNAPSHOT (#376) + Wed, 1 Dec 2021 00:00:00 +0000 + https://mywarp.github.io/builds/139.html + https://mywarp.github.io/builds/139.html - Build No. 228 (a5406964d9) - Bump spigot-api from 1.18.2-R0.1-SNAPSHOT to 1.19.2-R0.1-SNAPSHOT (#451) - Tue, 16 Aug 2022 00:00:00 +0000 - https://mywarp.github.io/builds/228.html - https://mywarp.github.io/builds/228.html + Build No. 249 (73a262f3ff) + Bump ru.vyarus.animalsniffer from 1.5.4 to 1.6.0 (#459) + Tue, 27 Dec 2022 00:00:00 +0000 + https://mywarp.github.io/builds/249.html + https://mywarp.github.io/builds/249.html - Build No. 77 (19de7b32cc) - Bump flyway-core from 7.9.0 to 7.9.1 (#321) - Thu, 20 May 2021 00:00:00 +0000 - https://mywarp.github.io/builds/77.html - https://mywarp.github.io/builds/77.html + Build No. 1818 (3264ee2b35) + [Bukkit] Remove deprecated chunk pre-loading + Mon, 2 Dec 2019 00:00:00 +0000 + https://mywarp.github.io/builds/1818.html + https://mywarp.github.io/builds/1818.html - Build No. 73 (2b19580ada) - Update Gradle to 7.0 - Mon, 17 May 2021 00:00:00 +0000 - https://mywarp.github.io/builds/73.html - https://mywarp.github.io/builds/73.html + Build No. 1821 (e3c967e693) + Update Flyway to 6.1.1 + Fri, 13 Dec 2019 00:00:00 +0000 + https://mywarp.github.io/builds/1821.html + https://mywarp.github.io/builds/1821.html - Build No. 1863 (9339539e27) - Bump flyway-core from 6.5.4 to 6.5.5 (#254) - Wed, 19 Aug 2020 00:00:00 +0000 - https://mywarp.github.io/builds/1863.html - https://mywarp.github.io/builds/1863.html + Build No. 1870 (40e6b0b6f1) + Bump flyway-core from 6.5.6 to 6.5.7 (#260) + Wed, 23 Sep 2020 00:00:00 +0000 + https://mywarp.github.io/builds/1870.html + https://mywarp.github.io/builds/1870.html + + + Build No. 1868 (c361eb8f4b) + Bump flyway-core from 6.5.5 to 6.5.6 (#259) + Thu, 17 Sep 2020 00:00:00 +0000 + https://mywarp.github.io/builds/1868.html + https://mywarp.github.io/builds/1868.html + + + Build No. 1779 (6c78670) + Build against 1.14, update material information accordingly Fixes #209. + Wed, 8 May 2019 00:00:00 +0000 + https://mywarp.github.io/builds/1779.html + https://mywarp.github.io/builds/1779.html + + + Build No. 1787 (f3ed0f3) + Fix flawed evaluation of interactions with warp signs + Tue, 27 Aug 2019 00:00:00 +0000 + https://mywarp.github.io/builds/1787.html + https://mywarp.github.io/builds/1787.html + + + Build No. 95 (c183595cee) + Fix typos in the bug template + Tue, 22 Jun 2021 00:00:00 +0000 + https://mywarp.github.io/builds/95.html + https://mywarp.github.io/builds/95.html + + + Build No. 1753 (24de5b6) + [Bukkit] Add missing api-version to plugin.yml + Sat, 5 Jan 2019 00:00:00 +0000 + https://mywarp.github.io/builds/1753.html + https://mywarp.github.io/builds/1753.html Build No. 84 (8f8a8a308b) @@ -294,18 +385,11 @@ https://mywarp.github.io/builds/84.html - Build No. 1810 (44e1f81a11) - Adds (optional) cooldowns and warmups to warp signs - Mon, 25 Nov 2019 00:00:00 +0000 - https://mywarp.github.io/builds/1810.html - https://mywarp.github.io/builds/1810.html - - - Build No. 1840 (a7f912dddf) - Update Flyway to 6.2.3 - Wed, 19 Feb 2020 00:00:00 +0000 - https://mywarp.github.io/builds/1840.html - https://mywarp.github.io/builds/1840.html + Build No. 1811 (e740ed4cca) + Merge branch 'feature/flyway5' + Sun, 1 Dec 2019 00:00:00 +0000 + https://mywarp.github.io/builds/1811.html + https://mywarp.github.io/builds/1811.html Build No. 1788 (9308306) @@ -315,25 +399,25 @@ https://mywarp.github.io/builds/1788.html - Build No. 52 (bfedcc42c6) - Bump flyway-core from 7.6.0 to 7.7.0 (#308) - Fri, 12 Mar 2021 00:00:00 +0000 - https://mywarp.github.io/builds/52.html - https://mywarp.github.io/builds/52.html + Build No. 73 (2b19580ada) + Update Gradle to 7.0 + Mon, 17 May 2021 00:00:00 +0000 + https://mywarp.github.io/builds/73.html + https://mywarp.github.io/builds/73.html - Build No. 30 (10863c39c6) - Bump jooq from 3.14.6 to 3.14.7 (#298) - Wed, 3 Feb 2021 00:00:00 +0000 - https://mywarp.github.io/builds/30.html - https://mywarp.github.io/builds/30.html + Build No. 1855 (9446119feb) + Use Maven Central instead of JCenter + Thu, 6 Aug 2020 00:00:00 +0000 + https://mywarp.github.io/builds/1855.html + https://mywarp.github.io/builds/1855.html - Build No. 1768 (a2f84c9) - [Travis] Use Gradle's build scans - Sun, 13 Jan 2019 00:00:00 +0000 - https://mywarp.github.io/builds/1768.html - https://mywarp.github.io/builds/1768.html + Build No. 93 (5cec6ad3f2) + Fix logging issues + Tue, 22 Jun 2021 00:00:00 +0000 + https://mywarp.github.io/builds/93.html + https://mywarp.github.io/builds/93.html Build No. 1857 (66417f4b0a) @@ -343,151 +427,144 @@ https://mywarp.github.io/builds/1857.html - Build No. 34 (a45b2f08b7) - Switch to our own fork of slf4bukkit - Thu, 11 Feb 2021 00:00:00 +0000 - https://mywarp.github.io/builds/34.html - https://mywarp.github.io/builds/34.html - - - Build No. 263 (2af009b441) - Bump org.codehaus.mojo:animal-sniffer-annotations from 1.22 to 1.23 (#475) - Sat, 6 May 2023 00:00:00 +0000 - https://mywarp.github.io/builds/263.html - https://mywarp.github.io/builds/263.html + Build No. 1863 (9339539e27) + Bump flyway-core from 6.5.4 to 6.5.5 (#254) + Wed, 19 Aug 2020 00:00:00 +0000 + https://mywarp.github.io/builds/1863.html + https://mywarp.github.io/builds/1863.html - Build No. 20 (83990d2f44) - Bump flyway-core from 7.5.0 to 7.5.1 (#292) - Fri, 22 Jan 2021 00:00:00 +0000 - https://mywarp.github.io/builds/20.html - https://mywarp.github.io/builds/20.html + Build No. 1772 (32897eb) + Fix translation files missing from build + Sun, 13 Jan 2019 00:00:00 +0000 + https://mywarp.github.io/builds/1772.html + https://mywarp.github.io/builds/1772.html - Build No. 1805 (c26de8df5f) - Fix creation of shadow jar for Bukkit - Sat, 31 Aug 2019 00:00:00 +0000 - https://mywarp.github.io/builds/1805.html - https://mywarp.github.io/builds/1805.html + Build No. 232 (01eabdabcf) + Update README and CONTRIBUTING + Tue, 16 Aug 2022 00:00:00 +0000 + https://mywarp.github.io/builds/232.html + https://mywarp.github.io/builds/232.html - Build No. 1806 (ff6afdda59) - Document variables that can be used in the build process - Mon, 2 Sep 2019 00:00:00 +0000 - https://mywarp.github.io/builds/1806.html - https://mywarp.github.io/builds/1806.html + Build No. 72 (13f021d784) + Bump flyway-core from 7.8.2 to 7.9.0 (#320) + Fri, 14 May 2021 00:00:00 +0000 + https://mywarp.github.io/builds/72.html + https://mywarp.github.io/builds/72.html - Build No. 1808 (c5635e98ab) - Add configurable sorting to the 'list' command, add '-o' overwrite - Mon, 2 Sep 2019 00:00:00 +0000 - https://mywarp.github.io/builds/1808.html - https://mywarp.github.io/builds/1808.html + Build No. 1777 (a447643) + Prepare for next development iteration + Fri, 29 Mar 2019 00:00:00 +0000 + https://mywarp.github.io/builds/1777.html + https://mywarp.github.io/builds/1777.html - Build No. 94 (fc50f6af88) - Downgrade FlyWay to 7.8.1 - Tue, 22 Jun 2021 00:00:00 +0000 - https://mywarp.github.io/builds/94.html - https://mywarp.github.io/builds/94.html + Build No. 1752 (a941be2) + Prepare for next development iteration + Sat, 5 Jan 2019 00:00:00 +0000 + https://mywarp.github.io/builds/1752.html + https://mywarp.github.io/builds/1752.html - Build No. 119 (48e88a6593) - Add a configuration option to specify which warps are shown on Dynmap - Fri, 17 Sep 2021 00:00:00 +0000 - https://mywarp.github.io/builds/119.html - https://mywarp.github.io/builds/119.html + Build No. 60 (5e7c1e1b5b) + Bump flyway-core from 7.7.3 to 7.8.0 (#314) + Fri, 16 Apr 2021 00:00:00 +0000 + https://mywarp.github.io/builds/60.html + https://mywarp.github.io/builds/60.html - Build No. 7 (cfde2ab9dc) - Remove Travis. - Fri, 18 Dec 2020 00:00:00 +0000 - https://mywarp.github.io/builds/7.html - https://mywarp.github.io/builds/7.html + Build No. 34 (a45b2f08b7) + Switch to our own fork of slf4bukkit + Thu, 11 Feb 2021 00:00:00 +0000 + https://mywarp.github.io/builds/34.html + https://mywarp.github.io/builds/34.html - Build No. 1889 (80d7f00a9f) - Bump flyway-core from 7.0.2 to 7.0.3 (#267) - Thu, 15 Oct 2020 00:00:00 +0000 - https://mywarp.github.io/builds/1889.html - https://mywarp.github.io/builds/1889.html + Build No. 1877 (c8e1d631d3) + Bump jooq-checker from 3.13.4 to 3.13.5 (#262) + Mon, 5 Oct 2020 00:00:00 +0000 + https://mywarp.github.io/builds/1877.html + https://mywarp.github.io/builds/1877.html - Build No. 1894 (f814d932fa) - Remove Code Climate - Thu, 22 Oct 2020 00:00:00 +0000 - https://mywarp.github.io/builds/1894.html - https://mywarp.github.io/builds/1894.html + Build No. 1883 (bdd10fca4a) + Bump com.github.johnrengelman.shadow from 6.0.0 to 6.1.0 (#264) + Thu, 8 Oct 2020 00:00:00 +0000 + https://mywarp.github.io/builds/1883.html + https://mywarp.github.io/builds/1883.html - Build No. 1835 (d1f8450bfe) - Bump slf4j-api from 1.7.25 to 1.7.30 (#226) - Fri, 27 Dec 2019 00:00:00 +0000 - https://mywarp.github.io/builds/1835.html - https://mywarp.github.io/builds/1835.html + Build No. 1784 (f3ed0f3) + Fix flawed evaluation of interactions with warp signs + Sat, 25 May 2019 00:00:00 +0000 + https://mywarp.github.io/builds/1784.html + https://mywarp.github.io/builds/1784.html - Build No. 45 (08fc34e766) - Bump jooq from 3.14.7 to 3.14.8 (#304) - Mon, 1 Mar 2021 00:00:00 +0000 - https://mywarp.github.io/builds/45.html - https://mywarp.github.io/builds/45.html + Build No. 20 (83990d2f44) + Bump flyway-core from 7.5.0 to 7.5.1 (#292) + Fri, 22 Jan 2021 00:00:00 +0000 + https://mywarp.github.io/builds/20.html + https://mywarp.github.io/builds/20.html - Build No. 25 (b4376c0066) - Bump jooq from 3.14.4 to 3.14.6 (#294) - Wed, 27 Jan 2021 00:00:00 +0000 - https://mywarp.github.io/builds/25.html - https://mywarp.github.io/builds/25.html + Build No. 38 (1a5f8cbd7d) + Bump animal-sniffer-annotations from 1.19 to 1.20 (#301) + Fri, 12 Feb 2021 00:00:00 +0000 + https://mywarp.github.io/builds/38.html + https://mywarp.github.io/builds/38.html - Build No. 82 (48313cb198) - Bump jooq from 3.14.9 to 3.14.11 (#325) - Mon, 24 May 2021 00:00:00 +0000 - https://mywarp.github.io/builds/82.html - https://mywarp.github.io/builds/82.html + Build No. 70 (1f7eb771a7) + Bump flyway-core from 7.8.1 to 7.8.2 (#319) + Wed, 28 Apr 2021 00:00:00 +0000 + https://mywarp.github.io/builds/70.html + https://mywarp.github.io/builds/70.html - Build No. 1827 (5788b5bfe0) - Bump animal-sniffer-annotations from 1.16 to 1.18 (#227) - Fri, 20 Dec 2019 00:00:00 +0000 - https://mywarp.github.io/builds/1827.html - https://mywarp.github.io/builds/1827.html + Build No. 1895 (4a19b11679) + Bump jooq-checker from 3.13.5 to 3.14.0 (#270) + Mon, 26 Oct 2020 00:00:00 +0000 + https://mywarp.github.io/builds/1895.html + https://mywarp.github.io/builds/1895.html - Build No. 1777 (a447643) - Prepare for next development iteration - Fri, 29 Mar 2019 00:00:00 +0000 - https://mywarp.github.io/builds/1777.html - https://mywarp.github.io/builds/1777.html + Build No. 1820 (4a94f5cc9e) + [Bukkit] Remove cancellation of interaction events for warp signs + Fri, 13 Dec 2019 00:00:00 +0000 + https://mywarp.github.io/builds/1820.html + https://mywarp.github.io/builds/1820.html - Build No. 1787 (f3ed0f3) - Fix flawed evaluation of interactions with warp signs - Tue, 27 Aug 2019 00:00:00 +0000 - https://mywarp.github.io/builds/1787.html - https://mywarp.github.io/builds/1787.html + Build No. 1836 (137b4e5f9d) + [Bukkit] Do not log an Exception when using LegacyFaceBlockResolver + Fri, 27 Dec 2019 00:00:00 +0000 + https://mywarp.github.io/builds/1836.html + https://mywarp.github.io/builds/1836.html - Build No. 232 (01eabdabcf) - Update README and CONTRIBUTING - Tue, 16 Aug 2022 00:00:00 +0000 - https://mywarp.github.io/builds/232.html - https://mywarp.github.io/builds/232.html + Build No. 1832 (2d03ea5fe3) + Bump com.palantir.git-version from 0.11.0 to 0.12.2 (#230) + Mon, 23 Dec 2019 00:00:00 +0000 + https://mywarp.github.io/builds/1832.html + https://mywarp.github.io/builds/1832.html - Build No. 1804 (8444615) - [Travis] Fix environment variable definition, 2nd attempt - Sat, 31 Aug 2019 00:00:00 +0000 - https://mywarp.github.io/builds/1804.html - https://mywarp.github.io/builds/1804.html + Build No. 1879 (6fff461ba1) + Bump flyway-core from 6.5.7 to 7.0.0 (#261) + Mon, 5 Oct 2020 00:00:00 +0000 + https://mywarp.github.io/builds/1879.html + https://mywarp.github.io/builds/1879.html - Build No. 257 (cad233e3a5) - Bump org.spigotmc:spigot-api (#472) - Wed, 15 Mar 2023 00:00:00 +0000 - https://mywarp.github.io/builds/257.html - https://mywarp.github.io/builds/257.html + Build No. 1783 (61ceac2) + Fix warp signs not supporting new buttons and pressure plates + Mon, 20 May 2019 00:00:00 +0000 + https://mywarp.github.io/builds/1783.html + https://mywarp.github.io/builds/1783.html Build No. 1861 (52b8ad555e) @@ -497,123 +574,123 @@ https://mywarp.github.io/builds/1861.html - Build No. 48 (15039e4840) - Trigger build - Fri, 5 Mar 2021 00:00:00 +0000 - https://mywarp.github.io/builds/48.html - https://mywarp.github.io/builds/48.html + Build No. 27 (645d2b3d6f) + Prepare for next development iteration + Mon, 1 Feb 2021 00:00:00 +0000 + https://mywarp.github.io/builds/27.html + https://mywarp.github.io/builds/27.html - Build No. 1844 (b822659b87) - Update Flyway to 6.3.3 - Wed, 8 Apr 2020 00:00:00 +0000 - https://mywarp.github.io/builds/1844.html - https://mywarp.github.io/builds/1844.html + Build No. 1887 (2b42425ee3) + Bump flyway-core from 7.0.1 to 7.0.2 (#266) + Mon, 12 Oct 2020 00:00:00 +0000 + https://mywarp.github.io/builds/1887.html + https://mywarp.github.io/builds/1887.html - Build No. 9 (5a266fbb26) - Update changelog - Sat, 19 Dec 2020 00:00:00 +0000 - https://mywarp.github.io/builds/9.html - https://mywarp.github.io/builds/9.html + Build No. 225 (18f50dc793) + Update ReadMe + Tue, 16 Aug 2022 00:00:00 +0000 + https://mywarp.github.io/builds/225.html + https://mywarp.github.io/builds/225.html - Build No. 1885 (5be86ff3de) - Improve warning if a limit's world does not exist - Thu, 8 Oct 2020 00:00:00 +0000 - https://mywarp.github.io/builds/1885.html - https://mywarp.github.io/builds/1885.html + Build No. 1781 (8c2f99f) + Update changelog + Fri, 17 May 2019 00:00:00 +0000 + https://mywarp.github.io/builds/1781.html + https://mywarp.github.io/builds/1781.html - Build No. 1859 (1b2f2f1894) - Bump spigot-api from 1.16.1-R0.1-SNAPSHOT to 1.16.2-R0.1-SNAPSHOT (#252) - Wed, 12 Aug 2020 00:00:00 +0000 - https://mywarp.github.io/builds/1859.html - https://mywarp.github.io/builds/1859.html + Build No. 16 (d80ddf2ca9) + Release 3.1.1 + Tue, 12 Jan 2021 00:00:00 +0000 + https://mywarp.github.io/builds/16.html + https://mywarp.github.io/builds/16.html - Build No. 1866 (ceb3357a96) - Bump spigot-api from 1.16.2-R0.1-SNAPSHOT to 1.16.3-R0.1-SNAPSHOT (#258) - Fri, 11 Sep 2020 00:00:00 +0000 - https://mywarp.github.io/builds/1866.html - https://mywarp.github.io/builds/1866.html + Build No. 86 (42d69122ef) + Bump flyway-core from 7.9.1 to 7.9.2 (#326) + Mon, 7 Jun 2021 00:00:00 +0000 + https://mywarp.github.io/builds/86.html + https://mywarp.github.io/builds/86.html - Build No. 1820 (4a94f5cc9e) - [Bukkit] Remove cancellation of interaction events for warp signs - Fri, 13 Dec 2019 00:00:00 +0000 - https://mywarp.github.io/builds/1820.html - https://mywarp.github.io/builds/1820.html + Build No. 1874 (ed083dfb9b) + Bump jooq from 3.13.4 to 3.13.5 (#263) + Mon, 5 Oct 2020 00:00:00 +0000 + https://mywarp.github.io/builds/1874.html + https://mywarp.github.io/builds/1874.html - Build No. 1793 (1f2438a) - Revert unsuccessfully deployment changes - Wed, 28 Aug 2019 00:00:00 +0000 - https://mywarp.github.io/builds/1793.html - https://mywarp.github.io/builds/1793.html + Build No. 1904 (6352795c00) + Bump jooq-checker from 3.14.0 to 3.14.1 (#273) + Thu, 29 Oct 2020 00:00:00 +0000 + https://mywarp.github.io/builds/1904.html + https://mywarp.github.io/builds/1904.html - Build No. 225 (18f50dc793) - Update ReadMe - Tue, 16 Aug 2022 00:00:00 +0000 - https://mywarp.github.io/builds/225.html - https://mywarp.github.io/builds/225.html + Build No. 62 (3f469a7688) + Bump flyway-core from 7.8.0 to 7.8.1 (#315) + Mon, 19 Apr 2021 00:00:00 +0000 + https://mywarp.github.io/builds/62.html + https://mywarp.github.io/builds/62.html - Build No. 1855 (9446119feb) - Use Maven Central instead of JCenter - Thu, 6 Aug 2020 00:00:00 +0000 - https://mywarp.github.io/builds/1855.html - https://mywarp.github.io/builds/1855.html + Build No. 50 (8951576166) + Bump flyway-core from 7.5.4 to 7.6.0 (#306) + Mon, 8 Mar 2021 00:00:00 +0000 + https://mywarp.github.io/builds/50.html + https://mywarp.github.io/builds/50.html - Build No. 1879 (6fff461ba1) - Bump flyway-core from 6.5.7 to 7.0.0 (#261) - Mon, 5 Oct 2020 00:00:00 +0000 - https://mywarp.github.io/builds/1879.html - https://mywarp.github.io/builds/1879.html + Build No. 1812 (1ebc24b1c0) + Update JOOQ to 3.12.3 + Sun, 1 Dec 2019 00:00:00 +0000 + https://mywarp.github.io/builds/1812.html + https://mywarp.github.io/builds/1812.html - Build No. 1910 (488af1d2f0) - Bump ru.vyarus.animalsniffer from 1.5.1 to 1.5.2 (#276) - Thu, 5 Nov 2020 00:00:00 +0000 - https://mywarp.github.io/builds/1910.html - https://mywarp.github.io/builds/1910.html + Build No. 1794 (522b585) + Update Gradle to 5.6.1, clean-up build files + Thu, 29 Aug 2019 00:00:00 +0000 + https://mywarp.github.io/builds/1794.html + https://mywarp.github.io/builds/1794.html - Build No. 1891 (5d3f133462) - Bump flyway-core from 7.0.3 to 7.0.4 (#268) - Mon, 19 Oct 2020 00:00:00 +0000 - https://mywarp.github.io/builds/1891.html - https://mywarp.github.io/builds/1891.html + Build No. 224 (64dbbd9a0d) + Update ReadMe + Tue, 16 Aug 2022 00:00:00 +0000 + https://mywarp.github.io/builds/224.html + https://mywarp.github.io/builds/224.html - Build No. 50 (8951576166) - Bump flyway-core from 7.5.4 to 7.6.0 (#306) - Mon, 8 Mar 2021 00:00:00 +0000 - https://mywarp.github.io/builds/50.html - https://mywarp.github.io/builds/50.html + Build No. 1810 (44e1f81a11) + Adds (optional) cooldowns and warmups to warp signs + Mon, 25 Nov 2019 00:00:00 +0000 + https://mywarp.github.io/builds/1810.html + https://mywarp.github.io/builds/1810.html - Build No. 42 (c99ab3b5b6) - Bump flyway-core from 7.5.3 to 7.5.4 (#303) - Tue, 23 Feb 2021 00:00:00 +0000 - https://mywarp.github.io/builds/42.html - https://mywarp.github.io/builds/42.html + Build No. 58 (de9876393f) + Bump flyway-core from 7.7.2 to 7.7.3 (#312) + Fri, 9 Apr 2021 00:00:00 +0000 + https://mywarp.github.io/builds/58.html + https://mywarp.github.io/builds/58.html - Build No. 230 (f788ae74d4) - Bump slf4j-api from 1.7.31 to 1.7.36 (#407) - Tue, 16 Aug 2022 00:00:00 +0000 - https://mywarp.github.io/builds/230.html - https://mywarp.github.io/builds/230.html + Build No. 140 (971519d27b) + Bump ru.vyarus.animalsniffer from 1.5.3 to 1.5.4 (#368) + Wed, 1 Dec 2021 00:00:00 +0000 + https://mywarp.github.io/builds/140.html + https://mywarp.github.io/builds/140.html - Build No. 1749 (c3cbe61) - Release 3.0 - Tue, 1 Jan 2019 00:00:00 +0000 - https://mywarp.github.io/builds/1749.html - https://mywarp.github.io/builds/1749.html + Build No. 82 (48313cb198) + Bump jooq from 3.14.9 to 3.14.11 (#325) + Mon, 24 May 2021 00:00:00 +0000 + https://mywarp.github.io/builds/82.html + https://mywarp.github.io/builds/82.html Build No. 104 (404defe6fd) @@ -623,46 +700,74 @@ https://mywarp.github.io/builds/104.html - Build No. 1794 (522b585) - Update Gradle to 5.6.1, clean-up build files - Thu, 29 Aug 2019 00:00:00 +0000 - https://mywarp.github.io/builds/1794.html - https://mywarp.github.io/builds/1794.html + Build No. 65 (70f30931fe) + Bump jooq from 3.14.8 to 3.14.9 (#317) + Wed, 21 Apr 2021 00:00:00 +0000 + https://mywarp.github.io/builds/65.html + https://mywarp.github.io/builds/65.html - Build No. 1923 (bd38d7bc02) - Bump flyway-core from 7.2.0 to 7.2.1 (#282) - Thu, 19 Nov 2020 00:00:00 +0000 - https://mywarp.github.io/builds/1923.html - https://mywarp.github.io/builds/1923.html + Build No. 30 (10863c39c6) + Bump jooq from 3.14.6 to 3.14.7 (#298) + Wed, 3 Feb 2021 00:00:00 +0000 + https://mywarp.github.io/builds/30.html + https://mywarp.github.io/builds/30.html - Build No. 1772 (32897eb) - Fix translation files missing from build - Sun, 13 Jan 2019 00:00:00 +0000 - https://mywarp.github.io/builds/1772.html - https://mywarp.github.io/builds/1772.html + Build No. 56 (bdf01d46f6) + Bump flyway-core from 7.7.1 to 7.7.2 (#311) + Fri, 2 Apr 2021 00:00:00 +0000 + https://mywarp.github.io/builds/56.html + https://mywarp.github.io/builds/56.html - Build No. 1925 (634c34fd88) - Bump flyway-core from 7.2.1 to 7.3.0 (#284) - Thu, 26 Nov 2020 00:00:00 +0000 - https://mywarp.github.io/builds/1925.html - https://mywarp.github.io/builds/1925.html + Build No. 42 (c99ab3b5b6) + Bump flyway-core from 7.5.3 to 7.5.4 (#303) + Tue, 23 Feb 2021 00:00:00 +0000 + https://mywarp.github.io/builds/42.html + https://mywarp.github.io/builds/42.html - Build No. 1852 (232676f182) - Update SpigotAPI to 1.16.1-R0.1-SNAPSHOT - Thu, 6 Aug 2020 00:00:00 +0000 - https://mywarp.github.io/builds/1852.html - https://mywarp.github.io/builds/1852.html + Build No. 77 (19de7b32cc) + Bump flyway-core from 7.9.0 to 7.9.1 (#321) + Thu, 20 May 2021 00:00:00 +0000 + https://mywarp.github.io/builds/77.html + https://mywarp.github.io/builds/77.html - Build No. 1781 (8c2f99f) - Update changelog - Fri, 17 May 2019 00:00:00 +0000 - https://mywarp.github.io/builds/1781.html - https://mywarp.github.io/builds/1781.html + Build No. 1916 (667ff808e4) + Bump flyway-core from 7.1.1 to 7.2.0 (#279) + Wed, 11 Nov 2020 00:00:00 +0000 + https://mywarp.github.io/builds/1916.html + https://mywarp.github.io/builds/1916.html + + + Build No. 230 (f788ae74d4) + Bump slf4j-api from 1.7.31 to 1.7.36 (#407) + Tue, 16 Aug 2022 00:00:00 +0000 + https://mywarp.github.io/builds/230.html + https://mywarp.github.io/builds/230.html + + + Build No. 1897 (b6965d8081) + Bump jooq from 3.13.5 to 3.14.0 (#269) + Mon, 26 Oct 2020 00:00:00 +0000 + https://mywarp.github.io/builds/1897.html + https://mywarp.github.io/builds/1897.html + + + Build No. 67 (76bfad6ac7) + Bump jooq-checker from 3.14.8 to 3.14.9 (#316) + Thu, 22 Apr 2021 00:00:00 +0000 + https://mywarp.github.io/builds/67.html + https://mywarp.github.io/builds/67.html + + + Build No. 5 (3f10ddb47e) + Deploy from GitHub Actions + Fri, 18 Dec 2020 00:00:00 +0000 + https://mywarp.github.io/builds/5.html + https://mywarp.github.io/builds/5.html Build No. 181 (986245bee7) @@ -672,67 +777,53 @@ https://mywarp.github.io/builds/181.html - Build No. 6 (4c6d950c90) - Fix build number - Fri, 18 Dec 2020 00:00:00 +0000 - https://mywarp.github.io/builds/6.html - https://mywarp.github.io/builds/6.html - - - Build No. 27 (645d2b3d6f) - Prepare for next development iteration - Mon, 1 Feb 2021 00:00:00 +0000 - https://mywarp.github.io/builds/27.html - https://mywarp.github.io/builds/27.html + Build No. 88 (00be889301) + Bump flyway-core from 7.9.2 to 7.10.0 (#327) + Fri, 11 Jun 2021 00:00:00 +0000 + https://mywarp.github.io/builds/88.html + https://mywarp.github.io/builds/88.html - Build No. 1930 (10b9684e31) - Bump jooq-checker from 3.14.3 to 3.14.4 (#286) - Fri, 27 Nov 2020 00:00:00 +0000 - https://mywarp.github.io/builds/1930.html - https://mywarp.github.io/builds/1930.html + Build No. 145 (aa6a8d46ef) + Bump spigot-api from 1.18-R0.1-SNAPSHOT to 1.18.1-R0.1-SNAPSHOT (#381) + Sat, 11 Dec 2021 00:00:00 +0000 + https://mywarp.github.io/builds/145.html + https://mywarp.github.io/builds/145.html - Build No. 1895 (4a19b11679) - Bump jooq-checker from 3.13.5 to 3.14.0 (#270) - Mon, 26 Oct 2020 00:00:00 +0000 - https://mywarp.github.io/builds/1895.html - https://mywarp.github.io/builds/1895.html + Build No. 1839 (af154f27d0) + Bump bukkit from 1.15.1-R0.1-SNAPSHOT to 1.15.2-R0.1-SNAPSHOT (#233) + Thu, 23 Jan 2020 00:00:00 +0000 + https://mywarp.github.io/builds/1839.html + https://mywarp.github.io/builds/1839.html - Build No. 62 (3f469a7688) - Bump flyway-core from 7.8.0 to 7.8.1 (#315) - Mon, 19 Apr 2021 00:00:00 +0000 - https://mywarp.github.io/builds/62.html - https://mywarp.github.io/builds/62.html + Build No. 1778 (1b75d82) + Fix interaction event cancellation + Fri, 29 Mar 2019 00:00:00 +0000 + https://mywarp.github.io/builds/1778.html + https://mywarp.github.io/builds/1778.html - Build No. 92 (066e08c094) - Bump slf4j-api from 1.7.30 to 1.7.31 (#329) - Sat, 19 Jun 2021 00:00:00 +0000 - https://mywarp.github.io/builds/92.html - https://mywarp.github.io/builds/92.html - - - Build No. 32 (a9d333ad81) - Bump jooq-checker from 3.14.6 to 3.14.7 (#299) - Wed, 3 Feb 2021 00:00:00 +0000 - https://mywarp.github.io/builds/32.html - https://mywarp.github.io/builds/32.html + Build No. 1817 (afc540b8b0) + Fix build + Mon, 2 Dec 2019 00:00:00 +0000 + https://mywarp.github.io/builds/1817.html + https://mywarp.github.io/builds/1817.html - Build No. 266 (75a68ddf25) - Downgrade com.palantir.git-version to 0.13.0 - Mon, 8 May 2023 00:00:00 +0000 - https://mywarp.github.io/builds/266.html - https://mywarp.github.io/builds/266.html + Build No. 25 (b4376c0066) + Bump jooq from 3.14.4 to 3.14.6 (#294) + Wed, 27 Jan 2021 00:00:00 +0000 + https://mywarp.github.io/builds/25.html + https://mywarp.github.io/builds/25.html - Build No. 12 (e0a29e9d15) - Bump flyway-core from 7.3.2 to 7.4.0 (#289) - Tue, 5 Jan 2021 00:00:00 +0000 - https://mywarp.github.io/builds/12.html - https://mywarp.github.io/builds/12.html + Build No. 1776 (351e1d5) + Release 3.0.1 + Tue, 19 Feb 2019 00:00:00 +0000 + https://mywarp.github.io/builds/1776.html + https://mywarp.github.io/builds/1776.html Build No. 1837 (adb90972b9) @@ -742,32 +833,39 @@ https://mywarp.github.io/builds/1837.html - Build No. 1868 (c361eb8f4b) - Bump flyway-core from 6.5.5 to 6.5.6 (#259) - Thu, 17 Sep 2020 00:00:00 +0000 - https://mywarp.github.io/builds/1868.html - https://mywarp.github.io/builds/1868.html + Build No. 1843 (8c61372fdd) + Update Flyway to 6.3.2 + Mon, 30 Mar 2020 00:00:00 +0000 + https://mywarp.github.io/builds/1843.html + https://mywarp.github.io/builds/1843.html - Build No. 90 (67419622cc) - Bump spigot-api from 1.16.5-R0.1-SNAPSHOT to 1.17-R0.1-SNAPSHOT (#328) - Mon, 14 Jun 2021 00:00:00 +0000 - https://mywarp.github.io/builds/90.html - https://mywarp.github.io/builds/90.html + Build No. 183 (7e0b9b40e0) + Bump spigot-api from 1.18.1-R0.1-SNAPSHOT to 1.18.2-R0.1-SNAPSHOT (#412) + Fri, 4 Mar 2022 00:00:00 +0000 + https://mywarp.github.io/builds/183.html + https://mywarp.github.io/builds/183.html - Build No. 1752 (a941be2) - Prepare for next development iteration - Sat, 5 Jan 2019 00:00:00 +0000 - https://mywarp.github.io/builds/1752.html - https://mywarp.github.io/builds/1752.html + Build No. 1921 (8eaccaea65) + Bump jooq-checker from 3.14.1 to 3.14.3 (#280) + Wed, 11 Nov 2020 00:00:00 +0000 + https://mywarp.github.io/builds/1921.html + https://mywarp.github.io/builds/1921.html - Build No. 1807 (7ebc83c87f) - Fix link to build website - Mon, 2 Sep 2019 00:00:00 +0000 - https://mywarp.github.io/builds/1807.html - https://mywarp.github.io/builds/1807.html + Build No. 269 (71e264e68d) + Bump org.spigotmc:spigot-api (#478) + Thu, 8 Jun 2023 00:00:00 +0000 + https://mywarp.github.io/builds/269.html + https://mywarp.github.io/builds/269.html + + + Build No. 1844 (b822659b87) + Update Flyway to 6.3.3 + Wed, 8 Apr 2020 00:00:00 +0000 + https://mywarp.github.io/builds/1844.html + https://mywarp.github.io/builds/1844.html Build No. 14 (40152dde29) @@ -777,158 +875,123 @@ https://mywarp.github.io/builds/14.html - Build No. 1832 (2d03ea5fe3) - Bump com.palantir.git-version from 0.11.0 to 0.12.2 (#230) - Mon, 23 Dec 2019 00:00:00 +0000 - https://mywarp.github.io/builds/1832.html - https://mywarp.github.io/builds/1832.html - - - Build No. 1783 (61ceac2) - Fix warp signs not supporting new buttons and pressure plates - Mon, 20 May 2019 00:00:00 +0000 - https://mywarp.github.io/builds/1783.html - https://mywarp.github.io/builds/1783.html + Build No. 1768 (a2f84c9) + [Travis] Use Gradle's build scans + Sun, 13 Jan 2019 00:00:00 +0000 + https://mywarp.github.io/builds/1768.html + https://mywarp.github.io/builds/1768.html - Build No. 1908 (5d17329b19) - Bump spigot-api from 1.16.3-R0.1-SNAPSHOT to 1.16.4-R0.1-SNAPSHOT (#275) - Tue, 3 Nov 2020 00:00:00 +0000 - https://mywarp.github.io/builds/1908.html - https://mywarp.github.io/builds/1908.html + Build No. 271 (57143930ea) + Bump org.spigotmc:spigot-api (#479) + Fri, 23 Jun 2023 00:00:00 +0000 + https://mywarp.github.io/builds/271.html + https://mywarp.github.io/builds/271.html - Build No. 1779 (6c78670) - Build against 1.14, update material information accordingly Fixes #209. - Wed, 8 May 2019 00:00:00 +0000 - https://mywarp.github.io/builds/1779.html - https://mywarp.github.io/builds/1779.html + Build No. 23 (3b91129114) + Bump jooq-checker from 3.14.4 to 3.14.6 (#293) + Wed, 27 Jan 2021 00:00:00 +0000 + https://mywarp.github.io/builds/23.html + https://mywarp.github.io/builds/23.html - Build No. 1899 (163f3130a6) - Bump flyway-core from 7.0.4 to 7.1.0 (#271) - Wed, 28 Oct 2020 00:00:00 +0000 - https://mywarp.github.io/builds/1899.html - https://mywarp.github.io/builds/1899.html + Build No. 1815 (77239c4f28) + Release 3.1 + Sun, 1 Dec 2019 00:00:00 +0000 + https://mywarp.github.io/builds/1815.html + https://mywarp.github.io/builds/1815.html - Build No. 93 (5cec6ad3f2) - Fix logging issues - Tue, 22 Jun 2021 00:00:00 +0000 - https://mywarp.github.io/builds/93.html - https://mywarp.github.io/builds/93.html + Build No. 45 (08fc34e766) + Bump jooq from 3.14.7 to 3.14.8 (#304) + Mon, 1 Mar 2021 00:00:00 +0000 + https://mywarp.github.io/builds/45.html + https://mywarp.github.io/builds/45.html - Build No. 1849 (9c5763c5cb) - Create Dependabot config file (#250) - Wed, 5 Aug 2020 00:00:00 +0000 - https://mywarp.github.io/builds/1849.html - https://mywarp.github.io/builds/1849.html + Build No. 1806 (ff6afdda59) + Document variables that can be used in the build process + Mon, 2 Sep 2019 00:00:00 +0000 + https://mywarp.github.io/builds/1806.html + https://mywarp.github.io/builds/1806.html - Build No. 239 (55a421a616) - Add downloads badge to the README - Wed, 17 Aug 2022 00:00:00 +0000 - https://mywarp.github.io/builds/239.html - https://mywarp.github.io/builds/239.html + Build No. 1923 (bd38d7bc02) + Bump flyway-core from 7.2.0 to 7.2.1 (#282) + Thu, 19 Nov 2020 00:00:00 +0000 + https://mywarp.github.io/builds/1923.html + https://mywarp.github.io/builds/1923.html - Build No. 58 (de9876393f) - Bump flyway-core from 7.7.2 to 7.7.3 (#312) - Fri, 9 Apr 2021 00:00:00 +0000 - https://mywarp.github.io/builds/58.html - https://mywarp.github.io/builds/58.html + Build No. 1808 (c5635e98ab) + Add configurable sorting to the 'list' command, add '-o' overwrite + Mon, 2 Sep 2019 00:00:00 +0000 + https://mywarp.github.io/builds/1808.html + https://mywarp.github.io/builds/1808.html - Build No. 75 (158deef45e) - Bump com.github.johnrengelman.shadow from 6.1.0 to 7.0.0 (#318) - Mon, 17 May 2021 00:00:00 +0000 - https://mywarp.github.io/builds/75.html - https://mywarp.github.io/builds/75.html + Build No. 1827 (5788b5bfe0) + Bump animal-sniffer-annotations from 1.16 to 1.18 (#227) + Fri, 20 Dec 2019 00:00:00 +0000 + https://mywarp.github.io/builds/1827.html + https://mywarp.github.io/builds/1827.html - Build No. 1883 (bdd10fca4a) - Bump com.github.johnrengelman.shadow from 6.0.0 to 6.1.0 (#264) - Thu, 8 Oct 2020 00:00:00 +0000 - https://mywarp.github.io/builds/1883.html - https://mywarp.github.io/builds/1883.html + Build No. 94 (fc50f6af88) + Downgrade FlyWay to 7.8.1 + Tue, 22 Jun 2021 00:00:00 +0000 + https://mywarp.github.io/builds/94.html + https://mywarp.github.io/builds/94.html - Build No. 140 (971519d27b) - Bump ru.vyarus.animalsniffer from 1.5.3 to 1.5.4 (#368) - Wed, 1 Dec 2021 00:00:00 +0000 - https://mywarp.github.io/builds/140.html - https://mywarp.github.io/builds/140.html + Build No. 18 (aa21fbbc35) + Bump spigot-api from 1.16.4-R0.1-SNAPSHOT to 1.16.5-R0.1-SNAPSHOT (#291) + Mon, 18 Jan 2021 00:00:00 +0000 + https://mywarp.github.io/builds/18.html + https://mywarp.github.io/builds/18.html - Build No. 1784 (f3ed0f3) - Fix flawed evaluation of interactions with warp signs - Sat, 25 May 2019 00:00:00 +0000 - https://mywarp.github.io/builds/1784.html - https://mywarp.github.io/builds/1784.html + Build No. 1930 (10b9684e31) + Bump jooq-checker from 3.14.3 to 3.14.4 (#286) + Fri, 27 Nov 2020 00:00:00 +0000 + https://mywarp.github.io/builds/1930.html + https://mywarp.github.io/builds/1930.html - Build No. 38 (1a5f8cbd7d) - Bump animal-sniffer-annotations from 1.19 to 1.20 (#301) - Fri, 12 Feb 2021 00:00:00 +0000 - https://mywarp.github.io/builds/38.html - https://mywarp.github.io/builds/38.html + Build No. 10 (4841409a43) + Deploy released artifacts to GitHub Releases (experimental) + Sat, 19 Dec 2020 00:00:00 +0000 + https://mywarp.github.io/builds/10.html + https://mywarp.github.io/builds/10.html - Build No. 70 (1f7eb771a7) - Bump flyway-core from 7.8.1 to 7.8.2 (#319) - Wed, 28 Apr 2021 00:00:00 +0000 - https://mywarp.github.io/builds/70.html - https://mywarp.github.io/builds/70.html + Build No. 1864 (0440f00135) + Correctly display the invitee's name + Sat, 22 Aug 2020 00:00:00 +0000 + https://mywarp.github.io/builds/1864.html + https://mywarp.github.io/builds/1864.html - Build No. 237 (4b3ae307ab) - Bump animal-sniffer-annotations from 1.21 to 1.22 (#457) - Wed, 17 Aug 2022 00:00:00 +0000 - https://mywarp.github.io/builds/237.html - https://mywarp.github.io/builds/237.html + Build No. 266 (75a68ddf25) + Downgrade com.palantir.git-version to 0.13.0 + Mon, 8 May 2023 00:00:00 +0000 + https://mywarp.github.io/builds/266.html + https://mywarp.github.io/builds/266.html - Build No. 8 (1be4341292) - Bump flyway-core from 7.3.1 to 7.3.2 (#288) + Build No. 6 (4c6d950c90) + Fix build number Fri, 18 Dec 2020 00:00:00 +0000 - https://mywarp.github.io/builds/8.html - https://mywarp.github.io/builds/8.html - - - Build No. 1828 (94cd688516) - Bump com.github.johnrengelman.shadow from 5.1.0 to 5.2.0 (#228) - Fri, 20 Dec 2019 00:00:00 +0000 - https://mywarp.github.io/builds/1828.html - https://mywarp.github.io/builds/1828.html - - - Build No. 1811 (e740ed4cca) - Merge branch 'feature/flyway5' - Sun, 1 Dec 2019 00:00:00 +0000 - https://mywarp.github.io/builds/1811.html - https://mywarp.github.io/builds/1811.html - - - Build No. 1785 (9142277) - Update issue templates - Tue, 11 Jun 2019 00:00:00 +0000 - https://mywarp.github.io/builds/1785.html - https://mywarp.github.io/builds/1785.html - - - Build No. 1842 (d8bab4f38c) - Bump com.palantir.git-version from 0.12.2 to 0.12.3 (#236) - Mon, 30 Mar 2020 00:00:00 +0000 - https://mywarp.github.io/builds/1842.html - https://mywarp.github.io/builds/1842.html + https://mywarp.github.io/builds/6.html + https://mywarp.github.io/builds/6.html - Build No. 65 (70f30931fe) - Bump jooq from 3.14.8 to 3.14.9 (#317) - Wed, 21 Apr 2021 00:00:00 +0000 - https://mywarp.github.io/builds/65.html - https://mywarp.github.io/builds/65.html + Build No. 128 (e8a35fa87c) + Bump com.github.johnrengelman.shadow from 7.0.0 to 7.1.0 (#360) + Sun, 31 Oct 2021 00:00:00 +0000 + https://mywarp.github.io/builds/128.html + https://mywarp.github.io/builds/128.html Build No. 1853 (5632fbea67) @@ -938,130 +1001,67 @@ https://mywarp.github.io/builds/1853.html - Build No. 1851 (90a241f859) - Bump animal-sniffer-annotations from 1.18 to 1.19 (#248) - Wed, 5 Aug 2020 00:00:00 +0000 - https://mywarp.github.io/builds/1851.html - https://mywarp.github.io/builds/1851.html - - - Build No. 1887 (2b42425ee3) - Bump flyway-core from 7.0.1 to 7.0.2 (#266) - Mon, 12 Oct 2020 00:00:00 +0000 - https://mywarp.github.io/builds/1887.html - https://mywarp.github.io/builds/1887.html - - - Build No. 1874 (ed083dfb9b) - Bump jooq from 3.13.4 to 3.13.5 (#263) - Mon, 5 Oct 2020 00:00:00 +0000 - https://mywarp.github.io/builds/1874.html - https://mywarp.github.io/builds/1874.html - - - Build No. 1817 (afc540b8b0) - Fix build - Mon, 2 Dec 2019 00:00:00 +0000 - https://mywarp.github.io/builds/1817.html - https://mywarp.github.io/builds/1817.html - - - Build No. 15 (80abfb9dff) - Fix version string - Tue, 12 Jan 2021 00:00:00 +0000 - https://mywarp.github.io/builds/15.html - https://mywarp.github.io/builds/15.html - - - Build No. 1906 (f4cc2a3ad1) - Bump flyway-core from 7.1.0 to 7.1.1 (#274) - Fri, 30 Oct 2020 00:00:00 +0000 - https://mywarp.github.io/builds/1906.html - https://mywarp.github.io/builds/1906.html - - - Build No. 224 (64dbbd9a0d) - Update ReadMe - Tue, 16 Aug 2022 00:00:00 +0000 - https://mywarp.github.io/builds/224.html - https://mywarp.github.io/builds/224.html - - - Build No. 95 (c183595cee) - Fix typos in the bug template - Tue, 22 Jun 2021 00:00:00 +0000 - https://mywarp.github.io/builds/95.html - https://mywarp.github.io/builds/95.html - - - Build No. 1833 (18b42a1c8c) - Bump squirrelid from 0.1.0 to 0.2.0 (#229) - Fri, 27 Dec 2019 00:00:00 +0000 - https://mywarp.github.io/builds/1833.html - https://mywarp.github.io/builds/1833.html - - - Build No. 1836 (137b4e5f9d) - [Bukkit] Do not log an Exception when using LegacyFaceBlockResolver - Fri, 27 Dec 2019 00:00:00 +0000 - https://mywarp.github.io/builds/1836.html - https://mywarp.github.io/builds/1836.html + Build No. 92 (066e08c094) + Bump slf4j-api from 1.7.30 to 1.7.31 (#329) + Sat, 19 Jun 2021 00:00:00 +0000 + https://mywarp.github.io/builds/92.html + https://mywarp.github.io/builds/92.html - Build No. 5 (3f10ddb47e) - Deploy from GitHub Actions - Fri, 18 Dec 2020 00:00:00 +0000 - https://mywarp.github.io/builds/5.html - https://mywarp.github.io/builds/5.html + Build No. 237 (4b3ae307ab) + Bump animal-sniffer-annotations from 1.21 to 1.22 (#457) + Wed, 17 Aug 2022 00:00:00 +0000 + https://mywarp.github.io/builds/237.html + https://mywarp.github.io/builds/237.html - Build No. 67 (76bfad6ac7) - Bump jooq-checker from 3.14.8 to 3.14.9 (#316) - Thu, 22 Apr 2021 00:00:00 +0000 - https://mywarp.github.io/builds/67.html - https://mywarp.github.io/builds/67.html + Build No. 1854 (7ca3776d58) + Update exception.no-such-player message + Thu, 6 Aug 2020 00:00:00 +0000 + https://mywarp.github.io/builds/1854.html + https://mywarp.github.io/builds/1854.html - Build No. 249 (73a262f3ff) - Bump ru.vyarus.animalsniffer from 1.5.4 to 1.6.0 (#459) - Tue, 27 Dec 2022 00:00:00 +0000 - https://mywarp.github.io/builds/249.html - https://mywarp.github.io/builds/249.html + Build No. 26 (d262a223e6) + Bump flyway-core from 7.5.1 to 7.5.2 (#295) + Thu, 28 Jan 2021 00:00:00 +0000 + https://mywarp.github.io/builds/26.html + https://mywarp.github.io/builds/26.html - Build No. 54 (45e5df7891) - Bump flyway-core from 7.7.0 to 7.7.1 (#309) - Thu, 25 Mar 2021 00:00:00 +0000 - https://mywarp.github.io/builds/54.html - https://mywarp.github.io/builds/54.html + Build No. 1785 (9142277) + Update issue templates + Tue, 11 Jun 2019 00:00:00 +0000 + https://mywarp.github.io/builds/1785.html + https://mywarp.github.io/builds/1785.html - Build No. 1819 (b1f5e3ff8b) - [Bukkit] Simplify chunk pre-loading - Thu, 5 Dec 2019 00:00:00 +0000 - https://mywarp.github.io/builds/1819.html - https://mywarp.github.io/builds/1819.html + Build No. 1852 (232676f182) + Update SpigotAPI to 1.16.1-R0.1-SNAPSHOT + Thu, 6 Aug 2020 00:00:00 +0000 + https://mywarp.github.io/builds/1852.html + https://mywarp.github.io/builds/1852.html - Build No. 40 (b7e5fc8c2e) - Bump ru.vyarus.animalsniffer from 1.5.2 to 1.5.3 (#302) - Thu, 18 Feb 2021 00:00:00 +0000 - https://mywarp.github.io/builds/40.html - https://mywarp.github.io/builds/40.html + Build No. 1899 (163f3130a6) + Bump flyway-core from 7.0.4 to 7.1.0 (#271) + Wed, 28 Oct 2020 00:00:00 +0000 + https://mywarp.github.io/builds/1899.html + https://mywarp.github.io/builds/1899.html - Build No. 128 (e8a35fa87c) - Bump com.github.johnrengelman.shadow from 7.0.0 to 7.1.0 (#360) - Sun, 31 Oct 2021 00:00:00 +0000 - https://mywarp.github.io/builds/128.html - https://mywarp.github.io/builds/128.html + Build No. 9 (5a266fbb26) + Update changelog + Sat, 19 Dec 2020 00:00:00 +0000 + https://mywarp.github.io/builds/9.html + https://mywarp.github.io/builds/9.html - Build No. 269 (71e264e68d) - Bump org.spigotmc:spigot-api (#478) - Thu, 8 Jun 2023 00:00:00 +0000 - https://mywarp.github.io/builds/269.html - https://mywarp.github.io/builds/269.html + Build No. 1882 (8ff3a86a1d) + Bump flyway-core from 7.0.0 to 7.0.1 (#265) + Thu, 8 Oct 2020 00:00:00 +0000 + https://mywarp.github.io/builds/1882.html + https://mywarp.github.io/builds/1882.html diff --git a/particles.js b/particles.js index b0a6ce5a..2de6ebea 100644 --- a/particles.js +++ b/particles.js @@ -1 +1 @@ -(()=>{var he=class{constructor(){this._listeners=new Map}addEventListener(e,t){this.removeEventListener(e,t);let i=this._listeners.get(e);i||(i=[],this._listeners.set(e,i)),i.push(t)}dispatchEvent(e,t){let i=this._listeners.get(e);i&&i.forEach(s=>s(t))}hasEventListener(e){return!!this._listeners.get(e)}removeAllEventListeners(e){e?this._listeners.delete(e):this._listeners=new Map}removeEventListener(e,t){let i=this._listeners.get(e);if(!i)return;let s=i.length,n=i.indexOf(t);n<0||(s===1?this._listeners.delete(e):i.splice(n,1))}};var B="generated",ci="pointerdown",hi="pointerup",Wt="pointerleave",fi="pointerout",Bt="pointermove",ui="touchstart",Gt="touchend",pi="touchmove",di="touchcancel",mi="resize",gi="visibilitychange",E="tsParticles - Error";var G=class o{constructor(e,t,i){if(this._updateFromAngle=(s,n)=>{this.x=Math.cos(s)*n,this.y=Math.sin(s)*n},typeof e!="number"&&e){this.x=e.x,this.y=e.y;let s=e;this.z=s.z?s.z:0}else if(e!==void 0&&t!==void 0)this.x=e,this.y=t,this.z=i??0;else throw new Error(`${E} Vector3d not initialized correctly`)}static get origin(){return o.create(0,0,0)}get angle(){return Math.atan2(this.y,this.x)}set angle(e){this._updateFromAngle(e,this.length)}get length(){return Math.sqrt(this.getLengthSq())}set length(e){this._updateFromAngle(this.angle,e)}static clone(e){return o.create(e.x,e.y,e.z)}static create(e,t,i){return new o(e,t,i)}add(e){return o.create(this.x+e.x,this.y+e.y,this.z+e.z)}addTo(e){this.x+=e.x,this.y+=e.y,this.z+=e.z}copy(){return o.clone(this)}distanceTo(e){return this.sub(e).length}distanceToSq(e){return this.sub(e).getLengthSq()}div(e){return o.create(this.x/e,this.y/e,this.z/e)}divTo(e){this.x/=e,this.y/=e,this.z/=e}getLengthSq(){return this.x**2+this.y**2}mult(e){return o.create(this.x*e,this.y*e,this.z*e)}multTo(e){this.x*=e,this.y*=e,this.z*=e}rotate(e){return o.create(this.x*Math.cos(e)-this.y*Math.sin(e),this.x*Math.sin(e)+this.y*Math.cos(e),0)}setTo(e){this.x=e.x,this.y=e.y;let t=e;this.z=t.z?t.z:0}sub(e){return o.create(this.x-e.x,this.y-e.y,this.z-e.z)}subFrom(e){this.x-=e.x,this.y-=e.y,this.z-=e.z}};var C=class o extends G{constructor(e,t){super(e,t,0)}static get origin(){return o.create(0,0)}static clone(e){return o.create(e.x,e.y)}static create(e,t){return new o(e,t)}};var co=Math.random;function y(){return V(co(),0,1-1e-16)}function V(o,e,t){return Math.min(Math.max(o,e),t)}function fe(o,e,t,i){return Math.floor((o*t+e*i)/(t+i))}function M(o){let e=J(o),t=ue(o);return e===t&&(t=0),y()*(e-t)+t}function m(o){return typeof o=="number"?o:M(o)}function ue(o){return typeof o=="number"?o:o.min}function J(o){return typeof o=="number"?o:o.max}function d(o,e){if(o===e||e===void 0&&typeof o=="number")return o;let t=ue(o),i=J(o);return e!==void 0?{min:Math.min(t,e),max:Math.max(i,e)}:d(t,i)}function Z(o){let e=o.random,{enable:t,minimumValue:i}=typeof e=="boolean"?{enable:e,minimumValue:0}:e;return m(t?d(o.value,i):o.value)}function P(o,e){let t=o.x-e.x,i=o.y-e.y;return{dx:t,dy:i,distance:Math.sqrt(t**2+i**2)}}function T(o,e){return P(o,e).distance}function xi(o,e,t){if(typeof o=="number")return o*Math.PI/180;switch(o){case"top":return-Math.PI/2;case"top-right":return-Math.PI/4;case"right":return 0;case"bottom-right":return Math.PI/4;case"bottom":return Math.PI/2;case"bottom-left":return 3*Math.PI/4;case"left":return Math.PI;case"top-left":return-3*Math.PI/4;case"inside":return Math.atan2(t.y-e.y,t.x-e.x);case"outside":return Math.atan2(e.y-t.y,e.x-t.x);default:return y()*Math.PI*2}}function yi(o){let e=C.origin;return e.length=1,e.angle=o,e}function vi(o){return o.position&&o.position.x!==void 0&&o.position.y!==void 0?{x:o.position.x*o.size.width/100,y:o.position.y*o.size.height/100}:void 0}function bi(o){return{x:o.position?.x??y()*o.size.width,y:o.position?.y??y()*o.size.height}}function pe(o){return o?o.endsWith("%")?parseFloat(o)/100:parseFloat(o):1}function U(){return typeof window>"u"||!window||typeof window.document>"u"||!window.document}function ho(){return!U()&&typeof matchMedia<"u"}function de(o){if(ho())return matchMedia(o)}function wi(){return U()?o=>setTimeout(o):o=>(requestAnimationFrame||setTimeout)(o)}function _i(){return U()?o=>clearTimeout(o):o=>(cancelAnimationFrame||clearTimeout)(o)}function zi(o,e){return o===e||e instanceof Array&&e.indexOf(o)>-1}function fo(o){return Math.floor(y()*o.length)}function me(o,e,t=!0){return o[e!==void 0&&t?e%o.length:fo(o)]}function Q(o,e,t,i,s){return uo(oe(o,i??0),e,t,s)}function uo(o,e,t,i){let s=!0;return(!i||i==="bottom")&&(s=o.topt.x),s&&(!i||i==="right")&&(s=o.leftt.y),s}function oe(o,e){return{bottom:o.y+e,left:o.x-e,right:o.x+e,top:o.y-e}}function w(o,...e){for(let t of e){if(t==null)continue;if(typeof t!="object"){o=t;continue}let i=Array.isArray(t);i&&(typeof o!="object"||!o||!Array.isArray(o))?o=[]:!i&&(typeof o!="object"||!o||Array.isArray(o))&&(o={});for(let s in t){if(s==="__proto__")continue;let n=t,r=n[s],a=typeof r=="object",l=o;l[s]=a&&Array.isArray(r)?r.map(c=>w(l[s],c)):w(l[s],r)}}return o}function D(o,e){return o instanceof Array?o.map((t,i)=>e(t,i)):e(o,0)}function $(o,e,t){return o instanceof Array?me(o,e,t):o}function ge(o,e){let t=o.value,i=o.animation,s={delayTime:m(i.delay)*1e3,enable:i.enable,value:m(o.value)*e,max:J(t)*e,min:ue(t)*e,loops:0,maxLoops:m(i.count),time:0};if(i.enable){switch(s.decay=1-m(i.decay),i.mode){case"increase":s.status="increasing";break;case"decrease":s.status="decreasing";break;case"random":s.status=y()>=.5?"increasing":"decreasing";break}let n=i.mode==="auto";switch(i.startValue){case"min":s.value=s.min,n&&(s.status="increasing");break;case"max":s.value=s.max,n&&(s.status="decreasing");break;case"random":default:s.value=M(s),n&&(s.status=y()>=.5?"increasing":"decreasing");break}}return s.initialValue=s.value,s}var ye="random",xe="mid",ve=new Map;function Xt(o){ve.set(o.key,o)}function $t(o,e,t){return t<0&&(t+=1),t>1&&(t-=1),t<1/6?o+(e-o)*6*t:t<1/2?e:t<2/3?o+(e-o)*(2/3-t)*6:o}function po(o){for(let[,n]of ve)if(o.startsWith(n.stringPrefix))return n.parseString(o);let e=/^#?([a-f\d])([a-f\d])([a-f\d])([a-f\d])?$/i,t=o.replace(e,(n,r,a,l,c)=>r+r+a+a+l+l+(c!==void 0?c+c:"")),i=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})?$/i,s=i.exec(t);return s?{a:s[4]!==void 0?parseInt(s[4],16)/255:1,b:parseInt(s[3],16),g:parseInt(s[2],16),r:parseInt(s[1],16)}:void 0}function O(o,e,t=!0){if(!o)return;let i=typeof o=="string"?{value:o}:o;if(typeof i.value=="string")return ki(i.value,e,t);if(i.value instanceof Array)return O({value:me(i.value,e,t)});for(let[,s]of ve){let n=s.handleRangeColor(i);if(n)return n}}function ki(o,e,t=!0){if(!o)return;let i=typeof o=="string"?{value:o}:o;if(typeof i.value=="string")return i.value===ye?Pi():go(i.value);if(i.value instanceof Array)return ki({value:me(i.value,e,t)});for(let[,s]of ve){let n=s.handleColor(i);if(n)return n}}function se(o,e,t=!0){let i=O(o,e,t);return i?mo(i):void 0}function mo(o){let e=o.r/255,t=o.g/255,i=o.b/255,s=Math.max(e,t,i),n=Math.min(e,t,i),r={h:0,l:(s+n)/2,s:0};return s!==n&&(r.s=r.l<.5?(s-n)/(s+n):(s-n)/(2-s-n),r.h=e===s?(t-i)/(s-n):r.h=t===s?2+(i-e)/(s-n):4+(e-t)/(s-n)),r.l*=100,r.s*=100,r.h*=60,r.h<0&&(r.h+=360),r.h>=360&&(r.h-=360),r}function go(o){return po(o)}function N(o){let e={b:0,g:0,r:0},t={h:o.h/360,l:o.l/100,s:o.s/100};if(!t.s)e.r=e.g=e.b=t.l;else{let i=t.l<.5?t.l*(1+t.s):t.l+t.s-t.l*t.s,s=2*t.l-i;e.r=$t(s,i,t.h+1/3),e.g=$t(s,i,t.h),e.b=$t(s,i,t.h-1/3)}return e.r=Math.floor(e.r*255),e.g=Math.floor(e.g*255),e.b=Math.floor(e.b*255),e}function Mi(o){let e=N(o);return{a:o.a,b:e.b,g:e.g,r:e.r}}function Pi(o){let e=o??0;return{b:Math.floor(M(d(e,256))),g:Math.floor(M(d(e,256))),r:Math.floor(M(d(e,256)))}}function q(o,e){return`rgba(${o.r}, ${o.g}, ${o.b}, ${e??1})`}function Yt(o,e){return`hsla(${o.h}, ${o.s}%, ${o.l}%, ${e??1})`}function xo(o,e,t,i){let s=o,n=e;return s.r===void 0&&(s=N(o)),n.r===void 0&&(n=N(e)),{b:fe(s.b,n.b,t,i),g:fe(s.g,n.g,t,i),r:fe(s.r,n.r,t,i)}}function Jt(o,e,t){if(t===ye)return Pi();if(t===xe){let i=o.getFillColor()??o.getStrokeColor(),s=e?.getFillColor()??e?.getStrokeColor();if(i&&s&&e)return xo(i,s,o.getRadius(),e.getRadius());{let n=i??s;if(n)return N(n)}}else return t}function Ci(o,e,t){let i=typeof o=="string"?o:o.value;return i===ye?t?O({value:i}):e?ye:xe:i===xe?xe:O({value:i})}function Zt(o){return o!==void 0?{h:o.h.value,s:o.s.value,l:o.l.value}:void 0}function Oi(o,e,t){let i={h:{enable:!1,value:o.h},s:{enable:!1,value:o.s},l:{enable:!1,value:o.l}};return e&&(Nt(i.h,e.h,t),Nt(i.s,e.s,t),Nt(i.l,e.l,t)),i}function Nt(o,e,t){o.enable=e.enable,o.enable?(o.velocity=m(e.speed)/100*t,o.decay=1-m(e.decay),o.status="increasing",o.loops=0,o.maxLoops=m(e.count),o.time=0,o.delayTime=m(e.delay)*1e3,e.sync||(o.velocity*=y(),o.value*=y()),o.initialValue=o.value):o.velocity=0}function be(o,e,t){o.beginPath(),o.moveTo(e.x,e.y),o.lineTo(t.x,t.y),o.closePath()}function Si(o,e,t,i){o.beginPath(),o.moveTo(e.x,e.y),o.lineTo(t.x,t.y),o.lineTo(i.x,i.y),o.closePath()}function Ri(o,e,t){o.fillStyle=t??"rgba(0,0,0,0)",o.fillRect(0,0,e.width,e.height)}function Ti(o,e,t,i){t&&(o.globalAlpha=i,o.drawImage(t,0,0,e.width,e.height),o.globalAlpha=1)}function we(o,e){o.clearRect(0,0,e.width,e.height)}function Ii(o){let{container:e,context:t,particle:i,delta:s,colorStyles:n,backgroundMask:r,composite:a,radius:l,opacity:c,shadow:h,transform:f}=o,u=i.getPosition(),p=i.rotation+(i.pathRotation?i.velocity.angle:0),x={sin:Math.sin(p),cos:Math.cos(p)},g={a:x.cos*(f.a??1),b:x.sin*(f.b??1),c:-x.sin*(f.c??1),d:x.cos*(f.d??1)};t.setTransform(g.a,g.b,g.c,g.d,u.x,u.y),t.beginPath(),r&&(t.globalCompositeOperation=a);let v=i.shadowColor;h.enable&&v&&(t.shadowBlur=h.blur,t.shadowColor=q(v),t.shadowOffsetX=h.offset.x,t.shadowOffsetY=h.offset.y),n.fill&&(t.fillStyle=n.fill);let _=i.strokeWidth??0;t.lineWidth=_,n.stroke&&(t.strokeStyle=n.stroke),yo(e,t,i,l,c,s),_>0&&t.stroke(),i.close&&t.closePath(),i.fill&&t.fill(),vo(e,t,i,l,c,s),t.globalCompositeOperation="source-over",t.setTransform(1,0,0,1,0,0)}function yo(o,e,t,i,s,n){if(!t.shape)return;let r=o.drawers.get(t.shape);r&&r.draw(e,t,i,s,n,o.retina.pixelRatio)}function vo(o,e,t,i,s,n){if(!t.shape)return;let r=o.drawers.get(t.shape);!r||!r.afterEffect||r.afterEffect(e,t,i,s,n,o.retina.pixelRatio)}function Di(o,e,t){e.draw&&e.draw(o,t)}function Ei(o,e,t,i){e.drawParticle&&e.drawParticle(o,t,i)}function Li(o,e,t){return{h:o.h,s:o.s,l:o.l+(e==="darken"?-1:1)*t}}function bo(o,e,t){let i=e[t];i!==void 0&&(o[t]=(o[t]??1)*i)}var _e=class{constructor(e){this.container=e,this._applyPostDrawUpdaters=t=>{for(let i of this._postDrawUpdaters)i.afterDraw&&i.afterDraw(t)},this._applyPreDrawUpdaters=(t,i,s,n,r,a)=>{for(let l of this._preDrawUpdaters){if(l.getColorStyles){let{fill:c,stroke:h}=l.getColorStyles(i,t,s,n);c&&(r.fill=c),h&&(r.stroke=h)}if(l.getTransformValues){let c=l.getTransformValues(i);for(let h in c)bo(a,c,h)}l.beforeDraw&&l.beforeDraw(i)}},this._applyResizePlugins=()=>{for(let t of this._resizePlugins)t.resize&&t.resize()},this._getPluginParticleColors=t=>{let i,s;for(let n of this._colorPlugins)if(!i&&n.particleFillColor&&(i=se(n.particleFillColor(t))),!s&&n.particleStrokeColor&&(s=se(n.particleStrokeColor(t))),i&&s)break;return[i,s]},this._initCover=()=>{let t=this.container.actualOptions,i=t.backgroundMask.cover,s=i.color,n=O(s);if(n){let r={...n,a:i.opacity};this._coverColorStyle=q(r,r.a)}},this._initStyle=()=>{let t=this.element,i=this.container.actualOptions;if(t){this._fullScreen?(this._originalStyle=w({},t.style),this._setFullScreenStyle()):this._resetOriginalStyle();for(let s in i.style){if(!s||!i.style)continue;let n=i.style[s];n&&t.style.setProperty(s,n,"important")}}},this._initTrail=async()=>{let t=this.container.actualOptions,i=t.particles.move.trail,s=i.fill;if(i.enable)if(s.color){let n=O(s.color);if(!n)return;let r=t.particles.move.trail;this._trailFill={color:{...n},opacity:1/r.length}}else await new Promise((n,r)=>{if(!s.image)return;let a=document.createElement("img");a.addEventListener("load",()=>{this._trailFill={image:a,opacity:1/i.length},n()}),a.addEventListener("error",l=>{r(l.error)}),a.src=s.image})},this._paintBase=t=>{this.draw(i=>Ri(i,this.size,t))},this._paintImage=(t,i)=>{this.draw(s=>Ti(s,this.size,t,i))},this._repairStyle=()=>{let t=this.element;t&&(this._safeMutationObserver(i=>i.disconnect()),this._initStyle(),this.initBackground(),this._safeMutationObserver(i=>i.observe(t,{attributes:!0})))},this._resetOriginalStyle=()=>{let t=this.element,i=this._originalStyle;if(!(t&&i))return;let s=t.style;s.position=i.position,s.zIndex=i.zIndex,s.top=i.top,s.left=i.left,s.width=i.width,s.height=i.height},this._safeMutationObserver=t=>{this._mutationObserver&&t(this._mutationObserver)},this._setFullScreenStyle=()=>{let t=this.element;if(!t)return;let i="important",s=t.style;s.setProperty("position","fixed",i),s.setProperty("z-index",this.container.actualOptions.fullScreen.zIndex.toString(10),i),s.setProperty("top","0",i),s.setProperty("left","0",i),s.setProperty("width","100%",i),s.setProperty("height","100%",i)},this.size={height:0,width:0},this._context=null,this._generated=!1,this._preDrawUpdaters=[],this._postDrawUpdaters=[],this._resizePlugins=[],this._colorPlugins=[],this._mutationObserver=!U()&&typeof MutationObserver<"u"?new MutationObserver(t=>{for(let i of t)i.type==="attributes"&&i.attributeName==="style"&&this._repairStyle()}):void 0}get _fullScreen(){return this.container.actualOptions.fullScreen.enable}clear(){let e=this.container.actualOptions,t=e.particles.move.trail,i=this._trailFill;e.backgroundMask.enable?this.paint():t.enable&&t.length>0&&i?i.color?this._paintBase(q(i.color,i.opacity)):i.image&&this._paintImage(i.image,i.opacity):this.draw(s=>{we(s,this.size)})}destroy(){if(this._safeMutationObserver(e=>e.disconnect()),this._generated){let e=this.element;e&&e.remove()}else this._resetOriginalStyle();this.stop(),this._preDrawUpdaters=[],this._postDrawUpdaters=[],this._resizePlugins=[],this._colorPlugins=[]}draw(e){let t=this._context;if(t)return e(t)}drawParticle(e,t){if(e.spawning||e.destroyed)return;let i=e.getRadius();if(i<=0)return;let s=e.getFillColor(),n=e.getStrokeColor()??s,[r,a]=this._getPluginParticleColors(e);r||(r=s),a||(a=n),!(!r&&!a)&&this.draw(l=>{let c=this.container,h=c.actualOptions,f=e.options.zIndex,u=(1-e.zIndexFactor)**f.opacityRate,p=e.bubble.opacity??e.opacity?.value??1,x=e.strokeOpacity??p,g=p*u,v=x*u,_={},b={fill:r?Yt(r,g):void 0};b.stroke=a?Yt(a,v):b.fill,this._applyPreDrawUpdaters(l,e,i,g,b,_),Ii({container:c,context:l,particle:e,delta:t,colorStyles:b,backgroundMask:h.backgroundMask.enable,composite:h.backgroundMask.composite,radius:i*(1-e.zIndexFactor)**f.sizeRate,opacity:g,shadow:e.options.shadow,transform:_}),this._applyPostDrawUpdaters(e)})}drawParticlePlugin(e,t,i){this.draw(s=>Ei(s,e,t,i))}drawPlugin(e,t){this.draw(i=>Di(i,e,t))}async init(){this.resize(),this._initStyle(),this._initCover();try{await this._initTrail()}catch(e){console.error(e)}this.initBackground(),this._safeMutationObserver(e=>{this.element&&e.observe(this.element,{attributes:!0})}),this.initUpdaters(),this.initPlugins(),this.paint()}initBackground(){let e=this.container.actualOptions,t=e.background,i=this.element;if(!i)return;let s=i.style;if(s){if(t.color){let n=O(t.color);s.backgroundColor=n?q(n,t.opacity):""}else s.backgroundColor="";s.backgroundImage=t.image||"",s.backgroundPosition=t.position||"",s.backgroundRepeat=t.repeat||"",s.backgroundSize=t.size||""}}initPlugins(){this._resizePlugins=[];for(let[,e]of this.container.plugins)e.resize&&this._resizePlugins.push(e),(e.particleFillColor||e.particleStrokeColor)&&this._colorPlugins.push(e)}initUpdaters(){this._preDrawUpdaters=[],this._postDrawUpdaters=[];for(let e of this.container.particles.updaters)e.afterDraw&&this._postDrawUpdaters.push(e),(e.getColorStyles||e.getTransformValues||e.beforeDraw)&&this._preDrawUpdaters.push(e)}loadCanvas(e){this._generated&&this.element&&this.element.remove(),this._generated=e.dataset&&B in e.dataset?e.dataset[B]==="true":this._generated,this.element=e,this.element.ariaHidden="true",this._originalStyle=w({},this.element.style),this.size.height=e.offsetHeight,this.size.width=e.offsetWidth,this._context=this.element.getContext("2d"),this._safeMutationObserver(t=>{this.element&&t.observe(this.element,{attributes:!0})}),this.container.retina.init(),this.initBackground()}paint(){let e=this.container.actualOptions;this.draw(t=>{e.backgroundMask.enable&&e.backgroundMask.cover?(we(t,this.size),this._paintBase(this._coverColorStyle)):this._paintBase()})}resize(){if(!this.element)return!1;let e=this.container,t=e.retina.pixelRatio,i=e.canvas.size,s={width:this.element.offsetWidth*t,height:this.element.offsetHeight*t};if(s.height===i.height&&s.width===i.width&&s.height===this.element.height&&s.width===this.element.width)return!1;let n={...i};return this.element.width=i.width=this.element.offsetWidth*t,this.element.height=i.height=this.element.offsetHeight*t,this.container.started&&(this.resizeFactor={width:i.width/n.width,height:i.height/n.height}),!0}stop(){this.draw(e=>we(e,this.size))}async windowResize(){if(!this.element||!this.resize())return;let e=this.container,t=e.updateActualOptions();e.particles.setDensity(),this._applyResizePlugins(),t&&await e.refresh()}};function L(o,e,t,i,s){if(i){let n={passive:!0};typeof s=="boolean"?n.capture=s:s!==void 0&&(n=s),o.addEventListener(e,t,n)}else{let n=s;o.removeEventListener(e,t,n)}}var ze=class{constructor(e){this.container=e,this._doMouseTouchClick=t=>{let i=this.container,s=i.actualOptions;if(this._canPush){let n=i.interactivity.mouse,r=n.position;if(!r)return;n.clickPosition={...r},n.clickTime=new Date().getTime();let a=s.interactivity.events.onClick;D(a.mode,l=>this.container.handleClickMode(l))}t.type==="touchend"&&setTimeout(()=>this._mouseTouchFinish(),500)},this._handleThemeChange=t=>{let i=t,s=this.container,n=s.options,r=n.defaultThemes,a=i.matches?r.dark:r.light,l=n.themes.find(c=>c.name===a);l&&l.default.auto&&s.loadTheme(a)},this._handleVisibilityChange=()=>{let t=this.container,i=t.actualOptions;this._mouseTouchFinish(),i.pauseOnBlur&&(document&&document.hidden?(t.pageHidden=!0,t.pause()):(t.pageHidden=!1,t.getAnimationStatus()?t.play(!0):t.draw(!0)))},this._handleWindowResize=async()=>{this._resizeTimeout&&(clearTimeout(this._resizeTimeout),delete this._resizeTimeout),this._resizeTimeout=setTimeout(async()=>{let t=this.container.canvas;t&&await t.windowResize()},this.container.actualOptions.interactivity.events.resize.delay*1e3)},this._manageInteractivityListeners=(t,i)=>{let s=this._handlers,n=this.container,r=n.actualOptions,a=n.interactivity.element;if(!a)return;let l=a,c=n.canvas.element;c&&(c.style.pointerEvents=l===c?"initial":"none"),(r.interactivity.events.onHover.enable||r.interactivity.events.onClick.enable)&&(L(a,Bt,s.mouseMove,i),L(a,ui,s.touchStart,i),L(a,pi,s.touchMove,i),r.interactivity.events.onClick.enable?(L(a,Gt,s.touchEndClick,i),L(a,hi,s.mouseUp,i),L(a,ci,s.mouseDown,i)):L(a,Gt,s.touchEnd,i),L(a,t,s.mouseLeave,i),L(a,di,s.touchCancel,i))},this._manageListeners=t=>{let i=this._handlers,s=this.container,n=s.actualOptions,r=n.interactivity.detectsOn,a=s.canvas.element,l=Wt;r==="window"?(s.interactivity.element=window,l=fi):r==="parent"&&a?s.interactivity.element=a.parentElement??a.parentNode:s.interactivity.element=a,this._manageMediaMatch(t),this._manageResize(t),this._manageInteractivityListeners(l,t),document&&L(document,gi,i.visibilityChange,t,!1)},this._manageMediaMatch=t=>{let i=this._handlers,s=de("(prefers-color-scheme: dark)");if(s){if(s.addEventListener!==void 0){L(s,"change",i.themeChange,t);return}s.addListener!==void 0&&(t?s.addListener(i.oldThemeChange):s.removeListener(i.oldThemeChange))}},this._manageResize=t=>{let i=this._handlers,s=this.container;if(!s.actualOptions.interactivity.events.resize)return;if(typeof ResizeObserver>"u"){L(window,mi,i.resize,t);return}let r=s.canvas.element;this._resizeObserver&&!t?(r&&this._resizeObserver.unobserve(r),this._resizeObserver.disconnect(),delete this._resizeObserver):!this._resizeObserver&&t&&r&&(this._resizeObserver=new ResizeObserver(async a=>{a.find(c=>c.target===r)&&await this._handleWindowResize()}),this._resizeObserver.observe(r))},this._mouseDown=()=>{let{interactivity:t}=this.container;if(!t)return;let{mouse:i}=t;i.clicking=!0,i.downPosition=i.position},this._mouseTouchClick=t=>{let i=this.container,s=i.actualOptions,{mouse:n}=i.interactivity;n.inside=!0;let r=!1,a=n.position;if(!(!a||!s.interactivity.events.onClick.enable)){for(let[,l]of i.plugins)if(l.clickPositionValid&&(r=l.clickPositionValid(a),r))break;r||this._doMouseTouchClick(t),n.clicking=!1}},this._mouseTouchFinish=()=>{let t=this.container.interactivity;if(!t)return;let i=t.mouse;delete i.position,delete i.clickPosition,delete i.downPosition,t.status=Wt,i.inside=!1,i.clicking=!1},this._mouseTouchMove=t=>{let i=this.container,s=i.actualOptions,n=i.interactivity,r=i.canvas.element;if(!n||!n.element)return;n.mouse.inside=!0;let a;if(t.type.startsWith("pointer")){this._canPush=!0;let c=t;if(n.element===window){if(r){let h=r.getBoundingClientRect();a={x:c.clientX-h.left,y:c.clientY-h.top}}}else if(s.interactivity.detectsOn==="parent"){let h=c.target,f=c.currentTarget;if(h&&f&&r){let u=h.getBoundingClientRect(),p=f.getBoundingClientRect(),x=r.getBoundingClientRect();a={x:c.offsetX+2*u.left-(p.left+x.left),y:c.offsetY+2*u.top-(p.top+x.top)}}else a={x:c.offsetX??c.clientX,y:c.offsetY??c.clientY}}else c.target===r&&(a={x:c.offsetX??c.clientX,y:c.offsetY??c.clientY})}else if(this._canPush=t.type!=="touchmove",r){let c=t,h=c.touches[c.touches.length-1],f=r.getBoundingClientRect();a={x:h.clientX-(f.left??0),y:h.clientY-(f.top??0)}}let l=i.retina.pixelRatio;a&&(a.x*=l,a.y*=l),n.mouse.position=a,n.status=Bt},this._touchEnd=t=>{let i=t,s=Array.from(i.changedTouches);for(let n of s)this._touches.delete(n.identifier);this._mouseTouchFinish()},this._touchEndClick=t=>{let i=t,s=Array.from(i.changedTouches);for(let n of s)this._touches.delete(n.identifier);this._mouseTouchClick(t)},this._touchStart=t=>{let i=t,s=Array.from(i.changedTouches);for(let n of s)this._touches.set(n.identifier,performance.now());this._mouseTouchMove(t)},this._canPush=!0,this._touches=new Map,this._handlers={mouseDown:()=>this._mouseDown(),mouseLeave:()=>this._mouseTouchFinish(),mouseMove:t=>this._mouseTouchMove(t),mouseUp:t=>this._mouseTouchClick(t),touchStart:t=>this._touchStart(t),touchMove:t=>this._mouseTouchMove(t),touchEnd:t=>this._touchEnd(t),touchCancel:t=>this._touchEnd(t),touchEndClick:t=>this._touchEndClick(t),visibilityChange:()=>this._handleVisibilityChange(),themeChange:t=>this._handleThemeChange(t),oldThemeChange:t=>this._handleThemeChange(t),resize:()=>{this._handleWindowResize()}}}addListeners(){this._manageListeners(!0)}removeListeners(){this._manageListeners(!1)}};function wo(o,e=60,t=!1){return{value:o,factor:t?60/e:60*o/1e3}}var ke=class{constructor(e){this.container=e}async nextFrame(e){try{let t=this.container;if(!t.smooth&&t.lastFrameTime!==void 0&&e1e3){t.draw(!1);return}if(await t.particles.draw(i),!t.alive()){t.destroy();return}t.getAnimationStatus()&&t.draw(!1)}catch(t){console.error(`${E} in animation loop`,t)}}};var z=class o{constructor(){this.value=""}static create(e,t){let i=new o;return i.load(e),t!==void 0&&(typeof t=="string"||t instanceof Array?i.load({value:t}):i.load(t)),i}load(e){e?.value!==void 0&&(this.value=e.value)}};var Me=class{constructor(){this.color=new z,this.color.value="",this.image="",this.position="",this.repeat="",this.size="",this.opacity=1}load(e){e&&(e.color!==void 0&&(this.color=z.create(this.color,e.color)),e.image!==void 0&&(this.image=e.image),e.position!==void 0&&(this.position=e.position),e.repeat!==void 0&&(this.repeat=e.repeat),e.size!==void 0&&(this.size=e.size),e.opacity!==void 0&&(this.opacity=e.opacity))}};var Pe=class{constructor(){this.color=new z,this.color.value="#fff",this.opacity=1}load(e){e&&(e.color!==void 0&&(this.color=z.create(this.color,e.color)),e.opacity!==void 0&&(this.opacity=e.opacity))}};var Ce=class{constructor(){this.composite="destination-out",this.cover=new Pe,this.enable=!1}load(e){if(e){if(e.composite!==void 0&&(this.composite=e.composite),e.cover!==void 0){let t=e.cover,i=typeof e.cover=="string"?{color:e.cover}:e.cover;this.cover.load(t.color!==void 0?t:{color:i})}e.enable!==void 0&&(this.enable=e.enable)}}};var Oe=class{constructor(){this.enable=!0,this.zIndex=0}load(e){e&&(e.enable!==void 0&&(this.enable=e.enable),e.zIndex!==void 0&&(this.zIndex=e.zIndex))}};var Se=class{constructor(){this.enable=!1,this.mode=[]}load(e){e&&(e.enable!==void 0&&(this.enable=e.enable),e.mode!==void 0&&(this.mode=e.mode))}};var ne=class{constructor(){this.selectors=[],this.enable=!1,this.mode=[],this.type="circle"}get el(){return this.elementId}set el(e){this.elementId=e}get elementId(){return this.ids}set elementId(e){this.ids=e}get ids(){return D(this.selectors,e=>e.replace("#",""))}set ids(e){this.selectors=D(e,t=>`#${t}`)}load(e){if(!e)return;let t=e.ids??e.elementId??e.el;t!==void 0&&(this.ids=t),e.selectors!==void 0&&(this.selectors=e.selectors),e.enable!==void 0&&(this.enable=e.enable),e.mode!==void 0&&(this.mode=e.mode),e.type!==void 0&&(this.type=e.type)}};var Re=class{constructor(){this.enable=!1,this.force=2,this.smooth=10}load(e){e&&(e.enable!==void 0&&(this.enable=e.enable),e.force!==void 0&&(this.force=e.force),e.smooth!==void 0&&(this.smooth=e.smooth))}};var Te=class{constructor(){this.enable=!1,this.mode=[],this.parallax=new Re}load(e){e&&(e.enable!==void 0&&(this.enable=e.enable),e.mode!==void 0&&(this.mode=e.mode),this.parallax.load(e.parallax))}};var Ie=class{constructor(){this.delay=.5,this.enable=!0}load(e){e!==void 0&&(e.delay!==void 0&&(this.delay=e.delay),e.enable!==void 0&&(this.enable=e.enable))}};var De=class{constructor(){this.onClick=new Se,this.onDiv=new ne,this.onHover=new Te,this.resize=new Ie}get onclick(){return this.onClick}set onclick(e){this.onClick=e}get ondiv(){return this.onDiv}set ondiv(e){this.onDiv=e}get onhover(){return this.onHover}set onhover(e){this.onHover=e}load(e){if(!e)return;this.onClick.load(e.onClick??e.onclick);let t=e.onDiv??e.ondiv;t!==void 0&&(this.onDiv=D(t,i=>{let s=new ne;return s.load(i),s})),this.onHover.load(e.onHover??e.onhover),typeof e.resize=="boolean"?this.resize.enable=e.resize:this.resize.load(e.resize)}};var Ee=class{constructor(e,t){this._engine=e,this._container=t}load(e){if(!e||!this._container)return;let t=this._engine.plugins.interactors.get(this._container);if(t)for(let i of t)i.loadModeOptions&&i.loadModeOptions(this,e)}};var j=class{constructor(e,t){this.detectsOn="window",this.events=new De,this.modes=new Ee(e,t)}get detect_on(){return this.detectsOn}set detect_on(e){this.detectsOn=e}load(e){if(!e)return;let t=e.detectsOn??e.detect_on;t!==void 0&&(this.detectsOn=t),this.events.load(e.events),this.modes.load(e.modes)}};var Le=class{load(e){e&&(e.position&&(this.position={x:e.position.x??50,y:e.position.y??50,mode:e.position.mode??"percent"}),e.options&&(this.options=w({},e.options)))}};var Fe=class{constructor(){this.maxWidth=1/0,this.options={},this.mode="canvas"}load(e){e&&(e.maxWidth!==void 0&&(this.maxWidth=e.maxWidth),e.mode!==void 0&&(e.mode==="screen"?this.mode="screen":this.mode="canvas"),e.options!==void 0&&(this.options=w({},e.options)))}};var Ae=class{constructor(){this.auto=!1,this.mode="any",this.value=!1}load(e){e&&(e.auto!==void 0&&(this.auto=e.auto),e.mode!==void 0&&(this.mode=e.mode),e.value!==void 0&&(this.value=e.value))}};var Ve=class{constructor(){this.name="",this.default=new Ae}load(e){e&&(e.name!==void 0&&(this.name=e.name),this.default.load(e.default),e.options!==void 0&&(this.options=w({},e.options)))}};var K=class{constructor(){this.count=0,this.enable=!1,this.offset=0,this.speed=1,this.delay=0,this.decay=0,this.sync=!0}load(e){e&&(e.count!==void 0&&(this.count=d(e.count)),e.enable!==void 0&&(this.enable=e.enable),e.offset!==void 0&&(this.offset=d(e.offset)),e.speed!==void 0&&(this.speed=d(e.speed)),e.decay!==void 0&&(this.decay=d(e.decay)),e.delay!==void 0&&(this.delay=d(e.delay)),e.sync!==void 0&&(this.sync=e.sync))}};var qe=class{constructor(){this.h=new K,this.s=new K,this.l=new K}load(e){e&&(this.h.load(e.h),this.s.load(e.s),this.l.load(e.l))}};var X=class o extends z{constructor(){super(),this.animation=new qe}static create(e,t){let i=new o;return i.load(e),t!==void 0&&(typeof t=="string"||t instanceof Array?i.load({value:t}):i.load(t)),i}load(e){if(super.load(e),!e)return;let t=e.animation;t!==void 0&&(t.enable!==void 0?this.animation.h.load(t):this.animation.load(e.animation))}};var He=class{constructor(){this.speed=2}load(e){e&&e.speed!==void 0&&(this.speed=e.speed)}};var Ue=class{constructor(){this.enable=!0,this.retries=0}load(e){e&&(e.enable!==void 0&&(this.enable=e.enable),e.retries!==void 0&&(this.retries=e.retries))}};var We=class{constructor(){this.count=0,this.enable=!1,this.speed=1,this.decay=0,this.delay=0,this.sync=!1}load(e){e&&(e.count!==void 0&&(this.count=d(e.count)),e.enable!==void 0&&(this.enable=e.enable),e.speed!==void 0&&(this.speed=d(e.speed)),e.decay!==void 0&&(this.decay=d(e.decay)),e.delay!==void 0&&(this.delay=d(e.delay)),e.sync!==void 0&&(this.sync=e.sync))}},Y=class extends We{constructor(){super(),this.mode="auto",this.startValue="random"}load(e){super.load(e),e&&(e.minimumValue!==void 0&&(this.minimumValue=e.minimumValue),e.mode!==void 0&&(this.mode=e.mode),e.startValue!==void 0&&(this.startValue=e.startValue))}};var Be=class{constructor(){this.enable=!1,this.minimumValue=0}load(e){e&&(e.enable!==void 0&&(this.enable=e.enable),e.minimumValue!==void 0&&(this.minimumValue=e.minimumValue))}};var F=class{constructor(){this.random=new Be,this.value=0}load(e){e&&(typeof e.random=="boolean"?this.random.enable=e.random:this.random.load(e.random),e.value!==void 0&&(this.value=d(e.value,this.random.enable?this.random.minimumValue:void 0)))}};var re=class extends F{constructor(){super(),this.random.minimumValue=.1,this.value=1}};var ee=class{constructor(){this.horizontal=new re,this.vertical=new re}load(e){e&&(this.horizontal.load(e.horizontal),this.vertical.load(e.vertical))}};var Ge=class{constructor(){this.absorb=new He,this.bounce=new ee,this.enable=!1,this.maxSpeed=50,this.mode="bounce",this.overlap=new Ue}load(e){e&&(this.absorb.load(e.absorb),this.bounce.load(e.bounce),e.enable!==void 0&&(this.enable=e.enable),e.maxSpeed!==void 0&&(this.maxSpeed=d(e.maxSpeed)),e.mode!==void 0&&(this.mode=e.mode),this.overlap.load(e.overlap))}};var $e=class{constructor(){this.offset=0,this.value=90}load(e){e&&(e.offset!==void 0&&(this.offset=d(e.offset)),e.value!==void 0&&(this.value=d(e.value)))}};var Ne=class{constructor(){this.distance=200,this.enable=!1,this.rotate={x:3e3,y:3e3}}get rotateX(){return this.rotate.x}set rotateX(e){this.rotate.x=e}get rotateY(){return this.rotate.y}set rotateY(e){this.rotate.y=e}load(e){if(!e)return;e.distance!==void 0&&(this.distance=d(e.distance)),e.enable!==void 0&&(this.enable=e.enable);let t=e.rotate?.x??e.rotateX;t!==void 0&&(this.rotate.x=t);let i=e.rotate?.y??e.rotateY;i!==void 0&&(this.rotate.y=i)}};var Xe=class{constructor(){this.x=50,this.y=50,this.mode="percent",this.radius=0}load(e){e&&(e.x!==void 0&&(this.x=e.x),e.y!==void 0&&(this.y=e.y),e.mode!==void 0&&(this.mode=e.mode),e.radius!==void 0&&(this.radius=e.radius))}};var Ye=class{constructor(){this.acceleration=9.81,this.enable=!1,this.inverse=!1,this.maxSpeed=50}load(e){e&&(e.acceleration!==void 0&&(this.acceleration=d(e.acceleration)),e.enable!==void 0&&(this.enable=e.enable),e.inverse!==void 0&&(this.inverse=e.inverse),e.maxSpeed!==void 0&&(this.maxSpeed=d(e.maxSpeed)))}};var Je=class{constructor(){this.clamp=!0,this.delay=new F,this.enable=!1,this.options={}}load(e){e&&(e.clamp!==void 0&&(this.clamp=e.clamp),this.delay.load(e.delay),e.enable!==void 0&&(this.enable=e.enable),this.generator=e.generator,e.options&&(this.options=w(this.options,e.options)))}};var Ze=class{load(e){e&&(e.color!==void 0&&(this.color=z.create(this.color,e.color)),e.image!==void 0&&(this.image=e.image))}};var Qe=class{constructor(){this.enable=!1,this.length=10,this.fill=new Ze}get fillColor(){return this.fill.color}set fillColor(e){this.fill.load({color:e})}load(e){e&&(e.enable!==void 0&&(this.enable=e.enable),(e.fill!==void 0||e.fillColor!==void 0)&&this.fill.load(e.fill||{color:e.fillColor}),e.length!==void 0&&(this.length=e.length))}};var je=class{constructor(){this.default="out"}load(e){e&&(e.default!==void 0&&(this.default=e.default),this.bottom=e.bottom??e.default,this.left=e.left??e.default,this.right=e.right??e.default,this.top=e.top??e.default)}};var Ke=class{constructor(){this.acceleration=0,this.enable=!1}load(e){e&&(e.acceleration!==void 0&&(this.acceleration=d(e.acceleration)),e.enable!==void 0&&(this.enable=e.enable),e.position&&(this.position=w({},e.position)))}};var et=class{constructor(){this.angle=new $e,this.attract=new Ne,this.center=new Xe,this.decay=0,this.distance={},this.direction="none",this.drift=0,this.enable=!1,this.gravity=new Ye,this.path=new Je,this.outModes=new je,this.random=!1,this.size=!1,this.speed=2,this.spin=new Ke,this.straight=!1,this.trail=new Qe,this.vibrate=!1,this.warp=!1}get bounce(){return this.collisions}set bounce(e){this.collisions=e}get collisions(){return!1}set collisions(e){}get noise(){return this.path}set noise(e){this.path=e}get outMode(){return this.outModes.default}set outMode(e){this.outModes.default=e}get out_mode(){return this.outMode}set out_mode(e){this.outMode=e}load(e){if(!e)return;this.angle.load(typeof e.angle=="number"?{value:e.angle}:e.angle),this.attract.load(e.attract),this.center.load(e.center),e.decay!==void 0&&(this.decay=d(e.decay)),e.direction!==void 0&&(this.direction=e.direction),e.distance!==void 0&&(this.distance=typeof e.distance=="number"?{horizontal:e.distance,vertical:e.distance}:{...e.distance}),e.drift!==void 0&&(this.drift=d(e.drift)),e.enable!==void 0&&(this.enable=e.enable),this.gravity.load(e.gravity);let t=e.outModes??e.outMode??e.out_mode;t!==void 0&&(typeof t=="object"?this.outModes.load(t):this.outModes.load({default:t})),this.path.load(e.path??e.noise),e.random!==void 0&&(this.random=e.random),e.size!==void 0&&(this.size=e.size),e.speed!==void 0&&(this.speed=d(e.speed)),this.spin.load(e.spin),e.straight!==void 0&&(this.straight=e.straight),this.trail.load(e.trail),e.vibrate!==void 0&&(this.vibrate=e.vibrate),e.warp!==void 0&&(this.warp=e.warp)}};var tt=class extends Y{constructor(){super(),this.destroy="none",this.speed=2}get opacity_min(){return this.minimumValue}set opacity_min(e){this.minimumValue=e}load(e){e?.opacity_min!==void 0&&e.minimumValue===void 0&&(e.minimumValue=e.opacity_min),super.load(e),e&&e.destroy!==void 0&&(this.destroy=e.destroy)}};var it=class extends F{constructor(){super(),this.animation=new tt,this.random.minimumValue=.1,this.value=1}get anim(){return this.animation}set anim(e){this.animation=e}load(e){if(!e)return;super.load(e);let t=e.animation??e.anim;t!==void 0&&(this.animation.load(t),this.value=d(this.value,this.animation.enable?this.animation.minimumValue:void 0))}};var ot=class{constructor(){this.enable=!1,this.width=1920,this.height=1080}get area(){return this.width}set area(e){this.width=e}get factor(){return this.height}set factor(e){this.height=e}get value_area(){return this.area}set value_area(e){this.area=e}load(e){if(!e)return;e.enable!==void 0&&(this.enable=e.enable);let t=e.width??e.area??e.value_area;t!==void 0&&(this.width=t);let i=e.height??e.factor;i!==void 0&&(this.height=i)}};var st=class{constructor(){this.density=new ot,this.limit=0,this.value=0}get max(){return this.limit}set max(e){this.limit=e}load(e){if(!e)return;this.density.load(e.density);let t=e.limit??e.max;t!==void 0&&(this.limit=t),e.value!==void 0&&(this.value=e.value)}};var nt=class{constructor(){this.blur=0,this.color=new z,this.enable=!1,this.offset={x:0,y:0},this.color.value="#000"}load(e){e&&(e.blur!==void 0&&(this.blur=e.blur),this.color=z.create(this.color,e.color),e.enable!==void 0&&(this.enable=e.enable),e.offset!==void 0&&(e.offset.x!==void 0&&(this.offset.x=e.offset.x),e.offset.y!==void 0&&(this.offset.y=e.offset.y)))}};var Qt="character",jt="char",Kt="image",ei="images",ti="polygon",ii="star",rt=class{constructor(){this.loadShape=(e,t,i,s)=>{if(!e)return;let n=e instanceof Array,r=n?[]:{},a=n!==this.options[t]instanceof Array,l=n!==this.options[i]instanceof Array;a&&(this.options[t]=r),l&&s&&(this.options[i]=r),this.options[t]=w(this.options[t]??r,e),(!this.options[i]||s)&&(this.options[i]=w(this.options[i]??r,e))},this.close=!0,this.fill=!0,this.options={},this.type="circle"}get character(){return this.options[Qt]??this.options[jt]}set character(e){this.options[jt]=this.options[Qt]=e}get custom(){return this.options}set custom(e){this.options=e}get image(){return this.options[Kt]??this.options[ei]}set image(e){this.options[ei]=this.options[Kt]=e}get images(){return this.image}set images(e){this.image=e}get polygon(){return this.options[ti]??this.options[ii]}set polygon(e){this.options[ii]=this.options[ti]=e}get stroke(){return[]}set stroke(e){}load(e){if(!e)return;let t=e.options??e.custom;if(t!==void 0)for(let i in t){let s=t[i];s&&(this.options[i]=w(this.options[i]??{},s))}this.loadShape(e.character,Qt,jt,!0),this.loadShape(e.polygon,ti,ii,!1),this.loadShape(e.image??e.images,Kt,ei,!0),e.close!==void 0&&(this.close=e.close),e.fill!==void 0&&(this.fill=e.fill),e.type!==void 0&&(this.type=e.type)}};var at=class extends Y{constructor(){super(),this.destroy="none",this.speed=5}get size_min(){return this.minimumValue}set size_min(e){this.minimumValue=e}load(e){e?.size_min!==void 0&&e.minimumValue===void 0&&(e.minimumValue=e.size_min),super.load(e),e&&e.destroy!==void 0&&(this.destroy=e.destroy)}};var lt=class extends F{constructor(){super(),this.animation=new at,this.random.minimumValue=1,this.value=3}get anim(){return this.animation}set anim(e){this.animation=e}load(e){if(super.load(e),!e)return;let t=e.animation??e.anim;t!==void 0&&(this.animation.load(t),this.value=d(this.value,this.animation.enable?this.animation.minimumValue:void 0))}};var ae=class{constructor(){this.width=0}load(e){e&&(e.color!==void 0&&(this.color=X.create(this.color,e.color)),e.width!==void 0&&(this.width=d(e.width)),e.opacity!==void 0&&(this.opacity=d(e.opacity)))}};var ct=class extends F{constructor(){super(),this.opacityRate=1,this.sizeRate=1,this.velocityRate=1}load(e){super.load(e),e&&(e.opacityRate!==void 0&&(this.opacityRate=e.opacityRate),e.sizeRate!==void 0&&(this.sizeRate=e.sizeRate),e.velocityRate!==void 0&&(this.velocityRate=e.velocityRate))}};var ht=class{constructor(e,t){this._engine=e,this._container=t,this.bounce=new ee,this.collisions=new Ge,this.color=new X,this.color.value="#fff",this.groups={},this.move=new et,this.number=new st,this.opacity=new it,this.reduceDuplicates=!1,this.shadow=new nt,this.shape=new rt,this.size=new lt,this.stroke=new ae,this.zIndex=new ct}load(e){if(!e)return;if(this.bounce.load(e.bounce),this.color.load(X.create(this.color,e.color)),e.groups!==void 0)for(let s in e.groups){let n=e.groups[s];n!==void 0&&(this.groups[s]=w(this.groups[s]??{},n))}this.move.load(e.move),this.number.load(e.number),this.opacity.load(e.opacity),e.reduceDuplicates!==void 0&&(this.reduceDuplicates=e.reduceDuplicates),this.shape.load(e.shape),this.size.load(e.size),this.shadow.load(e.shadow),this.zIndex.load(e.zIndex);let t=e.move?.collisions??e.move?.bounce;t!==void 0&&(this.collisions.enable=t),this.collisions.load(e.collisions),e.interactivity!==void 0&&(this.interactivity=w({},e.interactivity));let i=e.stroke??e.shape?.stroke;if(i&&(this.stroke=D(i,s=>{let n=new ae;return n.load(s),n})),this._container){let s=this._engine.plugins.updaters.get(this._container);if(s)for(let r of s)r.loadOptions&&r.loadOptions(this,e);let n=this._engine.plugins.interactors.get(this._container);if(n)for(let r of n)r.loadParticlesOptions&&r.loadParticlesOptions(this,e)}}};function oi(o,...e){for(let t of e)o.load(t)}function ft(o,e,...t){let i=new ht(o,e);return oi(i,...t),i}var ut=class{constructor(e,t){this._findDefaultTheme=i=>this.themes.find(s=>s.default.value&&s.default.mode===i)??this.themes.find(s=>s.default.value&&s.default.mode==="any"),this._importPreset=i=>{this.load(this._engine.plugins.getPreset(i))},this._engine=e,this._container=t,this.autoPlay=!0,this.background=new Me,this.backgroundMask=new Ce,this.defaultThemes={},this.delay=0,this.fullScreen=new Oe,this.detectRetina=!0,this.duration=0,this.fpsLimit=120,this.interactivity=new j(e,t),this.manualParticles=[],this.particles=ft(this._engine,this._container),this.pauseOnBlur=!0,this.pauseOnOutsideViewport=!0,this.responsive=[],this.smooth=!1,this.style={},this.themes=[],this.zLayers=100}get backgroundMode(){return this.fullScreen}set backgroundMode(e){this.fullScreen.load(e)}get fps_limit(){return this.fpsLimit}set fps_limit(e){this.fpsLimit=e}get retina_detect(){return this.detectRetina}set retina_detect(e){this.detectRetina=e}load(e){if(!e)return;e.preset!==void 0&&D(e.preset,r=>this._importPreset(r)),e.autoPlay!==void 0&&(this.autoPlay=e.autoPlay),e.delay!==void 0&&(this.delay=d(e.delay));let t=e.detectRetina??e.retina_detect;t!==void 0&&(this.detectRetina=t),e.duration!==void 0&&(this.duration=d(e.duration));let i=e.fpsLimit??e.fps_limit;i!==void 0&&(this.fpsLimit=i),e.pauseOnBlur!==void 0&&(this.pauseOnBlur=e.pauseOnBlur),e.pauseOnOutsideViewport!==void 0&&(this.pauseOnOutsideViewport=e.pauseOnOutsideViewport),e.zLayers!==void 0&&(this.zLayers=e.zLayers),this.background.load(e.background);let s=e.fullScreen??e.backgroundMode;typeof s=="boolean"?this.fullScreen.enable=s:this.fullScreen.load(s),this.backgroundMask.load(e.backgroundMask),this.interactivity.load(e.interactivity),e.manualParticles&&(this.manualParticles=e.manualParticles.map(r=>{let a=new Le;return a.load(r),a})),this.particles.load(e.particles),this.style=w(this.style,e.style),this._engine.plugins.loadOptions(this,e),e.smooth!==void 0&&(this.smooth=e.smooth);let n=this._engine.plugins.interactors.get(this._container);if(n)for(let r of n)r.loadOptions&&r.loadOptions(this,e);if(e.responsive!==void 0)for(let r of e.responsive){let a=new Fe;a.load(r),this.responsive.push(a)}if(this.responsive.sort((r,a)=>r.maxWidth-a.maxWidth),e.themes!==void 0)for(let r of e.themes){let a=this.themes.find(l=>l.name===r.name);if(a)a.load(r);else{let l=new Ve;l.load(r),this.themes.push(l)}}this.defaultThemes.dark=this._findDefaultTheme("dark")?.name,this.defaultThemes.light=this._findDefaultTheme("light")?.name}setResponsive(e,t,i){this.load(i);let s=this.responsive.find(n=>n.mode==="screen"&&screen?n.maxWidth>screen.availWidth:n.maxWidth*t>e);return this.load(s?.options),s?.maxWidth}setTheme(e){if(e){let t=this.themes.find(i=>i.name===e);t&&this.load(t.options)}else{let t=de("(prefers-color-scheme: dark)"),i=t&&t.matches,s=this._findDefaultTheme(i?"dark":"light");s&&this.load(s.options)}}};var pt=class{constructor(e,t){this.container=t,this._engine=e,this._interactors=this._engine.plugins.getInteractors(this.container,!0),this._externalInteractors=[],this._particleInteractors=[]}async externalInteract(e){for(let t of this._externalInteractors)t.isEnabled()&&await t.interact(e)}handleClickMode(e){for(let t of this._externalInteractors)t.handleClickMode&&t.handleClickMode(e)}init(){this._externalInteractors=[],this._particleInteractors=[];for(let e of this._interactors){switch(e.type){case"external":this._externalInteractors.push(e);break;case"particles":this._particleInteractors.push(e);break}e.init()}}async particlesInteract(e,t){for(let i of this._externalInteractors)i.clear(e,t);for(let i of this._particleInteractors)i.isEnabled(e)&&await i.interact(e,t)}async reset(e){for(let t of this._externalInteractors)t.isEnabled()&&t.reset(e);for(let t of this._particleInteractors)t.isEnabled(e)&&t.reset(e)}};var Fi=o=>{if(!zi(o.outMode,o.checkModes))return;let e=o.radius*2;o.coord>o.maxCoord-e?o.setCb(-o.radius):o.coord{for(let[,b]of a.plugins){let S=b.particlePosition!==void 0?b.particlePosition(l,this):void 0;if(S)return G.create(S.x,S.y,c)}let f=a.canvas.size,u=bi({size:f,position:l}),p=G.create(u.x,u.y,c),x=this.getRadius(),g=this.options.move.outModes,v=b=>{Fi({outMode:b,checkModes:["bounce","bounce-horizontal"],coord:p.x,maxCoord:a.canvas.size.width,setCb:S=>p.x+=S,radius:x})},_=b=>{Fi({outMode:b,checkModes:["bounce","bounce-vertical"],coord:p.y,maxCoord:a.canvas.size.height,setCb:S=>p.y+=S,radius:x})};return v(g.left??g.default),v(g.right??g.default),_(g.top??g.default),_(g.bottom??g.default),this._checkOverlap(p,h)?this._calcPosition(a,void 0,c,h+1):p},this._calculateVelocity=()=>{let a=yi(this.direction),l=a.copy(),c=this.options.move;if(c.direction==="inside"||c.direction==="outside")return l;let h=Math.PI/180*m(c.angle.value),f=Math.PI/180*m(c.angle.offset),u={left:f-h/2,right:f+h/2};return c.straight||(l.angle+=M(d(u.left,u.right))),c.random&&typeof c.speed=="number"&&(l.length*=y()),l},this._checkOverlap=(a,l=0)=>{let c=this.options.collisions,h=this.getRadius();if(!c.enable)return!1;let f=c.overlap;if(f.enable)return!1;let u=f.retries;if(u>=0&&l>u)throw new Error(`${E} particle is overlapping and can't be placed`);return!!this.container.particles.find(p=>T(a,p.position){if(!a||!this.roll||!this.backColor&&!this.roll.alter)return a;let l=this.roll.horizontal&&this.roll.vertical?2:1,c=this.roll.horizontal?Math.PI/2:0;return Math.floor(((this.roll.angle??0)+c)/(Math.PI/l))%2?this.backColor?this.backColor:this.roll.alter?Li(a,this.roll.alter.type,this.roll.alter.value):a:a},this._loadShapeData=(a,l)=>{let c=a.options[this.shape];if(c)return w({close:a.close,fill:a.fill},$(c,this.id,l))},this._engine=e,this.init(t,s,n,r)}destroy(e){if(this.unbreakable||this.destroyed)return;this.destroyed=!0,this.bubble.inRange=!1,this.slow.inRange=!1;let t=this.container,i=this.pathGenerator;for(let[,s]of t.plugins)s.particleDestroyed&&s.particleDestroyed(this,e);for(let s of t.particles.updaters)s.particleDestroyed&&s.particleDestroyed(this,e);i&&i.reset(this)}draw(e){let t=this.container;for(let[,i]of t.plugins)t.canvas.drawParticlePlugin(i,this,e);t.canvas.drawParticle(this,e)}getFillColor(){return this._getRollColor(this.bubble.color??Zt(this.color))}getMass(){return this.getRadius()**2*Math.PI/2}getPosition(){return{x:this.position.x+this.offset.x,y:this.position.y+this.offset.y,z:this.position.z}}getRadius(){return this.bubble.radius??this.size.value}getStrokeColor(){return this._getRollColor(this.bubble.color??Zt(this.strokeColor))}init(e,t,i,s){let n=this.container,r=this._engine;this.id=e,this.group=s,this.fill=!0,this.pathRotation=!1,this.close=!0,this.lastPathTime=0,this.destroyed=!1,this.unbreakable=!1,this.rotation=0,this.misplaced=!1,this.retina={maxDistance:{}},this.outType="normal",this.ignoresResizeRatio=!0;let a=n.retina.pixelRatio,l=n.actualOptions,c=ft(this._engine,n,l.particles),h=c.shape.type,{reduceDuplicates:f}=c;this.shape=$(h,this.id,f);let u=c.shape;if(i&&i.shape&&i.shape.type){let H=i.shape.type,li=$(H,this.id,f);li&&(this.shape=li,u.load(i.shape))}this.shapeData=this._loadShapeData(u,f),c.load(i);let p=this.shapeData;p&&c.load(p.particles);let x=new j(r,n);x.load(n.actualOptions.interactivity),x.load(c.interactivity),this.interactivity=x,this.fill=p?.fill??c.shape.fill,this.close=p?.close??c.shape.close,this.options=c;let g=this.options.move.path;this.pathDelay=Z(g.delay)*1e3,g.generator&&(this.pathGenerator=this._engine.plugins.getPathGenerator(g.generator),this.pathGenerator&&n.addPath(g.generator,this.pathGenerator)&&this.pathGenerator.init(n));let v=m(this.options.zIndex.value);n.retina.initParticle(this),this.size=ge(this.options.size,a),this.bubble={inRange:!1},this.slow={inRange:!1,factor:1},this.position=this._calcPosition(n,t,V(v,0,n.zLayers)),this.initialPosition=this.position.copy();let _=n.canvas.size,b={...this.options.move.center},S=b.mode==="percent";switch(this.moveCenter={x:b.x*(S?_.width/100:1),y:b.y*(S?_.height/100:1),radius:this.options.move.center.radius??0,mode:this.options.move.center.mode??"percent"},this.direction=xi(this.options.move.direction,this.position,this.moveCenter),this.options.move.direction){case"inside":this.outType="inside";break;case"outside":this.outType="outside";break}this.initialVelocity=this._calculateVelocity(),this.velocity=this.initialVelocity.copy(),this.moveDecay=1-m(this.options.move.decay),this.offset=C.origin;let I=n.particles;I.needsSort=I.needsSort||I.lastZIndex=-e&&i.y>=-e&&i.y<=t.height+e&&i.x<=t.width+e}isVisible(){return!this.destroyed&&!this.spawning&&this.isInsideCanvas()}reset(){for(let e of this.container.particles.updaters)e.reset&&e.reset(this)}};var mt=class{constructor(e,t){this.position=e,this.particle=t}};var te=class{constructor(e,t){this.position={x:e,y:t}}};var A=class extends te{constructor(e,t,i){super(e,t),this.radius=i}contains(e){return T(e,this.position)<=this.radius}intersects(e){let t=e,i=e,s=this.position,n=e.position,r={x:Math.abs(n.x-s.x),y:Math.abs(n.y-s.y)},a=this.radius;if(i.radius!==void 0){let l=a+i.radius,c=Math.sqrt(r.x**2+r.y**2);return l>c}else if(t.size!==void 0){let l=t.size.width,c=t.size.height;return Math.pow(r.x-l,2)+Math.pow(r.y-c,2)<=a**2||r.x<=a+l&&r.y<=a+c||r.x<=l||r.y<=c}return!1}};var W=class o extends te{constructor(e,t,i,s){super(e,t),this.size={height:s,width:i}}contains(e){let t=this.size.width,i=this.size.height,s=this.position;return e.x>=s.x&&e.x<=s.x+t&&e.y>=s.y&&e.y<=s.y+i}intersects(e){e instanceof A&&e.intersects(this);let t=this.size.width,i=this.size.height,s=this.position,n=e.position,r=e instanceof o?e.size:{width:0,height:0},a=r.width,l=r.height;return n.xs.x&&n.ys.y}};var le=class o{constructor(e,t){this.rectangle=e,this.capacity=t,this._subdivide=()=>{let{x:i,y:s}=this.rectangle.position,{width:n,height:r}=this.rectangle.size,{capacity:a}=this;for(let l=0;l<4;l++)this._subs.push(new o(new W(i+n/2*(l%2),s+r/2*(Math.round(l/2)-l%2),n/2,r/2),a));this._divided=!0},this._points=[],this._divided=!1,this._subs=[]}insert(e){return this.rectangle.contains(e.position)?this._points.lengtht.insert(e))):!1}query(e,t,i){let s=i||[];if(!e.intersects(this.rectangle))return[];for(let n of this._points)!e.contains(n.position)&&T(e.position,n.position)>n.particle.getRadius()&&(!t||t(n.particle))||s.push(n.particle);if(this._divided)for(let n of this._subs)n.query(e,t,s);return s}queryCircle(e,t,i){return this.query(new A(e.x,e.y,t),i)}queryRectangle(e,t,i){return this.query(new W(e.x,e.y,t.width,t.height),i)}};var Ai=4,Vi=o=>new W(-o.width/4,-o.height/4,o.width*3/2,o.height*3/2),gt=class{constructor(e,t){this._applyDensity=(s,n,r)=>{if(!s.number.density?.enable)return;let a=s.number,l=this._initDensityFactor(a.density),c=a.value,h=a.limit>0?a.limit:c,f=Math.min(c,h)*l+n,u=Math.min(this.count,this._array.filter(p=>p.group===r).length);this.limit=a.limit*l,uf&&this.removeQuantity(u-f,r)},this._initDensityFactor=s=>{let n=this._container;if(!n.canvas.element||!s.enable)return 1;let r=n.canvas.element,a=n.retina.pixelRatio;return r.width*r.height/(s.factor*a**2*s.area)},this._pushParticle=(s,n,r,a)=>{try{let l=this.pool.pop();l?l.init(this._nextId,s,n,r):l=new dt(this._engine,this._nextId,this._container,s,n,r);let c=!0;return a&&(c=a(l)),c?(this._array.push(l),this._zArray.push(l),this._nextId++,this._engine.dispatchEvent("particleAdded",{container:this._container,data:{particle:l}}),l):void 0}catch(l){console.warn(`${E} adding particle: ${l}`);return}},this._engine=e,this._container=t,this._nextId=0,this._array=[],this._zArray=[],this.pool=[],this.limit=0,this.needsSort=!1,this.lastZIndex=0,this._interactionManager=new pt(this._engine,this._container);let i=this._container.canvas.size;this.quadTree=new le(Vi(i),Ai),this.movers=this._engine.plugins.getMovers(this._container,!0),this.updaters=this._engine.plugins.getUpdaters(this._container,!0)}get count(){return this._array.length}addManualParticles(){let e=this._container,t=e.actualOptions;for(let i of t.manualParticles)this.addParticle(i.position?i.position.mode==="precise"?i.position:vi({size:e.canvas.size,position:i.position}):void 0,i.options)}addParticle(e,t,i,s){let n=this._container,r=n.actualOptions,a=r.particles.number.limit;if(a>0){let l=this.count+1-a;l>0&&this.removeQuantity(l)}return this._pushParticle(e,t,i,s)}clear(){this._array=[],this._zArray=[]}destroy(){this._array=[],this._zArray=[],this.movers=[],this.updaters=[]}async draw(e){let t=this._container,i=this._container.canvas.size;this.quadTree=new le(Vi(i),Ai),t.canvas.clear(),await this.update(e),this.needsSort&&(this._zArray.sort((s,n)=>n.position.z-s.position.z||s.id-n.id),this.lastZIndex=this._zArray[this._zArray.length-1].position.z,this.needsSort=!1);for(let[,s]of t.plugins)t.canvas.drawPlugin(s,e);for(let s of this._zArray)s.draw(e)}filter(e){return this._array.filter(e)}find(e){return this._array.find(e)}handleClickMode(e){this._interactionManager.handleClickMode(e)}init(){let e=this._container,t=e.actualOptions;this.lastZIndex=0,this.needsSort=!1;let i=!1;this.updaters=this._engine.plugins.getUpdaters(e,!0),this._interactionManager.init();for(let[,s]of e.plugins)if(s.particlesInitialization!==void 0&&(i=s.particlesInitialization()),i)break;this._interactionManager.init();for(let[,s]of e.pathGenerators)s.init(e);if(this.addManualParticles(),!i){for(let s in t.particles.groups){let n=t.particles.groups[s];for(let r=this.count,a=0;athis.count)return;let n=0;for(let r=e;n!i.has(s)),await this._interactionManager.externalInteract(e);for(let s of this._array){for(let n of this.updaters)n.update(s,e);!s.destroyed&&!s.spawning&&await this._interactionManager.particlesInteract(s,e)}delete t.canvas.resizeFactor}};var xt=class{constructor(e){this.container=e}init(){let e=this.container,t=e.actualOptions;this.pixelRatio=!t.detectRetina||U()?1:window.devicePixelRatio,this.reduceFactor=1;let i=this.pixelRatio;if(e.canvas.element){let n=e.canvas.element;e.canvas.size.width=n.offsetWidth*i,e.canvas.size.height=n.offsetHeight*i}let s=t.particles;this.attractDistance=m(s.move.attract.distance)*i,this.sizeAnimationSpeed=m(s.size.animation.speed)*i,this.maxSpeed=m(s.move.gravity.maxSpeed)*i}initParticle(e){let t=e.options,i=this.pixelRatio,s=t.move.distance,n=e.retina;n.attractDistance=m(t.move.attract.distance)*i,n.moveDrift=m(t.move.drift)*i,n.moveSpeed=m(t.move.speed)*i,n.sizeAnimationSpeed=m(t.size.animation.speed)*i;let r=n.maxDistance;r.horizontal=s.horizontal!==void 0?s.horizontal*i:void 0,r.vertical=s.vertical!==void 0?s.vertical*i:void 0,n.maxSpeed=m(t.move.gravity.maxSpeed)*i}};function k(o){return o&&!o.destroyed}function ie(o,e,...t){let i=new ut(o,e);return oi(i,...t),i}var _o="default",qi={generate:o=>o.velocity,init:()=>{},update:()=>{},reset:()=>{}},yt=class{constructor(e,t,i){this.id=t,this._intersectionManager=s=>{if(!(!k(this)||!this.actualOptions.pauseOnOutsideViewport))for(let n of s)n.target===this.interactivity.element&&(n.isIntersecting?this.play:this.pause)()},this._engine=e,this.fpsLimit=120,this.smooth=!1,this._delay=0,this._duration=0,this._lifeTime=0,this._firstStart=!0,this.started=!1,this.destroyed=!1,this._paused=!0,this.lastFrameTime=0,this.zLayers=100,this.pageHidden=!1,this._sourceOptions=i,this._initialSourceOptions=i,this.retina=new xt(this),this.canvas=new _e(this),this.particles=new gt(this._engine,this),this.frameManager=new ke(this),this.pathGenerators=new Map,this.interactivity={mouse:{clicking:!1,inside:!1}},this.plugins=new Map,this.drawers=new Map,this._options=ie(this._engine,this),this.actualOptions=ie(this._engine,this),this._eventListeners=new ze(this),typeof IntersectionObserver<"u"&&IntersectionObserver&&(this._intersectionObserver=new IntersectionObserver(s=>this._intersectionManager(s))),this._engine.dispatchEvent("containerBuilt",{container:this})}get options(){return this._options}get sourceOptions(){return this._sourceOptions}addClickHandler(e){if(!k(this))return;let t=this.interactivity.element;if(!t)return;let i=(f,u,p)=>{if(!k(this))return;let x=this.retina.pixelRatio,g={x:u.x*x,y:u.y*x},v=this.particles.quadTree.queryCircle(g,p*x);e(f,v)},s=f=>{if(!k(this))return;let u=f,p={x:u.offsetX||u.clientX,y:u.offsetY||u.clientY};i(f,p,1)},n=()=>{k(this)&&(c=!0,h=!1)},r=()=>{k(this)&&(h=!0)},a=f=>{if(k(this)){if(c&&!h){let u=f,p=u.touches[u.touches.length-1];if(!p&&(p=u.changedTouches[u.changedTouches.length-1],!p))return;let x=this.canvas.element,g=x?x.getBoundingClientRect():void 0,v={x:p.clientX-(g?g.left:0),y:p.clientY-(g?g.top:0)};i(f,v,Math.max(p.radiusX,p.radiusY))}c=!1,h=!1}},l=()=>{k(this)&&(c=!1,h=!1)},c=!1,h=!1;t.addEventListener("click",s),t.addEventListener("touchstart",n),t.addEventListener("touchmove",r),t.addEventListener("touchend",a),t.addEventListener("touchcancel",l)}addLifeTime(e){this._lifeTime+=e}addPath(e,t,i=!1){return!k(this)||!i&&this.pathGenerators.has(e)?!1:(this.pathGenerators.set(e,t??qi),!0)}alive(){return!this._duration||this._lifeTime<=this._duration}destroy(){if(!k(this))return;this.stop(),this.particles.destroy(),this.canvas.destroy();for(let[,i]of this.drawers)i.destroy&&i.destroy(this);for(let i of this.drawers.keys())this.drawers.delete(i);this._engine.plugins.destroy(this),this.destroyed=!0;let e=this._engine.dom(),t=e.findIndex(i=>i===this);t>=0&&e.splice(t,1),this._engine.dispatchEvent("containerDestroyed",{container:this})}draw(e){if(!k(this))return;let t=e;this._drawAnimationFrame=wi()(async i=>{t&&(this.lastFrameTime=void 0,t=!1),await this.frameManager.nextFrame(i)})}exportConfiguration(){return JSON.stringify(this.actualOptions,(e,t)=>{if(!e.startsWith("_"))return t},2)}exportImage(e,t,i){let s=this.canvas.element;s&&s.toBlob(e,t??"image/png",i)}exportImg(e){this.exportImage(e)}getAnimationStatus(){return!this._paused&&!this.pageHidden&&k(this)}handleClickMode(e){if(k(this)){this.particles.handleClickMode(e);for(let[,t]of this.plugins)t.handleClickMode&&t.handleClickMode(e)}}async init(){if(!k(this))return;let e=this._engine.plugins.getSupportedShapes();for(let i of e){let s=this._engine.plugins.getShapeDrawer(i);s&&this.drawers.set(i,s)}this._options=ie(this._engine,this,this._initialSourceOptions,this.sourceOptions),this.actualOptions=ie(this._engine,this,this._options);let t=this._engine.plugins.getAvailablePlugins(this);for(let[i,s]of t)this.plugins.set(i,s);this.retina.init(),await this.canvas.init(),this.updateActualOptions(),this.canvas.initBackground(),this.canvas.resize(),this.zLayers=this.actualOptions.zLayers,this._duration=m(this.actualOptions.duration)*1e3,this._delay=m(this.actualOptions.delay)*1e3,this._lifeTime=0,this.fpsLimit=this.actualOptions.fpsLimit>0?this.actualOptions.fpsLimit:120,this.smooth=this.actualOptions.smooth;for(let[,i]of this.drawers)i.init&&await i.init(this);for(let[,i]of this.plugins)i.init&&await i.init();this._engine.dispatchEvent("containerInit",{container:this}),this.particles.init(),this.particles.setDensity();for(let[,i]of this.plugins)i.particlesSetup&&i.particlesSetup();this._engine.dispatchEvent("particlesSetup",{container:this})}async loadTheme(e){k(this)&&(this._currentTheme=e,await this.refresh())}pause(){if(k(this)&&(this._drawAnimationFrame!==void 0&&(_i()(this._drawAnimationFrame),delete this._drawAnimationFrame),!this._paused)){for(let[,e]of this.plugins)e.pause&&e.pause();this.pageHidden||(this._paused=!0),this._engine.dispatchEvent("containerPaused",{container:this})}}play(e){if(!k(this))return;let t=this._paused||e;if(this._firstStart&&!this.actualOptions.autoPlay){this._firstStart=!1;return}if(this._paused&&(this._paused=!1),t)for(let[,i]of this.plugins)i.play&&i.play();this._engine.dispatchEvent("containerPlay",{container:this}),this.draw(t||!1)}async refresh(){if(k(this))return this.stop(),this.start()}async reset(){if(k(this))return this._initialSourceOptions=void 0,this._options=ie(this._engine,this),this.actualOptions=ie(this._engine,this,this._options),this.refresh()}setNoise(e,t,i){k(this)&&this.setPath(e,t,i)}setPath(e,t,i){if(!e||!k(this))return;let s={...qi};if(typeof e=="function")s.generate=e,t&&(s.init=t),i&&(s.update=i);else{let n=s;s.generate=e.generate||n.generate,s.init=e.init||n.init,s.update=e.update||n.update}this.addPath(_o,s,!0)}async start(){!k(this)||this.started||(await this.init(),this.started=!0,await new Promise(e=>{this._delayTimeout=setTimeout(async()=>{this._eventListeners.addListeners(),this.interactivity.element instanceof HTMLElement&&this._intersectionObserver&&this._intersectionObserver.observe(this.interactivity.element);for(let[,t]of this.plugins)t.start&&await t.start();this._engine.dispatchEvent("containerStarted",{container:this}),this.play(),e()},this._delay)}))}stop(){if(!(!k(this)||!this.started)){this._delayTimeout&&(clearTimeout(this._delayTimeout),delete this._delayTimeout),this._firstStart=!0,this.started=!1,this._eventListeners.removeListeners(),this.pause(),this.particles.clear(),this.canvas.stop(),this.interactivity.element instanceof HTMLElement&&this._intersectionObserver&&this._intersectionObserver.unobserve(this.interactivity.element);for(let[,e]of this.plugins)e.stop&&e.stop();for(let e of this.plugins.keys())this.plugins.delete(e);this._sourceOptions=this._options,this._engine.dispatchEvent("containerStopped",{container:this})}}updateActualOptions(){this.actualOptions.responsive=[];let e=this.actualOptions.setResponsive(this.canvas.size.width,this.retina.pixelRatio,this._options);return this.actualOptions.setTheme(this._currentTheme),this.responsiveMaxWidth===e?!1:(this.responsiveMaxWidth=e,!0)}};async function zo(o,e){let t=$(o,e);if(!t)return;let i=await fetch(t);if(i.ok)return i.json();console.error(`${E} ${i.status} while retrieving config file`)}var vt=class{constructor(e){this._engine=e}load(e,t,i){let s={index:i,remote:!1};return typeof e=="string"?s.tagId=e:s.options=e,typeof t=="number"?s.index=t:s.options=t??s.options,this.loadOptions(s)}async loadJSON(e,t,i){let s,n;return typeof t=="number"||t===void 0?s=e:(n=e,s=t),this.loadRemoteOptions({tagId:n,url:s,index:i,remote:!0})}async loadOptions(e){let t=e.tagId??`tsparticles${Math.floor(y()*1e4)}`,{index:i,url:s,remote:n}=e,r=n?await zo(s,i):e.options,a=e.element??document.getElementById(t);a||(a=document.createElement("div"),a.id=t,document.body.append(a));let l=$(r,i),c=this._engine.dom(),h=c.findIndex(p=>p.id===t);if(h>=0){let p=this._engine.domItem(h);p&&!p.destroyed&&(p.destroy(),c.splice(h,1))}let f;if(a.tagName.toLowerCase()==="canvas")f=a,f.dataset[B]="false";else{let p=a.getElementsByTagName("canvas");p.length?(f=p[0],f.dataset[B]="false"):(f=document.createElement("canvas"),f.dataset[B]="true",a.appendChild(f))}f.style.width||(f.style.width="100%"),f.style.height||(f.style.height="100%");let u=new yt(this._engine,t,l);return h>=0?c.splice(h,0,u):c.push(u),u.canvas.loadCanvas(f),await u.start(),u}async loadRemoteOptions(e){return this.loadOptions(e)}async set(e,t,i,s){let n={index:s,remote:!1};return typeof e=="string"?n.tagId=e:n.element=e,t instanceof HTMLElement?n.element=t:n.options=t,typeof i=="number"?n.index=i:n.options=i??n.options,this.loadOptions(n)}async setJSON(e,t,i,s){let n,r,a,l;return e instanceof HTMLElement?(l=e,n=t,a=i):(r=e,l=t,n=i,a=s),this.loadRemoteOptions({tagId:r,url:n,index:a,element:l,remote:!0})}};function si(o,e,t,i=!1){let s=e.get(o);return(!s||i)&&(s=[...t.values()].map(n=>n(o)),e.set(o,s)),s}var bt=class{constructor(e){this._engine=e,this.plugins=[],this._initializers={interactors:new Map,movers:new Map,updaters:new Map},this.interactors=new Map,this.movers=new Map,this.updaters=new Map,this.presets=new Map,this.drawers=new Map,this.pathGenerators=new Map}addInteractor(e,t){this._initializers.interactors.set(e,t)}addParticleMover(e,t){this._initializers.movers.set(e,t)}addParticleUpdater(e,t){this._initializers.updaters.set(e,t)}addPathGenerator(e,t){this.getPathGenerator(e)||this.pathGenerators.set(e,t)}addPlugin(e){this.getPlugin(e.id)||this.plugins.push(e)}addPreset(e,t,i=!1){(i||!this.getPreset(e))&&this.presets.set(e,t)}addShapeDrawer(e,t){D(e,i=>{this.getShapeDrawer(i)||this.drawers.set(i,t)})}destroy(e){this.updaters.delete(e),this.movers.delete(e),this.interactors.delete(e)}getAvailablePlugins(e){let t=new Map;for(let i of this.plugins)i.needsPlugin(e.actualOptions)&&t.set(i.id,i.getPlugin(e));return t}getInteractors(e,t=!1){return si(e,this.interactors,this._initializers.interactors,t)}getMovers(e,t=!1){return si(e,this.movers,this._initializers.movers,t)}getPathGenerator(e){return this.pathGenerators.get(e)}getPlugin(e){return this.plugins.find(t=>t.id===e)}getPreset(e){return this.presets.get(e)}getShapeDrawer(e){return this.drawers.get(e)}getSupportedShapes(){return this.drawers.keys()}getUpdaters(e,t=!1){return si(e,this.updaters,this._initializers.updaters,t)}loadOptions(e,t){for(let i of this.plugins)i.loadOptions(e,t)}loadParticlesOptions(e,t,...i){let s=this.updaters.get(e);if(s)for(let n of s)n.loadOptions&&n.loadOptions(t,...i)}};var wt=class{constructor(){this._configs=new Map,this._domArray=[],this._eventDispatcher=new he,this._initialized=!1,this._loader=new vt(this),this.plugins=new bt(this)}get configs(){let e={};for(let[t,i]of this._configs)e[t]=i;return e}get version(){return"2.10.1"}addConfig(e,t){typeof e=="string"?t&&(t.name=e,this._configs.set(e,t)):this._configs.set(e.name??"default",e)}addEventListener(e,t){this._eventDispatcher.addEventListener(e,t)}async addInteractor(e,t){this.plugins.addInteractor(e,t),await this.refresh()}async addMover(e,t){this.plugins.addParticleMover(e,t),await this.refresh()}async addParticleUpdater(e,t){this.plugins.addParticleUpdater(e,t),await this.refresh()}async addPathGenerator(e,t){this.plugins.addPathGenerator(e,t),await this.refresh()}async addPlugin(e){this.plugins.addPlugin(e),await this.refresh()}async addPreset(e,t,i=!1){this.plugins.addPreset(e,t,i),await this.refresh()}async addShape(e,t,i,s,n){let r;typeof t=="function"?r={afterEffect:s,destroy:n,draw:t,init:i}:r=t,this.plugins.addShapeDrawer(e,r),await this.refresh()}dispatchEvent(e,t){this._eventDispatcher.dispatchEvent(e,t)}dom(){return this._domArray}domItem(e){let t=this.dom(),i=t[e];if(!i||i.destroyed){t.splice(e,1);return}return i}init(){this._initialized||(this._initialized=!0)}async load(e,t){return this._loader.load(e,t)}async loadFromArray(e,t,i){return this._loader.load(e,t,i)}async loadJSON(e,t,i){return this._loader.loadJSON(e,t,i)}async refresh(){this.dom().forEach(e=>e.refresh())}removeEventListener(e,t){this._eventDispatcher.removeEventListener(e,t)}async set(e,t,i){return this._loader.set(e,t,i)}async setJSON(e,t,i,s){return this._loader.setJSON(e,t,i,s)}setOnClickHandler(e){let t=this.dom();if(!t.length)throw new Error(`${E} can only set click handlers after calling tsParticles.load() or tsParticles.loadJSON()`);for(let i of t)i.addClickHandler(e)}};var _t=class{constructor(){this.key="hsl",this.stringPrefix="hsl"}handleColor(e){let t=e.value,i=t.hsl??e.value;if(i.h!==void 0&&i.s!==void 0&&i.l!==void 0)return N(i)}handleRangeColor(e){let t=e.value,i=t.hsl??e.value;if(i.h!==void 0&&i.l!==void 0)return N({h:m(i.h),l:m(i.l),s:m(i.s)})}parseString(e){if(!e.startsWith("hsl"))return;let t=/hsla?\(\s*(\d+)\s*,\s*(\d+)%\s*,\s*(\d+)%\s*(,\s*([\d.%]+)\s*)?\)/i,i=t.exec(e);return i?Mi({a:i.length>4?pe(i[5]):1,h:parseInt(i[1],10),l:parseInt(i[3],10),s:parseInt(i[2],10)}):void 0}};var zt=class{constructor(){this.key="rgb",this.stringPrefix="rgb"}handleColor(e){let t=e.value,i=t.rgb??e.value;if(i.r!==void 0)return i}handleRangeColor(e){let t=e.value,i=t.rgb??e.value;if(i.r!==void 0)return{r:m(i.r),g:m(i.g),b:m(i.b)}}parseString(e){if(!e.startsWith(this.stringPrefix))return;let t=/rgba?\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(,\s*([\d.%]+)\s*)?\)/i,i=t.exec(e);return i?{a:i.length>4?pe(i[5]):1,b:parseInt(i[3],10),g:parseInt(i[2],10),r:parseInt(i[1],10)}:void 0}};var kt=class{constructor(e){this.container=e,this.type="particles"}};var ko=new zt,Mo=new _t;Xt(ko);Xt(Mo);var ce=new wt;ce.init();U()||(window.tsParticles=ce);function Hi(o){let e=o.initialPosition,{dx:t,dy:i}=P(e,o.position),s=Math.abs(t),n=Math.abs(i),{maxDistance:r}=o.retina,a=r.horizontal,l=r.vertical;if(!(!a&&!l)){if((a&&s>=a||l&&n>=l)&&!o.misplaced)o.misplaced=!!a&&s>a||!!l&&n>l,a&&(o.velocity.x=o.velocity.y/2-o.velocity.x),l&&(o.velocity.y=o.velocity.x/2-o.velocity.y);else if((!a||se.x&&h.x>0)&&(h.x*=-y()),l&&(c.ye.y&&h.y>0)&&(h.y*=-y())}}}function Ui(o,e,t,i,s,n){Po(o,n);let r=o.gravity,a=r?.enable&&r.inverse?-1:1;s&&t&&(o.velocity.x+=s*n.factor/(60*t)),r?.enable&&t&&(o.velocity.y+=a*(r.acceleration*n.factor)/(60*t));let l=o.moveDecay;o.velocity.multTo(l);let c=o.velocity.mult(t);r?.enable&&i>0&&(!r.inverse&&c.y>=0&&c.y>=i||r.inverse&&c.y<=0&&c.y<=-i)&&(c.y=a*i,t&&(o.velocity.y=c.y/t));let h=o.options.zIndex,f=(1-o.zIndexFactor)**h.velocityRate;c.multTo(f);let{position:u}=o;u.addTo(c),e.vibrate&&(u.x+=Math.sin(u.x*Math.cos(u.y)),u.y+=Math.cos(u.y*Math.sin(u.x)))}function Wi(o,e){let t=o.container;if(!o.spin)return;let i={x:o.spin.direction==="clockwise"?Math.cos:Math.sin,y:o.spin.direction==="clockwise"?Math.sin:Math.cos};o.position.x=o.spin.center.x+o.spin.radius*i.x(o.spin.angle),o.position.y=o.spin.center.y+o.spin.radius*i.y(o.spin.angle),o.spin.radius+=o.spin.acceleration;let s=Math.max(t.canvas.size.width,t.canvas.size.height);o.spin.radius>s/2?(o.spin.radius=s/2,o.spin.acceleration*=-1):o.spin.radius<0&&(o.spin.radius=0,o.spin.acceleration*=-1),o.spin.angle+=e/100*(1-o.spin.radius/s)}function Po(o,e){let t=o.options,i=t.move.path;if(!i.enable)return;if(o.lastPathTime<=o.pathDelay){o.lastPathTime+=e.value;return}let n=o.pathGenerator?.generate(o,e);n&&o.velocity.addTo(n),i.clamp&&(o.velocity.x=V(o.velocity.x,-1,1),o.velocity.y=V(o.velocity.y,-1,1)),o.lastPathTime-=o.pathDelay}function Bi(o){return o.slow.inRange?o.slow.factor:1}var Co=2,Mt=class{constructor(){this._initSpin=e=>{let t=e.container,i=e.options,s=i.move.spin;if(!s.enable)return;let n=s.position??{x:50,y:50},r={x:n.x/100*t.canvas.size.width,y:n.y/100*t.canvas.size.height},a=e.getPosition(),l=T(a,r),c=m(s.acceleration);e.retina.spinAcceleration=c*t.retina.pixelRatio,e.spin={center:r,direction:e.velocity.x>=0?"clockwise":"counter-clockwise",angle:e.velocity.angle,radius:l,acceleration:e.retina.spinAcceleration}}}init(e){let t=e.options,i=t.move.gravity;e.gravity={enable:i.enable,acceleration:m(i.acceleration),inverse:i.inverse},this._initSpin(e)}isEnabled(e){return!e.destroyed&&e.options.move.enable}move(e,t){let i=e.options,s=i.move;if(!s.enable)return;let n=e.container,r=n.retina.pixelRatio,a=Bi(e),l=(e.retina.moveSpeed??=m(s.speed)*r)*n.retina.reduceFactor,c=e.retina.moveDrift??=m(e.options.move.drift)*r,h=J(i.size.value)*r,f=s.size?e.getRadius()/h:1,u=l*f*a*(t.factor||1)/Co,p=e.retina.maxSpeed??n.retina.maxSpeed;s.spin.enable?Wi(e,u):Ui(e,s,u,p,c,t),Hi(e)}};async function Gi(o){o.addMover("base",()=>new Mt)}var Pt=class{draw(e,t,i){t.circleRange||(t.circleRange={min:0,max:Math.PI*2});let s=t.circleRange;e.arc(0,0,i,s.min,s.max,!1)}getSidesCount(){return 12}particleInit(e,t){let i=t.shapeData,s=i?.angle??{max:360,min:0};t.circleRange=typeof s!="object"?{min:0,max:s*Math.PI/180}:{min:s.min*Math.PI/180,max:s.max*Math.PI/180}}};async function $i(o){await o.addShape("circle",new Pt)}function ni(o,e,t,i,s){if(!e||!t.enable||(e.maxLoops??0)>0&&(e.loops??0)>(e.maxLoops??0)||(e.time||(e.time=0),(e.delayTime??0)>0&&e.time<(e.delayTime??0)&&(e.time+=o.value),(e.delayTime??0)>0&&e.time<(e.delayTime??0)))return;let n=M(t.offset),r=(e.velocity??0)*o.factor+n*3.6,a=e.decay??1;!s||e.status==="increasing"?(e.value+=r,e.value>i&&(e.loops||(e.loops=0),e.loops++,s&&(e.status="decreasing",e.value-=e.value%i))):(e.value-=r,e.value<0&&(e.loops||(e.loops=0),e.loops++,e.status="increasing",e.value+=e.value)),e.velocity&&a!==1&&(e.velocity*=a),e.value>i&&(e.value%=i)}function Ni(o,e){let{h:t,s:i,l:s}=o.options.color.animation,{color:n}=o;if(!n)return;let{h:r,s:a,l}=n;r&&ni(e,r,t,360,!1),a&&ni(e,a,i,100,!0),l&&ni(e,l,s,100,!0)}var Ct=class{constructor(e){this.container=e}init(e){let t=se(e.options.color,e.id,e.options.reduceDuplicates);t&&(e.color=Oi(t,e.options.color.animation,this.container.retina.reduceFactor))}isEnabled(e){let{h:t,s:i,l:s}=e.options.color.animation,{color:n}=e;return!e.destroyed&&!e.spawning&&(n?.h.value!==void 0&&t.enable||n?.s.value!==void 0&&i.enable||n?.l.value!==void 0&&s.enable)}update(e,t){Ni(e,t)}};async function Xi(o){await o.addParticleUpdater("color",e=>new Ct(e))}function Oo(o,e,t,i){switch(o.options.opacity.animation.destroy){case"max":e>=i&&o.destroy();break;case"min":e<=t&&o.destroy();break}}function Yi(o,e){let t=o.opacity;if(o.destroyed||!t?.enable||(t.maxLoops??0)>0&&(t.loops??0)>(t.maxLoops??0))return;let i=t.min,s=t.max,n=t.decay??1;if(t.time||(t.time=0),(t.delayTime??0)>0&&t.time<(t.delayTime??0)&&(t.time+=e.value),!((t.delayTime??0)>0&&t.time<(t.delayTime??0))){switch(t.status){case"increasing":t.value>=s?(t.status="decreasing",t.loops||(t.loops=0),t.loops++):t.value+=(t.velocity??0)*e.factor;break;case"decreasing":t.value<=i?(t.status="increasing",t.loops||(t.loops=0),t.loops++):t.value-=(t.velocity??0)*e.factor;break}t.velocity&&t.decay!==1&&(t.velocity*=n),Oo(o,t.value,i,s),o.destroyed||(t.value=V(t.value,i,s))}}var Ot=class{constructor(e){this.container=e}init(e){let t=e.options.opacity;e.opacity=ge(t,1);let i=t.animation;i.enable&&(e.opacity.velocity=m(i.speed)/100*this.container.retina.reduceFactor,i.sync||(e.opacity.velocity*=y()))}isEnabled(e){return!e.destroyed&&!e.spawning&&!!e.opacity&&e.opacity.enable&&((e.opacity.maxLoops??0)<=0||(e.opacity.maxLoops??0)>0&&(e.opacity.loops??0)<(e.opacity.maxLoops??0))}reset(e){e.opacity&&(e.opacity.time=0,e.opacity.loops=0)}update(e,t){this.isEnabled(e)&&Yi(e,t)}};async function Ji(o){await o.addParticleUpdater("opacity",e=>new Ot(e))}function Zi(o){if(o.outMode!=="bounce"&&o.outMode!=="bounce-horizontal"&&o.outMode!=="bounceHorizontal"&&o.outMode!=="split")return;o.bounds.right<0?o.particle.position.x=o.size+o.offset.x:o.bounds.left>o.canvasSize.width&&(o.particle.position.x=o.canvasSize.width-o.size-o.offset.x);let e=o.particle.velocity.x,t=!1;if(o.direction==="right"&&o.bounds.right>=o.canvasSize.width&&e>0||o.direction==="left"&&o.bounds.left<=0&&e<0){let s=Z(o.particle.options.bounce.horizontal);o.particle.velocity.x*=-s,t=!0}if(!t)return;let i=o.offset.x+o.size;o.bounds.right>=o.canvasSize.width?o.particle.position.x=o.canvasSize.width-i:o.bounds.left<=0&&(o.particle.position.x=i),o.outMode==="split"&&o.particle.destroy()}function Qi(o){if(o.outMode!=="bounce"&&o.outMode!=="bounce-vertical"&&o.outMode!=="bounceVertical"&&o.outMode!=="split")return;o.bounds.bottom<0?o.particle.position.y=o.size+o.offset.y:o.bounds.top>o.canvasSize.height&&(o.particle.position.y=o.canvasSize.height-o.size-o.offset.y);let e=o.particle.velocity.y,t=!1;if(o.direction==="bottom"&&o.bounds.bottom>=o.canvasSize.height&&e>0||o.direction==="top"&&o.bounds.top<=0&&e<0){let s=Z(o.particle.options.bounce.vertical);o.particle.velocity.y*=-s,t=!0}if(!t)return;let i=o.offset.y+o.size;o.bounds.bottom>=o.canvasSize.height?o.particle.position.y=o.canvasSize.height-i:o.bounds.top<=0&&(o.particle.position.y=i),o.outMode==="split"&&o.particle.destroy()}var St=class{constructor(e){this.container=e,this.modes=["bounce","bounce-vertical","bounce-horizontal","bounceVertical","bounceHorizontal","split"]}update(e,t,i,s){if(!this.modes.includes(s))return;let n=this.container,r=!1;for(let[,u]of n.plugins)if(u.particleBounce!==void 0&&(r=u.particleBounce(e,i,t)),r)break;if(r)return;let a=e.getPosition(),l=e.offset,c=e.getRadius(),h=oe(a,c),f=n.canvas.size;Zi({particle:e,outMode:s,direction:t,bounds:h,canvasSize:f,offset:l,size:c}),Qi({particle:e,outMode:s,direction:t,bounds:h,canvasSize:f,offset:l,size:c})}};var Rt=class{constructor(e){this.container=e,this.modes=["destroy"]}update(e,t,i,s){if(!this.modes.includes(s))return;let n=this.container;switch(e.outType){case"normal":case"outside":if(Q(e.position,n.canvas.size,C.origin,e.getRadius(),t))return;break;case"inside":{let{dx:r,dy:a}=P(e.position,e.moveCenter),{x:l,y:c}=e.velocity;if(l<0&&r>e.moveCenter.radius||c<0&&a>e.moveCenter.radius||l>=0&&r<-e.moveCenter.radius||c>=0&&a<-e.moveCenter.radius)return;break}}n.particles.remove(e,void 0,!0)}};var Tt=class{constructor(e){this.container=e,this.modes=["none"]}update(e,t,i,s){if(!this.modes.includes(s)||e.options.move.distance.horizontal&&(t==="left"||t==="right")||e.options.move.distance.vertical&&(t==="top"||t==="bottom"))return;let n=e.options.move.gravity,r=this.container,a=r.canvas.size,l=e.getRadius();if(n.enable){let c=e.position;(!n.inverse&&c.y>a.height+l&&t==="bottom"||n.inverse&&c.y<-l&&t==="top")&&r.particles.remove(e)}else{if(e.velocity.y>0&&e.position.y<=a.height+l||e.velocity.y<0&&e.position.y>=-l||e.velocity.x>0&&e.position.x<=a.width+l||e.velocity.x<0&&e.position.x>=-l)return;Q(e.position,r.canvas.size,C.origin,l,t)||r.particles.remove(e)}}};var It=class{constructor(e){this.container=e,this.modes=["out"]}update(e,t,i,s){if(!this.modes.includes(s))return;let n=this.container;switch(e.outType){case"inside":{let{x:r,y:a}=e.velocity,l=C.origin;l.length=e.moveCenter.radius,l.angle=e.velocity.angle+Math.PI,l.addTo(C.create(e.moveCenter));let{dx:c,dy:h}=P(e.position,l);if(r<=0&&c>=0||a<=0&&h>=0||r>=0&&c<=0||a>=0&&h<=0)return;e.position.x=Math.floor(M({min:0,max:n.canvas.size.width})),e.position.y=Math.floor(M({min:0,max:n.canvas.size.height}));let{dx:f,dy:u}=P(e.position,e.moveCenter);e.direction=Math.atan2(-u,-f),e.velocity.angle=e.direction;break}default:{if(Q(e.position,n.canvas.size,C.origin,e.getRadius(),t))return;switch(e.outType){case"outside":{e.position.x=Math.floor(M({min:-e.moveCenter.radius,max:e.moveCenter.radius}))+e.moveCenter.x,e.position.y=Math.floor(M({min:-e.moveCenter.radius,max:e.moveCenter.radius}))+e.moveCenter.y;let{dx:r,dy:a}=P(e.position,e.moveCenter);e.moveCenter.radius&&(e.direction=Math.atan2(a,r),e.velocity.angle=e.direction);break}case"normal":{let r=e.options.move.warp,a=n.canvas.size,l={bottom:a.height+e.getRadius()+e.offset.y,left:-e.getRadius()-e.offset.x,right:a.width+e.getRadius()+e.offset.x,top:-e.getRadius()-e.offset.y},c=e.getRadius(),h=oe(e.position,c);t==="right"&&h.left>a.width+e.offset.x?(e.position.x=l.left,e.initialPosition.x=e.position.x,r||(e.position.y=y()*a.height,e.initialPosition.y=e.position.y)):t==="left"&&h.right<-e.offset.x&&(e.position.x=l.right,e.initialPosition.x=e.position.x,r||(e.position.y=y()*a.height,e.initialPosition.y=e.position.y)),t==="bottom"&&h.top>a.height+e.offset.y?(r||(e.position.x=y()*a.width,e.initialPosition.x=e.position.x),e.position.y=l.top,e.initialPosition.y=e.position.y):t==="top"&&h.bottom<-e.offset.y&&(r||(e.position.x=y()*a.width,e.initialPosition.x=e.position.x),e.position.y=l.bottom,e.initialPosition.y=e.position.y);break}}break}}}};var Dt=class{constructor(e){this.container=e,this._updateOutMode=(t,i,s,n)=>{for(let r of this.updaters)r.update(t,n,i,s)},this.updaters=[new St(e),new Rt(e),new It(e),new Tt(e)]}init(){}isEnabled(e){return!e.destroyed&&!e.spawning}update(e,t){let i=e.options.move.outModes;this._updateOutMode(e,t,i.bottom??i.default,"bottom"),this._updateOutMode(e,t,i.left??i.default,"left"),this._updateOutMode(e,t,i.right??i.default,"right"),this._updateOutMode(e,t,i.top??i.default,"top")}};async function ji(o){await o.addParticleUpdater("outModes",e=>new Dt(e))}var Et=class extends A{constructor(e,t,i,s){super(e,t,i),this.canvasSize=s,this.canvasSize={...s}}contains(e){let{width:t,height:i}=this.canvasSize,{x:s,y:n}=e;return super.contains(e)||super.contains({x:s-t,y:n})||super.contains({x:s-t,y:n-i})||super.contains({x:s,y:n-i})}intersects(e){if(super.intersects(e))return!0;let t=e,i=e,s={x:e.position.x-this.canvasSize.width,y:e.position.y-this.canvasSize.height};if(i.radius!==void 0){let n=new A(s.x,s.y,i.radius*2);return super.intersects(n)}else if(t.size!==void 0){let n=new W(s.x,s.y,t.size.width*2,t.size.height*2);return super.intersects(n)}return!1}};var Lt=class{constructor(){this.blur=5,this.color=new z,this.color.value="#000",this.enable=!1}load(e){e&&(e.blur!==void 0&&(this.blur=e.blur),this.color=z.create(this.color,e.color),e.enable!==void 0&&(this.enable=e.enable))}};var Ft=class{constructor(){this.enable=!1,this.frequency=1}load(e){e&&(e.color!==void 0&&(this.color=z.create(this.color,e.color)),e.enable!==void 0&&(this.enable=e.enable),e.frequency!==void 0&&(this.frequency=e.frequency),e.opacity!==void 0&&(this.opacity=e.opacity))}};var At=class{constructor(){this.blink=!1,this.color=new z,this.color.value="#fff",this.consent=!1,this.distance=100,this.enable=!1,this.frequency=1,this.opacity=1,this.shadow=new Lt,this.triangles=new Ft,this.width=1,this.warp=!1}load(e){e&&(e.id!==void 0&&(this.id=e.id),e.blink!==void 0&&(this.blink=e.blink),this.color=z.create(this.color,e.color),e.consent!==void 0&&(this.consent=e.consent),e.distance!==void 0&&(this.distance=e.distance),e.enable!==void 0&&(this.enable=e.enable),e.frequency!==void 0&&(this.frequency=e.frequency),e.opacity!==void 0&&(this.opacity=e.opacity),this.shadow.load(e.shadow),this.triangles.load(e.triangles),e.width!==void 0&&(this.width=e.width),e.warp!==void 0&&(this.warp=e.warp))}};function So(o,e,t,i,s){let{dx:n,dy:r,distance:a}=P(o,e);if(!s||a<=t)return a;let l={x:Math.abs(n),y:Math.abs(r)},c={x:Math.min(l.x,i.width-l.x),y:Math.min(l.y,i.height-l.y)};return Math.sqrt(c.x**2+c.y**2)}var Vt=class extends kt{constructor(e){super(e),this._setColor=t=>{if(!t.options.links)return;let i=this.linkContainer,s=t.options.links,n=s.id===void 0?i.particles.linksColor:i.particles.linksColors.get(s.id);if(n)return;let r=s.color;n=Ci(r,s.blink,s.consent),s.id===void 0?i.particles.linksColor=n:i.particles.linksColors.set(s.id,n)},this.linkContainer=e}clear(){}init(){this.linkContainer.particles.linksColor=void 0,this.linkContainer.particles.linksColors=new Map}async interact(e){if(!e.options.links)return;e.links=[];let t=e.getPosition(),i=this.container,s=i.canvas.size;if(t.x<0||t.y<0||t.x>s.width||t.y>s.height)return;let n=e.options.links,r=n.opacity,a=e.retina.linksDistance??0,l=n.warp,c=l?new Et(t.x,t.y,a,s):new A(t.x,t.y,a),h=i.particles.quadTree.query(c);for(let f of h){let u=f.options.links;if(e===f||!u?.enable||n.id!==u.id||f.spawning||f.destroyed||!f.links||e.links.some(v=>v.destination===f)||f.links.some(v=>v.destination===e))continue;let p=f.getPosition();if(p.x<0||p.y<0||p.x>s.width||p.y>s.height)continue;let x=So(t,p,a,s,l&&u.warp);if(x>a)continue;let g=(1-x/a)*r;this._setColor(e),e.links.push({destination:f,opacity:g})}}isEnabled(e){return!!e.options.links?.enable}loadParticlesOptions(e,...t){e.links||(e.links=new At);for(let i of t)e.links.load(i?.links??i?.lineLinked??i?.line_linked)}reset(){}};async function Ki(o){await o.addInteractor("particlesLinks",e=>new Vt(e))}function eo(o){let e=!1,{begin:t,end:i,maxDistance:s,context:n,canvasSize:r,width:a,backgroundMask:l,colorLine:c,opacity:h,links:f}=o;if(T(t,i)<=s)be(n,t,i),e=!0;else if(f.warp){let p,x,g={x:i.x-r.width,y:i.y},v=P(t,g);if(v.distance<=s){let _=t.y-v.dy/v.dx*t.x;p={x:0,y:_},x={x:r.width,y:_}}else{let _={x:i.x,y:i.y-r.height},b=P(t,_);if(b.distance<=s){let I=-(t.y-b.dy/b.dx*t.x)/(b.dy/b.dx);p={x:I,y:0},x={x:I,y:r.height}}else{let S={x:i.x-r.width,y:i.y-r.height},I=P(t,S);if(I.distance<=s){let R=t.y-I.dy/I.dx*t.x;p={x:-R/(I.dy/I.dx),y:R},x={x:p.x+r.width,y:p.y+r.height}}}}p&&x&&(be(n,t,p),be(n,i,x),e=!0)}if(!e)return;n.lineWidth=a,l.enable&&(n.globalCompositeOperation=l.composite),n.strokeStyle=q(c,h);let{shadow:u}=f;if(u.enable){let p=O(u.color);p&&(n.shadowBlur=u.blur,n.shadowColor=q(p))}n.stroke()}function to(o){let{context:e,pos1:t,pos2:i,pos3:s,backgroundMask:n,colorTriangle:r,opacityTriangle:a}=o;Si(e,t,i,s),n.enable&&(e.globalCompositeOperation=n.composite),e.fillStyle=q(r,a),e.fill()}function Ro(o){return o.sort((e,t)=>e-t),o.join("_")}function ri(o,e){let t=Ro(o.map(s=>s.id)),i=e.get(t);return i===void 0&&(i=y(),e.set(t,i)),i}var qt=class{constructor(e){this.container=e,this._drawLinkLine=(t,i)=>{let s=this.container,n=s.actualOptions,r=i.destination,a=t.getPosition(),l=r.getPosition(),c=i.opacity;s.canvas.draw(h=>{if(!t.options.links)return;let f,u=t.options.twinkle?.lines;if(u?.enable){let _=u.frequency,b=O(u.color);y()<_&&b&&(f=b,c=m(u.opacity))}let p=t.options.links;if(!f){let _=p?.id!==void 0?s.particles.linksColors.get(p.id):s.particles.linksColor;f=Jt(t,r,_)}if(!f)return;let x=t.retina.linksWidth??0,g=t.retina.linksDistance??0,{backgroundMask:v}=n;eo({context:h,width:x,begin:a,end:l,maxDistance:g,canvasSize:s.canvas.size,links:p,backgroundMask:v,colorLine:f,opacity:c})})},this._drawLinkTriangle=(t,i,s)=>{if(!t.options.links)return;let n=this.container,r=n.actualOptions,a=i.destination,l=s.destination,c=t.options.links.triangles,h=c.opacity??(i.opacity+s.opacity)/2;h<=0||n.canvas.draw(f=>{let u=t.getPosition(),p=a.getPosition(),x=l.getPosition(),g=t.retina.linksDistance??0;if(T(u,p)>g||T(x,p)>g||T(x,u)>g)return;let v=O(c.color);if(!v){let _=t.options.links,b=_?.id!==void 0?n.particles.linksColors.get(_.id):n.particles.linksColor;v=Jt(t,a,b)}v&&to({context:f,pos1:u,pos2:p,pos3:x,backgroundMask:r.backgroundMask,colorTriangle:v,opacityTriangle:h})})},this._drawTriangles=(t,i,s,n)=>{let r=s.destination;if(!(t.links?.triangles.enable&&r.options.links?.triangles.enable))return;let a=r.links?.filter(l=>{let c=this._getLinkFrequency(r,l.destination);return r.options.links&&c<=r.options.links.frequency&&n.findIndex(h=>h.destination===l.destination)>=0});if(a?.length)for(let l of a){let c=l.destination;this._getTriangleFrequency(i,r,c)>t.links.triangles.frequency||this._drawLinkTriangle(i,s,l)}},this._getLinkFrequency=(t,i)=>ri([t,i],this._freqs.links),this._getTriangleFrequency=(t,i,s)=>ri([t,i,s],this._freqs.triangles),this._freqs={links:new Map,triangles:new Map}}drawParticle(e,t){let{links:i,options:s}=t;if(!i||i.length<=0)return;let n=i.filter(r=>s.links&&this._getLinkFrequency(t,r.destination)<=s.links.frequency);for(let r of n)this._drawTriangles(s,t,r,n),r.opacity>0&&(t.retina.linksWidth??0)>0&&this._drawLinkLine(t,r)}async init(){this._freqs.links=new Map,this._freqs.triangles=new Map}particleCreated(e){if(e.links=[],!e.options.links)return;let t=this.container.retina.pixelRatio,{retina:i}=e,{distance:s,width:n}=e.options.links;i.linksDistance=s*t,i.linksWidth=n*t}particleDestroyed(e){e.links=[]}};var ai=class{constructor(){this.id="links"}getPlugin(e){return new qt(e)}loadOptions(){}needsPlugin(){return!0}};async function io(o){let e=new ai;await o.addPlugin(e)}async function oo(o){await Ki(o),await io(o)}function To(o,e,t,i){switch(o.options.size.animation.destroy){case"max":e>=i&&o.destroy();break;case"min":e<=t&&o.destroy();break}}function so(o,e){let t=o.size;if(o.destroyed||!t||!t.enable||(t.maxLoops??0)>0&&(t.loops??0)>(t.maxLoops??0))return;let i=(t.velocity??0)*e.factor,s=t.min,n=t.max,r=t.decay??1;if(t.time||(t.time=0),(t.delayTime??0)>0&&t.time<(t.delayTime??0)&&(t.time+=e.value),!((t.delayTime??0)>0&&t.time<(t.delayTime??0))){switch(t.status){case"increasing":t.value>=n?(t.status="decreasing",t.loops||(t.loops=0),t.loops++):t.value+=i;break;case"decreasing":t.value<=s?(t.status="increasing",t.loops||(t.loops=0),t.loops++):t.value-=i}t.velocity&&r!==1&&(t.velocity*=r),To(o,t.value,s,n),o.destroyed||(t.value=V(t.value,s,n))}}var Ht=class{init(e){let t=e.container,i=e.options.size,s=i.animation;s.enable&&(e.size.velocity=(e.retina.sizeAnimationSpeed??t.retina.sizeAnimationSpeed)/100*t.retina.reduceFactor,s.sync||(e.size.velocity*=y()))}isEnabled(e){return!e.destroyed&&!e.spawning&&e.size.enable&&((e.size.maxLoops??0)<=0||(e.size.maxLoops??0)>0&&(e.size.loops??0)<(e.size.maxLoops??0))}reset(e){e.size.loops=0}update(e,t){this.isEnabled(e)&&so(e,t)}};async function no(o){await o.addParticleUpdater("size",()=>new Ht)}var ro={background:{color:"#000000"},particles:{number:{value:100},links:{distance:150,enable:!0},move:{enable:!0},size:{value:1},shape:{type:"circle"}}};async function ao(o){await Gi(o),await $i(o),await Xi(o),await oo(o),await ji(o),await Ji(o),await no(o),await o.addPreset("links",ro)}document.addEventListener("DOMContentLoaded",Io(),!1);window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change",()=>{lo()});async function Io(){await ao(ce),await lo()}async function lo(){var o=getComputedStyle(document.body).getPropertyValue("--particles-color").trim();console.error(o),await ce.load("site-canvas",{background:{color:"transparent"},particles:{number:{value:100,density:{enable:!0,value_area:2500}},color:{value:o},shape:{type:"circle",stroke:{width:0,color:o},polygon:{nb_sides:5}},opacity:{value:.5,random:!1},size:{value:3,random:!0,anim:{enable:!1,speed:40,size_min:.1,sync:!1}},line_linked:{enable:!0,distance:220,color:o,opacity:.4,width:1},move:{enable:!0,speed:.95,direction:"none",random:!1,straight:!1,out_mode:"out",bounce:!1,attract:{enable:!0,rotateX:600,rotateY:1200}}},preset:"links"}).catch(e=>{console.error(e)})}})(); +(()=>{var N="generated",fi="pointerdown",di="pointerup",$t="pointerleave",pi="pointerout",Gt="pointermove",mi="touchstart",Nt="touchend",gi="touchmove",yi="touchcancel",vi="resize",xi="visibilitychange",F="tsParticles - Error";var X=class s{constructor(e,t,i){if(this._updateFromAngle=(n,o)=>{this.x=Math.cos(n)*o,this.y=Math.sin(n)*o},!S(e)&&e){this.x=e.x,this.y=e.y;let n=e;this.z=n.z?n.z:0}else if(e!==void 0&&t!==void 0)this.x=e,this.y=t,this.z=i??0;else throw new Error(`${F} Vector3d not initialized correctly`)}static get origin(){return s.create(0,0,0)}get angle(){return Math.atan2(this.y,this.x)}set angle(e){this._updateFromAngle(e,this.length)}get length(){return Math.sqrt(this.getLengthSq())}set length(e){this._updateFromAngle(this.angle,e)}static clone(e){return s.create(e.x,e.y,e.z)}static create(e,t,i){return new s(e,t,i)}add(e){return s.create(this.x+e.x,this.y+e.y,this.z+e.z)}addTo(e){this.x+=e.x,this.y+=e.y,this.z+=e.z}copy(){return s.clone(this)}distanceTo(e){return this.sub(e).length}distanceToSq(e){return this.sub(e).getLengthSq()}div(e){return s.create(this.x/e,this.y/e,this.z/e)}divTo(e){this.x/=e,this.y/=e,this.z/=e}getLengthSq(){return this.x**2+this.y**2}mult(e){return s.create(this.x*e,this.y*e,this.z*e)}multTo(e){this.x*=e,this.y*=e,this.z*=e}normalize(){let e=this.length;e!=0&&this.multTo(1/e)}rotate(e){return s.create(this.x*Math.cos(e)-this.y*Math.sin(e),this.x*Math.sin(e)+this.y*Math.cos(e),0)}setTo(e){this.x=e.x,this.y=e.y;let t=e;this.z=t.z?t.z:0}sub(e){return s.create(this.x-e.x,this.y-e.y,this.z-e.z)}subFrom(e){this.x-=e.x,this.y-=e.y,this.z-=e.z}};var T=class s extends X{constructor(e,t){super(e,t,0)}static get origin(){return s.create(0,0)}static clone(e){return s.create(e.x,e.y)}static create(e,t){return new s(e,t)}};var us=Math.random;function b(){return U(us(),0,1-1e-16)}function U(s,e,t){return Math.min(Math.max(s,e),t)}function de(s,e,t,i){return Math.floor((s*t+e*i)/(t+i))}function P(s){let e=j(s),t=pe(s);return e===t&&(t=0),b()*(e-t)+t}function m(s){return S(s)?s:P(s)}function pe(s){return S(s)?s:s.min}function j(s){return S(s)?s:s.max}function p(s,e){if(s===e||e===void 0&&S(s))return s;let t=pe(s),i=j(s);return e!==void 0?{min:Math.min(t,e),max:Math.max(i,e)}:p(t,i)}function K(s){let e=s.random,{enable:t,minimumValue:i}=E(e)?{enable:e,minimumValue:0}:e;return m(t?p(s.value,i):s.value)}function C(s,e){let t=s.x-e.x,i=s.y-e.y;return{dx:t,dy:i,distance:Math.sqrt(t**2+i**2)}}function D(s,e){return C(s,e).distance}function bi(s,e,t){if(S(s))return s*Math.PI/180;switch(s){case"top":return-Math.PI/2;case"top-right":return-Math.PI/4;case"right":return 0;case"bottom-right":return Math.PI/4;case"bottom":return Math.PI/2;case"bottom-left":return 3*Math.PI/4;case"left":return Math.PI;case"top-left":return-3*Math.PI/4;case"inside":return Math.atan2(t.y-e.y,t.x-e.x);case"outside":return Math.atan2(e.y-t.y,e.x-t.x);default:return b()*Math.PI*2}}function wi(s){let e=T.origin;return e.length=1,e.angle=s,e}function _i(s){return{x:s.position?.x??b()*s.size.width,y:s.position?.y??b()*s.size.height}}function me(s){return s?s.endsWith("%")?parseFloat(s)/100:parseFloat(s):1}var fs={debug:console.debug,error:console.error,info:console.info,log:console.log,verbose:console.log,warning:console.warn};function $(){return fs}function J(){return typeof window>"u"||!window||typeof window.document>"u"||!window.document}function ds(){return!J()&&typeof matchMedia<"u"}function ge(s){if(ds())return matchMedia(s)}function ki(s){if(!(J()||typeof MutationObserver>"u"))return new MutationObserver(s)}function zi(s,e){return s===e||L(e)&&e.indexOf(s)>-1}function ps(s){return Math.floor(b()*s.length)}function ye(s,e,t=!0){return s[e!==void 0&&t?e%s.length:ps(s)]}function ee(s,e,t,i,n){return ms(ae(s,i??0),e,t,n)}function ms(s,e,t,i){let n=!0;return(!i||i==="bottom")&&(n=s.topt.x),n&&(!i||i==="right")&&(n=s.leftt.y),n}function ae(s,e){return{bottom:s.y+e,left:s.x-e,right:s.x+e,top:s.y-e}}function w(s,...e){for(let t of e){if(t==null)continue;if(!G(t)){s=t;continue}let i=Array.isArray(t);i&&(G(s)||!s||!Array.isArray(s))?s=[]:!i&&(G(s)||!s||Array.isArray(s))&&(s={});for(let n in t){if(n==="__proto__")continue;let o=t,r=o[n],a=s;a[n]=G(r)&&Array.isArray(r)?r.map(l=>w(a[n],l)):w(a[n],r)}}return s}function I(s,e){return L(s)?s.map((t,i)=>e(t,i)):e(s,0)}function Y(s,e,t){return L(s)?ye(s,e,t):s}function ve(s,e){let t=s.value,i=s.animation,n={delayTime:m(i.delay)*1e3,enable:i.enable,value:m(s.value)*e,max:j(t)*e,min:pe(t)*e,loops:0,maxLoops:m(i.count),time:0};if(i.enable){switch(n.decay=1-m(i.decay),i.mode){case"increase":n.status="increasing";break;case"decrease":n.status="decreasing";break;case"random":n.status=b()>=.5?"increasing":"decreasing";break}let o=i.mode==="auto";switch(i.startValue){case"min":n.value=n.min,o&&(n.status="increasing");break;case"max":n.value=n.max,o&&(n.status="decreasing");break;case"random":default:n.value=P(n),o&&(n.status=b()>=.5?"increasing":"decreasing");break}}return n.initialValue=n.value,n}function gs(s,e){if(!(s.mode==="percent")){let{mode:n,...o}=s;return o}return"x"in s?{x:s.x/100*e.width,y:s.y/100*e.height}:{width:s.width/100*e.width,height:s.height/100*e.height}}function xe(s,e){return gs(s,e)}function E(s){return typeof s=="boolean"}function R(s){return typeof s=="string"}function S(s){return typeof s=="number"}function be(s){return typeof s=="function"}function G(s){return typeof s=="object"&&s!==null}function L(s){return Array.isArray(s)}var _e="random",we="mid",ke=new Map;function Zt(s){ke.set(s.key,s)}function Xt(s,e,t){return t<0&&(t+=1),t>1&&(t-=1),t<1/6?s+(e-s)*6*t:t<1/2?e:t<2/3?s+(e-s)*(2/3-t)*6:s}function ys(s){for(let[,o]of ke)if(s.startsWith(o.stringPrefix))return o.parseString(s);let e=/^#?([a-f\d])([a-f\d])([a-f\d])([a-f\d])?$/i,t=s.replace(e,(o,r,a,l,c)=>r+r+a+a+l+l+(c!==void 0?c+c:"")),i=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})?$/i,n=i.exec(t);return n?{a:n[4]!==void 0?parseInt(n[4],16)/255:1,b:parseInt(n[3],16),g:parseInt(n[2],16),r:parseInt(n[1],16)}:void 0}function O(s,e,t=!0){if(!s)return;let i=R(s)?{value:s}:s;if(R(i.value))return Mi(i.value,e,t);if(L(i.value))return O({value:ye(i.value,e,t)});for(let[,n]of ke){let o=n.handleRangeColor(i);if(o)return o}}function Mi(s,e,t=!0){if(!s)return;let i=R(s)?{value:s}:s;if(R(i.value))return i.value===_e?Ci():xs(i.value);if(L(i.value))return Mi({value:ye(i.value,e,t)});for(let[,n]of ke){let o=n.handleColor(i);if(o)return o}}function le(s,e,t=!0){let i=O(s,e,t);return i?vs(i):void 0}function vs(s){let e=s.r/255,t=s.g/255,i=s.b/255,n=Math.max(e,t,i),o=Math.min(e,t,i),r={h:0,l:(n+o)/2,s:0};return n!==o&&(r.s=r.l<.5?(n-o)/(n+o):(n-o)/(2-n-o),r.h=e===n?(t-i)/(n-o):r.h=t===n?2+(i-e)/(n-o):4+(e-t)/(n-o)),r.l*=100,r.s*=100,r.h*=60,r.h<0&&(r.h+=360),r.h>=360&&(r.h-=360),r}function xs(s){return ys(s)}function Z(s){let e={b:0,g:0,r:0},t={h:s.h/360,l:s.l/100,s:s.s/100};if(!t.s)e.r=e.g=e.b=t.l;else{let i=t.l<.5?t.l*(1+t.s):t.l+t.s-t.l*t.s,n=2*t.l-i;e.r=Xt(n,i,t.h+1/3),e.g=Xt(n,i,t.h),e.b=Xt(n,i,t.h-1/3)}return e.r=Math.floor(e.r*255),e.g=Math.floor(e.g*255),e.b=Math.floor(e.b*255),e}function Pi(s){let e=Z(s);return{a:s.a,b:e.b,g:e.g,r:e.r}}function Ci(s){let e=s??0;return{b:Math.floor(P(p(e,256))),g:Math.floor(P(p(e,256))),r:Math.floor(P(p(e,256)))}}function W(s,e){return`rgba(${s.r}, ${s.g}, ${s.b}, ${e??1})`}function Qt(s,e){return`hsla(${s.h}, ${s.s}%, ${s.l}%, ${e??1})`}function bs(s,e,t,i){let n=s,o=e;return n.r===void 0&&(n=Z(s)),o.r===void 0&&(o=Z(e)),{b:de(n.b,o.b,t,i),g:de(n.g,o.g,t,i),r:de(n.r,o.r,t,i)}}function jt(s,e,t){if(t===_e)return Ci();if(t===we){let i=s.getFillColor()??s.getStrokeColor(),n=e?.getFillColor()??e?.getStrokeColor();if(i&&n&&e)return bs(i,n,s.getRadius(),e.getRadius());{let o=i??n;if(o)return Z(o)}}else return t}function Ri(s,e,t){let i=R(s)?s:s.value;return i===_e?t?O({value:i}):e?_e:we:i===we?we:O({value:i})}function Kt(s){return s!==void 0?{h:s.h.value,s:s.s.value,l:s.l.value}:void 0}function Si(s,e,t){let i={h:{enable:!1,value:s.h},s:{enable:!1,value:s.s},l:{enable:!1,value:s.l}};return e&&(Yt(i.h,e.h,t),Yt(i.s,e.s,t),Yt(i.l,e.l,t)),i}function Yt(s,e,t){s.enable=e.enable,s.enable?(s.velocity=m(e.speed)/100*t,s.decay=1-m(e.decay),s.status="increasing",s.loops=0,s.maxLoops=m(e.count),s.time=0,s.delayTime=m(e.delay)*1e3,e.sync||(s.velocity*=b(),s.value*=b()),s.initialValue=s.value):s.velocity=0}function ze(s,e,t){s.beginPath(),s.moveTo(e.x,e.y),s.lineTo(t.x,t.y),s.closePath()}function Oi(s,e,t,i){s.beginPath(),s.moveTo(e.x,e.y),s.lineTo(t.x,t.y),s.lineTo(i.x,i.y),s.closePath()}function Ti(s,e,t){s.fillStyle=t??"rgba(0,0,0,0)",s.fillRect(0,0,e.width,e.height)}function Di(s,e,t,i){t&&(s.globalAlpha=i,s.drawImage(t,0,0,e.width,e.height),s.globalAlpha=1)}function Me(s,e){s.clearRect(0,0,e.width,e.height)}function Ei(s){let{container:e,context:t,particle:i,delta:n,colorStyles:o,backgroundMask:r,composite:a,radius:l,opacity:c,shadow:h,transform:f}=s,u=i.getPosition(),d=i.rotation+(i.pathRotation?i.velocity.angle:0),y={sin:Math.sin(d),cos:Math.cos(d)},g={a:y.cos*(f.a??1),b:y.sin*(f.b??1),c:-y.sin*(f.c??1),d:y.cos*(f.d??1)};t.setTransform(g.a,g.b,g.c,g.d,u.x,u.y),t.beginPath(),r&&(t.globalCompositeOperation=a);let x=i.shadowColor;h.enable&&x&&(t.shadowBlur=h.blur,t.shadowColor=W(x),t.shadowOffsetX=h.offset.x,t.shadowOffsetY=h.offset.y),o.fill&&(t.fillStyle=o.fill);let v=i.strokeWidth??0;t.lineWidth=v,o.stroke&&(t.strokeStyle=o.stroke),ws(e,t,i,l,c,n),v>0&&t.stroke(),i.close&&t.closePath(),i.fill&&t.fill(),_s(e,t,i,l,c,n),t.globalCompositeOperation="source-over",t.setTransform(1,0,0,1,0,0)}function ws(s,e,t,i,n,o){if(!t.shape)return;let r=s.drawers.get(t.shape);r&&r.draw(e,t,i,n,o,s.retina.pixelRatio)}function _s(s,e,t,i,n,o){if(!t.shape)return;let r=s.drawers.get(t.shape);!r||!r.afterEffect||r.afterEffect(e,t,i,n,o,s.retina.pixelRatio)}function Li(s,e,t){e.draw&&e.draw(s,t)}function Ii(s,e,t,i){e.drawParticle&&e.drawParticle(s,t,i)}function Fi(s,e,t){return{h:s.h,s:s.s,l:s.l+(e==="darken"?-1:1)*t}}function ks(s,e,t){let i=e[t];i!==void 0&&(s[t]=(s[t]??1)*i)}var Pe=class{constructor(e){this.container=e,this._applyPostDrawUpdaters=t=>{for(let i of this._postDrawUpdaters)i.afterDraw&&i.afterDraw(t)},this._applyPreDrawUpdaters=(t,i,n,o,r,a)=>{for(let l of this._preDrawUpdaters){if(l.getColorStyles){let{fill:c,stroke:h}=l.getColorStyles(i,t,n,o);c&&(r.fill=c),h&&(r.stroke=h)}if(l.getTransformValues){let c=l.getTransformValues(i);for(let h in c)ks(a,c,h)}l.beforeDraw&&l.beforeDraw(i)}},this._applyResizePlugins=()=>{for(let t of this._resizePlugins)t.resize&&t.resize()},this._getPluginParticleColors=t=>{let i,n;for(let o of this._colorPlugins)if(!i&&o.particleFillColor&&(i=le(o.particleFillColor(t))),!n&&o.particleStrokeColor&&(n=le(o.particleStrokeColor(t))),i&&n)break;return[i,n]},this._initCover=()=>{let t=this.container.actualOptions,i=t.backgroundMask.cover,n=i.color,o=O(n);if(o){let r={...o,a:i.opacity};this._coverColorStyle=W(r,r.a)}},this._initStyle=()=>{let t=this.element,i=this.container.actualOptions;if(t){this._fullScreen?(this._originalStyle=w({},t.style),this._setFullScreenStyle()):this._resetOriginalStyle();for(let n in i.style){if(!n||!i.style)continue;let o=i.style[n];o&&t.style.setProperty(n,o,"important")}}},this._initTrail=async()=>{let t=this.container.actualOptions,i=t.particles.move.trail,n=i.fill;if(i.enable)if(n.color){let o=O(n.color);if(!o)return;let r=t.particles.move.trail;this._trailFill={color:{...o},opacity:1/r.length}}else await new Promise((o,r)=>{if(!n.image)return;let a=document.createElement("img");a.addEventListener("load",()=>{this._trailFill={image:a,opacity:1/i.length},o()}),a.addEventListener("error",l=>{r(l.error)}),a.src=n.image})},this._paintBase=t=>{this.draw(i=>Ti(i,this.size,t))},this._paintImage=(t,i)=>{this.draw(n=>Di(n,this.size,t,i))},this._repairStyle=()=>{let t=this.element;t&&(this._safeMutationObserver(i=>i.disconnect()),this._initStyle(),this.initBackground(),this._safeMutationObserver(i=>i.observe(t,{attributes:!0})))},this._resetOriginalStyle=()=>{let t=this.element,i=this._originalStyle;if(!(t&&i))return;let n=t.style;n.position=i.position,n.zIndex=i.zIndex,n.top=i.top,n.left=i.left,n.width=i.width,n.height=i.height},this._safeMutationObserver=t=>{this._mutationObserver&&t(this._mutationObserver)},this._setFullScreenStyle=()=>{let t=this.element;if(!t)return;let i="important",n=t.style;n.setProperty("position","fixed",i),n.setProperty("z-index",this.container.actualOptions.fullScreen.zIndex.toString(10),i),n.setProperty("top","0",i),n.setProperty("left","0",i),n.setProperty("width","100%",i),n.setProperty("height","100%",i)},this.size={height:0,width:0},this._context=null,this._generated=!1,this._preDrawUpdaters=[],this._postDrawUpdaters=[],this._resizePlugins=[],this._colorPlugins=[],this._mutationObserver=ki(t=>{for(let i of t)i.type==="attributes"&&i.attributeName==="style"&&this._repairStyle()})}get _fullScreen(){return this.container.actualOptions.fullScreen.enable}clear(){let e=this.container.actualOptions,t=e.particles.move.trail,i=this._trailFill;e.backgroundMask.enable?this.paint():t.enable&&t.length>0&&i?i.color?this._paintBase(W(i.color,i.opacity)):i.image&&this._paintImage(i.image,i.opacity):this.draw(n=>{Me(n,this.size)})}destroy(){if(this._safeMutationObserver(e=>e.disconnect()),this._generated){let e=this.element;e&&e.remove()}else this._resetOriginalStyle();this.stop(),this._preDrawUpdaters=[],this._postDrawUpdaters=[],this._resizePlugins=[],this._colorPlugins=[]}draw(e){let t=this._context;if(t)return e(t)}drawParticle(e,t){if(e.spawning||e.destroyed)return;let i=e.getRadius();if(i<=0)return;let n=e.getFillColor(),o=e.getStrokeColor()??n,[r,a]=this._getPluginParticleColors(e);r||(r=n),a||(a=o),!(!r&&!a)&&this.draw(l=>{let c=this.container,h=c.actualOptions,f=e.options.zIndex,u=(1-e.zIndexFactor)**f.opacityRate,d=e.bubble.opacity??e.opacity?.value??1,y=e.strokeOpacity??d,g=d*u,x=y*u,v={},_={fill:r?Qt(r,g):void 0};_.stroke=a?Qt(a,x):_.fill,this._applyPreDrawUpdaters(l,e,i,g,_,v),Ei({container:c,context:l,particle:e,delta:t,colorStyles:_,backgroundMask:h.backgroundMask.enable,composite:h.backgroundMask.composite,radius:i*(1-e.zIndexFactor)**f.sizeRate,opacity:g,shadow:e.options.shadow,transform:v}),this._applyPostDrawUpdaters(e)})}drawParticlePlugin(e,t,i){this.draw(n=>Ii(n,e,t,i))}drawPlugin(e,t){this.draw(i=>Li(i,e,t))}async init(){this.resize(),this._initStyle(),this._initCover();try{await this._initTrail()}catch(e){$().error(e)}this.initBackground(),this._safeMutationObserver(e=>{this.element&&e.observe(this.element,{attributes:!0})}),this.initUpdaters(),this.initPlugins(),this.paint()}initBackground(){let e=this.container.actualOptions,t=e.background,i=this.element;if(!i)return;let n=i.style;if(n){if(t.color){let o=O(t.color);n.backgroundColor=o?W(o,t.opacity):""}else n.backgroundColor="";n.backgroundImage=t.image||"",n.backgroundPosition=t.position||"",n.backgroundRepeat=t.repeat||"",n.backgroundSize=t.size||""}}initPlugins(){this._resizePlugins=[];for(let[,e]of this.container.plugins)e.resize&&this._resizePlugins.push(e),(e.particleFillColor||e.particleStrokeColor)&&this._colorPlugins.push(e)}initUpdaters(){this._preDrawUpdaters=[],this._postDrawUpdaters=[];for(let e of this.container.particles.updaters)e.afterDraw&&this._postDrawUpdaters.push(e),(e.getColorStyles||e.getTransformValues||e.beforeDraw)&&this._preDrawUpdaters.push(e)}loadCanvas(e){this._generated&&this.element&&this.element.remove(),this._generated=e.dataset&&N in e.dataset?e.dataset[N]==="true":this._generated,this.element=e,this.element.ariaHidden="true",this._originalStyle=w({},this.element.style),this.size.height=e.offsetHeight,this.size.width=e.offsetWidth,this._context=this.element.getContext("2d"),this._safeMutationObserver(t=>{this.element&&t.observe(this.element,{attributes:!0})}),this.container.retina.init(),this.initBackground()}paint(){let e=this.container.actualOptions;this.draw(t=>{e.backgroundMask.enable&&e.backgroundMask.cover?(Me(t,this.size),this._paintBase(this._coverColorStyle)):this._paintBase()})}resize(){if(!this.element)return!1;let e=this.container,t=e.retina.pixelRatio,i=e.canvas.size,n={width:this.element.offsetWidth*t,height:this.element.offsetHeight*t};if(n.height===i.height&&n.width===i.width&&n.height===this.element.height&&n.width===this.element.width)return!1;let o={...i};return this.element.width=i.width=this.element.offsetWidth*t,this.element.height=i.height=this.element.offsetHeight*t,this.container.started&&(this.resizeFactor={width:i.width/o.width,height:i.height/o.height}),!0}stop(){this.draw(e=>Me(e,this.size))}async windowResize(){if(!this.element||!this.resize())return;let e=this.container,t=e.updateActualOptions();e.particles.setDensity(),this._applyResizePlugins(),t&&await e.refresh()}};function A(s,e,t,i,n){if(i){let o={passive:!0};E(n)?o.capture=n:n!==void 0&&(o=n),s.addEventListener(e,t,o)}else{let o=n;s.removeEventListener(e,t,o)}}var Ce=class{constructor(e){this.container=e,this._doMouseTouchClick=t=>{let i=this.container,n=i.actualOptions;if(this._canPush){let o=i.interactivity.mouse,r=o.position;if(!r)return;o.clickPosition={...r},o.clickTime=new Date().getTime();let a=n.interactivity.events.onClick;I(a.mode,l=>this.container.handleClickMode(l))}t.type==="touchend"&&setTimeout(()=>this._mouseTouchFinish(),500)},this._handleThemeChange=t=>{let i=t,n=this.container,o=n.options,r=o.defaultThemes,a=i.matches?r.dark:r.light,l=o.themes.find(c=>c.name===a);l&&l.default.auto&&n.loadTheme(a)},this._handleVisibilityChange=()=>{let t=this.container,i=t.actualOptions;this._mouseTouchFinish(),i.pauseOnBlur&&(document&&document.hidden?(t.pageHidden=!0,t.pause()):(t.pageHidden=!1,t.getAnimationStatus()?t.play(!0):t.draw(!0)))},this._handleWindowResize=async()=>{this._resizeTimeout&&(clearTimeout(this._resizeTimeout),delete this._resizeTimeout),this._resizeTimeout=setTimeout(async()=>{let t=this.container.canvas;t&&await t.windowResize()},this.container.actualOptions.interactivity.events.resize.delay*1e3)},this._manageInteractivityListeners=(t,i)=>{let n=this._handlers,o=this.container,r=o.actualOptions,a=o.interactivity.element;if(!a)return;let l=a,c=o.canvas.element;c&&(c.style.pointerEvents=l===c?"initial":"none"),(r.interactivity.events.onHover.enable||r.interactivity.events.onClick.enable)&&(A(a,Gt,n.mouseMove,i),A(a,mi,n.touchStart,i),A(a,gi,n.touchMove,i),r.interactivity.events.onClick.enable?(A(a,Nt,n.touchEndClick,i),A(a,di,n.mouseUp,i),A(a,fi,n.mouseDown,i)):A(a,Nt,n.touchEnd,i),A(a,t,n.mouseLeave,i),A(a,yi,n.touchCancel,i))},this._manageListeners=t=>{let i=this._handlers,n=this.container,o=n.actualOptions,r=o.interactivity.detectsOn,a=n.canvas.element,l=$t;r==="window"?(n.interactivity.element=window,l=pi):r==="parent"&&a?n.interactivity.element=a.parentElement??a.parentNode:n.interactivity.element=a,this._manageMediaMatch(t),this._manageResize(t),this._manageInteractivityListeners(l,t),document&&A(document,xi,i.visibilityChange,t,!1)},this._manageMediaMatch=t=>{let i=this._handlers,n=ge("(prefers-color-scheme: dark)");if(n){if(n.addEventListener!==void 0){A(n,"change",i.themeChange,t);return}n.addListener!==void 0&&(t?n.addListener(i.oldThemeChange):n.removeListener(i.oldThemeChange))}},this._manageResize=t=>{let i=this._handlers,n=this.container;if(!n.actualOptions.interactivity.events.resize)return;if(typeof ResizeObserver>"u"){A(window,vi,i.resize,t);return}let r=n.canvas.element;this._resizeObserver&&!t?(r&&this._resizeObserver.unobserve(r),this._resizeObserver.disconnect(),delete this._resizeObserver):!this._resizeObserver&&t&&r&&(this._resizeObserver=new ResizeObserver(async a=>{a.find(c=>c.target===r)&&await this._handleWindowResize()}),this._resizeObserver.observe(r))},this._mouseDown=()=>{let{interactivity:t}=this.container;if(!t)return;let{mouse:i}=t;i.clicking=!0,i.downPosition=i.position},this._mouseTouchClick=t=>{let i=this.container,n=i.actualOptions,{mouse:o}=i.interactivity;o.inside=!0;let r=!1,a=o.position;if(!(!a||!n.interactivity.events.onClick.enable)){for(let[,l]of i.plugins)if(l.clickPositionValid&&(r=l.clickPositionValid(a),r))break;r||this._doMouseTouchClick(t),o.clicking=!1}},this._mouseTouchFinish=()=>{let t=this.container.interactivity;if(!t)return;let i=t.mouse;delete i.position,delete i.clickPosition,delete i.downPosition,t.status=$t,i.inside=!1,i.clicking=!1},this._mouseTouchMove=t=>{let i=this.container,n=i.actualOptions,o=i.interactivity,r=i.canvas.element;if(!o||!o.element)return;o.mouse.inside=!0;let a;if(t.type.startsWith("pointer")){this._canPush=!0;let c=t;if(o.element===window){if(r){let h=r.getBoundingClientRect();a={x:c.clientX-h.left,y:c.clientY-h.top}}}else if(n.interactivity.detectsOn==="parent"){let h=c.target,f=c.currentTarget;if(h&&f&&r){let u=h.getBoundingClientRect(),d=f.getBoundingClientRect(),y=r.getBoundingClientRect();a={x:c.offsetX+2*u.left-(d.left+y.left),y:c.offsetY+2*u.top-(d.top+y.top)}}else a={x:c.offsetX??c.clientX,y:c.offsetY??c.clientY}}else c.target===r&&(a={x:c.offsetX??c.clientX,y:c.offsetY??c.clientY})}else if(this._canPush=t.type!=="touchmove",r){let c=t,h=c.touches[c.touches.length-1],f=r.getBoundingClientRect();a={x:h.clientX-(f.left??0),y:h.clientY-(f.top??0)}}let l=i.retina.pixelRatio;a&&(a.x*=l,a.y*=l),o.mouse.position=a,o.status=Gt},this._touchEnd=t=>{let i=t,n=Array.from(i.changedTouches);for(let o of n)this._touches.delete(o.identifier);this._mouseTouchFinish()},this._touchEndClick=t=>{let i=t,n=Array.from(i.changedTouches);for(let o of n)this._touches.delete(o.identifier);this._mouseTouchClick(t)},this._touchStart=t=>{let i=t,n=Array.from(i.changedTouches);for(let o of n)this._touches.set(o.identifier,performance.now());this._mouseTouchMove(t)},this._canPush=!0,this._touches=new Map,this._handlers={mouseDown:()=>this._mouseDown(),mouseLeave:()=>this._mouseTouchFinish(),mouseMove:t=>this._mouseTouchMove(t),mouseUp:t=>this._mouseTouchClick(t),touchStart:t=>this._touchStart(t),touchMove:t=>this._mouseTouchMove(t),touchEnd:t=>this._touchEnd(t),touchCancel:t=>this._touchEnd(t),touchEndClick:t=>this._touchEndClick(t),visibilityChange:()=>this._handleVisibilityChange(),themeChange:t=>this._handleThemeChange(t),oldThemeChange:t=>this._handleThemeChange(t),resize:()=>{this._handleWindowResize()}}}addListeners(){this._manageListeners(!0)}removeListeners(){this._manageListeners(!1)}};var k=class s{constructor(){this.value=""}static create(e,t){let i=new s;return i.load(e),t!==void 0&&(R(t)||L(t)?i.load({value:t}):i.load(t)),i}load(e){e?.value!==void 0&&(this.value=e.value)}};var Re=class{constructor(){this.color=new k,this.color.value="",this.image="",this.position="",this.repeat="",this.size="",this.opacity=1}load(e){e&&(e.color!==void 0&&(this.color=k.create(this.color,e.color)),e.image!==void 0&&(this.image=e.image),e.position!==void 0&&(this.position=e.position),e.repeat!==void 0&&(this.repeat=e.repeat),e.size!==void 0&&(this.size=e.size),e.opacity!==void 0&&(this.opacity=e.opacity))}};var Se=class{constructor(){this.color=new k,this.color.value="#fff",this.opacity=1}load(e){e&&(e.color!==void 0&&(this.color=k.create(this.color,e.color)),e.opacity!==void 0&&(this.opacity=e.opacity))}};var Oe=class{constructor(){this.composite="destination-out",this.cover=new Se,this.enable=!1}load(e){if(e){if(e.composite!==void 0&&(this.composite=e.composite),e.cover!==void 0){let t=e.cover,i=R(e.cover)?{color:e.cover}:e.cover;this.cover.load(t.color!==void 0?t:{color:i})}e.enable!==void 0&&(this.enable=e.enable)}}};var Te=class{constructor(){this.enable=!0,this.zIndex=0}load(e){e&&(e.enable!==void 0&&(this.enable=e.enable),e.zIndex!==void 0&&(this.zIndex=e.zIndex))}};var De=class{constructor(){this.enable=!1,this.mode=[]}load(e){e&&(e.enable!==void 0&&(this.enable=e.enable),e.mode!==void 0&&(this.mode=e.mode))}};var ce=class{constructor(){this.selectors=[],this.enable=!1,this.mode=[],this.type="circle"}get el(){return this.elementId}set el(e){this.elementId=e}get elementId(){return this.ids}set elementId(e){this.ids=e}get ids(){return I(this.selectors,e=>e.replace("#",""))}set ids(e){this.selectors=I(e,t=>`#${t}`)}load(e){if(!e)return;let t=e.ids??e.elementId??e.el;t!==void 0&&(this.ids=t),e.selectors!==void 0&&(this.selectors=e.selectors),e.enable!==void 0&&(this.enable=e.enable),e.mode!==void 0&&(this.mode=e.mode),e.type!==void 0&&(this.type=e.type)}};var Ee=class{constructor(){this.enable=!1,this.force=2,this.smooth=10}load(e){e&&(e.enable!==void 0&&(this.enable=e.enable),e.force!==void 0&&(this.force=e.force),e.smooth!==void 0&&(this.smooth=e.smooth))}};var Le=class{constructor(){this.enable=!1,this.mode=[],this.parallax=new Ee}load(e){e&&(e.enable!==void 0&&(this.enable=e.enable),e.mode!==void 0&&(this.mode=e.mode),this.parallax.load(e.parallax))}};var Ie=class{constructor(){this.delay=.5,this.enable=!0}load(e){e!==void 0&&(e.delay!==void 0&&(this.delay=e.delay),e.enable!==void 0&&(this.enable=e.enable))}};var Fe=class{constructor(){this.onClick=new De,this.onDiv=new ce,this.onHover=new Le,this.resize=new Ie}get onclick(){return this.onClick}set onclick(e){this.onClick=e}get ondiv(){return this.onDiv}set ondiv(e){this.onDiv=e}get onhover(){return this.onHover}set onhover(e){this.onHover=e}load(e){if(!e)return;this.onClick.load(e.onClick??e.onclick);let t=e.onDiv??e.ondiv;t!==void 0&&(this.onDiv=I(t,i=>{let n=new ce;return n.load(i),n})),this.onHover.load(e.onHover??e.onhover),E(e.resize)?this.resize.enable=e.resize:this.resize.load(e.resize)}};var Ae=class{constructor(e,t){this._engine=e,this._container=t}load(e){if(!e||!this._container)return;let t=this._engine.plugins.interactors.get(this._container);if(t)for(let i of t)i.loadModeOptions&&i.loadModeOptions(this,e)}};var te=class{constructor(e,t){this.detectsOn="window",this.events=new Fe,this.modes=new Ae(e,t)}get detect_on(){return this.detectsOn}set detect_on(e){this.detectsOn=e}load(e){if(!e)return;let t=e.detectsOn??e.detect_on;t!==void 0&&(this.detectsOn=t),this.events.load(e.events),this.modes.load(e.modes)}};var Ve=class{load(e){e&&(e.position&&(this.position={x:e.position.x??50,y:e.position.y??50,mode:e.position.mode??"percent"}),e.options&&(this.options=w({},e.options)))}};var qe=class{constructor(){this.maxWidth=1/0,this.options={},this.mode="canvas"}load(e){e&&(e.maxWidth!==void 0&&(this.maxWidth=e.maxWidth),e.mode!==void 0&&(e.mode==="screen"?this.mode="screen":this.mode="canvas"),e.options!==void 0&&(this.options=w({},e.options)))}};var He=class{constructor(){this.auto=!1,this.mode="any",this.value=!1}load(e){e&&(e.auto!==void 0&&(this.auto=e.auto),e.mode!==void 0&&(this.mode=e.mode),e.value!==void 0&&(this.value=e.value))}};var Be=class{constructor(){this.name="",this.default=new He}load(e){e&&(e.name!==void 0&&(this.name=e.name),this.default.load(e.default),e.options!==void 0&&(this.options=w({},e.options)))}};var ie=class{constructor(){this.count=0,this.enable=!1,this.offset=0,this.speed=1,this.delay=0,this.decay=0,this.sync=!0}load(e){e&&(e.count!==void 0&&(this.count=p(e.count)),e.enable!==void 0&&(this.enable=e.enable),e.offset!==void 0&&(this.offset=p(e.offset)),e.speed!==void 0&&(this.speed=p(e.speed)),e.decay!==void 0&&(this.decay=p(e.decay)),e.delay!==void 0&&(this.delay=p(e.delay)),e.sync!==void 0&&(this.sync=e.sync))}};var Ue=class{constructor(){this.h=new ie,this.s=new ie,this.l=new ie}load(e){e&&(this.h.load(e.h),this.s.load(e.s),this.l.load(e.l))}};var Q=class s extends k{constructor(){super(),this.animation=new Ue}static create(e,t){let i=new s;return i.load(e),t!==void 0&&(R(t)||L(t)?i.load({value:t}):i.load(t)),i}load(e){if(super.load(e),!e)return;let t=e.animation;t!==void 0&&(t.enable!==void 0?this.animation.h.load(t):this.animation.load(e.animation))}};var We=class{constructor(){this.speed=2}load(e){e&&e.speed!==void 0&&(this.speed=e.speed)}};var $e=class{constructor(){this.enable=!0,this.retries=0}load(e){e&&(e.enable!==void 0&&(this.enable=e.enable),e.retries!==void 0&&(this.retries=e.retries))}};var Jt=class{constructor(){this.count=0,this.enable=!1,this.speed=1,this.decay=0,this.delay=0,this.sync=!1}load(e){e&&(e.count!==void 0&&(this.count=p(e.count)),e.enable!==void 0&&(this.enable=e.enable),e.speed!==void 0&&(this.speed=p(e.speed)),e.decay!==void 0&&(this.decay=p(e.decay)),e.delay!==void 0&&(this.delay=p(e.delay)),e.sync!==void 0&&(this.sync=e.sync))}},se=class extends Jt{constructor(){super(),this.mode="auto",this.startValue="random"}load(e){super.load(e),e&&(e.minimumValue!==void 0&&(this.minimumValue=e.minimumValue),e.mode!==void 0&&(this.mode=e.mode),e.startValue!==void 0&&(this.startValue=e.startValue))}};var Ge=class{constructor(){this.enable=!1,this.minimumValue=0}load(e){e&&(e.enable!==void 0&&(this.enable=e.enable),e.minimumValue!==void 0&&(this.minimumValue=e.minimumValue))}};var V=class{constructor(){this.random=new Ge,this.value=0}load(e){e&&(E(e.random)?this.random.enable=e.random:this.random.load(e.random),e.value!==void 0&&(this.value=p(e.value,this.random.enable?this.random.minimumValue:void 0)))}};var he=class extends V{constructor(){super(),this.random.minimumValue=.1,this.value=1}};var ne=class{constructor(){this.horizontal=new he,this.vertical=new he}load(e){e&&(this.horizontal.load(e.horizontal),this.vertical.load(e.vertical))}};var Ne=class{constructor(){this.absorb=new We,this.bounce=new ne,this.enable=!1,this.maxSpeed=50,this.mode="bounce",this.overlap=new $e}load(e){e&&(this.absorb.load(e.absorb),this.bounce.load(e.bounce),e.enable!==void 0&&(this.enable=e.enable),e.maxSpeed!==void 0&&(this.maxSpeed=p(e.maxSpeed)),e.mode!==void 0&&(this.mode=e.mode),this.overlap.load(e.overlap))}};var Xe=class{constructor(){this.offset=0,this.value=90}load(e){e&&(e.offset!==void 0&&(this.offset=p(e.offset)),e.value!==void 0&&(this.value=p(e.value)))}};var Ye=class{constructor(){this.distance=200,this.enable=!1,this.rotate={x:3e3,y:3e3}}get rotateX(){return this.rotate.x}set rotateX(e){this.rotate.x=e}get rotateY(){return this.rotate.y}set rotateY(e){this.rotate.y=e}load(e){if(!e)return;e.distance!==void 0&&(this.distance=p(e.distance)),e.enable!==void 0&&(this.enable=e.enable);let t=e.rotate?.x??e.rotateX;t!==void 0&&(this.rotate.x=t);let i=e.rotate?.y??e.rotateY;i!==void 0&&(this.rotate.y=i)}};var Ze=class{constructor(){this.x=50,this.y=50,this.mode="percent",this.radius=0}load(e){e&&(e.x!==void 0&&(this.x=e.x),e.y!==void 0&&(this.y=e.y),e.mode!==void 0&&(this.mode=e.mode),e.radius!==void 0&&(this.radius=e.radius))}};var Qe=class{constructor(){this.acceleration=9.81,this.enable=!1,this.inverse=!1,this.maxSpeed=50}load(e){e&&(e.acceleration!==void 0&&(this.acceleration=p(e.acceleration)),e.enable!==void 0&&(this.enable=e.enable),e.inverse!==void 0&&(this.inverse=e.inverse),e.maxSpeed!==void 0&&(this.maxSpeed=p(e.maxSpeed)))}};var je=class{constructor(){this.clamp=!0,this.delay=new V,this.enable=!1,this.options={}}load(e){e&&(e.clamp!==void 0&&(this.clamp=e.clamp),this.delay.load(e.delay),e.enable!==void 0&&(this.enable=e.enable),this.generator=e.generator,e.options&&(this.options=w(this.options,e.options)))}};var Ke=class{load(e){e&&(e.color!==void 0&&(this.color=k.create(this.color,e.color)),e.image!==void 0&&(this.image=e.image))}};var Je=class{constructor(){this.enable=!1,this.length=10,this.fill=new Ke}get fillColor(){return this.fill.color}set fillColor(e){this.fill.load({color:e})}load(e){e&&(e.enable!==void 0&&(this.enable=e.enable),(e.fill!==void 0||e.fillColor!==void 0)&&this.fill.load(e.fill||{color:e.fillColor}),e.length!==void 0&&(this.length=e.length))}};var et=class{constructor(){this.default="out"}load(e){e&&(e.default!==void 0&&(this.default=e.default),this.bottom=e.bottom??e.default,this.left=e.left??e.default,this.right=e.right??e.default,this.top=e.top??e.default)}};var tt=class{constructor(){this.acceleration=0,this.enable=!1}load(e){e&&(e.acceleration!==void 0&&(this.acceleration=p(e.acceleration)),e.enable!==void 0&&(this.enable=e.enable),e.position&&(this.position=w({},e.position)))}};var it=class{constructor(){this.angle=new Xe,this.attract=new Ye,this.center=new Ze,this.decay=0,this.distance={},this.direction="none",this.drift=0,this.enable=!1,this.gravity=new Qe,this.path=new je,this.outModes=new et,this.random=!1,this.size=!1,this.speed=2,this.spin=new tt,this.straight=!1,this.trail=new Je,this.vibrate=!1,this.warp=!1}get bounce(){return this.collisions}set bounce(e){this.collisions=e}get collisions(){return!1}set collisions(e){}get noise(){return this.path}set noise(e){this.path=e}get outMode(){return this.outModes.default}set outMode(e){this.outModes.default=e}get out_mode(){return this.outMode}set out_mode(e){this.outMode=e}load(e){if(!e)return;this.angle.load(S(e.angle)?{value:e.angle}:e.angle),this.attract.load(e.attract),this.center.load(e.center),e.decay!==void 0&&(this.decay=p(e.decay)),e.direction!==void 0&&(this.direction=e.direction),e.distance!==void 0&&(this.distance=S(e.distance)?{horizontal:e.distance,vertical:e.distance}:{...e.distance}),e.drift!==void 0&&(this.drift=p(e.drift)),e.enable!==void 0&&(this.enable=e.enable),this.gravity.load(e.gravity);let t=e.outModes??e.outMode??e.out_mode;t!==void 0&&(G(t)?this.outModes.load(t):this.outModes.load({default:t})),this.path.load(e.path??e.noise),e.random!==void 0&&(this.random=e.random),e.size!==void 0&&(this.size=e.size),e.speed!==void 0&&(this.speed=p(e.speed)),this.spin.load(e.spin),e.straight!==void 0&&(this.straight=e.straight),this.trail.load(e.trail),e.vibrate!==void 0&&(this.vibrate=e.vibrate),e.warp!==void 0&&(this.warp=e.warp)}};var st=class extends se{constructor(){super(),this.destroy="none",this.speed=2}get opacity_min(){return this.minimumValue}set opacity_min(e){this.minimumValue=e}load(e){e?.opacity_min!==void 0&&e.minimumValue===void 0&&(e.minimumValue=e.opacity_min),super.load(e),e&&e.destroy!==void 0&&(this.destroy=e.destroy)}};var nt=class extends V{constructor(){super(),this.animation=new st,this.random.minimumValue=.1,this.value=1}get anim(){return this.animation}set anim(e){this.animation=e}load(e){if(!e)return;super.load(e);let t=e.animation??e.anim;t!==void 0&&(this.animation.load(t),this.value=p(this.value,this.animation.enable?this.animation.minimumValue:void 0))}};var ot=class{constructor(){this.enable=!1,this.width=1920,this.height=1080}get area(){return this.width}set area(e){this.width=e}get factor(){return this.height}set factor(e){this.height=e}get value_area(){return this.area}set value_area(e){this.area=e}load(e){if(!e)return;e.enable!==void 0&&(this.enable=e.enable);let t=e.width??e.area??e.value_area;t!==void 0&&(this.width=t);let i=e.height??e.factor;i!==void 0&&(this.height=i)}};var rt=class{constructor(){this.density=new ot,this.limit=0,this.value=0}get max(){return this.limit}set max(e){this.limit=e}load(e){if(!e)return;this.density.load(e.density);let t=e.limit??e.max;t!==void 0&&(this.limit=t),e.value!==void 0&&(this.value=e.value)}};var at=class{constructor(){this.blur=0,this.color=new k,this.enable=!1,this.offset={x:0,y:0},this.color.value="#000"}load(e){e&&(e.blur!==void 0&&(this.blur=e.blur),this.color=k.create(this.color,e.color),e.enable!==void 0&&(this.enable=e.enable),e.offset!==void 0&&(e.offset.x!==void 0&&(this.offset.x=e.offset.x),e.offset.y!==void 0&&(this.offset.y=e.offset.y)))}};var ei="character",ti="char",ii="image",si="images",ni="polygon",oi="star",lt=class{constructor(){this.loadShape=(e,t,i,n)=>{if(!e)return;let o=L(e),r=o?[]:{},a=o!==L(this.options[t]),l=o!==L(this.options[i]);a&&(this.options[t]=r),l&&n&&(this.options[i]=r),this.options[t]=w(this.options[t]??r,e),(!this.options[i]||n)&&(this.options[i]=w(this.options[i]??r,e))},this.close=!0,this.fill=!0,this.options={},this.type="circle"}get character(){return this.options[ei]??this.options[ti]}set character(e){this.options[ti]=this.options[ei]=e}get custom(){return this.options}set custom(e){this.options=e}get image(){return this.options[ii]??this.options[si]}set image(e){this.options[si]=this.options[ii]=e}get images(){return this.image}set images(e){this.image=e}get polygon(){return this.options[ni]??this.options[oi]}set polygon(e){this.options[oi]=this.options[ni]=e}get stroke(){return[]}set stroke(e){}load(e){if(!e)return;let t=e.options??e.custom;if(t!==void 0)for(let i in t){let n=t[i];n&&(this.options[i]=w(this.options[i]??{},n))}this.loadShape(e.character,ei,ti,!0),this.loadShape(e.polygon,ni,oi,!1),this.loadShape(e.image??e.images,ii,si,!0),e.close!==void 0&&(this.close=e.close),e.fill!==void 0&&(this.fill=e.fill),e.type!==void 0&&(this.type=e.type)}};var ct=class extends se{constructor(){super(),this.destroy="none",this.speed=5}get size_min(){return this.minimumValue}set size_min(e){this.minimumValue=e}load(e){e?.size_min!==void 0&&e.minimumValue===void 0&&(e.minimumValue=e.size_min),super.load(e),e&&e.destroy!==void 0&&(this.destroy=e.destroy)}};var ht=class extends V{constructor(){super(),this.animation=new ct,this.random.minimumValue=1,this.value=3}get anim(){return this.animation}set anim(e){this.animation=e}load(e){if(super.load(e),!e)return;let t=e.animation??e.anim;t!==void 0&&(this.animation.load(t),this.value=p(this.value,this.animation.enable?this.animation.minimumValue:void 0))}};var ue=class{constructor(){this.width=0}load(e){e&&(e.color!==void 0&&(this.color=Q.create(this.color,e.color)),e.width!==void 0&&(this.width=p(e.width)),e.opacity!==void 0&&(this.opacity=p(e.opacity)))}};var ut=class extends V{constructor(){super(),this.opacityRate=1,this.sizeRate=1,this.velocityRate=1}load(e){super.load(e),e&&(e.opacityRate!==void 0&&(this.opacityRate=e.opacityRate),e.sizeRate!==void 0&&(this.sizeRate=e.sizeRate),e.velocityRate!==void 0&&(this.velocityRate=e.velocityRate))}};var ft=class{constructor(e,t){this._engine=e,this._container=t,this.bounce=new ne,this.collisions=new Ne,this.color=new Q,this.color.value="#fff",this.groups={},this.move=new it,this.number=new rt,this.opacity=new nt,this.reduceDuplicates=!1,this.shadow=new at,this.shape=new lt,this.size=new ht,this.stroke=new ue,this.zIndex=new ut}load(e){if(!e)return;if(this.bounce.load(e.bounce),this.color.load(Q.create(this.color,e.color)),e.groups!==void 0)for(let n in e.groups){let o=e.groups[n];o!==void 0&&(this.groups[n]=w(this.groups[n]??{},o))}this.move.load(e.move),this.number.load(e.number),this.opacity.load(e.opacity),e.reduceDuplicates!==void 0&&(this.reduceDuplicates=e.reduceDuplicates),this.shape.load(e.shape),this.size.load(e.size),this.shadow.load(e.shadow),this.zIndex.load(e.zIndex);let t=e.move?.collisions??e.move?.bounce;t!==void 0&&(this.collisions.enable=t),this.collisions.load(e.collisions),e.interactivity!==void 0&&(this.interactivity=w({},e.interactivity));let i=e.stroke??e.shape?.stroke;if(i&&(this.stroke=I(i,n=>{let o=new ue;return o.load(n),o})),this._container){let n=this._engine.plugins.updaters.get(this._container);if(n)for(let r of n)r.loadOptions&&r.loadOptions(this,e);let o=this._engine.plugins.interactors.get(this._container);if(o)for(let r of o)r.loadParticlesOptions&&r.loadParticlesOptions(this,e)}}};function ri(s,...e){for(let t of e)s.load(t)}function dt(s,e,...t){let i=new ft(s,e);return ri(i,...t),i}var pt=class{constructor(e,t){this._findDefaultTheme=i=>this.themes.find(n=>n.default.value&&n.default.mode===i)??this.themes.find(n=>n.default.value&&n.default.mode==="any"),this._importPreset=i=>{this.load(this._engine.plugins.getPreset(i))},this._engine=e,this._container=t,this.autoPlay=!0,this.background=new Re,this.backgroundMask=new Oe,this.defaultThemes={},this.delay=0,this.fullScreen=new Te,this.detectRetina=!0,this.duration=0,this.fpsLimit=120,this.interactivity=new te(e,t),this.manualParticles=[],this.particles=dt(this._engine,this._container),this.pauseOnBlur=!0,this.pauseOnOutsideViewport=!0,this.responsive=[],this.smooth=!1,this.style={},this.themes=[],this.zLayers=100}get backgroundMode(){return this.fullScreen}set backgroundMode(e){this.fullScreen.load(e)}get fps_limit(){return this.fpsLimit}set fps_limit(e){this.fpsLimit=e}get retina_detect(){return this.detectRetina}set retina_detect(e){this.detectRetina=e}load(e){if(!e)return;e.preset!==void 0&&I(e.preset,r=>this._importPreset(r)),e.autoPlay!==void 0&&(this.autoPlay=e.autoPlay),e.delay!==void 0&&(this.delay=p(e.delay));let t=e.detectRetina??e.retina_detect;t!==void 0&&(this.detectRetina=t),e.duration!==void 0&&(this.duration=p(e.duration));let i=e.fpsLimit??e.fps_limit;i!==void 0&&(this.fpsLimit=i),e.pauseOnBlur!==void 0&&(this.pauseOnBlur=e.pauseOnBlur),e.pauseOnOutsideViewport!==void 0&&(this.pauseOnOutsideViewport=e.pauseOnOutsideViewport),e.zLayers!==void 0&&(this.zLayers=e.zLayers),this.background.load(e.background);let n=e.fullScreen??e.backgroundMode;E(n)?this.fullScreen.enable=n:this.fullScreen.load(n),this.backgroundMask.load(e.backgroundMask),this.interactivity.load(e.interactivity),e.manualParticles&&(this.manualParticles=e.manualParticles.map(r=>{let a=new Ve;return a.load(r),a})),this.particles.load(e.particles),this.style=w(this.style,e.style),this._engine.plugins.loadOptions(this,e),e.smooth!==void 0&&(this.smooth=e.smooth);let o=this._engine.plugins.interactors.get(this._container);if(o)for(let r of o)r.loadOptions&&r.loadOptions(this,e);if(e.responsive!==void 0)for(let r of e.responsive){let a=new qe;a.load(r),this.responsive.push(a)}if(this.responsive.sort((r,a)=>r.maxWidth-a.maxWidth),e.themes!==void 0)for(let r of e.themes){let a=this.themes.find(l=>l.name===r.name);if(a)a.load(r);else{let l=new Be;l.load(r),this.themes.push(l)}}this.defaultThemes.dark=this._findDefaultTheme("dark")?.name,this.defaultThemes.light=this._findDefaultTheme("light")?.name}setResponsive(e,t,i){this.load(i);let n=this.responsive.find(o=>o.mode==="screen"&&screen?o.maxWidth>screen.availWidth:o.maxWidth*t>e);return this.load(n?.options),n?.maxWidth}setTheme(e){if(e){let t=this.themes.find(i=>i.name===e);t&&this.load(t.options)}else{let t=ge("(prefers-color-scheme: dark)"),i=t&&t.matches,n=this._findDefaultTheme(i?"dark":"light");n&&this.load(n.options)}}};var mt=class{constructor(e,t){this.container=t,this._engine=e,this._interactors=e.plugins.getInteractors(this.container,!0),this._externalInteractors=[],this._particleInteractors=[]}async externalInteract(e){for(let t of this._externalInteractors)t.isEnabled()&&await t.interact(e)}handleClickMode(e){for(let t of this._externalInteractors)t.handleClickMode&&t.handleClickMode(e)}init(){this._externalInteractors=[],this._particleInteractors=[];for(let e of this._interactors){switch(e.type){case"external":this._externalInteractors.push(e);break;case"particles":this._particleInteractors.push(e);break}e.init()}}async particlesInteract(e,t){for(let i of this._externalInteractors)i.clear(e,t);for(let i of this._particleInteractors)i.isEnabled(e)&&await i.interact(e,t)}async reset(e){for(let t of this._externalInteractors)t.isEnabled()&&t.reset(e);for(let t of this._particleInteractors)t.isEnabled(e)&&t.reset(e)}};var Ai=s=>{if(!zi(s.outMode,s.checkModes))return;let e=s.radius*2;s.coord>s.maxCoord-e?s.setCb(-s.radius):s.coord{for(let[,_]of a.plugins){let M=_.particlePosition!==void 0?_.particlePosition(l,this):void 0;if(M)return X.create(M.x,M.y,c)}let f=a.canvas.size,u=_i({size:f,position:l}),d=X.create(u.x,u.y,c),y=this.getRadius(),g=this.options.move.outModes,x=_=>{Ai({outMode:_,checkModes:["bounce","bounce-horizontal"],coord:d.x,maxCoord:a.canvas.size.width,setCb:M=>d.x+=M,radius:y})},v=_=>{Ai({outMode:_,checkModes:["bounce","bounce-vertical"],coord:d.y,maxCoord:a.canvas.size.height,setCb:M=>d.y+=M,radius:y})};return x(g.left??g.default),x(g.right??g.default),v(g.top??g.default),v(g.bottom??g.default),this._checkOverlap(d,h)?this._calcPosition(a,void 0,c,h+1):d},this._calculateVelocity=()=>{let a=wi(this.direction),l=a.copy(),c=this.options.move;if(c.direction==="inside"||c.direction==="outside")return l;let h=Math.PI/180*m(c.angle.value),f=Math.PI/180*m(c.angle.offset),u={left:f-h/2,right:f+h/2};return c.straight||(l.angle+=P(p(u.left,u.right))),c.random&&typeof c.speed=="number"&&(l.length*=b()),l},this._checkOverlap=(a,l=0)=>{let c=this.options.collisions,h=this.getRadius();if(!c.enable)return!1;let f=c.overlap;if(f.enable)return!1;let u=f.retries;if(u>=0&&l>u)throw new Error(`${F} particle is overlapping and can't be placed`);return!!this.container.particles.find(d=>D(a,d.position){if(!a||!this.roll||!this.backColor&&!this.roll.alter)return a;let l=this.roll.horizontal&&this.roll.vertical?2:1,c=this.roll.horizontal?Math.PI/2:0;return Math.floor(((this.roll.angle??0)+c)/(Math.PI/l))%2?this.backColor?this.backColor:this.roll.alter?Fi(a,this.roll.alter.type,this.roll.alter.value):a:a},this._initPosition=a=>{let l=this.container,c=m(this.options.zIndex.value);this.position=this._calcPosition(l,a,U(c,0,l.zLayers)),this.initialPosition=this.position.copy();let h=l.canvas.size;switch(this.moveCenter={...xe(this.options.move.center,h),radius:this.options.move.center.radius??0,mode:this.options.move.center.mode??"percent"},this.direction=bi(this.options.move.direction,this.position,this.moveCenter),this.options.move.direction){case"inside":this.outType="inside";break;case"outside":this.outType="outside";break}this.offset=T.origin},this._loadShapeData=(a,l)=>{let c=a.options[this.shape];if(c)return w({close:a.close,fill:a.fill},Y(c,this.id,l))},this._engine=e,this.init(t,n,o,r)}destroy(e){if(this.unbreakable||this.destroyed)return;this.destroyed=!0,this.bubble.inRange=!1,this.slow.inRange=!1;let t=this.container,i=this.pathGenerator;for(let[,n]of t.plugins)n.particleDestroyed&&n.particleDestroyed(this,e);for(let n of t.particles.updaters)n.particleDestroyed&&n.particleDestroyed(this,e);i&&i.reset(this)}draw(e){let t=this.container;for(let[,i]of t.plugins)t.canvas.drawParticlePlugin(i,this,e);t.canvas.drawParticle(this,e)}getFillColor(){return this._getRollColor(this.bubble.color??Kt(this.color))}getMass(){return this.getRadius()**2*Math.PI/2}getPosition(){return{x:this.position.x+this.offset.x,y:this.position.y+this.offset.y,z:this.position.z}}getRadius(){return this.bubble.radius??this.size.value}getStrokeColor(){return this._getRollColor(this.bubble.color??Kt(this.strokeColor))}init(e,t,i,n){let o=this.container,r=this._engine;this.id=e,this.group=n,this.fill=!0,this.pathRotation=!1,this.close=!0,this.lastPathTime=0,this.destroyed=!1,this.unbreakable=!1,this.rotation=0,this.misplaced=!1,this.retina={maxDistance:{}},this.outType="normal",this.ignoresResizeRatio=!0;let a=o.retina.pixelRatio,l=o.actualOptions,c=dt(this._engine,o,l.particles),h=c.shape.type,{reduceDuplicates:f}=c;this.shape=Y(h,this.id,f);let u=c.shape;if(i&&i.shape&&i.shape.type){let M=i.shape.type,q=Y(M,this.id,f);q&&(this.shape=q,u.load(i.shape))}this.shapeData=this._loadShapeData(u,f),c.load(i);let d=this.shapeData;d&&c.load(d.particles);let y=new te(r,o);y.load(o.actualOptions.interactivity),y.load(c.interactivity),this.interactivity=y,this.fill=d?.fill??c.shape.fill,this.close=d?.close??c.shape.close,this.options=c;let g=this.options.move.path;this.pathDelay=K(g.delay)*1e3,g.generator&&(this.pathGenerator=this._engine.plugins.getPathGenerator(g.generator),this.pathGenerator&&o.addPath(g.generator,this.pathGenerator)&&this.pathGenerator.init(o)),o.retina.initParticle(this),this.size=ve(this.options.size,a),this.bubble={inRange:!1},this.slow={inRange:!1,factor:1},this._initPosition(t),this.initialVelocity=this._calculateVelocity(),this.velocity=this.initialVelocity.copy(),this.moveDecay=1-m(this.options.move.decay);let x=o.particles;x.needsSort=x.needsSort||x.lastZIndex=-e&&i.y>=-e&&i.y<=t.height+e&&i.x<=t.width+e}isVisible(){return!this.destroyed&&!this.spawning&&this.isInsideCanvas()}reset(){for(let e of this.container.particles.updaters)e.reset&&e.reset(this)}};var yt=class{constructor(e,t){this.position=e,this.particle=t}};var oe=class{constructor(e,t){this.position={x:e,y:t}}};var H=class s extends oe{constructor(e,t,i,n){super(e,t),this.size={height:n,width:i}}contains(e){let t=this.size.width,i=this.size.height,n=this.position;return e.x>=n.x&&e.x<=n.x+t&&e.y>=n.y&&e.y<=n.y+i}intersects(e){e instanceof B&&e.intersects(this);let t=this.size.width,i=this.size.height,n=this.position,o=e.position,r=e instanceof s?e.size:{width:0,height:0},a=r.width,l=r.height;return o.xn.x&&o.yn.y}};var B=class s extends oe{constructor(e,t,i){super(e,t),this.radius=i}contains(e){return D(e,this.position)<=this.radius}intersects(e){let t=this.position,i=e.position,n={x:Math.abs(i.x-t.x),y:Math.abs(i.y-t.y)},o=this.radius;if(e instanceof s){let r=o+e.radius,a=Math.sqrt(n.x**2+n.y**2);return r>a}else if(e instanceof H){let{width:r,height:a}=e.size;return Math.pow(n.x-r,2)+Math.pow(n.y-a,2)<=o**2||n.x<=o+r&&n.y<=o+a||n.x<=r||n.y<=a}return!1}};var fe=class s{constructor(e,t){this.rectangle=e,this.capacity=t,this._subdivide=()=>{let{x:i,y:n}=this.rectangle.position,{width:o,height:r}=this.rectangle.size,{capacity:a}=this;for(let l=0;l<4;l++)this._subs.push(new s(new H(i+o/2*(l%2),n+r/2*(Math.round(l/2)-l%2),o/2,r/2),a));this._divided=!0},this._points=[],this._divided=!1,this._subs=[]}insert(e){return this.rectangle.contains(e.position)?this._points.lengtht.insert(e))):!1}query(e,t,i){let n=i||[];if(!e.intersects(this.rectangle))return[];for(let o of this._points)!e.contains(o.position)&&D(e.position,o.position)>o.particle.getRadius()&&(!t||t(o.particle))||n.push(o.particle);if(this._divided)for(let o of this._subs)o.query(e,t,n);return n}queryCircle(e,t,i){return this.query(new B(e.x,e.y,t),i)}queryRectangle(e,t,i){return this.query(new H(e.x,e.y,t.width,t.height),i)}};var Vi=4,qi=s=>new H(-s.width/4,-s.height/4,s.width*3/2,s.height*3/2),vt=class{constructor(e,t){this._applyDensity=(n,o,r)=>{if(!n.number.density?.enable)return;let a=n.number,l=this._initDensityFactor(a.density),c=a.value,h=a.limit>0?a.limit:c,f=Math.min(c,h)*l+o,u=Math.min(this.count,this.filter(d=>d.group===r).length);this.limit=a.limit*l,uf&&this.removeQuantity(u-f,r)},this._initDensityFactor=n=>{let o=this._container;if(!o.canvas.element||!n.enable)return 1;let r=o.canvas.element,a=o.retina.pixelRatio;return r.width*r.height/(n.factor*a**2*n.area)},this._pushParticle=(n,o,r,a)=>{try{let l=this.pool.pop();l?l.init(this._nextId,n,o,r):l=new gt(this._engine,this._nextId,this._container,n,o,r);let c=!0;return a&&(c=a(l)),c?(this._array.push(l),this._zArray.push(l),this._nextId++,this._engine.dispatchEvent("particleAdded",{container:this._container,data:{particle:l}}),l):void 0}catch(l){$().warning(`${F} adding particle: ${l}`);return}},this._removeParticle=(n,o,r)=>{let a=this._array[n];if(!a||a.group!==o)return!1;a.destroy(r);let l=this._zArray.indexOf(a);return this._array.splice(n,1),this._zArray.splice(l,1),this.pool.push(a),this._engine.dispatchEvent("particleRemoved",{container:this._container,data:{particle:a}}),!0},this._engine=e,this._container=t,this._nextId=0,this._array=[],this._zArray=[],this.pool=[],this.limit=0,this.needsSort=!1,this.lastZIndex=0,this._interactionManager=new mt(this._engine,this._container);let i=this._container.canvas.size;this.quadTree=new fe(qi(i),Vi),this.movers=this._engine.plugins.getMovers(this._container,!0),this.updaters=this._engine.plugins.getUpdaters(this._container,!0)}get count(){return this._array.length}addManualParticles(){let e=this._container,t=e.actualOptions;for(let i of t.manualParticles)this.addParticle(i.position?xe(i.position,e.canvas.size):void 0,i.options)}addParticle(e,t,i,n){let o=this._container,r=o.actualOptions,a=r.particles.number.limit;if(a>0){let l=this.count+1-a;l>0&&this.removeQuantity(l)}return this._pushParticle(e,t,i,n)}clear(){this._array=[],this._zArray=[]}destroy(){this._array=[],this._zArray=[],this.movers=[],this.updaters=[]}async draw(e){let t=this._container;await this.update(e),t.canvas.clear();for(let[,i]of t.plugins)t.canvas.drawPlugin(i,e);for(let i of this._zArray)i.draw(e)}filter(e){return this._array.filter(e)}find(e){return this._array.find(e)}handleClickMode(e){this._interactionManager.handleClickMode(e)}init(){let e=this._container,t=e.actualOptions;this.lastZIndex=0,this.needsSort=!1;let i=!1;this.updaters=this._engine.plugins.getUpdaters(e,!0),this._interactionManager.init();for(let[,n]of e.plugins)if(n.particlesInitialization!==void 0&&(i=n.particlesInitialization()),i)break;this._interactionManager.init();for(let[,n]of e.pathGenerators)n.init(e);if(this.addManualParticles(),!i){for(let n in t.particles.groups){let o=t.particles.groups[n];for(let r=this.count,a=0;athis.count)return;let o=0;for(let r=e;o!i.has(n)),await this._interactionManager.externalInteract(e);for(let n of this._array){for(let o of this.updaters)o.update(n,e);!n.destroyed&&!n.spawning&&await this._interactionManager.particlesInteract(n,e)}if(delete t.canvas.resizeFactor,this.needsSort){let n=this._zArray;n.sort((o,r)=>r.position.z-o.position.z||o.id-r.id),this.lastZIndex=n[n.length-1].position.z,this.needsSort=!1}}};var xt=class{constructor(e){this.container=e,this.pixelRatio=1,this.reduceFactor=1}init(){let e=this.container,t=e.actualOptions;this.pixelRatio=!t.detectRetina||J()?1:window.devicePixelRatio,this.reduceFactor=1;let i=this.pixelRatio;if(e.canvas.element){let r=e.canvas.element;e.canvas.size.width=r.offsetWidth*i,e.canvas.size.height=r.offsetHeight*i}let n=t.particles,o=n.move;this.attractDistance=m(o.attract.distance)*i,this.maxSpeed=m(o.gravity.maxSpeed)*i,this.sizeAnimationSpeed=m(n.size.animation.speed)*i}initParticle(e){let t=e.options,i=this.pixelRatio,n=t.move,o=n.distance,r=e.retina;r.attractDistance=m(n.attract.distance)*i,r.moveDrift=m(n.drift)*i,r.moveSpeed=m(n.speed)*i,r.sizeAnimationSpeed=m(t.size.animation.speed)*i;let a=r.maxDistance;a.horizontal=o.horizontal!==void 0?o.horizontal*i:void 0,a.vertical=o.vertical!==void 0?o.vertical*i:void 0,r.maxSpeed=m(n.gravity.maxSpeed)*i}};function z(s){return s&&!s.destroyed}function zs(s,e=60,t=!1){return{value:s,factor:t?60/e:60*s/1e3}}function re(s,e,...t){let i=new pt(s,e);return ri(i,...t),i}var Ms="default",Hi={generate:s=>s.velocity,init:()=>{},update:()=>{},reset:()=>{}},bt=class{constructor(e,t,i){this.id=t,this._intersectionManager=n=>{if(!(!z(this)||!this.actualOptions.pauseOnOutsideViewport))for(let o of n)o.target===this.interactivity.element&&(o.isIntersecting?this.play:this.pause)()},this._nextFrame=async n=>{try{if(!this.smooth&&this.lastFrameTime!==void 0&&n1e3){this.draw(!1);return}if(await this.particles.draw(o),!this.alive()){this.destroy();return}this.getAnimationStatus()&&this.draw(!1)}catch(o){$().error(`${F} in animation loop`,o)}},this._engine=e,this.fpsLimit=120,this.smooth=!1,this._delay=0,this._duration=0,this._lifeTime=0,this._firstStart=!0,this.started=!1,this.destroyed=!1,this._paused=!0,this.lastFrameTime=0,this.zLayers=100,this.pageHidden=!1,this._sourceOptions=i,this._initialSourceOptions=i,this.retina=new xt(this),this.canvas=new Pe(this),this.particles=new vt(this._engine,this),this.pathGenerators=new Map,this.interactivity={mouse:{clicking:!1,inside:!1}},this.plugins=new Map,this.drawers=new Map,this._options=re(this._engine,this),this.actualOptions=re(this._engine,this),this._eventListeners=new Ce(this),typeof IntersectionObserver<"u"&&IntersectionObserver&&(this._intersectionObserver=new IntersectionObserver(n=>this._intersectionManager(n))),this._engine.dispatchEvent("containerBuilt",{container:this})}get options(){return this._options}get sourceOptions(){return this._sourceOptions}addClickHandler(e){if(!z(this))return;let t=this.interactivity.element;if(!t)return;let i=(f,u,d)=>{if(!z(this))return;let y=this.retina.pixelRatio,g={x:u.x*y,y:u.y*y},x=this.particles.quadTree.queryCircle(g,d*y);e(f,x)},n=f=>{if(!z(this))return;let u=f,d={x:u.offsetX||u.clientX,y:u.offsetY||u.clientY};i(f,d,1)},o=()=>{z(this)&&(c=!0,h=!1)},r=()=>{z(this)&&(h=!0)},a=f=>{if(z(this)){if(c&&!h){let u=f,d=u.touches[u.touches.length-1];if(!d&&(d=u.changedTouches[u.changedTouches.length-1],!d))return;let y=this.canvas.element,g=y?y.getBoundingClientRect():void 0,x={x:d.clientX-(g?g.left:0),y:d.clientY-(g?g.top:0)};i(f,x,Math.max(d.radiusX,d.radiusY))}c=!1,h=!1}},l=()=>{z(this)&&(c=!1,h=!1)},c=!1,h=!1;t.addEventListener("click",n),t.addEventListener("touchstart",o),t.addEventListener("touchmove",r),t.addEventListener("touchend",a),t.addEventListener("touchcancel",l)}addLifeTime(e){this._lifeTime+=e}addPath(e,t,i=!1){return!z(this)||!i&&this.pathGenerators.has(e)?!1:(this.pathGenerators.set(e,t??Hi),!0)}alive(){return!this._duration||this._lifeTime<=this._duration}destroy(){if(!z(this))return;this.stop(),this.particles.destroy(),this.canvas.destroy();for(let[,i]of this.drawers)i.destroy&&i.destroy(this);for(let i of this.drawers.keys())this.drawers.delete(i);this._engine.plugins.destroy(this),this.destroyed=!0;let e=this._engine.dom(),t=e.findIndex(i=>i===this);t>=0&&e.splice(t,1),this._engine.dispatchEvent("containerDestroyed",{container:this})}draw(e){if(!z(this))return;let t=e;this._drawAnimationFrame=requestAnimationFrame(async i=>{t&&(this.lastFrameTime=void 0,t=!1),await this._nextFrame(i)})}async export(e,t={}){for(let[,i]of this.plugins){if(!i.export)continue;let n=await i.export(e,t);if(n.supported)return n.blob}$().error(`${F} - Export plugin with type ${e} not found`)}getAnimationStatus(){return!this._paused&&!this.pageHidden&&z(this)}handleClickMode(e){if(z(this)){this.particles.handleClickMode(e);for(let[,t]of this.plugins)t.handleClickMode&&t.handleClickMode(e)}}async init(){if(!z(this))return;let e=this._engine.plugins.getSupportedShapes();for(let i of e){let n=this._engine.plugins.getShapeDrawer(i);n&&this.drawers.set(i,n)}this._options=re(this._engine,this,this._initialSourceOptions,this.sourceOptions),this.actualOptions=re(this._engine,this,this._options);let t=this._engine.plugins.getAvailablePlugins(this);for(let[i,n]of t)this.plugins.set(i,n);this.retina.init(),await this.canvas.init(),this.updateActualOptions(),this.canvas.initBackground(),this.canvas.resize(),this.zLayers=this.actualOptions.zLayers,this._duration=m(this.actualOptions.duration)*1e3,this._delay=m(this.actualOptions.delay)*1e3,this._lifeTime=0,this.fpsLimit=this.actualOptions.fpsLimit>0?this.actualOptions.fpsLimit:120,this.smooth=this.actualOptions.smooth;for(let[,i]of this.drawers)i.init&&await i.init(this);for(let[,i]of this.plugins)i.init&&await i.init();this._engine.dispatchEvent("containerInit",{container:this}),this.particles.init(),this.particles.setDensity();for(let[,i]of this.plugins)i.particlesSetup&&i.particlesSetup();this._engine.dispatchEvent("particlesSetup",{container:this})}async loadTheme(e){z(this)&&(this._currentTheme=e,await this.refresh())}pause(){if(z(this)&&(this._drawAnimationFrame!==void 0&&(cancelAnimationFrame(this._drawAnimationFrame),delete this._drawAnimationFrame),!this._paused)){for(let[,e]of this.plugins)e.pause&&e.pause();this.pageHidden||(this._paused=!0),this._engine.dispatchEvent("containerPaused",{container:this})}}play(e){if(!z(this))return;let t=this._paused||e;if(this._firstStart&&!this.actualOptions.autoPlay){this._firstStart=!1;return}if(this._paused&&(this._paused=!1),t)for(let[,i]of this.plugins)i.play&&i.play();this._engine.dispatchEvent("containerPlay",{container:this}),this.draw(t||!1)}async refresh(){if(z(this))return this.stop(),this.start()}async reset(){if(z(this))return this._initialSourceOptions=void 0,this._options=re(this._engine,this),this.actualOptions=re(this._engine,this,this._options),this.refresh()}setNoise(e,t,i){z(this)&&this.setPath(e,t,i)}setPath(e,t,i){if(!e||!z(this))return;let n={...Hi};if(be(e))n.generate=e,t&&(n.init=t),i&&(n.update=i);else{let o=n;n.generate=e.generate||o.generate,n.init=e.init||o.init,n.update=e.update||o.update}this.addPath(Ms,n,!0)}async start(){!z(this)||this.started||(await this.init(),this.started=!0,await new Promise(e=>{this._delayTimeout=setTimeout(async()=>{this._eventListeners.addListeners(),this.interactivity.element instanceof HTMLElement&&this._intersectionObserver&&this._intersectionObserver.observe(this.interactivity.element);for(let[,t]of this.plugins)t.start&&await t.start();this._engine.dispatchEvent("containerStarted",{container:this}),this.play(),e()},this._delay)}))}stop(){if(!(!z(this)||!this.started)){this._delayTimeout&&(clearTimeout(this._delayTimeout),delete this._delayTimeout),this._firstStart=!0,this.started=!1,this._eventListeners.removeListeners(),this.pause(),this.particles.clear(),this.canvas.stop(),this.interactivity.element instanceof HTMLElement&&this._intersectionObserver&&this._intersectionObserver.unobserve(this.interactivity.element);for(let[,e]of this.plugins)e.stop&&e.stop();for(let e of this.plugins.keys())this.plugins.delete(e);this._sourceOptions=this._options,this._engine.dispatchEvent("containerStopped",{container:this})}}updateActualOptions(){this.actualOptions.responsive=[];let e=this.actualOptions.setResponsive(this.canvas.size.width,this.retina.pixelRatio,this._options);return this.actualOptions.setTheme(this._currentTheme),this.responsiveMaxWidth===e?!1:(this.responsiveMaxWidth=e,!0)}};var wt=class{constructor(){this._listeners=new Map}addEventListener(e,t){this.removeEventListener(e,t);let i=this._listeners.get(e);i||(i=[],this._listeners.set(e,i)),i.push(t)}dispatchEvent(e,t){let i=this._listeners.get(e);i&&i.forEach(n=>n(t))}hasEventListener(e){return!!this._listeners.get(e)}removeAllEventListeners(e){e?this._listeners.delete(e):this._listeners=new Map}removeEventListener(e,t){let i=this._listeners.get(e);if(!i)return;let n=i.length,o=i.indexOf(t);o<0||(n===1?this._listeners.delete(e):i.splice(o,1))}};function ai(s,e,t,i=!1){let n=e.get(s);return(!n||i)&&(n=[...t.values()].map(o=>o(s)),e.set(s,n)),n}var _t=class{constructor(e){this._engine=e,this.plugins=[],this._initializers={interactors:new Map,movers:new Map,updaters:new Map},this.interactors=new Map,this.movers=new Map,this.updaters=new Map,this.presets=new Map,this.drawers=new Map,this.pathGenerators=new Map}addInteractor(e,t){this._initializers.interactors.set(e,t)}addParticleMover(e,t){this._initializers.movers.set(e,t)}addParticleUpdater(e,t){this._initializers.updaters.set(e,t)}addPathGenerator(e,t){!this.getPathGenerator(e)&&this.pathGenerators.set(e,t)}addPlugin(e){!this.getPlugin(e.id)&&this.plugins.push(e)}addPreset(e,t,i=!1){(i||!this.getPreset(e))&&this.presets.set(e,t)}addShapeDrawer(e,t){I(e,i=>{!this.getShapeDrawer(i)&&this.drawers.set(i,t)})}destroy(e){this.updaters.delete(e),this.movers.delete(e),this.interactors.delete(e)}getAvailablePlugins(e){let t=new Map;for(let i of this.plugins)i.needsPlugin(e.actualOptions)&&t.set(i.id,i.getPlugin(e));return t}getInteractors(e,t=!1){return ai(e,this.interactors,this._initializers.interactors,t)}getMovers(e,t=!1){return ai(e,this.movers,this._initializers.movers,t)}getPathGenerator(e){return this.pathGenerators.get(e)}getPlugin(e){return this.plugins.find(t=>t.id===e)}getPreset(e){return this.presets.get(e)}getShapeDrawer(e){return this.drawers.get(e)}getSupportedShapes(){return this.drawers.keys()}getUpdaters(e,t=!1){return ai(e,this.updaters,this._initializers.updaters,t)}loadOptions(e,t){for(let i of this.plugins)i.loadOptions(e,t)}loadParticlesOptions(e,t,...i){let n=this.updaters.get(e);if(n)for(let o of n)o.loadOptions&&o.loadOptions(t,...i)}};async function Ps(s){let e=Y(s.url,s.index);if(!e)return s.fallback;let t=await fetch(e);return t.ok?t.json():($().error(`${F} ${t.status} while retrieving config file`),s.fallback)}function Cs(s){return!s.id&&!s.element&&!s.url&&!s.options}function Rs(s){return!Cs(s)}var kt=class{constructor(){this._configs=new Map,this._domArray=[],this._eventDispatcher=new wt,this._initialized=!1,this.plugins=new _t(this)}get configs(){let e={};for(let[t,i]of this._configs)e[t]=i;return e}get version(){return"2.11.0"}addConfig(e,t){R(e)?t&&(t.name=e,this._configs.set(e,t)):this._configs.set(e.name??"default",e)}addEventListener(e,t){this._eventDispatcher.addEventListener(e,t)}async addInteractor(e,t,i=!0){this.plugins.addInteractor(e,t),await this.refresh(i)}async addMover(e,t,i=!0){this.plugins.addParticleMover(e,t),await this.refresh(i)}async addParticleUpdater(e,t,i=!0){this.plugins.addParticleUpdater(e,t),await this.refresh(i)}async addPathGenerator(e,t,i=!0){this.plugins.addPathGenerator(e,t),await this.refresh(i)}async addPlugin(e,t=!0){this.plugins.addPlugin(e),await this.refresh(t)}async addPreset(e,t,i=!1,n=!0){this.plugins.addPreset(e,t,i),await this.refresh(n)}async addShape(e,t,i,n,o,r=!0){let a,l=r,c,h,f;E(i)?(l=i,c=void 0):c=i,E(n)?(l=n,h=void 0):h=n,E(o)?(l=o,f=void 0):f=o,be(t)?a={afterEffect:h,destroy:f,draw:t,init:c}:a=t,this.plugins.addShapeDrawer(e,a),await this.refresh(l)}dispatchEvent(e,t){this._eventDispatcher.dispatchEvent(e,t)}dom(){return this._domArray}domItem(e){let t=this.dom(),i=t[e];if(!i||i.destroyed){t.splice(e,1);return}return i}init(){this._initialized||(this._initialized=!0)}async load(e,t){return this.loadFromArray(e,t)}async loadFromArray(e,t,i){let n;return Rs(e)?n=e:(n={},R(e)?n.id=e:n.options=e,S(t)?n.index=t:n.options=t??n.options,n.index=i??n.index),this._loadParams(n)}async loadJSON(e,t,i){let n,o;return S(t)||t===void 0?n=e:(o=e,n=t),this._loadParams({id:o,url:n,index:i})}async refresh(e=!0){e&&this.dom().forEach(t=>t.refresh())}removeEventListener(e,t){this._eventDispatcher.removeEventListener(e,t)}async set(e,t,i,n){let o={index:n};return R(e)?o.id=e:o.element=e,t instanceof HTMLElement?o.element=t:o.options=t,S(i)?o.index=i:o.options=i??o.options,this._loadParams(o)}async setJSON(e,t,i,n){let o={};return e instanceof HTMLElement?(o.element=e,o.url=t,o.index=i):(o.id=e,o.element=t,o.url=i,o.index=n),this._loadParams(o)}setOnClickHandler(e){let t=this.dom();if(!t.length)throw new Error(`${F} can only set click handlers after calling tsParticles.load()`);for(let i of t)i.addClickHandler(e)}async _loadParams(e){let t=e.id??`tsparticles${Math.floor(b()*1e4)}`,{index:i,url:n}=e,o=n?await Ps({fallback:e.options,url:n,index:i}):e.options,r=e.element??document.getElementById(t);r||(r=document.createElement("div"),r.id=t,document.body.append(r));let a=Y(o,i),l=this.dom(),c=l.findIndex(u=>u.id===t);if(c>=0){let u=this.domItem(c);u&&!u.destroyed&&(u.destroy(),l.splice(c,1))}let h;if(r.tagName.toLowerCase()==="canvas")h=r,h.dataset[N]="false";else{let u=r.getElementsByTagName("canvas");u.length?(h=u[0],h.dataset[N]="false"):(h=document.createElement("canvas"),h.dataset[N]="true",r.appendChild(h))}h.style.width||(h.style.width="100%"),h.style.height||(h.style.height="100%");let f=new bt(this,t,a);return c>=0?l.splice(c,0,f):l.push(f),f.canvas.loadCanvas(h),await f.start(),f}};var zt=class{constructor(){this.key="hsl",this.stringPrefix="hsl"}handleColor(e){let t=e.value,i=t.hsl??e.value;if(i.h!==void 0&&i.s!==void 0&&i.l!==void 0)return Z(i)}handleRangeColor(e){let t=e.value,i=t.hsl??e.value;if(i.h!==void 0&&i.l!==void 0)return Z({h:m(i.h),l:m(i.l),s:m(i.s)})}parseString(e){if(!e.startsWith("hsl"))return;let t=/hsla?\(\s*(\d+)\s*,\s*(\d+)%\s*,\s*(\d+)%\s*(,\s*([\d.%]+)\s*)?\)/i,i=t.exec(e);return i?Pi({a:i.length>4?me(i[5]):1,h:parseInt(i[1],10),l:parseInt(i[3],10),s:parseInt(i[2],10)}):void 0}};var Mt=class{constructor(){this.key="rgb",this.stringPrefix="rgb"}handleColor(e){let t=e.value,i=t.rgb??e.value;if(i.r!==void 0)return i}handleRangeColor(e){let t=e.value,i=t.rgb??e.value;if(i.r!==void 0)return{r:m(i.r),g:m(i.g),b:m(i.b)}}parseString(e){if(!e.startsWith(this.stringPrefix))return;let t=/rgba?\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*(,\s*([\d.%]+)\s*)?\)/i,i=t.exec(e);return i?{a:i.length>4?me(i[5]):1,b:parseInt(i[3],10),g:parseInt(i[2],10),r:parseInt(i[1],10)}:void 0}};function Bi(){let s=new Mt,e=new zt;Zt(s),Zt(e);let t=new kt;return t.init(),t}var Pt=class{constructor(e){this.container=e,this.type="particles"}};var Ct=Bi();J()||(window.tsParticles=Ct);function Ui(s){let e=s.initialPosition,{dx:t,dy:i}=C(e,s.position),n=Math.abs(t),o=Math.abs(i),{maxDistance:r}=s.retina,a=r.horizontal,l=r.vertical;if(!(!a&&!l)){if((a&&n>=a||l&&o>=l)&&!s.misplaced)s.misplaced=!!a&&n>a||!!l&&o>l,a&&(s.velocity.x=s.velocity.y/2-s.velocity.x),l&&(s.velocity.y=s.velocity.x/2-s.velocity.y);else if((!a||ne.x&&h.x>0)&&(h.x*=-b()),l&&(c.ye.y&&h.y>0)&&(h.y*=-b())}}}function Wi(s,e,t,i,n,o){Ss(s,o);let r=s.gravity,a=r?.enable&&r.inverse?-1:1;n&&t&&(s.velocity.x+=n*o.factor/(60*t)),r?.enable&&t&&(s.velocity.y+=a*(r.acceleration*o.factor)/(60*t));let l=s.moveDecay;s.velocity.multTo(l);let c=s.velocity.mult(t);r?.enable&&i>0&&(!r.inverse&&c.y>=0&&c.y>=i||r.inverse&&c.y<=0&&c.y<=-i)&&(c.y=a*i,t&&(s.velocity.y=c.y/t));let h=s.options.zIndex,f=(1-s.zIndexFactor)**h.velocityRate;c.multTo(f);let{position:u}=s;u.addTo(c),e.vibrate&&(u.x+=Math.sin(u.x*Math.cos(u.y)),u.y+=Math.cos(u.y*Math.sin(u.x)))}function $i(s,e){let t=s.container;if(!s.spin)return;let i={x:s.spin.direction==="clockwise"?Math.cos:Math.sin,y:s.spin.direction==="clockwise"?Math.sin:Math.cos};s.position.x=s.spin.center.x+s.spin.radius*i.x(s.spin.angle),s.position.y=s.spin.center.y+s.spin.radius*i.y(s.spin.angle),s.spin.radius+=s.spin.acceleration;let n=Math.max(t.canvas.size.width,t.canvas.size.height);s.spin.radius>n/2?(s.spin.radius=n/2,s.spin.acceleration*=-1):s.spin.radius<0&&(s.spin.radius=0,s.spin.acceleration*=-1),s.spin.angle+=e/100*(1-s.spin.radius/n)}function Ss(s,e){let t=s.options,i=t.move.path;if(!i.enable)return;if(s.lastPathTime<=s.pathDelay){s.lastPathTime+=e.value;return}let o=s.pathGenerator?.generate(s,e);o&&s.velocity.addTo(o),i.clamp&&(s.velocity.x=U(s.velocity.x,-1,1),s.velocity.y=U(s.velocity.y,-1,1)),s.lastPathTime-=s.pathDelay}function Gi(s){return s.slow.inRange?s.slow.factor:1}var Os=2,Rt=class{constructor(){this._initSpin=e=>{let t=e.container,i=e.options,n=i.move.spin;if(!n.enable)return;let o=n.position??{x:50,y:50},r={x:o.x/100*t.canvas.size.width,y:o.y/100*t.canvas.size.height},a=e.getPosition(),l=D(a,r),c=m(n.acceleration);e.retina.spinAcceleration=c*t.retina.pixelRatio,e.spin={center:r,direction:e.velocity.x>=0?"clockwise":"counter-clockwise",angle:e.velocity.angle,radius:l,acceleration:e.retina.spinAcceleration}}}init(e){let t=e.options,i=t.move.gravity;e.gravity={enable:i.enable,acceleration:m(i.acceleration),inverse:i.inverse},this._initSpin(e)}isEnabled(e){return!e.destroyed&&e.options.move.enable}move(e,t){let i=e.options,n=i.move;if(!n.enable)return;let o=e.container,r=o.retina.pixelRatio,a=Gi(e),l=(e.retina.moveSpeed??=m(n.speed)*r)*o.retina.reduceFactor,c=e.retina.moveDrift??=m(e.options.move.drift)*r,h=j(i.size.value)*r,f=n.size?e.getRadius()/h:1,u=l*f*a*(t.factor||1)/Os,d=e.retina.maxSpeed??o.retina.maxSpeed;n.spin.enable?$i(e,u):Wi(e,n,u,d,c,t),Ui(e)}};async function Ni(s,e=!0){await s.addMover("base",()=>new Rt,e)}var St=class{draw(e,t,i){t.circleRange||(t.circleRange={min:0,max:Math.PI*2});let n=t.circleRange;e.arc(0,0,i,n.min,n.max,!1)}getSidesCount(){return 12}particleInit(e,t){let i=t.shapeData,n=i?.angle??{max:360,min:0};t.circleRange=G(n)?{min:n.min*Math.PI/180,max:n.max*Math.PI/180}:{min:0,max:n*Math.PI/180}}};async function Xi(s,e=!0){await s.addShape("circle",new St,e)}function li(s,e,t,i,n){if(!e||!t.enable||(e.maxLoops??0)>0&&(e.loops??0)>(e.maxLoops??0)||(e.time||(e.time=0),(e.delayTime??0)>0&&e.time<(e.delayTime??0)&&(e.time+=s.value),(e.delayTime??0)>0&&e.time<(e.delayTime??0)))return;let o=P(t.offset),r=(e.velocity??0)*s.factor+o*3.6,a=e.decay??1;!n||e.status==="increasing"?(e.value+=r,e.value>i&&(e.loops||(e.loops=0),e.loops++,n&&(e.status="decreasing",e.value-=e.value%i))):(e.value-=r,e.value<0&&(e.loops||(e.loops=0),e.loops++,e.status="increasing",e.value+=e.value)),e.velocity&&a!==1&&(e.velocity*=a),e.value>i&&(e.value%=i)}function Yi(s,e){let{h:t,s:i,l:n}=s.options.color.animation,{color:o}=s;if(!o)return;let{h:r,s:a,l}=o;r&&li(e,r,t,360,!1),a&&li(e,a,i,100,!0),l&&li(e,l,n,100,!0)}var Ot=class{constructor(e){this.container=e}init(e){let t=le(e.options.color,e.id,e.options.reduceDuplicates);t&&(e.color=Si(t,e.options.color.animation,this.container.retina.reduceFactor))}isEnabled(e){let{h:t,s:i,l:n}=e.options.color.animation,{color:o}=e;return!e.destroyed&&!e.spawning&&(o?.h.value!==void 0&&t.enable||o?.s.value!==void 0&&i.enable||o?.l.value!==void 0&&n.enable)}update(e,t){Yi(e,t)}};async function Zi(s,e=!0){await s.addParticleUpdater("color",t=>new Ot(t),e)}function Ts(s,e,t,i){switch(s.options.opacity.animation.destroy){case"max":e>=i&&s.destroy();break;case"min":e<=t&&s.destroy();break}}function Qi(s,e){let t=s.opacity;if(s.destroyed||!t?.enable||(t.maxLoops??0)>0&&(t.loops??0)>(t.maxLoops??0))return;let i=t.min,n=t.max,o=t.decay??1;if(t.time||(t.time=0),(t.delayTime??0)>0&&t.time<(t.delayTime??0)&&(t.time+=e.value),!((t.delayTime??0)>0&&t.time<(t.delayTime??0))){switch(t.status){case"increasing":t.value>=n?(t.status="decreasing",t.loops||(t.loops=0),t.loops++):t.value+=(t.velocity??0)*e.factor;break;case"decreasing":t.value<=i?(t.status="increasing",t.loops||(t.loops=0),t.loops++):t.value-=(t.velocity??0)*e.factor;break}t.velocity&&t.decay!==1&&(t.velocity*=o),Ts(s,t.value,i,n),s.destroyed||(t.value=U(t.value,i,n))}}var Tt=class{constructor(e){this.container=e}init(e){let t=e.options.opacity;e.opacity=ve(t,1);let i=t.animation;i.enable&&(e.opacity.velocity=m(i.speed)/100*this.container.retina.reduceFactor,i.sync||(e.opacity.velocity*=b()))}isEnabled(e){return!e.destroyed&&!e.spawning&&!!e.opacity&&e.opacity.enable&&((e.opacity.maxLoops??0)<=0||(e.opacity.maxLoops??0)>0&&(e.opacity.loops??0)<(e.opacity.maxLoops??0))}reset(e){e.opacity&&(e.opacity.time=0,e.opacity.loops=0)}update(e,t){this.isEnabled(e)&&Qi(e,t)}};async function ji(s,e=!0){await s.addParticleUpdater("opacity",t=>new Tt(t),e)}function Ki(s){if(s.outMode!=="bounce"&&s.outMode!=="bounce-horizontal"&&s.outMode!=="bounceHorizontal"&&s.outMode!=="split")return;s.bounds.right<0?s.particle.position.x=s.size+s.offset.x:s.bounds.left>s.canvasSize.width&&(s.particle.position.x=s.canvasSize.width-s.size-s.offset.x);let e=s.particle.velocity.x,t=!1;if(s.direction==="right"&&s.bounds.right>=s.canvasSize.width&&e>0||s.direction==="left"&&s.bounds.left<=0&&e<0){let n=K(s.particle.options.bounce.horizontal);s.particle.velocity.x*=-n,t=!0}if(!t)return;let i=s.offset.x+s.size;s.bounds.right>=s.canvasSize.width?s.particle.position.x=s.canvasSize.width-i:s.bounds.left<=0&&(s.particle.position.x=i),s.outMode==="split"&&s.particle.destroy()}function Ji(s){if(s.outMode!=="bounce"&&s.outMode!=="bounce-vertical"&&s.outMode!=="bounceVertical"&&s.outMode!=="split")return;s.bounds.bottom<0?s.particle.position.y=s.size+s.offset.y:s.bounds.top>s.canvasSize.height&&(s.particle.position.y=s.canvasSize.height-s.size-s.offset.y);let e=s.particle.velocity.y,t=!1;if(s.direction==="bottom"&&s.bounds.bottom>=s.canvasSize.height&&e>0||s.direction==="top"&&s.bounds.top<=0&&e<0){let n=K(s.particle.options.bounce.vertical);s.particle.velocity.y*=-n,t=!0}if(!t)return;let i=s.offset.y+s.size;s.bounds.bottom>=s.canvasSize.height?s.particle.position.y=s.canvasSize.height-i:s.bounds.top<=0&&(s.particle.position.y=i),s.outMode==="split"&&s.particle.destroy()}var Dt=class{constructor(e){this.container=e,this.modes=["bounce","bounce-vertical","bounce-horizontal","bounceVertical","bounceHorizontal","split"]}update(e,t,i,n){if(!this.modes.includes(n))return;let o=this.container,r=!1;for(let[,u]of o.plugins)if(u.particleBounce!==void 0&&(r=u.particleBounce(e,i,t)),r)break;if(r)return;let a=e.getPosition(),l=e.offset,c=e.getRadius(),h=ae(a,c),f=o.canvas.size;Ki({particle:e,outMode:n,direction:t,bounds:h,canvasSize:f,offset:l,size:c}),Ji({particle:e,outMode:n,direction:t,bounds:h,canvasSize:f,offset:l,size:c})}};var Et=class{constructor(e){this.container=e,this.modes=["destroy"]}update(e,t,i,n){if(!this.modes.includes(n))return;let o=this.container;switch(e.outType){case"normal":case"outside":if(ee(e.position,o.canvas.size,T.origin,e.getRadius(),t))return;break;case"inside":{let{dx:r,dy:a}=C(e.position,e.moveCenter),{x:l,y:c}=e.velocity;if(l<0&&r>e.moveCenter.radius||c<0&&a>e.moveCenter.radius||l>=0&&r<-e.moveCenter.radius||c>=0&&a<-e.moveCenter.radius)return;break}}o.particles.remove(e,void 0,!0)}};var Lt=class{constructor(e){this.container=e,this.modes=["none"]}update(e,t,i,n){if(!this.modes.includes(n)||e.options.move.distance.horizontal&&(t==="left"||t==="right")||e.options.move.distance.vertical&&(t==="top"||t==="bottom"))return;let o=e.options.move.gravity,r=this.container,a=r.canvas.size,l=e.getRadius();if(o.enable){let c=e.position;(!o.inverse&&c.y>a.height+l&&t==="bottom"||o.inverse&&c.y<-l&&t==="top")&&r.particles.remove(e)}else{if(e.velocity.y>0&&e.position.y<=a.height+l||e.velocity.y<0&&e.position.y>=-l||e.velocity.x>0&&e.position.x<=a.width+l||e.velocity.x<0&&e.position.x>=-l)return;ee(e.position,r.canvas.size,T.origin,l,t)||r.particles.remove(e)}}};var It=class{constructor(e){this.container=e,this.modes=["out"]}update(e,t,i,n){if(!this.modes.includes(n))return;let o=this.container;switch(e.outType){case"inside":{let{x:r,y:a}=e.velocity,l=T.origin;l.length=e.moveCenter.radius,l.angle=e.velocity.angle+Math.PI,l.addTo(T.create(e.moveCenter));let{dx:c,dy:h}=C(e.position,l);if(r<=0&&c>=0||a<=0&&h>=0||r>=0&&c<=0||a>=0&&h<=0)return;e.position.x=Math.floor(P({min:0,max:o.canvas.size.width})),e.position.y=Math.floor(P({min:0,max:o.canvas.size.height}));let{dx:f,dy:u}=C(e.position,e.moveCenter);e.direction=Math.atan2(-u,-f),e.velocity.angle=e.direction;break}default:{if(ee(e.position,o.canvas.size,T.origin,e.getRadius(),t))return;switch(e.outType){case"outside":{e.position.x=Math.floor(P({min:-e.moveCenter.radius,max:e.moveCenter.radius}))+e.moveCenter.x,e.position.y=Math.floor(P({min:-e.moveCenter.radius,max:e.moveCenter.radius}))+e.moveCenter.y;let{dx:r,dy:a}=C(e.position,e.moveCenter);e.moveCenter.radius&&(e.direction=Math.atan2(a,r),e.velocity.angle=e.direction);break}case"normal":{let r=e.options.move.warp,a=o.canvas.size,l={bottom:a.height+e.getRadius()+e.offset.y,left:-e.getRadius()-e.offset.x,right:a.width+e.getRadius()+e.offset.x,top:-e.getRadius()-e.offset.y},c=e.getRadius(),h=ae(e.position,c);t==="right"&&h.left>a.width+e.offset.x?(e.position.x=l.left,e.initialPosition.x=e.position.x,r||(e.position.y=b()*a.height,e.initialPosition.y=e.position.y)):t==="left"&&h.right<-e.offset.x&&(e.position.x=l.right,e.initialPosition.x=e.position.x,r||(e.position.y=b()*a.height,e.initialPosition.y=e.position.y)),t==="bottom"&&h.top>a.height+e.offset.y?(r||(e.position.x=b()*a.width,e.initialPosition.x=e.position.x),e.position.y=l.top,e.initialPosition.y=e.position.y):t==="top"&&h.bottom<-e.offset.y&&(r||(e.position.x=b()*a.width,e.initialPosition.x=e.position.x),e.position.y=l.bottom,e.initialPosition.y=e.position.y);break}}break}}}};var Ft=class{constructor(e){this.container=e,this._updateOutMode=(t,i,n,o)=>{for(let r of this.updaters)r.update(t,o,i,n)},this.updaters=[new Dt(e),new Et(e),new It(e),new Lt(e)]}init(){}isEnabled(e){return!e.destroyed&&!e.spawning}update(e,t){let i=e.options.move.outModes;this._updateOutMode(e,t,i.bottom??i.default,"bottom"),this._updateOutMode(e,t,i.left??i.default,"left"),this._updateOutMode(e,t,i.right??i.default,"right"),this._updateOutMode(e,t,i.top??i.default,"top")}};async function es(s,e=!0){await s.addParticleUpdater("outModes",t=>new Ft(t),e)}var At=class extends B{constructor(e,t,i,n){super(e,t,i),this.canvasSize=n,this.canvasSize={...n}}contains(e){let{width:t,height:i}=this.canvasSize,{x:n,y:o}=e;return super.contains(e)||super.contains({x:n-t,y:o})||super.contains({x:n-t,y:o-i})||super.contains({x:n,y:o-i})}intersects(e){if(super.intersects(e))return!0;let t=e,i=e,n={x:e.position.x-this.canvasSize.width,y:e.position.y-this.canvasSize.height};if(i.radius!==void 0){let o=new B(n.x,n.y,i.radius*2);return super.intersects(o)}else if(t.size!==void 0){let o=new H(n.x,n.y,t.size.width*2,t.size.height*2);return super.intersects(o)}return!1}};var Vt=class{constructor(){this.blur=5,this.color=new k,this.color.value="#000",this.enable=!1}load(e){e&&(e.blur!==void 0&&(this.blur=e.blur),this.color=k.create(this.color,e.color),e.enable!==void 0&&(this.enable=e.enable))}};var qt=class{constructor(){this.enable=!1,this.frequency=1}load(e){e&&(e.color!==void 0&&(this.color=k.create(this.color,e.color)),e.enable!==void 0&&(this.enable=e.enable),e.frequency!==void 0&&(this.frequency=e.frequency),e.opacity!==void 0&&(this.opacity=e.opacity))}};var Ht=class{constructor(){this.blink=!1,this.color=new k,this.color.value="#fff",this.consent=!1,this.distance=100,this.enable=!1,this.frequency=1,this.opacity=1,this.shadow=new Vt,this.triangles=new qt,this.width=1,this.warp=!1}load(e){e&&(e.id!==void 0&&(this.id=e.id),e.blink!==void 0&&(this.blink=e.blink),this.color=k.create(this.color,e.color),e.consent!==void 0&&(this.consent=e.consent),e.distance!==void 0&&(this.distance=e.distance),e.enable!==void 0&&(this.enable=e.enable),e.frequency!==void 0&&(this.frequency=e.frequency),e.opacity!==void 0&&(this.opacity=e.opacity),this.shadow.load(e.shadow),this.triangles.load(e.triangles),e.width!==void 0&&(this.width=e.width),e.warp!==void 0&&(this.warp=e.warp))}};function Ds(s,e,t,i,n){let{dx:o,dy:r,distance:a}=C(s,e);if(!n||a<=t)return a;let l={x:Math.abs(o),y:Math.abs(r)},c={x:Math.min(l.x,i.width-l.x),y:Math.min(l.y,i.height-l.y)};return Math.sqrt(c.x**2+c.y**2)}var Bt=class extends Pt{constructor(e){super(e),this._setColor=t=>{if(!t.options.links)return;let i=this.linkContainer,n=t.options.links,o=n.id===void 0?i.particles.linksColor:i.particles.linksColors.get(n.id);if(o)return;let r=n.color;o=Ri(r,n.blink,n.consent),n.id===void 0?i.particles.linksColor=o:i.particles.linksColors.set(n.id,o)},this.linkContainer=e}clear(){}init(){this.linkContainer.particles.linksColor=void 0,this.linkContainer.particles.linksColors=new Map}async interact(e){if(!e.options.links)return;e.links=[];let t=e.getPosition(),i=this.container,n=i.canvas.size;if(t.x<0||t.y<0||t.x>n.width||t.y>n.height)return;let o=e.options.links,r=o.opacity,a=e.retina.linksDistance??0,l=o.warp,c=l?new At(t.x,t.y,a,n):new B(t.x,t.y,a),h=i.particles.quadTree.query(c);for(let f of h){let u=f.options.links;if(e===f||!u?.enable||o.id!==u.id||f.spawning||f.destroyed||!f.links||e.links.some(x=>x.destination===f)||f.links.some(x=>x.destination===e))continue;let d=f.getPosition();if(d.x<0||d.y<0||d.x>n.width||d.y>n.height)continue;let y=Ds(t,d,a,n,l&&u.warp);if(y>a)continue;let g=(1-y/a)*r;this._setColor(e),e.links.push({destination:f,opacity:g})}}isEnabled(e){return!!e.options.links?.enable}loadParticlesOptions(e,...t){e.links||(e.links=new Ht);for(let i of t)e.links.load(i?.links??i?.lineLinked??i?.line_linked)}reset(){}};async function ts(s,e=!0){await s.addInteractor("particlesLinks",t=>new Bt(t),e)}function is(s){let e=!1,{begin:t,end:i,maxDistance:n,context:o,canvasSize:r,width:a,backgroundMask:l,colorLine:c,opacity:h,links:f}=s;if(D(t,i)<=n)ze(o,t,i),e=!0;else if(f.warp){let d,y,g={x:i.x-r.width,y:i.y},x=C(t,g);if(x.distance<=n){let v=t.y-x.dy/x.dx*t.x;d={x:0,y:v},y={x:r.width,y:v}}else{let v={x:i.x,y:i.y-r.height},_=C(t,v);if(_.distance<=n){let q=-(t.y-_.dy/_.dx*t.x)/(_.dy/_.dx);d={x:q,y:0},y={x:q,y:r.height}}else{let M={x:i.x-r.width,y:i.y-r.height},q=C(t,M);if(q.distance<=n){let ui=t.y-q.dy/q.dx*t.x;d={x:-ui/(q.dy/q.dx),y:ui},y={x:d.x+r.width,y:d.y+r.height}}}}d&&y&&(ze(o,t,d),ze(o,i,y),e=!0)}if(!e)return;o.lineWidth=a,l.enable&&(o.globalCompositeOperation=l.composite),o.strokeStyle=W(c,h);let{shadow:u}=f;if(u.enable){let d=O(u.color);d&&(o.shadowBlur=u.blur,o.shadowColor=W(d))}o.stroke()}function ss(s){let{context:e,pos1:t,pos2:i,pos3:n,backgroundMask:o,colorTriangle:r,opacityTriangle:a}=s;Oi(e,t,i,n),o.enable&&(e.globalCompositeOperation=o.composite),e.fillStyle=W(r,a),e.fill()}function Es(s){return s.sort((e,t)=>e-t),s.join("_")}function ci(s,e){let t=Es(s.map(n=>n.id)),i=e.get(t);return i===void 0&&(i=b(),e.set(t,i)),i}var Ut=class{constructor(e){this.container=e,this._drawLinkLine=(t,i)=>{let n=this.container,o=n.actualOptions,r=i.destination,a=t.getPosition(),l=r.getPosition(),c=i.opacity;n.canvas.draw(h=>{if(!t.options.links)return;let f,u=t.options.twinkle?.lines;if(u?.enable){let v=u.frequency,_=O(u.color);b(){if(!t.options.links)return;let o=this.container,r=o.actualOptions,a=i.destination,l=n.destination,c=t.options.links.triangles,h=c.opacity??(i.opacity+n.opacity)/2;h<=0||o.canvas.draw(f=>{let u=t.getPosition(),d=a.getPosition(),y=l.getPosition(),g=t.retina.linksDistance??0;if(D(u,d)>g||D(y,d)>g||D(y,u)>g)return;let x=O(c.color);if(!x){let v=t.options.links,_=v?.id!==void 0?o.particles.linksColors.get(v.id):o.particles.linksColor;x=jt(t,a,_)}x&&ss({context:f,pos1:u,pos2:d,pos3:y,backgroundMask:r.backgroundMask,colorTriangle:x,opacityTriangle:h})})},this._drawTriangles=(t,i,n,o)=>{let r=n.destination;if(!(t.links?.triangles.enable&&r.options.links?.triangles.enable))return;let a=r.links?.filter(l=>{let c=this._getLinkFrequency(r,l.destination);return r.options.links&&c<=r.options.links.frequency&&o.findIndex(h=>h.destination===l.destination)>=0});if(a?.length)for(let l of a){let c=l.destination;this._getTriangleFrequency(i,r,c)>t.links.triangles.frequency||this._drawLinkTriangle(i,n,l)}},this._getLinkFrequency=(t,i)=>ci([t,i],this._freqs.links),this._getTriangleFrequency=(t,i,n)=>ci([t,i,n],this._freqs.triangles),this._freqs={links:new Map,triangles:new Map}}drawParticle(e,t){let{links:i,options:n}=t;if(!i||i.length<=0)return;let o=i.filter(r=>n.links&&this._getLinkFrequency(t,r.destination)<=n.links.frequency);for(let r of o)this._drawTriangles(n,t,r,o),r.opacity>0&&(t.retina.linksWidth??0)>0&&this._drawLinkLine(t,r)}async init(){this._freqs.links=new Map,this._freqs.triangles=new Map}particleCreated(e){if(e.links=[],!e.options.links)return;let t=this.container.retina.pixelRatio,{retina:i}=e,{distance:n,width:o}=e.options.links;i.linksDistance=n*t,i.linksWidth=o*t}particleDestroyed(e){e.links=[]}};var hi=class{constructor(){this.id="links"}getPlugin(e){return new Ut(e)}loadOptions(){}needsPlugin(){return!0}};async function ns(s,e=!0){let t=new hi;await s.addPlugin(t,e)}async function os(s,e=!0){await ts(s,e),await ns(s,e)}function Ls(s,e,t,i){switch(s.options.size.animation.destroy){case"max":e>=i&&s.destroy();break;case"min":e<=t&&s.destroy();break}}function rs(s,e){let t=s.size;if(s.destroyed||!t||!t.enable||(t.maxLoops??0)>0&&(t.loops??0)>(t.maxLoops??0))return;let i=(t.velocity??0)*e.factor,n=t.min,o=t.max,r=t.decay??1;if(t.time||(t.time=0),(t.delayTime??0)>0&&t.time<(t.delayTime??0)&&(t.time+=e.value),!((t.delayTime??0)>0&&t.time<(t.delayTime??0))){switch(t.status){case"increasing":t.value>=o?(t.status="decreasing",t.loops||(t.loops=0),t.loops++):t.value+=i;break;case"decreasing":t.value<=n?(t.status="increasing",t.loops||(t.loops=0),t.loops++):t.value-=i}t.velocity&&r!==1&&(t.velocity*=r),Ls(s,t.value,n,o),s.destroyed||(t.value=U(t.value,n,o))}}var Wt=class{init(e){let t=e.container,i=e.options.size,n=i.animation;n.enable&&(e.size.velocity=(e.retina.sizeAnimationSpeed??t.retina.sizeAnimationSpeed)/100*t.retina.reduceFactor,n.sync||(e.size.velocity*=b()))}isEnabled(e){return!e.destroyed&&!e.spawning&&e.size.enable&&((e.size.maxLoops??0)<=0||(e.size.maxLoops??0)>0&&(e.size.loops??0)<(e.size.maxLoops??0))}reset(e){e.size.loops=0}update(e,t){this.isEnabled(e)&&rs(e,t)}};async function as(s,e=!0){await s.addParticleUpdater("size",()=>new Wt,e)}var ls={background:{color:"#000000"},particles:{number:{value:100},links:{distance:150,enable:!0},move:{enable:!0},size:{value:1},shape:{type:"circle"}}};async function cs(s,e=!0){await Ni(s,!1),await Xi(s,!1),await Zi(s,!1),await os(s,!1),await es(s,!1),await ji(s,!1),await as(s,!1),await s.addPreset("links",ls,e)}document.addEventListener("DOMContentLoaded",Is(),!1);window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change",()=>{hs()});async function Is(){await cs(Ct),await hs()}async function hs(){var s=getComputedStyle(document.body).getPropertyValue("--particles-color").trim();console.error(s),await Ct.load("site-canvas",{background:{color:"transparent"},particles:{number:{value:100,density:{enable:!0,value_area:2500}},color:{value:s},shape:{type:"circle",stroke:{width:0,color:s},polygon:{nb_sides:5}},opacity:{value:.5,random:!1},size:{value:3,random:!0,anim:{enable:!1,speed:40,size_min:.1,sync:!1}},line_linked:{enable:!0,distance:220,color:s,opacity:.4,width:1},move:{enable:!0,speed:.95,direction:"none",random:!1,straight:!1,out_mode:"out",bounce:!1,attract:{enable:!0,rotateX:600,rotateY:1200}}},preset:"links"}).catch(e=>{console.error(e)})}})(); diff --git a/sitemap.xls b/sitemap.xls index f636bfe8..f48d4174 100644 --- a/sitemap.xls +++ b/sitemap.xls @@ -11,77 +11,77 @@ 0.5 - https://mywarp.github.com/builds/139.html + https://mywarp.github.com/builds/90.html never 0.5 - https://mywarp.github.com/builds/60.html + https://mywarp.github.com/builds/32.html never 0.5 - https://mywarp.github.com/builds/1818.html + https://mywarp.github.com/builds/1807.html never 0.5 - https://mywarp.github.com/builds/88.html + https://mywarp.github.com/builds/239.html never 0.5 - https://mywarp.github.com/builds/86.html + https://mywarp.github.com/builds/1889.html never 0.5 - https://mywarp.github.com/builds/1921.html + https://mywarp.github.com/builds/1833.html never 0.5 - https://mywarp.github.com/builds/1821.html + https://mywarp.github.com/builds/250.html never 0.5 - https://mywarp.github.com/builds/1815.html + https://mywarp.github.com/builds/1910.html never 0.5 - https://mywarp.github.com/builds/1864.html + https://mywarp.github.com/builds/1859.html never 0.5 - https://mywarp.github.com/builds/250.html + https://mywarp.github.com/builds/1828.html never 0.5 - https://mywarp.github.com/builds/23.html + https://mywarp.github.com/builds/1885.html never 0.5 - https://mywarp.github.com/builds/145.html + https://mywarp.github.com/builds/1891.html never 0.5 - https://mywarp.github.com/builds/183.html + https://mywarp.github.com/builds/228.html never 0.5 - https://mywarp.github.com/builds/1854.html + https://mywarp.github.com/builds/8.html never 0.5 - https://mywarp.github.com/builds/1916.html + https://mywarp.github.com/builds/1749.html never 0.5 @@ -91,237 +91,237 @@ 0.5 - https://mywarp.github.com/builds/18.html + https://mywarp.github.com/builds/1804.html never 0.5 - https://mywarp.github.com/builds/1839.html + https://mywarp.github.com/builds/7.html never 0.5 - https://mywarp.github.com/builds/1870.html + https://mywarp.github.com/builds/257.html never 0.5 - https://mywarp.github.com/builds/72.html + https://mywarp.github.com/builds/1819.html never 0.5 - https://mywarp.github.com/builds/10.html + https://mywarp.github.com/builds/1908.html never 0.5 - https://mywarp.github.com/builds/1753.html + https://mywarp.github.com/builds/1842.html never 0.5 - https://mywarp.github.com/builds/1778.html + https://mywarp.github.com/builds/1835.html never 0.5 - https://mywarp.github.com/builds/1812.html + https://mywarp.github.com/builds/1906.html never 0.5 - https://mywarp.github.com/builds/1877.html + https://mywarp.github.com/builds/1925.html never 0.5 - https://mywarp.github.com/builds/271.html + https://mywarp.github.com/builds/54.html never 0.5 - https://mywarp.github.com/builds/1843.html + https://mywarp.github.com/builds/12.html never 0.5 - https://mywarp.github.com/builds/1776.html + https://mywarp.github.com/builds/1805.html never 0.5 - https://mywarp.github.com/builds/26.html + https://mywarp.github.com/builds/40.html never 0.5 - https://mywarp.github.com/builds/1904.html + https://mywarp.github.com/builds/263.html never 0.5 - https://mywarp.github.com/builds/1897.html + https://mywarp.github.com/builds/119.html never 0.5 - https://mywarp.github.com/builds/36.html + https://mywarp.github.com/builds/1840.html never 0.5 - https://mywarp.github.com/builds/1882.html + https://mywarp.github.com/builds/1866.html never 0.5 - https://mywarp.github.com/builds/16.html + https://mywarp.github.com/builds/15.html never 0.5 - https://mywarp.github.com/builds/56.html + https://mywarp.github.com/builds/48.html never 0.5 - https://mywarp.github.com/builds/228.html + https://mywarp.github.com/builds/1894.html never 0.5 - https://mywarp.github.com/builds/77.html + https://mywarp.github.com/builds/52.html never 0.5 - https://mywarp.github.com/builds/73.html + https://mywarp.github.com/builds/75.html never 0.5 - https://mywarp.github.com/builds/1863.html + https://mywarp.github.com/builds/1793.html never 0.5 - https://mywarp.github.com/builds/84.html + https://mywarp.github.com/builds/36.html never 0.5 - https://mywarp.github.com/builds/1810.html + https://mywarp.github.com/builds/1851.html never 0.5 - https://mywarp.github.com/builds/1840.html + https://mywarp.github.com/builds/1849.html never 0.5 - https://mywarp.github.com/builds/1788.html + https://mywarp.github.com/builds/139.html never 0.5 - https://mywarp.github.com/builds/52.html + https://mywarp.github.com/builds/249.html never 0.5 - https://mywarp.github.com/builds/30.html + https://mywarp.github.com/builds/1818.html never 0.5 - https://mywarp.github.com/builds/1768.html + https://mywarp.github.com/builds/1821.html never 0.5 - https://mywarp.github.com/builds/1857.html + https://mywarp.github.com/builds/1870.html never 0.5 - https://mywarp.github.com/builds/34.html + https://mywarp.github.com/builds/1868.html never 0.5 - https://mywarp.github.com/builds/263.html + https://mywarp.github.com/builds/1779.html never 0.5 - https://mywarp.github.com/builds/20.html + https://mywarp.github.com/builds/1787.html never 0.5 - https://mywarp.github.com/builds/1805.html + https://mywarp.github.com/builds/95.html never 0.5 - https://mywarp.github.com/builds/1806.html + https://mywarp.github.com/builds/1753.html never 0.5 - https://mywarp.github.com/builds/1808.html + https://mywarp.github.com/builds/84.html never 0.5 - https://mywarp.github.com/builds/94.html + https://mywarp.github.com/builds/1811.html never 0.5 - https://mywarp.github.com/builds/119.html + https://mywarp.github.com/builds/1788.html never 0.5 - https://mywarp.github.com/builds/7.html + https://mywarp.github.com/builds/73.html never 0.5 - https://mywarp.github.com/builds/1889.html + https://mywarp.github.com/builds/1855.html never 0.5 - https://mywarp.github.com/builds/1894.html + https://mywarp.github.com/builds/93.html never 0.5 - https://mywarp.github.com/builds/1835.html + https://mywarp.github.com/builds/1857.html never 0.5 - https://mywarp.github.com/builds/45.html + https://mywarp.github.com/builds/1863.html never 0.5 - https://mywarp.github.com/builds/25.html + https://mywarp.github.com/builds/1772.html never 0.5 - https://mywarp.github.com/builds/82.html + https://mywarp.github.com/builds/232.html never 0.5 - https://mywarp.github.com/builds/1827.html + https://mywarp.github.com/builds/72.html never 0.5 @@ -331,432 +331,432 @@ 0.5 - https://mywarp.github.com/builds/1787.html + https://mywarp.github.com/builds/1752.html never 0.5 - https://mywarp.github.com/builds/232.html + https://mywarp.github.com/builds/60.html never 0.5 - https://mywarp.github.com/builds/1804.html + https://mywarp.github.com/builds/34.html never 0.5 - https://mywarp.github.com/builds/257.html + https://mywarp.github.com/builds/1877.html never 0.5 - https://mywarp.github.com/builds/1861.html + https://mywarp.github.com/builds/1883.html never 0.5 - https://mywarp.github.com/builds/48.html + https://mywarp.github.com/builds/1784.html never 0.5 - https://mywarp.github.com/builds/1844.html + https://mywarp.github.com/builds/20.html never 0.5 - https://mywarp.github.com/builds/9.html + https://mywarp.github.com/builds/38.html never 0.5 - https://mywarp.github.com/builds/1885.html + https://mywarp.github.com/builds/70.html never 0.5 - https://mywarp.github.com/builds/1859.html + https://mywarp.github.com/builds/1895.html never 0.5 - https://mywarp.github.com/builds/1866.html + https://mywarp.github.com/builds/1820.html never 0.5 - https://mywarp.github.com/builds/1820.html + https://mywarp.github.com/builds/1836.html never 0.5 - https://mywarp.github.com/builds/1793.html + https://mywarp.github.com/builds/1832.html never 0.5 - https://mywarp.github.com/builds/225.html + https://mywarp.github.com/builds/1879.html never 0.5 - https://mywarp.github.com/builds/1855.html + https://mywarp.github.com/builds/1783.html never 0.5 - https://mywarp.github.com/builds/1879.html + https://mywarp.github.com/builds/1861.html never 0.5 - https://mywarp.github.com/builds/1910.html + https://mywarp.github.com/builds/27.html never 0.5 - https://mywarp.github.com/builds/1891.html + https://mywarp.github.com/builds/1887.html never 0.5 - https://mywarp.github.com/builds/50.html + https://mywarp.github.com/builds/225.html never 0.5 - https://mywarp.github.com/builds/42.html + https://mywarp.github.com/builds/1781.html never 0.5 - https://mywarp.github.com/builds/230.html + https://mywarp.github.com/builds/16.html never 0.5 - https://mywarp.github.com/builds/1749.html + https://mywarp.github.com/builds/86.html never 0.5 - https://mywarp.github.com/builds/104.html + https://mywarp.github.com/builds/1874.html never 0.5 - https://mywarp.github.com/builds/1794.html + https://mywarp.github.com/builds/1904.html never 0.5 - https://mywarp.github.com/builds/1923.html + https://mywarp.github.com/builds/62.html never 0.5 - https://mywarp.github.com/builds/1772.html + https://mywarp.github.com/builds/50.html never 0.5 - https://mywarp.github.com/builds/1925.html + https://mywarp.github.com/builds/1812.html never 0.5 - https://mywarp.github.com/builds/1852.html + https://mywarp.github.com/builds/1794.html never 0.5 - https://mywarp.github.com/builds/1781.html + https://mywarp.github.com/builds/224.html never 0.5 - https://mywarp.github.com/builds/181.html + https://mywarp.github.com/builds/1810.html never 0.5 - https://mywarp.github.com/builds/6.html + https://mywarp.github.com/builds/58.html never 0.5 - https://mywarp.github.com/builds/27.html + https://mywarp.github.com/builds/140.html never 0.5 - https://mywarp.github.com/builds/1930.html + https://mywarp.github.com/builds/82.html never 0.5 - https://mywarp.github.com/builds/1895.html + https://mywarp.github.com/builds/104.html never 0.5 - https://mywarp.github.com/builds/62.html + https://mywarp.github.com/builds/65.html never 0.5 - https://mywarp.github.com/builds/92.html + https://mywarp.github.com/builds/30.html never 0.5 - https://mywarp.github.com/builds/32.html + https://mywarp.github.com/builds/56.html never 0.5 - https://mywarp.github.com/builds/266.html + https://mywarp.github.com/builds/42.html never 0.5 - https://mywarp.github.com/builds/12.html + https://mywarp.github.com/builds/77.html never 0.5 - https://mywarp.github.com/builds/1837.html + https://mywarp.github.com/builds/1916.html never 0.5 - https://mywarp.github.com/builds/1868.html + https://mywarp.github.com/builds/230.html never 0.5 - https://mywarp.github.com/builds/90.html + https://mywarp.github.com/builds/1897.html never 0.5 - https://mywarp.github.com/builds/1752.html + https://mywarp.github.com/builds/67.html never 0.5 - https://mywarp.github.com/builds/1807.html + https://mywarp.github.com/builds/5.html never 0.5 - https://mywarp.github.com/builds/14.html + https://mywarp.github.com/builds/181.html never 0.5 - https://mywarp.github.com/builds/1832.html + https://mywarp.github.com/builds/88.html never 0.5 - https://mywarp.github.com/builds/1783.html + https://mywarp.github.com/builds/145.html never 0.5 - https://mywarp.github.com/builds/1908.html + https://mywarp.github.com/builds/1839.html never 0.5 - https://mywarp.github.com/builds/1779.html + https://mywarp.github.com/builds/1778.html never 0.5 - https://mywarp.github.com/builds/1899.html + https://mywarp.github.com/builds/1817.html never 0.5 - https://mywarp.github.com/builds/93.html + https://mywarp.github.com/builds/25.html never 0.5 - https://mywarp.github.com/builds/1849.html + https://mywarp.github.com/builds/1776.html never 0.5 - https://mywarp.github.com/builds/239.html + https://mywarp.github.com/builds/1837.html never 0.5 - https://mywarp.github.com/builds/58.html + https://mywarp.github.com/builds/1843.html never 0.5 - https://mywarp.github.com/builds/75.html + https://mywarp.github.com/builds/183.html never 0.5 - https://mywarp.github.com/builds/1883.html + https://mywarp.github.com/builds/1921.html never 0.5 - https://mywarp.github.com/builds/140.html + https://mywarp.github.com/builds/269.html never 0.5 - https://mywarp.github.com/builds/1784.html + https://mywarp.github.com/builds/1844.html never 0.5 - https://mywarp.github.com/builds/38.html + https://mywarp.github.com/builds/14.html never 0.5 - https://mywarp.github.com/builds/70.html + https://mywarp.github.com/builds/1768.html never 0.5 - https://mywarp.github.com/builds/237.html + https://mywarp.github.com/builds/271.html never 0.5 - https://mywarp.github.com/builds/8.html + https://mywarp.github.com/builds/23.html never 0.5 - https://mywarp.github.com/builds/1828.html + https://mywarp.github.com/builds/1815.html never 0.5 - https://mywarp.github.com/builds/1811.html + https://mywarp.github.com/builds/45.html never 0.5 - https://mywarp.github.com/builds/1785.html + https://mywarp.github.com/builds/1806.html never 0.5 - https://mywarp.github.com/builds/1842.html + https://mywarp.github.com/builds/1923.html never 0.5 - https://mywarp.github.com/builds/65.html + https://mywarp.github.com/builds/1808.html never 0.5 - https://mywarp.github.com/builds/1853.html + https://mywarp.github.com/builds/1827.html never 0.5 - https://mywarp.github.com/builds/1851.html + https://mywarp.github.com/builds/94.html never 0.5 - https://mywarp.github.com/builds/1887.html + https://mywarp.github.com/builds/18.html never 0.5 - https://mywarp.github.com/builds/1874.html + https://mywarp.github.com/builds/1930.html never 0.5 - https://mywarp.github.com/builds/1817.html + https://mywarp.github.com/builds/10.html never 0.5 - https://mywarp.github.com/builds/15.html + https://mywarp.github.com/builds/1864.html never 0.5 - https://mywarp.github.com/builds/1906.html + https://mywarp.github.com/builds/266.html never 0.5 - https://mywarp.github.com/builds/224.html + https://mywarp.github.com/builds/6.html never 0.5 - https://mywarp.github.com/builds/95.html + https://mywarp.github.com/builds/128.html never 0.5 - https://mywarp.github.com/builds/1833.html + https://mywarp.github.com/builds/1853.html never 0.5 - https://mywarp.github.com/builds/1836.html + https://mywarp.github.com/builds/92.html never 0.5 - https://mywarp.github.com/builds/5.html + https://mywarp.github.com/builds/237.html never 0.5 - https://mywarp.github.com/builds/67.html + https://mywarp.github.com/builds/1854.html never 0.5 - https://mywarp.github.com/builds/249.html + https://mywarp.github.com/builds/26.html never 0.5 - https://mywarp.github.com/builds/54.html + https://mywarp.github.com/builds/1785.html never 0.5 - https://mywarp.github.com/builds/1819.html + https://mywarp.github.com/builds/1852.html never 0.5 - https://mywarp.github.com/builds/40.html + https://mywarp.github.com/builds/1899.html never 0.5 - https://mywarp.github.com/builds/128.html + https://mywarp.github.com/builds/9.html never 0.5 - https://mywarp.github.com/builds/269.html + https://mywarp.github.com/builds/1882.html never 0.5