@tsparticles/all 4.0.0-beta.8 → 4.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +18 -14
- package/browser/browser.js +5 -0
- package/browser/bundle.js +4 -0
- package/browser/index.js +107 -108
- package/browser/index.lazy.js +167 -0
- package/cjs/browser.js +5 -0
- package/cjs/bundle.js +4 -0
- package/cjs/index.js +107 -108
- package/cjs/index.lazy.js +167 -0
- package/esm/browser.js +5 -0
- package/esm/bundle.js +4 -0
- package/esm/index.js +107 -108
- package/esm/index.lazy.js +167 -0
- package/package.json +86 -79
- package/report.html +4949 -94
- package/tsparticles.all.bundle.js +29039 -784
- package/tsparticles.all.bundle.min.js +1 -2
- package/tsparticles.all.js +111 -912
- package/tsparticles.all.min.js +1 -1
- package/types/browser.d.ts +1 -0
- package/types/index.lazy.d.ts +2 -0
- package/1001.min.js +0 -1
- package/1020.min.js +0 -1
- package/1043.min.js +0 -1
- package/1080.min.js +0 -1
- package/1089.min.js +0 -1
- package/1138.min.js +0 -1
- package/1197.min.js +0 -1
- package/1241.min.js +0 -1
- package/1289.min.js +0 -1
- package/1336.min.js +0 -1
- package/1411.min.js +0 -1
- package/143.min.js +0 -2
- package/1441.min.js +0 -2
- package/1472.min.js +0 -1
- package/1481.min.js +0 -1
- package/1521.min.js +0 -1
- package/1523.min.js +0 -1
- package/1562.min.js +0 -1
- package/1581.min.js +0 -1
- package/1583.min.js +0 -1
- package/1680.min.js +0 -1
- package/1684.min.js +0 -1
- package/1690.min.js +0 -1
- package/1712.min.js +0 -1
- package/1723.min.js +0 -1
- package/175.min.js +0 -1
- package/1807.min.js +0 -1
- package/1809.min.js +0 -1
- package/1846.min.js +0 -1
- package/1876.min.js +0 -1
- package/1879.min.js +0 -1
- package/1887.min.js +0 -1
- package/189.min.js +0 -1
- package/1890.min.js +0 -1
- package/1924.min.js +0 -1
- package/2004.min.js +0 -1
- package/2037.min.js +0 -1
- package/2049.min.js +0 -1
- package/2066.min.js +0 -1
- package/2127.min.js +0 -1
- package/2141.min.js +0 -1
- package/2182.min.js +0 -1
- package/2191.min.js +0 -1
- package/2219.min.js +0 -1
- package/2241.min.js +0 -1
- package/2268.min.js +0 -1
- package/2270.min.js +0 -1
- package/2288.min.js +0 -1
- package/2310.min.js +0 -1
- package/2319.min.js +0 -1
- package/2344.min.js +0 -1
- package/2438.min.js +0 -1
- package/2520.min.js +0 -1
- package/2528.min.js +0 -1
- package/2556.min.js +0 -1
- package/2575.min.js +0 -1
- package/2582.min.js +0 -1
- package/2602.min.js +0 -1
- package/2631.min.js +0 -1
- package/2637.min.js +0 -1
- package/2672.min.js +0 -1
- package/2697.min.js +0 -1
- package/2734.min.js +0 -1
- package/2760.min.js +0 -1
- package/2827.min.js +0 -1
- package/283.min.js +0 -1
- package/2858.min.js +0 -1
- package/2861.min.js +0 -1
- package/2865.min.js +0 -33
- package/2893.min.js +0 -1
- package/2946.min.js +0 -1
- package/2962.min.js +0 -1
- package/2974.min.js +0 -1
- package/2975.min.js +0 -1
- package/2981.min.js +0 -1
- package/3023.min.js +0 -1
- package/3047.min.js +0 -1
- package/3057.min.js +0 -1
- package/3073.min.js +0 -1
- package/3092.min.js +0 -1
- package/3113.min.js +0 -1
- package/316.min.js +0 -1
- package/3198.min.js +0 -1
- package/3289.min.js +0 -1
- package/3376.min.js +0 -1
- package/3384.min.js +0 -1
- package/3443.min.js +0 -1
- package/3511.min.js +0 -1
- package/3523.min.js +0 -1
- package/3544.min.js +0 -1
- package/3583.min.js +0 -1
- package/3641.min.js +0 -1
- package/3683.min.js +0 -2
- package/3685.min.js +0 -1
- package/3713.min.js +0 -1
- package/3729.min.js +0 -1
- package/3733.min.js +0 -1
- package/374.min.js +0 -1
- package/3748.min.js +0 -1
- package/3763.min.js +0 -1
- package/3768.min.js +0 -1
- package/382.min.js +0 -1
- package/3897.min.js +0 -1
- package/3958.min.js +0 -1
- package/4.min.js +0 -1
- package/4067.min.js +0 -1
- package/4068.min.js +0 -1
- package/4077.min.js +0 -1
- package/4086.min.js +0 -1
- package/4129.min.js +0 -1
- package/4145.min.js +0 -1
- package/4153.min.js +0 -1
- package/4186.min.js +0 -1
- package/4217.min.js +0 -1
- package/4282.min.js +0 -1
- package/4291.min.js +0 -1
- package/4317.min.js +0 -1
- package/4332.min.js +0 -1
- package/4358.min.js +0 -1
- package/440.min.js +0 -1
- package/4427.min.js +0 -1
- package/4430.min.js +0 -1
- package/4465.min.js +0 -1
- package/4512.min.js +0 -1
- package/4519.min.js +0 -1
- package/4568.min.js +0 -1
- package/4582.min.js +0 -1
- package/4626.min.js +0 -1
- package/4657.min.js +0 -1
- package/4698.min.js +0 -1
- package/4752.min.js +0 -1
- package/4816.min.js +0 -1
- package/4862.min.js +0 -1
- package/4886.min.js +0 -1
- package/4903.min.js +0 -1
- package/4912.min.js +0 -1
- package/5048.min.js +0 -1
- package/511.min.js +0 -1
- package/5149.min.js +0 -1
- package/5162.min.js +0 -1
- package/5294.min.js +0 -1
- package/5333.min.js +0 -1
- package/5344.min.js +0 -1
- package/5358.min.js +0 -1
- package/539.min.js +0 -1
- package/5392.min.js +0 -1
- package/5400.min.js +0 -1
- package/5402.min.js +0 -1
- package/5405.min.js +0 -1
- package/5406.min.js +0 -1
- package/541.min.js +0 -1
- package/5445.min.js +0 -1
- package/548.min.js +0 -1
- package/5551.min.js +0 -1
- package/5583.min.js +0 -1
- package/5601.min.js +0 -1
- package/5616.min.js +0 -1
- package/5628.min.js +0 -1
- package/5629.min.js +0 -1
- package/5675.min.js +0 -1
- package/5757.min.js +0 -1
- package/5828.min.js +0 -1
- package/5856.min.js +0 -1
- package/5936.min.js +0 -1
- package/5970.min.js +0 -1
- package/6055.min.js +0 -1
- package/6067.min.js +0 -1
- package/6079.min.js +0 -1
- package/6090.min.js +0 -1
- package/6099.min.js +0 -1
- package/6119.min.js +0 -1
- package/6171.min.js +0 -1
- package/6192.min.js +0 -1
- package/6207.min.js +0 -1
- package/6251.min.js +0 -1
- package/6281.min.js +0 -1
- package/6377.min.js +0 -1
- package/6379.min.js +0 -1
- package/6380.min.js +0 -1
- package/6420.min.js +0 -1
- package/6448.min.js +0 -1
- package/646.min.js +0 -1
- package/6466.min.js +0 -1
- package/6477.min.js +0 -1
- package/648.min.js +0 -1
- package/6483.min.js +0 -1
- package/6487.min.js +0 -1
- package/6549.min.js +0 -1
- package/6602.min.js +0 -1
- package/6704.min.js +0 -1
- package/6715.min.js +0 -1
- package/674.min.js +0 -1
- package/6798.min.js +0 -1
- package/6858.min.js +0 -1
- package/6868.min.js +0 -1
- package/6943.min.js +0 -1
- package/6966.min.js +0 -1
- package/6972.min.js +0 -1
- package/6996.min.js +0 -1
- package/7072.min.js +0 -1
- package/7129.min.js +0 -1
- package/7137.min.js +0 -2
- package/7147.min.js +0 -1
- package/7162.min.js +0 -1
- package/7175.min.js +0 -1
- package/7209.min.js +0 -1
- package/7210.min.js +0 -1
- package/7213.min.js +0 -1
- package/7259.min.js +0 -1
- package/7316.min.js +0 -1
- package/736.min.js +0 -1
- package/739.min.js +0 -1
- package/7447.min.js +0 -1
- package/7474.min.js +0 -1
- package/7563.min.js +0 -1
- package/7584.min.js +0 -1
- package/770.min.js +0 -1
- package/7711.min.js +0 -1
- package/7726.min.js +0 -1
- package/7757.min.js +0 -1
- package/7775.min.js +0 -1
- package/7792.min.js +0 -1
- package/7812.min.js +0 -1
- package/7840.min.js +0 -1
- package/7853.min.js +0 -1
- package/7912.min.js +0 -1
- package/7983.min.js +0 -1
- package/803.min.js +0 -1
- package/8035.min.js +0 -1
- package/805.min.js +0 -1
- package/8051.min.js +0 -1
- package/8068.min.js +0 -1
- package/8073.min.js +0 -1
- package/8149.min.js +0 -1
- package/8161.min.js +0 -1
- package/8180.min.js +0 -1
- package/8192.min.js +0 -1
- package/8204.min.js +0 -1
- package/8230.min.js +0 -1
- package/8272.min.js +0 -1
- package/8292.min.js +0 -1
- package/832.min.js +0 -2
- package/8331.min.js +0 -1
- package/8333.min.js +0 -1
- package/8357.min.js +0 -1
- package/8386.min.js +0 -1
- package/8459.min.js +0 -1
- package/8523.min.js +0 -1
- package/8529.min.js +0 -1
- package/8580.min.js +0 -1
- package/8607.min.js +0 -1
- package/8630.min.js +0 -1
- package/8632.min.js +0 -1
- package/8653.min.js +0 -1
- package/8656.min.js +0 -1
- package/8692.min.js +0 -1
- package/8712.min.js +0 -1
- package/8731.min.js +0 -1
- package/8855.min.js +0 -1
- package/8965.min.js +0 -1
- package/8968.min.js +0 -1
- package/9007.min.js +0 -1
- package/9081.min.js +0 -1
- package/9086.min.js +0 -1
- package/9154.min.js +0 -1
- package/9166.min.js +0 -1
- package/9291.min.js +0 -1
- package/9310.min.js +0 -1
- package/9328.min.js +0 -1
- package/9333.min.js +0 -1
- package/9335.min.js +0 -1
- package/9368.min.js +0 -1
- package/9407.min.js +0 -1
- package/9423.min.js +0 -1
- package/9434.min.js +0 -1
- package/9470.min.js +0 -1
- package/9515.min.js +0 -1
- package/9555.min.js +0 -1
- package/9608.min.js +0 -1
- package/9618.min.js +0 -1
- package/9622.min.js +0 -1
- package/9631.min.js +0 -1
- package/9644.min.js +0 -1
- package/9674.min.js +0 -1
- package/9716.min.js +0 -1
- package/9726.min.js +0 -1
- package/9766.min.js +0 -1
- package/980.min.js +0 -1
- package/9829.min.js +0 -1
- package/9835.min.js +0 -1
- package/9851.min.js +0 -1
- package/9876.min.js +0 -1
- package/9907.min.js +0 -1
- package/9915.min.js +0 -1
- package/basic_dist_browser_index_js.js +0 -30
- package/effects_bubble_dist_browser_BubbleDrawer_js.js +0 -30
- package/effects_bubble_dist_browser_index_js.js +0 -30
- package/effects_filter_dist_browser_FilterDrawer_js.js +0 -30
- package/effects_filter_dist_browser_index_js.js +0 -30
- package/effects_particles_dist_browser_ParticlesDrawer_js.js +0 -30
- package/effects_particles_dist_browser_index_js.js +0 -30
- package/effects_shadow_dist_browser_ShadowDrawer_js.js +0 -30
- package/effects_shadow_dist_browser_index_js.js +0 -30
- package/effects_trail_dist_browser_TrailDrawer_js.js +0 -30
- package/effects_trail_dist_browser_index_js.js +0 -30
- package/engine_dist_browser_Core_Container_js.js +0 -100
- package/full_dist_browser_index_js.js +0 -30
- package/interactions_external_attract_dist_browser_Attractor_js.js +0 -140
- package/interactions_external_attract_dist_browser_index_js.js +0 -40
- package/interactions_external_bounce_dist_browser_Bouncer_js.js +0 -140
- package/interactions_external_bounce_dist_browser_index_js.js +0 -40
- package/interactions_external_bubble_dist_browser_Bubbler_js.js +0 -150
- package/interactions_external_bubble_dist_browser_index_js.js +0 -60
- package/interactions_external_cannon_dist_browser_Cannoner_js.js +0 -130
- package/interactions_external_cannon_dist_browser_index_js.js +0 -40
- package/interactions_external_connect_dist_browser_Connector_js.js +0 -160
- package/interactions_external_connect_dist_browser_index_js.js +0 -50
- package/interactions_external_drag_dist_browser_Dragger_js.js +0 -130
- package/interactions_external_drag_dist_browser_index_js.js +0 -40
- package/interactions_external_grab_dist_browser_Grabber_js.js +0 -160
- package/interactions_external_grab_dist_browser_index_js.js +0 -50
- package/interactions_external_parallax_dist_browser_Parallaxer_js.js +0 -130
- package/interactions_external_parallax_dist_browser_index_js.js +0 -40
- package/interactions_external_particle_dist_browser_InteractivityParticleMaker_js.js +0 -140
- package/interactions_external_particle_dist_browser_index_js.js +0 -30
- package/interactions_external_pause_dist_browser_Pauser_js.js +0 -130
- package/interactions_external_pause_dist_browser_index_js.js +0 -30
- package/interactions_external_pop_dist_browser_Popper_js.js +0 -130
- package/interactions_external_pop_dist_browser_index_js.js +0 -30
- package/interactions_external_push_dist_browser_Pusher_js.js +0 -130
- package/interactions_external_push_dist_browser_index_js.js +0 -40
- package/interactions_external_remove_dist_browser_Remover_js.js +0 -130
- package/interactions_external_remove_dist_browser_index_js.js +0 -40
- package/interactions_external_repulse_dist_browser_Repulser_js.js +0 -130
- package/interactions_external_repulse_dist_browser_index_js.js +0 -60
- package/interactions_external_slow_dist_browser_Slower_js.js +0 -130
- package/interactions_external_slow_dist_browser_index_js.js +0 -40
- package/interactions_external_trail_dist_browser_TrailMaker_js.js +0 -130
- package/interactions_external_trail_dist_browser_index_js.js +0 -70
- package/interactions_light_dist_browser_ExternalLighter_js.js +0 -140
- package/interactions_light_dist_browser_ParticlesLighter_js.js +0 -140
- package/interactions_light_dist_browser_index_js.js +0 -70
- package/interactions_particles_attract_dist_browser_Attractor_js.js +0 -140
- package/interactions_particles_attract_dist_browser_index_js.js +0 -30
- package/interactions_particles_collisions_dist_browser_Collider_js.js +0 -210
- package/interactions_particles_collisions_dist_browser_OverlapPluginInstance_js.js +0 -30
- package/interactions_particles_collisions_dist_browser_OverlapPlugin_js.js +0 -30
- package/interactions_particles_collisions_dist_browser_index_js.js +0 -30
- package/interactions_particles_links_dist_browser_LinkInstance_js.js +0 -40
- package/interactions_particles_links_dist_browser_Linker_js.js +0 -140
- package/interactions_particles_links_dist_browser_LinksPlugin_js.js +0 -30
- package/interactions_particles_links_dist_browser_index_js.js +0 -60
- package/interactions_particles_repulse_dist_browser_Repulser_js.js +0 -140
- package/interactions_particles_repulse_dist_browser_index_js.js +0 -30
- package/paths_branches_dist_browser_BranchesPathGenerator_js.js +0 -30
- package/paths_branches_dist_browser_index_js.js +0 -30
- package/paths_brownian_dist_browser_BrownianPathGenerator_js.js +0 -30
- package/paths_brownian_dist_browser_index_js.js +0 -30
- package/paths_curlNoise_dist_browser_CurlNoiseGenerator_js.js +0 -30
- package/paths_curlNoise_dist_browser_index_js.js +0 -30
- package/paths_curves_dist_browser_CurvesPathGenerator_js.js +0 -40
- package/paths_curves_dist_browser_index_js.js +0 -30
- package/paths_fractalNoise_dist_browser_FractalNoiseGenerator_js.js +0 -90
- package/paths_fractalNoise_dist_browser_index_js.js +0 -30
- package/paths_grid_dist_browser_GridPathGenerator_js.js +0 -30
- package/paths_grid_dist_browser_index_js.js +0 -30
- package/paths_levy_dist_browser_LevyPathGenerator_js.js +0 -30
- package/paths_levy_dist_browser_index_js.js +0 -30
- package/paths_perlinNoise_dist_browser_PerlinNoiseGenerator_js.js +0 -80
- package/paths_perlinNoise_dist_browser_index_js.js +0 -30
- package/paths_polygon_dist_browser_PolygonPathGenerator_js.js +0 -30
- package/paths_polygon_dist_browser_index_js.js +0 -30
- package/paths_random_dist_browser_RandomPathGenerator_js.js +0 -30
- package/paths_random_dist_browser_index_js.js +0 -30
- package/paths_simplexNoise_dist_browser_SimplexNoiseGenerator_js.js +0 -50
- package/paths_simplexNoise_dist_browser_index_js.js +0 -30
- package/paths_spiral_dist_browser_SpiralPathGenerator_js.js +0 -40
- package/paths_spiral_dist_browser_index_js.js +0 -30
- package/paths_svg_dist_browser_SVGPathGenerator_js.js +0 -50
- package/paths_svg_dist_browser_index_js.js +0 -30
- package/paths_zigzag_dist_browser_ZigZagPathGenerator_js.js +0 -30
- package/paths_zigzag_dist_browser_index_js.js +0 -30
- package/plugins_absorbers_dist_browser_AbsorberInstance_js.js +0 -70
- package/plugins_absorbers_dist_browser_AbsorbersInstancesManager_js.js +0 -30
- package/plugins_absorbers_dist_browser_AbsorbersInteractor_js.js +0 -170
- package/plugins_absorbers_dist_browser_AbsorbersPluginInstance_js.js +0 -30
- package/plugins_absorbers_dist_browser_AbsorbersPlugin_js.js +0 -70
- package/plugins_absorbers_dist_browser_getAbsorbersInstancesManager_js.js +0 -30
- package/plugins_absorbers_dist_browser_index_js.js +0 -50
- package/plugins_backgroundMask_dist_browser_BackgroundMaskPluginInstance_js.js +0 -30
- package/plugins_backgroundMask_dist_browser_BackgroundMaskPlugin_js.js +0 -50
- package/plugins_backgroundMask_dist_browser_index_js.js +0 -30
- package/plugins_blend_dist_browser_BlendPluginInstance_js.js +0 -30
- package/plugins_blend_dist_browser_BlendPlugin_js.js +0 -40
- package/plugins_blend_dist_browser_index_js.js +0 -30
- package/plugins_canvasMask_dist_browser_CanvasMaskPluginInstance_js.js +0 -60
- package/plugins_canvasMask_dist_browser_CanvasMaskPlugin_js.js +0 -100
- package/plugins_canvasMask_dist_browser_index_js.js +0 -30
- package/plugins_colors_hex_dist_browser_HexColorManager_js.js +0 -30
- package/plugins_colors_hex_dist_browser_index_js.js +0 -30
- package/plugins_colors_hsl_dist_browser_HslColorManager_js.js +0 -30
- package/plugins_colors_hsl_dist_browser_index_js.js +0 -30
- package/plugins_colors_hsv_dist_browser_HsvColorManager_js.js +0 -40
- package/plugins_colors_hsv_dist_browser_index_js.js +0 -30
- package/plugins_colors_hwb_dist_browser_HwbColorManager_js.js +0 -30
- package/plugins_colors_hwb_dist_browser_index_js.js +0 -30
- package/plugins_colors_lab_dist_browser_LabColorManager_js.js +0 -40
- package/plugins_colors_lab_dist_browser_index_js.js +0 -30
- package/plugins_colors_lch_dist_browser_LchColorManager_js.js +0 -40
- package/plugins_colors_lch_dist_browser_index_js.js +0 -30
- package/plugins_colors_named_dist_browser_NamedColorManager_js.js +0 -30
- package/plugins_colors_named_dist_browser_index_js.js +0 -30
- package/plugins_colors_oklab_dist_browser_OklabColorManager_js.js +0 -40
- package/plugins_colors_oklab_dist_browser_index_js.js +0 -30
- package/plugins_colors_oklch_dist_browser_OklchColorManager_js.js +0 -40
- package/plugins_colors_oklch_dist_browser_index_js.js +0 -30
- package/plugins_colors_rgb_dist_browser_RgbColorManager_js.js +0 -30
- package/plugins_colors_rgb_dist_browser_index_js.js +0 -30
- package/plugins_easings_back_dist_browser_easingsFunctions_js.js +0 -30
- package/plugins_easings_back_dist_browser_index_js.js +0 -30
- package/plugins_easings_bounce_dist_browser_easingsFunctions_js.js +0 -30
- package/plugins_easings_bounce_dist_browser_index_js.js +0 -30
- package/plugins_easings_circ_dist_browser_easingsFunctions_js.js +0 -30
- package/plugins_easings_circ_dist_browser_index_js.js +0 -30
- package/plugins_easings_cubic_dist_browser_easingsFunctions_js.js +0 -30
- package/plugins_easings_cubic_dist_browser_index_js.js +0 -30
- package/plugins_easings_elastic_dist_browser_easingsFunctions_js.js +0 -30
- package/plugins_easings_elastic_dist_browser_index_js.js +0 -30
- package/plugins_easings_expo_dist_browser_easingsFunctions_js.js +0 -30
- package/plugins_easings_expo_dist_browser_index_js.js +0 -30
- package/plugins_easings_gaussian_dist_browser_easingsFunctions_js.js +0 -30
- package/plugins_easings_gaussian_dist_browser_index_js.js +0 -30
- package/plugins_easings_linear_dist_browser_easingsFunctions_js.js +0 -30
- package/plugins_easings_linear_dist_browser_index_js.js +0 -30
- package/plugins_easings_quad_dist_browser_easingsFunctions_js.js +0 -30
- package/plugins_easings_quad_dist_browser_index_js.js +0 -30
- package/plugins_easings_quart_dist_browser_easingsFunctions_js.js +0 -30
- package/plugins_easings_quart_dist_browser_index_js.js +0 -30
- package/plugins_easings_quint_dist_browser_easingsFunctions_js.js +0 -30
- package/plugins_easings_quint_dist_browser_index_js.js +0 -30
- package/plugins_easings_sigmoid_dist_browser_easingsFunctions_js.js +0 -30
- package/plugins_easings_sigmoid_dist_browser_index_js.js +0 -30
- package/plugins_easings_sine_dist_browser_easingsFunctions_js.js +0 -30
- package/plugins_easings_sine_dist_browser_index_js.js +0 -30
- package/plugins_easings_smoothstep_dist_browser_easingsFunctions_js.js +0 -30
- package/plugins_easings_smoothstep_dist_browser_index_js.js +0 -30
- package/plugins_emittersShapes_canvas_dist_browser_EmittersCanvasShapeGenerator_js.js +0 -170
- package/plugins_emittersShapes_canvas_dist_browser_index_js.js +0 -30
- package/plugins_emittersShapes_circle_dist_browser_EmittersCircleShapeGenerator_js.js +0 -100
- package/plugins_emittersShapes_circle_dist_browser_index_js.js +0 -30
- package/plugins_emittersShapes_path_dist_browser_EmittersPathShapeGenerator_js.js +0 -120
- package/plugins_emittersShapes_path_dist_browser_index_js.js +0 -30
- package/plugins_emittersShapes_polygon_dist_browser_EmittersPolygonShapeGenerator_js.js +0 -120
- package/plugins_emittersShapes_polygon_dist_browser_index_js.js +0 -30
- package/plugins_emittersShapes_square_dist_browser_EmittersSquareShapeGenerator_js.js +0 -100
- package/plugins_emittersShapes_square_dist_browser_index_js.js +0 -30
- package/plugins_emitters_dist_browser_EmitterInstance_js.js +0 -30
- package/plugins_emitters_dist_browser_EmittersInstancesManager_js.js +0 -100
- package/plugins_emitters_dist_browser_EmittersInteractor_js.js +0 -210
- package/plugins_emitters_dist_browser_EmittersPluginInstance_js.js +0 -30
- package/plugins_emitters_dist_browser_EmittersPlugin_js.js +0 -100
- package/plugins_emitters_dist_browser_ShapeManager_js.js +0 -30
- package/plugins_emitters_dist_browser_addEmittersShapesManager_js.js +0 -30
- package/plugins_emitters_dist_browser_getEmittersInstancesManager_js.js +0 -30
- package/plugins_emitters_dist_browser_index_js.js +0 -80
- package/plugins_exports_image_dist_browser_ExportImagePluginInstance_js.js +0 -30
- package/plugins_exports_image_dist_browser_ExportImagePlugin_js.js +0 -30
- package/plugins_exports_image_dist_browser_index_js.js +0 -30
- package/plugins_exports_json_dist_browser_ExportJSONPluginInstance_js.js +0 -30
- package/plugins_exports_json_dist_browser_ExportJSONPlugin_js.js +0 -30
- package/plugins_exports_json_dist_browser_index_js.js +0 -30
- package/plugins_exports_video_dist_browser_ExportVideoPluginInstance_js.js +0 -30
- package/plugins_exports_video_dist_browser_ExportVideoPlugin_js.js +0 -30
- package/plugins_exports_video_dist_browser_index_js.js +0 -30
- package/plugins_infection_dist_browser_InfectionPluginInstance_js.js +0 -40
- package/plugins_infection_dist_browser_InfectionPlugin_js.js +0 -50
- package/plugins_infection_dist_browser_ParticlesInfecter_js.js +0 -130
- package/plugins_infection_dist_browser_index_js.js +0 -30
- package/plugins_interactivity_dist_browser_InteractivityPluginInstance_js.js +0 -50
- package/plugins_interactivity_dist_browser_InteractivityPlugin_js.js +0 -70
- package/plugins_interactivity_dist_browser_index_js.js +0 -120
- package/plugins_manualParticles_dist_browser_ManualParticlesPluginInstance_js.js +0 -30
- package/plugins_manualParticles_dist_browser_ManualParticlesPlugin_js.js +0 -40
- package/plugins_manualParticles_dist_browser_index_js.js +0 -30
- package/plugins_motion_dist_browser_MotionPluginInstance_js.js +0 -30
- package/plugins_motion_dist_browser_MotionPlugin_js.js +0 -50
- package/plugins_motion_dist_browser_index_js.js +0 -30
- package/plugins_move_dist_browser_MovePluginInstance_js.js +0 -40
- package/plugins_move_dist_browser_MovePlugin_js.js +0 -30
- package/plugins_move_dist_browser_index_js.js +0 -30
- package/plugins_poisson_dist_browser_PoissonDiscPluginInstance_js.js +0 -30
- package/plugins_poisson_dist_browser_PoissonDiscPlugin_js.js +0 -40
- package/plugins_poisson_dist_browser_PoissonDisc_js.js +0 -30
- package/plugins_poisson_dist_browser_index_js.js +0 -30
- package/plugins_polygonMask_dist_browser_PolygonMaskInstance_js.js +0 -50
- package/plugins_polygonMask_dist_browser_PolygonMaskPlugin_js.js +0 -90
- package/plugins_polygonMask_dist_browser_index_js.js +0 -60
- package/plugins_responsive_dist_browser_ResponsivePluginInstance_js.js +0 -30
- package/plugins_responsive_dist_browser_ResponsivePlugin_js.js +0 -50
- package/plugins_responsive_dist_browser_index_js.js +0 -30
- package/plugins_sounds_dist_browser_SoundsPluginInstance_js.js +0 -40
- package/plugins_sounds_dist_browser_SoundsPlugin_js.js +0 -130
- package/plugins_sounds_dist_browser_index_js.js +0 -30
- package/plugins_themes_dist_browser_ThemesPluginInstance_js.js +0 -30
- package/plugins_themes_dist_browser_ThemesPlugin_js.js +0 -60
- package/plugins_themes_dist_browser_index_js.js +0 -30
- package/plugins_trail_dist_browser_TrailPluginInstance_js.js +0 -30
- package/plugins_trail_dist_browser_TrailPlugin_js.js +0 -50
- package/plugins_trail_dist_browser_index_js.js +0 -30
- package/plugins_zoom_dist_browser_ZoomPluginInstance_js.js +0 -40
- package/plugins_zoom_dist_browser_ZoomPlugin_js.js +0 -30
- package/plugins_zoom_dist_browser_index_js.js +0 -50
- package/shapes_arrow_dist_browser_ArrowDrawer_js.js +0 -40
- package/shapes_arrow_dist_browser_index_js.js +0 -30
- package/shapes_cards_dist_browser_cards_CardDrawer_js.js +0 -40
- package/shapes_cards_dist_browser_clubs_ClubDrawer_js.js +0 -30
- package/shapes_cards_dist_browser_diamonds_DiamondDrawer_js.js +0 -30
- package/shapes_cards_dist_browser_hearts_HeartDrawer_js.js +0 -30
- package/shapes_cards_dist_browser_index_js.js +0 -90
- package/shapes_cards_dist_browser_paths_js.js +0 -70
- package/shapes_cards_dist_browser_spades_SpadeDrawer_js.js +0 -30
- package/shapes_circle_dist_browser_CircleDrawer_js.js +0 -40
- package/shapes_circle_dist_browser_index_js.js +0 -30
- package/shapes_cog_dist_browser_CogDrawer_js.js +0 -40
- package/shapes_cog_dist_browser_index_js.js +0 -30
- package/shapes_emoji_dist_browser_EmojiDrawer_js.js +0 -50
- package/shapes_emoji_dist_browser_index_js.js +0 -40
- package/shapes_heart_dist_browser_HeartDrawer_js.js +0 -40
- package/shapes_heart_dist_browser_index_js.js +0 -30
- package/shapes_image_dist_browser_GifUtils_Utils_js.js +0 -70
- package/shapes_image_dist_browser_ImageDrawer_js.js +0 -30
- package/shapes_image_dist_browser_ImagePreloaderInstance_js.js +0 -30
- package/shapes_image_dist_browser_ImagePreloader_js.js +0 -40
- package/shapes_image_dist_browser_index_js.js +0 -40
- package/shapes_infinity_dist_browser_InfinityDrawer_js.js +0 -40
- package/shapes_infinity_dist_browser_index_js.js +0 -30
- package/shapes_line_dist_browser_LineDrawer_js.js +0 -40
- package/shapes_line_dist_browser_index_js.js +0 -30
- package/shapes_matrix_dist_browser_MatrixDrawer_js.js +0 -40
- package/shapes_matrix_dist_browser_index_js.js +0 -30
- package/shapes_path_dist_browser_PathDrawer_js.js +0 -60
- package/shapes_path_dist_browser_index_js.js +0 -30
- package/shapes_polygon_dist_browser_PolygonDrawer_js.js +0 -50
- package/shapes_polygon_dist_browser_TriangleDrawer_js.js +0 -50
- package/shapes_polygon_dist_browser_index_js.js +0 -30
- package/shapes_rounded-polygon_dist_browser_RoundedPolygonDrawer_js.js +0 -40
- package/shapes_rounded-polygon_dist_browser_index_js.js +0 -30
- package/shapes_rounded-rect_dist_browser_RoundedRectDrawer_js.js +0 -40
- package/shapes_rounded-rect_dist_browser_index_js.js +0 -30
- package/shapes_spiral_dist_browser_SpiralDrawer_js.js +0 -40
- package/shapes_spiral_dist_browser_index_js.js +0 -30
- package/shapes_square_dist_browser_SquareDrawer_js.js +0 -40
- package/shapes_square_dist_browser_index_js.js +0 -30
- package/shapes_squircle_dist_browser_SquircleDrawer_js.js +0 -40
- package/shapes_squircle_dist_browser_index_js.js +0 -30
- package/shapes_star_dist_browser_StarDrawer_js.js +0 -40
- package/shapes_star_dist_browser_index_js.js +0 -30
- package/shapes_text_dist_browser_TextDrawer_js.js +0 -50
- package/shapes_text_dist_browser_index_js.js +0 -40
- package/slim_dist_browser_index_js.js +0 -30
- package/updaters_destroy_dist_browser_DestroyUpdater_js.js +0 -100
- package/updaters_destroy_dist_browser_index_js.js +0 -30
- package/updaters_fillColor_dist_browser_FillColorUpdater_js.js +0 -30
- package/updaters_fillColor_dist_browser_index_js.js +0 -30
- package/updaters_gradient_dist_browser_GradientUpdater_js.js +0 -100
- package/updaters_gradient_dist_browser_index_js.js +0 -30
- package/updaters_life_dist_browser_LifeUpdater_js.js +0 -70
- package/updaters_life_dist_browser_index_js.js +0 -30
- package/updaters_opacity_dist_browser_OpacityUpdater_js.js +0 -30
- package/updaters_opacity_dist_browser_index_js.js +0 -30
- package/updaters_orbit_dist_browser_OrbitUpdater_js.js +0 -70
- package/updaters_orbit_dist_browser_index_js.js +0 -30
- package/updaters_outModes_dist_browser_OutOfCanvasUpdater_js.js +0 -80
- package/updaters_outModes_dist_browser_index_js.js +0 -30
- package/updaters_roll_dist_browser_RollUpdater_js.js +0 -70
- package/updaters_roll_dist_browser_index_js.js +0 -30
- package/updaters_rotate_dist_browser_RotateUpdater_js.js +0 -50
- package/updaters_rotate_dist_browser_index_js.js +0 -30
- package/updaters_size_dist_browser_SizeUpdater_js.js +0 -30
- package/updaters_size_dist_browser_index_js.js +0 -30
- package/updaters_strokeColor_dist_browser_StrokeColorUpdater_js.js +0 -30
- package/updaters_strokeColor_dist_browser_index_js.js +0 -30
- package/updaters_tilt_dist_browser_TiltUpdater_js.js +0 -60
- package/updaters_tilt_dist_browser_index_js.js +0 -30
- package/updaters_twinkle_dist_browser_TwinkleUpdater_js.js +0 -60
- package/updaters_twinkle_dist_browser_index_js.js +0 -30
- package/updaters_wobble_dist_browser_WobbleUpdater_js.js +0 -60
- package/updaters_wobble_dist_browser_index_js.js +0 -30
- package/utils_simplexNoise_dist_browser_index_js.js +0 -80
|
@@ -1,2 +1 @@
|
|
|
1
|
-
!function(e,t){if("object"==typeof exports&&"object"==typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{var i=t();for(var n in i)("object"==typeof exports?exports:e)[n]=i[n]}}(this,()=>(()=>{"use strict";var e,t,i,n={5560(e,t,i){i.d(t,{$G:()=>D,$_:()=>F,$v:()=>U,$x:()=>P,BF:()=>eg,BW:()=>p,DN:()=>K,D_:()=>ed,Dv:()=>ec,Eo:()=>Q,Fl:()=>em,GW:()=>$,Ie:()=>L,JC:()=>q,K3:()=>eo,L1:()=>A,LD:()=>er,MX:()=>l,NF:()=>o,Nu:()=>ep,Nx:()=>N,PZ:()=>W,Pf:()=>ew,R1:()=>v,RF:()=>x,RV:()=>C,Rq:()=>V,U0:()=>I,Ug:()=>u,WH:()=>Y,X$:()=>b,X_:()=>ee,Xu:()=>d,Zp:()=>O,a5:()=>r,aE:()=>ev,aZ:()=>m,bo:()=>c,ce:()=>y,dm:()=>M,dv:()=>J,eb:()=>n,eu:()=>E,gd:()=>f,hB:()=>R,hK:()=>eb,hv:()=>Z,i8:()=>j,iU:()=>eu,iX:()=>z,jn:()=>ey,lA:()=>es,mR:()=>h,nK:()=>s,nq:()=>ei,oi:()=>_,ou:()=>et,rq:()=>w,tA:()=>el,tR:()=>ex,vF:()=>H,vS:()=>k,vd:()=>eh,w2:()=>B,wM:()=>en,xH:()=>X,xd:()=>S,yj:()=>a,yx:()=>T,z$:()=>g,z9:()=>ea,zg:()=>ef,zs:()=>G});let n="generated",a="source-over",o="resize",s="visibilitychange",r=100,l=.5,d=1e3,c={x:0,y:0,z:0},u={a:1,b:0,c:0,d:1},h="random",p="mid",f=2,v=2*Math.PI,g=60,m=1,y="true",b="false",x="canvas",w=0,M=2,z=100,S=1,P=1,O=1,R=1,_=255,k=360,E=100,F=100,A=0,T=0,I=60,L=0,D=.25,V=.75,$=0,G=1,B=0,C=1,Z=1,q=1,H=0,j=120,K=0,N=0,U=1e4,W=0,X=1,J=0,Y=1,Q=1,ee=0,et=0,ei=1,en=0,ea=0,eo=1,es=1,er=1,el=0,ed=1,ec=0,eu=1,eh=0,ep=3,ef=6,ev=1,eg=1,em=0,ey=0,eb=0,ex=0,ew=1},1045(e,t,i){i.d(t,{dg:()=>r,jl:()=>l,M_:()=>d}),(n=a||(a={})).circle="circle",n.rectangle="rectangle";var n,a,o=i(5286),s=i(5560);class r{position;type;constructor(e,t,i){this.position={x:e,y:t},this.type=i}_resetPosition(e,t){this.position.x=e,this.position.y=t}}class l extends r{radius;constructor(e,t,i){super(e,t,a.circle),this.radius=i}contains(e){return(0,o.gp)(e,this.position,this.radius)}intersects(e){let t=this.position,i=e.position,n=this.radius,o=Math.abs(i.x-t.x),r=Math.abs(i.y-t.y);if(e instanceof l||e.type===a.circle)return n+e.radius>Math.hypot(o,r);if(e instanceof d||e.type===a.rectangle){let{width:t,height:i}=e.size;return Math.pow(o-t,s.dm)+Math.pow(r-i,s.dm)<=n**s.dm||o<=n+t&&r<=n+i||o<=t||r<=i}return!1}reset(e,t,i){return this._resetPosition(e,t),this.radius=i,this}}class d extends r{size;constructor(e,t,i,n){super(e,t,a.rectangle),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){if(e instanceof l)return e.intersects(this);if(!(e instanceof d))return!1;let t=this.size.width,i=this.size.height,n=this.position,a=e.position,o=e.size,s=o.width,r=o.height;return a.x<n.x+t&&a.x+s>n.x&&a.y<n.y+i&&a.y+r>n.y}reset(e,t,i,n){return this._resetPosition(e,t),this.size.width=i,this.size.height=n,this}}},6129(e,t,i){i.d(t,{M:()=>s,p:()=>o});var n=i(5560);function a(e){return"z"in e?e.z:n.bo.z}class o{x;y;z;constructor(e=n.bo.x,t=n.bo.y,i=n.bo.z){this.x=e,this.y=t,this.z=i}static get origin(){return o.create(n.bo.x,n.bo.y,n.bo.z)}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,a(e))}static create(e,t,i){return"number"==typeof e?new o(e,t??n.bo.y,i??n.bo.z):new o(e.x,e.y,a(e))}add(e){return o.create(this.x+e.x,this.y+e.y,this.z+a(e))}addTo(e){this.x+=e.x,this.y+=e.y,this.z+=a(e)}copy(){return o.clone(this)}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**n.dm+this.y**n.dm}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}normalize(){let e=this.length;e!=n.dv&&this.multTo(n.hB/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),n.bo.z)}setTo(e){this.x=e.x,this.y=e.y,this.z=a(e)}sub(e){return o.create(this.x-e.x,this.y-e.y,this.z-a(e))}subFrom(e){this.x-=e.x,this.y-=e.y,this.z-=a(e)}_updateFromAngle(e,t){this.x=Math.cos(e)*t,this.y=Math.sin(e)*t}}class s extends o{constructor(e=n.bo.x,t=n.bo.y){super(e,t,n.bo.z)}static get origin(){return s.create(n.bo.x,n.bo.y)}static clone(e){return s.create(e.x,e.y)}static create(e,t){return"number"==typeof e?new s(e,t??n.bo.y):new s(e.x,e.y)}}},7662(e,t,i){var n,a;i.d(t,{H:()=>n}),(a=n||(n={})).increasing="increasing",a.decreasing="decreasing"},1907(e,t,i){var n,a;i.d(t,{F:()=>n}),(a=n||(n={})).bottom="bottom",a.bottomLeft="bottom-left",a.bottomRight="bottom-right",a.left="left",a.none="none",a.right="right",a.top="top",a.topLeft="top-left",a.topRight="top-right",a.outside="outside",a.inside="inside"},8545(e,t,i){var n,a;i.d(t,{v:()=>n}),(a=n||(n={})).bottom="bottom",a.left="left",a.right="right",a.top="top"},1668(e,t,i){var n,a;i.d(t,{g:()=>n}),(a=n||(n={})).auto="auto",a.increase="increase",a.decrease="decrease",a.random="random"},6101(e,t,i){var n,a;i.d(t,{d:()=>n}),(a=n||(n={})).delete="delete",a.wait="wait"},1946(e,t,i){var n,a;i.d(t,{Y:()=>n}),(a=n||(n={})).bounce="bounce",a.none="none",a.out="out",a.destroy="destroy",a.split="split"},5354(e,t,i){var n,a;i.d(t,{q:()=>n}),(a=n||(n={})).precise="precise",a.percent="percent"},3832(e,t,i){var n,a;i.d(t,{H:()=>n}),(a=n||(n={})).darken="darken",a.enlighten="enlighten"},9718(e,t,i){var n,a;i.d(t,{V:()=>n}),(a=n||(n={})).none="none",a.max="max",a.min="min"},8356(e,t,i){var n,a;i.d(t,{B:()=>n}),(a=n||(n={})).configAdded="configAdded",a.containerInit="containerInit",a.particlesSetup="particlesSetup",a.containerStarted="containerStarted",a.containerStopped="containerStopped",a.containerDestroyed="containerDestroyed",a.containerPaused="containerPaused",a.containerPlay="containerPlay",a.containerBuilt="containerBuilt",a.particleAdded="particleAdded",a.particleDestroyed="particleDestroyed",a.particleRemoved="particleRemoved"},1386(e,t,i){var n,a;i.d(t,{x:()=>n}),(a=n||(n={})).normal="normal",a.inside="inside",a.outside="outside"},4819(e,t,i){var n,a;i.d(t,{S:()=>n}),(a=n||(n={})).max="max",a.min="min",a.random="random"},602(e,t,i){i.d(t,{A:()=>s});var n=i(7420),a=i(3478),o=i(1196);class s extends o.O{animation;constructor(){super(),this.animation=new a.i}static create(e,t){let i=new s;return i.load(e),void 0!==t&&((0,n.Kg)(t)||(0,n.cy)(t)?i.load({value:t}):i.load(t)),i}load(e){if(super.load(e),(0,n.kZ)(e))return;let t=e.animation;void 0!==t&&(void 0===t.enable?this.animation.load(e.animation):this.animation.h.load(t))}}},5501(e,t,i){i.d(t,{Q:()=>l,p:()=>r});var n=i(1668),a=i(4819),o=i(7420),s=i(5286);class r{count;decay;delay;enable;speed;sync;constructor(){this.count=0,this.enable=!1,this.speed=1,this.decay=0,this.delay=0,this.sync=!1}load(e){(0,o.kZ)(e)||(void 0!==e.count&&(this.count=(0,s.DT)(e.count)),void 0!==e.enable&&(this.enable=e.enable),void 0!==e.speed&&(this.speed=(0,s.DT)(e.speed)),void 0!==e.decay&&(this.decay=(0,s.DT)(e.decay)),void 0!==e.delay&&(this.delay=(0,s.DT)(e.delay)),void 0!==e.sync&&(this.sync=e.sync))}}class l extends r{mode;startValue;constructor(){super(),this.mode=n.g.auto,this.startValue=a.S.random}load(e){super.load(e),(0,o.kZ)(e)||(void 0!==e.mode&&(this.mode=e.mode),void 0!==e.startValue&&(this.startValue=e.startValue))}}},9172(e,t,i){i.d(t,{V:()=>o});var n=i(1196),a=i(7420);class o{color;image;opacity;position;repeat;size;constructor(){this.color=new n.O,this.color.value="",this.image="",this.position="",this.repeat="",this.size="",this.opacity=1}load(e){(0,a.kZ)(e)||(void 0!==e.color&&(this.color=n.O.create(this.color,e.color)),void 0!==e.image&&(this.image=e.image),void 0!==e.position&&(this.position=e.position),void 0!==e.repeat&&(this.repeat=e.repeat),void 0!==e.size&&(this.size=e.size),void 0!==e.opacity&&(this.opacity=e.opacity))}}},338(e,t,i){i.d(t,{e:()=>s});var n=i(5501),a=i(7420),o=i(5286);class s extends n.p{max;min;offset;constructor(e,t){super(),this.min=e,this.max=t,this.offset=0,this.sync=!0}load(e){super.load(e),(0,a.kZ)(e)||(void 0!==e.max&&(this.max=e.max),void 0!==e.min&&(this.min=e.min),void 0!==e.offset&&(this.offset=(0,o.DT)(e.offset)))}}},8886(e,t,i){i.d(t,{m:()=>a});var n=i(7420);class a{enable;zIndex;constructor(){this.enable=!0,this.zIndex=0}load(e){(0,n.kZ)(e)||(void 0!==e.enable&&(this.enable=e.enable),void 0!==e.zIndex&&(this.zIndex=e.zIndex))}}},3478(e,t,i){i.d(t,{i:()=>s});var n=i(5560),a=i(338),o=i(7420);class s{h=new a.e(n.L1,n.vS);l=new a.e(n.vd,n.$_);s=new a.e(n.yx,n.eu);load(e){(0,o.kZ)(e)||(this.h.load(e.h),this.s.load(e.s),this.l.load(e.l))}}},2215(e,t,i){i.d(t,{J:()=>c});var n=i(5244),a=i(7420),o=i(9172),s=i(8886),r=i(3897),l=i(714),d=i(5286);class c{autoPlay;background;clear;defaultThemes;delay;detectRetina;duration;fpsLimit;fullScreen;hdr;key;name;palette;particles;pauseOnBlur;pauseOnOutsideViewport;preset;resize;smooth;style;zLayers;_container;_pluginManager;constructor(e,t){this._pluginManager=e,this._container=t,this.autoPlay=!0,this.background=new o.V,this.clear=!0,this.defaultThemes={},this.delay=0,this.fullScreen=new s.m,this.detectRetina=!0,this.duration=0,this.fpsLimit=120,this.hdr=!0,this.particles=(0,l.y)(this._pluginManager,this._container),this.pauseOnBlur=!0,this.pauseOnOutsideViewport=!0,this.resize=new r.z,this.smooth=!1,this.style={},this.zLayers=100}load(e){if((0,a.kZ)(e))return;void 0!==e.preset&&(this.preset=e.preset,(0,n.wJ)(this.preset,e=>{this._importPreset(e)})),void 0!==e.palette&&(this.palette=e.palette,this._importPalette(this.palette)),void 0!==e.autoPlay&&(this.autoPlay=e.autoPlay),void 0!==e.clear&&(this.clear=e.clear),void 0!==e.key&&(this.key=e.key),void 0!==e.name&&(this.name=e.name),void 0!==e.delay&&(this.delay=(0,d.DT)(e.delay));let t=e.detectRetina;void 0!==t&&(this.detectRetina=t),void 0!==e.duration&&(this.duration=(0,d.DT)(e.duration));let i=e.fpsLimit;void 0!==i&&(this.fpsLimit=i),void 0!==e.hdr&&(this.hdr=e.hdr),void 0!==e.pauseOnBlur&&(this.pauseOnBlur=e.pauseOnBlur),void 0!==e.pauseOnOutsideViewport&&(this.pauseOnOutsideViewport=e.pauseOnOutsideViewport),void 0!==e.zLayers&&(this.zLayers=e.zLayers),this.background.load(e.background);let o=e.fullScreen;(0,a.Lm)(o)?this.fullScreen.enable=o:this.fullScreen.load(o),this.particles.load(e.particles),this.resize.load(e.resize),this.style=(0,n.zw)(this.style,e.style),void 0!==e.smooth&&(this.smooth=e.smooth),this._pluginManager.plugins.forEach(t=>{t.loadOptions(this._container,this,e)})}_importPalette=e=>{let t=this._pluginManager.getPalette(e);t&&this.load({background:{color:t.background},blend:{enable:!0,mode:t.blendMode},particles:{palette:e}})};_importPreset=e=>{this.load(this._pluginManager.getPreset(e))}}},1196(e,t,i){i.d(t,{O:()=>a});var n=i(7420);class a{value;constructor(){this.value=""}static create(e,t){let i=new a;return i.load(e),void 0!==t&&((0,n.Kg)(t)||(0,n.cy)(t)?i.load({value:t}):i.load(t)),i}load(e){!(0,n.kZ)(e)&&((0,n.kZ)(e.value)||(this.value=e.value))}}},4505(e,t,i){i.d(t,{w:()=>o});var n=i(2506),a=i(7420);class o{horizontal;vertical;constructor(){this.horizontal=new n.F,this.vertical=new n.F}load(e){(0,a.kZ)(e)||(this.horizontal.load(e.horizontal),this.vertical.load(e.vertical))}}},2506(e,t,i){i.d(t,{F:()=>a});var n=i(8239);class a extends n.PV{constructor(){super(),this.value=1}}},5940(e,t,i){i.d(t,{S:()=>s});var n=i(602),a=i(7420),o=i(5286);class s{color;enable;opacity;constructor(){this.enable=!0,this.color=new n.A,this.color.value="#fff",this.opacity=1}load(e){(0,a.kZ)(e)||(void 0!==e.color&&(this.color=n.A.create(this.color,e.color)),void 0!==e.enable&&(this.enable=e.enable),void 0!==e.opacity&&(this.opacity=(0,o.DT)(e.opacity)))}}},6142(e,t,i){i.d(t,{y:()=>h});var n=i(1907),a=i(7420),o=i(9447),s=i(6019),r=i(414),l=i(9345),d=i(7563),c=i(5487),u=i(5286);class h{angle;center;decay;direction;distance;drift;enable;gravity;outModes;path;random;size;speed;spin;straight;vibrate;warp;constructor(){this.angle=new o.h,this.center=new s.Z,this.decay=0,this.distance={},this.direction=n.F.none,this.drift=0,this.enable=!1,this.gravity=new r.y,this.path=new l.v,this.outModes=new d.j,this.random=!1,this.size=!1,this.speed=2,this.spin=new c.t,this.straight=!1,this.vibrate=!1,this.warp=!1}load(e){if((0,a.kZ)(e))return;this.angle.load((0,a.Et)(e.angle)?{value:e.angle}:e.angle),this.center.load(e.center),void 0!==e.decay&&(this.decay=(0,u.DT)(e.decay)),void 0!==e.direction&&(this.direction=e.direction),void 0!==e.distance&&(this.distance=(0,a.Et)(e.distance)?{horizontal:e.distance,vertical:e.distance}:{...e.distance}),void 0!==e.drift&&(this.drift=(0,u.DT)(e.drift)),void 0!==e.enable&&(this.enable=e.enable),this.gravity.load(e.gravity);let t=e.outModes;void 0!==t&&((0,a.Gv)(t)?this.outModes.load(t):this.outModes.load({default:t})),this.path.load(e.path),void 0!==e.random&&(this.random=e.random),void 0!==e.size&&(this.size=e.size),void 0!==e.speed&&(this.speed=(0,u.DT)(e.speed)),this.spin.load(e.spin),void 0!==e.straight&&(this.straight=e.straight),void 0!==e.vibrate&&(this.vibrate=e.vibrate),void 0!==e.warp&&(this.warp=e.warp)}}},9447(e,t,i){i.d(t,{h:()=>o});var n=i(7420),a=i(5286);class o{offset;value;constructor(){this.offset=0,this.value=90}load(e){(0,n.kZ)(e)||(void 0!==e.offset&&(this.offset=(0,a.DT)(e.offset)),void 0!==e.value&&(this.value=(0,a.DT)(e.value)))}}},6019(e,t,i){i.d(t,{Z:()=>o});var n=i(5354),a=i(7420);class o{mode;radius;x;y;constructor(){this.x=50,this.y=50,this.mode=n.q.percent,this.radius=0}load(e){(0,a.kZ)(e)||(void 0!==e.x&&(this.x=e.x),void 0!==e.y&&(this.y=e.y),void 0!==e.mode&&(this.mode=e.mode),void 0!==e.radius&&(this.radius=e.radius))}}},414(e,t,i){i.d(t,{y:()=>o});var n=i(7420),a=i(5286);class o{acceleration;enable;inverse;maxSpeed;constructor(){this.acceleration=9.81,this.enable=!1,this.inverse=!1,this.maxSpeed=50}load(e){(0,n.kZ)(e)||(void 0!==e.acceleration&&(this.acceleration=(0,a.DT)(e.acceleration)),void 0!==e.enable&&(this.enable=e.enable),void 0!==e.inverse&&(this.inverse=e.inverse),void 0!==e.maxSpeed&&(this.maxSpeed=(0,a.DT)(e.maxSpeed)))}}},7563(e,t,i){i.d(t,{j:()=>o});var n=i(1946),a=i(7420);class o{bottom;default;left;right;top;constructor(){this.default=n.Y.out}load(e){(0,a.kZ)(e)||(void 0!==e.default&&(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)}}},9345(e,t,i){i.d(t,{v:()=>s});var n=i(8239),a=i(5244),o=i(7420);class s{clamp;delay;enable;generator;options;constructor(){this.clamp=!0,this.delay=new n.PV,this.enable=!1,this.options={}}load(e){!(0,o.kZ)(e)&&(void 0!==e.clamp&&(this.clamp=e.clamp),this.delay.load(e.delay),void 0!==e.enable&&(this.enable=e.enable),this.generator=e.generator,e.options&&(this.options=(0,a.zw)(this.options,e.options)))}}},5487(e,t,i){i.d(t,{t:()=>s});var n=i(5244),a=i(7420),o=i(5286);class s{acceleration;enable;position;constructor(){this.acceleration=0,this.enable=!1}load(e){!(0,a.kZ)(e)&&(void 0!==e.acceleration&&(this.acceleration=(0,o.DT)(e.acceleration)),void 0!==e.enable&&(this.enable=e.enable),e.position&&(this.position=(0,n.zw)({},e.position)))}}},7086(e,t,i){i.d(t,{M:()=>a});var n=i(7420);class a{enable;height;width;constructor(){this.enable=!1,this.width=1920,this.height=1080}load(e){if((0,n.kZ)(e))return;void 0!==e.enable&&(this.enable=e.enable);let t=e.width;void 0!==t&&(this.width=t);let i=e.height;void 0!==i&&(this.height=i)}}},7501(e,t,i){i.d(t,{N:()=>s});var n=i(7086),a=i(9682),o=i(7420);class s{density;limit;value;constructor(){this.density=new n.M,this.limit=new a.A,this.value=0}load(e){(0,o.kZ)(e)||(this.density.load(e.density),this.limit.load(e.limit),void 0!==e.value&&(this.value=e.value))}}},9682(e,t,i){i.d(t,{A:()=>o});var n=i(6101),a=i(7420);class o{mode;value;constructor(){this.mode=n.d.delete,this.value=0}load(e){(0,a.kZ)(e)||(void 0!==e.mode&&(this.mode=e.mode),void 0!==e.value&&(this.value=e.value))}}},4666(e,t,i){i.d(t,{Y:()=>s});var n=i(4770),a=i(8239),o=i(7420);class s extends a.AI{animation;constructor(){super(),this.animation=new n.I,this.value=1}load(e){if((0,o.kZ)(e))return;super.load(e);let t=e.animation;void 0!==t&&this.animation.load(t)}}},4770(e,t,i){i.d(t,{I:()=>s});var n=i(9718),a=i(5501),o=i(7420);class s extends a.Q{destroy;constructor(){super(),this.destroy=n.V.none,this.speed=2}load(e){super.load(e),(0,o.kZ)(e)||void 0!==e.destroy&&(this.destroy=e.destroy)}}},8008(e,t,i){i.d(t,{U:()=>v});var n=i(5244),a=i(7420);class o{close;options;type;constructor(){this.close=!0,this.options={},this.type=[]}load(e){if((0,a.kZ)(e))return;let t=e.options;if(void 0!==t)for(let e in t){let i=t[e];i&&(this.options[e]=(0,n.zw)(this.options[e]??{},i))}void 0!==e.close&&(this.close=e.close),void 0!==e.type&&(this.type=e.type)}}var s=i(5940),r=i(6142),l=i(4666),d=i(4505),c=i(7501),u=i(9430),h=i(8806),p=i(7793),f=i(148);class v{bounce;effect;fill;groups;move;number;opacity;palette;reduceDuplicates;shape;size;stroke;zIndex;_container;_pluginManager;constructor(e,t){this._pluginManager=e,this._container=t,this.bounce=new d.w,this.effect=new o,this.fill=new s.S,this.groups={},this.move=new r.y,this.number=new c.N,this.opacity=new l.Y,this.reduceDuplicates=!1,this.shape=new u.y,this.size=new h.o,this.stroke=new p.t,this.zIndex=new f.P}load(e){if((0,a.kZ)(e))return;if(e.palette&&(this.palette=e.palette,this._importPalette(this.palette)),void 0!==e.groups)for(let t of Object.keys(e.groups)){if(!(t in e.groups))continue;let i=e.groups[t];void 0!==i&&(this.groups[t]=(0,n.zw)(this.groups[t]??{},i))}void 0!==e.reduceDuplicates&&(this.reduceDuplicates=e.reduceDuplicates),this.bounce.load(e.bounce),this.effect.load(e.effect),this.move.load(e.move),this.number.load(e.number),this.opacity.load(e.opacity),this.shape.load(e.shape),this.size.load(e.size),this.zIndex.load(e.zIndex);let t=e.fill;t&&(this.fill=(0,n.wJ)(t,e=>{let t=new s.S;return t.load(e),t}));let i=e.stroke;if(i&&(this.stroke=(0,n.wJ)(i,e=>{let t=new p.t;return t.load(e),t})),this._container){for(let t of this._pluginManager.plugins)t.loadParticlesOptions&&t.loadParticlesOptions(this._container,this,e);let t=this._pluginManager.updaters.get(this._container);if(t)for(let i of t)i.loadOptions&&i.loadOptions(this,e)}}_importPalette=e=>{let t=this._pluginManager.getPalette(e);t&&this.load({fill:{color:t.fill?{value:t.colors}:void 0,enable:t.fill},stroke:t.fill?void 0:t.colors.map(e=>({color:{value:e},width:1})),blend:{enable:!0,mode:t.blendMode}})}}},9430(e,t,i){i.d(t,{y:()=>o});var n=i(5244),a=i(7420);class o{close;options;type;constructor(){this.close=!0,this.options={},this.type="circle"}load(e){if((0,a.kZ)(e))return;let t=e.options;if(void 0!==t)for(let e in t){let i=t[e];i&&(this.options[e]=(0,n.zw)(this.options[e]??{},i))}void 0!==e.close&&(this.close=e.close),void 0!==e.type&&(this.type=e.type)}}},8806(e,t,i){i.d(t,{o:()=>s});var n=i(8239),a=i(7502),o=i(7420);class s extends n.AI{animation;constructor(){super(),this.animation=new a.q,this.value=3}load(e){if(super.load(e),(0,o.kZ)(e))return;let t=e.animation;void 0!==t&&this.animation.load(t)}}},7502(e,t,i){i.d(t,{q:()=>s});var n=i(9718),a=i(5501),o=i(7420);class s extends a.Q{destroy;constructor(){super(),this.destroy=n.V.none,this.speed=5}load(e){super.load(e),(0,o.kZ)(e)||void 0!==e.destroy&&(this.destroy=e.destroy)}}},7793(e,t,i){i.d(t,{t:()=>s});var n=i(602),a=i(7420),o=i(5286);class s{color;opacity;width;constructor(){this.width=0}load(e){(0,a.kZ)(e)||(void 0!==e.color&&(this.color=n.A.create(this.color,e.color)),void 0!==e.width&&(this.width=(0,o.DT)(e.width)),void 0!==e.opacity&&(this.opacity=(0,o.DT)(e.opacity)))}}},148(e,t,i){i.d(t,{P:()=>o});var n=i(8239),a=i(7420);class o extends n.PV{opacityRate;sizeRate;velocityRate;constructor(){super(),this.opacityRate=1,this.sizeRate=1,this.velocityRate=1}load(e){super.load(e),(0,a.kZ)(e)||(void 0!==e.opacityRate&&(this.opacityRate=e.opacityRate),void 0!==e.sizeRate&&(this.sizeRate=e.sizeRate),void 0!==e.velocityRate&&(this.velocityRate=e.velocityRate))}}},3897(e,t,i){i.d(t,{z:()=>a});var n=i(7420);class a{delay;enable;constructor(){this.delay=.5,this.enable=!0}load(e){(0,n.kZ)(e)||(void 0!==e.delay&&(this.delay=e.delay),void 0!==e.enable&&(this.enable=e.enable))}}},8239(e,t,i){i.d(t,{AI:()=>l,Jm:()=>r,PV:()=>s});var n=i(5501),a=i(7420),o=i(5286);class s{value;constructor(){this.value=0}load(e){!(0,a.kZ)(e)&&((0,a.kZ)(e.value)||(this.value=(0,o.DT)(e.value)))}}class r extends s{animation=new n.p;load(e){if(super.load(e),(0,a.kZ)(e))return;let t=e.animation;void 0!==t&&this.animation.load(t)}}class l extends r{animation;constructor(){super(),this.animation=new n.Q}load(e){super.load(e)}}},1912(e,t,i){i.d(t,{IU:()=>s,KG:()=>c,Md:()=>o,Sn:()=>a,VG:()=>h,Wb:()=>p,gF:()=>u,k:()=>l,p0:()=>r,z5:()=>d});var n=i(5560);function a(e,t,i){e.fillStyle=i??"rgba(0,0,0,0)",e.fillRect(n.bo.x,n.bo.y,t.width,t.height)}function o(e,t,i,a){if(!i)return;let o=e.globalAlpha;e.globalAlpha=a,e.drawImage(i,n.bo.x,n.bo.y,t.width,t.height),e.globalAlpha=o}function s(e,t){e.clearRect(n.bo.x,n.bo.y,t.width,t.height)}function r(e){let{container:t,context:i,particle:a,delta:o,colorStyles:s,radius:r,opacity:p,transform:f}=e,{effectDrawers:v,shapeDrawers:g}=t,m=a.getPosition(),y=a.getTransformData(f),b=n.Pf,x={x:m.x,y:m.y};i.setTransform(y.a,y.b,y.c,y.d,m.x,m.y),s.fill&&(i.fillStyle=s.fill);let w=!!a.fillEnabled,M=a.strokeWidth??n.Dv;i.lineWidth=M,s.stroke&&(i.strokeStyle=s.stroke);let z={context:i,particle:a,radius:r,drawRadius:r*b,opacity:p,delta:o,pixelRatio:t.retina.pixelRatio,fill:w,stroke:M>n.Dv,transformData:y,position:{...m},drawPosition:x,drawScale:b};for(let e of t.plugins)e.drawParticleTransform?.(z);let S=a.effect?v.get(a.effect):void 0,P=a.shape?g.get(a.shape):void 0;d(S,z),h(P,z),c(P,z),u(P,z),l(S,z),i.resetTransform()}function l(e,t){if(!e?.drawAfter)return;let{particle:i}=t;i.effect&&e.drawAfter(t)}function d(e,t){if(!e?.drawBefore)return;let{particle:i}=t;i.effect&&e.drawBefore(t)}function c(e,t){if(!e)return;let{context:i,fill:n,particle:a,stroke:o}=t;a.shape&&(i.beginPath(),e.draw(t),a.shapeClose&&i.closePath(),o&&i.stroke(),n&&i.fill())}function u(e,t){if(!e?.afterDraw)return;let{particle:i}=t;i.shape&&e.afterDraw(t)}function h(e,t){if(!e?.beforeDraw)return;let{particle:i}=t;i.shape&&e.beforeDraw(t)}function p(e,t,i,n){t.drawParticle&&t.drawParticle(e,i,n)}},8329(e,t,i){i.d(t,{BN:()=>h,EY:()=>P,Jv:()=>A,K6:()=>g,Ko:()=>F,LC:()=>S,OH:()=>w,O_:()=>_,PG:()=>R,R5:()=>v,YL:()=>b,_h:()=>O,ay:()=>x,eg:()=>y,mK:()=>f,pz:()=>k,qe:()=>p,xx:()=>M,yx:()=>T,zI:()=>m});var n=i(5286),a=i(5560),o=i(7420),s=i(3832),r=i(7662),l=i(5244);let d=new Map;function c(e,t){let i=d.get(e);return i||(i=t(),d.size>=1e3&&[...d.keys()].slice(0,1e3*a.MX).forEach(e=>d.delete(e)),d.set(e,i)),i}function u(e,t){if(t){for(let i of e.colorManagers.values())if(i.accepts(t))return i.parseString(t)}}function h(e,t,i,n=!0){if(!t)return;let a=(0,o.Kg)(t)?{value:t}:t;if((0,o.Kg)(a.value))return p(e,a.value,i,n);if((0,o.cy)(a.value)){let t=(0,l.Vh)(a.value,i,n);if(!t)return;return h(e,{value:t})}for(let t of e.colorManagers.values()){let e=t.handleRangeColor(a);if(e)return e}}function p(e,t,i,n=!0){if(!t)return;let s=(0,o.Kg)(t)?{value:t}:t;if((0,o.Kg)(s.value))return s.value===a.mR?w():u(e,s.value);if((0,o.cy)(s.value)){let t=(0,l.Vh)(s.value,i,n);if(!t)return;return p(e,{value:t})}for(let t of e.colorManagers.values()){let e=t.handleColor(s);if(e)return e}}function f(e,t,i,n=!0){let a=p(e,t,i,n);return a?g(a):void 0}function v(e,t,i,n=!0){let a=h(e,t,i,n);return a?g(a):void 0}function g(e){let t=e.r/a.oi,i=e.g/a.oi,n=e.b/a.oi,o=Math.max(t,i,n),s=Math.min(t,i,n),r={h:a.L1,l:(o+s)*a.MX,s:a.yx};return o!==s&&(r.s=r.l<a.MX?(o-s)/(o+s):(o-s)/(a.gd-o-s),t===o?r.h=(i-n)/(o-s):i===o?r.h=a.gd+(n-t)/(o-s):r.h=a.gd*a.gd+(t-i)/(o-s)),r.l*=a.$_,r.s*=a.eu,r.h*=a.U0,r.h<a.L1&&(r.h+=a.vS),r.h>=a.vS&&(r.h-=a.vS),r}function m(e,t){return u(e,t)?.a}function y(e,t){return u(e,t)}function b(e){let t=(e.h%a.vS+a.vS)%a.vS,i=Math.max(a.yx,Math.min(a.eu,e.s)),n=Math.max(a.vd,Math.min(a.$_,e.l)),o=t/a.vS,s=i/a.eu,r=n/a.$_;if(i===a.yx){let e=Math.round(r*a.oi);return{r:e,g:e,b:e}}let l=(e,t,i)=>(i<0&&i++,i>1&&i--,i*a.zg<1)?e+(t-e)*a.zg*i:i*a.gd<1?t:i*a.Nu<+a.gd?e+(t-e)*(a.gd/a.Nu-i)*a.zg:e,d=r<a.MX?r*(a.aE+s):r+s-r*s,c=a.gd*r-d,u=a.BF/a.Nu;return{r:Math.round(Math.min(a.oi,a.oi*l(c,d,o+u))),g:Math.round(Math.min(a.oi,a.oi*l(c,d,o))),b:Math.round(Math.min(a.oi,a.oi*l(c,d,o-u)))}}function x(e){let t=b(e);return{a:e.a,b:t.b,g:t.g,r:t.r}}function w(e){let t=e??a.Fl,i=a.oi+a.D_,o=()=>Math.floor((0,n.e4)(t,i));return{b:o(),g:o(),r:o()}}function M(e,t,i){let n=i??a.hv;return c(`rgb-${e.r.toFixed(2)}-${e.g.toFixed(2)}-${e.b.toFixed(2)}-${t?"hdr":"sdr"}-${n.toString()}`,()=>{var n,o;return t?z(e,i):(n=e,o=i,`rgba(${n.r.toString()}, ${n.g.toString()}, ${n.b.toString()}, ${(o??a.hv).toString()})`)})}function z(e,t){return`color(display-p3 ${(e.r/a.oi).toString()} ${(e.g/a.oi).toString()} ${(e.b/a.oi).toString()} / ${(t??a.hv).toString()})`}function S(e,t,i){let n=i??a.hv;return c(`hsl-${e.h.toFixed(2)}-${e.s.toFixed(2)}-${e.l.toFixed(2)}-${t?"hdr":"sdr"}-${n.toString()}`,()=>{var n,o,s,r;return t?(n=e,o=i,z(b(n),o)):(s=e,r=i,`hsla(${s.h.toString()}, ${s.s.toString()}%, ${s.l.toString()}%, ${(r??a.hv).toString()})`)})}function P(e,t,i,a){let o=e,s=t;return"r"in o||(o=b(e)),"r"in s||(s=b(t)),{b:(0,n.jh)(o.b,s.b,i,a),g:(0,n.jh)(o.g,s.g,i,a),r:(0,n.jh)(o.r,s.r,i,a)}}function O(e,t,i){if(i===a.mR)return w();if(i!==a.BW)return i;{let i=e.getFillColor()??e.getStrokeColor(),n=t?.getFillColor()??t?.getStrokeColor();if(i&&n&&t)return P(i,n,e.getRadius(),t.getRadius());{let e=i??n;if(e)return b(e)}}}function R(e,t,i,n){let s=(0,o.Kg)(t)?t:t.value;return s===a.mR?n?h(e,{value:s}):i?a.mR:a.BW:s===a.BW?a.BW:h(e,{value:s})}function _(e){return void 0===e?void 0:{h:e.h.value,s:e.s.value,l:e.l.value}}function k(e,t,i){let n={h:{enable:!1,value:e.h,min:a.L1,max:a.vS},s:{enable:!1,value:e.s,min:a.yx,max:a.eu},l:{enable:!1,value:e.l,min:a.vd,max:a.$_}};return t&&(E(n.h,t.h,i),E(n.s,t.s,i),E(n.l,t.l,i)),n}function E(e,t,i){e.enable=t.enable,e.min=t.min,e.max=t.max,e.enable?(e.velocity=(0,n.VG)(t.speed)/a.a5*i,e.decay=a.WH-(0,n.VG)(t.decay),e.status=r.H.increasing,e.loops=a.hK,e.maxLoops=(0,n.VG)(t.count),e.time=a.tR,e.delayTime=(0,n.VG)(t.delay)*a.Xu,t.sync||(e.velocity*=(0,n.G0)(),e.value*=(0,n.G0)()),e.initialValue=e.value,e.offset=(0,n.DT)(t.offset)):e.velocity=a.jn}function F(e,t,i){if(!e.enable||(e.maxLoops??0)>0&&(e.loops??0)>(e.maxLoops??0)||(e.time??=0,(e.delayTime??0)>0&&e.time<(e.delayTime??0)&&(e.time+=i.value),(e.delayTime??0)>0&&e.time<(e.delayTime??0)))return;let a=e.offset?(0,n.vE)(e.offset):0,o=(e.velocity??0)*i.factor+3.6*a,s=e.decay??1,l=e.max,d=e.min;t&&e.status!==r.H.increasing?(e.value-=o,e.value<d&&(e.loops??=0,e.loops++,e.status=r.H.increasing)):(e.value+=o,e.value>l&&(e.loops??=0,e.loops++,t?e.status=r.H.decreasing:e.value-=l)),e.velocity&&1!==s&&(e.velocity*=s),e.value=(0,n.qE)(e.value,d,l)}function A(e,t){if(!e)return;let{h:i,s:n,l:a}=e;F(i,!1,t),F(n,!0,t),F(a,!0,t)}function T(e,t,i){return{h:e.h,s:e.s,l:e.l+(t===s.H.darken?-a.iU:a.iU)*i}}},7382(e,t,i){i.d(t,{B:()=>a,t:()=>o});let n={debug:console.debug,error:(e,t)=>{console.error(`tsParticles - Error - ${e}`,t)},info:console.info,log:console.log,trace:console.trace,verbose:console.log,warning:console.warn};function a(e){n.debug=e.debug,n.error=e.error,n.info=e.info,n.log=e.log,n.verbose=e.verbose,n.warning=e.warning}function o(){return n}},5286(e,t,i){i.d(t,{$m:()=>_,AD:()=>p,DT:()=>function e(t,i){if(t===i||void 0===i&&(0,s.Et)(t))return t;let n=x(t),a=w(t);return void 0!==i?{min:Math.min(n,i),max:Math.max(a,i)}:e(n,a)},G0:()=>u,JY:()=>R,M3:()=>L,Mh:()=>F,Nx:()=>T,OE:()=>c,OW:()=>k,Sc:()=>z,Sg:()=>x,VG:()=>b,W9:()=>w,Yf:()=>S,e4:()=>h,eh:()=>E,gp:()=>P,i0:()=>f,jh:()=>m,l1:()=>A,pu:()=>O,px:()=>v,qE:()=>g,qM:()=>I,vE:()=>y,vr:()=>M});var n=i(1907),a=i(5560),o=i(6129),s=i(7420);let r=Math.PI/180,l=Math.random,d={nextFrame:e=>requestAnimationFrame(e),cancel:e=>{cancelAnimationFrame(e)}};function c(e=Math.random){l=e}function u(){return g(l(),0,1-Number.EPSILON)}function h(e,t){return u()*(t-e)+e}function p(e,t){d.nextFrame=e,d.cancel=t}function f(e){return d.nextFrame(e)}function v(e){d.cancel(e)}function g(e,t,i){return Math.min(Math.max(e,t),i)}function m(e,t,i,n){return Math.floor((e*i+t*n)/(i+n))}function y(e){let t=w(e),i=x(e);return t===i&&(i=0),h(i,t)}function b(e){return(0,s.Et)(e)?e:y(e)}function x(e){return(0,s.Et)(e)?e:e.min}function w(e){return(0,s.Et)(e)?e:e.max}function M(e,t){let i=e.x-t.x,n=e.y-t.y;return{dx:i,dy:n,distance:Math.hypot(i,n)}}function z(e,t){let i=e.x-t.x,n=e.y-t.y;return i*i+n*n}function S(e,t){return Math.sqrt(z(e,t))}function P(e,t,i){return z(e,t)<=i*i}function O(e){return e*r}function R(e,t,i){if((0,s.Et)(e))return e*r;switch(e){case n.F.top:return-Math.PI*a.MX;case n.F.topRight:return-Math.PI*a.$G;case n.F.right:return a.Ie;case n.F.bottomRight:return Math.PI*a.$G;case n.F.bottom:return Math.PI*a.MX;case n.F.bottomLeft:return Math.PI*a.Rq;case n.F.left:return Math.PI;case n.F.topLeft:return-Math.PI*a.Rq;case n.F.inside:return Math.atan2(i.y-t.y,i.x-t.x);case n.F.outside:return Math.atan2(t.y-i.y,t.x-i.x);default:return u()*a.R1}}function _(e){let t=o.M.origin;return t.length=1,t.angle=e,t}function k(e,t,i,n){return o.M.create(e.x*(i-n)/(i+n)+t.x*a.gd*n/(i+n),e.y)}function E(e){return e.position?.x!==void 0&&void 0!==e.position.y?{x:e.position.x*e.size.width/a.a5,y:e.position.y*e.size.height/a.a5}:void 0}function F(e){return{x:(e.position?.x??u()*a.a5)*e.size.width/a.a5,y:(e.position?.y??u()*a.a5)*e.size.height/a.a5}}function A(e){let t={x:e.position?.x!==void 0?b(e.position.x):void 0,y:e.position?.y!==void 0?b(e.position.y):void 0};return F({size:e.size,position:t})}function T(e){let{position:t,size:i}=e;return{x:t?.x??u()*i.width,y:t?.y??u()*i.height}}function I(e){let t={x:e.position?.x!==void 0?b(e.position.x):void 0,y:e.position?.y!==void 0?b(e.position.y):void 0};return T({size:e.size,position:t})}function L(e){return e?e.endsWith("%")?parseFloat(e)/a.a5:parseFloat(e):1}},714(e,t,i){i.d(t,{Z:()=>a,y:()=>o});var n=i(8008);function a(e,...t){for(let i of t)e.load(i)}function o(e,t,...i){let s=new n.U(e,t);return a(s,...i),s}},7420(e,t,i){function n(e){return"boolean"==typeof e}function a(e){return"string"==typeof e}function o(e){return"number"==typeof e}function s(e){return"function"==typeof e}function r(e){return"object"==typeof e&&null!==e}function l(e){return Array.isArray(e)}function d(e){return null==e}i.d(t,{Et:()=>o,Gv:()=>r,Kg:()=>a,Lm:()=>n,Tn:()=>s,cy:()=>l,kZ:()=>d})},5244(e,t,i){i.d(t,{AE:()=>S,BR:()=>m,Bj:()=>p,E9:()=>A,HQ:()=>$,Kp:()=>V,O2:()=>z,Ot:()=>G,T5:()=>v,TA:()=>_,Tg:()=>P,Tj:()=>M,UC:()=>I,Vh:()=>w,Xs:()=>E,YC:()=>T,hJ:()=>D,hn:()=>b,lV:()=>g,n0:()=>x,pE:()=>O,q8:()=>f,tG:()=>y,td:()=>L,w3:()=>k,wJ:()=>R,zw:()=>function e(t,...i){for(let n of i){if((0,o.kZ)(n))continue;if(!(0,o.Gv)(n)){t=n;continue}Array.isArray(n)?Array.isArray(t)||(t=[]):(!(0,o.Gv)(t)||Array.isArray(t))&&(t={});let i=Object.keys(n),a=new Set(["__proto__","constructor","prototype"]);if(!i.some(e=>{let t=n[e];return(0,o.Gv)(t)||Array.isArray(t)})){let e=t;for(let t of i)if(!a.has(t)&&t in n){let i=n[t];void 0!==i&&(e[t]=i)}continue}for(let o of i){if(a.has(o))continue;let i=t,s=n[o];i[o]=Array.isArray(s)?s.map(t=>e(void 0,t)):e(i[o],s)}}return t}});var n=i(5286),a=i(5560),o=i(7420),s=i(1668),r=i(7662),l=i(9718),d=i(8545),c=i(5354),u=i(4819),h=i(6129);function p(e,t){let i=new Map,n=t?.maxSize,a=t?.ttlMs,o=t?.keyFn,s=(e,t=new WeakSet)=>{if(null===e)return"null";let i=typeof e;if("undefined"===i)return"undefined";if("number"===i||"boolean"===i||"string"===i)return JSON.stringify(e);if("function"===i)try{return e.toString()}catch{return'"[Function]"'}if("symbol"===i)try{return e.toString()}catch{return'"[Symbol]"'}if(Array.isArray(e))return`[${e.map(e=>s(e,t)).join(",")}]`;if(t.has(e))return'"[Circular]"';t.add(e);let n=Object.keys(e).sort();return`{${n.map(i=>`${JSON.stringify(i)}:${s(e[i],t)}`).join(",")}}`};return(...t)=>{let r,l=(r=t,o?o(r):s(r)),d=Date.now(),c=i.get(l);if(void 0!==c)if(!a||!(d-c.ts>a))return i.delete(l),i.set(l,{value:c.value,ts:c.ts}),c.value;else i.delete(l);let u=e(...t);if(i.set(l,{value:u,ts:d}),"number"==typeof n&&n>=0)for(;i.size>n;){let e=i.keys().next().value;if(void 0===e)break;i.delete(e)}return u}}function f(){return"u">typeof matchMedia}function v(){return globalThis.document}function g(e){if(f())return matchMedia(e)}function m(e){if("u">typeof IntersectionObserver)return new IntersectionObserver(e)}function y(e){if("u">typeof MutationObserver)return new MutationObserver(e)}function b(e,t){return e===t||(0,o.cy)(t)&&t.includes(e)}function x(e){return Math.floor((0,n.G0)()*e.length)}function w(e,t,i=!0){return e[void 0!==t&&i?t%e.length:x(e)]}function M(e,t,i,n,a){return z(S(e,n??0),t,i,a)}function z(e,t,i,n){let a=!0;return n&&n!==d.v.bottom||(a=e.top<t.height+i.x),a&&(!n||n===d.v.left)&&(a=e.right>i.x),a&&(!n||n===d.v.right)&&(a=e.left<t.width+i.y),a&&(!n||n===d.v.top)&&(a=e.bottom>i.y),a}function S(e,t){return{bottom:e.y+t,left:e.x-t,right:e.x+t,top:e.y-t}}function P(e){return{position:e.getPosition(),radius:e.getRadius(),mass:e.getMass(),velocity:e.velocity,factor:h.M.create((0,n.VG)(e.options.bounce.horizontal.value),(0,n.VG)(e.options.bounce.vertical.value))}}function O(e,t){let{x:i,y:a}=e.velocity.sub(t.velocity),[o,s]=[e.position,t.position],{dx:r,dy:l}=(0,n.vr)(s,o);if(i*r+a*l<0)return;let d=-Math.atan2(l,r),c=e.mass,u=t.mass,h=e.velocity.rotate(d),p=t.velocity.rotate(d),f=(0,n.OW)(h,p,c,u),v=(0,n.OW)(p,h,c,u),g=f.rotate(-d),m=v.rotate(-d);e.velocity.x=g.x*e.factor.x,e.velocity.y=g.y*e.factor.y,t.velocity.x=m.x*t.factor.x,t.velocity.y=m.y*t.factor.y}function R(e,t){return(0,o.cy)(e)?e.map((e,i)=>t(e,i)):t(e,0)}function _(e,t,i){return(0,o.cy)(e)?w(e,t,i):e}function k(e,t){return(0,o.cy)(e)?e.find((e,i)=>t(e,i)):t(e,0)?e:void 0}function E(e,t){let i=e.value,o=e.animation,l={delayTime:(0,n.VG)(o.delay)*a.Xu,enable:o.enable,value:(0,n.VG)(e.value)*t,max:(0,n.W9)(i)*t,min:(0,n.Sg)(i)*t,loops:0,maxLoops:(0,n.VG)(o.count),time:0};if(o.enable){switch(l.decay=1-(0,n.VG)(o.decay),o.mode){case s.g.increase:l.status=r.H.increasing;break;case s.g.decrease:l.status=r.H.decreasing;break;case s.g.random:l.status=(0,n.G0)()>=a.MX?r.H.increasing:r.H.decreasing}let e=o.mode===s.g.auto;switch(o.startValue){case u.S.min:l.value=l.min,e&&(l.status=r.H.increasing);break;case u.S.max:l.value=l.max,e&&(l.status=r.H.decreasing);break;case u.S.random:default:l.value=(0,n.vE)(l),e&&(l.status=(0,n.G0)()>=a.MX?r.H.increasing:r.H.decreasing)}}return l.initialValue=l.value,l}function F(e,t){if(e.mode!==c.q.percent){let{mode:t,...i}=e;return i}return"x"in e?{x:e.x/a.a5*t.width,y:e.y/a.a5*t.height}:{width:e.width/a.a5*t.width,height:e.height/a.a5*t.height}}function A(e,t){return F(e,t)}function T(e,t){return F(e,t)}function I(e,t,i,a,o){if(e.destroyed||!t.enable||(t.maxLoops??0)>0&&(t.loops??0)>(t.maxLoops??0))return;let s=(t.velocity??0)*o.factor,d=t.min,c=t.max,u=t.decay??1;if(t.time??=0,(t.delayTime??0)>0&&t.time<(t.delayTime??0)&&(t.time+=o.value),!((t.delayTime??0)>0)||!(t.time<(t.delayTime??0))){switch(t.status){case r.H.increasing:t.value+=s;break;case r.H.decreasing:t.value-=s}switch(t.velocity&&1!==u&&(t.velocity*=u),t.status){case r.H.increasing:t.value>=c&&(i?t.status=r.H.decreasing:t.value-=c,t.loops??=0,t.loops++);break;case r.H.decreasing:t.value<=d&&(i?t.status=r.H.increasing:t.value+=c,t.loops??=0,t.loops++)}var h=t.value;switch(a){case l.V.max:h>=c&&e.destroy();break;case l.V.min:h<=d&&e.destroy()}e.destroyed||(t.value=(0,n.qE)(t.value,d,c))}}function L(e){let t=v().createElement("div").style;for(let i in e){let n=e[i];if(!(i in e)||(0,o.kZ)(n))continue;let a=e.getPropertyValue?.(n);if(!a)continue;let s=e.getPropertyPriority?.(n);s?t.setProperty(n,a,s):t.setProperty(n,a)}return t}let D=p(function(e){let t=v().createElement("div").style,i={width:"100%",height:"100%",margin:"0",padding:"0",borderWidth:"0",position:"fixed",zIndex:e.toString(10),"z-index":e.toString(10),top:"0",left:"0"};for(let e in i){let n=i[e];void 0!==n&&t.setProperty(e,n)}return t});function V(e,t,i,n,a){if(n){let n={passive:!0};(0,o.Lm)(a)?n.capture=a:void 0!==a&&(n=a),e.addEventListener(t,i,n)}else e.removeEventListener(t,i,a)}async function $(e,t,i,n=!1){let a=t.get(e);return(!a||n)&&(a=await Promise.all([...i.values()].map(t=>t(e))),t.set(e,a)),a}async function G(e,t,i,n=!1){let a=t.get(e);return(!a||n)&&(a=new Map(await Promise.all([...i.entries()].map(([t,i])=>i(e).then(e=>[t,e])))),t.set(e,a)),a}},8753(e,t,i){i.d(t,{HKZ:()=>R.H,A9e:()=>A.A,gmr:()=>z.g,pK_:()=>T.p,H_P:()=>F.H,Jmi:()=>el.Jm,VS$:()=>I.V,dgY:()=>b.dg,jlt:()=>b.jl,evc:()=>L.e,VKE:()=>_.V,mgy:()=>l,Bx4:()=>h.B,SQl:()=>q.S,mcU:()=>D.m,hqM:()=>r,i74:()=>V.i,dtg:()=>S.d,yUV:()=>j.y,hzL:()=>K.h,Zgv:()=>N.Z,FWc:()=>w.F,y1u:()=>U.y,vU7:()=>X.v,Y4E:()=>et.Y,IhC:()=>ei.I,JYR:()=>$.J,Oit:()=>G.O,Yzx:()=>P.Y,v5k:()=>M.v,j$q:()=>W.j,x_I:()=>k.x,wvn:()=>B.w,F5W:()=>C.F,M1g:()=>ee.M,NeW:()=>Y.N,Ad4:()=>Q.A,UOj:()=>Z.U,qiC:()=>O.q,Q4c:()=>T.Q,AIw:()=>el.AI,M_G:()=>b.M_,z0z:()=>er.z,pTR:()=>s,ypk:()=>en.y,or0:()=>ea.o,qvJ:()=>eo.q,tKH:()=>J.t,SKz:()=>E.S,tcj:()=>H.t,PVU:()=>el.PV,Miz:()=>x.M,pGL:()=>x.p,Pyx:()=>es.P,yxh:()=>ec.yx,i0Z:()=>v.i0,O2_:()=>c.O2,n02:()=>c.n0,NxB:()=>v.Nx,qMV:()=>v.qM,ehY:()=>v.eh,MhH:()=>v.Mh,l1q:()=>v.l1,AEc:()=>c.AE,pxm:()=>v.px,Nxk:()=>d.Nx,RFH:()=>d.RF,gpg:()=>v.gp,pEn:()=>c.pE,Tgl:()=>c.Tg,qE8:()=>v.qE,IUd:()=>ed.IU,td3:()=>c.td,OWw:()=>v.OW,EYT:()=>ec.EY,mKQ:()=>ec.mK,qe:()=>ec.qe,nqC:()=>d.nq,WH8:()=>d.WH,zwS:()=>c.zw,aZx:()=>d.aZ,tAJ:()=>d.tA,yjn:()=>d.yj,lA:()=>d.lA,z$P:()=>d.z$,i8E:()=>d.i8,hKc:()=>d.hK,hvP:()=>d.hv,$xb:()=>d.$x,ZpR:()=>d.Zp,xd3:()=>d.xd,rqX:()=>d.rq,Fli:()=>d.Fl,tRb:()=>d.tR,UgP:()=>d.Ug,zss:()=>d.zs,jnW:()=>d.jn,Pf9:()=>d.Pf,puj:()=>v.pu,LDU:()=>d.LD,gdl:()=>d.gd,R1e:()=>d.R1,kac:()=>ed.k,z5n:()=>ed.z5,p0m:()=>ed.p0,Wbn:()=>ed.Wb,KG7:()=>ed.KG,gF3:()=>ed.gF,VGT:()=>ed.VG,Iex:()=>d.Ie,wJ2:()=>c.wJ,w3Z:()=>c.w3,eb4:()=>d.eb,X$G:()=>d.X$,cei:()=>d.ce,YfF:()=>v.Yf,Scl:()=>v.Sc,vrU:()=>v.vr,hJS:()=>c.hJ,pzy:()=>ec.pz,O_i:()=>ec.O_,OtU:()=>c.Ot,HQK:()=>c.HQ,_hh:()=>ec._h,PGG:()=>ec.PG,tZQ:()=>f.t,$mf:()=>v.$m,JYE:()=>v.JY,E90:()=>c.E9,G0i:()=>v.G0,e4g:()=>v.e4,OHq:()=>ec.OH,W9e:()=>v.W9,Sgh:()=>v.Sg,VGA:()=>v.VG,YCE:()=>c.YC,LCf:()=>ec.LC,xxz:()=>ec.xx,vSh:()=>d.vS,L1V:()=>d.L1,U0s:()=>d.U0,MXx:()=>d.MX,q8J:()=>c.q8,YLU:()=>ec.YL,ayx:()=>ec.ay,D_O:()=>d.D_,XsS:()=>c.Xs,hBr:()=>d.hB,cyL:()=>eh.cy,Lmq:()=>eh.Lm,Tnt:()=>eh.Tn,hnD:()=>c.hn,kZJ:()=>eh.kZ,EtT:()=>eh.Et,Gvm:()=>eh.Gv,Tj8:()=>c.Tj,KgX:()=>eh.Kg,Vh1:()=>c.Vh,TA3:()=>c.TA,iUN:()=>d.iU,$_c:()=>d.$_,vd6:()=>d.vd,K3:()=>d.K3,PZY:()=>d.PZ,ZGK:()=>eu.Z,yVN:()=>eu.y,$v4:()=>d.$v,KpY:()=>c.Kp,BjF:()=>c.Bj,BWm:()=>d.BW,XuV:()=>d.Xu,wMU:()=>d.wM,DNI:()=>d.DN,z94:()=>d.z9,ou7:()=>d.ou,Dvh:()=>d.Dv,GWL:()=>d.GW,X_1:()=>d.X_,w20:()=>d.w2,jhA:()=>v.jh,dvp:()=>d.dv,xHs:()=>d.xH,boI:()=>d.bo,SnF:()=>ed.Sn,MdX:()=>ed.Md,M3Y:()=>v.M3,a56:()=>d.a5,BFN:()=>d.BF,$GP:()=>d.$G,mRf:()=>d.mR,vEz:()=>v.vE,R5R:()=>ec.R5,BN0:()=>ec.BN,JC0:()=>d.JC,vFD:()=>d.vF,NFi:()=>d.NF,oiR:()=>d.oi,K6u:()=>ec.K6,euA:()=>d.eu,yxQ:()=>d.yx,aEA:()=>d.aE,T5G:()=>c.T5,BRq:()=>c.BR,lVH:()=>c.lV,tGT:()=>c.tG,ADE:()=>v.AD,Bro:()=>f.B,OEu:()=>v.OE,DT4:()=>v.DT,zgn:()=>d.zg,iXO:()=>d.iX,dmB:()=>d.dm,zIs:()=>ec.zI,egF:()=>ec.eg,RqE:()=>d.Rq,NuQ:()=>d.Nu,Eow:()=>d.Eo,$k3:()=>ep,UC0:()=>c.UC,JvX:()=>ec.Jv,Kog:()=>ec.Ko,nKi:()=>d.nK,RVs:()=>d.RV});var n,a,o,s,r,l,d=i(5560),c=i(5244);class u{_listeners;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?.forEach(e=>{e(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,a=i.indexOf(t);a<d.z9||(n===d.LD?this._listeners.delete(e):i.splice(a,d.LD))}}var h=i(8356);class p{colorManagers=new Map;easingFunctions=new Map;effectDrawers=new Map;initializers={effects:new Map,shapes:new Map,updaters:new Map};palettes=new Map;plugins=[];presets=new Map;shapeDrawers=new Map;updaters=new Map;_allLoadersSet=new Set;_configs=new Map;_engine;_executedSet=new Set;_initialized=!1;_isRunningLoaders=!1;_loadPromises=new Set;constructor(e){this._engine=e}get configs(){let e={};for(let[t,i]of this._configs)e[t]=i;return e}addColorManager(e,t){this.colorManagers.set(e,t)}addConfig(e){let t=e.key??e.name??"default";this._configs.set(t,e),this._engine.dispatchEvent(h.B.configAdded,{data:{name:t,config:e}})}addEasing(e,t){this.easingFunctions.get(e)||this.easingFunctions.set(e,t)}addEffect(e,t){this.initializers.effects.set(e,t)}addPalette(e,t){this.palettes.set(e,t)}addParticleUpdater(e,t){this.initializers.updaters.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)}addShape(e,t){for(let i of e)this.initializers.shapes.set(i,t)}clearPlugins(e){this.effectDrawers.delete(e),this.shapeDrawers.delete(e),this.updaters.delete(e)}getEasing(e){return this.easingFunctions.get(e)??(e=>e)}getEffectDrawers(e,t=!1){return(0,c.Ot)(e,this.effectDrawers,this.initializers.effects,t)}getPalette(e){return this.palettes.get(e)}getPlugin(e){return this.plugins.find(t=>t.id===e)}getPreset(e){return this.presets.get(e)}async getShapeDrawers(e,t=!1){return(0,c.Ot)(e,this.shapeDrawers,this.initializers.shapes,t)}async getUpdaters(e,t=!1){return(0,c.HQ)(e,this.updaters,this.initializers.updaters,t)}async init(){if(!this._initialized&&!this._isRunningLoaders){this._isRunningLoaders=!0,this._executedSet=new Set,this._allLoadersSet=new Set(this._loadPromises);try{for(let e of this._allLoadersSet)await this._runLoader(e,this._executedSet,this._allLoadersSet)}finally{this._loadPromises.clear(),this._isRunningLoaders=!1,this._initialized=!0}}}loadParticlesOptions(e,t,...i){let n=this.updaters.get(e);n&&n.forEach(e=>e.loadOptions?.(t,...i))}async register(...e){if(this._initialized)throw Error("Register plugins can only be done before calling tsParticles.load()");for(let t of e)this._isRunningLoaders?await this._runLoader(t,this._executedSet,this._allLoadersSet):this._loadPromises.add(t)}async _runLoader(e,t,i){t.has(e)||(t.add(e),i.add(e),await e(this._engine))}}var f=i(7382),v=i(5286);let g="100%";async function m(e){let t=(0,c.TA)(e.url,e.index);if(!t)return e.fallback;let i=await fetch(t);return i.ok?await i.json():((0,f.t)().error(`${i.status.toString()} while retrieving config file`),e.fallback)}class y{pluginManager=new p(this);_domArray=[];_eventDispatcher=new u;_initialized=!1;get items(){return this._domArray}get version(){return"4.0.0-beta.8"}addEventListener(e,t){this._eventDispatcher.addEventListener(e,t)}checkVersion(e){if(this.version!==e)throw Error(`The tsParticles version is different from the loaded plugins version. Engine version: ${this.version}. Plugin version: ${e}`)}dispatchEvent(e,t){this._eventDispatcher.dispatchEvent(e,t)}async init(){this._initialized||(await this.pluginManager.init(),this._initialized=!0)}item(e){let{items:t}=this,i=t[e];return i?.destroyed?void t.splice(e,d.JC):i}async load(e){var t;let n,a;await this.init();let{Container:o}=await i.e(648).then(i.bind(i,648)),s=e.id??e.element?.id??`tsparticles${Math.floor((0,v.G0)()*d.$v).toString()}`,{index:r,url:l}=e,u=l?await m({fallback:e.options,url:l,index:r}):e.options,h=(0,c.TA)(u,r),{items:p}=this,f=p.findIndex(e=>e.id.description===s),y=new o({dispatchCallback:(e,t)=>{this.dispatchEvent(e,t)},id:s,onDestroy:e=>{if(!e)return;let t=this.items,i=t.indexOf(y);i>=d.vF&&t.splice(i,d.JC)},pluginManager:this.pluginManager,sourceOptions:h});if(f>=d.PZ){let e=this.item(f),t=e?d.xH:d.dv;e&&!e.destroyed&&e.destroy(!1),p.splice(f,t,y)}else p.push(y);let b=(e=>{let t,i=(0,c.T5)();if(e instanceof HTMLCanvasElement||e.tagName.toLowerCase()===d.RF)t=e,t.dataset[d.eb]??=d.X$;else{let n=e.getElementsByTagName(d.RF)[d.Nx];n?(t=n).dataset[d.eb]=d.X$:((t=i.createElement(d.RF)).dataset[d.eb]=d.ce,e.appendChild(t))}return t.style.width||=g,t.style.height||=g,t})((t=e.element,n=(0,c.T5)(),(a=t??n.getElementById(s))||((a=n.createElement("canvas")).id=s,a.dataset[d.eb]=d.ce,n.body.append(a)),a));return y.canvas.loadCanvas(b),await y.start(),y}async refresh(e=!0){e&&await Promise.all(this.items.map(e=>e.refresh()))}removeEventListener(e,t){this._eventDispatcher.removeEventListener(e,t)}}var b=i(1045),x=i(6129),w=i(1907);(n=s||(s={})).clockwise="clockwise",n.counterClockwise="counter-clockwise",n.random="random";var M=i(8545),z=i(1668),S=i(6101),P=i(1946),O=i(5354),R=i(3832),_=i(9718);(a=r||(r={})).linear="linear",a.radial="radial",a.random="random";var k=i(1386),E=i(4819);(o=l||(l={})).easeInBack="ease-in-back",o.easeInBounce="ease-in-bounce",o.easeInCirc="ease-in-circ",o.easeInCubic="ease-in-cubic",o.easeInElastic="ease-in-elastic",o.easeInExpo="ease-in-expo",o.easeInGaussian="ease-in-gaussian",o.easeInLinear="ease-in-linear",o.easeInQuad="ease-in-quad",o.easeInQuart="ease-in-quart",o.easeInQuint="ease-in-quint",o.easeInSigmoid="ease-in-sigmoid",o.easeInSine="ease-in-sine",o.easeInSmoothstep="ease-in-smoothstep",o.easeOutBack="ease-out-back",o.easeOutBounce="ease-out-bounce",o.easeOutCirc="ease-out-circ",o.easeOutCubic="ease-out-cubic",o.easeOutElastic="ease-out-elastic",o.easeOutExpo="ease-out-expo",o.easeOutGaussian="ease-out-gaussian",o.easeOutLinear="ease-out-linear",o.easeOutQuad="ease-out-quad",o.easeOutQuart="ease-out-quart",o.easeOutQuint="ease-out-quint",o.easeOutSigmoid="ease-out-sigmoid",o.easeOutSine="ease-out-sine",o.easeOutSmoothstep="ease-out-smoothstep",o.easeInOutBack="ease-in-out-back",o.easeInOutBounce="ease-in-out-bounce",o.easeInOutCirc="ease-in-out-circ",o.easeInOutCubic="ease-in-out-cubic",o.easeInOutElastic="ease-in-out-elastic",o.easeInOutExpo="ease-in-out-expo",o.easeInOutGaussian="ease-in-out-gaussian",o.easeInOutLinear="ease-in-out-linear",o.easeInOutQuad="ease-in-out-quad",o.easeInOutQuart="ease-in-out-quart",o.easeInOutQuint="ease-in-out-quint",o.easeInOutSigmoid="ease-in-out-sigmoid",o.easeInOutSine="ease-in-out-sine",o.easeInOutSmoothstep="ease-in-out-smoothstep";var F=i(7662),A=i(602),T=i(5501),I=i(9172),L=i(338),D=i(8886),V=i(3478),$=i(2215),G=i(1196),B=i(4505),C=i(2506),Z=i(8008),q=i(5940),H=i(7793),j=i(6142),K=i(9447),N=i(6019),U=i(414),W=i(7563),X=i(9345),J=i(5487),Y=i(7501),Q=i(9682),ee=i(7086),et=i(4666),ei=i(4770),en=i(9430),ea=i(8806),eo=i(7502),es=i(148),er=i(3897),el=i(8239),ed=i(1912),ec=i(8329),eu=i(714),eh=i(7420);let ep=new y;globalThis.tsParticles=ep}},a={};function o(e){var t=a[e];if(void 0!==t)return t.exports;var i=a[e]={exports:{}};return n[e](i,i.exports,o),i.exports}o.m=n,o.d=(e,t)=>{for(var i in t)o.o(t,i)&&!o.o(e,i)&&Object.defineProperty(e,i,{enumerable:!0,get:t[i]})},o.f={},o.e=e=>Promise.all(Object.keys(o.f).reduce((t,i)=>(o.f[i](e,t),t),[])),o.u=e=>""+e+".min.js",o.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||Function("return this")()}catch(e){if("object"==typeof window)return window}}(),o.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),s={},o.l=(e,t,i,n)=>{if(s[e])return void s[e].push(t);if(void 0!==i)for(var a,r,l=document.getElementsByTagName("script"),d=0;d<l.length;d++){var c=l[d];if(c.getAttribute("src")==e||c.getAttribute("data-webpack")=="@tsparticles/all:"+i){a=c;break}}a||(r=!0,(a=document.createElement("script")).charset="utf-8",o.nc&&a.setAttribute("nonce",o.nc),a.setAttribute("data-webpack","@tsparticles/all:"+i),a.src=e),s[e]=[t];var u=(t,i)=>{a.onerror=a.onload=null,clearTimeout(h);var n=s[e];if(delete s[e],a.parentNode&&a.parentNode.removeChild(a),n&&n.forEach(e=>e(i)),t)return t(i)},h=setTimeout(u.bind(null,void 0,{type:"timeout",target:a}),12e4);a.onerror=u.bind(null,a.onerror),a.onload=u.bind(null,a.onload),r&&document.head.appendChild(a)},o.r=e=>{"u">typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},o.g.importScripts&&(r=o.g.location+"");var s,r,l=o.g.document;if(!r&&l&&(l.currentScript&&"SCRIPT"===l.currentScript.tagName.toUpperCase()&&(r=l.currentScript.src),!r)){var d=l.getElementsByTagName("script");if(d.length)for(var c=d.length-1;c>-1&&(!r||!/^http(s?):/.test(r));)r=d[c--].src}if(!r)throw Error("Automatic publicPath is not supported in this browser");o.p=r=r.replace(/^blob:/,"").replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),e={5814:0},o.f.j=(t,i)=>{var n=o.o(e,t)?e[t]:void 0;if(0!==n)if(n)i.push(n[2]);else{var a=new Promise((i,a)=>n=e[t]=[i,a]);i.push(n[2]=a);var s=o.p+o.u(t),r=Error();o.l(s,i=>{if(o.o(e,t)&&(0!==(n=e[t])&&(e[t]=void 0),n)){var a=i&&("load"===i.type?"missing":i.type),s=i&&i.target&&i.target.src;r.message="Loading chunk "+t+` failed.
|
|
2
|
-
(`+a+": "+s+")",r.name="ChunkLoadError",r.type=a,r.request=s,n[1](r)}},"chunk-"+t,t)}},t=(t,i)=>{var n,a,[s,r,l]=i,d=0;if(s.some(t=>0!==e[t])){for(n in r)o.o(r,n)&&(o.m[n]=r[n]);l&&l(o)}for(t&&t(i);d<s.length;d++)a=s[d],o.o(e,a)&&e[a]&&e[a][0](),e[a]=0},(i=this.webpackChunk_tsparticles_all=this.webpackChunk_tsparticles_all||[]).forEach(t.bind(null,0)),i.push=t.bind(null,i.push.bind(i));var u={};o.r(u),o.d(u,{AlterType:()=>h.HKZ,AnimatableColor:()=>h.A9e,AnimationMode:()=>h.gmr,AnimationOptions:()=>h.pK_,AnimationStatus:()=>h.H_P,AnimationValueWithRandom:()=>h.Jmi,Background:()=>h.VS$,BaseRange:()=>h.dgY,Circle:()=>h.jlt,ColorAnimation:()=>h.evc,DestroyType:()=>h.VKE,EasingType:()=>h.mgy,EventType:()=>h.Bx4,Fill:()=>h.SQl,FullScreen:()=>h.mcU,GradientType:()=>h.hqM,HslAnimation:()=>h.i74,LimitMode:()=>h.dtg,Move:()=>h.yUV,MoveAngle:()=>h.hzL,MoveCenter:()=>h.Zgv,MoveDirection:()=>h.FWc,MoveGravity:()=>h.y1u,MovePath:()=>h.vU7,Opacity:()=>h.Y4E,OpacityAnimation:()=>h.IhC,Options:()=>h.JYR,OptionsColor:()=>h.Oit,OutMode:()=>h.Yzx,OutModeDirection:()=>h.v5k,OutModes:()=>h.j$q,ParticleOutType:()=>h.x_I,ParticlesBounce:()=>h.wvn,ParticlesBounceFactor:()=>h.F5W,ParticlesDensity:()=>h.M1g,ParticlesNumber:()=>h.NeW,ParticlesNumberLimit:()=>h.Ad4,ParticlesOptions:()=>h.UOj,PixelMode:()=>h.qiC,RangedAnimationOptions:()=>h.Q4c,RangedAnimationValueWithRandom:()=>h.AIw,Rectangle:()=>h.M_G,ResizeEvent:()=>h.z0z,RotateDirection:()=>h.pTR,Shape:()=>h.ypk,Size:()=>h.or0,SizeAnimation:()=>h.qvJ,Spin:()=>h.tKH,StartValueType:()=>h.SKz,Stroke:()=>h.tcj,ValueWithRandom:()=>h.PVU,Vector:()=>h.Miz,Vector3d:()=>h.pGL,ZIndex:()=>h.Pyx,alterHsl:()=>h.yxh,animate:()=>h.i0Z,areBoundsInside:()=>h.O2_,arrayRandomIndex:()=>h.n02,calcExactPositionOrRandomFromSize:()=>h.NxB,calcExactPositionOrRandomFromSizeRanged:()=>h.qMV,calcPositionFromSize:()=>h.ehY,calcPositionOrRandomFromSize:()=>h.MhH,calcPositionOrRandomFromSizeRanged:()=>h.l1q,calculateBounds:()=>h.AEc,cancelAnimation:()=>h.pxm,canvasFirstIndex:()=>h.Nxk,canvasTag:()=>h.RFH,checkDistance:()=>h.gpg,circleBounce:()=>h.pEn,circleBounceDataFromParticle:()=>h.Tgl,clamp:()=>h.qE8,clear:()=>h.IUd,cloneStyle:()=>h.td3,collisionVelocity:()=>h.OWw,colorMix:()=>h.EYT,colorToHsl:()=>h.mKQ,colorToRgb:()=>h.qe,countOffset:()=>h.nqC,decayOffset:()=>h.WH8,deepExtend:()=>h.zwS,defaultAlpha:()=>h.aZx,defaultAngle:()=>h.tAJ,defaultCompositeValue:()=>h.yjn,defaultDensityFactor:()=>h.lA,defaultFps:()=>h.z$P,defaultFpsLimit:()=>h.i8E,defaultLoops:()=>h.hKc,defaultOpacity:()=>h.hvP,defaultRatio:()=>h.$xb,defaultReduceFactor:()=>h.ZpR,defaultRemoveQuantity:()=>h.xd3,defaultRetryCount:()=>h.rqX,defaultRgbMin:()=>h.Fli,defaultTime:()=>h.tRb,defaultTransform:()=>h.UgP,defaultTransformValue:()=>h.zss,defaultVelocity:()=>h.jnW,defaultZoom:()=>h.Pf9,degToRad:()=>h.puj,deleteCount:()=>h.LDU,double:()=>h.gdl,doublePI:()=>h.R1e,drawAfterEffect:()=>h.kac,drawBeforeEffect:()=>h.z5n,drawParticle:()=>h.p0m,drawParticlePlugin:()=>h.Wbn,drawShape:()=>h.KG7,drawShapeAfterDraw:()=>h.gF3,drawShapeBeforeDraw:()=>h.VGT,empty:()=>h.Iex,executeOnSingleOrMultiple:()=>h.wJ2,findItemFromSingleOrMultiple:()=>h.w3Z,generatedAttribute:()=>h.eb4,generatedFalse:()=>h.X$G,generatedTrue:()=>h.cei,getDistance:()=>h.YfF,getDistanceSq:()=>h.Scl,getDistances:()=>h.vrU,getFullScreenStyle:()=>h.hJS,getHslAnimationFromHsl:()=>h.pzy,getHslFromAnimation:()=>h.O_i,getItemMapFromInitializer:()=>h.OtU,getItemsFromInitializer:()=>h.HQK,getLinkColor:()=>h._hh,getLinkRandomColor:()=>h.PGG,getLogger:()=>h.tZQ,getParticleBaseVelocity:()=>h.$mf,getParticleDirectionAngle:()=>h.JYE,getPosition:()=>h.E90,getRandom:()=>h.G0i,getRandomInRange:()=>h.e4g,getRandomRgbColor:()=>h.OHq,getRangeMax:()=>h.W9e,getRangeMin:()=>h.Sgh,getRangeValue:()=>h.VGA,getSize:()=>h.YCE,getStyleFromHsl:()=>h.LCf,getStyleFromRgb:()=>h.xxz,hMax:()=>h.vSh,hMin:()=>h.L1V,hPhase:()=>h.U0s,half:()=>h.MXx,hasMatchMedia:()=>h.q8J,hslToRgb:()=>h.YLU,hslaToRgba:()=>h.ayx,identity:()=>h.D_O,initParticleNumericAnimationValue:()=>h.XsS,inverseFactorNumerator:()=>h.hBr,isArray:()=>h.cyL,isBoolean:()=>h.Lmq,isFunction:()=>h.Tnt,isInArray:()=>h.hnD,isNull:()=>h.kZJ,isNumber:()=>h.EtT,isObject:()=>h.Gvm,isPointInside:()=>h.Tj8,isString:()=>h.KgX,itemFromArray:()=>h.Vh1,itemFromSingleOrMultiple:()=>h.TA3,lFactor:()=>h.iUN,lMax:()=>h.$_c,lMin:()=>h.vd6,lengthOffset:()=>h.K3,loadAll:()=>p,loadMinIndex:()=>h.PZY,loadOptions:()=>h.ZGK,loadParticlesOptions:()=>h.yVN,loadRandomFactor:()=>h.$v4,manageListener:()=>h.KpY,memoize:()=>h.BjF,midColorValue:()=>h.BWm,millisecondsToSeconds:()=>h.XuV,minCount:()=>h.wMU,minFpsLimit:()=>h.DNI,minIndex:()=>h.z94,minLimit:()=>h.ou7,minStrokeWidth:()=>h.Dvh,minVelocity:()=>h.GWL,minZ:()=>h.X_1,minimumSize:()=>h.w20,mix:()=>h.jhA,none:()=>h.dvp,one:()=>h.xHs,originPoint:()=>h.boI,paintBase:()=>h.SnF,paintImage:()=>h.MdX,parseAlpha:()=>h.M3Y,percentDenominator:()=>h.a56,phaseNumerator:()=>h.BFN,quarter:()=>h.$GP,randomColorValue:()=>h.mRf,randomInRangeValue:()=>h.vEz,rangeColorToHsl:()=>h.R5R,rangeColorToRgb:()=>h.BN0,removeDeleteCount:()=>h.JC0,removeMinIndex:()=>h.vFD,resizeEvent:()=>h.NFi,rgbMax:()=>h.oiR,rgbToHsl:()=>h.K6u,sMax:()=>h.euA,sMin:()=>h.yxQ,sNormalizedOffset:()=>h.aEA,safeDocument:()=>h.T5G,safeIntersectionObserver:()=>h.BRq,safeMatchMedia:()=>h.lVH,safeMutationObserver:()=>h.tGT,setAnimationFunctions:()=>h.ADE,setLogger:()=>h.Bro,setRandom:()=>h.OEu,setRangeValue:()=>h.DT4,sextuple:()=>h.zgn,spatialHashGridCellSize:()=>h.iXO,squareExp:()=>h.dmB,stringToAlpha:()=>h.zIs,stringToRgb:()=>h.egF,threeQuarter:()=>h.RqE,triple:()=>h.NuQ,tryCountIncrement:()=>h.Eow,tsParticles:()=>h.$k3,updateAnimation:()=>h.UC0,updateColor:()=>h.JvX,updateColorValue:()=>h.Kog,visibilityChangeEvent:()=>h.nKi,zIndexFactorOffset:()=>h.RVs});var h=o(8753);async function p(e){e.checkVersion("4.0.0-beta.8"),await e.pluginManager.register(async e=>{let[{loadFull:t},{loadHsvColorPlugin:i},{loadHwbColorPlugin:n},{loadLabColorPlugin:a},{loadLchColorPlugin:s},{loadOklabColorPlugin:r},{loadOklchColorPlugin:l},{loadNamedColorPlugin:d},{loadEasingBackPlugin:c},{loadEasingBouncePlugin:u},{loadEasingCircPlugin:h},{loadEasingCubicPlugin:p},{loadEasingElasticPlugin:f},{loadEasingExpoPlugin:v},{loadEasingGaussianPlugin:g},{loadEasingLinearPlugin:m},{loadEasingQuartPlugin:y},{loadEasingQuintPlugin:b},{loadEasingSigmoidPlugin:x},{loadEasingSinePlugin:w},{loadEasingSmoothstepPlugin:M},{loadBackgroundMaskPlugin:z},{loadBlendPlugin:S},{loadCanvasMaskPlugin:P},{loadInfectionPlugin:O},{loadManualParticlesPlugin:R},{loadMotionPlugin:_},{loadPoissonDiscPlugin:k},{loadPolygonMaskPlugin:E},{loadResponsivePlugin:F},{loadSoundsPlugin:A},{loadThemesPlugin:T},{loadTrailPlugin:I},{loadZoomPlugin:L},{loadExportImagePlugin:D},{loadExportJSONPlugin:V},{loadExportVideoPlugin:$},{loadExternalCannonInteraction:G},{loadExternalParticleInteraction:B},{loadExternalPopInteraction:C},{loadLightInteraction:Z},{loadParticlesRepulseInteraction:q},{loadGradientUpdater:H},{loadOrbitUpdater:j},{loadBranchesPath:K},{loadBrownianPath:N},{loadCurlNoisePath:U},{loadCurvesPath:W},{loadFractalNoisePath:X},{loadGridPath:J},{loadLevyPath:Y},{loadPerlinNoisePath:Q},{loadPolygonPath:ee},{loadRandomPath:et},{loadSVGPath:ei},{loadSpiralPath:en},{loadZigZagPath:ea},{loadSimplexNoisePath:eo},{loadBubbleEffect:es},{loadFilterEffect:er},{loadParticlesEffect:el},{loadShadowEffect:ed},{loadTrailEffect:ec},{loadArrowShape:eu},{loadCardsShape:eh},{loadCogShape:ep},{loadHeartShape:ef},{loadInfinityShape:ev},{loadMatrixShape:eg},{loadPathShape:em},{loadRoundedPolygonShape:ey},{loadRoundedRectShape:eb},{loadSpiralShape:ex},{loadSquircleShape:ew},{loadEmittersShapeCanvas:eM},{loadEmittersShapePath:ez},{loadEmittersShapePolygon:eS}]=await Promise.all([o.e(3729).then(o.bind(o,3729)),o.e(3092).then(o.bind(o,3092)),o.e(4332).then(o.bind(o,4332)),o.e(646).then(o.bind(o,646)),o.e(5402).then(o.bind(o,5402)),o.e(5628).then(o.bind(o,5628)),o.e(9368).then(o.bind(o,9368)),o.e(9716).then(o.bind(o,9716)),o.e(9622).then(o.bind(o,9622)),o.e(7983).then(o.bind(o,7983)),o.e(6090).then(o.bind(o,6090)),o.e(2975).then(o.bind(o,2975)),o.e(7072).then(o.bind(o,7072)),o.e(283).then(o.bind(o,283)),o.e(3958).then(o.bind(o,3958)),o.e(548).then(o.bind(o,548)),o.e(1876).then(o.bind(o,1876)),o.e(5856).then(o.bind(o,5856)),o.e(3289).then(o.bind(o,3289)),o.e(2268).then(o.bind(o,2268)),o.e(511).then(o.bind(o,511)),o.e(2858).then(o.bind(o,2858)),o.e(5675).then(o.bind(o,5675)),o.e(5970).then(o.bind(o,5970)),o.e(7209).then(o.bind(o,7209)),o.e(8357).then(o.bind(o,8357)),o.e(980).then(o.bind(o,980)),o.e(9555).then(o.bind(o,9555)),o.e(5392).then(o.bind(o,5392)),o.e(8192).then(o.bind(o,8192)),o.e(6602).then(o.bind(o,6602)),o.e(8580).then(o.bind(o,8580)),o.e(674).then(o.bind(o,674)),o.e(7147).then(o.bind(o,7147)),o.e(4145).then(o.bind(o,4145)),o.e(8692).then(o.bind(o,8692)),o.e(8051).then(o.bind(o,8051)),o.e(4752).then(o.bind(o,4752)),o.e(4465).then(o.bind(o,4465)),o.e(1472).then(o.bind(o,1472)),o.e(539).then(o.bind(o,539)),o.e(8965).then(o.bind(o,8965)),o.e(9086).then(o.bind(o,9086)),o.e(4886).then(o.bind(o,4886)),o.e(2974).then(o.bind(o,2974)),o.e(1846).then(o.bind(o,1846)),o.e(3198).then(o.bind(o,3198)),o.e(770).then(o.bind(o,770)),o.e(3733).then(o.bind(o,3733)),o.e(1890).then(o.bind(o,1890)),o.e(4816).then(o.bind(o,4816)),o.e(5358).then(o.bind(o,5358)),o.e(5828).then(o.bind(o,5828)),o.e(3763).then(o.bind(o,3763)),o.e(2004).then(o.bind(o,2004)),o.e(9081).then(o.bind(o,9081)),o.e(4698).then(o.bind(o,4698)),o.e(2962).then(o.bind(o,2962)),o.e(2946).then(o.bind(o,2946)),o.e(6858).then(o.bind(o,6858)),o.e(3897).then(o.bind(o,6278)),o.e(8068).then(o.bind(o,8068)),o.e(6251).then(o.bind(o,8632)),o.e(1001).then(o.bind(o,1001)),o.e(9915).then(o.bind(o,9915)),o.e(9515).then(o.bind(o,9515)),o.e(2182).then(o.bind(o,2182)),o.e(2310).then(o.bind(o,2310)),o.e(1809).then(o.bind(o,1809)),o.e(739).then(o.bind(o,739)),o.e(5400).then(o.bind(o,5400)),o.e(736).then(o.bind(o,736)),o.e(2241).then(o.bind(o,2241)),o.e(3748).then(o.bind(o,3748)),o.e(7584).then(o.bind(o,7584)),o.e(2893).then(o.bind(o,2893)),o.e(7210).then(o.bind(o,7210))]);await Promise.all([(async()=>{await t(e),await Promise.all([G(e),B(e),C(e),Z(e),q(e),O(e),eM(e),ez(e),eS(e),K(e),N(e),U(e),W(e),X(e),J(e),Y(e),Q(e),ee(e),et(e),ei(e),en(e),ea(e),eo(e)])})(),i(e),n(e),a(e),s(e),r(e),l(e),d(e),c(e),u(e),h(e),p(e),f(e),v(e),g(e),m(e),y(e),b(e),x(e),w(e),M(e),z(e),S(e),P(e),R(e),_(e),k(e),E(e),F(e),A(e),T(e),I(e),L(e),D(e),V(e),$(e),H(e),j(e),es(e),er(e),el(e),ed(e),ec(e),eu(e),eh(e),ep(e),ef(e),ev(e),eg(e),em(e),ey(e),eb(e),ex(e),ew(e)])})}return u})());
|
|
1
|
+
!function(t){t.__tsParticlesInternals=t.__tsParticlesInternals||{},t.__tsParticlesInternals.bundles=t.__tsParticlesInternals.bundles||{},t.__tsParticlesInternals.effects=t.__tsParticlesInternals.effects||{},t.__tsParticlesInternals.engine=t.__tsParticlesInternals.engine||{},t.__tsParticlesInternals.interactions=t.__tsParticlesInternals.interactions||{},t.__tsParticlesInternals.palettes=t.__tsParticlesInternals.palettes||{},t.__tsParticlesInternals.paths=t.__tsParticlesInternals.paths||{},t.__tsParticlesInternals.plugins=t.__tsParticlesInternals.plugins||{},t.__tsParticlesInternals.plugins=t.__tsParticlesInternals.plugins||{},t.__tsParticlesInternals.plugins.emittersShapes=t.__tsParticlesInternals.plugins.emittersShapes||{},t.__tsParticlesInternals.presets=t.__tsParticlesInternals.presets||{},t.__tsParticlesInternals.shapes=t.__tsParticlesInternals.shapes||{},t.__tsParticlesInternals.updaters=t.__tsParticlesInternals.updaters||{},t.__tsParticlesInternals.utils=t.__tsParticlesInternals.utils||{},t.__tsParticlesInternals.canvas=t.__tsParticlesInternals.canvas||{},t.__tsParticlesInternals.canvas=t.__tsParticlesInternals.canvas||{},t.__tsParticlesInternals.canvas.utils=t.__tsParticlesInternals.canvas.utils||{},t.__tsParticlesInternals.path=t.__tsParticlesInternals.path||{},t.__tsParticlesInternals.path=t.__tsParticlesInternals.path||{},t.__tsParticlesInternals.path.utils=t.__tsParticlesInternals.path.utils||{};var e="undefined"!=typeof Proxy?function(t){return new Proxy(t,{get:function(t,e){return e in t||(t[e]={}),t[e]}})}:function(t){return t};t.__tsParticlesInternals.bundles=e(t.__tsParticlesInternals.bundles),t.__tsParticlesInternals.effects=e(t.__tsParticlesInternals.effects),t.__tsParticlesInternals.interactions=e(t.__tsParticlesInternals.interactions),t.__tsParticlesInternals.palettes=e(t.__tsParticlesInternals.palettes),t.__tsParticlesInternals.paths=e(t.__tsParticlesInternals.paths),t.__tsParticlesInternals.plugins=e(t.__tsParticlesInternals.plugins),t.__tsParticlesInternals.plugins.emittersShapes=e(t.__tsParticlesInternals.plugins.emittersShapes),t.__tsParticlesInternals.presets=e(t.__tsParticlesInternals.presets),t.__tsParticlesInternals.shapes=e(t.__tsParticlesInternals.shapes),t.__tsParticlesInternals.updaters=e(t.__tsParticlesInternals.updaters),t.__tsParticlesInternals.utils=e(t.__tsParticlesInternals.utils),t.__tsParticlesInternals.canvas=e(t.__tsParticlesInternals.canvas),t.__tsParticlesInternals.path=e(t.__tsParticlesInternals.path),t.tsparticlesInternalExports=t.tsparticlesInternalExports||{}}("undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:this),function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e(((t="undefined"!=typeof globalThis?globalThis:t||self).__tsParticlesInternals=t.__tsParticlesInternals||{},t.__tsParticlesInternals.bundles=t.__tsParticlesInternals.bundles||{},t.__tsParticlesInternals.bundles.all=t.__tsParticlesInternals.bundles.all||{}))}(this,function(t){"use strict";const e="generated",i="source-over",n="resize",s="visibilitychange",o=100,a=.5,r=1e3,c={x:0,y:0,z:0},l={a:1,b:0,c:0,d:1},h="random",d="mid",u=2*Math.PI,p="true",g="false",f="canvas",y=255,_=360,m=100,v=100,w=.25,b=.75;var x;function S(t){return"z"in t?t.z:c.z}t.MoveDirection=void 0,(x=t.MoveDirection||(t.MoveDirection={})).bottom="bottom",x.bottomLeft="bottom-left",x.bottomRight="bottom-right",x.left="left",x.none="none",x.right="right",x.top="top",x.topLeft="top-left",x.topRight="top-right",x.outside="outside",x.inside="inside";class P{x;y;z;constructor(t=c.x,e=c.y,i=c.z){this.x=t,this.y=e,this.z=i}static get origin(){return P.create(c.x,c.y,c.z)}get angle(){return Math.atan2(this.y,this.x)}set angle(t){this._updateFromAngle(t,this.length)}get length(){return Math.sqrt(this.getLengthSq())}set length(t){this._updateFromAngle(this.angle,t)}static clone(t){return P.create(t.x,t.y,S(t))}static create(t,e,i){return"number"==typeof t?new P(t,e??c.y,i??c.z):new P(t.x,t.y,S(t))}add(t){return P.create(this.x+t.x,this.y+t.y,this.z+S(t))}addTo(t){this.x+=t.x,this.y+=t.y,this.z+=S(t)}copy(){return P.clone(this)}div(t){return P.create(this.x/t,this.y/t,this.z/t)}divTo(t){this.x/=t,this.y/=t,this.z/=t}getLengthSq(){return this.x**2+this.y**2}mult(t){return P.create(this.x*t,this.y*t,this.z*t)}multTo(t){this.x*=t,this.y*=t,this.z*=t}normalize(){const t=this.length;0!=t&&this.multTo(1/t)}rotate(t){return P.create(this.x*Math.cos(t)-this.y*Math.sin(t),this.x*Math.sin(t)+this.y*Math.cos(t),c.z)}setTo(t){this.x=t.x,this.y=t.y,this.z=S(t)}sub(t){return P.create(this.x-t.x,this.y-t.y,this.z-S(t))}subFrom(t){this.x-=t.x,this.y-=t.y,this.z-=S(t)}_updateFromAngle(t,e){this.x=Math.cos(t)*e,this.y=Math.sin(t)*e}}class M extends P{constructor(t=c.x,e=c.y){super(t,e,c.z)}static get origin(){return M.create(c.x,c.y)}static clone(t){return M.create(t.x,t.y)}static create(t,e){return"number"==typeof t?new M(t,e??c.y):new M(t.x,t.y)}}function C(t){return"boolean"==typeof t}function O(t){return"string"==typeof t}function k(t){return"number"==typeof t}function T(t){return"function"==typeof t}function D(t){return"object"==typeof t&&null!==t}function V(t){return Array.isArray(t)}function I(t){return null==t}const A=Math.PI/180;let E=Math.random;const z={nextFrame:t=>requestAnimationFrame(t),cancel:t=>{cancelAnimationFrame(t)}};function R(){return H(E(),0,1-Number.EPSILON)}function G(t,e){return R()*(e-t)+t}function L(t){return z.nextFrame(t)}function F(t){z.cancel(t)}function H(t,e,i){return Math.min(Math.max(t,e),i)}function B(t,e,i,n){return Math.floor((t*i+e*n)/(i+n))}function N(t){const e=j(t);let i=$(t);return e===i&&(i=0),G(i,e)}function U(t){return k(t)?t:N(t)}function $(t){return k(t)?t:t.min}function j(t){return k(t)?t:t.max}function q(t,e){if(t===e||void 0===e&&k(t))return t;const i=$(t),n=j(t);return void 0!==e?{min:Math.min(i,e),max:Math.max(n,e)}:q(i,n)}function W(t,e){const i=t.x-e.x,n=t.y-e.y;return{dx:i,dy:n,distance:Math.hypot(i,n)}}function Q(t,e){const i=t.x-e.x,n=t.y-e.y;return i*i+n*n}function Z(t,e){return Math.sqrt(Q(t,e))}function X(t,e,i){return Q(t,e)<=i*i}function Y(t){return t*A}function K(e,i,n){if(k(e))return Y(e);switch(e){case t.MoveDirection.top:return-Math.PI*a;case t.MoveDirection.topRight:return-Math.PI*w;case t.MoveDirection.right:return 0;case t.MoveDirection.bottomRight:return Math.PI*w;case t.MoveDirection.bottom:return Math.PI*a;case t.MoveDirection.bottomLeft:return Math.PI*b;case t.MoveDirection.left:return Math.PI;case t.MoveDirection.topLeft:return-Math.PI*b;case t.MoveDirection.inside:return Math.atan2(n.y-i.y,n.x-i.x);case t.MoveDirection.outside:return Math.atan2(i.y-n.y,i.x-n.x);default:return R()*u}}function J(t){const e=M.origin;return e.length=1,e.angle=t,e}function tt(t,e,i,n){return M.create(t.x*(i-n)/(i+n)+2*e.x*n/(i+n),t.y)}function et(t){return{x:(t.position?.x??R()*o)*t.size.width/o,y:(t.position?.y??R()*o)*t.size.height/o}}function it(t){const e={x:void 0!==t.position?.x?U(t.position.x):void 0,y:void 0!==t.position?.y?U(t.position.y):void 0};return et({size:t.size,position:e})}function nt(t){const{position:e,size:i}=t;return{x:e?.x??R()*i.width,y:e?.y??R()*i.height}}function st(t){return t?t.endsWith("%")?parseFloat(t)/o:parseFloat(t):1}var ot,at,rt,ct,lt,ht;t.AnimationMode=void 0,(ot=t.AnimationMode||(t.AnimationMode={})).auto="auto",ot.increase="increase",ot.decrease="decrease",ot.random="random",t.AnimationStatus=void 0,(at=t.AnimationStatus||(t.AnimationStatus={})).increasing="increasing",at.decreasing="decreasing",t.DestroyType=void 0,(rt=t.DestroyType||(t.DestroyType={})).none="none",rt.max="max",rt.min="min",t.OutModeDirection=void 0,(ct=t.OutModeDirection||(t.OutModeDirection={})).bottom="bottom",ct.left="left",ct.right="right",ct.top="top",t.PixelMode=void 0,(lt=t.PixelMode||(t.PixelMode={})).precise="precise",lt.percent="percent",t.StartValueType=void 0,(ht=t.StartValueType||(t.StartValueType={})).max="max",ht.min="min",ht.random="random";function dt(t,e){const i=new Map,n=e?.maxSize,s=e?.ttlMs,o=e?.keyFn,a=(t,e=new WeakSet)=>{if(null===t)return"null";const i=typeof t;if("undefined"===i)return"undefined";if("number"===i||"boolean"===i||"string"===i)return JSON.stringify(t);if("function"===i)try{return t.toString()}catch{return'"[Function]"'}if("symbol"===i)try{return t.toString()}catch{return'"[Symbol]"'}if(Array.isArray(t))return`[${t.map(t=>a(t,e)).join(",")}]`;if(e.has(t))return'"[Circular]"';e.add(t);return`{${Object.keys(t).sort().map(i=>`${JSON.stringify(i)}:${a(t[i],e)}`).join(",")}}`},r=t=>o?o(t):(t=>a(t))(t);return(...e)=>{const o=r(e),a=Date.now(),c=i.get(o);if(void 0!==c){if(!(s&&a-c.ts>s))return i.delete(o),i.set(o,{value:c.value,ts:c.ts}),c.value;i.delete(o)}const l=t(...e);return i.set(o,{value:l,ts:a}),(()=>{if("number"==typeof n&&n>=0)for(;i.size>n;){const t=i.keys().next().value;if(void 0===t)break;i.delete(t)}})(),l}}function ut(){return"undefined"!=typeof matchMedia}function pt(){return globalThis.document}function gt(t){if(ut())return matchMedia(t)}function ft(t){if("undefined"!=typeof IntersectionObserver)return new IntersectionObserver(t)}function yt(t){if("undefined"!=typeof MutationObserver)return new MutationObserver(t)}function _t(t,e){return t===e||V(e)&&e.includes(t)}function mt(t){return Math.floor(R()*t.length)}function vt(t,e,i=!0){return t[void 0!==e&&i?e%t.length:mt(t)]}function wt(t,e,i,n,s){return bt(xt(t,n??0),e,i,s)}function bt(e,i,n,s){let o=!0;return s&&s!==t.OutModeDirection.bottom||(o=e.top<i.height+n.x),!o||s&&s!==t.OutModeDirection.left||(o=e.right>n.x),!o||s&&s!==t.OutModeDirection.right||(o=e.left<i.width+n.y),!o||s&&s!==t.OutModeDirection.top||(o=e.bottom>n.y),o}function xt(t,e){return{bottom:t.y+e,left:t.x-e,right:t.x+e,top:t.y-e}}function St(t,...e){for(const i of e){if(I(i))continue;if(!D(i)){t=i;continue}Array.isArray(i)?Array.isArray(t)||(t=[]):D(t)&&!Array.isArray(t)||(t={});const e=Object.keys(i),n=new Set(["__proto__","constructor","prototype"]);if(!e.some(t=>{const e=i[t];return D(e)||Array.isArray(e)})){const s=i,o=t;for(const t of e)if(!n.has(t)&&t in s){const e=s[t];void 0!==e&&(o[t]=e)}continue}for(const s of e){if(n.has(s))continue;const e=t,o=i[s];e[s]=Array.isArray(o)?o.map(t=>St(void 0,t)):St(e[s],o)}}return t}function Pt(t){return{position:t.getPosition(),radius:t.getRadius(),mass:t.getMass(),velocity:t.velocity,factor:M.create(U(t.options.bounce.horizontal.value),U(t.options.bounce.vertical.value))}}function Mt(t,e){const{x:i,y:n}=t.velocity.sub(e.velocity),[s,o]=[t.position,e.position],{dx:a,dy:r}=W(o,s);if(i*a+n*r<0)return;const c=-Math.atan2(r,a),l=t.mass,h=e.mass,d=t.velocity.rotate(c),u=e.velocity.rotate(c),p=tt(d,u,l,h),g=tt(u,d,l,h),f=p.rotate(-c),y=g.rotate(-c);t.velocity.x=f.x*t.factor.x,t.velocity.y=f.y*t.factor.y,e.velocity.x=y.x*e.factor.x,e.velocity.y=y.y*e.factor.y}function Ct(t,e){return V(t)?t.map((t,i)=>e(t,i)):e(t,0)}function Ot(t,e,i){return V(t)?vt(t,e,i):t}function kt(t,e){if(V(t))return t.find((t,i)=>e(t,i));return e(t,0)?t:void 0}function Tt(e,i){const n=e.value,s=e.animation,o={delayTime:U(s.delay)*r,enable:s.enable,value:U(e.value)*i,max:j(n)*i,min:$(n)*i,loops:0,maxLoops:U(s.count),time:0};if(s.enable){switch(o.decay=1-U(s.decay),s.mode){case t.AnimationMode.increase:o.status=t.AnimationStatus.increasing;break;case t.AnimationMode.decrease:o.status=t.AnimationStatus.decreasing;break;case t.AnimationMode.random:o.status=R()>=a?t.AnimationStatus.increasing:t.AnimationStatus.decreasing}const e=s.mode===t.AnimationMode.auto;switch(s.startValue){case t.StartValueType.min:o.value=o.min,e&&(o.status=t.AnimationStatus.increasing);break;case t.StartValueType.max:o.value=o.max,e&&(o.status=t.AnimationStatus.decreasing);break;case t.StartValueType.random:default:o.value=N(o),e&&(o.status=R()>=a?t.AnimationStatus.increasing:t.AnimationStatus.decreasing)}}return o.initialValue=o.value,o}function Dt(e,i){if(!(e.mode===t.PixelMode.percent)){const{mode:t,...i}=e;return i}return"x"in e?{x:e.x/o*i.width,y:e.y/o*i.height}:{width:e.width/o*i.width,height:e.height/o*i.height}}function Vt(t,e){return Dt(t,e)}function It(t,e){return Dt(t,e)}function At(e,i,n,s,o){if(e.destroyed||!i.enable||(i.maxLoops??0)>0&&(i.loops??0)>(i.maxLoops??0))return;const a=(i.velocity??0)*o.factor,r=i.min,c=i.max,l=i.decay??1;if(i.time??=0,(i.delayTime??0)>0&&i.time<(i.delayTime??0)&&(i.time+=o.value),!((i.delayTime??0)>0&&i.time<(i.delayTime??0))){switch(i.status){case t.AnimationStatus.increasing:i.value+=a;break;case t.AnimationStatus.decreasing:i.value-=a}switch(i.velocity&&1!==l&&(i.velocity*=l),i.status){case t.AnimationStatus.increasing:i.value>=c&&(n?i.status=t.AnimationStatus.decreasing:i.value-=c,i.loops??=0,i.loops++);break;case t.AnimationStatus.decreasing:i.value<=r&&(n?i.status=t.AnimationStatus.increasing:i.value+=c,i.loops??=0,i.loops++)}!function(e,i,n,s,o){switch(i){case t.DestroyType.max:n>=o&&e.destroy();break;case t.DestroyType.min:n<=s&&e.destroy()}}(e,s,i.value,r,c),e.destroyed||(i.value=H(i.value,r,c))}}function Et(t){const e=pt().createElement("div").style;for(const i in t){const n=t[i];if(!(i in t)||I(n))continue;const s=t.getPropertyValue?.(n);if(!s)continue;const o=t.getPropertyPriority?.(n);o?e.setProperty(n,s,o):e.setProperty(n,s)}return e}const zt=dt(function(t){const e=pt().createElement("div").style,i={width:"100%",height:"100%",margin:"0",padding:"0",borderWidth:"0",position:"fixed",zIndex:t.toString(10),"z-index":t.toString(10),top:"0",left:"0","pointer-events":"none"};for(const t in i){const n=i[t];void 0!==n&&e.setProperty(t,n)}return e});function Rt(t,e,i,n,s){if(n){let n={passive:!0};C(s)?n.capture=s:void 0!==s&&(n=s),t.addEventListener(e,i,n)}else{const n=s;t.removeEventListener(e,i,n)}}async function Gt(t,e,i,n=!1){let s=e.get(t);return s&&!n||(s=await Promise.all([...i.values()].map(e=>e(t))),e.set(t,s)),s}async function Lt(t,e,i,n=!1){let s=e.get(t);if(!s||n){const n=await Promise.all([...i.entries()].map(([e,i])=>i(t).then(t=>[e,t])));s=new Map(n),e.set(t,s)}return s}class Ft{_listeners;constructor(){this._listeners=new Map}addEventListener(t,e){this.removeEventListener(t,e);let i=this._listeners.get(t);i||(i=[],this._listeners.set(t,i)),i.push(e)}dispatchEvent(t,e){const i=this._listeners.get(t);i?.forEach(t=>{t(e)})}hasEventListener(t){return!!this._listeners.get(t)}removeAllEventListeners(t){t?this._listeners.delete(t):this._listeners=new Map}removeEventListener(t,e){const i=this._listeners.get(t);if(!i)return;const n=i.length,s=i.indexOf(e);s<0||(1===n?this._listeners.delete(t):i.splice(s,1))}}var Ht;t.EventType=void 0,(Ht=t.EventType||(t.EventType={})).configAdded="configAdded",Ht.containerInit="containerInit",Ht.particlesSetup="particlesSetup",Ht.containerStarted="containerStarted",Ht.containerStopped="containerStopped",Ht.containerDestroyed="containerDestroyed",Ht.containerPaused="containerPaused",Ht.containerPlay="containerPlay",Ht.containerBuilt="containerBuilt",Ht.particleAdded="particleAdded",Ht.particleDestroyed="particleDestroyed",Ht.particleRemoved="particleRemoved";class Bt{colorManagers=new Map;easingFunctions=new Map;effectDrawers=new Map;initializers={effects:new Map,shapes:new Map,updaters:new Map};palettes=new Map;plugins=[];presets=new Map;shapeDrawers=new Map;updaters=new Map;_allLoadersSet=new Set;_configs=new Map;_engine;_executedSet=new Set;_initialized=!1;_isRunningLoaders=!1;_loadPromises=new Set;constructor(t){this._engine=t}get configs(){const t={};for(const[e,i]of this._configs)t[e]=i;return t}addColorManager(t,e){this.colorManagers.set(t,e)}addConfig(e){const i=e.key??e.name??"default";this._configs.set(i,e),this._engine.dispatchEvent(t.EventType.configAdded,{data:{name:i,config:e}})}addEasing(t,e){this.easingFunctions.get(t)||this.easingFunctions.set(t,e)}addEffect(t,e){this.initializers.effects.set(t,e)}addPalette(t,e){this.palettes.set(t,e)}addParticleUpdater(t,e){this.initializers.updaters.set(t,e)}addPlugin(t){this.getPlugin(t.id)||this.plugins.push(t)}addPreset(t,e,i=!1){!i&&this.getPreset(t)||this.presets.set(t,e)}addShape(t,e){for(const i of t)this.initializers.shapes.set(i,e)}clearPlugins(t){this.effectDrawers.delete(t),this.shapeDrawers.delete(t),this.updaters.delete(t)}getEasing(t){return this.easingFunctions.get(t)??(t=>t)}getEffectDrawers(t,e=!1){return Lt(t,this.effectDrawers,this.initializers.effects,e)}getPalette(t){return this.palettes.get(t)}getPlugin(t){return this.plugins.find(e=>e.id===t)}getPreset(t){return this.presets.get(t)}async getShapeDrawers(t,e=!1){return Lt(t,this.shapeDrawers,this.initializers.shapes,e)}async getUpdaters(t,e=!1){return Gt(t,this.updaters,this.initializers.updaters,e)}async init(){if(!this._initialized&&!this._isRunningLoaders){this._isRunningLoaders=!0,this._executedSet=new Set,this._allLoadersSet=new Set(this._loadPromises);try{for(const t of this._allLoadersSet)await this._runLoader(t,this._executedSet,this._allLoadersSet)}finally{this._loadPromises.clear(),this._isRunningLoaders=!1,this._initialized=!0}}}loadParticlesOptions(t,e,...i){const n=this.updaters.get(t);n&&n.forEach(t=>t.loadOptions?.(e,...i))}async register(...t){if(this._initialized)throw new Error("Register plugins can only be done before calling tsParticles.load()");for(const e of t)this._isRunningLoaders?await this._runLoader(e,this._executedSet,this._allLoadersSet):this._loadPromises.add(e)}async _runLoader(t,e,i){e.has(t)||(e.add(t),i.add(t),await t(this._engine))}}const Nt=t=>(...e)=>{t(...e)},Ut={debug:Nt(console.debug),error:(t,...e)=>{console.error(`tsParticles - Error - ${t}`,...e)},info:Nt(console.info),log:Nt(console.log),trace:Nt(console.trace),verbose:Nt(console.log),warning:Nt(console.warn)};function $t(){return Ut}const jt="100%";class qt{pluginManager=new Bt(this);_domArray=[];_eventDispatcher=new Ft;_initialized=!1;get items(){return this._domArray}get version(){return"4.0.0"}addEventListener(t,e){this._eventDispatcher.addEventListener(t,e)}checkVersion(t){if(this.version!==t)throw new Error(`The tsParticles version is different from the loaded plugins version. Engine version: ${this.version}. Plugin version: ${t}`)}dispatchEvent(t,e){this._eventDispatcher.dispatchEvent(t,e)}async init(){this._initialized||(await this.pluginManager.init(),this._initialized=!0)}item(t){const{items:e}=this,i=e[t];if(!i?.destroyed)return i;e.splice(t,1)}async load(t){let i;await this.init(),"undefined"!=typeof HTMLElement&&t.element instanceof HTMLElement&&(i=t.element);const{Container:n}=await Promise.resolve().then(function(){return hf}),s=t.id??i?.id??`tsparticles${Math.floor(1e4*R()).toString()}`,{index:o,url:a}=t,r=a?await async function(t){const e=Ot(t.url,t.index);if(!e)return t.fallback;const i=await fetch(e);return i.ok?await i.json():($t().error(`${i.status.toString()} while retrieving config file`),t.fallback)}({fallback:t.options,url:a,index:o}):t.options,c=Ot(r,o),{items:l}=this,h=l.findIndex(t=>t.id.description===s),d=new n({dispatchCallback:(t,e)=>{this.dispatchEvent(t,e)},id:s,onDestroy:t=>{if(!t)return;const e=this.items,i=e.indexOf(d);i>=0&&e.splice(i,1)},pluginManager:this.pluginManager,sourceOptions:c});if(h>=0){const t=this.item(h),e=t?1:0;t&&!t.destroyed&&t.destroy(!1),l.splice(h,e,d)}else l.push(d);const u="undefined"!=typeof OffscreenCanvas&&t.element instanceof OffscreenCanvas?t.element:(t=>{const i=pt();let n;if(t instanceof HTMLCanvasElement||t.tagName.toLowerCase()===f)n=t,n.dataset[e]??=g,n.dataset[e]===p&&(n.style.width||=jt,n.style.height||=jt,n.style.pointerEvents="none",n.style.setProperty("pointer-events","none"));else{const s=t.getElementsByTagName(f).item(0);s?(n=s,n.dataset[e]=g):(n=i.createElement(f),n.dataset[e]=p,t.appendChild(n)),n.style.width||=jt,n.style.height||=jt,n.style.pointerEvents="none",n.style.setProperty("pointer-events","none")}return n})(((t,i)=>{const n=pt();let s=i??n.getElementById(t);return s||(s=n.createElement("canvas"),s.id=t,s.dataset[e]=p,n.body.append(s),s)})(s,i));return d.canvas.loadCanvas(u),await d.start(),d}async refresh(t=!0){t&&await Promise.all(this.items.map(t=>t.refresh()))}removeEventListener(t,e){this._eventDispatcher.removeEventListener(t,e)}}var Wt,Qt,Zt,Xt,Yt,Kt,Jt,te;!function(t){t.circle="circle",t.rectangle="rectangle"}(Wt||(Wt={}));class ee{position;type;constructor(t,e,i){this.position={x:t,y:e},this.type=i}_resetPosition(t,e){this.position.x=t,this.position.y=e}}class ie extends ee{radius;constructor(t,e,i){super(t,e,Wt.circle),this.radius=i}contains(t){return X(t,this.position,this.radius)}intersects(t){const e=this.position,i=t.position,n=this.radius,s=Math.abs(i.x-e.x),o=Math.abs(i.y-e.y);if(t instanceof ie||t.type===Wt.circle){return n+t.radius>Math.hypot(s,o)}if(t instanceof ne||t.type===Wt.rectangle){const e=t,{width:i,height:a}=e.size;return Math.pow(s-i,2)+Math.pow(o-a,2)<=n**2||s<=n+i&&o<=n+a||s<=i||o<=a}return!1}reset(t,e,i){return this._resetPosition(t,e),this.radius=i,this}}class ne extends ee{size;constructor(t,e,i,n){super(t,e,Wt.rectangle),this.size={height:n,width:i}}contains(t){const e=this.size.width,i=this.size.height,n=this.position;return t.x>=n.x&&t.x<=n.x+e&&t.y>=n.y&&t.y<=n.y+i}intersects(t){if(t instanceof ie)return t.intersects(this);if(!(t instanceof ne))return!1;const e=this.size.width,i=this.size.height,n=this.position,s=t.position,o=t.size,a=o.width,r=o.height;return s.x<n.x+e&&s.x+a>n.x&&s.y<n.y+i&&s.y+r>n.y}reset(t,e,i,n){return this._resetPosition(t,e),this.size.width=i,this.size.height=n,this}}t.RotateDirection=void 0,(Qt=t.RotateDirection||(t.RotateDirection={})).clockwise="clockwise",Qt.counterClockwise="counter-clockwise",Qt.random="random",t.LimitMode=void 0,(Zt=t.LimitMode||(t.LimitMode={})).delete="delete",Zt.wait="wait",t.OutMode=void 0,(Xt=t.OutMode||(t.OutMode={})).bounce="bounce",Xt.none="none",Xt.out="out",Xt.destroy="destroy",Xt.split="split",t.AlterType=void 0,(Yt=t.AlterType||(t.AlterType={})).darken="darken",Yt.enlighten="enlighten",t.GradientType=void 0,(Kt=t.GradientType||(t.GradientType={})).linear="linear",Kt.radial="radial",Kt.random="random",t.ParticleOutType=void 0,(Jt=t.ParticleOutType||(t.ParticleOutType={})).normal="normal",Jt.inside="inside",Jt.outside="outside",t.EasingType=void 0,(te=t.EasingType||(t.EasingType={})).easeInBack="ease-in-back",te.easeInBounce="ease-in-bounce",te.easeInCirc="ease-in-circ",te.easeInCubic="ease-in-cubic",te.easeInElastic="ease-in-elastic",te.easeInExpo="ease-in-expo",te.easeInGaussian="ease-in-gaussian",te.easeInLinear="ease-in-linear",te.easeInQuad="ease-in-quad",te.easeInQuart="ease-in-quart",te.easeInQuint="ease-in-quint",te.easeInSigmoid="ease-in-sigmoid",te.easeInSine="ease-in-sine",te.easeInSmoothstep="ease-in-smoothstep",te.easeOutBack="ease-out-back",te.easeOutBounce="ease-out-bounce",te.easeOutCirc="ease-out-circ",te.easeOutCubic="ease-out-cubic",te.easeOutElastic="ease-out-elastic",te.easeOutExpo="ease-out-expo",te.easeOutGaussian="ease-out-gaussian",te.easeOutLinear="ease-out-linear",te.easeOutQuad="ease-out-quad",te.easeOutQuart="ease-out-quart",te.easeOutQuint="ease-out-quint",te.easeOutSigmoid="ease-out-sigmoid",te.easeOutSine="ease-out-sine",te.easeOutSmoothstep="ease-out-smoothstep",te.easeInOutBack="ease-in-out-back",te.easeInOutBounce="ease-in-out-bounce",te.easeInOutCirc="ease-in-out-circ",te.easeInOutCubic="ease-in-out-cubic",te.easeInOutElastic="ease-in-out-elastic",te.easeInOutExpo="ease-in-out-expo",te.easeInOutGaussian="ease-in-out-gaussian",te.easeInOutLinear="ease-in-out-linear",te.easeInOutQuad="ease-in-out-quad",te.easeInOutQuart="ease-in-out-quart",te.easeInOutQuint="ease-in-out-quint",te.easeInOutSigmoid="ease-in-out-sigmoid",te.easeInOutSine="ease-in-out-sine",te.easeInOutSmoothstep="ease-in-out-smoothstep";class se{count;decay;delay;enable;speed;sync;constructor(){this.count=0,this.enable=!1,this.speed=1,this.decay=0,this.delay=0,this.sync=!1}load(t){I(t)||(void 0!==t.count&&(this.count=q(t.count)),void 0!==t.enable&&(this.enable=t.enable),void 0!==t.speed&&(this.speed=q(t.speed)),void 0!==t.decay&&(this.decay=q(t.decay)),void 0!==t.delay&&(this.delay=q(t.delay)),void 0!==t.sync&&(this.sync=t.sync))}}class oe extends se{mode;startValue;constructor(){super(),this.mode=t.AnimationMode.auto,this.startValue=t.StartValueType.random}load(t){super.load(t),I(t)||(void 0!==t.mode&&(this.mode=t.mode),void 0!==t.startValue&&(this.startValue=t.startValue))}}class ae extends se{max;min;offset;constructor(t,e){super(),this.min=t,this.max=e,this.offset=0,this.sync=!0}load(t){super.load(t),I(t)||(void 0!==t.max&&(this.max=t.max),void 0!==t.min&&(this.min=t.min),void 0!==t.offset&&(this.offset=q(t.offset)))}}class re{h=new ae(0,_);l=new ae(0,v);s=new ae(0,m);load(t){I(t)||(this.h.load(t.h),this.s.load(t.s),this.l.load(t.l))}}class ce{value;constructor(){this.value=""}static create(t,e){const i=new ce;return i.load(t),void 0!==e&&(O(e)||V(e)?i.load({value:e}):i.load(e)),i}load(t){I(t)||I(t.value)||(this.value=t.value)}}class le extends ce{animation;constructor(){super(),this.animation=new re}static create(t,e){const i=new le;return i.load(t),void 0!==e&&(O(e)||V(e)?i.load({value:e}):i.load(e)),i}load(t){if(super.load(t),I(t))return;const e=t.animation;void 0!==e&&(void 0===e.enable?this.animation.load(t.animation):this.animation.h.load(e))}}class he{color;image;opacity;position;repeat;size;constructor(){this.color=new ce,this.color.value="",this.image="",this.position="",this.repeat="",this.size="",this.opacity=1}load(t){I(t)||(void 0!==t.color&&(this.color=ce.create(this.color,t.color)),void 0!==t.image&&(this.image=t.image),void 0!==t.position&&(this.position=t.position),void 0!==t.repeat&&(this.repeat=t.repeat),void 0!==t.size&&(this.size=t.size),void 0!==t.opacity&&(this.opacity=t.opacity))}}class de{enable;zIndex;constructor(){this.enable=!0,this.zIndex=0}load(t){I(t)||(void 0!==t.enable&&(this.enable=t.enable),void 0!==t.zIndex&&(this.zIndex=t.zIndex))}}class ue{delay;enable;constructor(){this.delay=.5,this.enable=!0}load(t){I(t)||(void 0!==t.delay&&(this.delay=t.delay),void 0!==t.enable&&(this.enable=t.enable))}}class pe{close;options;type;constructor(){this.close=!0,this.options={},this.type=[]}load(t){if(I(t))return;const e=t.options;if(void 0!==e)for(const t in e){const i=e[t];i&&(this.options[t]=St(this.options[t]??{},i))}void 0!==t.close&&(this.close=t.close),void 0!==t.type&&(this.type=t.type)}}class ge{color;enable;opacity;constructor(){this.enable=!0,this.opacity=1}load(t){I(t)||(void 0!==t.color&&(this.color=le.create(this.color,t.color)),void 0!==t.enable&&(this.enable=t.enable),void 0!==t.opacity&&(this.opacity=q(t.opacity)))}}class fe{offset;value;constructor(){this.offset=0,this.value=90}load(t){I(t)||(void 0!==t.offset&&(this.offset=q(t.offset)),void 0!==t.value&&(this.value=q(t.value)))}}class ye{mode;radius;x;y;constructor(){this.x=50,this.y=50,this.mode=t.PixelMode.percent,this.radius=0}load(t){I(t)||(void 0!==t.x&&(this.x=t.x),void 0!==t.y&&(this.y=t.y),void 0!==t.mode&&(this.mode=t.mode),void 0!==t.radius&&(this.radius=t.radius))}}class _e{acceleration;enable;inverse;maxSpeed;constructor(){this.acceleration=9.81,this.enable=!1,this.inverse=!1,this.maxSpeed=50}load(t){I(t)||(void 0!==t.acceleration&&(this.acceleration=q(t.acceleration)),void 0!==t.enable&&(this.enable=t.enable),void 0!==t.inverse&&(this.inverse=t.inverse),void 0!==t.maxSpeed&&(this.maxSpeed=q(t.maxSpeed)))}}class me{value;constructor(){this.value=0}load(t){I(t)||I(t.value)||(this.value=q(t.value))}}class ve extends me{animation=new se;load(t){if(super.load(t),I(t))return;const e=t.animation;void 0!==e&&this.animation.load(e)}}class we extends ve{animation;constructor(){super(),this.animation=new oe}load(t){super.load(t)}}class be{clamp;delay;enable;generator;options;constructor(){this.clamp=!0,this.delay=new me,this.enable=!1,this.options={}}load(t){I(t)||(void 0!==t.clamp&&(this.clamp=t.clamp),this.delay.load(t.delay),void 0!==t.enable&&(this.enable=t.enable),this.generator=t.generator,t.options&&(this.options=St(this.options,t.options)))}}class xe{bottom;default;left;right;top;constructor(){this.default=t.OutMode.out}load(t){I(t)||(void 0!==t.default&&(this.default=t.default),this.bottom=t.bottom??t.default,this.left=t.left??t.default,this.right=t.right??t.default,this.top=t.top??t.default)}}class Se{acceleration;enable;position;constructor(){this.acceleration=0,this.enable=!1}load(t){I(t)||(void 0!==t.acceleration&&(this.acceleration=q(t.acceleration)),void 0!==t.enable&&(this.enable=t.enable),t.position&&(this.position=St({},t.position)))}}class Pe{angle;center;decay;direction;distance;drift;enable;gravity;outModes;path;random;size;speed;spin;straight;vibrate;warp;constructor(){this.angle=new fe,this.center=new ye,this.decay=0,this.distance={},this.direction=t.MoveDirection.none,this.drift=0,this.enable=!1,this.gravity=new _e,this.path=new be,this.outModes=new xe,this.random=!1,this.size=!1,this.speed=2,this.spin=new Se,this.straight=!1,this.vibrate=!1,this.warp=!1}load(t){if(I(t))return;this.angle.load(k(t.angle)?{value:t.angle}:t.angle),this.center.load(t.center),void 0!==t.decay&&(this.decay=q(t.decay)),void 0!==t.direction&&(this.direction=t.direction),void 0!==t.distance&&(this.distance=k(t.distance)?{horizontal:t.distance,vertical:t.distance}:{...t.distance}),void 0!==t.drift&&(this.drift=q(t.drift)),void 0!==t.enable&&(this.enable=t.enable),this.gravity.load(t.gravity);const e=t.outModes;void 0!==e&&(D(e)?this.outModes.load(e):this.outModes.load({default:e})),this.path.load(t.path),void 0!==t.random&&(this.random=t.random),void 0!==t.size&&(this.size=t.size),void 0!==t.speed&&(this.speed=q(t.speed)),this.spin.load(t.spin),void 0!==t.straight&&(this.straight=t.straight),void 0!==t.vibrate&&(this.vibrate=t.vibrate),void 0!==t.warp&&(this.warp=t.warp)}}class Me extends oe{destroy;constructor(){super(),this.destroy=t.DestroyType.none,this.speed=2}load(t){super.load(t),I(t)||void 0!==t.destroy&&(this.destroy=t.destroy)}}class Ce extends we{animation;constructor(){super(),this.animation=new Me,this.value=1}load(t){if(I(t))return;super.load(t);const e=t.animation;void 0!==e&&this.animation.load(e)}}class Oe{color;opacity;width;constructor(){this.width=0}load(t){I(t)||(void 0!==t.color&&(this.color=le.create(this.color,t.color)),void 0!==t.width&&(this.width=q(t.width)),void 0!==t.opacity&&(this.opacity=q(t.opacity)))}}class ke{color;fill;stroke;load(t){I(t)||(void 0!==t.color&&(this.color=le.create(this.color,t.color)),void 0!==t.fill&&(this.fill??=new ge,this.fill.load(t.fill)),void 0!==t.stroke&&(this.stroke??=new Oe,this.stroke.load(t.stroke)))}}class Te extends me{constructor(){super(),this.value=1}}class De{horizontal;vertical;constructor(){this.horizontal=new Te,this.vertical=new Te}load(t){I(t)||(this.horizontal.load(t.horizontal),this.vertical.load(t.vertical))}}class Ve{enable;height;width;constructor(){this.enable=!1,this.width=1920,this.height=1080}load(t){if(I(t))return;void 0!==t.enable&&(this.enable=t.enable);const e=t.width;void 0!==e&&(this.width=e);const i=t.height;void 0!==i&&(this.height=i)}}class Ie{mode;value;constructor(){this.mode=t.LimitMode.delete,this.value=0}load(t){I(t)||(void 0!==t.mode&&(this.mode=t.mode),void 0!==t.value&&(this.value=t.value))}}class Ae{density;limit;value;constructor(){this.density=new Ve,this.limit=new Ie,this.value=0}load(t){I(t)||(this.density.load(t.density),this.limit.load(t.limit),void 0!==t.value&&(this.value=t.value))}}class Ee{close;options;type;constructor(){this.close=!0,this.options={},this.type="circle"}load(t){if(I(t))return;const e=t.options;if(void 0!==e)for(const t in e){const i=e[t];i&&(this.options[t]=St(this.options[t]??{},i))}void 0!==t.close&&(this.close=t.close),void 0!==t.type&&(this.type=t.type)}}class ze extends oe{destroy;constructor(){super(),this.destroy=t.DestroyType.none,this.speed=5}load(t){super.load(t),I(t)||void 0!==t.destroy&&(this.destroy=t.destroy)}}class Re extends we{animation;constructor(){super(),this.animation=new ze,this.value=3}load(t){if(super.load(t),I(t))return;const e=t.animation;void 0!==e&&this.animation.load(e)}}class Ge extends me{opacityRate;sizeRate;velocityRate;constructor(){super(),this.opacityRate=1,this.sizeRate=1,this.velocityRate=1}load(t){super.load(t),I(t)||(void 0!==t.opacityRate&&(this.opacityRate=t.opacityRate),void 0!==t.sizeRate&&(this.sizeRate=t.sizeRate),void 0!==t.velocityRate&&(this.velocityRate=t.velocityRate))}}class Le{bounce;effect;groups;move;number;opacity;paint;palette;reduceDuplicates;shape;size;zIndex;_container;_pluginManager;constructor(t,e){this._pluginManager=t,this._container=e,this.bounce=new De,this.effect=new pe,this.groups={},this.move=new Pe,this.number=new Ae,this.opacity=new Ce,this.paint=new ke,this.paint.color=new le,this.paint.color.value="#fff",this.paint.fill=new ge,this.paint.fill.enable=!0,this.reduceDuplicates=!1,this.shape=new Ee,this.size=new Re,this.zIndex=new Ge}load(t){if(I(t))return;if(t.palette&&(this.palette=t.palette,this._importPalette(this.palette)),void 0!==t.groups)for(const e of Object.keys(t.groups)){if(!(e in t.groups))continue;const i=t.groups[e];void 0!==i&&(this.groups[e]=St(this.groups[e]??{},i))}void 0!==t.reduceDuplicates&&(this.reduceDuplicates=t.reduceDuplicates),this.bounce.load(t.bounce),this.effect.load(t.effect),this.move.load(t.move),this.number.load(t.number),this.opacity.load(t.opacity);const e=t.paint;if(e&&(V(e)?this.paint=Ct(e,t=>{const e=new ke;return e.load(t),e}):V(this.paint)?(this.paint=new ke,this.paint.load(e)):this.paint.load(e)),this.shape.load(t.shape),this.size.load(t.size),this.zIndex.load(t.zIndex),this._container){for(const e of this._pluginManager.plugins)e.loadParticlesOptions&&e.loadParticlesOptions(this._container,this,t);const e=this._pluginManager.updaters.get(this._container);if(e)for(const i of e)i.loadOptions&&i.loadOptions(this,t)}}_importPalette=t=>{const e=this._pluginManager.getPalette(t);if(!e)return;const i=e.colors,n=(V(i)?i:[i]).flatMap(t=>{const e=t.fill,i=t.stroke,n=e?{color:{value:e.value},enable:e.enable,opacity:e.opacity}:void 0;return i?[{fill:n,stroke:{color:{value:i.value},opacity:i.opacity,width:i.width||0}}]:[{fill:n}]}),s=n.length>1?n:n[0]??{};this.load({paint:s,blend:{enable:!0,mode:e.blendMode}})}}function Fe(t,...e){for(const i of e)t.load(i)}function He(t,e,...i){const n=new Le(t,e);return Fe(n,...i),n}class Be{autoPlay;background;clear;defaultThemes;delay;detectRetina;duration;fpsLimit;fullScreen;hdr;key;name;palette;particles;pauseOnBlur;pauseOnOutsideViewport;preset;resize;smooth;style;zLayers;_container;_pluginManager;constructor(t,e){this._pluginManager=t,this._container=e,this.autoPlay=!0,this.background=new he,this.clear=!0,this.defaultThemes={},this.delay=0,this.fullScreen=new de,this.detectRetina=!0,this.duration=0,this.fpsLimit=120,this.hdr=!0,this.particles=He(this._pluginManager,this._container),this.pauseOnBlur=!0,this.pauseOnOutsideViewport=!0,this.resize=new ue,this.smooth=!1,this.style={},this.zLayers=100}load(t){if(I(t))return;void 0!==t.preset&&(this.preset=t.preset,Ct(this.preset,t=>{this._importPreset(t)})),void 0!==t.palette&&(this.palette=t.palette,this._importPalette(this.palette)),void 0!==t.autoPlay&&(this.autoPlay=t.autoPlay),void 0!==t.clear&&(this.clear=t.clear),void 0!==t.key&&(this.key=t.key),void 0!==t.name&&(this.name=t.name),void 0!==t.delay&&(this.delay=q(t.delay));const e=t.detectRetina;void 0!==e&&(this.detectRetina=e),void 0!==t.duration&&(this.duration=q(t.duration));const i=t.fpsLimit;void 0!==i&&(this.fpsLimit=i),void 0!==t.hdr&&(this.hdr=t.hdr),void 0!==t.pauseOnBlur&&(this.pauseOnBlur=t.pauseOnBlur),void 0!==t.pauseOnOutsideViewport&&(this.pauseOnOutsideViewport=t.pauseOnOutsideViewport),void 0!==t.zLayers&&(this.zLayers=t.zLayers),this.background.load(t.background);const n=t.fullScreen;C(n)?this.fullScreen.enable=n:this.fullScreen.load(n),this.particles.load(t.particles),this.resize.load(t.resize),this.style=St(this.style,t.style),void 0!==t.smooth&&(this.smooth=t.smooth),this._pluginManager.plugins.forEach(e=>{e.loadOptions(this._container,this,t)})}_importPalette=t=>{const e=this._pluginManager.getPalette(t);e&&this.load({background:{color:e.background},blend:{enable:!0,mode:e.blendMode},particles:{palette:t}})};_importPreset=t=>{this.load(this._pluginManager.getPreset(t))}}function Ne(t,e,i){t.fillStyle=i??"rgba(0,0,0,0)",t.fillRect(c.x,c.y,e.width,e.height)}function Ue(t,e,i,n){if(!i)return;const s=t.globalAlpha;t.globalAlpha=n,t.drawImage(i,c.x,c.y,e.width,e.height),t.globalAlpha=s}function $e(t,e){t.clearRect(c.x,c.y,e.width,e.height)}function je(t){const{container:e,context:i,particle:n,delta:s,colorStyles:o,radius:a,opacity:r,transform:c}=t,{effectDrawers:l,shapeDrawers:h}=e,d=n.getPosition(),u=n.getTransformData(c),p={x:d.x,y:d.y};i.setTransform(u.a,u.b,u.c,u.d,d.x,d.y),o.fill&&(i.fillStyle=o.fill);const g=!!n.fillEnabled,f=n.strokeWidth??0;i.lineWidth=f,o.stroke&&(i.strokeStyle=o.stroke);const y={context:i,particle:n,radius:a,drawRadius:1*a,opacity:r,delta:s,pixelRatio:e.retina.pixelRatio,fill:g,stroke:f>0,transformData:u,position:{...d},drawPosition:p,drawScale:1};for(const t of e.plugins)t.drawParticleTransform?.(y);const _=n.effect?l.get(n.effect):void 0,m=n.shape?h.get(n.shape):void 0;We(_,y),Xe(m,y),Qe(m,y),Ze(m,y),qe(_,y),i.resetTransform()}function qe(t,e){if(!t?.drawAfter)return;const{particle:i}=e;i.effect&&t.drawAfter(e)}function We(t,e){if(!t?.drawBefore)return;const{particle:i}=e;i.effect&&t.drawBefore(e)}function Qe(t,e){if(!t)return;const{context:i,fill:n,particle:s,stroke:o}=e;s.shape&&(i.beginPath(),t.draw(e),s.shapeClose&&i.closePath(),n&&i.fill(),o&&i.stroke())}function Ze(t,e){if(!t?.afterDraw)return;const{particle:i}=e;i.shape&&t.afterDraw(e)}function Xe(t,e){if(!t?.beforeDraw)return;const{particle:i}=e;i.shape&&t.beforeDraw(e)}function Ye(t,e,i,n){e.drawParticle&&e.drawParticle(t,i,n)}const Ke=new Map;function Je(t,e){let i=Ke.get(t);if(!i){if(i=e(),Ke.size>=1e3){[...Ke.keys()].slice(0,500).forEach(t=>Ke.delete(t))}Ke.set(t,i)}return i}function ti(t,e){if(e)for(const i of t.colorManagers.values())if(i.accepts(e))return i.parseString(e)}function ei(t,e,i,n=!0){if(!e)return;const s=O(e)?{value:e}:e;if(O(s.value))return ii(t,s.value,i,n);if(V(s.value)){const e=vt(s.value,i,n);if(!e)return;return ei(t,{value:e})}for(const e of t.colorManagers.values()){const t=e.handleRangeColor(s);if(t)return t}}function ii(t,e,i,n=!0){if(!e)return;const s=O(e)?{value:e}:e;if(O(s.value))return s.value===h?li():ai(t,s.value);if(V(s.value)){const e=vt(s.value,i,n);if(!e)return;return ii(t,{value:e})}for(const e of t.colorManagers.values()){const t=e.handleColor(s);if(t)return t}}function ni(t,e,i,n=!0){const s=ei(t,e,i,n);return s?si(s):void 0}function si(t){const e=t.r/y,i=t.g/y,n=t.b/y,s=Math.max(e,i,n),o=Math.min(e,i,n),r={h:0,l:(s+o)*a,s:0};return s!==o&&(r.s=r.l<a?(s-o)/(s+o):(s-o)/(2-s-o),r.h=e===s?(i-n)/(s-o):i===s?2+(n-e)/(s-o):4+(e-i)/(s-o)),r.l*=v,r.s*=m,r.h*=60,r.h<0&&(r.h+=_),r.h>=_&&(r.h-=_),r}function oi(t,e){return ti(t,e)?.a}function ai(t,e){return ti(t,e)}function ri(t){const e=(t.h%_+_)%_,i=Math.max(0,Math.min(m,t.s)),n=Math.max(0,Math.min(v,t.l)),s=e/_,o=i/m,r=n/v;if(0===i){const t=Math.round(r*y);return{r:t,g:t,b:t}}const c=(t,e,i)=>{if(i<0&&i++,i>1&&i--,6*i<1)return t+6*(e-t)*i;if(2*i<1)return e;if(3*i<2){return t+(e-t)*(2/3-i)*6}return t},l=r<a?r*(1+o):r+o-r*o,h=2*r-l,d=1/3,u=Math.min(y,y*c(h,l,s+d)),p=Math.min(y,y*c(h,l,s)),g=Math.min(y,y*c(h,l,s-d));return{r:Math.round(u),g:Math.round(p),b:Math.round(g)}}function ci(t){const e=ri(t);return{a:t.a,b:e.b,g:e.g,r:e.r}}function li(t){const e=t??0,i=()=>Math.floor(G(e,256));return{b:i(),g:i(),r:i()}}function hi(t,e,i){const n=i??1;return Je(`rgb-${t.r.toFixed(2)}-${t.g.toFixed(2)}-${t.b.toFixed(2)}-${e?"hdr":"sdr"}-${n.toString()}`,()=>e?di(t,i):function(t,e){return`rgba(${t.r.toString()}, ${t.g.toString()}, ${t.b.toString()}, ${(e??1).toString()})`}(t,i))}function di(t,e){return`color(display-p3 ${(t.r/y).toString()} ${(t.g/y).toString()} ${(t.b/y).toString()} / ${(e??1).toString()})`}function ui(t,e,i){const n=i??1;return Je(`hsl-${t.h.toFixed(2)}-${t.s.toFixed(2)}-${t.l.toFixed(2)}-${e?"hdr":"sdr"}-${n.toString()}`,()=>e?function(t,e){return di(ri(t),e)}(t,i):function(t,e){return`hsla(${t.h.toString()}, ${t.s.toString()}%, ${t.l.toString()}%, ${(e??1).toString()})`}(t,i))}function pi(t,e,i,n){let s=t,o=e;return"r"in s||(s=ri(t)),"r"in o||(o=ri(e)),{b:B(s.b,o.b,i,n),g:B(s.g,o.g,i,n),r:B(s.r,o.r,i,n)}}function gi(t,e,i){if(i===h)return li();if(i!==d)return i;{const i=t.getFillColor()??t.getStrokeColor(),n=e?.getFillColor()??e?.getStrokeColor();if(i&&n&&e)return pi(i,n,t.getRadius(),e.getRadius());{const t=i??n;if(t)return ri(t)}}}function fi(t,e,i,n){const s=O(e)?e:e.value;return s===h?n?ei(t,{value:s}):i?h:d:s===d?d:ei(t,{value:s})}function yi(t){return void 0===t?void 0:{h:t.h.value,s:t.s.value,l:t.l.value}}function _i(t,e,i){const n={h:{enable:!1,value:t.h,min:0,max:_},s:{enable:!1,value:t.s,min:0,max:m},l:{enable:!1,value:t.l,min:0,max:v}};return e&&(mi(n.h,e.h,i),mi(n.s,e.s,i),mi(n.l,e.l,i)),n}function mi(e,i,n){e.enable=i.enable,e.min=i.min,e.max=i.max,e.enable?(e.velocity=U(i.speed)/o*n,e.decay=1-U(i.decay),e.status=t.AnimationStatus.increasing,e.loops=0,e.maxLoops=U(i.count),e.time=0,e.delayTime=U(i.delay)*r,i.sync||(e.velocity*=R(),e.value*=R()),e.initialValue=e.value,e.offset=q(i.offset)):e.velocity=0}function vi(e,i,n){if(!e.enable||(e.maxLoops??0)>0&&(e.loops??0)>(e.maxLoops??0))return;if(e.time??=0,(e.delayTime??0)>0&&e.time<(e.delayTime??0)&&(e.time+=n.value),(e.delayTime??0)>0&&e.time<(e.delayTime??0))return;const s=e.offset?N(e.offset):0,o=(e.velocity??0)*n.factor+3.6*s,a=e.decay??1,r=e.max,c=e.min;i&&e.status!==t.AnimationStatus.increasing?(e.value-=o,e.value<c&&(e.loops??=0,e.loops++,e.status=t.AnimationStatus.increasing)):(e.value+=o,e.value>r&&(e.loops??=0,e.loops++,i?e.status=t.AnimationStatus.decreasing:e.value-=r)),e.velocity&&1!==a&&(e.velocity*=a),e.value=H(e.value,c,r)}function wi(t,e){if(!t)return;const{h:i,s:n,l:s}=t;vi(i,!1,e),vi(n,!0,e),vi(s,!0,e)}function bi(e,i,n){return{h:e.h,s:e.s,l:e.l+(i===t.AlterType.darken?-1:1)*n}}const xi=new qt;class Si{draw(t){!function(t){const{context:e,particle:i,radius:n}=t,s=2*n,o=s*(i.heightFactor??.5),r=s*(i.headWidthFactor??.2),l=o*(i.bodyHeightFactor??.5);e.moveTo(-s*a,c.y),e.lineTo(-s*a,-l*a),e.lineTo(s*a-r,-l*a),e.lineTo(s*a-r,-o*a),e.lineTo(s*a+r,c.y),e.lineTo(s*a-r,o*a),e.lineTo(s*a-r,l*a),e.lineTo(-s*a,l*a),e.lineTo(-s*a,c.y)}(t)}particleInit(t,e){const i=e.shapeData;e.heightFactor=U(i?.heightFactor??.5),e.headWidthFactor=U(i?.headWidthFactor??.2),e.bodyHeightFactor=U(i?.bodyHeightFactor??.5)}}async function Pi(t){t.checkVersion("4.0.0"),await t.pluginManager.register(t=>{t.pluginManager.addShape(["arrow"],()=>Promise.resolve(new Si))})}class Mi{color;image;opacity;constructor(){this.opacity=1}load(t){I(t)||(void 0!==t.color&&(this.color=ce.create(this.color,t.color)),void 0!==t.image&&(this.image=t.image),void 0!==t.opacity&&(this.opacity=t.opacity))}}class Ci{composite;cover;enable;constructor(){this.composite="destination-out",this.cover=new Mi,this.enable=!1}load(t){if(!I(t)){if(void 0!==t.composite&&(this.composite=t.composite),void 0!==t.cover){const e=t.cover,i=O(t.cover)?{color:t.cover}:t.cover;this.cover.load(void 0!==e.color||void 0!==e.image?e:{color:i})}void 0!==t.enable&&(this.enable=t.enable)}}}class Oi{id="background-mask";_pluginManager;constructor(t){this._pluginManager=t}async getPlugin(t){const{BackgroundMaskPluginInstance:e}=await Promise.resolve().then(function(){return df});return new e(this._pluginManager,t)}loadOptions(t,e,i){if(!this.needsPlugin(e)&&!this.needsPlugin(i))return;let n=e.backgroundMask;n?.load||(e.backgroundMask=n=new Ci),n.load(i?.backgroundMask)}needsPlugin(t){return!!t?.backgroundMask?.enable}}async function ki(t){t.checkVersion("4.0.0"),await t.pluginManager.register(t=>{t.pluginManager.addPlugin(new Oi(t.pluginManager))})}class Ti{enable;mode;constructor(){this.mode="destination-out",this.enable=!1}load(t){I(t)||(void 0!==t.mode&&(this.mode=t.mode),void 0!==t.enable&&(this.enable=t.enable))}}class Di{id="blend";async getPlugin(t){const{BlendPluginInstance:e}=await Promise.resolve().then(function(){return uf});return new e(t)}loadOptions(t,e,i){if(!this.needsPlugin(e)&&!this.needsPlugin(i))return;let n=e.blend;n?.load||(e.blend=n=new Ti),n.load(i?.blend)}loadParticlesOptions(t,e,i){e.blend??=new Ti,e.blend.load(i?.blend)}needsPlugin(t){return!!t?.blend?.enable||!!t?.particles?.blend?.enable}}async function Vi(t){t.checkVersion("4.0.0"),await t.pluginManager.register(t=>{t.pluginManager.addPlugin(new Di)})}class Ii{id="move";_pluginManager;constructor(t){this._pluginManager=t}async getPlugin(t){const{MovePluginInstance:e}=await Promise.resolve().then(function(){return gf});return new e(this._pluginManager,t)}loadOptions(){}needsPlugin(){return!0}}async function Ai(t){t.checkVersion("4.0.0"),await t.pluginManager.register(t=>{const e=t.pluginManager;e.initializers.pathGenerators??=new Map,e.pathGenerators??=new Map,e.addPathGenerator=(t,i)=>{e.initializers.pathGenerators??=new Map,e.initializers.pathGenerators.set(t,i)},e.getPathGenerators=async(t,i=!1)=>(e.initializers.pathGenerators??=new Map,e.pathGenerators??=new Map,Lt(t,e.pathGenerators,e.initializers.pathGenerators,i)),t.pluginManager.addPlugin(new Ii(t.pluginManager))})}function Ei(t){if(!t.pluginManager.addPathGenerator)throw new Error("tsParticles Base Mover is not loaded")}const zi={segmentLength:20,branchChance:.2,maxAngle:Math.PI/3,speedVariation:.3,inertia:{enable:!1,factor:.1}};class Ri{options;_container;_res;constructor(t){this._container=t,this._res=M.origin,this.options={...zi,inertia:{...zi.inertia}}}generate(t){const e=this.options;t.branching??={angle:R()*u,remaining:e.segmentLength,baseSpeed:t.velocity.length,speed:t.velocity.length};const i=t.branching;if(i.remaining<=0){const t=R()<(e.branchChance??0),n=e.maxAngle??zi.maxAngle,s=(2*R()-1)*(t?n:.3*n);i.angle+=s,i.remaining=e.segmentLength;const o=1+(2*R()-1)*(e.speedVariation??0);i.speed=i.baseSpeed*o}i.remaining-=i.speed;const n=Math.cos(i.angle)*i.speed,s=Math.sin(i.angle)*i.speed,o=e.inertia;if(o?.enable){const e=o.factor??.1;t.velocity.x+=(n-t.velocity.x)*e,t.velocity.y+=(s-t.velocity.y)*e,this._res.x=t.velocity.x,this._res.y=t.velocity.y}else t.velocity.x=0,t.velocity.y=0,this._res.x=n,this._res.y=s;return this._res}init(){const t=this._container.actualOptions.particles.move.path.options;this.options.segmentLength=t.segmentLength??this.options.segmentLength,this.options.branchChance=t.branchChance??this.options.branchChance,this.options.maxAngle=t.maxAngle??this.options.maxAngle,this.options.speedVariation=t.speedVariation??this.options.speedVariation;const e=t.inertia;if(e){const t={...zi.inertia};t.enable=e.enable??t.enable,t.factor=e.factor??t.factor,this.options.inertia=t}}reset(t){delete t.branching}update(){}}async function Gi(t){t.checkVersion("4.0.0"),await t.pluginManager.register(t=>{Ei(t),t.pluginManager.addPathGenerator?.("branchesPathGenerator",t=>Promise.resolve(new Ri(t)))})}class Li{options;_container;_res;constructor(t){this._container=t,this._res=M.origin,this.options={angleDelta:Math.PI/12,damping:1}}generate(t){t.brownian??={angle:R()*u,speed:t.velocity.length};const e=t.brownian,i=(2*R()-1)*(this.options.angleDelta??0);e.angle+=i;const n=this.options.damping??1;return t.velocity.x=0,t.velocity.y=0,this._res.length=e.speed*n,this._res.angle=e.angle,this._res}init(){const t=this._container.actualOptions.particles.move.path.options;this.options.angleDelta=t.angleDelta??this.options.angleDelta,this.options.damping=t.damping??this.options.damping}reset(t){delete t.brownian}update(){}}async function Fi(t){t.checkVersion("4.0.0"),await t.pluginManager.register(t=>{Ei(t),t.pluginManager.addPathGenerator?.("brownianPathGenerator",t=>Promise.resolve(new Li(t)))})}class Hi{drawAfter(t){const{context:e,radius:i}=t,n=i/3;e.beginPath(),e.arc(n,-n,n,0,u,!1),e.closePath(),e.fillStyle="#fff9",e.fill()}}async function Bi(t){t.checkVersion("4.0.0"),await t.pluginManager.register(t=>{t.pluginManager.addEffect("bubble",()=>Promise.resolve(new Hi))})}class Ni{color;opacity;constructor(){this.color=!0,this.opacity=!1}load(t){I(t)||(void 0!==t.color&&(this.color=t.color),void 0!==t.opacity&&(this.opacity=t.opacity))}}class Ui{filter;offset;constructor(){this.filter=t=>t.a>0,this.offset=4}load(t){if(!I(t)){if(void 0!==t.filter)if(O(t.filter)){if(t.filter in globalThis){const e=globalThis[t.filter];T(e)&&(this.filter=e)}}else this.filter=t.filter;void 0!==t.offset&&(this.offset=t.offset)}}}class $i{src;constructor(){this.src=""}load(t){I(t)||void 0!==t.src&&(this.src=t.src)}}class ji{family;size;style;variant;weight;constructor(){this.family="sans-serif",this.size=100,this.style="",this.variant="",this.weight=""}load(t){I(t)||(void 0!==t.family&&(this.family=t.family),void 0!==t.size&&(this.size=t.size),void 0!==t.style&&(this.style=t.style),void 0!==t.variant&&(this.variant=t.variant),void 0!==t.weight&&(this.weight=t.weight))}}class qi{separator;spacing;constructor(){this.separator="\n",this.spacing=10}load(t){I(t)||(void 0!==t.separator&&(this.separator=t.separator),void 0!==t.spacing&&(this.spacing=t.spacing))}}class Wi{color;fill;font;lines;text;constructor(){this.color="#000000",this.fill=!0,this.font=new ji,this.lines=new qi,this.text=""}load(t){I(t)||(void 0!==t.color&&(this.color=t.color),void 0!==t.fill&&(this.fill=t.fill),this.font.load(t.font),this.lines.load(t.lines),void 0!==t.text&&(this.text=t.text))}}class Qi{element;enable;image;override;pixels;position;scale;selector;text;constructor(){this.enable=!1,this.override=new Ni,this.pixels=new Ui,this.position={x:50,y:50},this.scale=1}load(t){I(t)||(void 0!==t.element&&t.element instanceof HTMLCanvasElement&&(this.element=t.element),void 0!==t.enable&&(this.enable=t.enable),t.image&&(this.image??=new $i,this.image.load(t.image)),this.pixels.load(t.pixels),t.position&&(this.position={x:t.position.x??this.position.x,y:t.position.y??this.position.y}),this.override.load(t.override),void 0!==t.scale&&(this.scale=t.scale),void 0!==t.selector&&(this.selector=t.selector),t.text&&(this.text??=new Wi,this.text.load(t.text)))}}class Zi{id="canvas-mask";async getPlugin(t){const{CanvasMaskPluginInstance:e}=await Promise.resolve().then(function(){return _f});return new e(t)}loadOptions(t,e,i){if(!this.needsPlugin(e)&&!this.needsPlugin(i))return;let n=e.canvasMask;void 0===n?.load&&(e.canvasMask=n=new Qi),n.load(i?.canvasMask)}needsPlugin(t){return t?.canvasMask?.enable??!1}}async function Xi(t){t.checkVersion("4.0.0"),await t.pluginManager.register(t=>{t.pluginManager.addPlugin(new Zi)})}var Yi;!function(t){t.move="move",t.line="line",t.bezier="bezier",t.quadratic="quadratic",t.arc="arc",t.ellipse="ellipse"}(Yi||(Yi={}));function Ki(t,e,i){const n=i.segments[0];if(!n)return;const s=n.values[0];if(!s)return;t.moveTo(s.x*e,s.y*e);for(const n of i.segments){const i=n.values[0];if(!i)continue;const s=n.values[1],o=n.values[2],a=n.values[3];switch(n.type){case Yi.move:t.moveTo(i.x*e,i.y*e);break;case Yi.line:t.lineTo(i.x*e,i.y*e);break;case Yi.bezier:if(!s||!o||!a)continue;t.bezierCurveTo(s.x*e,s.y*e,o.x*e,o.y*e,a.x*e,a.y*e);break;case Yi.quadratic:if(!s||!o)continue;t.quadraticCurveTo(s.x*e,s.y*e,o.x*e,o.y*e);break;case Yi.arc:if(!s||!o)continue;t.arc(i.x*e,i.y*e,s.x*e,o.x,o.y);break;case Yi.ellipse:if(!s||!o||!a)continue;t.ellipse(i.x*e,i.y*e,s.x*e,s.y*e,o.x,a.x,a.y)}}if(!i.half)return;for(let n=i.segments.length-1;n>=0;n--){const s=i.segments[n];if(!s)continue;const o=s.values[0],a=1,r=2,c=s.values[a],l=s.values[r];switch(s.type){case Yi.line:if(!o)break;t.lineTo(o.x*-e,o.y*e);break;case Yi.bezier:if(!o||!c||!l)break;t.bezierCurveTo(-l.x*e,l.y*e,-c.x*e,c.y*e,-o.x*e,o.y*e);break;case Yi.quadratic:if(!c||!l)break;t.quadraticCurveTo(-c.x*e,c.y*e,-l.x*e,l.y*e);case Yi.arc:case Yi.ellipse:}}}var Ji;!function(t){t.hearts="hearts",t.diamonds="diamonds",t.clubs="clubs",t.spades="spades"}(Ji||(Ji={}));const tn=a,en=.25,nn=-tn,sn=-.25,on=.0625,an=.375,rn={half:!0,segments:[{type:Yi.bezier,values:[{x:0,y:nn},{x:0,y:nn},{x:en,y:nn},{x:en,y:sn}]},{type:Yi.bezier,values:[{x:en,y:sn},{x:en,y:sn},{x:tn,y:sn},{x:tn,y:0}]},{type:Yi.bezier,values:[{x:tn,y:0},{x:tn,y:0},{x:tn,y:en},{x:en,y:en}]},{type:Yi.bezier,values:[{x:en,y:en},{x:en,y:en},{x:on,y:en},{x:on,y:on}]},{type:Yi.bezier,values:[{x:on,y:on},{x:on,y:en},{x:en,y:tn},{x:en,y:tn}]},{type:Yi.bezier,values:[{x:en,y:tn},{x:en,y:tn},{x:0,y:tn},{x:0,y:tn}]}]},cn={half:!0,segments:[{type:Yi.bezier,values:[{x:0,y:tn},{x:0,y:tn},{x:an,y:0},{x:an,y:0}]},{type:Yi.bezier,values:[{x:an,y:0},{x:an,y:0},{x:0,y:nn},{x:0,y:nn}]}]},ln={half:!0,segments:[{type:Yi.bezier,values:[{x:0,y:tn},{x:0,y:tn},{x:tn,y:0},{x:tn,y:sn}]},{type:Yi.bezier,values:[{x:tn,y:sn},{x:tn,y:sn},{x:tn,y:nn},{x:en,y:nn}]},{type:Yi.bezier,values:[{x:en,y:nn},{x:en,y:nn},{x:0,y:nn},{x:0,y:sn}]}]},hn={half:!0,segments:[{type:Yi.bezier,values:[{x:0,y:nn},{x:0,y:nn},{x:tn,y:sn},{x:tn,y:0}]},{type:Yi.bezier,values:[{x:tn,y:0},{x:tn,y:0},{x:tn,y:en},{x:en,y:en}]},{type:Yi.bezier,values:[{x:en,y:en},{x:en,y:en},{x:on,y:en},{x:on,y:on}]},{type:Yi.bezier,values:[{x:on,y:on},{x:on,y:en},{x:en,y:tn},{x:en,y:tn}]},{type:Yi.bezier,values:[{x:en,y:tn},{x:en,y:tn},{x:0,y:tn},{x:0,y:tn}]}]},dn={[Ji.hearts]:ln,[Ji.diamonds]:cn,[Ji.clubs]:rn,[Ji.spades]:hn};class un{draw(t){const{context:e,radius:i}=t;Ki(e,i,dn.clubs)}}async function pn(t){t.checkVersion("4.0.0"),await t.pluginManager.register(t=>{t.pluginManager.addShape(["club","clubs"],()=>Promise.resolve(new un))})}class gn{draw(t){const{context:e,radius:i}=t;Ki(e,i,dn.diamonds)}}async function fn(t){t.checkVersion("4.0.0"),await t.pluginManager.register(t=>{t.pluginManager.addShape(["diamond","diamonds"],()=>Promise.resolve(new gn))})}let yn=class{draw(t){const{context:e,radius:i}=t;Ki(e,i,dn.hearts)}};async function _n(t){t.checkVersion("4.0.0"),await t.pluginManager.register(t=>{t.pluginManager.addShape(["heart","hearts"],()=>Promise.resolve(new yn))})}class mn{draw(t){const{context:e,radius:i}=t;Ki(e,i,dn.spades)}}async function vn(t){t.checkVersion("4.0.0"),await t.pluginManager.register(t=>{t.pluginManager.addShape(["spade","spades"],()=>Promise.resolve(new mn))})}async function wn(t){t.checkVersion("4.0.0"),await Promise.all([pn(t),fn(t),_n(t),vn(t)])}const bn=4/3,xn=new Map,Sn={r:215,g:20,b:20},Pn={r:18,g:18,b:18};function Mn(t,e,i,n,s,o){if(s)!function(t,e){On(t,e)}(t,e);else{const s=function(t,e,i){return`${t.toFixed(2)}-${e?"hdr":"sdr"}-${i.suit}-${i.value}`}(e,n,i),r=e*bn,c=2*e,l=r*a,h=c*a;let d=xn.get(s);if(!d){const t=new OffscreenCanvas(r,c),a=t.getContext("2d",o);a&&(a.translate(l,h),Cn(a,e,i,n),d=t instanceof HTMLCanvasElement?t:t.transferToImageBitmap(),xn.set(s,d))}d?t.drawImage(d,-l,-h,r,c):Cn(t,e,i,n)}}function Cn(t,e,i,n){const{suit:s,value:o}=i,r=e*bn*a,l=2*e*a,h=.2*e,d=.4*e,p=.3*e,g=.7*e,f=.25*e,y=.1*e,_=hi(s===Ji.hearts||s===Ji.diamonds?Sn:Pn,n);t.save(),On(t,e),t.fillStyle=hi({r:255,g:255,b:255},n),t.fill(),t.strokeStyle=hi({r:0,g:0,b:0},n),t.stroke(),t.fillStyle=_,t.font=`bold ${d.toString()}px Arial, serif`,t.textAlign="left",t.textBaseline="middle";const m=-r+h+y,v=-l+h+d*a;t.save(),t.translate(m,v),t.beginPath(),Ki(t,p,dn[s]),t.fill(),t.restore(),t.fillText(o,m+f,v),t.save(),t.translate(r-h-y,l-h-d*a),t.rotate(Math.PI),t.save(),t.beginPath(),Ki(t,p,dn[s]),t.fill(),t.restore(),t.fillText(o,c.x+f,c.y),t.restore(),t.save(),t.beginPath(),Ki(t,g,dn[s]),t.fillStyle=_,t.fill(),t.restore(),t.beginPath(),t.arc(c.x,c.y,0,0,u,!1),t.closePath(),t.restore()}function On(t,e){const i=e*bn*a,n=2*e*a,s=.2*e;t.beginPath(),t.moveTo(-i+s,-n),t.lineTo(i-s,-n),t.quadraticCurveTo(i,-n,i,-n+s),t.lineTo(i,n-s),t.quadraticCurveTo(i,n,i-s,n),t.lineTo(-i+s,n),t.quadraticCurveTo(-i,n,-i,n-s),t.lineTo(-i,-n+s),t.quadraticCurveTo(-i,-n,-i+s,-n),t.closePath()}class kn{_container;constructor(t){this._container=t}draw(t){const{context:e,particle:i,opacity:n,radius:s}=t;if(!i.cardData)return;const o=e.globalAlpha,a=this._container;e.globalAlpha=n,Mn(e,s,i.cardData,a.hdr,i.isShowingBack(),a.canvas.render.settings),e.globalAlpha=o}particleInit(t,e){const i=e.shapeData;i&&(e.cardData=St({},i))}}async function Tn(t){t.checkVersion("4.0.0"),await t.pluginManager.register(t=>{t.pluginManager.addShape(["card"],t=>Promise.resolve(new kn(t)))})}async function Dn(t){t.checkVersion("4.0.0"),await Promise.all([Tn(t),wn(t)])}class Vn{afterDraw(t){!function(t){const{context:e,particle:i,radius:n}=t;if(void 0===i.cogHoleRadius||void 0===i.cogInnerRadius||void 0===i.cogInnerTaper||void 0===i.cogNotches||void 0===i.cogOuterTaper)return;const s=n*i.cogHoleRadius/o;e.globalCompositeOperation="destination-out",e.beginPath(),e.moveTo(s,c.y),e.arc(c.x,c.y,s,0,u),e.closePath(),e.fill(),e.globalCompositeOperation="source-over"}(t)}draw(t){!function(t){const{context:e,particle:i,radius:n}=t;if(void 0===i.cogHoleRadius||void 0===i.cogInnerRadius||void 0===i.cogInnerTaper||void 0===i.cogNotches||void 0===i.cogOuterTaper)return;const s=u/(2*i.cogNotches),a=s*i.cogInnerTaper*.005,r=s*i.cogOuterTaper*.005,c=n*i.cogInnerRadius/o;let l=s,h=!1;for(e.moveTo(n*Math.cos(r),n*Math.sin(r));l<=u;l+=s)h?(e.lineTo(c*Math.cos(l-a),c*Math.sin(l-a)),e.lineTo(n*Math.cos(l+r),n*Math.sin(l+r))):(e.lineTo(n*Math.cos(l-r),n*Math.sin(l-r)),e.lineTo(c*Math.cos(l+a),c*Math.sin(l+a))),h=!h}(t)}particleInit(t,e){const i=e.shapeData;e.cogHoleRadius=U(i?.holeRadius??44),e.cogInnerRadius=U(i?.innerRadius??72),e.cogInnerTaper=U(i?.innerTaper??35),e.cogNotches=U(i?.notches??7),e.cogOuterTaper=U(i?.outerTaper??50)}}async function In(t){t.checkVersion("4.0.0"),await t.pluginManager.register(t=>{t.pluginManager.addShape(["cog"],()=>Promise.resolve(new Vn))})}function An(t){const e=new Uint32Array(1);return e[0]=1664525*t[0]+1013904223,e}class En{_NORM_2D;_SQUISH_2D;_STRETCH_2D;_base2D;_gradients2D;_lookup;_lookupPairs2D;_p2D;_perm;_perm2D;constructor(){this._NORM_2D=1/47,this._SQUISH_2D=.5*(Math.sqrt(3)-1),this._STRETCH_2D=.5*(1/Math.sqrt(3)-1),this._base2D=[[1,1,0,1,0,1,0,0,0],[1,1,0,1,0,1,2,1,1]],this._gradients2D=[5,2,2,5,-5,2,-2,5,5,-2,2,-5,-5,-2,-2,-5],this._lookup=[],this._lookupPairs2D=[0,1,1,0,4,1,17,0,20,2,21,2,22,5,23,5,26,4,39,3,42,4,43,3],this._p2D=[0,0,1,-1,0,0,-1,1,0,2,1,1,1,2,2,0,1,2,0,2,1,0,0,0],this._perm=new Uint8Array(256),this._perm2D=new Uint8Array(256)}noise(t,e){const{_gradients2D:i,_NORM_2D:n,_SQUISH_2D:s,_STRETCH_2D:o,_lookup:a,_perm:r,_perm2D:c}=this,l=(t+e)*o,h=t+l,d=e+l,u=Math.floor(h),p=Math.floor(d),g=(u+p)*s,f=t-(u+g),y=e-(p+g),_=h-u,m=d-p,v=_+m;let w=0;for(let t=a[_-m+1|v<<1|v+m<<2|v+_<<4];void 0!==t;t=t.next){const e=f+t.dx,n=y+t.dy,s=2-e*e-n*n;if(s<=0)continue;const o=u+t.xsb,a=p+t.ysb,l=c[r[255&o]+a&255];w+=s*s*s*s*(i[l]*e+i[l+1]*n)}return w*n}seed(t){const{_p2D:e,_base2D:i,_lookupPairs2D:n}=this,s=[];for(let t=0;t<e.length;t+=4){const n=i[e[t]];let o=null,a=null;for(let e=0;e<n.length;e+=3)a=this._contribution2D(n[e],n[e+1],n[e+2]),null===o?s[t/4]=a:o.next=a,o=a;a&&(a.next=this._contribution2D(e[t+1],e[t+2],e[t+3]))}this._lookup=[];for(let t=0;t<n.length;t+=2)this._lookup[n[t]]=s[n[t+1]];this._perm=new Uint8Array(256),this._perm2D=new Uint8Array(256);const o=new Uint8Array(256);for(let t=0;t<256;t++)o[t]=t;let a=new Uint32Array(1);a[0]=t,a=An(An(An(a)));for(let t=255;t>=0;t--){a=An(a);const e=new Uint32Array(1);e[0]=(a[0]+31)%(t+1),e[0]<0&&(e[0]+=t+1),this._perm[t]=o[e[0]],this._perm2D[t]=14&this._perm[t],o[e[0]]=o[t]}}_contribution2D(t,e,i){const{_SQUISH_2D:n}=this;return{dx:-e-t*n,dy:-i-t*n,xsb:e,ysb:i}}}const zn=1/3;class Rn{_NORM_3D;_SQUISH_3D;_STRETCH_3D;_base3D;_gradients3D;_lookup;_lookupPairs3D;_p3D;_perm;_perm3D;constructor(){this._NORM_3D=1/103,this._SQUISH_3D=(Math.sqrt(4)-1)*zn,this._STRETCH_3D=(1/Math.sqrt(4)-1)*zn,this._base3D=[[0,0,0,0,1,1,0,0,1,0,1,0,1,0,0,1],[2,1,1,0,2,1,0,1,2,0,1,1,3,1,1,1],[1,1,0,0,1,0,1,0,1,0,0,1,2,1,1,0,2,1,0,1,2,0,1,1]],this._gradients3D=[-11,4,4,-4,11,4,-4,4,11,11,4,4,4,11,4,4,4,11,-11,-4,4,-4,-11,4,-4,-4,11,11,-4,4,4,-11,4,4,-4,11,-11,4,-4,-4,11,-4,-4,4,-11,11,4,-4,4,11,-4,4,4,-11,-11,-4,-4,-4,-11,-4,-4,-4,-11,11,-4,-4,4,-11,-4,4,-4,-11],this._lookup=[],this._lookupPairs3D=[0,2,1,1,2,2,5,1,6,0,7,0,32,2,34,2,129,1,133,1,160,5,161,5,518,0,519,0,546,4,550,4,645,3,647,3,672,5,673,5,674,4,677,3,678,4,679,3,680,13,681,13,682,12,685,14,686,12,687,14,712,20,714,18,809,21,813,23,840,20,841,21,1198,19,1199,22,1226,18,1230,19,1325,23,1327,22,1352,15,1353,17,1354,15,1357,17,1358,16,1359,16,1360,11,1361,10,1362,11,1365,10,1366,9,1367,9,1392,11,1394,11,1489,10,1493,10,1520,8,1521,8,1878,9,1879,9,1906,7,1910,7,2005,6,2007,6,2032,8,2033,8,2034,7,2037,6,2038,7,2039,6],this._p3D=[0,0,1,-1,0,0,1,0,-1,0,0,-1,1,0,0,0,1,-1,0,0,-1,0,1,0,0,-1,1,0,2,1,1,0,1,1,1,-1,0,2,1,0,1,1,1,-1,1,0,2,0,1,1,1,-1,1,1,1,3,2,1,0,3,1,2,0,1,3,2,0,1,3,1,0,2,1,3,0,2,1,3,0,1,2,1,1,1,0,0,2,2,0,0,1,1,0,1,0,2,0,2,0,1,1,0,0,1,2,0,0,2,2,0,0,0,0,1,1,-1,1,2,0,0,0,0,1,-1,1,1,2,0,0,0,0,1,1,1,-1,2,3,1,1,1,2,0,0,2,2,3,1,1,1,2,2,0,0,2,3,1,1,1,2,0,2,0,2,1,1,-1,1,2,0,0,2,2,1,1,-1,1,2,2,0,0,2,1,-1,1,1,2,0,0,2,2,1,-1,1,1,2,0,2,0,2,1,1,1,-1,2,2,0,0,2,1,1,1,-1,2,0,2,0],this._perm=new Uint8Array(256),this._perm3D=new Uint8Array(256)}noise(t,e,i){const{_STRETCH_3D:n,_NORM_3D:s,_SQUISH_3D:o,_lookup:a,_perm:r,_perm3D:c,_gradients3D:l}=this,h=(t+e+i)*n,d=t+h,u=e+h,p=i+h,g=Math.floor(d),f=Math.floor(u),y=Math.floor(p),_=(g+f+y)*o,m=t-(g+_),v=e-(f+_),w=i-(y+_),b=d-g,x=u-f,S=p-y,P=b+x+S;let M=0;for(let t=a[x-S+1|b-x+1<<1|b-S+1<<2|P<<3|P+S<<5|P+x<<7|P+b<<9];void 0!==t;t=t.next){const e=m+t.dx,i=v+t.dy,n=w+t.dz,s=2-e*e-i*i-n*n;if(s>0){const o=g+t.xsb,a=f+t.ysb,h=y+t.zsb,d=c[r[r[255&o]+a&255]+h&255];M+=s*s*s*s*(l[d]*e+l[d+1]*i+l[d+2]*n)}}return M*s}seed(t){const{_base3D:e,_lookupPairs3D:i,_p3D:n}=this,s=[];for(let t=0;t<n.length;t+=9){const i=e[n[t]];let o=null,a=null;for(let e=0;e<i.length;e+=4)a=this._contribution3D(i[e],i[e+1],i[e+2],i[e+3]),null===o?s[t/9]=a:o.next=a,o=a;a&&(a.next=this._contribution3D(n[t+1],n[t+2],n[t+3],n[t+4]),a.next.next=this._contribution3D(n[t+5],n[t+6],n[t+7],n[t+8]))}this._lookup=[];for(let t=0;t<i.length;t+=2)this._lookup[i[t]]=s[i[t+1]];this._perm=new Uint8Array(256),this._perm3D=new Uint8Array(256);const o=new Uint8Array(256);for(let t=0;t<256;t++)o[t]=t;let a=new Uint32Array(1);a[0]=t,a=An(An(An(a)));for(let t=255;t>=0;t--){a=An(a);const e=new Uint32Array(1);e[0]=(a[0]+31)%(t+1),e[0]<0&&(e[0]+=t+1),this._perm[t]=o[e[0]],this._perm3D[t]=this._perm[t]%24*3,o[e[0]]=o[t]}}_contribution3D(t,e,i,n){const{_SQUISH_3D:s}=this;return{dx:-e-t*s,dy:-i-t*s,dz:-n-t*s,xsb:e,ysb:i,zsb:n}}}class Gn{_NORM_4D;_SQUISH_4D;_STRETCH_4D;_base4D;_gradients4D;_lookup;_lookupPairs4D;_p4D;_perm;_perm4D;constructor(){this._NORM_4D=1/30,this._SQUISH_4D=.25*(Math.sqrt(5)-1),this._STRETCH_4D=.25*(1/Math.sqrt(5)-1),this._lookup=[],this._perm=new Uint8Array(0),this._perm4D=new Uint8Array(0),this._base4D=[[0,0,0,0,0,1,1,0,0,0,1,0,1,0,0,1,0,0,1,0,1,0,0,0,1],[3,1,1,1,0,3,1,1,0,1,3,1,0,1,1,3,0,1,1,1,4,1,1,1,1],[1,1,0,0,0,1,0,1,0,0,1,0,0,1,0,1,0,0,0,1,2,1,1,0,0,2,1,0,1,0,2,1,0,0,1,2,0,1,1,0,2,0,1,0,1,2,0,0,1,1],[3,1,1,1,0,3,1,1,0,1,3,1,0,1,1,3,0,1,1,1,2,1,1,0,0,2,1,0,1,0,2,1,0,0,1,2,0,1,1,0,2,0,1,0,1,2,0,0,1,1]],this._gradients4D=[3,1,1,1,1,3,1,1,1,1,3,1,1,1,1,3,-3,1,1,1,-1,3,1,1,-1,1,3,1,-1,1,1,3,3,-1,1,1,1,-3,1,1,1,-1,3,1,1,-1,1,3,-3,-1,1,1,-1,-3,1,1,-1,-1,3,1,-1,-1,1,3,3,1,-1,1,1,3,-1,1,1,1,-3,1,1,1,-1,3,-3,1,-1,1,-1,3,-1,1,-1,1,-3,1,-1,1,-1,3,3,-1,-1,1,1,-3,-1,1,1,-1,-3,1,1,-1,-1,3,-3,-1,-1,1,-1,-3,-1,1,-1,-1,-3,1,-1,-1,-1,3,3,1,1,-1,1,3,1,-1,1,1,3,-1,1,1,1,-3,-3,1,1,-1,-1,3,1,-1,-1,1,3,-1,-1,1,1,-3,3,-1,1,-1,1,-3,1,-1,1,-1,3,-1,1,-1,1,-3,-3,-1,1,-1,-1,-3,1,-1,-1,-1,3,-1,-1,-1,1,-3,3,1,-1,-1,1,3,-1,-1,1,1,-3,-1,1,1,-1,-3,-3,1,-1,-1,-1,3,-1,-1,-1,1,-3,-1,-1,1,-1,-3,3,-1,-1,-1,1,-3,-1,-1,1,-1,-3,-1,1,-1,-1,-3,-3,-1,-1,-1,-1,-3,-1,-1,-1,-1,-3,-1,-1,-1,-1,-3],this._lookupPairs4D=[0,3,1,2,2,3,5,2,6,1,7,1,8,3,9,2,10,3,13,2,16,3,18,3,22,1,23,1,24,3,26,3,33,2,37,2,38,1,39,1,41,2,45,2,54,1,55,1,56,0,57,0,58,0,59,0,60,0,61,0,62,0,63,0,256,3,258,3,264,3,266,3,272,3,274,3,280,3,282,3,2049,2,2053,2,2057,2,2061,2,2081,2,2085,2,2089,2,2093,2,2304,9,2305,9,2312,9,2313,9,16390,1,16391,1,16406,1,16407,1,16422,1,16423,1,16438,1,16439,1,16642,8,16646,8,16658,8,16662,8,18437,6,18439,6,18469,6,18471,6,18688,9,18689,9,18690,8,18693,6,18694,8,18695,6,18696,9,18697,9,18706,8,18710,8,18725,6,18727,6,131128,0,131129,0,131130,0,131131,0,131132,0,131133,0,131134,0,131135,0,131352,7,131354,7,131384,7,131386,7,133161,5,133165,5,133177,5,133181,5,133376,9,133377,9,133384,9,133385,9,133400,7,133402,7,133417,5,133421,5,133432,7,133433,5,133434,7,133437,5,147510,4,147511,4,147518,4,147519,4,147714,8,147718,8,147730,8,147734,8,147736,7,147738,7,147766,4,147767,4,147768,7,147770,7,147774,4,147775,4,149509,6,149511,6,149541,6,149543,6,149545,5,149549,5,149558,4,149559,4,149561,5,149565,5,149566,4,149567,4,149760,9,149761,9,149762,8,149765,6,149766,8,149767,6,149768,9,149769,9,149778,8,149782,8,149784,7,149786,7,149797,6,149799,6,149801,5,149805,5,149814,4,149815,4,149816,7,149817,5,149818,7,149821,5,149822,4,149823,4,149824,37,149825,37,149826,36,149829,34,149830,36,149831,34,149832,37,149833,37,149842,36,149846,36,149848,35,149850,35,149861,34,149863,34,149865,33,149869,33,149878,32,149879,32,149880,35,149881,33,149882,35,149885,33,149886,32,149887,32,150080,49,150082,48,150088,49,150098,48,150104,47,150106,47,151873,46,151877,45,151881,46,151909,45,151913,44,151917,44,152128,49,152129,46,152136,49,152137,46,166214,43,166215,42,166230,43,166247,42,166262,41,166263,41,166466,48,166470,43,166482,48,166486,43,168261,45,168263,42,168293,45,168295,42,168512,31,168513,28,168514,31,168517,28,168518,25,168519,25,280952,40,280953,39,280954,40,280957,39,280958,38,280959,38,281176,47,281178,47,281208,40,281210,40,282985,44,282989,44,283001,39,283005,39,283208,30,283209,27,283224,30,283241,27,283256,22,283257,22,297334,41,297335,41,297342,38,297343,38,297554,29,297558,24,297562,29,297590,24,297594,21,297598,21,299365,26,299367,23,299373,26,299383,23,299389,20,299391,20,299584,31,299585,28,299586,31,299589,28,299590,25,299591,25,299592,30,299593,27,299602,29,299606,24,299608,30,299610,29,299621,26,299623,23,299625,27,299629,26,299638,24,299639,23,299640,22,299641,22,299642,21,299645,20,299646,21,299647,20,299648,61,299649,60,299650,61,299653,60,299654,59,299655,59,299656,58,299657,57,299666,55,299670,54,299672,58,299674,55,299685,52,299687,51,299689,57,299693,52,299702,54,299703,51,299704,56,299705,56,299706,53,299709,50,299710,53,299711,50,299904,61,299906,61,299912,58,299922,55,299928,58,299930,55,301697,60,301701,60,301705,57,301733,52,301737,57,301741,52,301952,79,301953,79,301960,76,301961,76,316038,59,316039,59,316054,54,316071,51,316086,54,316087,51,316290,78,316294,78,316306,73,316310,73,318085,77,318087,77,318117,70,318119,70,318336,79,318337,79,318338,78,318341,77,318342,78,318343,77,430776,56,430777,56,430778,53,430781,50,430782,53,430783,50,431e3,75,431002,72,431032,75,431034,72,432809,74,432813,69,432825,74,432829,69,433032,76,433033,76,433048,75,433065,74,433080,75,433081,74,447158,71,447159,68,447166,71,447167,68,447378,73,447382,73,447386,72,447414,71,447418,72,447422,71,449189,70,449191,70,449197,69,449207,68,449213,69,449215,68,449408,67,449409,67,449410,66,449413,64,449414,66,449415,64,449416,67,449417,67,449426,66,449430,66,449432,65,449434,65,449445,64,449447,64,449449,63,449453,63,449462,62,449463,62,449464,65,449465,63,449466,65,449469,63,449470,62,449471,62,449472,19,449473,19,449474,18,449477,16,449478,18,449479,16,449480,19,449481,19,449490,18,449494,18,449496,17,449498,17,449509,16,449511,16,449513,15,449517,15,449526,14,449527,14,449528,17,449529,15,449530,17,449533,15,449534,14,449535,14,449728,19,449729,19,449730,18,449734,18,449736,19,449737,19,449746,18,449750,18,449752,17,449754,17,449784,17,449786,17,451520,19,451521,19,451525,16,451527,16,451528,19,451529,19,451557,16,451559,16,451561,15,451565,15,451577,15,451581,15,451776,19,451777,19,451784,19,451785,19,465858,18,465861,16,465862,18,465863,16,465874,18,465878,18,465893,16,465895,16,465910,14,465911,14,465918,14,465919,14,466114,18,466118,18,466130,18,466134,18,467909,16,467911,16,467941,16,467943,16,468160,13,468161,13,468162,13,468163,13,468164,13,468165,13,468166,13,468167,13,580568,17,580570,17,580585,15,580589,15,580598,14,580599,14,580600,17,580601,15,580602,17,580605,15,580606,14,580607,14,580824,17,580826,17,580856,17,580858,17,582633,15,582637,15,582649,15,582653,15,582856,12,582857,12,582872,12,582873,12,582888,12,582889,12,582904,12,582905,12,596982,14,596983,14,596990,14,596991,14,597202,11,597206,11,597210,11,597214,11,597234,11,597238,11,597242,11,597246,11,599013,10,599015,10,599021,10,599023,10,599029,10,599031,10,599037,10,599039,10,599232,13,599233,13,599234,13,599235,13,599236,13,599237,13,599238,13,599239,13,599240,12,599241,12,599250,11,599254,11,599256,12,599257,12,599258,11,599262,11,599269,10,599271,10,599272,12,599273,12,599277,10,599279,10,599282,11,599285,10,599286,11,599287,10,599288,12,599289,12,599290,11,599293,10,599294,11,599295,10],this._p4D=[0,0,1,-1,0,0,0,1,0,-1,0,0,1,0,0,-1,0,0,-1,1,0,0,0,0,1,-1,0,0,0,1,0,-1,0,0,-1,0,1,0,0,0,-1,1,0,0,0,0,1,-1,0,0,-1,0,0,1,0,0,-1,0,1,0,0,0,-1,1,0,2,1,1,0,0,1,1,1,-1,0,1,1,1,0,-1,0,2,1,0,1,0,1,1,-1,1,0,1,1,0,1,-1,0,2,0,1,1,0,1,-1,1,1,0,1,0,1,1,-1,0,2,1,0,0,1,1,1,-1,0,1,1,1,0,-1,1,0,2,0,1,0,1,1,-1,1,0,1,1,0,1,-1,1,0,2,0,0,1,1,1,-1,0,1,1,1,0,-1,1,1,1,4,2,1,1,0,4,1,2,1,0,4,1,1,2,0,1,4,2,1,0,1,4,1,2,0,1,4,1,1,0,2,1,4,2,0,1,1,4,1,0,2,1,4,1,0,1,2,1,4,0,2,1,1,4,0,1,2,1,4,0,1,1,2,1,2,1,1,0,0,3,2,1,0,0,3,1,2,0,0,1,2,1,0,1,0,3,2,0,1,0,3,1,0,2,0,1,2,0,1,1,0,3,0,2,1,0,3,0,1,2,0,1,2,1,0,0,1,3,2,0,0,1,3,1,0,0,2,1,2,0,1,0,1,3,0,2,0,1,3,0,1,0,2,1,2,0,0,1,1,3,0,0,2,1,3,0,0,1,2,2,3,1,1,1,0,2,1,1,1,-1,2,2,0,0,0,2,3,1,1,0,1,2,1,1,-1,1,2,2,0,0,0,2,3,1,0,1,1,2,1,-1,1,1,2,2,0,0,0,2,3,1,1,1,0,2,1,1,1,-1,2,0,2,0,0,2,3,1,1,0,1,2,1,1,-1,1,2,0,2,0,0,2,3,0,1,1,1,2,-1,1,1,1,2,0,2,0,0,2,3,1,1,1,0,2,1,1,1,-1,2,0,0,2,0,2,3,1,0,1,1,2,1,-1,1,1,2,0,0,2,0,2,3,0,1,1,1,2,-1,1,1,1,2,0,0,2,0,2,3,1,1,0,1,2,1,1,-1,1,2,0,0,0,2,2,3,1,0,1,1,2,1,-1,1,1,2,0,0,0,2,2,3,0,1,1,1,2,-1,1,1,1,2,0,0,0,2,2,1,1,1,-1,0,1,1,1,0,-1,0,0,0,0,0,2,1,1,-1,1,0,1,1,0,1,-1,0,0,0,0,0,2,1,-1,1,1,0,1,0,1,1,-1,0,0,0,0,0,2,1,1,-1,0,1,1,1,0,-1,1,0,0,0,0,0,2,1,-1,1,0,1,1,0,1,-1,1,0,0,0,0,0,2,1,-1,0,1,1,1,0,-1,1,1,0,0,0,0,0,2,1,1,1,-1,0,1,1,1,0,-1,2,2,0,0,0,2,1,1,-1,1,0,1,1,0,1,-1,2,2,0,0,0,2,1,1,-1,0,1,1,1,0,-1,1,2,2,0,0,0,2,1,1,1,-1,0,1,1,1,0,-1,2,0,2,0,0,2,1,-1,1,1,0,1,0,1,1,-1,2,0,2,0,0,2,1,-1,1,0,1,1,0,1,-1,1,2,0,2,0,0,2,1,1,-1,1,0,1,1,0,1,-1,2,0,0,2,0,2,1,-1,1,1,0,1,0,1,1,-1,2,0,0,2,0,2,1,-1,0,1,1,1,0,-1,1,1,2,0,0,2,0,2,1,1,-1,0,1,1,1,0,-1,1,2,0,0,0,2,2,1,-1,1,0,1,1,0,1,-1,1,2,0,0,0,2,2,1,-1,0,1,1,1,0,-1,1,1,2,0,0,0,2,3,1,1,0,0,0,2,2,0,0,0,2,1,1,1,-1,3,1,0,1,0,0,2,0,2,0,0,2,1,1,1,-1,3,1,0,0,1,0,2,0,0,2,0,2,1,1,1,-1,3,1,1,0,0,0,2,2,0,0,0,2,1,1,-1,1,3,1,0,1,0,0,2,0,2,0,0,2,1,1,-1,1,3,1,0,0,0,1,2,0,0,0,2,2,1,1,-1,1,3,1,1,0,0,0,2,2,0,0,0,2,1,-1,1,1,3,1,0,0,1,0,2,0,0,2,0,2,1,-1,1,1,3,1,0,0,0,1,2,0,0,0,2,2,1,-1,1,1,3,1,0,1,0,0,2,0,2,0,0,2,-1,1,1,1,3,1,0,0,1,0,2,0,0,2,0,2,-1,1,1,1,3,1,0,0,0,1,2,0,0,0,2,2,-1,1,1,1,3,3,2,1,0,0,3,1,2,0,0,4,1,1,1,1,3,3,2,0,1,0,3,1,0,2,0,4,1,1,1,1,3,3,0,2,1,0,3,0,1,2,0,4,1,1,1,1,3,3,2,0,0,1,3,1,0,0,2,4,1,1,1,1,3,3,0,2,0,1,3,0,1,0,2,4,1,1,1,1,3,3,0,0,2,1,3,0,0,1,2,4,1,1,1,1,3,3,2,1,0,0,3,1,2,0,0,2,1,1,1,-1,3,3,2,0,1,0,3,1,0,2,0,2,1,1,1,-1,3,3,0,2,1,0,3,0,1,2,0,2,1,1,1,-1,3,3,2,1,0,0,3,1,2,0,0,2,1,1,-1,1,3,3,2,0,0,1,3,1,0,0,2,2,1,1,-1,1,3,3,0,2,0,1,3,0,1,0,2,2,1,1,-1,1,3,3,2,0,1,0,3,1,0,2,0,2,1,-1,1,1,3,3,2,0,0,1,3,1,0,0,2,2,1,-1,1,1,3,3,0,0,2,1,3,0,0,1,2,2,1,-1,1,1,3,3,0,2,1,0,3,0,1,2,0,2,-1,1,1,1,3,3,0,2,0,1,3,0,1,0,2,2,-1,1,1,1,3,3,0,0,2,1,3,0,0,1,2,2,-1,1,1,1]}noise(t,e,i,n){const{_perm:s,_perm4D:o,_lookup:a,_STRETCH_4D:r,_SQUISH_4D:c,_gradients4D:l,_NORM_4D:h}=this,d=(t+e+i+n)*r,u=t+d,p=e+d,g=i+d,f=n+d,y=Math.floor(u),_=Math.floor(p),m=Math.floor(g),v=Math.floor(f),w=(y+_+m+v)*c,b=t-(y+w),x=e-(_+w),S=i-(m+w),P=n-(v+w),M=u-y,C=p-_,O=g-m,k=f-v,T=M+C+O+k;let D=0;for(let t=a[O-k+1|C-O+1<<1|C-k+1<<2|M-C+1<<3|M-O+1<<4|M-k+1<<5|T<<6|T+k<<8|T+O<<11|T+C<<14|T+M<<17];void 0!==t;t=t.next){const e=b+t.dx,i=x+t.dy,n=S+t.dz,a=P+t.dw,r=2-e*e-i*i-n*n-a*a;if(r>0){const c=y+t.xsb,h=_+t.ysb,d=m+t.zsb,u=v+t.wsb,p=o[s[s[s[255&c]+h&255]+d&255]+u&255];D+=r*r*r*r*(l[p]*e+l[p+1]*i+l[p+2]*n+l[p+3]*a)}}return D*h}seed(t){const{_p4D:e,_base4D:i,_lookupPairs4D:n}=this,s=[];for(let t=0;t<e.length;t+=16){const n=i[e[t]];let o=null,a=null;for(let e=0;e<n.length;e+=5)a=this._contribution4D(n[e],n[e+1],n[e+2],n[e+3],n[e+4]),null===o?s[t/16]=a:o.next=a,o=a;a&&(a.next=this._contribution4D(e[t+1],e[t+2],e[t+3],e[t+4],e[t+5]),a.next.next=this._contribution4D(e[t+6],e[t+7],e[t+8],e[t+9],e[t+10]),a.next.next.next=this._contribution4D(e[t+11],e[t+12],e[t+13],e[t+14],e[t+15]))}this._lookup=[];for(let t=0;t<n.length;t+=2)this._lookup[n[t]]=s[n[t+1]];this._perm=new Uint8Array(256),this._perm4D=new Uint8Array(256);const o=new Uint8Array(256);for(let t=0;t<256;t++)o[t]=t;let a=new Uint32Array(1);a[0]=t,a=An(An(An(a)));for(let t=255;t>=0;t--){a=An(a);const e=new Uint32Array(1);e[0]=(a[0]+31)%(t+1),e[0]<0&&(e[0]+=t+1),this._perm[t]=o[e[0]],this._perm4D[t]=252&this._perm[t],o[e[0]]=o[t]}}_contribution4D(t,e,i,n,s){const{_SQUISH_4D:o}=this;return{dx:-e-t*o,dy:-i-t*o,dz:-n-t*o,dw:-s-t*o,xsb:e,ysb:i,zsb:n,wsb:s}}}class Ln{noise2d;noise3d;noise4d;constructor(){this.noise2d=new En,this.noise3d=new Rn,this.noise4d=new Gn}}const Fn={speed:.2,step:250};class Hn{options;_container;_res;_simplex;constructor(t){this._container=t,this._res=M.origin;const e=new Ln;this._simplex=e.noise2d,this.options=St({},Fn)}generate(t){const e=t.getPosition(),{speed:i,step:n}=this.options,s=e.x/n,o=e.y/n,a=.001,r=(this._simplex.noise(s,o+a)-this._simplex.noise(s,o-a))/.002,c=(this._simplex.noise(s+a,o)-this._simplex.noise(s-a,o))/.002;return t.velocity.x=0,t.velocity.y=0,this._res.x=i*r,this._res.y=i*-c,this._res}init(){const t=this._container,e=t.actualOptions.particles.move.path.options;this.options.seed=e.seed,this.options.speed=(e.speed??Fn.speed)*t.retina.pixelRatio,this.options.step=e.step??Fn.step,this._simplex.seed(this.options.seed??R())}reset(){}update(){}}async function Bn(t){t.checkVersion("4.0.0"),await t.pluginManager.register(t=>{Ei(t),t.pluginManager.addPathGenerator?.("curlNoise",t=>Promise.resolve(new Hn(t)))})}const Nn={rndFunc:null,period:100,nbHarmonics:2,attenHarmonics:.8,lowValue:-.03,highValue:.03};class Un{options;_container;constructor(t){this._container=t,this.options=St({},Nn)}generate(t){if(!t.pathGen){const{options:e}=this;t.pathGen=function(t,e,i,n,s=0,o=1){const a=[],r=[],c=[],l=[],h=[],d=t??R;let u=0;i<1&&(i=1);for(let t=1;t<=i;++t)a[t]=d(),r[t]=d(),c[t]=1===t?1:c[t-1]*n,u+=c[t],l[t]=t/e,h[t]=d();return c.forEach((t,e)=>c[e]=t/u*(o-s)),()=>{let t,e,n=0;for(let s=i;s>=1;--s)t=h[s]+=l[s],h[s]>=1&&(t=h[s]-=1,a[s]=r[s],r[s]=d()),e=t**2*(3-2*t),n+=(a[s]*(1-e)+r[s]*e)*c[s];return n+s}}(e.rndFunc,e.period,e.nbHarmonics,e.attenHarmonics,e.lowValue,e.highValue)}return t.curveVelocity?(t.curveVelocity.length+=.01,t.curveVelocity.angle=(t.curveVelocity.angle+t.pathGen())%u):(t.curveVelocity=M.origin,t.curveVelocity.length=.6*R()+.8,t.curveVelocity.angle=R()*u),t.velocity.x=0,t.velocity.y=0,t.curveVelocity}init(){const t=this._container.actualOptions.particles.move.path.options;T(t.rndFunc)?this.options.rndFunc=t.rndFunc:O(t.rndFunc)&&(this.options.rndFunc=globalThis[t.rndFunc]??this.options.rndFunc),this.options.period=t.period??this.options.period,this.options.nbHarmonics=t.nbHarmonics??this.options.nbHarmonics,this.options.attenHarmonics=t.attenHarmonics??this.options.attenHarmonics,this.options.lowValue=t.lowValue??this.options.lowValue,this.options.highValue=t.highValue??this.options.highValue}reset(t){delete t.pathGen,delete t.curveVelocity}update(){}}async function $n(t){t.checkVersion("4.0.0"),await t.pluginManager.register(t=>{Ei(t),t.pluginManager.addPathGenerator?.("curvesPathGenerator",t=>Promise.resolve(new Un(t)))})}const jn=new Map;async function qn(t){t.checkVersion("4.0.0"),await t.pluginManager.register(t=>{for(const[e,i]of jn)t.pluginManager.addEasing(e,i)})}jn.set(t.EasingType.easeInBack,t=>{const e=1.70158;return 2.70158*t**3-e*t**2}),jn.set(t.EasingType.easeOutBack,t=>{const e=1.70158;return 1+2.70158*Math.pow(t-1,3)+e*Math.pow(t-1,2)}),jn.set(t.EasingType.easeInOutBack,t=>{const e=2.5949095;return t<.5?(2*t)**2*(7.189819*t-e)/2:((2*t-2)**2*((e+1)*(2*t-2)+e)+2)/2});const Wn=new Map,Qn=t=>{const e=7.5625,i=2.75;return t<1/i?e*t*t:t<2/i?e*(t-=1.5/i)*t+.75:t<2.5/i?e*(t-=2.25/i)*t+.9375:e*(t-=2.625/i)*t+.984375};async function Zn(t){t.checkVersion("4.0.0"),await t.pluginManager.register(t=>{for(const[e,i]of Wn)t.pluginManager.addEasing(e,i)})}Wn.set(t.EasingType.easeOutBounce,t=>Qn(t)),Wn.set(t.EasingType.easeInBounce,t=>1-Qn(1-t)),Wn.set(t.EasingType.easeInOutBounce,t=>t<.5?(1-Qn(1-2*t))/2:(1+Qn(2*t-1))/2);const Xn=new Map;async function Yn(t){t.checkVersion("4.0.0"),await t.pluginManager.register(t=>{for(const[e,i]of Xn)t.pluginManager.addEasing(e,i)})}Xn.set(t.EasingType.easeInCirc,t=>1-Math.sqrt(1-t**2)),Xn.set(t.EasingType.easeOutCirc,t=>Math.sqrt(1-(t-1)**2)),Xn.set(t.EasingType.easeInOutCirc,t=>t<.5?(1-Math.sqrt(1-(2*t)**2))/2:(Math.sqrt(1-(-2*t+2)**2)+1)/2);const Kn=new Map;async function Jn(t){t.checkVersion("4.0.0"),await t.pluginManager.register(t=>{for(const[e,i]of Kn)t.pluginManager.addEasing(e,i)})}Kn.set(t.EasingType.easeInCubic,t=>t**3),Kn.set(t.EasingType.easeOutCubic,t=>1-(1-t)**3),Kn.set(t.EasingType.easeInOutCubic,t=>t<.5?4*t**3:1-(-2*t+2)**3/2);const ts=new Map;async function es(t){t.checkVersion("4.0.0"),await t.pluginManager.register(t=>{for(const[e,i]of ts)t.pluginManager.addEasing(e,i)})}ts.set(t.EasingType.easeInElastic,t=>0===t||1===t?t:-Math.pow(2,10*(t-1))*Math.sin((t-1.075)*(2*Math.PI)/.3)),ts.set(t.EasingType.easeOutElastic,t=>0===t||1===t?t:Math.pow(2,-10*t)*Math.sin((t-.075)*(2*Math.PI)/.3)+1),ts.set(t.EasingType.easeInOutElastic,t=>0===t||1===t?t:(t*=2)<1?-.5*Math.pow(2,10*(t-1))*Math.sin((t-1.1125)*(2*Math.PI)/.45):Math.pow(2,-10*(t-1))*Math.sin((t-1.1125)*(2*Math.PI)/.45)*.5+1);const is=new Map;async function ns(t){t.checkVersion("4.0.0"),await t.pluginManager.register(t=>{for(const[e,i]of is)t.pluginManager.addEasing(e,i)})}is.set(t.EasingType.easeInExpo,t=>t?2**(10*t-10):0),is.set(t.EasingType.easeOutExpo,t=>1===t?1:1-Math.pow(2,-10*t)),is.set(t.EasingType.easeInOutExpo,t=>1===t?1:t?t<.5?2**(20*t-10)/2:(2-2**(-20*t+10))/2:0);const ss=new Map,os=t=>Math.exp(-4*(1-t)*(1-t));async function as(t){t.checkVersion("4.0.0"),await t.pluginManager.register(t=>{for(const[e,i]of ss)t.pluginManager.addEasing(e,i)})}ss.set(t.EasingType.easeInGaussian,t=>os(t)),ss.set(t.EasingType.easeOutGaussian,t=>os(t)),ss.set(t.EasingType.easeInOutGaussian,t=>os(t));const rs=new Map;async function cs(t){t.checkVersion("4.0.0"),await t.pluginManager.register(t=>{for(const[e,i]of rs)t.pluginManager.addEasing(e,i)})}rs.set(t.EasingType.easeInLinear,t=>t),rs.set(t.EasingType.easeOutLinear,t=>t),rs.set(t.EasingType.easeInOutLinear,t=>t);const ls=new Map;async function hs(t){t.checkVersion("4.0.0"),await t.pluginManager.register(t=>{for(const[e,i]of ls)t.pluginManager.addEasing(e,i)})}ls.set(t.EasingType.easeInQuart,t=>t**4),ls.set(t.EasingType.easeOutQuart,t=>1-(1-t)**4),ls.set(t.EasingType.easeInOutQuart,t=>t<.5?8*t**4:1-(-2*t+2)**4/2);const ds=new Map;async function us(t){t.checkVersion("4.0.0"),await t.pluginManager.register(t=>{for(const[e,i]of ds)t.pluginManager.addEasing(e,i)})}ds.set(t.EasingType.easeInQuint,t=>t**5),ds.set(t.EasingType.easeOutQuint,t=>1-(1-t)**5),ds.set(t.EasingType.easeInOutQuint,t=>t<.5?16*t**5:1-(-2*t+2)**5/2);const ps=new Map,gs=t=>1/(1+Math.exp(-10*(t-.5)));async function fs(t){t.checkVersion("4.0.0"),await t.pluginManager.register(t=>{for(const[e,i]of ps)t.pluginManager.addEasing(e,i)})}ps.set(t.EasingType.easeInSigmoid,t=>gs(t)),ps.set(t.EasingType.easeOutSigmoid,t=>gs(t)),ps.set(t.EasingType.easeInOutSigmoid,t=>gs(t));const ys=new Map;async function _s(t){t.checkVersion("4.0.0"),await t.pluginManager.register(t=>{for(const[e,i]of ys)t.pluginManager.addEasing(e,i)})}ys.set(t.EasingType.easeInSine,t=>1-Math.cos(t*Math.PI/2)),ys.set(t.EasingType.easeOutSine,t=>Math.sin(t*Math.PI/2)),ys.set(t.EasingType.easeInOutSine,t=>-(Math.cos(Math.PI*t)-1)/2);const ms=new Map,vs=t=>t*t*(3-2*t);async function ws(t){t.checkVersion("4.0.0"),await t.pluginManager.register(t=>{for(const[e,i]of ms)t.pluginManager.addEasing(e,i)})}ms.set(t.EasingType.easeInSmoothstep,t=>vs(t)),ms.set(t.EasingType.easeOutSmoothstep,t=>vs(t)),ms.set(t.EasingType.easeInOutSmoothstep,t=>vs(t));class bs{enable;mode;constructor(){this.enable=!1,this.mode=[]}load(t){I(t)||(void 0!==t.enable&&(this.enable=t.enable),void 0!==t.mode&&(this.mode=t.mode))}}var xs,Ss,Ps;!function(t){t.circle="circle",t.rectangle="rectangle"}(xs||(xs={}));class Ms{enable;mode;selectors;type;constructor(){this.selectors=[],this.enable=!1,this.mode=[],this.type=xs.circle}load(t){I(t)||(void 0!==t.selectors&&(this.selectors=t.selectors),void 0!==t.enable&&(this.enable=t.enable),void 0!==t.mode&&(this.mode=t.mode),void 0!==t.type&&(this.type=t.type))}}class Cs{enable;mode;constructor(){this.enable=!1,this.mode=[]}load(t){I(t)||(void 0!==t.enable&&(this.enable=t.enable),void 0!==t.mode&&(this.mode=t.mode))}}class Os{onClick;onDiv;onHover;constructor(){this.onClick=new bs,this.onDiv=new Ms,this.onHover=new Cs}load(t){if(I(t))return;this.onClick.load(t.onClick);const e=t.onDiv;void 0!==e&&(this.onDiv=Ct(e,t=>{const e=new Ms;return e.load(t),e})),this.onHover.load(t.onHover)}}!function(t){t.canvas="canvas",t.parent="parent",t.window="window"}(Ss||(Ss={}));class ks{_container;_pluginManager;constructor(t,e){this._pluginManager=t,this._container=e}load(t){if(I(t))return;if(!this._container)return;const e=this._pluginManager.interactors?.get(this._container);if(e)for(const i of e)i.loadModeOptions&&i.loadModeOptions(this,t)}}class Ts{detectsOn;events;modes;constructor(t,e){this.detectsOn=Ss.window,this.events=new Os,this.modes=new ks(t,e)}load(t){if(I(t))return;const e=t.detectsOn;void 0!==e&&(this.detectsOn=e),this.events.load(t.events),this.modes.load(t.modes)}}class Ds{id="interactivity";_pluginManager;constructor(t){this._pluginManager=t}async getPlugin(t){const{InteractivityPluginInstance:e}=await Promise.resolve().then(function(){return wf});return new e(this._pluginManager,t)}loadOptions(t,e,i){if(!this.needsPlugin())return;let n=e.interactivity;n?.load||(e.interactivity=n=new Ts(this._pluginManager,t)),n.load(i?.interactivity);const s=this._pluginManager.interactors?.get(t);if(s)for(const t of s)t.loadOptions&&t.loadOptions(e,i)}loadParticlesOptions(t,e,i){i?.interactivity&&(e.interactivity=St({},i.interactivity));const n=this._pluginManager.interactors?.get(t);if(n)for(const t of n)t.loadParticlesOptions?.(e,i)}needsPlugin(){return!0}}!function(t){t.external="external",t.particles="particles"}(Ps||(Ps={}));class Vs{type=Ps.external;container;constructor(t){this.container=t}}class Is{type=Ps.particles;container;constructor(t){this.container=t}}const As="pointerdown",Es="pointerup",zs="pointerleave",Rs="pointermove",Gs="touchstart",Ls="touchend",Fs="touchmove",Hs="touchcancel";function Bs(t,e){return!!kt(e,e=>e.enable&&_t(t,e.mode))}function Ns(t,e,i){Ct(e,e=>{const n=e.mode;e.enable&&_t(t,n)&&function(t,e){const i=t.selectors;Ct(i,i=>{e(i,t)})}(e,i)})}function Us(t,e){if(e&&t)return kt(t,t=>function(t,e){const i=Ct(e,e=>t.matches(e));return V(i)?i.some(t=>t):i}(e,t.selectors))}function $s(t){if(!t.pluginManager.addInteractor)throw new Error("tsParticles Interactivity Plugin is not loaded")}class js{count;delay;duration;wait;constructor(){this.wait=!1}load(t){I(t)||(void 0!==t.count&&(this.count=t.count),void 0!==t.delay&&(this.delay=q(t.delay)),void 0!==t.duration&&(this.duration=q(t.duration)),void 0!==t.wait&&(this.wait=t.wait))}}class qs{delay;quantity;constructor(){this.quantity=1,this.delay=.1}load(t){I(t)||(void 0!==t.quantity&&(this.quantity=q(t.quantity)),void 0!==t.delay&&(this.delay=q(t.delay)))}}class Ws{color;opacity;constructor(){this.color=!1,this.opacity=!1}load(t){I(t)||(void 0!==t.color&&(this.color=t.color),void 0!==t.opacity&&(this.opacity=t.opacity))}}class Qs{options;replace;type;constructor(){this.options={},this.replace=new Ws,this.type="square"}load(t){I(t)||(void 0!==t.options&&(this.options=St({},t.options??{})),this.replace.load(t.replace),void 0!==t.type&&(this.type=t.type))}}class Zs{height;mode;width;constructor(){this.mode=t.PixelMode.percent,this.height=0,this.width=0}load(t){I(t)||(void 0!==t.mode&&(this.mode=t.mode),void 0!==t.height&&(this.height=t.height),void 0!==t.width&&(this.width=t.width))}}class Xs{fill;stroke;load(t){I(t)||(t.fill&&(this.fill??=new ge,this.fill.load(t.fill)),t.stroke&&(this.stroke??=new Oe,this.stroke.load(t.stroke)))}}class Ys{autoPlay;direction;domId;fill;life;name;particles;position;rate;shape;size;spawn;spawnFillColor;spawnStrokeColor;startCount;constructor(){this.autoPlay=!0,this.fill=!0,this.life=new js,this.rate=new qs,this.shape=new Qs,this.spawn=new Xs,this.startCount=0}load(t){I(t)||(void 0!==t.autoPlay&&(this.autoPlay=t.autoPlay),void 0!==t.size&&(this.size??=new Zs,this.size.load(t.size)),void 0!==t.direction&&(this.direction=t.direction),this.domId=t.domId,void 0!==t.fill&&(this.fill=t.fill),this.life.load(t.life),this.name=t.name,this.particles=Ct(t.particles,t=>St({},t)),this.rate.load(t.rate),this.shape.load(t.shape),this.spawn.load(t.spawn),void 0!==t.position&&(this.position={},void 0!==t.position.x&&(this.position.x=q(t.position.x)),void 0!==t.position.y&&(this.position.y=q(t.position.y))),void 0!==t.spawnFillColor&&(this.spawnFillColor??=new le,this.spawnFillColor.load(t.spawnFillColor)),void 0!==t.spawnStrokeColor&&(this.spawnStrokeColor??=new le,this.spawnStrokeColor.load(t.spawnStrokeColor)),void 0!==t.startCount&&(this.startCount=t.startCount))}}const Ks={count:1,enable:!0},Js="emitters";class to extends Vs{handleClickMode;maxDistance;_instancesManager;constructor(t,e){super(e),this._instancesManager=t,this.maxDistance=0,this.handleClickMode=(t,e)=>{const i=this.container.actualOptions.interactivity.modes.emitters;if(!i||t!==Js)return;let n;if(V(i.value)){const t=0,e=i.value.length;if(e>t&&i.random.enable){n=[];const t=new Set;for(let s=0;s<i.random.count;s++){const o=mt(i.value);if(t.has(o)&&t.size<e){s--;continue}t.add(o);const a=vt(i.value,o);a&&n.push(a)}}else n=i.value}else n=i.value;const s=n,o=e.mouse.clickPosition;Ct(s,async t=>{await this._instancesManager.addEmitter(this.container,t,o)})}}clear(){}init(){}interact(t,e){for(const t of this._instancesManager.getArray(this.container))t.update(e)}isEnabled(t,e){const i=this.container.actualOptions,n=t.mouse,s=(e?.interactivity??i.interactivity).events;return!(!n.clickPosition||!s.onClick.enable)&&_t(Js,s.onClick.mode)}loadModeOptions(t,...e){t.emitters={random:Ks,value:[]};for(const i of e)if(i?.emitters)if(V(i.emitters))for(const e of i.emitters){const i=new Ys;i.load(e),t.emitters.value.push(i)}else if("value"in i.emitters){const e=i.emitters;if(t.emitters.random.enable=e.random?.enable??t.emitters.random.enable,t.emitters.random.count=e.random?.count??t.emitters.random.count,V(e.value))for(const i of e.value){const e=new Ys;e.load(i),t.emitters.value.push(e)}else{const i=new Ys;i.load(e.value),t.emitters.value.push(i)}}else{const e=new Ys;e.load(i.emitters),t.emitters.value.push(e)}}removeEmitter(t){const e=this._instancesManager.getArray(this.container).indexOf(t);e>=0&&this._instancesManager.getArray(this.container).splice(e,1)}reset(){}}async function eo(t){const{ShapeManager:e}=await Promise.resolve().then(function(){return xf}),i=t.pluginManager;i.emitterShapeManager??=new e,i.addEmitterShapeGenerator??=(t,e)=>{i.emitterShapeManager?.addShapeGenerator(t,e)}}const io=new WeakMap;function no(t){const e=t.pluginManager;let i=io.get(e);return i||(i=Promise.resolve().then(function(){return Sf}).then(({EmittersInstancesManager:t})=>new t(e)).catch(t=>{throw io.delete(e),t}),io.set(e,i)),i}class so{fill;options;position;size;constructor(t,e,i,n){this.position=t,this.size=e,this.fill=i,this.options=n}resize(t,e){this.position=t,this.size=e}}var oo;!function(t){t.emitter="emitter"}(oo||(oo={}));class ao{id="emitters";_instancesManager;constructor(t){this._instancesManager=t}async getPlugin(t){const{EmittersPluginInstance:e}=await Promise.resolve().then(function(){return Pf});return new e(this._instancesManager,t)}loadOptions(t,e,i){(this.needsPlugin(e)||this.needsPlugin(i))&&i?.emitters&&(e.emitters=Ct(i.emitters,t=>{const e=new Ys;return e.load(t),e}))}needsPlugin(t){if(!t)return!1;const e=t.emitters;return V(e)&&!!e.length||void 0!==e}}function ro(t){if(!t.pluginManager.addEmitterShapeGenerator)throw new Error("tsParticles Emitters Plugin is not loaded")}async function co(t){await async function(t){t.checkVersion("4.0.0"),await t.pluginManager.register(async t=>{const e=await no(t);await eo(t),t.pluginManager.addPlugin(new ao(e))})}(t),await async function(t){t.checkVersion("4.0.0"),await t.pluginManager.register(async t=>{const e=await no(t);$s(t),await eo(t),t.pluginManager.addInteractor?.("externalEmitters",t=>Promise.resolve(new to(e,t)))})}(t)}const lo=0,ho=1,uo=2,po=3,go=1/255;function fo(t,e,i){t.beginPath(),t.moveTo(e.x,e.y),t.lineTo(i.x,i.y),t.closePath()}function yo(t,e,i,n=!0){const s=t.getImageData(c.x,c.y,e.width,e.height).data;n&&t.clearRect(c.x,c.y,e.width,e.height);const o=[];for(let t=0;t<s.length;t+=i){const n=t/i,a={x:n%e.width,y:Math.floor(n/e.width)};o[a.y]??=[];const r=o[a.y];r&&(r[a.x]={r:s[t+lo]??0,g:s[t+ho]??0,b:s[t+uo]??0,a:(s[t+po]??1)*go})}return{pixels:o,width:Math.min(...o.map(t=>t.length)),height:o.length}}function _o(t,e,i){const n=new Image;n.crossOrigin="Anonymous";const s=new Promise((t,s)=>{n.onerror=s,n.onload=()=>{const o=pt().createElement("canvas");o.width=n.width,o.height=n.height;const a=o.getContext("2d",i);a?(a.drawImage(n,c.x,c.y,n.width,n.height,c.x,c.y,o.width,o.height),t(yo(a,o,e))):s(new Error("Could not get canvas context"))}});return n.src=t,s}function mo(t,e,i,n){const s=pt().createElement("canvas"),o=s.getContext("2d",n),{font:a,text:r,lines:l,color:h}=t;if(!r||!o)return;const d=r.split(l.separator),u=k(a.size)?`${a.size.toString()}px`:a.size,p=[];let g=0,f=0;for(const t of d){o.font=`${a.style||""} ${a.variant||""} ${a.weight||""} ${u} ${a.family}`;const e=o.measureText(t),i={measure:e,text:t,height:e.actualBoundingBoxAscent+e.actualBoundingBoxDescent,width:e.width};g=Math.max(g||0,i.width),f+=i.height+l.spacing,p.push(i)}s.width=g,s.height=f;let y=0;for(const t of p)o.font=`${a.style||""} ${a.variant||""} ${a.weight||""} ${u} ${a.family}`,i?(o.fillStyle=h,o.fillText(t.text,c.x,y+t.measure.actualBoundingBoxAscent)):(o.strokeStyle=h,o.strokeText(t.text,c.x,y+t.measure.actualBoundingBoxAscent)),y+=t.height+l.spacing;return yo(o,s,e)}async function vo(t,e){try{await pt().fonts.load(`${e??"400"} 36px '${t??"Verdana"}'`)}catch{}}class wo extends so{filter;pixelData;scale;_container;constructor(t,e,i,n,s){super(e,i,n,s),this._container=t;const o=s.filter;let a=t=>t.a>0;if(O(o)){if(o in globalThis){const t=globalThis[o];T(t)&&(a=t)}}else a=o;this.filter=a,this.scale=s.scale,this.pixelData={pixels:[],height:0,width:0}}async init(){let t;const e=this.options,i=e.selector,n=e.pixels,s=e.image,o=e.element,a=e.text,r=n.offset;if(s){const e=s.src;if(!e)return;t=await _o(e,r,this._container.canvas.render.settings)}else if(o??i){const e=o??(i&&pt().querySelector(i));if(!e)return;const n=e.getContext("2d",this._container.canvas.render.settings);if(!n)return;t=yo(n,e,r)}else{const e=mo(a,r,this.fill,this._container.canvas.render.settings);if(I(e))return;t=e}this.pixelData=t}randomPosition(){const{height:t,width:e}=this.pixelData,i=this.pixelData,n=this.position,s=this.scale,o=n.x-e*s*a,r=n.y-t*s*a;for(let n=0;n<100;n++){const n=Math.floor(R()*e*t),a={x:n%e,y:Math.floor(n/e)},c=i.pixels[a.y];if(!c)continue;const l=c[a.x];if(!l)continue;if(this.filter(l))return{position:{x:a.x*s+o,y:a.y*s+r},color:{...l},opacity:l.a}}return null}resize(t,e){super.resize(t,e)}}class bo{offset;constructor(){this.offset=4}load(t){I(t)||void 0!==t.offset&&(this.offset=t.offset)}}class xo{family;size;style;variant;weight;constructor(){this.family="Verdana",this.size=32,this.style="",this.variant="",this.weight=""}load(t){I(t)||(void 0!==t.family&&(this.family=t.family),void 0!==t.size&&(this.size=t.size),void 0!==t.style&&(this.style=t.style),void 0!==t.variant&&(this.variant=t.variant),void 0!==t.weight&&(this.weight=t.weight))}}class So{separator;spacing;constructor(){this.separator="\n",this.spacing=0}load(t){I(t)||(void 0!==t.separator&&(this.separator=t.separator),void 0!==t.spacing&&(this.spacing=t.spacing))}}class Po{color;font;lines;text;constructor(){this.color="#000000",this.font=new xo,this.lines=new So,this.text=""}load(t){I(t)||(void 0!==t.color&&(this.color=t.color),this.font.load(t.font),this.lines.load(t.lines),void 0!==t.text&&(this.text=t.text))}}class Mo{element;filter;image;pixels;scale;selector;text;constructor(){this.filter=t=>t.a>0,this.pixels=new bo,this.scale=1,this.selector="",this.text=new Po}load(t){I(t)||(void 0!==t.element&&(this.element=t.element),void 0!==t.filter&&(this.filter=t.filter),this.pixels.load(t.pixels),void 0!==t.scale&&(this.scale=t.scale),void 0!==t.selector&&(this.selector=t.selector),void 0!==t.image&&(this.image=t.image),this.text.load(t.text))}}class Co{generate(t,e,i,n,s){const o=new Mo;return o.load(s),new wo(t,e,i,n,o)}}async function Oo(t){t.checkVersion("4.0.0"),await t.pluginManager.register(t=>{ro(t),t.pluginManager.addEmitterShapeGenerator?.("canvas",new Co)})}class ko extends so{checkContext;path;points;constructor(t,e,i,n,s){super(e,i,n,s);const r=pt().createElement("canvas").getContext("2d",t.canvas.render.settings);if(!r)throw new Error("No 2d context available");this.checkContext=r,this.points=s.points;const c=this.points,l=new Path2D,h=e.x-i.width*a,d=e.y-i.height*a;for(const[t,e]of c.entries()){const n={x:h+e.x*i.width/o,y:d+e.y*i.height/o};t?l.lineTo(n.x,n.y):l.moveTo(n.x,n.y)}const u=c[0];if(!u)throw new Error("No path data available");const p={x:h+u.x*i.width/o,y:d+u.y*i.height/o};l.lineTo(p.x,p.y),this.path=l}async init(){}randomPosition(){const t=this.checkContext,e=this.position,i=this.size,n=this.fill,s=this.path,o=n?function(t,e,i,n){let s=null;for(let o=0;o<100;o++){const o={x:i.x+R()*n.width-n.width*a,y:i.y+R()*n.height-n.height*a};if(t.isPointInPath(e,o.x,o.y)){s=o;break}}return s}(t,s,e,i):function(t,e,i,n){let s=null;for(let o=0;o<100;o++){const o={x:i.x+R()*n.width-n.width*a,y:i.y+R()*n.height-n.height*a};if(t.isPointInStroke(e,o.x,o.y)){s=o;break}}return s}(t,s,e,i);return o?{position:o}:null}resize(t,e){super.resize(t,e);const i=this.points,n=new Path2D,s=t.x-e.width*a,r=t.y-e.height*a;for(const[t,a]of i.entries()){const i={x:s+a.x*e.width/o,y:r+a.y*e.height/o};t?n.lineTo(i.x,i.y):n.moveTo(i.x,i.y)}const c=i[0];if(!c)throw new Error("No path data available");const l={x:s+c.x*e.width/o,y:r+c.y*e.height/o};n.lineTo(l.x,l.y),this.path=n}}const To=50,Do=50;class Vo{points;constructor(){this.points=[]}load(t){I(t)||void 0!==t.points&&(this.points=t.points.map(t=>({x:t.x??To,y:t.y??Do})))}}class Io{generate(t,e,i,n,s){const o=new Vo;return o.load(s),new ko(t,e,i,n,o)}}async function Ao(t){t.checkVersion("4.0.0"),await t.pluginManager.register(t=>{ro(t),t.pluginManager.addEmitterShapeGenerator?.("path",new Io)})}function Eo(t,e,i,n=0){const s=[],o=u/e;for(let a=0;a<e;a++){const e=o*a+n;s.push({x:t.x+i*Math.cos(e),y:t.y+i*Math.sin(e)})}return s}function zo(t,e){let i=!1;for(let n=0,s=e.length-1;n<e.length;s=n++){const o=e[n],a=e[s];if(!o||!a)continue;o.y>t.y!=a.y>t.y&&t.x<(a.x-o.x)*(t.y-o.y)/(a.y-o.y)+o.x&&(i=!i)}return i}class Ro extends so{angle;polygon;sides;constructor(t,e,i,n){super(t,e,i,n),this.sides=n.sides,this.angle=Y(n.angle),this.polygon=Eo(t,this.sides,e.width*a,this.angle)}async init(){}randomPosition(){const t=this.fill,e=this.polygon,i=t?function(t){const e=t[0];if(!e)return null;const i={...e},n={...e};for(const e of t)e.x<i.x&&(i.x=e.x),e.x>n.x&&(n.x=e.x),e.y<i.y&&(i.y=e.y),e.y>n.y&&(n.y=e.y);let s=null;for(let e=0;e<100;e++){const e={x:i.x+R()*(n.x-i.x),y:i.y+R()*(n.y-i.y)};if(zo(e,t)){s=e;break}}return s}(e):function(t){const e=Math.floor(R()*t.length),i=t[e];if(!i)return;const n=t[(e+1)%t.length];if(!n)return;const s=R();return{x:i.x+(n.x-i.x)*s,y:i.y+(n.y-i.y)*s}}(e);return i?{position:i}:null}resize(t,e){super.resize(t,e),this.polygon=Eo(t,this.sides,e.width*a,this.angle)}}class Go{angle;sides;constructor(){this.angle=0,this.sides=5}load(t){I(t)||(void 0!==t.angle&&(this.angle=t.angle),void 0!==t.sides&&(this.sides=t.sides))}}class Lo{generate(t,e,i,n,s){const o=new Go;return o.load(s),new Ro(e,i,n,o)}}async function Fo(t){t.checkVersion("4.0.0"),await t.pluginManager.register(t=>{ro(t),t.pluginManager.addEmitterShapeGenerator?.("polygon",new Lo)})}class Ho{id="export-image";async getPlugin(t){const{ExportImagePluginInstance:e}=await Promise.resolve().then(function(){return Mf});return new e(t)}loadOptions(){}needsPlugin(){return!0}}async function Bo(t){t.checkVersion("4.0.0"),await t.pluginManager.register(t=>{t.pluginManager.addPlugin(new Ho)})}class No{id="export-json";async getPlugin(t){const{ExportJSONPluginInstance:e}=await Promise.resolve().then(function(){return Cf});return new e(t)}loadOptions(){}needsPlugin(){return!0}}async function Uo(t){t.checkVersion("4.0.0"),await t.pluginManager.register(t=>{t.pluginManager.addPlugin(new No)})}class $o{id="export-video";async getPlugin(t){const{ExportVideoPluginInstance:e}=await Promise.resolve().then(function(){return Tf});return new e(t)}loadOptions(){}needsPlugin(){return!0}}async function jo(t){t.checkVersion("4.0.0"),await t.pluginManager.register(t=>{t.pluginManager.addPlugin(new $o)})}class qo{drawVector;maxDragDistance;maxParticles;minParticles;particleFactor;spread;vectorColor;velocityFactor;constructor(){this.spread=30,this.velocityFactor=.5,this.particleFactor=.2,this.maxDragDistance=200,this.minParticles=5,this.maxParticles=200,this.drawVector=!0,this.vectorColor="#ffffff80"}load(t){t&&(void 0!==t.spread&&(this.spread=t.spread),void 0!==t.velocityFactor&&(this.velocityFactor=t.velocityFactor),void 0!==t.particleFactor&&(this.particleFactor=t.particleFactor),void 0!==t.minParticles&&(this.minParticles=t.minParticles),void 0!==t.maxParticles&&(this.maxParticles=t.maxParticles),void 0!==t.drawVector&&(this.drawVector=t.drawVector),void 0!==t.vectorColor&&(this.vectorColor=t.vectorColor))}}var Wo;!function(t){t[t.idle=0]="idle",t[t.aiming=1]="aiming",t[t.fired=2]="fired"}(Wo||(Wo={}));const Qo="cannon";class Zo extends Vs{maxDistance=0;_data;_gesture={origin:M.origin,current:M.origin,active:!1};_lastDownPosition=void 0;_state=Wo.idle;constructor(t){super(t)}clear(t,e){}init(){const t=this.container.actualOptions.interactivity?.modes.cannon??new qo;this._data={spread:Y(t.spread),maxDragDistance:t.maxDragDistance,velocityFactor:t.velocityFactor,particleFactor:t.particleFactor,minParticles:t.minParticles,maxParticles:t.maxParticles,drawVector:t.drawVector,vectorColor:t.vectorColor}}interact(t,e){const i=t.mouse,n=i.position,s=i.clicking,o=i.downPosition;s&&o&&o!==this._lastDownPosition&&this._state===Wo.idle&&(this._lastDownPosition=o,this._gesture={origin:{x:o.x,y:o.y},current:{x:o.x,y:o.y},active:!0},this._state=Wo.aiming),this._state===Wo.aiming&&n&&(this._gesture.current={x:n.x,y:n.y},this._drawVector()),s||this._state!==Wo.aiming||(this._gesture.active=!1,this._fire(),this._state=Wo.idle)}isEnabled(t){const{container:e}=this,i=e.actualOptions.interactivity?.events;if(!i?.onClick.enable)return!1;const n=i.onClick.mode;return!!(Array.isArray(n)?n.includes(Qo):n===Qo)&&(this._state!==Wo.idle||t.mouse.clicking)}loadModeOptions(t,...e){t.cannon??=new qo;for(const i of e)t.cannon.load(i?.cannon)}reset(t,e){}_drawVector(){this.container.canvas.render.draw(t=>{const e=this._data;if(!e)return;const{origin:i,current:n}=this._gesture,s=this.container.retina.pixelRatio,o=Z(i,n),a=e.maxDragDistance>0?Math.min(o,e.maxDragDistance*s):s,r=o>0?a/o:0,c=i.x+(n.x-i.x)*r,l=i.y+(n.y-i.y)*r;t.save(),t.strokeStyle=e.vectorColor,t.lineWidth=2*s,t.beginPath(),t.moveTo(i.x,i.y),t.lineTo(c,l),t.stroke();const h=Math.max(4,.05*a)*s;t.beginPath(),t.arc(i.x,i.y,h,0,u),t.strokeStyle=e.vectorColor,t.lineWidth=2*s,t.stroke(),t.restore()})}_fire(){const t=this._data;if(!t)return;const{origin:e,current:i}=this._gesture,n=this.container.retina.pixelRatio,s=Z(e,i),o=t.maxDragDistance>0?Math.min(s,t.maxDragDistance*n):s;if(o<2)return;const a=1/n,r=(d=i.x,u=i.y,p=e.x,g=e.y,Math.atan2(g-u,p-d)),c=o*a*t.velocityFactor,l=Math.min(t.maxParticles,Math.max(t.minParticles,Math.round(o*t.particleFactor))),h=180/Math.PI;var d,u,p,g;for(let i=0;i<l;i++){const i=r+G(-t.spread,t.spread),n=G(.25*c,c);this.container.particles.addParticle(e,{move:{enable:!0,speed:n,direction:i*h}})}}}async function Xo(t){t.checkVersion("4.0.0"),await t.pluginManager.register(t=>{$s(t),t.pluginManager.addInteractor?.("externalCannon",t=>Promise.resolve(new Zo(t)))})}class Yo{options;pauseOnStop;replaceCursor;stopDelay;constructor(){this.replaceCursor=!1,this.pauseOnStop=!1,this.stopDelay=0}load(t){I(t)||(void 0!==t.options&&(this.options=St({},t.options)),void 0!==t.replaceCursor&&(this.replaceCursor=t.replaceCursor),void 0!==t.pauseOnStop&&(this.pauseOnStop=t.pauseOnStop),void 0!==t.stopDelay&&(this.stopDelay=t.stopDelay))}}const Ko="particle";class Jo extends Vs{maxDistance=0;_clearTimeout;_lastPosition;_particle;constructor(t){super(t)}clear(){}init(){}interact(t){const e=this.container,i=e.actualOptions;if(!e.retina.reduceFactor)return;const n=t.mouse.position,s=i.interactivity?.modes.particle;if(!s)return;const o=s.pauseOnStop&&(t.mouse.position===this._lastPosition||t.mouse.position?.x===this._lastPosition?.x&&t.mouse.position?.y===this._lastPosition?.y),a=s.stopDelay;if(n?this._lastPosition={...n}:delete this._lastPosition,this._lastPosition)if(o){if(this._clearTimeout)return;this._clearTimeout=setTimeout(()=>{if(this._particle){if(s.replaceCursor){const e=t.element;e&&(e instanceof Window||e instanceof Document?pt().body.style.cursor="":e.style.cursor="")}this._particle.destroy(!0),delete this._particle}},a)}else{if(this._clearTimeout&&(clearTimeout(this._clearTimeout),delete this._clearTimeout),!this._particle){const i=St(s.options,{move:{enable:!1}});if(this._particle=e.particles.addParticle(this._lastPosition,i),s.replaceCursor){const e=t.element;e&&(e instanceof Window||e instanceof Document?pt().body.style.cursor="none":e.style.cursor="none")}}this._particle&&(this._particle.position.x=this._lastPosition.x,this._particle.position.y=this._lastPosition.y)}}isEnabled(t,e){const i=this.container.actualOptions,n=t.mouse,s=(e?.interactivity??i.interactivity)?.events;return!!s&&(n.clicking&&n.inside&&!!n.position&&_t(Ko,s.onClick.mode)||n.inside&&!!n.position&&_t(Ko,s.onHover.mode))}loadModeOptions(t,...e){t.particle??=new Yo;for(const i of e)t.particle.load(i?.particle)}reset(){}}async function ta(t){t.checkVersion("4.0.0"),await t.pluginManager.register(t=>{$s(t),t.pluginManager.addInteractor?.("externalParticle",t=>Promise.resolve(new Jo(t)))})}class ea extends Vs{handleClickMode;maxDistance=0;constructor(t){super(t),this.handleClickMode=(t,e)=>{const i=this.container;if("pop"!==t)return;const n=e.mouse.clickPosition;if(!n)return;const s=i.particles.grid.queryCircle(n,i.retina.pixelRatio);if(s.length)for(const t of s)t.destroy()}}clear(){}init(){}interact(){}isEnabled(t,e){const i=this.container.actualOptions,n=t.mouse,s=(e?.interactivity??i.interactivity)?.events;return!!s&&n.clicking&&n.inside&&!!n.position&&_t("pop",s.onClick.mode)}reset(){}}async function ia(t){t.checkVersion("4.0.0"),await t.pluginManager.register(t=>{$s(t),t.pluginManager.addInteractor?.("externalPop",t=>Promise.resolve(new ea(t)))})}class na{drawAfter(t){const{context:e}=t;e.restore()}drawBefore(t){const{context:e,particle:i}=t;e.save();const n="number"==typeof i.filterBlur?`${i.filterBlur}px`:i.filterBlur,s=i.filterBrightness,o=i.filterContrast,a=i.filterDropShadow,r=i.filterGrayscale,c="number"==typeof i.filterHueRotate?`${i.filterHueRotate}deg`:i.filterHueRotate,l=i.filterInvert,h=i.filterOpacity,d=i.filterSaturate,u=i.filterSepia,p=i.filterUrl,g=n?`blur(${n})`:"",f=I(s)?"":`brightness(${s})`,y=I(o)?"":`contrast(${o})`,_=a?`drop-shadow(${a})`:"",m=I(r)?"":`grayscale(${r})`,v=I(c)?"":`hue-rotate(${c})`,w=I(l)?"":`invert(${l})`,b=I(h)?"":`opacity(${h})`,x=I(d)?"":`saturate(${d})`,S=I(u)?"":`sepia(${u})`,P=p?`url(${p})`:"";e.filter=`${g} ${f} ${y} ${_} ${m} ${v} ${w} ${b} ${x} ${S} ${P}`.trim()}particleInit(t,e){const i=e.effectData;i&&(e.filterBlur=i.blur,e.filterBrightness=i.brightness,e.filterContrast=i.contrast,e.filterDropShadow=i.dropShadow,e.filterGrayscale=i.grayscale,e.filterHueRotate=i.hueRotate,e.filterInvert=i.invert,e.filterOpacity=i.opacity,e.filterSaturate=i.saturate,e.filterSepia=i.sepia,e.filterUrl=i.url)}}async function sa(t){t.checkVersion("4.0.0"),await t.pluginManager.register(t=>{t.pluginManager.addEffect("filter",()=>Promise.resolve(new na))})}const oa=(t,e,i)=>t+i*(e-t),aa=t=>t*t*(3-2*t),ra=t=>t-Math.floor(t);class ca{_coeffW=29.537;_coeffX=127.1;_coeffY=311.7;_coeffZ=78.233;_coeffZW=37.719;_scaleFactor=43758.5453;noise2d(t,e){const i=Math.floor(t),n=Math.floor(e),s=i+1,o=n+1,a=aa(t-i),r=aa(e-n),c=this._valueNoise2D(i,n),l=this._valueNoise2D(s,n),h=this._valueNoise2D(i,o),d=this._valueNoise2D(s,o),u=oa(c,l,a),p=oa(h,d,a);return oa(u,p,r)}noise3d(t,e,i){const n=Math.floor(t),s=Math.floor(e),o=Math.floor(i),a=n+1,r=s+1,c=o+1,l=aa(t-n),h=aa(e-s),d=aa(i-o),u=this._valueNoise3D(n,s,o),p=this._valueNoise3D(a,s,o),g=this._valueNoise3D(n,r,o),f=this._valueNoise3D(a,r,o),y=this._valueNoise3D(n,s,c),_=this._valueNoise3D(a,s,c),m=this._valueNoise3D(n,r,c),v=this._valueNoise3D(a,r,c),w=oa(u,p,l),b=oa(g,f,l),x=oa(y,_,l),S=oa(m,v,l),P=oa(w,b,h),M=oa(x,S,h);return oa(P,M,d)}noise4d(t,e,i,n){const s=Math.floor(t),o=Math.floor(e),a=Math.floor(i),r=Math.floor(n),c=s+1,l=o+1,h=a+1,d=r+1,u=aa(t-s),p=aa(e-o),g=aa(i-a),f=aa(n-r),y=this._valueNoise4D(s,o,a,r),_=this._valueNoise4D(c,o,a,r),m=this._valueNoise4D(s,l,a,r),v=this._valueNoise4D(c,l,a,r),w=this._valueNoise4D(s,o,h,r),b=this._valueNoise4D(c,o,h,r),x=this._valueNoise4D(s,l,h,r),S=this._valueNoise4D(c,l,h,r),P=this._valueNoise4D(s,o,a,d),M=this._valueNoise4D(c,o,a,d),C=this._valueNoise4D(s,l,a,d),O=this._valueNoise4D(c,l,a,d),k=this._valueNoise4D(s,o,h,d),T=this._valueNoise4D(c,o,h,d),D=this._valueNoise4D(s,l,h,d),V=this._valueNoise4D(c,l,h,d),I=oa(y,_,u),A=oa(m,v,u),E=oa(w,b,u),z=oa(x,S,u),R=oa(P,M,u),G=oa(C,O,u),L=oa(k,T,u),F=oa(D,V,u),H=oa(I,A,p),B=oa(E,z,p),N=oa(R,G,p),U=oa(L,F,p),$=oa(H,B,g),j=oa(N,U,g);return oa($,j,f)}seed(t){const e=1e4*Math.sin(t);this._coeffX=ra(15731*e),this._coeffY=ra(789221*e),this._coeffZ=ra(1376312589*e),this._coeffZW=ra(974634777*e),this._coeffW=ra(592558533*e),this._scaleFactor=43758.5453}_valueNoise2D(t,e){const i=Math.sin(t*this._coeffX+e*this._coeffY)*this._scaleFactor;return 2*(i-Math.floor(i))-1}_valueNoise3D(t,e,i){const n=Math.sin(t*this._coeffX+e*this._coeffY+i*this._coeffZ)*this._scaleFactor;return 2*(n-Math.floor(n))-1}_valueNoise4D(t,e,i,n){const s=Math.sin(t*this._coeffX+e*this._coeffY+i*this._coeffZW+n*this._coeffW)*this._scaleFactor;return 2*(s-Math.floor(s))-1}}class la{_smoothValueNoise;constructor(){this._smoothValueNoise=new ca}noise2d(t,e,i=5,n=.5,s=2){let o=0,a=1,r=1,c=0;for(let l=0;l<i;l++)o+=this._smoothValueNoise.noise2d(t*a,e*a)*r,c+=r,r*=n,a*=s;return o/c}noise3d(t,e,i,n=5,s=.5,o=2){let a=0,r=1,c=1,l=0;for(let h=0;h<n;h++)a+=this._smoothValueNoise.noise3d(t*r,e*r,i*r)*c,l+=c,c*=s,r*=o;return a/l}noise4d(t,e,i,n,s=5,o=.5,a=2){let r=0,c=1,l=1,h=0;for(let d=0;d<s;d++)r+=this._smoothValueNoise.noise4d(t*c,e*c,i*c,n*c)*l,h+=l,l*=o,c*=a;return r/h}seed(t){this._smoothValueNoise.seed(t)}}const ha=1,da=0,ua=0,pa=1,ga=0,fa=0,ya={draw:!1,size:20,increment:.004,columns:0,rows:0,layers:0,width:0,height:0,factor:{angle:.02,length:.01},offset:{x:4e4,y:4e4,z:4e4}};class _a{container;field;noiseGen;noiseW;options;_res;constructor(t,e){this.container=t,this.noiseGen=e,this.field=[],this.noiseW=0,this._res=M.origin,this.options=St({},ya)}generate(t){const e=t.getPosition(),{size:i}=this.options,n=1/i,s=Math.max(Math.floor(e.x*n),0),o=Math.max(Math.floor(e.y*n),0),a=Math.max(Math.floor(e.z*n),0),{field:r}=this,c=r[s]?.[o]?.[a];return c?(this._res.x=c.x,this._res.y=c.y):(this._res.x=0,this._res.y=0),this._res}init(){this._setup()}reset(){}update(){this._calculateField(),this.noiseW+=this.options.increment,this.options.draw&&this.container.canvas.render.draw(t=>{this._drawField(t)})}_calculateField(){const{field:t,noiseGen:e,options:i,noiseW:n}=this,s=i.factor.length,o=i.factor.angle;for(let a=0;a<i.columns;a++){const r=t[a];if(r)for(let t=0;t<i.rows;t++){const c=r[t];if(c)for(let r=0;r<i.layers;r++){const l=c[r];l&&(l.length=e.noise4d(a*s+i.offset.x,t*s+i.offset.y,r*s+i.offset.z,n),l.angle=e.noise4d(a*o,t*o,r*o,n)*u)}}}}_drawField(t){const{field:e,options:i}=this;for(let n=0;n<i.columns;n++){const s=e[n];if(s)for(let e=0;e<i.rows;e++){const i=s[e];if(!i)continue;const o=i[0];if(!o)continue;const{angle:a,length:r}=o;t.setTransform(ha,da,ua,pa,n*this.options.size,e*this.options.size),t.rotate(a),t.strokeStyle="white",t.beginPath(),t.moveTo(0,0),t.lineTo(0,this.options.size*r),t.stroke(),t.setTransform(ha,da,ua,pa,ga,fa)}}}_initField(){const{columns:t,rows:e,layers:i}=this.options;this.field=new Array(t);for(let n=0;n<t;n++){const t=new Array(e);for(let n=0;n<e;n++){const e=new Array(i);for(let t=0;t<i;t++)e[t]=M.origin;t[n]=e}this.field[n]=t}}_resetField(){const t=this.container,e=t.actualOptions.particles.move.path.options,{options:i}=this;i.width=t.canvas.size.width,i.height=t.canvas.size.height,i.size=e.size>0?e.size:ya.size,i.increment=e.increment>0?e.increment:ya.increment,i.draw=!!e.draw;const n=e.offset;i.offset.x=n?.x??ya.offset.x,i.offset.y=n?.y??ya.offset.y,i.offset.z=n?.z??ya.offset.z;const s=e.factor;i.factor.angle=s?.angle??ya.factor.angle,i.factor.length=s?.length??ya.factor.length,i.seed=e.seed,this.noiseGen.seed(i.seed??R()),i.columns=Math.floor(i.width/i.size)+1,i.rows=Math.floor(i.height/i.size)+1,i.layers=Math.floor(t.zLayers/i.size)+1,this._initField()}_setup(){this.noiseW=0,this._resetField(),addEventListener("resize",()=>{this._resetField()})}}class ma extends _a{constructor(t){const e=new la;super(t,{noise4d:(t,i,n,s)=>e.noise4d(t,i,n,s),seed:t=>{e.seed(t)}})}}async function va(t){t.checkVersion("4.0.0"),await t.pluginManager.register(t=>{Ei(t),t.pluginManager.addPathGenerator?.("fractalNoise",t=>Promise.resolve(new ma(t)))})}class wa{count;delay;duration;wait;constructor(){this.wait=!1}load(t){I(t)||(void 0!==t.count&&(this.count=t.count),void 0!==t.delay&&(this.delay=q(t.delay)),void 0!==t.duration&&(this.duration=q(t.duration)),void 0!==t.wait&&(this.wait=t.wait))}}class ba{mass;radius;constructor(){this.radius=0,this.mass=0}load(t){I(t)||(void 0!==t.mass&&(this.mass=t.mass),void 0!==t.radius&&(this.radius=t.radius))}}class xa extends me{density;limit;constructor(){super(),this.density=5,this.value=50,this.limit=new ba}load(t){I(t)||(super.load(t),void 0!==t.density&&(this.density=t.density),k(t.limit)?this.limit.radius=t.limit:this.limit.load(t.limit))}}class Sa{color;destroy;draggable;life;name;opacity;orbits;position;size;constructor(){this.color=new ce,this.color.value="#000000",this.draggable=!1,this.opacity=1,this.destroy=!0,this.orbits=!1,this.life=new wa,this.size=new xa}load(t){I(t)||(void 0!==t.color&&(this.color=ce.create(this.color,t.color)),void 0!==t.draggable&&(this.draggable=t.draggable),void 0!==t.life&&this.life.load(t.life),this.name=t.name,void 0!==t.opacity&&(this.opacity=t.opacity),void 0!==t.position&&(this.position={},void 0!==t.position.x&&(this.position.x=q(t.position.x)),void 0!==t.position.y&&(this.position.y=q(t.position.y))),void 0!==t.size&&this.size.load(t.size),void 0!==t.destroy&&(this.destroy=t.destroy),void 0!==t.orbits&&(this.orbits=t.orbits))}}const Pa="absorbers";class Ma extends Vs{handleClickMode;maxDistance;_dragging=!1;_draggingAbsorber;_instancesManager;constructor(t,e){super(t),this.maxDistance=0,this._instancesManager=e,this._instancesManager.initContainer(t),this.handleClickMode=(t,i)=>{const n=this.container,s=n.actualOptions.interactivity.modes.absorbers;if(!s||t!==Pa)return;const{clickPosition:o}=i.mouse;if(o){if(e.getArray(this.container).some(t=>Z(t.position,o)<t.size))return}const a=vt(s)??new Sa;this._instancesManager.addAbsorber(n,a,o)}}clear(){}init(){}interact(t,e){for(const i of this.container.particles.filter(e=>this.isEnabled(t,e)))for(const n of this._instancesManager.getArray(this.container)){if(n.options.draggable){const e=t.mouse;if(e.clicking&&e.downPosition){Z(n.position,e.downPosition)<=n.size&&(this._dragging=!0,this._draggingAbsorber=n)}else this._dragging=!1,this._draggingAbsorber=void 0;this._dragging&&this._draggingAbsorber==n&&e.position&&(n.position.x=e.position.x,n.position.y=e.position.y)}if(n.attract(i,e),i.destroyed)break}}isEnabled(t,e){const i=this.container.actualOptions,n=t.mouse,s=(e?.interactivity??i.interactivity).events;return!(!n.clickPosition||!s.onClick.enable)&&_t(Pa,s.onClick.mode)}loadModeOptions(t,...e){t.absorbers??=[];for(const i of e)if(i)if(V(i.absorbers))for(const e of i.absorbers){const i=new Sa;i.load(e),t.absorbers.push(i)}else{const e=new Sa;e.load(i.absorbers),t.absorbers.push(e)}}reset(){}}const Ca=new WeakMap;function Oa(t){const e=t.pluginManager;let i=Ca.get(e);return i||(i=Promise.resolve().then(function(){return Df}).then(({AbsorbersInstancesManager:t})=>new t(e)).catch(t=>{throw Ca.delete(e),t}),Ca.set(e,i)),i}class ka{id="absorbers";_instancesManager;constructor(t){this._instancesManager=t}async getPlugin(t){const{AbsorbersPluginInstance:e}=await Promise.resolve().then(function(){return Vf});return new e(t,this._instancesManager)}loadOptions(t,e,i){(this.needsPlugin(e)||this.needsPlugin(i))&&i?.absorbers&&(e.absorbers=Ct(i.absorbers,t=>{const e=new Sa;return e.load(t),e}))}needsPlugin(t){if(!t)return!1;const e=t.absorbers;return V(e)?!!e.length:!!e}}async function Ta(t){await async function(t){t.checkVersion("4.0.0"),await t.pluginManager.register(async t=>{const e=t.pluginManager,i=await Oa(t);e.addPlugin(new ka(i))})}(t),await async function(t){t.checkVersion("4.0.0"),await t.pluginManager.register(async t=>{const e=t.pluginManager,i=await Oa(t);$s(t),e.addInteractor?.("externalAbsorbers",t=>Promise.resolve(new Ma(t,i)))})}(t)}class Da{bottom;left;right;top;load(t){I(t)||(void 0!==t.bottom&&(this.bottom=q(t.bottom)),void 0!==t.left&&(this.left=q(t.left)),void 0!==t.right&&(this.right=q(t.right)),void 0!==t.top&&(this.top=q(t.top)))}}var Va;!function(t){t.explode="explode",t.none="none",t.split="split"}(Va||(Va={}));class Ia{maxSizeFactor;speed;constructor(){this.maxSizeFactor=3,this.speed=2}load(t){I(t)||(void 0!==t.maxSizeFactor&&(this.maxSizeFactor=t.maxSizeFactor),void 0!==t.speed&&(this.speed=t.speed))}}class Aa extends me{constructor(){super(),this.value=3}}class Ea extends me{constructor(){super(),this.value={min:4,max:9}}}class za{count;factor;fillColor;fillColorOffset;particles;rate;sizeOffset;strokeColor;strokeColorOffset;constructor(){this.count=1,this.factor=new Aa,this.rate=new Ea,this.sizeOffset=!0}load(t){I(t)||(void 0!==t.fillColor&&(this.fillColor=ce.create(this.fillColor,t.fillColor)),void 0!==t.strokeColor&&(this.strokeColor=ce.create(this.strokeColor,t.strokeColor)),void 0!==t.count&&(this.count=t.count),this.factor.load(t.factor),this.rate.load(t.rate),this.particles=Ct(t.particles,t=>St({},t)),void 0!==t.sizeOffset&&(this.sizeOffset=t.sizeOffset),t.fillColorOffset&&(this.fillColorOffset=this.fillColorOffset??{},void 0!==t.fillColorOffset.h&&(this.fillColorOffset.h=t.fillColorOffset.h),void 0!==t.fillColorOffset.s&&(this.fillColorOffset.s=t.fillColorOffset.s),void 0!==t.fillColorOffset.l&&(this.fillColorOffset.l=t.fillColorOffset.l)),t.strokeColorOffset&&(this.strokeColorOffset=this.strokeColorOffset??{},void 0!==t.strokeColorOffset.h&&(this.strokeColorOffset.h=t.strokeColorOffset.h),void 0!==t.strokeColorOffset.s&&(this.strokeColorOffset.s=t.strokeColorOffset.s),void 0!==t.strokeColorOffset.l&&(this.strokeColorOffset.l=t.strokeColorOffset.l)))}}let Ra=class{bounds;explode;mode;split;constructor(){this.bounds=new Da,this.explode=new Ia,this.mode=Va.none,this.split=new za}load(t){I(t)||(t.mode&&(this.mode=t.mode),t.bounds&&this.bounds.load(t.bounds),this.explode.load(t.explode),this.split.load(t.split))}};function Ga(t,e,i,n){return t&&n?function(t,e){const i=U(e.h??0),n=U(e.s??0),s=U(e.l??0),o=(t.h+i)%360,a=Math.max(0,Math.min(100,t.s+n)),r=Math.max(0,Math.min(100,t.l+s));return le.create(void 0,{value:{hsl:{h:o<0?o+360:o,s:a,l:r}}})}(n,t):e?le.create(void 0,e):i?le.create(void 0,i):n?function(t){return le.create(void 0,{value:{hsl:t}})}(n):void 0}function La(e,i,n,s){const o=n.options.destroy;if(!o)return;const a=o.split,r=He(e,i,n.options),c=Ot(a.fillColor),l=Ot(a.strokeColor),h=n.getFillColor(),d=n.getStrokeColor();r.move.load({center:{x:n.position.x,y:n.position.y,mode:t.PixelMode.precise}});const u=1/U(a.factor.value);k(r.size.value)?r.size.value*=u:(r.size.value.min*=u,r.size.value.max*=u),r.load(s);const p=Ot(r.paint),g=p?.fill,f=p?.stroke,y=Ga(a.fillColorOffset,c,g?.color,h),_=Ga(a.strokeColorOffset,l,f?.color,d);y&&g&&(g.color=y),_&&f&&(f.color=_);const m=a.sizeOffset?q(-n.size.value,n.size.value):0,v={x:n.position.x+N(m),y:n.position.y+N(m)};return i.particles.addParticle(v,r,n.group,t=>!(t.size.value<.5)&&(t.velocity.length=N(q(n.velocity.length,t.velocity.length)),t.splitCount=(n.splitCount??0)+1,t.unbreakable=!0,t.unbreakableUntil=performance.now()+500,!0))}class Fa{_container;_pluginManager;constructor(t,e){this._container=e,this._pluginManager=t}init(t){const e=this._container,i=t.options.destroy;if(!i)return;t.exploding=void 0,t.splitCount=0;const n=i.bounds;t.destroyBounds??={};const{bottom:s,left:a,right:r,top:c}=n,{destroyBounds:l}=t,h=e.canvas.size;s&&(l.bottom=U(s)*h.height/o),a&&(l.left=U(a)*h.width/o),r&&(l.right=U(r)*h.width/o),c&&(l.top=U(c)*h.height/o)}isEnabled(t){const e=t;return!e.destroyed||!!e.exploding}loadOptions(t,...e){t.destroy??=new Ra;for(const i of e)t.destroy.load(i?.destroy)}particleDestroyed(t,e){if(e)return;const i=t.options.destroy;switch(i?.mode){case Va.split:!function(t,e,i){const n=i.options.destroy;if(!n)return;const s=n.split;if(s.count>=0){if(void 0===i.splitCount||i.splitCount>s.count)return;i.splitCount++}const o=U(s.rate.value),a=Ot(s.particles);for(let n=0;n<o;n++)La(t,e,i,a)}(this._pluginManager,this._container,t);break;case Va.explode:{if(t.exploding){t.destroyed=!1;break}const{explode:e}=i,n=t.size.value,s=n*e.maxSizeFactor,o=t.getOpacity();t.exploding={initialFillOpacity:o.fillOpacity,initialSize:n,initialStrokeOpacity:o.strokeOpacity,maxSize:s,progress:0,speed:Math.max(e.speed,.01)},t.fillOpacity=o.fillOpacity,t.strokeOpacity=o.strokeOpacity,t.destroyed=!1;break}}}update(t,e){if(t.exploding){const i=t.exploding,n=e.factor||1;i.progress=Math.min(1,i.progress+i.speed*n/60);const s=i.progress;return t.size.value=i.initialSize+(i.maxSize-i.initialSize)*s,t.fillOpacity=i.initialFillOpacity*(1-s),t.strokeOpacity=i.initialStrokeOpacity*(1-s),void(s>=1&&(t.exploding=void 0,t.destroy(!0)))}void 0!==t.unbreakableUntil&&performance.now()>=t.unbreakableUntil&&(t.unbreakable=!1,t.unbreakableUntil=void 0);const i=t.getPosition(),n=t.destroyBounds;n&&(void 0!==n.bottom&&i.y>=n.bottom||void 0!==n.left&&i.x<=n.left||void 0!==n.right&&i.x>=n.right||void 0!==n.top&&i.y<=n.top)&&t.destroy()}}async function Ha(t){t.checkVersion("4.0.0"),await t.pluginManager.register(t=>{t.pluginManager.addParticleUpdater("destroy",e=>Promise.resolve(new Fa(t.pluginManager,e)))})}class Ba extends so{constructor(t,e,i,n){super(t,e,i,n)}async init(){}randomPosition(){const t=this.size,e=this.fill,i=this.position,[n,s]=[t.width*a,t.height*a],o=((t,e)=>{const i=R()*w,n=Math.atan(e/t*Math.tan(u*i)),s=R();return s<w?n:s<.5?Math.PI-n:s<.75?Math.PI+n:-n})(n,s),r=(d=o,(l=n)*(h=s)/Math.sqrt((h*Math.cos(d))**2+(l*Math.sin(d))**2)),c=e?r*Math.sqrt(R()):r;var l,h,d;return{position:{x:i.x+c*Math.cos(o),y:i.y+c*Math.sin(o)}}}}class Na{generate(t,e,i,n,s){return new Ba(e,i,n,s)}}async function Ua(t){t.checkVersion("4.0.0"),await t.pluginManager.register(t=>{ro(t),t.pluginManager.addEmitterShapeGenerator?.("circle",new Na)})}var $a;function ja(t,e){return t+e*(R()-a)}!function(t){t[t.TopLeft=0]="TopLeft",t[t.TopRight=1]="TopRight",t[t.BottomRight=2]="BottomRight",t[t.BottomLeft=3]="BottomLeft"}($a||($a={}));class qa extends so{constructor(t,e,i,n){super(t,e,i,n)}async init(){}randomPosition(){const t=this.fill,e=this.position,i=this.size;if(t)return{position:{x:ja(e.x,i.width),y:ja(e.y,i.height)}};{const t=i.width*a,n=i.height*a,s=function(t){return Math.floor(R()*t)}(4),o=2*(R()-a);switch(s){case $a.TopLeft:return{position:{x:e.x+o*t,y:e.y-n}};case $a.TopRight:return{position:{x:e.x-t,y:e.y+o*n}};case $a.BottomRight:return{position:{x:e.x+o*t,y:e.y+n}};case $a.BottomLeft:default:return{position:{x:e.x+t,y:e.y+o*n}}}}}}class Wa{generate(t,e,i,n,s){return new qa(e,i,n,s)}}async function Qa(t){t.checkVersion("4.0.0"),await t.pluginManager.register(t=>{ro(t),t.pluginManager.addEmitterShapeGenerator?.("square",new Wa)})}class Za{momentumFactor;preserveMomentum;constructor(){this.momentumFactor=.03,this.preserveMomentum=false}load(t){I(t)||(void 0!==t.momentumFactor&&(this.momentumFactor=t.momentumFactor),void 0!==t.preserveMomentum&&(this.preserveMomentum=t.preserveMomentum))}}const Xa=16.666666666666668;class Ya extends Vs{maxDistance=0;_dragStartClickTime;_dragStartClickingFalseTime;_draggedParticle;_grabOffset;_lastMousePosition;_momentumSamples=[];_mouseDownHandled=!1;_savedVelocity;constructor(t){super(t)}clear(t,e){}init(){}interact(t,e){const i=t.mouse,n=i.position;if(n&&(this._lastMousePosition=n),this._draggedParticle){const t=performance.now();i.clicking?this._dragStartClickingFalseTime=void 0:this._dragStartClickingFalseTime??=t;const e=void 0===this._dragStartClickTime&&void 0!==this._dragStartClickingFalseTime&&t-this._dragStartClickingFalseTime>=50;if(!i.inside||this._hasClickEnded(i)||e)return this._releaseDragged(),void(this._mouseDownHandled=!1);const s=n??this._lastMousePosition;if(!s)return;this._momentumSamples.push({x:s.x,y:s.y,t:t}),this._momentumSamples.length>5&&this._momentumSamples.shift();const o=s.x+(this._grabOffset?.x??0),a=s.y+(this._grabOffset?.y??0);return this._draggedParticle.position.x=o-this._draggedParticle.offset.x,this._draggedParticle.position.y=a-this._draggedParticle.offset.y,this._draggedParticle.velocity.x=0,this._draggedParticle.velocity.y=0,this._draggedParticle.initialPosition.x=this._draggedParticle.position.x,this._draggedParticle.initialPosition.y=this._draggedParticle.position.y,void(this._draggedParticle.misplaced=!1)}if(!i.clicking)return this._releaseDragged(),void(this._mouseDownHandled=!1);if(this._mouseDownHandled)return;this._mouseDownHandled=!0;const s=i.downPosition??n??this._lastMousePosition,o=this._findParticleUnderCursor(t,s);if(!o||!n)return void(o||(this._mouseDownHandled=!1));const a=o.getPosition();this._draggedParticle=o,this._dragStartClickTime=i.clickTime,this._grabOffset={x:a.x-n.x,y:a.y-n.y},this._savedVelocity={x:o.velocity.x,y:o.velocity.y},this._dragStartClickingFalseTime=void 0,this._momentumSamples=[{x:n.x,y:n.y,t:performance.now()}],o.velocity.x=0,o.velocity.y=0,o.position.x=a.x-o.offset.x,o.position.y=a.y-o.offset.y,o.initialPosition.x=o.position.x,o.initialPosition.y=o.position.y,o.misplaced=!1}isEnabled(t,e){const i=this.container,n=t.mouse,s=(e?.interactivity??i.actualOptions.interactivity)?.events;return!(!this._draggedParticle&&!this._mouseDownHandled)||!!s?.onClick.enable&&n.clicking&&!!n.position&&_t("drag",s.onClick.mode)}loadModeOptions(t,...e){t.drag??=new Za;for(const i of e)t.drag.load(i?.drag)}reset(t,e){}_findParticleUnderCursor(t,e){if(!e)return;const i=this.container.particles.filter(e=>this.isEnabled(t,e));let n,s=1/0;for(const t of i){const i=Z(t.getPosition(),e),o=t.getRadius();!Number.isFinite(i)||!Number.isFinite(o)||i>o||i>=s||(n=t,s=i)}return n}_hasClickEnded(t){return void 0!==this._dragStartClickTime&&void 0!==t.clickTime&&t.clickTime!==this._dragStartClickTime}_releaseDragged(){if(this._draggedParticle){const t=this.container.actualOptions.interactivity?.modes.drag;if((t?.preserveMomentum??!1)&&this._momentumSamples.length>=2){const e=this._momentumSamples[0],i=this._momentumSamples[this._momentumSamples.length-1];if(e&&i){const n=i.t-e.t;if(n>0){const s=t?.momentumFactor??.03;this._draggedParticle.velocity.x=(i.x-e.x)/n*Xa*s,this._draggedParticle.velocity.y=(i.y-e.y)/n*Xa*s}else this._savedVelocity&&(this._draggedParticle.velocity.x=this._savedVelocity.x,this._draggedParticle.velocity.y=this._savedVelocity.y)}else this._savedVelocity&&(this._draggedParticle.velocity.x=this._savedVelocity.x,this._draggedParticle.velocity.y=this._savedVelocity.y)}else this._savedVelocity&&(this._draggedParticle.velocity.x=this._savedVelocity.x,this._draggedParticle.velocity.y=this._savedVelocity.y)}this._draggedParticle=void 0,this._dragStartClickTime=void 0,this._dragStartClickingFalseTime=void 0,this._grabOffset=void 0,this._lastMousePosition=void 0,this._momentumSamples=[],this._savedVelocity=void 0}}async function Ka(t){t.checkVersion("4.0.0"),await t.pluginManager.register(t=>{$s(t),t.pluginManager.addInteractor?.("externalDrag",t=>Promise.resolve(new Ya(t)))})}class Ja{x;y;constructor(){this.x=0,this.y=0}load(t){t&&(void 0!==t.x&&(this.x=t.x),void 0!==t.y&&(this.y=t.y))}}class tr{value;weights;constructor(){this.weights=new Ja}load(t){t&&(t.weights&&(this.weights??=new Ja,this.weights.load(t.weights)),I(t.value)||(this.value=q(t.value)))}}class er{h;l;s;constructor(){this.h=new tr,this.s=new tr,this.l=new tr}load(t){t&&(t.h&&(this.h??=new tr,this.h.load(t.h)),t.s&&(this.s??=new tr,this.s.load(t.s)),t.l&&(this.l??=new tr,this.l.load(t.l)))}}let ir=class{colorCoords;delay;particles;pauseOnStop;quantity;constructor(){this.delay=1,this.pauseOnStop=!1,this.quantity=1,this.colorCoords=new er}load(t){I(t)||(void 0!==t.delay&&(this.delay=t.delay),void 0!==t.quantity&&(this.quantity=t.quantity),void 0!==t.pauseOnStop&&(this.pauseOnStop=t.pauseOnStop),void 0!==t.particles&&(this.particles=St({},t.particles)),t.colorCoords&&(this.colorCoords??=new er,this.colorCoords.load(t.colorCoords)))}};const nr="trail";class sr extends Vs{maxDistance=0;_delay;_lastPosition;_pluginManager;constructor(t,e){super(e),this._pluginManager=t,this._delay=0}clear(){}init(){}interact(t,e){const i=this.container;if(!i.retina.reduceFactor)return;const n=i.actualOptions,s=n.interactivity?.modes.trail;if(!s)return;const o=s.delay*r/this.container.retina.reduceFactor;if(this._delay<o&&(this._delay+=e.value),this._delay<o)return;const a=t.mouse.position,c=!(s.pauseOnStop&&(a===this._lastPosition||a?.x===this._lastPosition?.x&&a?.y===this._lastPosition?.y));if(a?this._lastPosition={...a}:delete this._lastPosition,c&&a){let t=s.particles;const e=s.colorCoords;if(e){const{width:n,height:o}=i.canvas.size,r={x:a.x/n,y:a.y/o},c=t=>!!(t?.weights?.x??t?.weights?.y),l=(t,e,i)=>{if(!c(t))return;const n=t?.weights,s=r.x*(n?.x??0)+r.y*(n?.y??0),o=t?.value??e,a=$(o??0),l=j(o??i),h=a+s*(l-a);return Math.min(l,Math.max(a,h))},h=s.particles?.paint?Ot(s.particles.paint):void 0,d=h?.fill,u=d?ni(this._pluginManager,le.create(void 0,d.color)):void 0,p=l(e.h,u?.h,_),g=l(e.s,u?.s,m),f=l(e.l,u?.l,v);void 0===p&&void 0===g&&void 0===f||(t=St({},s.particles,{paint:{fill:{color:{value:{h:p??u?.h,s:g??u?.s,l:f??u?.l}}}}}))}i.particles.push(s.quantity,a,t)}this._delay-=o}isEnabled(t,e){const i=this.container.actualOptions,n=t.mouse,s=(e?.interactivity??i.interactivity)?.events;return!!s&&(n.clicking&&n.inside&&!!n.position&&_t(nr,s.onClick.mode)||n.inside&&!!n.position&&_t(nr,s.onHover.mode))}loadModeOptions(t,...e){t.trail??=new ir;for(const i of e)t.trail.load(i?.trail)}reset(){}}async function or(t){t.checkVersion("4.0.0"),await t.pluginManager.register(t=>{$s(t),t.pluginManager.addInteractor?.("externalTrail",e=>Promise.resolve(new sr(t.pluginManager,e)))})}var ar;!function(t){t.both="both",t.horizontal="horizontal",t.vertical="vertical"}(ar||(ar={}));class rr{enable;value;constructor(){this.enable=!1,this.value=0}load(t){I(t)||(void 0!==t.enable&&(this.enable=t.enable),void 0!==t.value&&(this.value=q(t.value)))}}class cr{backColor;darken;enable;enlighten;mode;speed;constructor(){this.darken=new rr,this.enable=!1,this.enlighten=new rr,this.mode=ar.vertical,this.speed=25}load(t){I(t)||(void 0!==t.backColor&&(this.backColor=ce.create(this.backColor,t.backColor)),this.darken.load(t.darken),void 0!==t.enable&&(this.enable=t.enable),this.enlighten.load(t.enlighten),void 0!==t.mode&&(this.mode=t.mode),void 0!==t.speed&&(this.speed=q(t.speed)))}}class lr{_pluginManager;constructor(t){this._pluginManager=t}getTransformValues(t){const e=t.roll?.enable&&t.roll,i=e&&e.horizontal,n=e&&e.vertical;return{a:i?Math.cos(e.angle):void 0,d:n?Math.sin(e.angle):void 0}}init(e){!function(e,i){const n=i.options.roll;if(n?.enable)if(i.roll={enable:n.enable,horizontal:n.mode===ar.horizontal||n.mode===ar.both,vertical:n.mode===ar.vertical||n.mode===ar.both,angle:R()*u,speed:U(n.speed)/360},n.backColor)i.backColor=ni(e,n.backColor);else if(n.darken.enable&&n.enlighten.enable){const e=R()>=a?t.AlterType.darken:t.AlterType.enlighten;i.roll.alter={type:e,value:U(e===t.AlterType.darken?n.darken.value:n.enlighten.value)}}else n.darken.enable?i.roll.alter={type:t.AlterType.darken,value:U(n.darken.value)}:n.enlighten.enable&&(i.roll.alter={type:t.AlterType.enlighten,value:U(n.enlighten.value)});else i.roll={enable:!1,horizontal:!1,vertical:!1,angle:0,speed:0}}(this._pluginManager,e)}isEnabled(t){const e=t.options.roll;return!t.destroyed&&!t.spawning&&!!e?.enable}loadOptions(t,...e){t.roll??=new cr;for(const i of e)t.roll.load(i?.roll)}update(t,e){this.isEnabled(t)&&function(t,e){const i=t.options.roll,n=t.roll;if(!n||!i?.enable)return;const s=n.speed*e.factor,o=u;n.angle+=s,n.angle>o&&(n.angle-=o)}(t,e)}}async function hr(t){t.checkVersion("4.0.0"),await t.pluginManager.register(t=>{t.pluginManager.addParticleUpdater("roll",()=>Promise.resolve(new lr(t.pluginManager)))})}class dr{draw(t){!function(t){const{context:e,particle:i,radius:n}=t;i.circleRange??={min:0,max:u};const s=i.circleRange;e.arc(c.x,c.y,n,s.min,s.max,!1)}(t)}getSidesCount(){return 12}particleInit(t,e){const i=e.shapeData,n=i?.angle??{max:360,min:0};e.circleRange=D(n)?{min:Y(n.min),max:Y(n.max)}:{min:0,max:Y(n)}}}async function ur(t){t.checkVersion("4.0.0"),await t.pluginManager.register(t=>{t.pluginManager.addShape(["circle"],()=>Promise.resolve(new dr))})}var pr;!function(t){t[t.r=1]="r",t[t.g=2]="g",t[t.b=3]="b",t[t.a=4]="a"}(pr||(pr={}));const gr=/^#?([a-f\d])([a-f\d])([a-f\d])([a-f\d])?$/i,fr=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})?$/i;class yr{accepts(t){return t.startsWith("#")}handleColor(t){return this._parseString(t.value)}handleRangeColor(t){return this._parseString(t.value)}parseString(t){return this._parseString(t)}_parseString(t){if("string"!=typeof t||!this.accepts(t))return;const e=t.replace(gr,(t,e,i,n,s)=>e+e+i+i+n+n+(void 0===s?"":s+s)),i=fr.exec(e);return i?{a:i[pr.a]?Number.parseInt(i[pr.a],16)/255:1,b:Number.parseInt(i[pr.b]??"0",16),g:Number.parseInt(i[pr.g]??"0",16),r:Number.parseInt(i[pr.r]??"0",16)}:void 0}}async function _r(t){t.checkVersion("4.0.0"),await t.pluginManager.register(t=>{t.pluginManager.addColorManager("hex",new yr)})}var mr;!function(t){t[t.h=1]="h",t[t.s=2]="s",t[t.l=3]="l",t[t.a=5]="a"}(mr||(mr={}));const vr=/hsla?\(\s*(\d+)\s*[\s,]\s*(\d+)%\s*[\s,]\s*(\d+)%\s*([\s,]\s*(0|1|0?\.\d+|(\d{1,3})%)\s*)?\)/i;class wr{accepts(t){return t.startsWith("hsl")}handleColor(t){const e=t.value.hsl??t.value;if("h"in e&&"s"in e&&"l"in e)return ri(e)}handleRangeColor(t){const e=t.value.hsl??t.value;if("h"in e&&"s"in e&&"l"in e)return ri({h:U(e.h),l:U(e.l),s:U(e.s)})}parseString(t){if(!this.accepts(t))return;const e=vr.exec(t);return e?ci({a:e.length>4?st(e[mr.a]):1,h:Number.parseInt(e[mr.h]??"0",10),l:Number.parseInt(e[mr.l]??"0",10),s:Number.parseInt(e[mr.s]??"0",10)}):void 0}}async function br(t){t.checkVersion("4.0.0"),await t.pluginManager.register(t=>{t.pluginManager.addColorManager("hsl",new wr)})}class xr{container;constructor(t){this.container=t}init(t){const e=t.options.opacity;t.opacity=Tt(e,1);const i=e.animation;i.enable&&(t.opacity.velocity=U(i.speed)/o*this.container.retina.reduceFactor,i.sync||(t.opacity.velocity*=R()))}isEnabled(t){return!t.destroyed&&!t.spawning&&!!t.opacity&&t.opacity.enable&&((t.opacity.maxLoops??0)<=0||(t.opacity.maxLoops??0)>0&&(t.opacity.loops??0)<(t.opacity.maxLoops??0))}reset(t){t.opacity&&(t.opacity.time=0,t.opacity.loops=0)}update(t,e){this.isEnabled(t)&&t.opacity&&At(t,t.opacity,!0,t.options.opacity.animation.destroy,e)}}async function Sr(t){t.checkVersion("4.0.0"),await t.pluginManager.register(t=>{t.pluginManager.addParticleUpdater("opacity",t=>Promise.resolve(new xr(t)))})}class Pr{container;modes;_particleBouncePlugins;constructor(e){this.container=e,this.modes=[t.OutMode.bounce,t.OutMode.split],this._particleBouncePlugins=e.plugins.filter(t=>void 0!==t.particleBounce)}update(e,i,n,s){if(!this.modes.includes(s))return;const o=this.container;let a=!1;for(const t of this._particleBouncePlugins)if(a=t.particleBounce?.(e,n,i)??!1,a)break;if(a)return;const r=e.getPosition(),c=e.offset,l=e.getRadius(),h=xt(r,l),d=o.canvas.size;!function(e){if(e.outMode!==t.OutMode.bounce&&e.outMode!==t.OutMode.split||e.direction!==t.OutModeDirection.left&&e.direction!==t.OutModeDirection.right)return;e.bounds.right<0&&e.direction===t.OutModeDirection.left?e.particle.position.x=e.size+e.offset.x:e.bounds.left>e.canvasSize.width&&e.direction===t.OutModeDirection.right&&(e.particle.position.x=e.canvasSize.width-e.size-e.offset.x);const i=e.particle.velocity.x;let n=!1;if(e.direction===t.OutModeDirection.right&&e.bounds.right>=e.canvasSize.width&&i>0||e.direction===t.OutModeDirection.left&&e.bounds.left<=0&&i<0){const t=U(e.particle.options.bounce.horizontal.value);e.particle.velocity.x*=-t,n=!0}if(!n)return;const s=e.offset.x+e.size;e.bounds.right>=e.canvasSize.width&&e.direction===t.OutModeDirection.right?e.particle.position.x=e.canvasSize.width-s:e.bounds.left<=0&&e.direction===t.OutModeDirection.left&&(e.particle.position.x=s),e.outMode===t.OutMode.split&&e.particle.destroy()}({particle:e,outMode:s,direction:i,bounds:h,canvasSize:d,offset:c,size:l}),function(e){if(e.outMode!==t.OutMode.bounce&&e.outMode!==t.OutMode.split||e.direction!==t.OutModeDirection.bottom&&e.direction!==t.OutModeDirection.top)return;e.bounds.bottom<0&&e.direction===t.OutModeDirection.top?e.particle.position.y=e.size+e.offset.y:e.bounds.top>e.canvasSize.height&&e.direction===t.OutModeDirection.bottom&&(e.particle.position.y=e.canvasSize.height-e.size-e.offset.y);const i=e.particle.velocity.y;let n=!1;if(e.direction===t.OutModeDirection.bottom&&e.bounds.bottom>=e.canvasSize.height&&i>0||e.direction===t.OutModeDirection.top&&e.bounds.top<=0&&i<0){const t=U(e.particle.options.bounce.vertical.value);e.particle.velocity.y*=-t,n=!0}if(!n)return;const s=e.offset.y+e.size;e.bounds.bottom>=e.canvasSize.height&&e.direction===t.OutModeDirection.bottom?e.particle.position.y=e.canvasSize.height-s:e.bounds.top<=0&&e.direction===t.OutModeDirection.top&&(e.particle.position.y=s),e.outMode===t.OutMode.split&&e.particle.destroy()}({particle:e,outMode:s,direction:i,bounds:h,canvasSize:d,offset:c,size:l})}}class Mr{container;modes;constructor(e){this.container=e,this.modes=[t.OutMode.destroy]}update(e,i,n,s){if(!this.modes.includes(s))return;const o=this.container;switch(e.outType){case t.ParticleOutType.normal:case t.ParticleOutType.outside:if(wt(e.position,o.canvas.size,c,e.getRadius(),i))return;break;case t.ParticleOutType.inside:{const{dx:t,dy:i}=W(e.position,e.moveCenter),{x:n,y:s}=e.velocity;if(n<0&&t>e.moveCenter.radius||s<0&&i>e.moveCenter.radius||n>=0&&t<-e.moveCenter.radius||s>=0&&i<-e.moveCenter.radius)return;break}}e.destroy(!0)}}class Cr{container;modes;constructor(e){this.container=e,this.modes=[t.OutMode.none]}update(e,i,n,s){if(!this.modes.includes(s))return;if((e.options.move.distance.horizontal&&(i===t.OutModeDirection.left||i===t.OutModeDirection.right))??(e.options.move.distance.vertical&&(i===t.OutModeDirection.top||i===t.OutModeDirection.bottom)))return;const o=e.options.move.gravity,a=this.container,r=a.canvas.size,l=e.getRadius();if(o.enable){const n=e.position;(!o.inverse&&n.y>r.height+l&&i===t.OutModeDirection.bottom||o.inverse&&n.y<-l&&i===t.OutModeDirection.top)&&e.destroy()}else{if(e.velocity.y>0&&e.position.y<=r.height+l||e.velocity.y<0&&e.position.y>=-l||e.velocity.x>0&&e.position.x<=r.width+l||e.velocity.x<0&&e.position.x>=-l)return;wt(e.position,a.canvas.size,c,l,i)||e.destroy()}}}const Or=M.origin;class kr{container;modes;constructor(e){this.container=e,this.modes=[t.OutMode.out]}update(e,i,n,s){if(!this.modes.includes(s))return;const o=this.container;switch(e.outType){case t.ParticleOutType.inside:{const{x:t,y:i}=e.velocity;Or.setTo(c),Or.length=e.moveCenter.radius,Or.angle=e.velocity.angle+Math.PI,Or.addTo(e.moveCenter);const{dx:n,dy:s}=W(e.position,Or);if(t<=0&&n>=0||i<=0&&s>=0||t>=0&&n<=0||i>=0&&s<=0)return;e.position.x=Math.floor(N({min:0,max:o.canvas.size.width})),e.position.y=Math.floor(N({min:0,max:o.canvas.size.height}));const{dx:a,dy:r}=W(e.position,e.moveCenter);e.direction=Math.atan2(-r,-a),e.velocity.angle=e.direction,e.justWarped=!0;break}default:if(wt(e.position,o.canvas.size,c,e.getRadius(),i))return;switch(e.outType){case t.ParticleOutType.outside:{e.position.x=Math.floor(N({min:-e.moveCenter.radius,max:e.moveCenter.radius}))+e.moveCenter.x,e.position.y=Math.floor(N({min:-e.moveCenter.radius,max:e.moveCenter.radius}))+e.moveCenter.y;const{dx:t,dy:i}=W(e.position,e.moveCenter);e.moveCenter.radius&&(e.direction=Math.atan2(i,t),e.velocity.angle=e.direction),e.justWarped=!0;break}case t.ParticleOutType.normal:{const n=e.options.move.warp,s=o.canvas.size,a={bottom:s.height+e.getRadius()+e.offset.y,left:-e.getRadius()-e.offset.x,right:s.width+e.getRadius()+e.offset.x,top:-e.getRadius()-e.offset.y},r=e.getRadius(),c=xt(e.position,r);i===t.OutModeDirection.right&&c.left>s.width+e.offset.x?(e.position.x=a.left,e.initialPosition.x=e.position.x,n||(e.position.y=R()*s.height,e.initialPosition.y=e.position.y),e.justWarped=!0):i===t.OutModeDirection.left&&c.right<-e.offset.x&&(e.position.x=a.right,e.initialPosition.x=e.position.x,n||(e.position.y=R()*s.height,e.initialPosition.y=e.position.y),e.justWarped=!0),i===t.OutModeDirection.bottom&&c.top>s.height+e.offset.y?(n||(e.position.x=R()*s.width,e.initialPosition.x=e.position.x),e.position.y=a.top,e.initialPosition.y=e.position.y,e.justWarped=!0):i===t.OutModeDirection.top&&c.bottom<-e.offset.y&&(n||(e.position.x=R()*s.width,e.initialPosition.x=e.position.x),e.position.y=a.bottom,e.initialPosition.y=e.position.y,e.justWarped=!0);break}}}}}class Tr{updaters;container;constructor(t){this.container=t,this.updaters=new Map}init(e){this._addUpdaterIfMissing(e,t.OutMode.bounce,t=>new Pr(t)),this._addUpdaterIfMissing(e,t.OutMode.out,t=>new kr(t)),this._addUpdaterIfMissing(e,t.OutMode.destroy,t=>new Mr(t)),this._addUpdaterIfMissing(e,t.OutMode.none,t=>new Cr(t))}isEnabled(t){return!t.destroyed&&!t.spawning}update(e,i){const n=e.options.move.outModes;e.justWarped=!1,this._updateOutMode(e,i,n.bottom??n.default,t.OutModeDirection.bottom),this._updateOutMode(e,i,n.left??n.default,t.OutModeDirection.left),this._updateOutMode(e,i,n.right??n.default,t.OutModeDirection.right),this._updateOutMode(e,i,n.top??n.default,t.OutModeDirection.top)}_addUpdaterIfMissing=(t,e,i)=>{const n=t.options.move.outModes;!this.updaters.has(e)&&((t,e)=>t.default===e||t.bottom===e||t.left===e||t.right===e||t.top===e)(n,e)&&this.updaters.set(e,i(this.container))};_updateOutMode=(t,e,i,n)=>{for(const s of this.updaters.values())s.update(t,n,e,i)}}async function Dr(t){t.checkVersion("4.0.0"),await t.pluginManager.register(t=>{t.pluginManager.addParticleUpdater("outModes",t=>Promise.resolve(new Tr(t)))})}class Vr{_container;_pluginManager;constructor(t,e){this._container=e,this._pluginManager=t}init(t){const e=this._container,i=t.options,n=Ot(i.paint,t.id,i.reduceDuplicates),s=n?.color,o=s??void 0,a=n?.fill,r=n?.stroke;if(a){const i=le.create(void 0===o?void 0:le.create(void 0,o),a.color);t.fillEnabled=a.enable,t.fillOpacity=U(a.opacity),t.fillAnimation=i.animation;const n=ni(this._pluginManager,i);n&&(t.fillColor=_i(n,t.fillAnimation,e.retina.reduceFactor))}else t.fillEnabled=!1,t.fillAnimation=void 0,t.fillColor=void 0,t.fillOpacity=1;if(r){const i=le.create(void 0===o?void 0:le.create(void 0,o),r.color);t.strokeWidth=U(r.width)*e.retina.pixelRatio,t.strokeOpacity=U(r.opacity??1),t.strokeAnimation=i.animation;const n=ni(this._pluginManager,i)??t.getFillColor();n&&(t.strokeColor=_i(n,t.strokeAnimation,e.retina.reduceFactor))}else t.strokeAnimation=void 0,t.strokeColor=void 0,t.strokeOpacity=1,t.strokeWidth=0}isEnabled(t){const{fillAnimation:e,fillColor:i,strokeAnimation:n,strokeColor:s}=t,o=!!e&&(void 0!==i?.h.value&&i.h.enable||void 0!==i?.s.value&&i.s.enable||void 0!==i?.l.value&&i.l.enable),a=!!n&&(void 0!==s?.h.value&&s.h.enable||void 0!==s?.s.value&&s.s.enable||void 0!==s?.l.value&&s.l.enable);return!t.destroyed&&!t.spawning&&(o||a)}update(t,e){this.isEnabled(t)&&(wi(t.fillColor,e),wi(t.strokeColor,e))}}async function Ir(t){t.checkVersion("4.0.0"),await t.pluginManager.register(t=>{t.pluginManager.addParticleUpdater("paint",e=>Promise.resolve(new Vr(t.pluginManager,e)))})}var Ar;!function(t){t[t.r=1]="r",t[t.g=2]="g",t[t.b=3]="b",t[t.a=5]="a"}(Ar||(Ar={}));const Er=/rgba?\(\s*(\d{1,3})\s*[\s,]\s*(\d{1,3})\s*[\s,]\s*(\d{1,3})\s*([\s,]\s*(0|1|0?\.\d+|(\d{1,3})%)\s*)?\)/i;class zr{accepts(t){return t.startsWith("rgb")}handleColor(t){const e=t.value.rgb??t.value;if("r"in e&&"g"in e&&"b"in e)return e}handleRangeColor(t){const e=t.value.rgb??t.value;if("r"in e&&"g"in e&&"b"in e)return{r:U(e.r),g:U(e.g),b:U(e.b)}}parseString(t){if(!this.accepts(t))return;const e=Er.exec(t);return e?{a:e.length>4?st(e[Ar.a]):1,b:parseInt(e[Ar.b]??"0",10),g:parseInt(e[Ar.g]??"0",10),r:parseInt(e[Ar.r]??"0",10)}:void 0}}async function Rr(t){t.checkVersion("4.0.0"),await t.pluginManager.register(t=>{t.pluginManager.addColorManager("rgb",new zr)})}class Gr{_container;constructor(t){this._container=t}init(t){const e=this._container,i=t.options.size.animation;i.enable&&(t.size.velocity=t.retina.sizeAnimationSpeed/o*e.retina.reduceFactor,i.sync||(t.size.velocity*=R()))}isEnabled(t){return!t.destroyed&&!t.spawning&&t.size.enable&&((t.size.maxLoops??0)<=0||(t.size.maxLoops??0)>0&&(t.size.loops??0)<(t.size.maxLoops??0))}reset(t){t.size.time=0,t.size.loops=0}update(t,e){this.isEnabled(t)&&At(t,t.size,!0,t.options.size.animation.destroy,e)}}async function Lr(t){t.checkVersion("4.0.0"),await t.pluginManager.register(t=>{t.pluginManager.addParticleUpdater("size",t=>Promise.resolve(new Gr(t)))})}async function Fr(t){t.checkVersion("4.0.0"),await t.pluginManager.register(async t=>{await Promise.all([_r(t),br(t),Rr(t),Ai(t),ur(t),Ir(t),Sr(t),Dr(t),Lr(t)])})}const Hr=new Map;async function Br(t){t.checkVersion("4.0.0"),await t.pluginManager.register(t=>{for(const[e,i]of Hr)t.pluginManager.addEasing(e,i)})}Hr.set(t.EasingType.easeInQuad,t=>t**2),Hr.set(t.EasingType.easeOutQuad,t=>1-(1-t)**2),Hr.set(t.EasingType.easeInOutQuad,t=>t<.5?2*t**2:1-(-2*t+2)**2/2);const Nr=["emoji"];const Ur='"Apple Color Emoji", "Segoe UI Emoji", "Noto Color Emoji", sans-serif';class $r{_emojiShapeDict=new Map;destroy(){for(const[t,e]of this._emojiShapeDict)e instanceof ImageBitmap&&e.close(),this._emojiShapeDict.delete(t)}draw(t){const e=t.particle.emojiDataKey;if(!e)return;const i=this._emojiShapeDict.get(e);i&&function(t,e){const{context:i,opacity:n}=t,s=i.globalAlpha,o=e.width,r=o*a;i.globalAlpha=n,i.drawImage(e,-r,-r,o,o),i.globalAlpha=s}(t,i)}async init(t){const e=t.actualOptions.particles.shape;if(!Nr.some(t=>_t(t,e.type)))return;const i=[vo(Ur)];Ct(Nr.map(t=>e.options[t])[0],t=>{t.font&&i.push(vo(t.font))}),await Promise.all(i)}particleDestroy(t){t.emojiDataKey=void 0}particleInit(t,e){const i=e.shapeData;if(!i.value)return;const n=Ot(i.value,e.randomIndexData);if(!n)return;const s="string"==typeof n?{font:i.font??Ur,padding:i.padding??0,value:n}:{font:Ur,padding:0,...i,...n},o=s.font,a=s.value,r=`${a}_${o}`;if(this._emojiShapeDict.has(r))return void(e.emojiDataKey=r);const c=2*s.padding,l=j(e.size.value),h=l+c,d=2*h,u=new OffscreenCanvas(d,d),p=u.getContext("2d",t.canvas.render.settings);if(!p)return;p.font=`400 ${(2*l).toString()}px ${o}`,p.textBaseline="middle",p.textAlign="center",p.fillText(a,h,h);const g=u instanceof HTMLCanvasElement?u:u.transferToImageBitmap();this._emojiShapeDict.set(r,g),e.emojiDataKey=r}}async function jr(t){t.checkVersion("4.0.0"),await t.pluginManager.register(t=>{t.pluginManager.addShape(Nr,()=>Promise.resolve(new $r))})}const qr=M.origin;function Wr(t,e,i,n,s,o,a){const r=e.actualOptions.interactivity?.modes.attract;if(!r)return;const c=e.particles.grid.query(s,o);for(const e of c){const{dx:s,dy:o,distance:c}=W(e.position,i),l=r.speed*r.factor,h=H(t.getEasing(r.easing)(1-c/n)*l,1,r.maxSpeed);qr.x=c?s/c*h:l,qr.y=c?o/c*h:l,a?.(e),e.position.subFrom(qr)}}let Qr=class{distance;duration;easing;factor;maxSpeed;restore;speed;constructor(){this.distance=200,this.duration=.4,this.easing=t.EasingType.easeOutQuad,this.factor=1,this.maxSpeed=50,this.speed=1,this.restore={enable:!1,delay:0,speed:.08,follow:!0}}load(t){I(t)||(void 0!==t.distance&&(this.distance=t.distance),void 0!==t.duration&&(this.duration=t.duration),void 0!==t.easing&&(this.easing=t.easing),void 0!==t.factor&&(this.factor=t.factor),void 0!==t.maxSpeed&&(this.maxSpeed=t.maxSpeed),void 0!==t.speed&&(this.speed=t.speed),void 0!==t.restore&&(this.restore.enable=t.restore.enable??this.restore.enable,this.restore.delay=t.restore.delay??this.restore.delay,this.restore.speed=t.restore.speed??this.restore.speed,this.restore.follow=t.restore.follow??this.restore.follow))}};const Zr="attract";let Xr=class extends Vs{handleClickMode;_interactedThisFrame;_maxDistance;_pluginManager;_restoreData;constructor(t,e){super(e),this._pluginManager=t,this._maxDistance=0,this._interactedThisFrame=new Set,this._restoreData=new Map,e.attract??={particles:[]},this.handleClickMode=(t,i)=>{const n=this.container.actualOptions,s=n.interactivity?.modes.attract;if(s&&t===Zr){e.attract??={particles:[]},e.attract.clicking=!0,e.attract.count=0;for(const t of e.attract.particles)this.isEnabled(i,t)&&t.velocity.setTo(t.initialVelocity);e.attract.particles=[],e.attract.finish=!1,setTimeout(()=>{e.destroyed||(e.attract??={particles:[]},e.attract.clicking=!1)},s.duration*r)}}}get maxDistance(){return this._maxDistance}clear(){}init(){const t=this.container,e=t.actualOptions.interactivity?.modes.attract;e&&(this._maxDistance=e.distance,t.retina.attractModeDistance=e.distance*t.retina.pixelRatio)}interact(t){this._interactedThisFrame.clear();const e=this.container.actualOptions,i=t.status===Rs,n=e.interactivity?.events;if(!n)return;const{enable:s,mode:o}=n.onHover,{enable:a,mode:r}=n.onClick;i&&s&&_t(Zr,o)?function(t,e,i,n,s){const o=i.mouse.position,a=e.retina.attractModeDistance;!a||a<0||!o||Wr(t,e,o,a,new ie(o.x,o.y,a),t=>n(t),s)}(this._pluginManager,this.container,t,e=>this.isEnabled(t,e),t=>{this._trackInteractedParticle(t)}):a&&_t(Zr,r)&&function(t,e,i,n,s){e.attract??={particles:[]};const{attract:o}=e;if(o.finish||(o.count??=0,o.count++,o.count===e.particles.count&&(o.finish=!0)),o.clicking){const o=i.mouse.clickPosition,a=e.retina.attractModeDistance;if(!a||a<0||!o)return;Wr(t,e,o,a,new ie(o.x,o.y,a),t=>n(t),s)}else!1===o.clicking&&(o.particles=[])}(this._pluginManager,this.container,t,e=>this.isEnabled(t,e),t=>{this._trackInteractedParticle(t)}),this._restoreParticles()}isEnabled(t,e){const i=this.container.actualOptions,n=t.mouse,s=(e?.interactivity??i.interactivity)?.events;if(!(n.position&&s?.onHover.enable||n.clickPosition&&s?.onClick.enable))return!1;const o=s.onHover.mode,a=s.onClick.mode;return _t(Zr,o)||_t(Zr,a)}loadModeOptions(t,...e){t.attract??=new Qr;for(const i of e)t.attract.load(i?.attract)}reset(){}_restoreParticles(){const t=this.container.actualOptions.interactivity?.modes.attract?.restore;if(!t?.enable||!this._restoreData.size)return;const e=Date.now(),i=t.delay*r,n=Math.max(.001,Math.min(1,t.speed));for(const[s,o]of this._restoreData){if(this._interactedThisFrame.has(s))continue;if(s.destroyed){this._restoreData.delete(s);continue}const a=o.target;if(e-o.lastInteractionTime<i)continue;let r=a.x-s.position.x,c=a.y-s.position.y,l=a.z-s.position.z;if(t.follow&&s.options.move.enable){const{x:t,y:e,z:i}=s.velocity,n=t*t+e*e+i*i;if(n>0){const s=(r*t+c*e+l*i)/n;r-=t*s,c-=e*s,l-=i*s}}s.position.x+=r*n,s.position.y+=c*n,s.position.z+=l*n,Math.abs(r)<=.5&&Math.abs(c)<=.5&&(s.position.x=a.x,s.position.y=a.y,s.position.z=a.z,this._restoreData.delete(s))}}_trackInteractedParticle(t){this._interactedThisFrame.add(t);const e=this.container.actualOptions.interactivity?.modes.attract?.restore;if(!e?.enable)return;const i=Date.now();let n=this._restoreData.get(t);n||(n={target:t.position.copy(),lastInteractionTime:i},this._restoreData.set(t,n)),n.lastInteractionTime=i}};async function Yr(t){t.checkVersion("4.0.0"),await t.pluginManager.register(t=>{$s(t),t.pluginManager.addInteractor?.("externalAttract",e=>Promise.resolve(new Xr(t.pluginManager,e)))})}const Kr=Math.PI*a;function Jr(t,e,i,n,s){const o=t.particles.grid.query(n,s);for(const t of o)n instanceof ie?Mt(Pt(t),{position:e,mass:i**2*Kr,velocity:M.origin,factor:M.origin}):n instanceof ne&&ic(t,xt(e,i))}function tc(t,e,i,n){Ns(i,e,(e,i)=>{!function(t,e,i,n){const s=pt().querySelectorAll(e);s.length&&s.forEach(e=>{const s=e,o=t.retina.pixelRatio,r={x:(s.offsetLeft+s.offsetWidth*a)*o,y:(s.offsetTop+s.offsetHeight*a)*o},c=s.offsetWidth*a*o,l=10*o,h=i.type===xs.circle?new ie(r.x,r.y,c+l):new ne(s.offsetLeft*o-l,s.offsetTop*o-l,s.offsetWidth*o+2*l,s.offsetHeight*o+2*l);n(r,c,h)})}(t,e,i,(e,i,s)=>{Jr(t,e,i,s,n)})})}function ec(t){const e={bounced:!1},{pSide:i,pOtherSide:n,rectSide:s,rectOtherSide:o,velocity:r,factor:c}=t;return n.min<o.min||n.min>o.max||n.max<o.min||n.max>o.max||(i.max>=s.min&&i.max<=(s.max+s.min)*a&&r>0||i.min<=s.max&&i.min>(s.max+s.min)*a&&r<0)&&(e.velocity=r*-c,e.bounced=!0),e}function ic(t,e){const i=xt(t.getPosition(),t.getRadius()),n=t.options.bounce,s=ec({pSide:{min:i.left,max:i.right},pOtherSide:{min:i.top,max:i.bottom},rectSide:{min:e.left,max:e.right},rectOtherSide:{min:e.top,max:e.bottom},velocity:t.velocity.x,factor:U(n.horizontal.value)});s.bounced&&(void 0!==s.velocity&&(t.velocity.x=s.velocity),void 0!==s.position&&(t.position.x=s.position));const o=ec({pSide:{min:i.top,max:i.bottom},pOtherSide:{min:i.left,max:i.right},rectSide:{min:e.top,max:e.bottom},rectOtherSide:{min:e.left,max:e.right},velocity:t.velocity.y,factor:U(n.vertical.value)});o.bounced&&(void 0!==o.velocity&&(t.velocity.y=o.velocity),void 0!==o.position&&(t.position.y=o.position))}class nc{distance;constructor(){this.distance=200}load(t){I(t)||void 0!==t.distance&&(this.distance=t.distance)}}const sc="bounce";class oc extends Vs{_maxDistance;constructor(t){super(t),this._maxDistance=0}get maxDistance(){return this._maxDistance}clear(){}init(){const t=this.container,e=t.actualOptions.interactivity?.modes.bounce;e&&(this._maxDistance=e.distance,t.retina.bounceModeDistance=e.distance*t.retina.pixelRatio)}interact(t){const e=this.container.actualOptions,i=e.interactivity?.events,n=t.status===Rs;if(!i)return;const s=i.onHover.enable,o=i.onHover.mode,a=i.onDiv;n&&s&&_t(sc,o)?function(t,e,i){const n=10*t.retina.pixelRatio,s=e.mouse.position,o=t.retina.bounceModeDistance;!o||o<0||!s||Jr(t,s,o,new ie(s.x,s.y,o+n),i)}(this.container,t,e=>this.isEnabled(t,e)):tc(this.container,a,sc,e=>this.isEnabled(t,e))}isEnabled(t,e){const i=this.container.actualOptions,n=t.mouse,s=(e?.interactivity??i.interactivity)?.events;if(!s)return!1;const o=s.onDiv;return!!n.position&&s.onHover.enable&&_t(sc,s.onHover.mode)||Bs(sc,o)}loadModeOptions(t,...e){t.bounce??=new nc;for(const i of e)t.bounce.load(i?.bounce)}reset(){}}async function ac(t){t.checkVersion("4.0.0"),await t.pluginManager.register(t=>{$s(t),t.pluginManager.addInteractor?.("externalBounce",t=>Promise.resolve(new oc(t)))})}class rc{color;distance;duration;mix;opacity;size;constructor(){this.distance=200,this.duration=.4,this.mix=!1}load(t){if(!I(t)){if(void 0!==t.distance&&(this.distance=t.distance),void 0!==t.duration&&(this.duration=t.duration),void 0!==t.mix&&(this.mix=t.mix),void 0!==t.opacity&&(this.opacity=t.opacity),void 0!==t.color){const e=V(this.color)?void 0:this.color;this.color=Ct(t.color,t=>ce.create(e,t))}void 0!==t.size&&(this.size=t.size)}}}class cc extends rc{selectors;constructor(){super(),this.selectors=[]}load(t){super.load(t),I(t)||void 0!==t.selectors&&(this.selectors=t.selectors)}}class lc extends rc{divs;load(t){super.load(t),I(t)||(this.divs=Ct(t.divs,t=>{const e=new cc;return e.load(t),e}))}}var hc;function dc(t,e,i,n){if(e>=i){return H(t+(e-i)*n,t,e)}if(e<i){return H(t-(i-e)*n,e,t)}}!function(t){t.color="color",t.opacity="opacity",t.size="size"}(hc||(hc={}));const uc="bubble";class pc extends Vs{handleClickMode;_maxDistance;_pluginManager;constructor(t,e){super(e),this._pluginManager=t,this._maxDistance=0,e.bubble??={},this.handleClickMode=t=>{t===uc&&(e.bubble??={},e.bubble.clicking=!0)}}get maxDistance(){return this._maxDistance}clear(t,e,i){t.bubble.inRange&&!i||(delete t.bubble.div,delete t.bubble.opacity,delete t.bubble.radius,delete t.bubble.color)}init(){const t=this.container,e=t.actualOptions.interactivity?.modes.bubble;e&&(this._maxDistance=e.distance,t.retina.bubbleModeDistance=e.distance*t.retina.pixelRatio,void 0!==e.size&&(t.retina.bubbleModeSize=e.size*t.retina.pixelRatio))}interact(t,e){const i=this.container.actualOptions,n=i.interactivity?.events;if(!n)return;const s=n.onHover,o=n.onClick,a=s.enable,r=s.mode,c=o.enable,l=o.mode,h=n.onDiv;a&&_t(uc,r)?this._hoverBubble(t):c&&_t(uc,l)?this._clickBubble(t):Ns(uc,h,(i,n)=>{this._singleSelectorHover(t,e,i,n)})}isEnabled(t,e){const i=this.container.actualOptions,n=t.mouse,s=(e?.interactivity??i.interactivity)?.events;if(!s)return!1;const{onClick:o,onDiv:a,onHover:r}=s,c=Bs(uc,a);return!!(c||r.enable&&n.position||o.enable&&n.clickPosition)&&(_t(uc,r.mode)||_t(uc,o.mode)||c)}loadModeOptions(t,...e){t.bubble??=new lc;for(const i of e)t.bubble.load(i?.bubble)}reset(t,e){e.bubble.inRange=!1}_clickBubble=t=>{const e=this.container,i=e.actualOptions,n=t.mouse.clickPosition,s=i.interactivity?.modes.bubble;if(!s||!n)return;e.bubble??={};const o=e.retina.bubbleModeDistance;if(!o||o<0)return;const a=e.particles.grid.queryCircle(n,o,e=>this.isEnabled(t,e)),{bubble:c}=e;for(const i of a){if(!c.clicking)continue;i.bubble.inRange=!c.durationEnd;const a=Z(i.getPosition(),n),l=(performance.now()-(t.mouse.clickTime??0))/r;l>s.duration&&(c.durationEnd=!0),l>2*s.duration&&(c.clicking=!1,c.durationEnd=!1);const h={bubbleObj:{optValue:e.retina.bubbleModeSize,value:i.bubble.radius},particlesObj:{optValue:j(i.options.size.value)*e.retina.pixelRatio,value:i.size.value},type:hc.size};this._process(i,a,l,h);const d={bubbleObj:{optValue:s.opacity,value:i.bubble.opacity},particlesObj:{optValue:j(i.options.opacity.value),value:i.opacity?.value??1},type:hc.opacity};this._process(i,a,l,d),!c.durationEnd&&a<=o?this._hoverBubbleColor(i,a):delete i.bubble.color}};_hoverBubble=t=>{const e=this.container,i=t.mouse.position,n=e.retina.bubbleModeDistance;if(!n||n<0||!i)return;const s=e.particles.grid.queryCircle(i,n,e=>this.isEnabled(t,e));for(const e of s){e.bubble.inRange=!0;const s=Z(e.getPosition(),i),o=1-s/n;s<=n?o>=0&&t.status===Rs&&(this._hoverBubbleSize(e,o),this._hoverBubbleOpacity(e,o),this._hoverBubbleColor(e,o)):this.reset(t,e),t.status===zs&&this.reset(t,e)}};_hoverBubbleColor=(t,e,i)=>{const n=this.container.actualOptions,s=i??n.interactivity?.modes.bubble;if(s){if(!t.bubble.finalColor){const e=s.color;if(!e)return;const i=Ot(e);t.bubble.finalColor=ni(this._pluginManager,i)}if(t.bubble.finalColor)if(s.mix){t.bubble.color=void 0;const i=t.getFillColor();t.bubble.color=i?si(pi(i,t.bubble.finalColor,1-e,e)):t.bubble.finalColor}else t.bubble.color=t.bubble.finalColor}};_hoverBubbleOpacity=(t,e,i)=>{const n=this.container.actualOptions,s=i?.opacity??n.interactivity?.modes.bubble?.opacity;if(!s)return;const o=t.options.opacity.value,a=dc(t.opacity?.value??1,s,j(o),e);void 0!==a&&(t.bubble.opacity=a)};_hoverBubbleSize=(t,e,i)=>{const n=this.container,s=i?.size?i.size*n.retina.pixelRatio:n.retina.bubbleModeSize;if(void 0===s)return;const o=j(t.options.size.value)*n.retina.pixelRatio,a=dc(t.size.value,s,o,e);void 0!==a&&(t.bubble.radius=a)};_process=(t,e,i,n)=>{const s=this.container,o=n.bubbleObj.optValue,a=s.actualOptions,r=a.interactivity?.modes.bubble;if(!r||void 0===o)return;const c=r.duration,l=s.retina.bubbleModeDistance,h=n.particlesObj.optValue,d=n.bubbleObj.value,u=n.particlesObj.value??0,p=n.type;if(l&&!(l<0)&&o!==h)if(s.bubble??={},s.bubble.durationEnd)d&&(p===hc.size&&delete t.bubble.radius,p===hc.opacity&&delete t.bubble.opacity);else if(e<=l){if((d??u)!==o){const e=u-i*(u-o)/c;p===hc.size&&(t.bubble.radius=e),p===hc.opacity&&(t.bubble.opacity=e)}}else p===hc.size&&delete t.bubble.radius,p===hc.opacity&&delete t.bubble.opacity};_singleSelectorHover=(t,e,i,n)=>{const s=this.container,o=pt().querySelectorAll(i),r=s.actualOptions.interactivity?.modes.bubble;r&&o.length&&o.forEach(i=>{const o=i,c=s.retina.pixelRatio,l={x:(o.offsetLeft+o.offsetWidth*a)*c,y:(o.offsetTop+o.offsetHeight*a)*c},h=o.offsetWidth*a*c,d=n.type===xs.circle?new ie(l.x,l.y,h):new ne(o.offsetLeft*c,o.offsetTop*c,o.offsetWidth*c,o.offsetHeight*c),u=s.particles.grid.query(d,e=>this.isEnabled(t,e));for(const t of u){if(!d.contains(t.getPosition()))continue;t.bubble.inRange=!0;const i=Us(r.divs,o);t.bubble.div&&t.bubble.div===o||(this.clear(t,e,!0),t.bubble.div=o),this._hoverBubbleSize(t,1,i),this._hoverBubbleOpacity(t,1,i),this._hoverBubbleColor(t,1,i)}})}}async function gc(t){t.checkVersion("4.0.0"),await t.pluginManager.register(t=>{$s(t),t.pluginManager.addInteractor?.("externalBubble",e=>Promise.resolve(new pc(t.pluginManager,e)))})}class fc{opacity;constructor(){this.opacity=.5}load(t){I(t)||void 0!==t.opacity&&(this.opacity=t.opacity)}}class yc{distance;links;radius;constructor(){this.distance=80,this.links=new fc,this.radius=60}load(t){I(t)||(void 0!==t.distance&&(this.distance=t.distance),this.links.load(t.links),void 0!==t.radius&&(this.radius=t.radius))}}function _c(t,e,i,n){const s=t.actualOptions,o=s.interactivity?.modes.connect;if(o)return function(t,e,i,n,s){const o=Math.floor(n.getRadius()/i.getRadius()),a=i.getFillColor(),r=n.getFillColor();if(!a||!r)return;const c=i.getPosition(),l=n.getPosition(),h=pi(a,r,i.getRadius(),n.getRadius()),d=e.createLinearGradient(c.x,c.y,l.x,l.y);return d.addColorStop(0,ui(a,t.hdr,s)),d.addColorStop(H(o,0,1),hi(h,t.hdr,s)),d.addColorStop(1,ui(r,t.hdr,s)),d}(t,e,i,n,o.links.opacity)}function mc(t,e,i){t.canvas.render.draw(n=>{const s=_c(t,n,e,i);if(!s)return;const o=e.getPosition(),a=i.getPosition();!function(t,e,i,n,s){fo(t,n,s),t.lineWidth=e,t.strokeStyle=i,t.stroke()}(n,e.retina.linksWidth??0,s,o,a)})}class vc extends Vs{_maxDistance;constructor(t){super(t),this._maxDistance=0}get maxDistance(){return this._maxDistance}clear(){}init(){const t=this.container,e=t.actualOptions.interactivity?.modes.connect;e&&(this._maxDistance=e.distance,t.retina.connectModeDistance=e.distance*t.retina.pixelRatio,t.retina.connectModeRadius=e.radius*t.retina.pixelRatio)}interact(t){const e=this.container,i=e.actualOptions;if(i.interactivity?.events.onHover.enable&&"pointermove"===t.status){const i=t.mouse.position,{connectModeDistance:n,connectModeRadius:s}=e.retina;if(!n||n<0||!s||s<0||!i)return;const o=Math.abs(s),a=e.particles.grid.queryCircle(i,o,e=>this.isEnabled(t,e));a.forEach((t,i)=>{const s=t.getPosition();for(const o of a.slice(i+1)){const i=o.getPosition(),a=Math.abs(n),r=Math.abs(s.x-i.x),c=Math.abs(s.y-i.y);r<a&&c<a&&mc(e,t,o)}})}}isEnabled(t,e){const i=this.container,n=t.mouse,s=(e?.interactivity??i.actualOptions.interactivity)?.events;return!(!s?.onHover.enable||!n.position)&&_t("connect",s.onHover.mode)}loadModeOptions(t,...e){t.connect??=new yc;for(const i of e)t.connect.load(i?.connect)}reset(){}}async function wc(t){t.checkVersion("4.0.0"),await t.pluginManager.register(t=>{$s(t),t.pluginManager.addInteractor?.("externalConnect",t=>Promise.resolve(new vc(t)))})}function bc(t,e){const i=t.particles.grid.query(e);for(const t of i)t.destroy()}function xc(t,e,i){Ns(i,e,(e,i)=>{!function(t,e,i){const n=pt().querySelectorAll(e);n.length&&n.forEach(e=>{const n=e,s=t.retina.pixelRatio,o={x:(n.offsetLeft+.5*n.offsetWidth)*s,y:(n.offsetTop+.5*n.offsetHeight)*s},a=.5*n.offsetWidth*s,r=10*s,c=i.type===xs.circle?new ie(o.x,o.y,a+r):new ne(n.offsetLeft*s-r,n.offsetTop*s-r,n.offsetWidth*s+2*r,n.offsetHeight*s+2*r);bc(t,c)})}(t,e,i)})}class Sc{distance;constructor(){this.distance=200}load(t){I(t)||void 0!==t.distance&&(this.distance=t.distance)}}const Pc="destroy";class Mc extends Vs{_maxDistance;constructor(t){super(t),this._maxDistance=0}get maxDistance(){return this._maxDistance}clear(){}init(){const t=this.container,e=t.actualOptions.interactivity?.modes.destroy;e&&(this._maxDistance=e.distance,t.retina.destroyModeDistance=e.distance*t.retina.pixelRatio)}interact(t){const e=this.container.actualOptions,i=e.interactivity?.events,n=t.status===Rs;if(!i)return;const s=i.onHover.enable,o=i.onHover.mode,a=i.onDiv;n&&s&&_t(Pc,o)?function(t,e){const i=10*t.retina.pixelRatio,n=e.mouse.position,s=t.retina.destroyModeDistance;!s||s<0||!n||bc(t,new ie(n.x,n.y,s+i))}(this.container,t):xc(this.container,a,Pc)}isEnabled(t,e){const i=this.container.actualOptions,n=t.mouse,s=(e?.interactivity??i.interactivity)?.events;if(!s)return!1;const o=s.onDiv;return!!n.position&&s.onHover.enable&&_t(Pc,s.onHover.mode)||Bs(Pc,o)}loadModeOptions(t,...e){t.destroy??=new Sc;for(const i of e)t.destroy.load(i?.destroy)}reset(){}}async function Cc(t){t.checkVersion("4.0.0"),await t.pluginManager.register(t=>{$s(t),t.pluginManager.addInteractor?.("externalDestroy",async t=>Promise.resolve(new Mc(t)))})}class Oc{blink;color;consent;opacity;constructor(){this.blink=!1,this.consent=!1,this.opacity=1}load(t){I(t)||(void 0!==t.blink&&(this.blink=t.blink),void 0!==t.color&&(this.color=ce.create(this.color,t.color)),void 0!==t.consent&&(this.consent=t.consent),void 0!==t.opacity&&(this.opacity=t.opacity))}}class kc{distance;links;constructor(){this.distance=100,this.links=new Oc}load(t){I(t)||(void 0!==t.distance&&(this.distance=t.distance),this.links.load(t.links))}}function Tc(t,e,i,n,s){t.canvas.render.draw(o=>{const a=e.getPosition();!function(t,e,i,n,s,o,a=!1){fo(t,i,n),t.strokeStyle=hi(s,a,o),t.lineWidth=e,t.stroke()}(o,e.retina.linksWidth??0,a,s,i,n,t.hdr)})}class Dc extends Vs{_maxDistance;_pluginManager;constructor(t,e){super(e),this._pluginManager=t,this._maxDistance=0}get maxDistance(){return this._maxDistance}clear(){}init(){const t=this.container,e=t.actualOptions.interactivity?.modes.grab;e&&(this._maxDistance=e.distance,t.retina.grabModeDistance=e.distance*t.retina.pixelRatio)}interact(t){const e=this.container,i=e.actualOptions.interactivity;if(!i?.modes.grab||!i.events.onHover.enable||t.status!==Rs)return;const n=t.mouse.position;if(!n)return;const s=e.retina.grabModeDistance;if(!s||s<0)return;const o=e.particles.grid.queryCircle(n,s,e=>this.isEnabled(t,e));for(const t of o){const o=Z(t.getPosition(),n);if(o>s)continue;const a=i.modes.grab.links,r=a.opacity,c=r-o*r/s;if(c<=0)continue;const l=a.color??t.options.links?.color;if(!e.particles.grabLineColor&&l){const t=i.modes.grab.links;e.particles.grabLineColor=fi(this._pluginManager,l,t.blink,t.consent)}const h=gi(t,void 0,e.particles.grabLineColor);h&&Tc(e,t,h,c,n)}}isEnabled(t,e){const i=this.container,n=t.mouse,s=(e?.interactivity??i.actualOptions.interactivity)?.events;return!!s?.onHover.enable&&!!n.position&&_t("grab",s.onHover.mode)}loadModeOptions(t,...e){t.grab??=new kc;for(const i of e)t.grab.load(i?.grab)}reset(){}}async function Vc(t){t.checkVersion("4.0.0"),await t.pluginManager.register(t=>{$s(t),t.pluginManager.addInteractor?.("externalGrab",e=>Promise.resolve(new Dc(t.pluginManager,e)))})}class Ic{force;smooth;constructor(){this.force=2,this.smooth=10}load(t){I(t)||(void 0!==t.force&&(this.force=t.force),void 0!==t.smooth&&(this.smooth=t.smooth))}}class Ac extends Vs{maxDistance=0;constructor(t){super(t)}clear(){}init(){}interact(t){for(const e of this.container.particles.filter(e=>this.isEnabled(t,e)))this._parallaxInteract(t,e)}isEnabled(t,e){const i=this.container,n=t.mouse,s=(e?.interactivity??i.actualOptions.interactivity)?.events;return!!s?.onHover.enable&&!!n.position&&_t("parallax",s.onHover.mode)}loadModeOptions(t,...e){t.parallax??=new Ic;for(const i of e)t.parallax.load(i?.parallax)}reset(){}_parallaxInteract(t,e){if(!this.isEnabled(t,e))return;const i=this.container,n=i.actualOptions,s=n.interactivity?.modes.parallax;if(!s)return;const o=s.force,r=t.mouse.position;if(!r)return;const c=i.canvas.size,l=c.width*a,h=c.height*a,d=s.smooth,u=e.getRadius()/o,p=(r.x-l)*u,g=(r.y-h)*u,{offset:f}=e;f.x+=(p-f.x)/d,f.y+=(g-f.y)/d}}async function Ec(t){t.checkVersion("4.0.0"),await t.pluginManager.register(t=>{$s(t),t.pluginManager.addInteractor?.("externalParallax",t=>Promise.resolve(new Ac(t)))})}const zc="pause";class Rc extends Vs{handleClickMode;maxDistance=0;constructor(t){super(t),this.handleClickMode=t=>{if(t!==zc)return;const e=this.container;e.animationStatus?e.pause():e.play()}}clear(){}init(){}interact(){}isEnabled(t,e){const i=this.container.actualOptions,n=(e?.interactivity??i.interactivity)?.events;return!!n&&_t(zc,n.onClick.mode)}reset(){}}async function Gc(t){t.checkVersion("4.0.0"),await t.pluginManager.register(t=>{$s(t),t.pluginManager.addInteractor?.("externalPause",t=>Promise.resolve(new Rc(t)))})}class Lc{default;groups;particles;quantity;constructor(){this.default=!0,this.groups=[],this.quantity=4}load(t){if(I(t))return;void 0!==t.default&&(this.default=t.default),void 0!==t.groups&&(this.groups=t.groups.map(t=>t)),this.groups.length||(this.default=!0);const e=t.quantity;void 0!==e&&(this.quantity=q(e)),this.particles=Ct(t.particles,t=>St({},t))}}const Fc="push";class Hc extends Vs{handleClickMode;maxDistance=0;constructor(t){super(t),this.handleClickMode=(t,e)=>{if(t!==Fc)return;const i=this.container,n=i.actualOptions,s=n.interactivity?.modes.push;if(!s)return;const o=U(s.quantity);if(o<=0)return;const a=vt([void 0,...s.groups]),r=St(void 0!==a?i.actualOptions.particles.groups[a]:void 0,Ot(s.particles));i.particles.push(o,e.mouse.position,r,a)}}clear(){}init(){}interact(){}isEnabled(t,e){const i=this.container.actualOptions,n=t.mouse,s=(e?.interactivity??i.interactivity)?.events;return!!s&&n.clicking&&n.inside&&!!n.position&&_t(Fc,s.onClick.mode)}loadModeOptions(t,...e){t.push??=new Lc;for(const i of e)t.push.load(i?.push)}reset(){}}async function Bc(t){t.checkVersion("4.0.0"),await t.pluginManager.register(t=>{$s(t),t.pluginManager.addInteractor?.("externalPush",t=>Promise.resolve(new Hc(t)))})}class Nc{quantity;constructor(){this.quantity=2}load(t){if(I(t))return;const e=t.quantity;void 0!==e&&(this.quantity=q(e))}}const Uc="remove";class $c extends Vs{handleClickMode;maxDistance=0;constructor(t){super(t),this.handleClickMode=t=>{const e=this.container,i=e.actualOptions;if(!i.interactivity?.modes.remove||t!==Uc)return;const n=U(i.interactivity.modes.remove.quantity);for(let t=0;t<n;t++)e.particles.get(t)?.destroy()}}clear(){}init(){}interact(){}isEnabled(t,e){const i=this.container.actualOptions,n=t.mouse,s=(e?.interactivity??i.interactivity)?.events;return!!s&&n.clicking&&n.inside&&!!n.position&&_t(Uc,s.onClick.mode)}loadModeOptions(t,...e){t.remove??=new Nc;for(const i of e)t.remove.load(i?.remove)}reset(){}}async function jc(t){t.checkVersion("4.0.0"),await t.pluginManager.register(t=>{$s(t),t.pluginManager.addInteractor?.("externalRemove",t=>Promise.resolve(new $c(t)))})}class qc{distance;duration;easing;factor;maxSpeed;restore;speed;constructor(){this.distance=200,this.duration=.4,this.factor=100,this.speed=1,this.maxSpeed=50,this.easing=t.EasingType.easeOutQuad,this.restore={enable:!1,delay:0,speed:.08,follow:!0}}load(t){I(t)||(void 0!==t.distance&&(this.distance=t.distance),void 0!==t.duration&&(this.duration=t.duration),void 0!==t.easing&&(this.easing=t.easing),void 0!==t.factor&&(this.factor=t.factor),void 0!==t.speed&&(this.speed=t.speed),void 0!==t.maxSpeed&&(this.maxSpeed=t.maxSpeed),void 0!==t.restore&&(this.restore.enable=t.restore.enable??this.restore.enable,this.restore.delay=t.restore.delay??this.restore.delay,this.restore.speed=t.restore.speed??this.restore.speed,this.restore.follow=t.restore.follow??this.restore.follow))}}class Wc extends qc{selectors;constructor(){super(),this.selectors=[]}load(t){super.load(t),I(t)||void 0!==t.selectors&&(this.selectors=t.selectors)}}class Qc extends qc{divs;load(t){super.load(t),I(t)||(this.divs=Ct(t.divs,t=>{const e=new Wc;return e.load(t),e}))}}const Zc="repulse";let Xc=class extends Vs{handleClickMode;_clickVec;_interactedThisFrame;_maxDistance;_normVec;_pluginManager;_restoreData;constructor(t,e){super(e),this._pluginManager=t,this._maxDistance=0,this._normVec=M.origin,this._interactedThisFrame=new Set,this._clickVec=M.origin,this._restoreData=new Map,e.repulse??={particles:[]},this.handleClickMode=(t,i)=>{const n=this.container.actualOptions,s=n.interactivity?.modes.repulse;if(!s||t!==Zc)return;e.repulse??={particles:[]};const o=e.repulse;o.clicking=!0,o.count=0;for(const t of e.repulse.particles)this.isEnabled(i,t)&&t.velocity.setTo(t.initialVelocity);o.particles=[],o.finish=!1,setTimeout(()=>{e.destroyed||(o.clicking=!1)},s.duration*r)}}get maxDistance(){return this._maxDistance}clear(){}init(){const t=this.container,e=t.actualOptions.interactivity?.modes.repulse;e&&(this._maxDistance=e.distance,t.retina.repulseModeDistance=e.distance*t.retina.pixelRatio)}interact(t){this._interactedThisFrame.clear();const e=this.container.actualOptions,i=t.status===Rs,n=e.interactivity?.events;if(!n)return;const s=n.onHover,o=s.enable,a=s.mode,r=n.onClick,c=r.enable,l=r.mode,h=n.onDiv;i&&o&&_t(Zc,a)?this._hoverRepulse(t):c&&_t(Zc,l)?this._clickRepulse(t):Ns(Zc,h,(e,i)=>{this._singleSelectorRepulse(t,e,i)}),this._restoreParticles()}isEnabled(t,e){const i=this.container.actualOptions,n=t.mouse,s=(e?.interactivity??i.interactivity)?.events;if(!s)return!1;const o=s.onDiv,a=s.onHover,r=s.onClick,c=Bs(Zc,o);if(!(c||a.enable&&n.position||r.enable&&n.clickPosition))return!1;const l=a.mode,h=r.mode;return _t(Zc,l)||_t(Zc,h)||c}loadModeOptions(t,...e){t.repulse??=new Qc;for(const i of e)t.repulse.load(i?.repulse)}reset(){}_clickRepulse=t=>{const e=this.container,i=e.actualOptions.interactivity?.modes.repulse;if(!i)return;const n=e.repulse??{particles:[]};if(n.finish||(n.count??=0,n.count++,n.count===e.particles.count&&(n.finish=!0)),n.clicking){const s=e.retina.repulseModeDistance;if(!s||s<0)return;const o=Math.pow(s/6,3),a=t.mouse.clickPosition;if(void 0===a)return;const r=new ie(a.x,a.y,o),c=e.particles.grid.query(r,e=>this.isEnabled(t,e));for(const t of c){const{dx:e,dy:s,distance:r}=W(a,t.position),c=r**2,l=-o*i.speed/c;c<=o&&(this._trackInteractedParticle(t),n.particles.push(t),this._clickVec.x=e,this._clickVec.y=s,this._clickVec.length=l,t.velocity.setTo(this._clickVec))}}else if(!1===n.clicking){for(const t of n.particles)t.velocity.setTo(t.initialVelocity);n.particles=[]}};_hoverRepulse=t=>{const e=this.container,i=t.mouse.position,n=e.retina.repulseModeDistance;!n||n<0||!i||this._processRepulse(t,i,n,new ie(i.x,i.y,n))};_processRepulse=(t,e,i,n,s)=>{const o=this.container,a=o.particles.grid.query(n,e=>this.isEnabled(t,e)),r=o.actualOptions.interactivity?.modes.repulse;if(!r)return;const{easing:c,speed:l,factor:h,maxSpeed:d}=r,u=this._pluginManager.getEasing(c),p=(s?.speed??l)*h;for(const t of a){const{dx:n,dy:s,distance:o}=W(t.position,e),a=H(u(1-o/i)*p,0,d);this._normVec.x=o?n/o*a:p,this._normVec.y=o?s/o*a:p,this._trackInteractedParticle(t),t.position.addTo(this._normVec)}};_restoreParticles(){const t=this.container.actualOptions.interactivity?.modes.repulse?.restore;if(!t?.enable||!this._restoreData.size)return;const e=Date.now(),i=t.delay*r,n=Math.max(.001,Math.min(1,t.speed));for(const[s,o]of this._restoreData){if(this._interactedThisFrame.has(s))continue;if(s.destroyed){this._restoreData.delete(s);continue}const a=o.target;if(e-o.lastInteractionTime<i)continue;t.follow&&s.options.move.enable&&(a.x+=s.velocity.x,a.y+=s.velocity.y,a.z+=s.velocity.z);const r=a.x-s.position.x,c=a.y-s.position.y,l=a.z-s.position.z;s.position.x+=r*n,s.position.y+=c*n,s.position.z+=l*n,Math.abs(r)<=.5&&Math.abs(c)<=.5&&(s.position.x=a.x,s.position.y=a.y,s.position.z=a.z,this._restoreData.delete(s))}}_singleSelectorRepulse=(t,e,i)=>{const n=this.container,s=n.actualOptions.interactivity?.modes.repulse;if(!s)return;const o=pt().querySelectorAll(e);o.length&&o.forEach(e=>{const o=e,r=n.retina.pixelRatio,c={x:(o.offsetLeft+o.offsetWidth*a)*r,y:(o.offsetTop+o.offsetHeight*a)*r},l=o.offsetWidth*a*r,h=i.type===xs.circle?new ie(c.x,c.y,l):new ne(o.offsetLeft*r,o.offsetTop*r,o.offsetWidth*r,o.offsetHeight*r),d=Us(s.divs,o);this._processRepulse(t,c,l,h,d)})};_trackInteractedParticle(t){this._interactedThisFrame.add(t);const e=this.container.actualOptions.interactivity?.modes.repulse?.restore;if(!e?.enable)return;const i=Date.now();let n=this._restoreData.get(t);n||(n={target:t.position.copy(),lastInteractionTime:i},this._restoreData.set(t,n)),n.lastInteractionTime=i,e.follow&&t.options.move.enable&&(n.target.x+=t.velocity.x,n.target.y+=t.velocity.y,n.target.z+=t.velocity.z)}};async function Yc(t){t.checkVersion("4.0.0"),await t.pluginManager.register(t=>{$s(t);const e=t.pluginManager;e.addInteractor?.("externalRepulse",t=>Promise.resolve(new Xc(e,t)))})}class Kc{factor;radius;constructor(){this.factor=3,this.radius=200}load(t){I(t)||(void 0!==t.factor&&(this.factor=t.factor),void 0!==t.radius&&(this.radius=t.radius))}}class Jc extends Vs{_maxDistance;constructor(t){super(t),this._maxDistance=0}get maxDistance(){return this._maxDistance}clear(t,e,i){t.slow.inRange&&!i||(t.slow.factor=1)}init(){const t=this.container,e=t.actualOptions.interactivity?.modes.slow;e&&(this._maxDistance=e.radius,t.retina.slowModeRadius=e.radius*t.retina.pixelRatio)}interact(){}isEnabled(t,e){const i=this.container,n=t.mouse,s=(e?.interactivity??i.actualOptions.interactivity)?.events;return!!s?.onHover.enable&&!!n.position&&_t("slow",s.onHover.mode)}loadModeOptions(t,...e){t.slow??=new Kc;for(const i of e)t.slow.load(i?.slow)}reset(t,e){e.slow.inRange=!1;const i=this.container,n=i.actualOptions,s=t.mouse.position,o=i.retina.slowModeRadius,a=n.interactivity?.modes.slow;if(!a||!o||o<0||!s)return;const r=Z(s,e.getPosition()),c=r/o,l=a.factor,{slow:h}=e;r>o||(h.inRange=!0,h.factor=c/l)}}async function tl(t){t.checkVersion("4.0.0"),await t.pluginManager.register(t=>{$s(t),t.pluginManager.addInteractor?.("externalSlow",t=>Promise.resolve(new Jc(t)))})}const el=["image","images"],il=/(#(?:[0-9a-f]{2}){2,4}|(#[0-9a-f]{3})|(rgb|hsl)a?\((-?\d+%?[,\s]+){2,3}\s*[\d.]+%?\))|currentcolor/gi;async function nl(t){return new Promise(e=>{t.loading=!0;const i=new Image;t.element=i,i.addEventListener("load",()=>{t.loading=!1,e()}),i.addEventListener("error",()=>{t.element=void 0,t.error=!0,t.loading=!1,$t().error(`Error loading image: ${t.source}`),e()}),i.src=t.source})}async function sl(t){if("svg"!==t.type)return void await nl(t);t.loading=!0;const e=await fetch(t.source);e.ok?t.svgData=await e.text():($t().error("Image not found"),t.error=!0),t.loading=!1}function ol(t,e,i,n,s=!1){const o=function(t,e,i,n=!1){const{svgData:s}=t;if(!s)return"";const o=ui(e,n,i);if(s.includes("fill"))return s.replaceAll(il,()=>o);const a=s.indexOf(">");return`${s.substring(0,a)} fill="${o}"${s.substring(a)}`}(t,i,n.opacity?.value??1,s),a={color:i,gif:e.gif,data:{...t,svgData:o},loaded:!1,ratio:e.width/e.height,replaceColor:e.replaceColor,source:e.src};return new Promise(e=>{const i=new Blob([o],{type:"image/svg+xml"}),n=URL.createObjectURL(i),s=new Image;s.addEventListener("load",()=>{a.loaded=!0,a.element=s,e(a),URL.revokeObjectURL(n)});s.addEventListener("error",()=>{(async()=>{URL.revokeObjectURL(n);const i={...t,error:!1,loading:!0};await nl(i),a.loaded=!0,a.element=i.element,e(a)})()}),s.src=n})}const al=[0,4,2,1],rl=[8,8,4,2];class cl{data;pos;constructor(t){this.pos=0,this.data=new Uint8ClampedArray(t)}getString(t){const e=this.data.slice(this.pos,this.pos+t);return this.pos+=e.length,e.reduce((t,e)=>t+String.fromCharCode(e),"")}nextByte(){return this.data[this.pos++]}nextTwoBytes(){return this.pos+=2,this.data[this.pos-2]+(this.data[this.pos-1]<<8)}readSubBlocks(){let t,e="";do{t=this.data[this.pos++];for(let i=t;--i>=0;e+=String.fromCharCode(this.data[this.pos++]));}while(0!==t);return e}readSubBlocksBin(){let t=this.data[this.pos],e=0;for(let i=0;0!==t;i+=t+1,t=this.data[this.pos+i])e+=t;const i=new Uint8Array(e);t=this.data[this.pos++];for(let e=0;0!==t;t=this.data[this.pos++])for(let n=t;--n>=0;i[e++]=this.data[this.pos++]);return i}skipSubBlocks(){for(const t=1,e=0;this.data[this.pos]!==e;this.pos+=this.data[this.pos]+t);this.pos++}}var ll,hl;!function(t){t[t.Replace=0]="Replace",t[t.Combine=1]="Combine",t[t.RestoreBackground=2]="RestoreBackground",t[t.RestorePrevious=3]="RestorePrevious",t[t.UndefinedA=4]="UndefinedA",t[t.UndefinedB=5]="UndefinedB",t[t.UndefinedC=6]="UndefinedC",t[t.UndefinedD=7]="UndefinedD"}(ll||(ll={})),function(t){t[t.Extension=33]="Extension",t[t.ApplicationExtension=255]="ApplicationExtension",t[t.GraphicsControlExtension=249]="GraphicsControlExtension",t[t.PlainTextExtension=1]="PlainTextExtension",t[t.CommentExtension=254]="CommentExtension",t[t.Image=44]="Image",t[t.EndOfFile=59]="EndOfFile"}(hl||(hl={}));function dl(t,e){const i=[];for(let n=0;n<e;n++)i.push({r:t.data[t.pos],g:t.data[t.pos+1],b:t.data[t.pos+2]}),t.pos+=3;return i}function ul(t,e,i){const n=e>>>3,s=7&e;return(t[n]+(t[n+1]<<8)+(t[n+2]<<16)&(1<<i)-1<<s)>>>s}async function pl(t,e,i,n,s,o,a){switch(t.nextByte()){case hl.EndOfFile:return!0;case hl.Image:await async function(t,e,i,n,s,o){const a=e.frames[n(!0)];a.left=t.nextTwoBytes(),a.top=t.nextTwoBytes(),a.width=t.nextTwoBytes(),a.height=t.nextTwoBytes();const r=t.nextByte(),c=!(128&~r),l=!(64&~r);a.sortFlag=!(32&~r),a.reserved=(24&r)>>>3;const h=1<<1+(7&r);c&&(a.localColorTable=dl(t,h));const d=t=>{const{r:n,g:o,b:r}=(c?a.localColorTable:e.globalColorTable)[t];return t!==s(null)?{r:n,g:o,b:r,a:255}:{r:n,g:o,b:r,a:i?Math.trunc((n+o+r)/3):0}},u=(()=>{try{return new ImageData(a.width,a.height,o)}catch(t){if(t instanceof DOMException&&"IndexSizeError"===t.name)return null;throw t}})();if(null==u)throw new EvalError("GIF frame size is to large");const p=t.nextByte(),g=t.readSubBlocksBin(),f=1<<p;if(l){for(let t=0,e=p+1,i=0,n=[[0]],s=0;s<4;s++)if(al[s]<a.height){let o=0,r=0,c=!1;for(;!c;){const l=t;if(t=ul(g,i,e),i+=e+1,t===f){e=p+1,n.length=f+2;for(let t=0;t<n.length;t++)n[t]=t<f?[t]:[]}else{t>=n.length?n.push(n[l].concat(n[l][0])):l!==f&&n.push(n[l].concat(n[t][0]));for(const e of n[t]){const{r:t,g:i,b:n,a:c}=d(e);u.data.set([t,i,n,c],al[s]*a.width+rl[s]*r+o%(4*a.width)),o+=4}n.length===1<<e&&e<12&&e++}o===4*a.width*(r+1)&&(r++,al[s]+rl[s]*r>=a.height&&(c=!0))}}a.image=u,a.bitmap=await createImageBitmap(u)}else{let t=0,e=p+1,i=0,n=-4;const s=[[0]];for(;;){const o=t;if(t=ul(g,i,e),i+=e,t===f){e=p+1,s.length=f+2;for(let t=0;t<s.length;t++)s[t]=t<f?[t]:[]}else{if(t===f+1)break;t>=s.length?s.push(s[o].concat(s[o][0])):o!==f&&s.push(s[o].concat(s[t][0]));for(const e of s[t]){const{r:t,g:i,b:s,a:o}=d(e);n+=4,u.data.set([t,i,s,o],n)}s.length>=1<<e&&e<12&&e++}}a.image=u,a.bitmap=await createImageBitmap(u)}}(t,e,i,n,s,o);break;case hl.Extension:!function(t,e,i,n){switch(t.nextByte()){case hl.GraphicsControlExtension:{const s=e.frames[i(!1)];t.pos++;const o=t.nextByte();s.GCreserved=(224&o)>>>5,s.disposalMethod=(28&o)>>>2,s.userInputDelayFlag=!(2&~o);const a=!(1&~o);s.delayTime=10*t.nextTwoBytes();const r=t.nextByte();a&&n(r),t.pos++;break}case hl.ApplicationExtension:{t.pos++;const i={identifier:t.getString(8),authenticationCode:t.getString(3),data:t.readSubBlocksBin()};e.applicationExtensions.push(i);break}case hl.CommentExtension:e.comments.push([i(!1),t.readSubBlocks()]);break;case hl.PlainTextExtension:if(0===e.globalColorTable.length)throw new EvalError("plain text extension without global color table");t.pos++,e.frames[i(!1)].plainTextData={left:t.nextTwoBytes(),top:t.nextTwoBytes(),width:t.nextTwoBytes(),height:t.nextTwoBytes(),charSize:{width:t.nextTwoBytes(),height:t.nextTwoBytes()},foregroundColor:t.nextByte(),backgroundColor:t.nextByte(),text:t.readSubBlocks()};break;default:t.skipSubBlocks()}}(t,e,n,s);break;default:throw new EvalError("undefined block found")}return!1}async function gl(t,e){if("gif"===t.type){t.loading=!0;try{t.gifData=await async function(t,e,i,n){n??=!1;const s=await fetch(t);if(!s.ok&&404===s.status)throw new EvalError("file not found");const o=await s.arrayBuffer(),a={width:0,height:0,totalTime:0,colorRes:0,pixelAspectRatio:0,frames:[],sortFlag:!1,globalColorTable:[],backgroundImage:new ImageData(1,1,e),comments:[],applicationExtensions:[]},r=new cl(new Uint8ClampedArray(o));if("GIF89a"!==r.getString(6))throw new Error("not a supported GIF file");a.width=r.nextTwoBytes(),a.height=r.nextTwoBytes();const c=r.nextByte(),l=!(128&~c);a.colorRes=(112&c)>>>4,a.sortFlag=!(8&~c);const h=1<<1+(7&c),d=r.nextByte();a.pixelAspectRatio=r.nextByte(),0!==a.pixelAspectRatio&&(a.pixelAspectRatio=(a.pixelAspectRatio+15)/64),l&&(a.globalColorTable=dl(r,h));const u=(()=>{try{return new ImageData(a.width,a.height,e)}catch(t){if(t instanceof DOMException&&"IndexSizeError"===t.name)return null;throw t}})();if(null==u)throw new Error("GIF frame size is to large");const{r:p,g:g,b:f}=a.globalColorTable[d];u.data.set(l?[p,g,f,255]:[0,0,0,0]);for(let t=4;t<u.data.length;t*=2)u.data.copyWithin(t,0,t);a.backgroundImage=u;let y=-1,_=!0,m=-1;const v=t=>(t&&(_=!0),y),w=t=>(null!=t&&(m=t),m);try{do{_&&(a.frames.push({left:0,top:0,width:0,height:0,disposalMethod:ll.Replace,image:new ImageData(1,1,e),plainTextData:null,userInputDelayFlag:!1,delayTime:0,sortFlag:!1,localColorTable:[],reserved:0,GCreserved:0}),y++,m=-1,_=!1)}while(!await pl(r,a,n,v,w,e));a.frames.length--;for(const t of a.frames){if(t.userInputDelayFlag&&0===t.delayTime){a.totalTime=1/0;break}a.totalTime+=t.delayTime}return a}catch(t){if(t instanceof EvalError)throw new Error(`error while parsing frame ${y.toString()} "${t.message}"`,{cause:t});throw t}}(t.source,e),t.gifLoopCount=function(t){for(const e of t.applicationExtensions)if(e.identifier+e.authenticationCode==="NETSCAPE2.0")return e.data[1]+(e.data[2]<<8);return Number.NaN}(t.gifData),t.gifLoopCount||(t.gifLoopCount=1/0)}catch{t.error=!0}t.loading=!1}else await nl(t)}class fl{_container;_engine;constructor(t,e){this._engine=t,this._container=e}draw(t){const{context:e,radius:i,particle:n,opacity:s}=t,o=n.image,r=o?.element;if(o){if(e.globalAlpha=s,o.gif&&o.gifData)!function(t,e){const{context:i,radius:n,particle:s,delta:o}=t,r=s.image;if(!r?.gifData||!r.gif)return;const l=new OffscreenCanvas(r.gifData.width,r.gifData.height),h=l.getContext("2d",e);if(!h)throw new Error("could not create offscreen canvas context");h.imageSmoothingQuality="low",h.imageSmoothingEnabled=!1,h.clearRect(c.x,c.y,l.width,l.height),s.gifLoopCount??=r.gifLoopCount??0;let d=s.gifFrame??0;const u={x:-r.gifData.width*a,y:-r.gifData.height*a},p=r.gifData.frames[d];if(s.gifTime??=0,p.bitmap){switch(i.scale(n/r.gifData.width,n/r.gifData.height),p.disposalMethod){case ll.UndefinedA:case ll.UndefinedB:case ll.UndefinedC:case ll.UndefinedD:case ll.Replace:h.drawImage(p.bitmap,p.left,p.top),i.drawImage(l,u.x,u.y),h.clearRect(c.x,c.y,l.width,l.height);break;case ll.Combine:h.drawImage(p.bitmap,p.left,p.top),i.drawImage(l,u.x,u.y);break;case ll.RestoreBackground:h.drawImage(p.bitmap,p.left,p.top),i.drawImage(l,u.x,u.y),h.clearRect(c.x,c.y,l.width,l.height),r.gifData.globalColorTable.length?h.putImageData(r.gifData.backgroundImage,u.x,u.y):h.putImageData(r.gifData.frames[0].image,u.x+p.left,u.y+p.top);break;case ll.RestorePrevious:{const t=h.getImageData(c.x,c.y,l.width,l.height);h.drawImage(p.bitmap,p.left,p.top),i.drawImage(l,u.x,u.y),h.clearRect(c.x,c.y,l.width,l.height),h.putImageData(t,c.x,c.y)}}if(s.gifTime+=o.value,s.gifTime>p.delayTime){if(s.gifTime-=p.delayTime,++d>=r.gifData.frames.length){if(--s.gifLoopCount<=0)return;d=0,h.clearRect(c.x,c.y,l.width,l.height)}s.gifFrame=d}i.scale(r.gifData.width/n,r.gifData.height/n)}}(t,this._container.canvas.render.settings);else if(r){const t=o.ratio,n={x:-i,y:-i},s=2*i;e.drawImage(r,n.x,n.y,s,s/t)}e.globalAlpha=1}}getSidesCount(){return 12}async init(t){const e=t.actualOptions;if(!e.preload||!this._engine.loadImage)return;const i=[];for(const n of e.preload)i.push(this._engine.loadImage(t,n));await Promise.all(i)}loadShape(t){const{_container:e}=this;if(!t.shape||!el.includes(t.shape))return;const i=t.shapeData;if(!i)return;const n=this._engine.getImages?.(e),s=n?.find(t=>t.name===i.name||t.source===i.src);s||this.loadImageShape(e,i).then(()=>{this.loadShape(t)})}particleInit(t,e){if("image"!==e.shape&&"images"!==e.shape)return;const i=this._engine.getImages?.(t),n=e.shapeData;if(!n)return;const s=e.getFillColor(),o=i?.find(t=>t.name===n.name||t.source===n.src);if(!o)return;const a=n.replaceColor;o.loading?setTimeout(()=>{this.particleInit(t,e)}):(async()=>{let i;i=o.svgData&&s?await ol(o,n,s,e,t.hdr):{color:s,data:o,element:o.element,gif:o.gif,gifData:o.gifData,gifLoopCount:o.gifLoopCount,loaded:!0,ratio:n.width&&n.height?n.width/n.height:o.ratio??1,replaceColor:a,source:n.src},i.ratio||(i.ratio=1);const r={image:i,close:n.close??e.shapeClose};e.image=r.image,e.shapeClose=r.close})()}loadImageShape=async(t,e)=>{if(!this._engine.loadImage)throw new Error("Image shape not initialized");await this._engine.loadImage(t,{gif:e.gif,name:e.name,replaceColor:e.replaceColor,src:e.src})}}class yl{gif;height;name;replaceColor;src;width;constructor(){this.src="",this.gif=!1}load(t){I(t)||(void 0!==t.gif&&(this.gif=t.gif),void 0!==t.height&&(this.height=t.height),void 0!==t.name&&(this.name=t.name),void 0!==t.replaceColor&&(this.replaceColor=t.replaceColor),void 0!==t.src&&(this.src=t.src),void 0!==t.width&&(this.width=t.width))}}class _l{id="image-preloader";_engine;constructor(t){this._engine=t}async getPlugin(t){const{ImagePreloaderInstance:e}=await Promise.resolve().then(function(){return If});return new e(this._engine,t)}loadOptions(t,e,i){if(!i?.preload)return;e.preload??=[];const n=e.preload;for(const t of i.preload){const e=n.find(e=>e.name===t.name||e.src===t.src);if(e)e.load(t);else{const e=new yl;e.load(t),n.push(e)}}}needsPlugin(){return!0}}async function ml(t){t.checkVersion("4.0.0"),await t.pluginManager.register(t=>{!function(t){t.getImages??=e=>{t.images??=new Map;let i=t.images.get(e);return i||(i=[],t.images.set(e,i)),i},t.loadImage??=async(e,i)=>{if(!t.getImages)throw new Error("No images collection found");if(!i.name&&!i.src)throw new Error("No image source provided");t.images??=new Map;const n=t.getImages(e);if(!n.some(t=>t.name===i.name||t.source===i.src))try{const s={gif:i.gif,name:i.name??i.src,source:i.src,type:i.src.substring(i.src.length-3),error:!1,loading:!0,replaceColor:i.replaceColor,ratio:i.width&&i.height?i.width/i.height:void 0};let o;n.push(s),t.images.set(e,n),o=i.gif?t=>gl(t,{colorSpace:"srgb"}):i.replaceColor?sl:nl,await o(s)}catch{throw new Error(`${i.name??i.src} not found`)}}}(t),t.pluginManager.addPlugin(new _l(t)),t.pluginManager.addShape(el,e=>Promise.resolve(new fl(t,e)))})}class vl extends me{sync;constructor(){super(),this.sync=!1}load(t){I(t)||(super.load(t),void 0!==t.sync&&(this.sync=t.sync))}}class wl extends me{sync;constructor(){super(),this.sync=!1}load(t){I(t)||(super.load(t),void 0!==t.sync&&(this.sync=t.sync))}}class bl{count;delay;duration;constructor(){this.count=0,this.delay=new vl,this.duration=new wl}load(t){I(t)||(void 0!==t.count&&(this.count=t.count),this.delay.load(t.delay),this.duration.load(t.duration))}}class xl{container;constructor(t){this.container=t}init(t){const e=this.container,i=t.options.life;if(!i)return;const n=i.delay.sync?1:R(),s=i.duration.sync?1:R();t.life={delay:e.retina.reduceFactor?U(i.delay.value)*n/e.retina.reduceFactor*r:0,delayTime:0,duration:e.retina.reduceFactor?U(i.duration.value)*s/e.retina.reduceFactor*r:0,time:0,count:i.count},t.life.duration<=0&&(t.life.duration=-1),t.life.count<=0&&(t.life.count=-1),t.spawning=t.life.delay>0}isEnabled(t){return!t.destroyed}loadOptions(t,...e){t.life??=new bl;for(const i of e)t.life.load(i?.life)}update(t,e){this.isEnabled(t)&&t.life&&function(t,e,i){if(!t.life)return;const n=t.life;let s=!1;if(t.spawning){if(n.delayTime+=e.value,!(n.delayTime>=t.life.delay))return;s=!0,t.spawning=!1,n.delayTime=0,n.time=0}if(-1===n.duration)return;if(s?n.time=0:n.time+=e.value,n.time<n.duration)return;if(n.time=0,t.life.count>0&&t.life.count--,0===t.life.count)return void t.destroy();const o=q(0,i.width),a=q(0,i.width);t.position.x=N(o),t.position.y=N(a),t.spawning=!0,n.delayTime=0,n.time=0,t.reset();const c=t.options.life;c&&(n.delay=U(c.delay.value)*r,n.duration=U(c.duration.value)*r)}(t,e,this.container.canvas.size)}}async function Sl(t){t.checkVersion("4.0.0"),await t.pluginManager.register(t=>{t.pluginManager.addParticleUpdater("life",t=>Promise.resolve(new xl(t)))})}class Pl{draw(t){!function(t){const{context:e,particle:i,radius:n}=t,s=i.shapeData;e.moveTo(-n,0),e.lineTo(n,0),e.lineCap=s?.cap??"butt"}(t)}getSidesCount(){return 1}}async function Ml(t){t.checkVersion("4.0.0"),await t.pluginManager.register(t=>{t.pluginManager.addShape(["line"],()=>Promise.resolve(new Pl))})}class Cl{distance;enable;rotate;constructor(){this.distance=200,this.enable=!1,this.rotate={x:3e3,y:3e3}}load(t){if(!I(t)&&(void 0!==t.distance&&(this.distance=q(t.distance)),void 0!==t.enable&&(this.enable=t.enable),t.rotate)){const e=t.rotate.x;void 0!==e&&(this.rotate.x=e);const i=t.rotate.y;void 0!==i&&(this.rotate.y=i)}}}class Ol extends Is{_maxDistance;constructor(t){super(t),this._maxDistance=0}get maxDistance(){return this._maxDistance}clear(){}init(){}interact(t){if(!t.options.attract?.enable)return;const e=this.container;if(I(t.attractDistance)){const i=U(t.options.attract.distance);i>this._maxDistance&&(this._maxDistance=i),t.attractDistance=i*e.retina.pixelRatio}const i=t.attractDistance,n=t.getPosition(),s=e.particles.grid.queryCircle(n,i);for(const e of s){if(t===e||!e.options.attract?.enable||e.destroyed||e.spawning)continue;const i=e.getPosition(),{dx:s,dy:o}=W(n,i),a=t.options.attract.rotate,r=s/(1e3*a.x),c=o/(1e3*a.y),l=e.size.value/t.size.value,h=1/l;t.velocity.x-=r*l,t.velocity.y-=c*l,e.velocity.x+=r*h,e.velocity.y+=c*h}}isEnabled(t){return t.options.attract?.enable??!1}loadParticlesOptions(t,...e){t.attract??=new Cl;for(const i of e)t.attract.load(i?.attract)}reset(){}}async function kl(t){t.checkVersion("4.0.0"),await t.pluginManager.register(t=>{$s(t),t.pluginManager.addInteractor?.("particlesAttract",t=>Promise.resolve(new Ol(t)))})}var Tl;!function(t){t.absorb="absorb",t.bounce="bounce",t.destroy="destroy"}(Tl||(Tl={}));class Dl{speed;constructor(){this.speed=2}load(t){I(t)||void 0!==t.speed&&(this.speed=t.speed)}}class Vl{enable;retries;constructor(){this.enable=!0,this.retries=0}load(t){I(t)||(void 0!==t.enable&&(this.enable=t.enable),void 0!==t.retries&&(this.retries=t.retries))}}class Il{absorb;bounce;enable;maxSpeed;mode;overlap;constructor(){this.absorb=new Dl,this.bounce=new De,this.enable=!1,this.maxSpeed=50,this.mode=Tl.bounce,this.overlap=new Vl}load(t){I(t)||(this.absorb.load(t.absorb),this.bounce.load(t.bounce),void 0!==t.enable&&(this.enable=t.enable),void 0!==t.maxSpeed&&(this.maxSpeed=q(t.maxSpeed)),void 0!==t.mode&&(this.mode=t.mode),this.overlap.load(t.overlap))}}function Al(t,e,i,n,s,o){if(!t.options.collisions||!i.options.collisions)return;const a=H(t.options.collisions.absorb.speed*s.factor,0,n);t.size.value=Math.sqrt(e*e+a*a),i.size.value-=a,i.size.value<=o&&(i.size.value=0,i.destroy())}const El=t=>{t.options.collisions&&(t.collisionMaxSpeed??=U(t.options.collisions.maxSpeed),t.velocity.length>t.collisionMaxSpeed&&(t.velocity.length=t.collisionMaxSpeed))};function zl(t,e){const i=t.getMass(),n=e.getMass(),s=t.velocity.length,o=e.velocity.length,a=i*s*s+n*o*o;Mt(Pt(t),Pt(e));const r=t.velocity.length,c=e.velocity.length,l=i*r*r+n*c*c;if(l>1e-6*a){const i=Math.sqrt(a/l);Math.abs(i-1)>1e-4&&(t.velocity.length=r*i,e.velocity.length=c*i)}El(t),El(e)}function Rl(t,e,i,n){if(t.options.collisions&&e.options.collisions)switch(t.options.collisions.mode){case Tl.absorb:!function(t,e,i,n){const s=t.getRadius(),o=e.getRadius();!s&&o?t.destroy():s&&!o?e.destroy():s&&o&&(s>=o?Al(t,s,e,o,i,n):Al(e,o,t,s,i,n))}(t,e,i,n);break;case Tl.bounce:zl(t,e);break;case Tl.destroy:!function(t,e){t.unbreakable||e.unbreakable||zl(t,e);const i=t.getRadius(),n=e.getRadius();!i&&n?t.destroy():i&&!n?e.destroy():i&&n&&(t.getRadius()>=e.getRadius()?e:t).destroy()}(t,e)}}class Gl extends Is{maxDistance;constructor(t){super(t),this.maxDistance=0}clear(){}init(){}interact(t,e,i){if(t.destroyed||t.spawning)return;const n=this.container,s=t.getPosition(),o=t.getRadius(),a=n.particles.grid.queryCircle(s,2*o);for(const e of a){if(t===e||t.id>=e.id||!t.options.collisions?.enable||!e.options.collisions?.enable||t.options.collisions.mode!==e.options.collisions.mode||e.destroyed||e.spawning)continue;const a=e.getPosition(),r=e.getRadius();if(Math.abs(Math.round(s.z)-Math.round(a.z))>o+r)continue;Z(s,a)>o+r||Rl(t,e,i,n.retina.pixelRatio)}}isEnabled(t){return!!t.options.collisions?.enable}loadParticlesOptions(t,...e){t.collisions??=new Il;for(const i of e)t.collisions.load(i?.collisions)}reset(){}}class Ll{id="overlap";async getPlugin(t){const{OverlapPluginInstance:e}=await Promise.resolve().then(function(){return Af});return new e(t)}loadOptions(){}needsPlugin(){return!0}}async function Fl(t){t.checkVersion("4.0.0"),await t.pluginManager.register(t=>{$s(t),t.pluginManager.addPlugin(new Ll),t.pluginManager.addInteractor?.("particlesCollisions",t=>Promise.resolve(new Gl(t)))})}class Hl extends ie{canvasSize;constructor(t,e,i,n){super(t,e,i),this.canvasSize=n}contains(t){if(super.contains(t))return!0;const{width:e,height:i}=this.canvasSize,{x:n,y:s}=t;return super.contains({x:n-e,y:s})||super.contains({x:n+e,y:s})||super.contains({x:n,y:s-i})||super.contains({x:n,y:s+i})||super.contains({x:n-e,y:s-i})||super.contains({x:n+e,y:s+i})||super.contains({x:n-e,y:s+i})||super.contains({x:n+e,y:s-i})}intersects(t){if(super.intersects(t))return!0;const{width:e,height:i}=this.canvasSize,n=t.position,s=[{x:-e,y:0},{x:e,y:0},{x:0,y:-i},{x:0,y:i},{x:-e,y:-i},{x:e,y:i},{x:-e,y:i},{x:e,y:-i}];for(const e of s){const i={x:n.x+e.x,y:n.y+e.y};let s;if(t instanceof ie)s=new ie(i.x,i.y,t.radius);else{const e=t;s=new ne(i.x,i.y,e.size.width,e.size.height)}if(super.intersects(s))return!0}return!1}}class Bl{blur;color;enable;constructor(){this.blur=5,this.color=new ce,this.color.value="#000",this.enable=!1}load(t){I(t)||(void 0!==t.blur&&(this.blur=t.blur),this.color=ce.create(this.color,t.color),void 0!==t.enable&&(this.enable=t.enable))}}class Nl{color;enable;frequency;opacity;constructor(){this.enable=!1,this.frequency=1}load(t){I(t)||(void 0!==t.color&&(this.color=ce.create(this.color,t.color)),void 0!==t.enable&&(this.enable=t.enable),void 0!==t.frequency&&(this.frequency=t.frequency),void 0!==t.opacity&&(this.opacity=t.opacity))}}class Ul{blink;color;consent;distance;enable;frequency;id;opacity;shadow;triangles;warp;width;constructor(){this.blink=!1,this.color=new ce,this.color.value="#fff",this.consent=!1,this.distance=100,this.enable=!1,this.frequency=1,this.opacity=1,this.shadow=new Bl,this.triangles=new Nl,this.width=1,this.warp=!1}load(t){I(t)||(void 0!==t.id&&(this.id=t.id),void 0!==t.blink&&(this.blink=t.blink),this.color=ce.create(this.color,t.color),void 0!==t.consent&&(this.consent=t.consent),void 0!==t.distance&&(this.distance=t.distance),void 0!==t.enable&&(this.enable=t.enable),void 0!==t.frequency&&(this.frequency=t.frequency),void 0!==t.opacity&&(this.opacity=t.opacity),this.shadow.load(t.shadow),this.triangles.load(t.triangles),void 0!==t.width&&(this.width=t.width),void 0!==t.warp&&(this.warp=t.warp))}}function $l(t,e,i){const{dx:n,dy:s}=W(t,e),o={x:Math.abs(n),y:Math.abs(s)},a={x:Math.min(o.x,i.width-o.x),y:Math.min(o.y,i.height-o.y)};return Math.hypot(a.x,a.y)}class jl extends Is{_maxDistance;_pluginManager;constructor(t,e){super(e),this._pluginManager=t,this._maxDistance=0}get maxDistance(){return this._maxDistance}clear(){}init(){this.container.particles.linksColor=void 0,this.container.particles.linksColors=new Map}interact(t){if(!t.options.links)return;t.links=[],t.linksDistance&&t.linksDistance>this._maxDistance&&(this._maxDistance=t.linksDistance);const e=t.getPosition(),i=this.container,n=i.canvas.size;if(e.x<c.x||e.y<c.y||e.x>n.width||e.y>n.height)return;const s=t.options.links,o=s.opacity,a=t.retina.linksDistance??0,r=s.warp,l=r?new Hl(e.x,e.y,a,n):new ie(e.x,e.y,a),h=i.particles.grid.query(l);for(const i of h){const l=i.options.links;if(t===i||!l?.enable||s.id!==l.id||i.spawning||i.destroyed||!i.links||t.links.some(t=>t.destination===i)||i.links.some(e=>e.destination===t))continue;const h=i.getPosition();if(h.x<c.x||h.y<c.y||h.x>n.width||h.y>n.height)continue;const d=W(e,h).distance,u=r&&l.warp?$l(e,h,n):d,p=Math.min(d,u);if(p>a)continue;const g=(1-p/a)*o;this._setColor(t),t.links.push({destination:i,opacity:g,color:this._getLinkColor(t,i),isWarped:u<d})}}isEnabled(t){return!!t.options.links?.enable}loadParticlesOptions(t,...e){t.links??=new Ul;for(const i of e)t.links.load(i?.links)}reset(){}_getLinkColor(t,e){const i=this.container,n=t.options.links;if(!n)return;return gi(t,e,void 0!==n.id?i.particles.linksColors.get(n.id):i.particles.linksColor)}_setColor(t){if(!t.options.links)return;const e=this.container,i=t.options.links;let n=void 0===i.id?e.particles.linksColor:e.particles.linksColors.get(i.id);n||(n=fi(this._pluginManager,i.color,i.blink,i.consent),void 0===i.id?e.particles.linksColor=n:e.particles.linksColors.set(i.id,n))}}class ql{id="links";_pluginManager;constructor(t){this._pluginManager=t}async getPlugin(t){const{LinkInstance:e}=await Promise.resolve().then(function(){return zf});return new e(this._pluginManager,t)}loadOptions(){}needsPlugin(){return!0}}async function Wl(t){t.checkVersion("4.0.0"),await t.pluginManager.register(t=>{const e=t.pluginManager;$s(t),e.addPlugin(new ql(e)),e.addInteractor?.("particlesLinks",t=>Promise.resolve(new jl(e,t)))})}const Ql=new Map;function Zl(t,e){const{context:i,radius:n}=t,s=function(t){const e=Ql.get(t);if(e)return e;const i=u/t,n=!!(t%2),s=(-Math.PI+(n?0:i))*a,o=[];for(let e=0;e<t;e++){const t=s+e*i;o[e]={x:Math.cos(t),y:Math.sin(t)}}return Ql.set(t,o),o}(e.count.numerator/e.count.denominator);i.beginPath();for(let t=0;t<s.length;t++){const e=s[t];if(!e)continue;const o=e.x*n,a=e.y*n;t?i.lineTo(o,a):i.moveTo(o,a)}i.closePath()}class Xl{draw(t){const{particle:e,radius:i}=t;Zl(t,this.getSidesData(e,i))}getSidesCount(t){const e=t.shapeData;return Math.round(U(e?.sides??5))}}class Yl extends Xl{getSidesData(t,e){const{sides:i}=t;return{count:{denominator:1,numerator:i},length:2.66*e/(i/3)}}}class Kl extends Xl{getSidesCount(){return 3}getSidesData(t,e){return{count:{denominator:1,numerator:3},length:2.66*e/1}}}async function Jl(t){t.checkVersion("4.0.0"),await t.pluginManager.register(t=>{t.pluginManager.addShape(["polygon"],()=>Promise.resolve(new Yl))})}async function th(t){t.checkVersion("4.0.0"),await t.pluginManager.register(t=>{t.pluginManager.addShape(["triangle"],()=>Promise.resolve(new Kl))})}async function eh(t){t.checkVersion("4.0.0"),await Promise.all([Jl(t),th(t)])}class ih{decay;enable;speed;sync;constructor(){this.enable=!1,this.speed=0,this.decay=0,this.sync=!1}load(t){I(t)||(void 0!==t.enable&&(this.enable=t.enable),void 0!==t.speed&&(this.speed=q(t.speed)),void 0!==t.decay&&(this.decay=q(t.decay)),void 0!==t.sync&&(this.sync=t.sync))}}class nh extends me{animation;direction;path;constructor(){super(),this.animation=new ih,this.direction=t.RotateDirection.clockwise,this.path=!1,this.value=0}load(t){I(t)||(super.load(t),void 0!==t.direction&&(this.direction=t.direction),this.animation.load(t.animation),void 0!==t.path&&(this.path=t.path))}}class sh{container;constructor(t){this.container=t}init(e){const i=e.options.rotate;if(!i)return;e.rotate={enable:i.animation.enable,value:Y(U(i.value)),min:0,max:u},e.pathRotation=i.path;let n=i.direction;if(n===t.RotateDirection.random){n=Math.floor(2*R())>0?t.RotateDirection.counterClockwise:t.RotateDirection.clockwise}switch(n){case t.RotateDirection.counterClockwise:case"counterClockwise":e.rotate.status=t.AnimationStatus.decreasing;break;case t.RotateDirection.clockwise:e.rotate.status=t.AnimationStatus.increasing}const s=i.animation;s.enable&&(e.rotate.decay=1-U(s.decay),e.rotate.velocity=U(s.speed)/360*this.container.retina.reduceFactor,s.sync||(e.rotate.velocity*=R())),e.rotation=e.rotate.value}isEnabled(t){const e=t.options.rotate;return!!e&&(!t.destroyed&&!t.spawning&&(!!e.value||e.animation.enable||e.path))}loadOptions(t,...e){t.rotate??=new nh;for(const i of e)t.rotate.load(i?.rotate)}update(e,i){this.isEnabled(e)&&(e.isRotating=!!e.rotate,e.rotate&&(At(e,e.rotate,!1,t.DestroyType.none,i),e.rotation=e.rotate.value))}}async function oh(t){t.checkVersion("4.0.0"),await t.pluginManager.register(t=>{t.pluginManager.addParticleUpdater("rotate",t=>Promise.resolve(new sh(t)))})}class ah{draw(t){!function(t){const{context:e,radius:i}=t,n=i*Math.SQRT1_2,s=2*n;e.rect(-n,-n,s,s)}(t)}getSidesCount(){return 4}}async function rh(t){t.checkVersion("4.0.0"),await t.pluginManager.register(t=>{t.pluginManager.addShape(["edge","square"],()=>Promise.resolve(new ah))})}const ch=0,lh=0;class hh{draw(t){!function(t){const{context:e,particle:i,radius:n}=t,s=i.sides,o=i.starInset??2;e.moveTo(ch,lh-n);for(let t=0;t<s;t++)e.rotate(Math.PI/s),e.lineTo(ch,lh-n*o),e.rotate(Math.PI/s),e.lineTo(ch,lh-n)}(t)}getSidesCount(t){const e=t.shapeData;return Math.round(U(e?.sides??5))}particleInit(t,e){const i=e.shapeData;e.starInset=U(i?.inset??2)}}async function dh(t){t.checkVersion("4.0.0"),await t.pluginManager.register(t=>{t.pluginManager.addShape(["star"],()=>Promise.resolve(new hh))})}async function uh(t){t.checkVersion("4.0.0"),await t.pluginManager.register(async t=>{await Promise.all([Fr(t),(async t=>{await async function(t){t.checkVersion("4.0.0"),await t.pluginManager.register(t=>{const e=t,i=e.pluginManager;i.addPlugin(new Ds(i)),i.initializers.interactors??=new Map,i.interactors??=new Map,i.addInteractor=(t,e)=>{i.initializers.interactors??=new Map,i.initializers.interactors.set(t,e)},i.getInteractors=async(t,e=!1)=>(i.interactors??=new Map,i.initializers.interactors??=new Map,Gt(t,i.interactors,i.initializers.interactors,e)),i.setOnClickHandler=t=>{const{items:i}=e;if(!i.length)throw new Error("Click handlers can only be set after calling tsParticles.load()");i.forEach(e=>{const i=e;i.addClickHandler?.(t)})}})}(t),await Promise.all([Ec(t),Yr(t),ac(t),gc(t),wc(t),Cc(t),Vc(t),Gc(t),Bc(t),jc(t),Yc(t),tl(t),kl(t),Fl(t),Wl(t)])})(t),Br(t),jr(t),ml(t),Ml(t),eh(t),rh(t),dh(t),Sl(t),Ir(t),oh(t)])})}const ph=["text","character","char","multiline-text"];function gh(t,e,i,n,s,o){const r={x:-e.length*i*a,y:i*a+n*i};s&&t.fillText(e,r.x,r.y),o&&t.strokeText(e,r.x,r.y)}class fh{draw(t){!function(t){const{context:e,particle:i,fill:n,stroke:s,radius:o,opacity:a}=t,r=i.shapeData;if(!r)return;const c=r.value;if(i.textLines??=Ot(c,i.randomIndexData)?.split("\n")??[],i.maxTextLength??=i.textLines.length?Math.max(...i.textLines.map(t=>t.length)):i.textLines[0]?.length??0,!i.textLines.length||!i.maxTextLength)return;const l=i.textLines,h=r.style??"",d=r.weight??"400",u=r.font??"Verdana",p=2*Math.round(o)/(l.length*i.maxTextLength);e.font=`${h} ${d} ${p.toString()}px "${u}"`;const g=e.globalAlpha;e.globalAlpha=a;for(let t=0;t<l.length;t++){const i=l[t];i&&gh(e,i,p,t,n,s)}e.globalAlpha=g}(t)}async init(t){const e=t.actualOptions;if(ph.find(t=>_t(t,e.particles.shape.type))){const t=ph.map(t=>e.particles.shape.options[t]).find(t=>!!t),i=[];Ct(t,t=>{i.push(vo(t.font,t.weight))}),await Promise.all(i)}}particleInit(t,e){if(!e.shape||!ph.includes(e.shape))return;const i=e.shapeData;if(void 0===i)return;const n=i.value;n&&(e.textLines=Ot(n,e.randomIndexData)?.split("\n")??[],e.maxTextLength=e.textLines.length?Math.max(...e.textLines.map(t=>t.length)):e.textLines[0]?.length??0)}}async function yh(t){t.checkVersion("4.0.0"),await t.pluginManager.register(t=>{t.pluginManager.addShape(ph,()=>Promise.resolve(new fh))})}var _h;!function(t){t.clockwise="clockwise",t.counterClockwise="counter-clockwise",t.random="random"}(_h||(_h={}));class mh{decay;enable;speed;sync;constructor(){this.enable=!1,this.speed=0,this.decay=0,this.sync=!1}load(t){I(t)||(void 0!==t.enable&&(this.enable=t.enable),void 0!==t.speed&&(this.speed=q(t.speed)),void 0!==t.decay&&(this.decay=q(t.decay)),void 0!==t.sync&&(this.sync=t.sync))}}class vh extends me{animation;direction;enable;constructor(){super(),this.animation=new mh,this.direction=_h.clockwise,this.enable=!1,this.value=0}load(t){super.load(t),I(t)||(this.animation.load(t.animation),void 0!==t.direction&&(this.direction=t.direction),void 0!==t.enable&&(this.enable=t.enable))}}class wh{container;constructor(t){this.container=t}getTransformValues(t){const e=t.tilt?.enable&&t.tilt;return{b:e?Math.cos(e.value)*e.cosDirection:void 0,c:e?Math.sin(e.value)*e.sinDirection:void 0}}init(e){const i=e.options.tilt;if(!i)return;e.tilt={enable:i.enable,value:Y(U(i.value)),sinDirection:R()>=a?1:-1,cosDirection:R()>=a?1:-1,min:0,max:u};let n=i.direction;if(n===_h.random){n=Math.floor(2*R())>0?_h.counterClockwise:_h.clockwise}switch(n){case _h.counterClockwise:case"counterClockwise":e.tilt.status=t.AnimationStatus.decreasing;break;case _h.clockwise:e.tilt.status=t.AnimationStatus.increasing}const s=e.options.tilt?.animation;s?.enable&&(e.tilt.decay=1-U(s.decay),e.tilt.velocity=U(s.speed)/360*this.container.retina.reduceFactor,s.sync||(e.tilt.velocity*=R()))}isEnabled(t){const e=t.options.tilt?.animation;return!t.destroyed&&!t.spawning&&!!e?.enable}loadOptions(t,...e){t.tilt??=new vh;for(const i of e)t.tilt.load(i?.tilt)}update(e,i){this.isEnabled(e)&&e.tilt&&At(e,e.tilt,!1,t.DestroyType.none,i)}}async function bh(t){t.checkVersion("4.0.0"),await t.pluginManager.register(t=>{t.pluginManager.addParticleUpdater("tilt",t=>Promise.resolve(new wh(t)))})}class xh{color;enable;frequency;opacity;constructor(){this.enable=!1,this.frequency=.05,this.opacity=1}load(t){I(t)||(void 0!==t.color&&(this.color=ce.create(this.color,t.color)),void 0!==t.enable&&(this.enable=t.enable),void 0!==t.frequency&&(this.frequency=t.frequency),void 0!==t.opacity&&(this.opacity=q(t.opacity)))}}class Sh{enable;fillColor;frequency;opacity;strokeColor;constructor(){this.enable=!1,this.frequency=.05,this.opacity=1}load(t){I(t)||(void 0!==t.fillColor&&(this.fillColor=ce.create(this.fillColor,t.fillColor)),void 0!==t.strokeColor&&(this.strokeColor=ce.create(this.strokeColor,t.strokeColor)),void 0!==t.enable&&(this.enable=t.enable),void 0!==t.frequency&&(this.frequency=t.frequency),void 0!==t.opacity&&(this.opacity=q(t.opacity)))}}class Ph{links;particles;constructor(){this.links=new xh,this.particles=new Sh}load(t){I(t)||(this.links.load(t.links),this.particles.load(t.particles))}}class Mh{_container;_pluginManager;constructor(t,e){this._pluginManager=t,this._container=e}getColorStyles(t,e,i,n){const s=t.options,{_container:o}=this,a=s.twinkle;if(!a)return{};const r=a.particles,c=r.enable&&R()<r.frequency,l=t.options.zIndex,h=(1-t.zIndexFactor)**l.opacityRate,d=c?U(r.opacity)*h:n,u=ni(this._pluginManager,r.fillColor),p=ni(this._pluginManager,r.strokeColor),g=(()=>{if(u)return ui(u,o.hdr,d)})(),f=(()=>{if(p)return ui(p,o.hdr,d)})(),y={},_=c&&(!!g||!!f);return y.fill=_?g:void 0,y.stroke=_?f:void 0,y}init(){}isEnabled(t){const e=t.options.twinkle;return!!e&&e.particles.enable}loadOptions(t,...e){t.twinkle??=new Ph;for(const i of e)t.twinkle.load(i?.twinkle)}update(){}}async function Ch(t){t.checkVersion("4.0.0"),await t.pluginManager.register(t=>{t.pluginManager.addParticleUpdater("twinkle",e=>Promise.resolve(new Mh(t.pluginManager,e)))})}class Oh{angle;move;constructor(){this.angle=50,this.move=10}load(t){I(t)||(void 0!==t.angle&&(this.angle=q(t.angle)),void 0!==t.move&&(this.move=q(t.move)))}}class kh{distance;enable;speed;constructor(){this.distance=5,this.enable=!1,this.speed=new Oh}load(t){if(!I(t)&&(void 0!==t.distance&&(this.distance=q(t.distance)),void 0!==t.enable&&(this.enable=t.enable),void 0!==t.speed))if(k(t.speed))this.speed.load({angle:t.speed});else{const e=t.speed;"min"in e?this.speed.load({angle:e}):this.speed.load(t.speed)}}}class Th{_container;constructor(t){this._container=t}init(t){const e=t.options.wobble;t.wobble=e?.enable?{angle:R()*u,angleSpeed:U(e.speed.angle)/360,moveSpeed:U(e.speed.move)/10}:{angle:0,angleSpeed:0,moveSpeed:0},t.retina.wobbleDistance=U(e?.distance??0)*this._container.retina.pixelRatio}isEnabled(t){return!t.destroyed&&!t.spawning&&!!t.options.wobble?.enable}loadOptions(t,...e){t.wobble??=new kh;for(const i of e)t.wobble.load(i?.wobble)}update(t,e){this.isEnabled(t)&&function(t,e,i){const{wobble:n}=e.options,{wobble:s}=e;if(!n?.enable||!s)return;const o=t.retina.reduceFactor,a=s.angleSpeed*i.factor*o,r=s.moveSpeed*i.factor*o*(e.retina.wobbleDistance??0)/16.666666666666668,c=u,{position:l}=e;s.angle+=a,s.angle>c&&(s.angle-=c),l.x+=r*Math.cos(s.angle),l.y+=r*Math.abs(Math.sin(s.angle))}(this._container,t,e)}}async function Dh(t){t.checkVersion("4.0.0"),await t.pluginManager.register(t=>{t.pluginManager.addParticleUpdater("wobble",t=>Promise.resolve(new Th(t)))})}class Vh{count;decay;delay;enable;speed;startValue;sync;constructor(){this.count=0,this.enable=!1,this.speed=0,this.decay=0,this.delay=0,this.sync=!1,this.startValue=t.StartValueType.random}load(t){I(t)||(void 0!==t.count&&(this.count=q(t.count)),void 0!==t.enable&&(this.enable=t.enable),void 0!==t.speed&&(this.speed=q(t.speed)),void 0!==t.sync&&(this.sync=t.sync),void 0!==t.startValue&&(this.startValue=t.startValue),void 0!==t.decay&&(this.decay=q(t.decay)),void 0!==t.delay&&(this.delay=q(t.delay)))}}class Ih{animation;value;constructor(){this.value=0,this.animation=new Vh}load(t){I(t)||(this.animation.load(t.animation),void 0!==t.value&&(this.value=q(t.value)))}}class Ah{opacity;stop;value;constructor(){this.stop=0,this.value=new le}load(t){I(t)||(void 0!==t.stop&&(this.stop=t.stop),this.value=le.create(this.value,t.value),void 0!==t.opacity&&(this.opacity=new Ih,k(t.opacity)?this.opacity.value=t.opacity:this.opacity.load(t.opacity)))}}class Eh{count;decay;delay;enable;speed;sync;constructor(){this.count=0,this.enable=!1,this.speed=0,this.decay=0,this.delay=0,this.sync=!1}load(t){I(t)||(void 0!==t.count&&(this.count=q(t.count)),void 0!==t.enable&&(this.enable=t.enable),void 0!==t.speed&&(this.speed=q(t.speed)),void 0!==t.decay&&(this.decay=q(t.decay)),void 0!==t.delay&&(this.delay=q(t.delay)),void 0!==t.sync&&(this.sync=t.sync))}}class zh{animation;direction;value;constructor(){this.value=0,this.animation=new Eh,this.direction=t.RotateDirection.clockwise}load(t){I(t)||(this.animation.load(t.animation),void 0!==t.value&&(this.value=q(t.value)),void 0!==t.direction&&(this.direction=t.direction))}}class Rh{angle;colors;type;constructor(){this.angle=new zh,this.colors=[],this.type=t.GradientType.random}load(t){I(t)||(this.angle.load(t.angle),void 0!==t.colors&&(this.colors=t.colors.map(t=>{const e=new Ah;return e.load(t),e})),void 0!==t.type&&(this.type=t.type))}}class Gh{_container;_pluginManager;constructor(t,e){this._pluginManager=t,this._container=e}getColorStyles(e,i,n,s){const o=e.gradient;if(!o)return{};const{_container:a}=this,r=o.angle.value,c=0,l=0,h=o.type===t.GradientType.radial?i.createRadialGradient(c,l,0,c,l,n):i.createLinearGradient(Math.cos(r)*-n,Math.sin(r)*-n,Math.cos(r)*n,Math.sin(r)*n);for(const{stop:t,value:e,opacity:i}of o.colors){const n={h:e.h.value,s:e.s.value,l:e.l.value};h.addColorStop(t,ui(n,a.hdr,i?.value??s))}return{fill:h}}init(e){const i=Ot(e.options.gradient);if(!i)return;const n=this._container,{angle:s}=i;e.gradient={angle:{value:U(s.value),enable:s.animation.enable,velocity:U(s.animation.speed)/360*n.retina.reduceFactor,decay:1-U(s.animation.decay),delayTime:U(s.animation.delay)*r,max:u,min:0,time:0},type:i.type,colors:[]};let c=i.angle.direction;switch(c===t.RotateDirection.random&&(c=R()>a?t.RotateDirection.counterClockwise:t.RotateDirection.clockwise),c){case t.RotateDirection.counterClockwise:case"counterClockwise":e.gradient.angle.status=t.AnimationStatus.decreasing;break;case t.RotateDirection.clockwise:e.gradient.angle.status=t.AnimationStatus.increasing}const l=e.options.reduceDuplicates;for(const s of i.colors){const i=ni(this._pluginManager,s.value,e.id,l);if(!i)continue;const c=_i(i,s.value.animation,n.retina.reduceFactor),h={stop:s.stop,value:c,opacity:s.opacity?{enable:s.opacity.animation.enable,max:j(s.opacity.value),min:$(s.opacity.value),status:t.AnimationStatus.increasing,value:U(s.opacity.value),velocity:U(s.opacity.animation.speed)/o*n.retina.reduceFactor,decay:1-U(s.opacity.animation.decay),delayTime:U(s.opacity.animation.delay)*r,time:0}:void 0},{opacity:d}=h;if(s.opacity&&d){const e=s.opacity.value;d.min=$(e),d.max=j(e);switch(s.opacity.animation.startValue){case t.StartValueType.min:d.value=d.min,d.status=t.AnimationStatus.increasing;break;case t.StartValueType.max:d.value=d.max,d.status=t.AnimationStatus.decreasing;break;case t.StartValueType.random:default:d.value=N(d),d.status=R()>=a?t.AnimationStatus.increasing:t.AnimationStatus.decreasing}}e.gradient.colors.push(h)}}isEnabled(t){return!t.destroyed&&!t.spawning&&(!!t.gradient?.angle.enable||(t.gradient?.colors.some(t=>t.value.h.enable||t.value.s.enable||t.value.l.enable)??!1))}loadOptions(t,...e){for(const i of e){if(!i?.gradient)continue;const e=i.gradient;t.gradient=Ct(e,t=>{const e=new Rh;return e.load(t),e})}}update(e,i){!function(e,i){const{gradient:n}=e;if(n){At(e,n.angle,!1,t.DestroyType.none,i);for(const s of n.colors)wi(s.value,i),s.opacity&&At(e,s.opacity,!0,t.DestroyType.none,i)}}(e,i)}}async function Lh(t){t.checkVersion("4.0.0"),await t.pluginManager.register(t=>{t.pluginManager.addParticleUpdater("gradient",e=>Promise.resolve(new Gh(t.pluginManager,e)))})}const Fh=[M.create(1,c.y),M.create(c.x,1),M.create(-1,c.y),M.create(c.x,-1)],Hh=[2,3,0,1];class Bh{options;_container;_res;constructor(t){this._container=t,this._res=M.origin,this.options={cellSize:40,graph:void 0,autoMaze:!1}}generate(t){const e=this.options.cellSize;t.grid??={direction:Math.trunc(R()*Fh.length),speed:t.velocity.length,cellPosition:{x:Math.floor(t.position.x/e),y:Math.floor(t.position.y/e)}};const i=t.grid,n={x:Math.floor(t.position.x/e),y:Math.floor(t.position.y/e)};if(n.x!==i.cellPosition.x||n.y!==i.cellPosition.y){i.cellPosition.x=n.x,i.cellPosition.y=n.y;const t=`${n.x},${n.y}`,e=this.options.graph?.[t];if(e&&e.length>0)i.direction=e[Math.trunc(R()*e.length)];else if(!this.options.graph){const t=Math.trunc(3*R())-1;i.direction=(i.direction+t+4)%Fh.length}}t.velocity.x=0,t.velocity.y=0;const s=Fh[i.direction];return this._res.x=s.x*i.speed,this._res.y=s.y*i.speed,this._res}init(){const t=this._container.actualOptions.particles.move.path.options;if(this.options.cellSize=t.cellSize??this.options.cellSize,this.options.autoMaze=t.autoMaze??this.options.autoMaze,this.options.graph=t.graph,this.options.autoMaze){const t=this._container.canvas.size,e=this.options.cellSize,i={width:Math.ceil(t.width/e),height:Math.ceil(t.height/e)};this.options.graph=this._generateMazeGraph(i)}}reset(t){delete t.grid}update(){}_generateMazeGraph({height:t,width:e}){const i={},n=[];for(let e=0;e<t;e++)n[e]=[];const s=[{x:c.x,y:c.y}];for(;s.length>0;){const{x:o,y:a}=s[s.length-1];n[a][o]||(n[a][o]=!0);const r=[0,1,2,3].sort(()=>R()-.5);let c=!1;for(const l of r){const r={x:o+(0===l?1:2===l?-1:0),y:a+(1===l?1:3===l?-1:0)};if(!(r.x<0||r.y<0||r.x>=e||r.y>=t)&&!n[r.y][r.x]){const t=`${o},${a}`,e=`${r.x},${r.y}`;i[t]??=[],i[e]??=[],i[t].push(l),i[e].push(Hh[l]),s.push(r),c=!0;break}}c||s.pop()}return i}}async function Nh(t){t.checkVersion("4.0.0"),await t.pluginManager.register(t=>{Ei(t),t.pluginManager.addPathGenerator?.("gridPathGenerator",t=>Promise.resolve(new Bh(t)))})}class Uh{draw(t){!function(t){const{context:e,radius:i}=t,n=2*i,s=i*a,o=i+s,r=-i,c=-i;e.moveTo(r,c+s),e.quadraticCurveTo(r,c,r+s,c),e.quadraticCurveTo(r+i,c,r+i,c+s),e.quadraticCurveTo(r+i,c,r+o,c),e.quadraticCurveTo(r+n,c,r+n,c+s),e.quadraticCurveTo(r+n,c+i,r+o,c+o),e.lineTo(r+i,c+n),e.lineTo(r+s,c+o),e.quadraticCurveTo(r,c+i,r,c+s)}(t)}}async function $h(t){t.checkVersion("4.0.0"),await t.pluginManager.register(t=>{t.pluginManager.addShape(["heart"],()=>Promise.resolve(new Uh))})}function jh(t){const e={b:0,g:0,r:0},i=t.h/60,n=t.s/o,s=t.v/o,a=s*n,r=a*(1-Math.abs(i%2-1));let c;if(i>=0&&i<=1?c={r:a,g:r,b:0}:i>1&&i<=2?c={r:r,g:a,b:0}:i>2&&i<=3?c={r:0,g:a,b:r}:i>3&&i<=4?c={r:0,g:r,b:a}:i>4&&i<=5?c={r:r,g:0,b:a}:i>5&&i<=6&&(c={r:a,g:0,b:r}),c){const t=s-a;e.r=Math.floor((c.r+t)*y),e.g=Math.floor((c.g+t)*y),e.b=Math.floor((c.b+t)*y)}return e}const qh=/hsva?\(\s*(\d+)°\s*[\s,]\s*(\d+)%\s*[\s,]\s*(\d+)%\s*([\s,]\s*(0|1|0?\.\d+|(\d{1,3})%)\s*)?\)/i;class Wh{accepts(t){return t.startsWith("hsv")}handleColor(t){const e=t.value.hsv??t.value;if("h"in e&&"s"in e&&"v"in e)return jh(e)}handleRangeColor(t){const e=t.value.hsv??t.value;if("h"in e&&"s"in e&&"v"in e)return jh({h:U(e.h),s:U(e.s),v:U(e.v)})}parseString(t){if(!this.accepts(t))return;const e=qh.exec(t),i=1,n=2,s=3,o=5;return e?{a:(a={a:e.length>4?st(e[o]):1,h:parseInt(e[i]??"0",10),s:parseInt(e[n]??"0",10),v:parseInt(e[s]??"0",10)}).a,...jh(a)}:void 0;var a}}async function Qh(t){t.checkVersion("4.0.0"),await t.pluginManager.register(t=>{t.pluginManager.addColorManager("hsv",new Wh)})}var Zh;!function(t){t[t.h=1]="h",t[t.w=2]="w",t[t.b=3]="b",t[t.a=5]="a"}(Zh||(Zh={}));const Xh=/hwba?\(\s*(\d{1,3}(?:\.\d+)?(?:deg|rad|grad|turn)?)\s*[\s,]\s*(\d{1,3}(?:\.\d+)?)%\s*[\s,]\s*(\d{1,3}(?:\.\d+)?)%\s*([\s,]\s*(0|1|0?\.\d+|(\d{1,3})%)\s*)?\)/i;function Yh(t){const e=t.h/360,i=t.w/100,n=t.b/100,s=i+n;let o,a,r;if(s>=1){const t=i/s;o=t,a=t,r=t}else{const t=t=>{const s=(t+6*e)%6,o=1-i-n,a=Math.max(0,Math.min(s,4-s,1));return 1-n-o*a};o=t(5),a=t(3),r=t(1)}return{r:Math.round(255*o),g:Math.round(255*a),b:Math.round(255*r)}}class Kh{accepts(t){return t.startsWith("hwb")}handleColor(t){const e=t.value.hwb??t.value;if("h"in e&&"w"in e&&"b"in e)return Yh(e)}handleRangeColor(t){const e=t.value.hwb??t.value;if("h"in e&&"w"in e&&"b"in e)return Yh({h:U(e.h),w:U(e.w),b:U(e.b)})}parseString(t){if(!this.accepts(t))return;const e=Xh.exec(t);if(!e)return;const i=e[Zh.h],n=e[Zh.w],s=e[Zh.b];return{a:(o={a:e.length>4?st(e[Zh.a]):1,h:void 0!==i?parseFloat(i):0,w:void 0!==n?parseFloat(n):0,b:void 0!==s?parseFloat(s):0}).a,...Yh(o)};var o}}async function Jh(t){t.checkVersion("4.0.0"),await t.pluginManager.register(t=>{t.pluginManager.addColorManager("hwb",new Kh)})}class td{color;duration;infectedStage;radius;rate;constructor(){this.color=new ce,this.color.value="#ff0000",this.radius=0,this.rate=1}load(t){I(t)||(void 0!==t.color&&(this.color=ce.create(this.color,t.color)),this.duration=t.duration,this.infectedStage=t.infectedStage,void 0!==t.radius&&(this.radius=t.radius),void 0!==t.rate&&(this.rate=t.rate))}}class ed{cure;delay;enable;infections;stages;constructor(){this.cure=!1,this.delay=0,this.enable=!1,this.infections=0,this.stages=[]}load(t){I(t)||(void 0!==t.cure&&(this.cure=t.cure),void 0!==t.delay&&(this.delay=t.delay),void 0!==t.enable&&(this.enable=t.enable),void 0!==t.infections&&(this.infections=t.infections),void 0!==t.stages&&(this.stages=t.stages.map(t=>{const e=new td;return e.load(t),e})))}}class id{id="infection";async getPlugin(t){const{InfectionPluginInstance:e}=await Promise.resolve().then(function(){return Gf});return new e(t)}loadOptions(t,e,i){if(!this.needsPlugin(e)&&!this.needsPlugin(i))return;let n=e.infection;void 0===n?.load&&(e.infection=n=new ed),n.load(i?.infection)}needsPlugin(t){return t?.infection?.enable??!1}}class nd extends Is{_maxDistance;constructor(t){super(t),this._maxDistance=0}get maxDistance(){return this._maxDistance}clear(){}init(){}interact(t,e,i){const n=this.container.infecter;if(!n)return;if(n.updateInfection(t,i.value),void 0===t.infection?.stage)return;const s=this.container,o=s.actualOptions.infection;if(!o?.enable||o.stages.length<1)return;const a=o.stages[t.infection.stage];if(!a)return;this._maxDistance=Math.max(this._maxDistance,a.radius);const r=s.retina.pixelRatio,c=2*t.getRadius()+a.radius*r,l=t.getPosition(),h=a.infectedStage??t.infection.stage,d=s.particles.grid.queryCircle(l,c),u=a.rate,p=d.length;for(const e of d){const i=e;if(!(i===t||i.destroyed||i.spawning||void 0!==i.infection?.stage&&i.infection.stage===t.infection.stage||R()>=u/p))if(void 0===i.infection?.stage)n.startInfection(i,h);else if(i.infection.stage<t.infection.stage)n.updateInfectionStage(i,h);else if(i.infection.stage>t.infection.stage){const e=o.stages[i.infection.stage];if(!e)continue;const s=e.infectedStage??i.infection.stage;n.updateInfectionStage(t,s)}}}isEnabled(){return this.container.actualOptions.infection?.enable??!1}reset(){}}async function sd(t){t.checkVersion("4.0.0"),await t.pluginManager.register(t=>{$s(t),t.pluginManager.addPlugin(new id),t.pluginManager.addInteractor?.("particlesInfection",t=>Promise.resolve(new nd(t)))})}class od{draw(t){!function(t){const{context:e,radius:i}=t,n=.55*i;e.moveTo(c.x,c.y),e.bezierCurveTo(n,-i,n,i,c.x,c.y),e.moveTo(c.x,c.y),e.bezierCurveTo(-n,-i,c.x-n,i,c.x,c.y)}(t)}}async function ad(t){t.checkVersion("4.0.0"),await t.pluginManager.register(t=>{t.pluginManager.addShape(["infinity"],()=>Promise.resolve(new od))})}const rd=255,cd=.95047,ld=1,hd=1.08883,dd=216/24389,ud=24389/27,pd=16,gd=116,fd=500,yd=200,_d={x:3.2404542,y:-1.5371385,z:-.4985314},md={x:-.969266,y:1.8760108,z:.041556},vd={x:.0556434,y:-.2040259,z:1.0572252},wd=2.4,bd=.0031308,xd=12.92,Sd=1.055,Pd=.055;function Md(t){const e=t.l,i=t.aAxis,n=t.bAxis,s=(e+pd)/gd,o=s+i/fd,a=s-n/yd,r=o**3,c=a**3,l=(r>dd?r:(gd*o-pd)/ud)*cd,h=(e>ud*dd?s**3:e/ud)*ld,d=(c>dd?c:(gd*a-pd)/ud)*hd,u=_d.x*l+_d.y*h+_d.z*d,p=md.x*l+md.y*h+md.z*d,g=vd.x*l+vd.y*h+vd.z*d,f=t=>{return Math.round(H((e=t)<=bd?xd*e:Sd*Math.pow(e,1/wd)-Pd,0,1)*rd);var e};return{r:f(u),g:f(p),b:f(g)}}const Cd=/lab\(\s*(\d+(\.\d+)?)%\s+(\d+(\.\d+)?)\s+(\d+(\.\d+)?)(?:\s*\/\s*(0|1|0?\.\d+|\d{1,3}%))?\s*\)/i;class Od{accepts(t){return t.startsWith("lab")}handleColor(t){const e=t.value.lab??t.value;if("l"in e&&"aAxis"in e&&"bAxis"in e)return Md(e)}handleRangeColor(t){const e=t.value.lab??t.value;if("l"in e&&"aAxis"in e&&"bAxis"in e)return Md({l:U(e.l),aAxis:U(e.aAxis),bAxis:U(e.bAxis)})}parseString(t){if(!this.accepts(t))return;const e=Cd.exec(t),i=1,n=3,s=5,o=7;return e?{a:(a={a:e[o]?st(e[o]):1,aAxis:parseFloat(e[n]??"0"),bAxis:parseFloat(e[s]??"0"),l:parseFloat(e[i]??"0")}).a,...Md(a)}:void 0;var a}}async function kd(t){t.checkVersion("4.0.0"),await t.pluginManager.register(t=>{t.pluginManager.addColorManager("lab",new Od)})}const Td=255,Dd=.95047,Vd=1,Id=1.08883,Ad=216/24389,Ed=24389/27,zd=16,Rd=116,Gd=500,Ld=200,Fd={x:3.2404542,y:-1.5371385,z:-.4985314},Hd={x:-.969266,y:1.8760108,z:.041556},Bd={x:.0556434,y:-.2040259,z:1.0572252},Nd=2.4,Ud=.0031308,$d=12.92,jd=1.055,qd=.055;function Wd(t){const e=t.l,i=t.c,n=Y(t.h),s=i*Math.cos(n),o=i*Math.sin(n),a=(e+zd)/Rd,r=a+s/Gd,c=a-o/Ld,l=r**3,h=c**3,d=(l>Ad?l:(Rd*r-zd)/Ed)*Dd,u=(e>Ed*Ad?a**3:e/Ed)*Vd,p=(h>Ad?h:(Rd*c-zd)/Ed)*Id,g=Fd.x*d+Fd.y*u+Fd.z*p,f=Hd.x*d+Hd.y*u+Hd.z*p,y=Bd.x*d+Bd.y*u+Bd.z*p,_=t=>{return Math.round(H((e=t)<=Ud?$d*e:jd*Math.pow(e,1/Nd)-qd,0,1)*Td);var e};return{r:_(g),g:_(f),b:_(y)}}const Qd=/lch\(\s*(\d+(\.\d+)?)%\s+(\d+(\.\d+)?)\s+(\d+(\.\d+)?)(?:\s*\/\s*(0|1|0?\.\d+|\d{1,3}%))?\s*\)/i;class Zd{accepts(t){return t.startsWith("lch")}handleColor(t){const e=t.value.lch??t.value;if("l"in e&&"c"in e&&"h"in e)return Wd(e)}handleRangeColor(t){const e=t.value.lch??t.value;if("l"in e&&"c"in e&&"h"in e)return Wd({l:U(e.l),c:U(e.c),h:U(e.h)})}parseString(t){if(!this.accepts(t))return;const e=Qd.exec(t),i=1,n=3,s=5,o=7;return e?{a:(a={a:e[o]?st(e[o]):1,c:parseFloat(e[n]??"0"),h:parseFloat(e[s]??"0"),l:parseFloat(e[i]??"0")}).a,...Wd(a)}:void 0;var a}}async function Xd(t){t.checkVersion("4.0.0"),await t.pluginManager.register(t=>{t.pluginManager.addColorManager("lch",new Zd)})}class Yd{options;_container;_res;constructor(t){this._container=t,this._res=M.origin,this.options={alpha:1.5,scale:1,maxStep:10}}generate(t){t.levy??={angle:R()*Math.PI*2,baseSpeed:t.velocity.length};const e=this.options,i=t.levy;i.angle+=.2*(R()-.5);const n=Math.max(R(),1e-6),s=e.scale??1,o=e.alpha??1.5;let a=s/Math.pow(n,1/o);void 0!==e.maxStep&&(a=Math.min(a,e.maxStep));const r=i.baseSpeed*a;return t.velocity.x=0,t.velocity.y=0,this._res.length=r,this._res.angle=i.angle,this._res}init(){const t=this._container.actualOptions.particles.move.path.options;this.options.alpha=t.alpha??this.options.alpha,this.options.scale=t.scale??this.options.scale,this.options.maxStep=t.maxStep??this.options.maxStep}reset(t){delete t.levy}update(){}}async function Kd(t){t.checkVersion("4.0.0"),await t.pluginManager.register(t=>{Ei(t),t.pluginManager.addPathGenerator?.("levyPathGenerator",t=>Promise.resolve(new Yd(t)))})}const Jd=1,tu=0,eu=Math.PI*a,iu=Math.PI*w,nu="light";class su{start;stop;constructor(){this.start=new ce,this.stop=new ce,this.start.value="#ffffff",this.stop.value="#000000"}load(t){I(t)||(this.start=ce.create(this.start,t.start),this.stop=ce.create(this.stop,t.stop))}}class ou{gradient;radius;constructor(){this.gradient=new su,this.radius=1e3}load(t){I(t)||(this.gradient.load(t.gradient),void 0!==t.radius&&(this.radius=t.radius))}}class au{color;length;constructor(){this.color=new ce,this.color.value="#000000",this.length=2e3}load(t){I(t)||(this.color=ce.create(this.color,t.color),void 0!==t.length&&(this.length=t.length))}}class ru{area;shadow;constructor(){this.area=new ou,this.shadow=new au}load(t){I(t)||(this.area.load(t.area),this.shadow.load(t.shadow))}}class cu extends Vs{maxDistance=0;_pluginManager;constructor(t,e){super(e),this._pluginManager=t}clear(){}init(){}interact(t){const e=this.container,i=e.actualOptions,n=t;if(!i.interactivity?.events.onHover.enable||"pointermove"!==n.status)return;const s=n.mouse.position;s&&e.canvas.render.draw(t=>{!function(t,e,i){const n=t.actualOptions.interactivity?.modes.light?.area;if(!n)return;e.beginPath(),e.arc(i.x,i.y,n.radius,0,u);const s=e.createRadialGradient(i.x,i.y,0,i.x,i.y,n.radius),o=t.canvas.mouseLight;o?.start&&o.stop&&(s.addColorStop(tu,hi(o.start,t.hdr)),s.addColorStop(Jd,hi(o.stop,t.hdr)),e.fillStyle=s,e.fill())}(e,t,s)})}isEnabled(t,e){const i=this.container,n=t.mouse,s=e?.interactivity??i.actualOptions.interactivity,o=s?.events;if(!o?.onHover.enable||!n.position)return!1;const a=_t(nu,o.onHover.mode);if(a&&s?.modes.light){const t=s.modes.light.area.gradient;i.canvas.mouseLight={start:ei(this._pluginManager,t.start),stop:ei(this._pluginManager,t.stop)}}return a}loadModeOptions(t,...e){t.light??=new ru;for(const i of e)t.light.load(i?.light)}reset(){}}class lu extends Is{maxDistance;_pluginManager;constructor(t,e){super(e),this._pluginManager=t,this.maxDistance=0}clear(){}init(){}interact(t,e){const i=this.container,n=i.actualOptions;if(!n.interactivity?.events.onHover.enable||"pointermove"!==e.status)return;const s=e.mouse.position;s&&i.canvas.render.draw(e=>{!function(t,e,i,n){const s=i.getPosition(),o=t.actualOptions.interactivity?.modes.light?.shadow;if(!o)return;const a=i.lightShadow;if(!a)return;const r=i.getRadius(),c=i.sides,l=u/c,h=-i.rotation+iu,d=[];for(let t=0;t<c;t++)d.push({x:s.x+r*Math.sin(h+l*t)*1,y:s.y+r*Math.cos(h+l*t)*1});const p=[],g=o.length;for(const t of d){const e=Math.atan2(n.y-t.y,n.x-t.x),i={x:t.x+g*Math.sin(-e-eu),y:t.y+g*Math.cos(-e-eu)};p.push({end:i,start:t})}const f=hi(a,t.hdr);for(let t=p.length-1,i=0;t>=0;i=t--){e.beginPath();const n=p[t],s=p[i];n&&s&&(e.moveTo(n.start.x,n.start.y),e.lineTo(s.start.x,s.start.y),e.lineTo(s.end.x,s.end.y),e.lineTo(n.end.x,n.end.y),e.fillStyle=f,e.fill())}}(i,e,t,s)})}isEnabled(t,e){const i=t.interactivity,n=e.mouse,s=i.events;if(!s.onHover.enable||!n.position)return!1;const o=_t(nu,s.onHover.mode);if(o&&i.modes.light){const e=i.modes.light.shadow;t.lightShadow=ei(this._pluginManager,e.color)}return o}reset(){}}async function hu(t){t.checkVersion("4.0.0"),await t.pluginManager.register(t=>{$s(t),t.pluginManager.addInteractor?.("externalLight",e=>Promise.resolve(new cu(t.pluginManager,e))),t.pluginManager.addInteractor?.("particlesLight",e=>Promise.resolve(new lu(t.pluginManager,e)))})}class du{options;position;load(e){I(e)||(e.position&&(this.position={x:e.position.x??50,y:e.position.y??50,mode:e.position.mode??t.PixelMode.percent}),e.options&&(this.options=St({},e.options)))}}class uu{id="manual-particles";async getPlugin(t){const{ManualParticlesPluginInstance:e}=await Promise.resolve().then(function(){return Lf});return new e(t)}loadOptions(t,e,i){(this.needsPlugin(e)||this.needsPlugin(i))&&(e.manualParticles??=[],i?.manualParticles&&(e.manualParticles=i.manualParticles.map(t=>{const e=new du;return e.load(t),e})))}needsPlugin(t){return!!t?.manualParticles?.length}}async function pu(t){t.checkVersion("4.0.0"),await t.pluginManager.register(t=>{t.pluginManager.addPlugin(new uu)})}const gu=["ア","イ","ウ","エ","オ","カ","キ","ク","ケ","コ","サ","シ","ス","セ","ソ","タ","チ","ツ","テ","ト","ナ","ニ","ヌ","ネ","ノ","ハ","ヒ","フ","ヘ","ホ","マ","ミ","ム","メ","モ","ヤ","ユ","ヨ","ラ","リ","ル","レ","ロ","ワ","ヲ","ン","ガ","ギ","グ","ゲ","ゴ","ザ","ジ","ズ","ゼ","ゾ","ダ","ヂ","ヅ","デ","ド","バ","ビ","ブ","ベ","ボ","パ","ピ","プ","ペ","ポ","ァ","ィ","ゥ","ェ","ォ","ャ","ュ","ョ","ッ","ー","ヴ","0","1","2","3","4","5","6","7","8","9","0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","日","本","人","大","中","小","上","下","左","右","力","時","空","生","死","無","有","!","@","#","$","%","&","*","+","-","=","?","/","\\","|","<",">","{","}","[","]","(",")"],fu=new WeakMap;function yu(){return gu[Math.floor(R()*gu.length)]??" "}function _u(t,e){return t+R()*(e-t)}function mu(t){const{context:e,radius:i,particle:n,delta:s,fill:o,stroke:a}=t,r=n.shapeData,l=$(r?.interval??100),h=j(r?.interval??2e3),d=function(t,e,i){let n=fu.get(t);return n||(n={char:yu(),elapsed:0,interval:_u(e,i)},fu.set(t,n)),n}(n,l,h);d.elapsed+=s.value,d.elapsed>=d.interval&&(d.char=yu(),d.elapsed-=d.interval,d.interval=_u(l,h));const u=Math.round(2*i);e.font=`bold ${u}px "Courier New", Courier, monospace`,e.textAlign="center",e.textBaseline="middle",o&&e.fillText(d.char,c.x,c.y),a&&e.strokeText(d.char,c.x,c.y)}class vu{draw(t){mu(t)}}async function wu(t){t.checkVersion("4.0.0"),await t.pluginManager.register(t=>{t.pluginManager.addShape(["matrix"],()=>Promise.resolve(new vu))})}class bu{factor;value;constructor(){this.factor=4,this.value=!0}load(t){I(t)||(void 0!==t.factor&&(this.factor=t.factor),void 0!==t.value&&(this.value=t.value))}}class xu{disable;reduce;constructor(){this.disable=!0,this.reduce=new bu}load(t){I(t)||(void 0!==t.disable&&(this.disable=t.disable),this.reduce.load(t.reduce))}}class Su{id="motion";async getPlugin(t){const{MotionPluginInstance:e}=await Promise.resolve().then(function(){return Ff});return new e(t)}loadOptions(t,e,i){if(!this.needsPlugin())return;let n=e.motion;n?.load||(e.motion=n=new xu),n.load(i?.motion)}needsPlugin(){return!0}}async function Pu(t){t.checkVersion("4.0.0"),await t.pluginManager.register(t=>{t.pluginManager.addPlugin(new Su)})}const Mu=new Map([["aliceblue",{r:240,g:248,b:255}],["antiquewhite",{r:250,g:235,b:215}],["aqua",{r:0,g:255,b:255}],["aquamarine",{r:127,g:255,b:212}],["azure",{r:240,g:255,b:255}],["beige",{r:245,g:245,b:220}],["bisque",{r:255,g:228,b:196}],["black",{r:0,g:0,b:0}],["blanchedalmond",{r:255,g:235,b:205}],["blue",{r:0,g:0,b:255}],["blueviolet",{r:138,g:43,b:226}],["brown",{r:165,g:42,b:42}],["burlywood",{r:222,g:184,b:135}],["cadetblue",{r:95,g:158,b:160}],["chartreuse",{r:127,g:255,b:0}],["chocolate",{r:210,g:105,b:30}],["coral",{r:255,g:127,b:80}],["cornflowerblue",{r:100,g:149,b:237}],["cornsilk",{r:255,g:248,b:220}],["crimson",{r:220,g:20,b:60}],["cyan",{r:0,g:255,b:255}],["darkblue",{r:0,g:0,b:139}],["darkcyan",{r:0,g:139,b:139}],["darkgoldenrod",{r:184,g:134,b:11}],["darkgray",{r:169,g:169,b:169}],["darkgreen",{r:0,g:100,b:0}],["darkgrey",{r:169,g:169,b:169}],["darkkhaki",{r:189,g:183,b:107}],["darkmagenta",{r:139,g:0,b:139}],["darkolivegreen",{r:85,g:107,b:47}],["darkorange",{r:255,g:140,b:0}],["darkorchid",{r:153,g:50,b:204}],["darkred",{r:139,g:0,b:0}],["darksalmon",{r:233,g:150,b:122}],["darkseagreen",{r:143,g:188,b:143}],["darkslateblue",{r:72,g:61,b:139}],["darkslategray",{r:47,g:79,b:79}],["darkslategrey",{r:47,g:79,b:79}],["darkturquoise",{r:0,g:206,b:209}],["darkviolet",{r:148,g:0,b:211}],["deeppink",{r:255,g:20,b:147}],["deepskyblue",{r:0,g:191,b:255}],["dimgray",{r:105,g:105,b:105}],["dimgrey",{r:105,g:105,b:105}],["dodgerblue",{r:30,g:144,b:255}],["firebrick",{r:178,g:34,b:34}],["floralwhite",{r:255,g:250,b:240}],["forestgreen",{r:34,g:139,b:34}],["fuchsia",{r:255,g:0,b:255}],["gainsboro",{r:220,g:220,b:220}],["ghostwhite",{r:248,g:248,b:255}],["gold",{r:255,g:215,b:0}],["goldenrod",{r:218,g:165,b:32}],["gray",{r:128,g:128,b:128}],["green",{r:0,g:128,b:0}],["greenyellow",{r:173,g:255,b:47}],["grey",{r:128,g:128,b:128}],["honeydew",{r:240,g:255,b:240}],["hotpink",{r:255,g:105,b:180}],["indianred",{r:205,g:92,b:92}],["indigo",{r:75,g:0,b:130}],["ivory",{r:255,g:255,b:240}],["khaki",{r:240,g:230,b:140}],["lavender",{r:230,g:230,b:250}],["lavenderblush",{r:255,g:240,b:245}],["lawngreen",{r:124,g:252,b:0}],["lemonchiffon",{r:255,g:250,b:205}],["lightblue",{r:173,g:216,b:230}],["lightcoral",{r:240,g:128,b:128}],["lightcyan",{r:224,g:255,b:255}],["lightgoldenrodyellow",{r:250,g:250,b:210}],["lightgray",{r:211,g:211,b:211}],["lightgreen",{r:144,g:238,b:144}],["lightgrey",{r:211,g:211,b:211}],["lightpink",{r:255,g:182,b:193}],["lightsalmon",{r:255,g:160,b:122}],["lightseagreen",{r:32,g:178,b:170}],["lightskyblue",{r:135,g:206,b:250}],["lightslategray",{r:119,g:136,b:153}],["lightslategrey",{r:119,g:136,b:153}],["lightsteelblue",{r:176,g:196,b:222}],["lightyellow",{r:255,g:255,b:224}],["lime",{r:0,g:255,b:0}],["limegreen",{r:50,g:205,b:50}],["linen",{r:250,g:240,b:230}],["magenta",{r:255,g:0,b:255}],["maroon",{r:128,g:0,b:0}],["mediumaquamarine",{r:102,g:205,b:170}],["mediumblue",{r:0,g:0,b:205}],["mediumorchid",{r:186,g:85,b:211}],["mediumpurple",{r:147,g:112,b:219}],["mediumseagreen",{r:60,g:179,b:113}],["mediumslateblue",{r:123,g:104,b:238}],["mediumspringgreen",{r:0,g:250,b:154}],["mediumturquoise",{r:72,g:209,b:204}],["mediumvioletred",{r:199,g:21,b:133}],["midnightblue",{r:25,g:25,b:112}],["mintcream",{r:245,g:255,b:250}],["mistyrose",{r:255,g:228,b:225}],["moccasin",{r:255,g:228,b:181}],["navajowhite",{r:255,g:222,b:173}],["navy",{r:0,g:0,b:128}],["oldlace",{r:253,g:245,b:230}],["olive",{r:128,g:128,b:0}],["olivedrab",{r:107,g:142,b:35}],["orange",{r:255,g:165,b:0}],["orangered",{r:255,g:69,b:0}],["orchid",{r:218,g:112,b:214}],["palegoldenrod",{r:238,g:232,b:170}],["palegreen",{r:152,g:251,b:152}],["paleturquoise",{r:175,g:238,b:238}],["palevioletred",{r:219,g:112,b:147}],["papayawhip",{r:255,g:239,b:213}],["peachpuff",{r:255,g:218,b:185}],["peru",{r:205,g:133,b:63}],["pink",{r:255,g:192,b:203}],["plum",{r:221,g:160,b:221}],["powderblue",{r:176,g:224,b:230}],["purple",{r:128,g:0,b:128}],["rebeccapurple",{r:102,g:51,b:153}],["red",{r:255,g:0,b:0}],["rosybrown",{r:188,g:143,b:143}],["royalblue",{r:65,g:105,b:225}],["saddlebrown",{r:139,g:69,b:19}],["salmon",{r:250,g:128,b:114}],["sandybrown",{r:244,g:164,b:96}],["seagreen",{r:46,g:139,b:87}],["seashell",{r:255,g:245,b:238}],["sienna",{r:160,g:82,b:45}],["silver",{r:192,g:192,b:192}],["skyblue",{r:135,g:206,b:235}],["slateblue",{r:106,g:90,b:205}],["slategray",{r:112,g:128,b:144}],["slategrey",{r:112,g:128,b:144}],["snow",{r:255,g:250,b:250}],["springgreen",{r:0,g:255,b:127}],["steelblue",{r:70,g:130,b:180}],["tan",{r:210,g:180,b:140}],["teal",{r:0,g:128,b:128}],["thistle",{r:216,g:191,b:216}],["tomato",{r:255,g:99,b:71}],["turquoise",{r:64,g:224,b:208}],["violet",{r:238,g:130,b:238}],["wheat",{r:245,g:222,b:179}],["white",{r:255,g:255,b:255}],["whitesmoke",{r:245,g:245,b:245}],["yellow",{r:255,g:255,b:0}],["yellowgreen",{r:154,g:205,b:50}]]);class Cu{accepts(t){return Mu.has(t.toLowerCase())}handleColor(t){return this._parseString(t.value)}handleRangeColor(t){return this._parseString(t.value)}parseString(t){return this._parseString(t)}_parseString(t){if(!t||"string"!=typeof t)return;const e=Mu.get(t.toLowerCase());if(e)return{...e,a:255};$t().error("Color not found",t)}}async function Ou(t){t.checkVersion("4.0.0"),await t.pluginManager.register(t=>{t.pluginManager.addColorManager("named",new Cu)})}const ku={L:1,a:.3963377774,b:.2158037573},Tu={L:1,a:-.1055613458,b:-.0638541728},Du={L:1,a:-.0894841775,b:-1.291485548},Vu={l:4.0767416621,m:-3.3077115913,s:.2309699292},Iu={l:-1.2684380046,m:2.6097574011,s:-.3413193965},Au={l:-.0041960863,m:-.7034186147,s:1.707614701},Eu=2.4,zu=.0031308,Ru=12.92,Gu=.055,Lu=1.055;function Fu(t){const e=t.l/o,i=t.aAxis,n=t.bAxis,s=(ku.L*e+ku.a*i+ku.b*n)**3,a=(Tu.L*e+Tu.a*i+Tu.b*n)**3,r=(Du.L*e+Du.a*i+Du.b*n)**3,c=Vu.l*s+Vu.m*a+Vu.s*r,l=Iu.l*s+Iu.m*a+Iu.s*r,h=Au.l*s+Au.m*a+Au.s*r,d=t=>{return Math.round(H((e=t)<=zu?Ru*e:Lu*Math.pow(e,1/Eu)-Gu,0,1)*y);var e};return{r:d(c),g:d(l),b:d(h)}}const Hu=/oklab\(\s*(\d+(\.\d+)?)%\s+(-?\d+(\.\d+)?)\s+(-?\d+(\.\d+)?)(?:\s*\/\s*(0|1|0?\.\d+|\d{1,3}%))?\s*\)/i;class Bu{accepts(t){return t.startsWith("oklab")}handleColor(t){const e=t.value.oklab??t.value;if("l"in e&&"aAxis"in e&&"bAxis"in e)return Fu(e)}handleRangeColor(t){const e=t.value.oklab??t.value;if("l"in e&&"aAxis"in e&&"bAxis"in e)return Fu({l:U(e.l),aAxis:U(e.aAxis),bAxis:U(e.bAxis)})}parseString(t){if(!this.accepts(t))return;const e=Hu.exec(t),i=1,n=3,s=5,o=7;return e?{a:(a={a:e[o]?st(e[o]):1,l:parseFloat(e[i]??"0"),aAxis:parseFloat(e[n]??"0"),bAxis:parseFloat(e[s]??"0")}).a,...Fu(a)}:void 0;var a}}async function Nu(t){t.checkVersion("4.0.0"),await t.pluginManager.register(t=>{t.pluginManager.addColorManager("oklab",new Bu)})}const Uu={L:1,a:.3963377774,b:.2158037573},$u={L:1,a:-.1055613458,b:-.0638541728},ju={L:1,a:-.0894841775,b:-1.291485548},qu={l:4.0767416621,m:-3.3077115913,s:.2309699292},Wu={l:-1.2684380046,m:2.6097574011,s:-.3413193965},Qu={l:-.0041960863,m:-.7034186147,s:1.707614701},Zu=2.4,Xu=.0031308,Yu=12.92,Ku=1.055,Ju=.055;function tp(t){const e=t.l/o,i=t.c/o,n=Y(t.h),s=i*Math.cos(n),a=i*Math.sin(n),r=(Uu.L*e+Uu.a*s+Uu.b*a)**3,c=($u.L*e+$u.a*s+$u.b*a)**3,l=(ju.L*e+ju.a*s+ju.b*a)**3,h=qu.l*r+qu.m*c+qu.s*l,d=Wu.l*r+Wu.m*c+Wu.s*l,u=Qu.l*r+Qu.m*c+Qu.s*l,p=t=>{return Math.round(H((e=t)<=Xu?Yu*e:Ku*Math.pow(e,1/Zu)-Ju,0,1)*y);var e};return{r:p(h),g:p(d),b:p(u)}}const ep=/oklch\(\s*(\d+(\.\d+)?)%\s+(\d+(\.\d+)?)\s+(\d+(\.\d+)?)(°)?(?:\s*\/\s*(0|1|0?\.\d+|\d{1,3}%))?\s*\)/i;class ip{accepts(t){return t.startsWith("oklch")}handleColor(t){const e=t.value.oklch??t.value;if("l"in e&&"c"in e&&"h"in e)return tp(e)}handleRangeColor(t){const e=t.value.oklch??t.value;if("l"in e&&"c"in e&&"h"in e)return tp({l:U(e.l),c:U(e.c),h:U(e.h)})}parseString(t){if(!this.accepts(t))return;const e=ep.exec(t),i=1,n=3,s=5,o=7;return e?{a:(a={a:e[o]?st(e[o]):1,c:parseFloat(e[n]??"0"),h:parseFloat(e[s]??"0"),l:parseFloat(e[i]??"0")}).a,...tp(a)}:void 0;var a}}async function np(t){t.checkVersion("4.0.0"),await t.pluginManager.register(t=>{t.pluginManager.addColorManager("oklch",new ip)})}class sp extends me{constructor(){super(),this.value=45}load(t){I(t)||super.load(t)}}class op{animation;color;enable;opacity;radius;rotation;width;constructor(){this.animation=new se,this.enable=!1,this.opacity=1,this.rotation=new sp,this.width=1}load(t){I(t)||(this.animation.load(t.animation),this.rotation.load(t.rotation),void 0!==t.enable&&(this.enable=t.enable),void 0!==t.opacity&&(this.opacity=q(t.opacity)),void 0!==t.width&&(this.width=q(t.width)),void 0!==t.radius&&(this.radius=q(t.radius)),void 0!==t.color&&(this.color=ce.create(this.color,t.color)))}}var ap;!function(t){t.front="front",t.back="back"}(ap||(ap={}));const rp=Math.PI*a,cp=Math.PI+rp;class lp{_container;_pluginManager;constructor(t,e){this._pluginManager=t,this._container=e}afterDraw(t){const e=t.options.orbit;e?.enable&&this.drawOrbit(t,ap.front)}beforeDraw(t){const e=t.options.orbit;e?.enable&&this.drawOrbit(t,ap.back)}drawOrbit(t,e){const i=this._container;let n,s;switch(e){case ap.back:n=rp,s=cp;break;case ap.front:n=cp,s=rp;break;default:n=0,s=u}i.canvas.render.draw(e=>{!function(t,e,i,n,s,o,r,c,l,h){if(r<=0)return;const d=i.getPosition();n&&(e.strokeStyle=ui(n,t.hdr,o)),e.lineWidth=r;const u=Y(c);e.beginPath(),e.ellipse(d.x,d.y,s*a,2*s,u,l,h),e.stroke()}(i,e,t,t.orbitColor??t.getFillColor(),t.retina.orbitRadius??i.retina.orbitRadius??t.getRadius(),t.orbitOpacity??1,t.orbitWidth??1,(t.orbitRotation??0)*i.retina.pixelRatio,n,s)})}init(t){const e=this._container,i=t.options.orbit;i?.enable&&(t.orbitRotation=U(i.rotation.value),t.orbitColor=ni(this._pluginManager,i.color),t.retina.orbitRadius=void 0!==i.radius?U(i.radius)*e.retina.pixelRatio:void 0,e.retina.orbitRadius=t.retina.orbitRadius,t.orbitAnimationSpeed=i.animation.enable?U(i.animation.speed):0,t.orbitWidth=U(i.width),t.orbitOpacity=U(i.opacity))}isEnabled(t){const e=t.options.orbit?.animation;return!t.destroyed&&!t.spawning&&!!e?.enable}loadOptions(t,...e){t.orbit??=new op;for(const i of e)t.orbit.load(i?.orbit)}update(t,e){this.isEnabled(t)&&(t.orbitRotation??=0,t.orbitRotation+=(t.orbitAnimationSpeed??0/u)*e.factor)}}async function hp(t){t.checkVersion("4.0.0"),await t.pluginManager.register(t=>{t.pluginManager.addParticleUpdater("orbit",e=>Promise.resolve(new lp(t.pluginManager,e)))})}class dp{_container;constructor(t){this._container=t}drawAfter(t){const{particle:e}=t,{_container:i}=this;if(!e.particlesNextSpawn)return;const n=performance.now();if(n<e.particlesNextSpawn)return;e.particlesNextSpawn=n+(e.particlesSpawnRate??1e3);const s=e.particlesSpawnQuantity??1,o=St({},e.particlesData?.spawn?.particles),a={...e.getPosition()};for(let t=0;t<s;t++)i.particles.addParticle(a,o)}particleInit(t,e){const i=e.effectData,n=U(i?.spawn?.rate?.delay??1);e.particlesSpawnQuantity=U(i?.spawn?.rate?.quantity??1),e.particlesSpawnRate=(n>0?n:1)*r,e.particlesNextSpawn=performance.now()+e.particlesSpawnRate,e.particlesData=i}}async function up(t){t.checkVersion("4.0.0"),await t.pluginManager.register(t=>{t.pluginManager.addEffect("particles",t=>Promise.resolve(new dp(t)))})}class pp extends me{distance;duration;enabled;factor;speed;constructor(){super(),this.enabled=!1,this.distance=1,this.duration=1,this.factor=1,this.speed=1}load(t){super.load(t),I(t)||(void 0!==t.enabled&&(this.enabled=t.enabled),void 0!==t.distance&&(this.distance=q(t.distance)),void 0!==t.duration&&(this.duration=q(t.duration)),void 0!==t.factor&&(this.factor=q(t.factor)),void 0!==t.speed&&(this.speed=q(t.speed)))}}class gp extends Is{_maxDistance;_normVec;_velocityVec;constructor(t){super(t),this._maxDistance=0,this._normVec=M.origin,this._velocityVec=M.origin}get maxDistance(){return this._maxDistance}clear(){}init(){}interact(t){const e=this.container;if(!t.repulse){const i=t.options.repulse;if(!i)return;const n=U(i.distance);n>this.maxDistance&&(this._maxDistance=n),t.repulse={distance:n*e.retina.pixelRatio,speed:U(i.speed),factor:U(i.factor)}}const i=t.getPosition(),n=e.particles.grid.queryCircle(i,t.repulse.distance),s=1/t.repulse.distance;for(const e of n){if(t===e||e.destroyed)continue;const n=e.getPosition(),{dx:o,dy:a,distance:r}=W(n,i),c=1/r,l=t.repulse.speed*t.repulse.factor;if(r>0){const t=H((1-Math.pow(r*s,2))*l,0,l)*c;this._normVec.x=o*t,this._normVec.y=a*t,e.position.addTo(this._normVec)}else this._velocityVec.x=l,this._velocityVec.y=l,e.position.addTo(this._velocityVec)}}isEnabled(t){return t.options.repulse?.enabled??!1}loadParticlesOptions(t,...e){t.repulse??=new pp;for(const i of e)t.repulse.load(i?.repulse)}reset(){}}async function fp(t){t.checkVersion("4.0.0"),await t.pluginManager.register(t=>{$s(t),t.pluginManager.addInteractor?.("particlesRepulse",t=>Promise.resolve(new gp(t)))})}class yp{draw(t){const{context:e,particle:i,radius:n}=t;i.pathData&&Ki(e,n,i.pathData)}particleInit(t,e){const i=e.shapeData;i&&(e.pathData=St({},i))}}async function _p(t){t.checkVersion("4.0.0"),await t.pluginManager.register(t=>{t.pluginManager.addShape(["path"],()=>Promise.resolve(new yp))})}class mp{w;x;y;z;constructor(t,e,i,n){this.x=t,this.y=e,this.z=i,this.w=n}dot2(t,e){return this.x*t+this.y*e}dot3(t,e,i){return this.dot2(t,e)+this.z*i}dot4(t,e,i,n){return this.dot3(t,e,i)+this.w*n}}class vp{_grad4;_gradP;_p;_perm;constructor(){this._grad4=[new mp(0,1,1,1),new mp(0,1,1,-1),new mp(0,1,-1,1),new mp(0,1,-1,-1),new mp(0,-1,1,1),new mp(0,-1,1,-1),new mp(0,-1,-1,1),new mp(0,-1,-1,-1),new mp(1,0,1,1),new mp(1,0,1,-1),new mp(1,0,-1,1),new mp(1,0,-1,-1),new mp(-1,0,1,1),new mp(-1,0,1,-1),new mp(-1,0,-1,1),new mp(-1,0,-1,-1),new mp(1,1,0,1),new mp(1,1,0,-1),new mp(1,-1,0,1),new mp(1,-1,0,-1),new mp(-1,1,0,1),new mp(-1,1,0,-1),new mp(-1,-1,0,1),new mp(-1,-1,0,-1),new mp(1,1,1,0),new mp(1,1,-1,0),new mp(1,-1,1,0),new mp(1,-1,-1,0),new mp(-1,1,1,0),new mp(-1,1,-1,0),new mp(-1,-1,1,0),new mp(-1,-1,-1,0)],this._p=[151,160,137,91,90,15,131,13,201,95,96,53,194,233,7,225,140,36,103,30,69,142,8,99,37,240,21,10,23,190,6,148,247,120,234,75,0,26,197,62,94,252,219,203,117,35,11,32,57,177,33,88,237,149,56,87,174,20,125,136,171,168,68,175,74,165,71,134,139,48,27,166,77,146,158,231,83,111,229,122,60,211,133,230,220,105,92,41,55,46,245,40,244,102,143,54,65,25,63,161,1,216,80,73,209,76,132,187,208,89,18,169,200,196,135,130,116,188,159,86,164,100,109,198,173,186,3,64,52,217,226,250,124,123,5,202,38,147,118,126,255,82,85,212,207,206,59,227,47,16,58,17,182,189,28,42,223,183,170,213,119,248,152,2,44,154,163,70,221,153,101,155,167,43,172,9,129,22,39,253,19,98,108,110,79,113,224,232,178,185,112,104,218,246,97,228,251,34,242,193,238,210,144,12,191,179,162,241,81,51,145,235,249,14,239,107,49,192,214,31,181,199,106,157,184,84,204,176,115,121,50,45,127,4,150,254,138,236,205,93,222,114,67,29,24,72,243,141,128,195,78,66,215,61,156,180],this._gradP=new Array(512),this._perm=new Array(512)}noise2d(t,e){const{_gradP:i,_perm:n}=this;let s=Math.floor(t),o=Math.floor(e);t-=s,e-=o,s&=255,o&=255;const a=i[s+n[o]].dot2(t,e),r=i[s+n[o+1]].dot2(t,e-1),c=i[s+1+n[o]].dot2(t-1,e),l=i[s+1+n[o+1]].dot2(t-1,e-1),h=this._fade(t);return this._lerp(this._lerp(a,c,h),this._lerp(r,l,h),this._fade(e))}noise3d(t,e,i){const{_gradP:n,_perm:s}=this;let o=Math.floor(t),a=Math.floor(e),r=Math.floor(i);t-=o,e-=a,i-=r,o&=255,a&=255,r&=255;const c=n[o+s[a+s[r]]].dot3(t,e,i),l=n[o+s[a+s[r+1]]].dot3(t,e,i-1),h=n[o+s[a+1+s[r]]].dot3(t,e-1,i),d=n[o+s[a+1+s[r+1]]].dot3(t,e-1,i-1),u=n[o+1+s[a+s[r]]].dot3(t-1,e,i),p=n[o+1+s[a+s[r+1]]].dot3(t-1,e,i-1),g=n[o+1+s[a+1+s[r]]].dot3(t-1,e-1,i),f=n[o+1+s[a+1+s[r+1]]].dot3(t-1,e-1,i-1),y=this._fade(t),_=this._fade(e),m=this._fade(i);return this._lerp(this._lerp(this._lerp(c,u,y),this._lerp(l,p,y),m),this._lerp(this._lerp(h,g,y),this._lerp(d,f,y),m),_)}noise4d(t,e,i,n){const{_gradP:s,_perm:o}=this;let a=Math.floor(t),r=Math.floor(e),c=Math.floor(i),l=Math.floor(n);t-=a,e-=r,i-=c,n-=l,a&=255,r&=255,c&=255,l&=255;const h=this._fade(t),d=this._fade(e),u=this._fade(i),p=this._fade(n),g=(t,e,i,n)=>s[a+t+o[r+e+o[c+i+o[l+n]]]],f=g(0,0,0,0).dot4(t,e,i,n),y=g(0,0,0,1).dot4(t,e,i,n-1),_=g(0,0,1,0).dot4(t,e,i-1,n),m=g(0,0,1,1).dot4(t,e,i-1,n-1),v=g(0,1,0,0).dot4(t,e-1,i,n),w=g(0,1,0,1).dot4(t,e-1,i,n-1),b=g(0,1,1,0).dot4(t,e-1,i-1,n),x=g(0,1,1,1).dot4(t,e-1,i-1,n-1),S=g(1,0,0,0).dot4(t-1,e,i,n),P=g(1,0,0,1).dot4(t-1,e,i,n-1),M=g(1,0,1,0).dot4(t-1,e,i-1,n),C=g(1,0,1,1).dot4(t-1,e,i-1,n-1),O=g(1,1,0,0).dot4(t-1,e-1,i,n),k=g(1,1,0,1).dot4(t-1,e-1,i,n-1),T=g(1,1,1,0).dot4(t-1,e-1,i-1,n),D=g(1,1,1,1).dot4(t-1,e-1,i-1,n-1),V=this._lerp(f,S,h),I=this._lerp(y,P,h),A=this._lerp(_,M,h),E=this._lerp(m,C,h),z=this._lerp(V,A,u),R=this._lerp(I,E,u),G=this._lerp(v,O,h),L=this._lerp(w,k,h),F=this._lerp(b,T,h),H=this._lerp(x,D,h),B=this._lerp(G,F,u),N=this._lerp(L,H,u),U=this._lerp(z,B,d),$=this._lerp(R,N,d);return this._lerp(U,$,p)}seed(t){const{_grad4:e,_gradP:i,_perm:n,_p:s}=this;let o=t;o>0&&o<1&&(o*=65536),o=Math.floor(o),o<256&&(o|=o<<8);const a=e.length;for(let t=0;t<256;t++){const r=1&t?s[t]^255&o:s[t]^o>>8&255;n[t]=n[t+256]=r,i[t]=i[t+256]=e[r%a]}}_fade(t){return t*t*t*(t*(6*t-15)+10)}_lerp(t,e,i){return(1-i)*t+i*e}}class wp extends _a{constructor(t){const e=new vp;super(t,{noise4d:(t,i,n,s)=>e.noise4d(t,i,n,s),seed:t=>{e.seed(t)}})}}async function bp(t){t.checkVersion("4.0.0"),await t.pluginManager.register(t=>{Ei(t),t.pluginManager.addPathGenerator?.("perlinNoise",t=>Promise.resolve(new wp(t)))})}class xp{dimensions;enable;radius;retries;steps;constructor(){this.enable=!1,this.dimensions=2,this.radius=0,this.retries=30,this.steps=0}load(t){I(t)||(void 0!==t.enable&&(this.enable=t.enable),void 0!==t.dimensions&&(this.dimensions=t.dimensions),void 0!==t.radius&&(this.radius=t.radius),void 0!==t.retries&&(this.retries=t.retries))}}class Sp{id="poisson";async getPlugin(t){const{PoissonDiscPluginInstance:e}=await Promise.resolve().then(function(){return Hf});return new e(t)}loadOptions(t,e,i){if(!this.needsPlugin(e)&&!this.needsPlugin(i))return;let n=e.poisson;void 0===n?.load&&(e.poisson=n=new xp),n.load(i?.poisson)}needsPlugin(t){return t?.poisson?.enable??!1}}async function Pp(t){t.checkVersion("4.0.0"),await t.pluginManager.register(t=>{t.pluginManager.addPlugin(new Sp)})}class Mp{color;opacity;width;_pluginManager;constructor(t){this._pluginManager=t,this.color=new ce,this.width=.5,this.opacity=1}load(t){I(t)||(this.color=ce.create(this.color,t.color),O(this.color.value)&&(this.opacity=oi(this._pluginManager,this.color.value)??this.opacity),void 0!==t.opacity&&(this.opacity=t.opacity),void 0!==t.width&&(this.width=t.width))}}class Cp{enable;stroke;constructor(t){this.enable=!1,this.stroke=new Mp(t)}load(t){if(I(t))return;void 0!==t.enable&&(this.enable=t.enable);const e=t.stroke;this.stroke.load(e)}}var Op,kp,Tp;!function(t){t.equidistant="equidistant",t.onePerPoint="one-per-point",t.perPoint="per-point",t.randomLength="random-length",t.randomPoint="random-point"}(Op||(Op={}));class Dp{arrangement;constructor(){this.arrangement=Op.onePerPoint}load(t){I(t)||void 0!==t.arrangement&&(this.arrangement=t.arrangement)}}class Vp{path;size;constructor(){this.path=[],this.size={height:0,width:0}}load(t){I(t)||(void 0!==t.path&&(this.path=t.path),void 0!==t.size&&(void 0!==t.size.width&&(this.size.width=t.size.width),void 0!==t.size.height&&(this.size.height=t.size.height)))}}!function(t){t.path="path",t.radius="radius"}(kp||(kp={}));class Ip{radius;type;constructor(){this.radius=10,this.type=kp.path}load(t){I(t)||(void 0!==t.radius&&(this.radius=t.radius),void 0!==t.type&&(this.type=t.type))}}!function(t){t.inline="inline",t.inside="inside",t.outside="outside",t.none="none"}(Tp||(Tp={}));class Ap{data;draw;enable;inline;move;position;scale;type;url;constructor(t){this.draw=new Cp(t),this.enable=!1,this.inline=new Dp,this.move=new Ip,this.scale=1,this.type=Tp.none}load(t){I(t)||(this.draw.load(t.draw),this.inline.load(t.inline),this.move.load(t.move),void 0!==t.scale&&(this.scale=t.scale),void 0!==t.type&&(this.type=t.type),void 0!==t.enable?this.enable=t.enable:this.enable=this.type!==Tp.none,void 0!==t.url&&(this.url=t.url),void 0!==t.data&&(O(t.data)?this.data=t.data:(this.data=new Vp,this.data.load(t.data))),void 0!==t.position&&(this.position=St({},t.position)))}}class Ep{id="polygon-mask";_pluginManager;constructor(t){this._pluginManager=t}async getPlugin(t){const{PolygonMaskInstance:e}=await Promise.resolve().then(function(){return Qf});return new e(this._pluginManager,t)}loadOptions(t,e,i){if(!this.needsPlugin(e)&&!this.needsPlugin(i))return;let n=e.polygon;void 0===n?.load&&(e.polygon=n=new Ap(this._pluginManager)),n.load(i?.polygon)}needsPlugin(t){return t?.polygon?.enable??(void 0!==t?.polygon?.type&&t.polygon.type!==Tp.none)}}async function zp(t){t.checkVersion("4.0.0"),await t.pluginManager.register(t=>{t.pluginManager.addPlugin(new Ep(t.pluginManager))})}const Rp={sides:6,turnSteps:20,angle:30};class Gp{dirsList;options;_container;_res;constructor(t){this._container=t,this._res=M.origin,this.dirsList=[],this.options=St({},Rp)}generate(t){const{sides:e,turnSteps:i}=this.options;t.hexStep??=0,t.hexDirection??=6===e?2*(3*R()|0):R()*e|0,t.hexSpeed??=t.velocity.length,t.hexStep%i===0&&(t.hexDirection=R()>.5?(t.hexDirection+1)%e:(t.hexDirection+e-1)%e),t.velocity.x=0,t.velocity.y=0,t.hexStep++;const n=this.dirsList[t.hexDirection];return this._res.x=n.x*t.hexSpeed,this._res.y=n.y*t.hexSpeed,this._res}init(){const t=this._container.actualOptions.particles.move.path.options;this.options.sides=t.sides>0?t.sides:this.options.sides,this.options.angle=t.angle??this.options.angle,this.options.turnSteps=t.turnSteps>=0?t.turnSteps:this.options.turnSteps,this._createDirs()}reset(t){delete t.hexStep,delete t.hexDirection,delete t.hexSpeed}update(){}_createDirs=()=>{const{options:t}=this;this.dirsList=[];for(let e=0;e<360;e+=360/t.sides){const i=t.angle+e;this.dirsList.push(M.create(Math.cos(i*Math.PI/180),Math.sin(i*Math.PI/180)))}}}async function Lp(t){t.checkVersion("4.0.0"),await t.pluginManager.register(t=>{Ei(t),t.pluginManager.addPathGenerator?.("polygonPathGenerator",t=>Promise.resolve(new Gp(t)))})}class Fp{_res;constructor(){this._res=M.origin}generate(){return this._res.x=G(-1,1),this._res.y=G(-1,1),this._res}init(){}reset(){}update(){}}async function Hp(t){t.checkVersion("4.0.0"),await t.pluginManager.register(t=>{Ei(t),t.pluginManager.addPathGenerator?.("randomPathGenerator",()=>Promise.resolve(new Fp))})}var Bp;!function(t){t.screen="screen",t.window="window",t.canvas="canvas"}(Bp||(Bp={}));class Np{maxWidth;mode;options;constructor(){this.maxWidth=1/0,this.options={},this.mode=Bp.canvas}load(t){I(t)||(I(t.maxWidth)||(this.maxWidth=t.maxWidth),I(t.mode)||(t.mode===Bp.screen?this.mode=Bp.screen:this.mode=Bp.canvas),I(t.options)||(this.options=St({},t.options)))}}class Up{id="responsive";async getPlugin(t){const{ResponsivePluginInstance:e}=await Promise.resolve().then(function(){return Yf});return new e(t)}loadOptions(t,e,i){if(!this.needsPlugin(e)&&!this.needsPlugin(i))return;if(e.setResponsive=(t,i,n)=>{e.load(n);const s=t/i,o={[Bp.screen]:screen.availWidth,[Bp.window]:innerWidth,[Bp.canvas]:s},a=e.responsive?.find(t=>t.maxWidth>o[t.mode]);return e.load(a?.options),a?.maxWidth},e.responsive??=[],void 0!==i?.responsive)for(const t of i.responsive){const i=new Np;t&&i.load(t),e.responsive.push(i)}e.responsive.sort((t,e)=>t.maxWidth-e.maxWidth)}needsPlugin(t){return!!t?.responsive?.length}}async function $p(t){t.checkVersion("4.0.0"),await t.pluginManager.register(t=>{t.pluginManager.addPlugin(new Up)})}class jp{draw(t){const{context:e,particle:i,radius:n}=t;!function(t,e,i){let n=e[0],s=e[1];if(!n||!s)return;const o=e.length;t.moveTo((n.x+s.x)*a,(n.y+s.y)*a);for(let r=1;r<=o;r++)n=s,s=e[(r+1)%o],n&&s&&t.arcTo(n.x,n.y,(n.x+s.x)*a,(n.y+s.y)*a,i)}(e,function(t,e,i=0){const n=u/t,s=[];for(let o=0;o<t;o++)s.push({x:Math.cos(o*n+i)*e,y:Math.sin(o*n+i)*e});return s}(i.sides,n),i.borderRadius??5)}getSidesCount(t){const e=t.shapeData;return Math.round(U(e?.sides??5))}particleInit(t,e){const i=e.shapeData;e.borderRadius=Math.round(U(i?.radius??5))*t.retina.pixelRatio}}async function qp(t){t.checkVersion("4.0.0"),await t.pluginManager.register(t=>{t.pluginManager.addShape(["rounded-polygon"],()=>Promise.resolve(new jp))})}class Wp{draw(t){const{context:e,particle:i,radius:n}=t,s=n*Math.SQRT1_2,o=2*s,a=i.borderRadius??5;"roundRect"in e?e.roundRect(-s,-s,o,o,a):function(t,e,i,n){const s={x:-e,y:-e,height:i,width:i},o=n,a=n,r=n,c=n,{x:l,y:h,width:d,height:u}=s,p=l+d,g=h+u;t.moveTo(l+o,h),t.lineTo(p-a,h),t.quadraticCurveTo(p,h,p,h+a),t.lineTo(p,h+u-c),t.quadraticCurveTo(p,g,p-c,g),t.lineTo(l+r,g),t.quadraticCurveTo(l,g,l,g-r),t.lineTo(l,h+o),t.quadraticCurveTo(l,h,l+o,h)}(e,s,o,a)}particleInit(t,e){const i=e.shapeData;e.borderRadius=U(i?.radius??5)*t.retina.pixelRatio}}async function Qp(t){t.checkVersion("4.0.0"),await t.pluginManager.register(t=>{t.pluginManager.addShape(["rounded-rect"],()=>Promise.resolve(new Wp))})}var Zp;!function(t){t[t.normal=0]="normal",t[t.reverse=1]="reverse"}(Zp||(Zp={}));class Xp{_container;_offset;_paths;_res;_reverse;_scale;_size;_width;constructor(e){this._container=e,this._paths=[],this._reverse=!1,this._size={width:0,height:0},this._scale=1,this._offset={x:0,y:0,mode:t.PixelMode.percent},this._width=0,this._res=M.origin}generate(t,e){const i=this._container.retina.pixelRatio;t.svgDirection??=R()>a?Zp.normal:Zp.reverse,t.svgPathIndex??=Math.floor(R()*this._paths.length),t.svgSpeed??=t.velocity.mult(t.retina.moveSpeed*a).length,t.svgStep??=N({min:0,max:this._paths[t.svgPathIndex].length})*i,t.svgOffset??={width:N({min:-this._width*a,max:this._width*a})*i,height:N({min:-this._width*a,max:this._width*a})*i},t.svgInitialPosition??=t.position.copy(),t.velocity.x=0,t.velocity.y=0,t.svgDirection===Zp.normal?t.svgStep+=t.svgSpeed*e.factor:t.svgStep-=t.svgSpeed*e.factor;let n=this._paths[t.svgPathIndex];const s=n.length;t.svgStep>=s?(t.svgPathIndex=t.svgPathIndex+1,t.svgPathIndex>=this._paths.length&&(this._reverse?(t.svgPathIndex=this._paths.length-1,t.svgDirection=Zp.reverse):(t.svgPathIndex=0,t.svgStep=0))):t.svgStep<=0&&(t.svgPathIndex=t.svgPathIndex-1,t.svgPathIndex<0&&(this._reverse?(t.svgPathIndex=0,t.svgDirection=Zp.normal):(t.svgPathIndex=this._paths.length-1,n=this._paths[t.svgPathIndex],t.svgStep=n.length))),n=this._paths[t.svgPathIndex];const o=n.element.getPointAtLength(t.svgStep),r=this._container.canvas.size,c=Vt(this._offset,r),l=this._scale*i;return t.position.x=(o.x-this._size.width*a)*l+t.svgInitialPosition.x+c.x+t.svgOffset.width,t.position.y=(o.y-this._size.height*a)*l+t.svgInitialPosition.y+c.y+t.svgOffset.height,this._res.x=0,this._res.y=0,this._res}init(){const t=this._container.actualOptions.particles.move.path.options,e=t.position??this._offset;if(this._reverse=t.reverse??this._reverse,this._scale=t.scale??1,this._offset.x=e.x,this._offset.y=e.y,this._offset.mode=e.mode,this._width=t.width??0,t.url&&!t.path){const e=t.url;(async()=>{const t=await fetch(e),i=await t.text(),{paths:n,size:s}=function(t){const e=(new DOMParser).parseFromString(t,"image/svg+xml").querySelector("svg");if(!e)return{paths:[],size:{width:0,height:0}};const i=e.querySelectorAll("path"),n=[];for(const t of i)t instanceof SVGPathElement&&n.push({element:t,length:t.getTotalLength()});return{paths:n,size:{width:Number.parseFloat(e.getAttribute("width")??"0"),height:Number.parseFloat(e.getAttribute("height")??"0")}}}(i);this._paths=n,this._size.width=s.width,this._size.height=s.height})()}else if(t.path){const e=t.path;this._paths=function(t){const e=pt();return t.map(t=>{const i=e.createElementNS("http://www.w3.org/2000/svg","path");return i.setAttribute("d",t),{element:i,length:i.getTotalLength()}})}(t.path.data),this._size.height=e.size.height,this._size.width=e.size.width}}reset(){}update(){}}async function Yp(t){t.checkVersion("4.0.0"),await t.pluginManager.register(t=>{Ei(t),t.pluginManager.addPathGenerator?.("svgPathGenerator",t=>Promise.resolve(new Xp(t)))})}class Kp{_container;_pluginManager;constructor(t,e){this._pluginManager=t,this._container=e}drawAfter(t){const{context:e}=t;e.restore()}drawBefore(t){const{particle:e,context:i}=t,{_container:n}=this,s=e,o=s.shadowColor,a=s.shadowOffset;o&&(i.save(),i.shadowBlur=s.shadowBlur??0,i.shadowColor=hi(o,n.hdr),i.shadowOffsetX=a?.x??0,i.shadowOffsetY=a?.y??0)}particleInit(t,e){const i=e.effectData,n=ce.create(new ce,i?.color);e.shadowColor=ei(this._pluginManager,n),e.shadowBlur=i?.blur??0,e.shadowOffset=i?.offset??c}}async function Jp(t){t.checkVersion("4.0.0"),await t.pluginManager.register(t=>{t.pluginManager.addEffect("shadow",e=>Promise.resolve(new Kp(t.pluginManager,e)))})}class tg extends _a{constructor(t){const e=new Ln;super(t,{noise4d:(t,i,n,s)=>e.noise4d.noise(t,i,n,s),seed:t=>{e.noise4d.seed(t)}})}}async function eg(t){t.checkVersion("4.0.0"),await t.pluginManager.register(t=>{Ei(t),t.pluginManager.addPathGenerator?.("simplexNoise",t=>Promise.resolve(new tg(t)))})}const ig="pointerdown",ng="touchstart";class sg{loop;source;constructor(){this.loop=!1,this.source=""}load(t){I(t)||(D(t)?(void 0!==t.loop&&(this.loop=t.loop),void 0!==t.source&&(this.source=t.source)):this.source=t)}}class og{duration;value;constructor(){this.duration=500,this.value=[]}load(t){I(t)||(void 0!==t.duration&&(this.duration=t.duration),void 0!==t.value&&(this.value=t.value))}}class ag{loop;melodies;notes;constructor(){this.loop=!1,this.melodies=[],this.notes=[]}load(t){I(t)||(void 0!==t.loop&&(this.loop=t.loop),void 0!==t.melodies&&(this.melodies=t.melodies.map(t=>{const e=new ag;return e.load(t),e})),void 0!==t.notes&&(this.notes=t.notes.map(t=>{const e=new og;return e.load(t),e})))}}class rg{audio;event;filter;melodies;notes;constructor(){this.event=[],this.notes=[]}load(t){if(!I(t)&&(void 0!==t.event&&(this.event=t.event),void 0!==t.audio&&(V(t.audio)?this.audio=t.audio.map(t=>{const e=new sg;return e.load(t),e}):(this.audio=new sg,this.audio.load(t.audio))),void 0!==t.notes&&(this.notes=t.notes.map(t=>{const e=new og;return e.load(t),e})),void 0!==t.melodies&&(this.melodies=t.melodies.map(t=>{const e=new ag;return e.load(t),e})),t.filter))if(O(t.filter)){const e=globalThis[t.filter];T(e)&&(this.filter=e)}else this.filter=t.filter}}class cg{height;path;style;svg;width;constructor(){this.width=24,this.height=24,this.style=""}load(t){I(t)||(void 0!==t.path&&(this.path=t.path),void 0!==t.svg&&(this.svg=t.svg),void 0!==t.width&&(this.width=t.width),void 0!==t.height&&(this.height=t.height))}}class lg{enable;mute;unmute;volumeDown;volumeUp;constructor(){this.mute=new cg,this.unmute=new cg,this.volumeDown=new cg,this.volumeUp=new cg,this.enable=!1,this.mute.svg='<?xml version="1.0"?>\n<svg baseProfile="tiny" height="24px" version="1.2" viewBox="0 0 24 24" width="24px"\n xml:space="preserve" xmlns="http://www.w3.org/2000/svg"\n xmlns:xlink="http://www.w3.org/1999/xlink">\n <g id="Layer_1">\n <path fill="#fff" d="M19.707,5.293c-0.391-0.391-1.023-0.391-1.414,0l-1.551,1.551c-0.345-0.688-0.987-1.02-1.604-1.02c-0.449,0-0.905,0.152-1.356,0.453l-2.672,1.781C10.357,8.561,8.904,9,8,9c-1.654,0-3,1.346-3,3v2c0,1.237,0.754,2.302,1.826,2.76l-1.533,1.533c-0.391,0.391-0.391,1.023,0,1.414C5.488,19.902,5.744,20,6,20s0.512-0.098,0.707-0.293l2.527-2.527c0.697,0.174,1.416,0.455,1.875,0.762l2.672,1.781c0.451,0.301,0.907,0.453,1.356,0.453C16.035,20.176,17,19.495,17,18V9.414l2.707-2.707C20.098,6.316,20.098,5.684,19.707,5.293z M14.891,7.941c0.038-0.025,0.073-0.046,0.104-0.062C14.998,7.914,15,7.954,15,8v1.293l-2,2V9.202L14.891,7.941z M7,12c0-0.552,0.448-1,1-1c1.211,0,2.907-0.495,4-1.146v2.439l-2.83,2.83C8.757,15.046,8.356,15,8,15c-0.552,0-1-0.448-1-1V12z M10.301,15.406L12,13.707v2.439C11.519,15.859,10.925,15.604,10.301,15.406z M14.994,18.12c-0.03-0.016-0.065-0.036-0.104-0.062L13,16.798v-4.091l2-2V18C15,18.046,14.998,18.086,14.994,18.12z"/>\n </g>\n</svg>',this.unmute.svg='<?xml version="1.0"?>\n<svg baseProfile="tiny" height="24px" version="1.2" viewBox="0 0 24 24" width="24px"\n xml:space="preserve" xmlns="http://www.w3.org/2000/svg"\n xmlns:xlink="http://www.w3.org/1999/xlink">\n <g id="Layer_1">\n <path fill="#fff" d="M17.138,5.824c-0.449,0-0.905,0.152-1.356,0.453l-2.672,1.781C12.357,8.561,10.904,9,10,9c-1.654,0-3,1.346-3,3v2c0,1.654,1.346,3,3,3c0.904,0,2.357,0.439,3.109,0.941l2.672,1.781c0.451,0.301,0.907,0.453,1.356,0.453C18.035,20.176,19,19.495,19,18V8C19,6.505,18.035,5.824,17.138,5.824z M14,16.146C12.907,15.495,11.211,15,10,15c-0.552,0-1-0.448-1-1v-2c0-0.552,0.448-1,1-1c1.211,0,2.907-0.495,4-1.146V16.146z M17,18c0,0.046-0.002,0.086-0.006,0.12c-0.03-0.016-0.065-0.036-0.104-0.062L15,16.798V9.202l1.891-1.261c0.038-0.025,0.073-0.046,0.104-0.062C16.998,7.914,17,7.954,17,8V18z"/>\n </g>\n</svg>',this.volumeDown.svg='<?xml version="1.0"?>\n<svg baseProfile="tiny" height="24px" version="1.2" viewBox="0 0 24 24" width="24px"\n xml:space="preserve" xmlns="http://www.w3.org/2000/svg"\n xmlns:xlink="http://www.w3.org/1999/xlink">\n <g id="Layer_1">\n <path fill="#fff" d="M15.138,5.824c-0.449,0-0.905,0.152-1.356,0.453l-2.672,1.781C10.357,8.561,8.904,9,8,9c-1.654,0-3,1.346-3,3v2c0,1.654,1.346,3,3,3c0.904,0,2.357,0.439,3.109,0.941l2.672,1.781c0.451,0.301,0.907,0.453,1.356,0.453C16.035,20.176,17,19.495,17,18V8C17,6.505,16.035,5.824,15.138,5.824z M8,15c-0.552,0-1-0.448-1-1v-2c0-0.552,0.448-1,1-1c1.211,0,2.907-0.495,4-1.146v6.293C10.907,15.495,9.211,15,8,15z M15,18c0,0.046-0.002,0.086-0.006,0.12c-0.03-0.016-0.065-0.036-0.104-0.062L13,16.798V9.202l1.891-1.261c0.038-0.025,0.073-0.046,0.104-0.062C14.998,7.914,15,7.954,15,8V18z"/>\n <path fill="#fff" d="M18.292,10.294c-0.39,0.391-0.39,1.023,0.002,1.414c0.345,0.345,0.535,0.803,0.535,1.291c0,0.489-0.19,0.948-0.536,1.294c-0.391,0.39-0.391,1.023,0,1.414C18.488,15.902,18.744,16,19,16s0.512-0.098,0.707-0.293c0.724-0.723,1.122-1.685,1.122-2.708s-0.398-1.984-1.123-2.707C19.317,9.903,18.683,9.901,18.292,10.294z"/>\n </g>\n</svg>',this.volumeUp.svg='<?xml version="1.0"?>\n<svg baseProfile="tiny" height="24px" version="1.2" viewBox="0 0 24 24" width="24px"\n xml:space="preserve" xmlns="http://www.w3.org/2000/svg"\n xmlns:xlink="http://www.w3.org/1999/xlink">\n <g id="Layer_1">\n <path fill="#fff" d="M16.706,10.292c-0.389-0.389-1.023-0.391-1.414,0.002c-0.39,0.391-0.39,1.023,0.002,1.414c0.345,0.345,0.535,0.803,0.535,1.291c0,0.489-0.19,0.948-0.536,1.294c-0.391,0.39-0.391,1.023,0,1.414C15.488,15.902,15.744,16,16,16s0.512-0.098,0.707-0.293c0.724-0.723,1.122-1.685,1.122-2.708S17.431,11.015,16.706,10.292z"/>\n <path fill="#fff" d="M18.706,8.292c-0.391-0.389-1.023-0.39-1.414,0.002c-0.39,0.391-0.39,1.024,0.002,1.414c0.879,0.877,1.363,2.044,1.364,3.287c0.001,1.246-0.484,2.417-1.365,3.298c-0.391,0.391-0.391,1.023,0,1.414C17.488,17.902,17.744,18,18,18s0.512-0.098,0.707-0.293c1.259-1.259,1.952-2.933,1.951-4.713C20.657,11.217,19.964,9.547,18.706,8.292z"/>\n <path fill="#fff" d="M20.706,6.292c-0.391-0.389-1.023-0.39-1.414,0.002c-0.39,0.391-0.39,1.024,0.002,1.414c1.412,1.409,2.191,3.285,2.192,5.284c0.002,2.002-0.777,3.885-2.193,5.301c-0.391,0.391-0.391,1.023,0,1.414C19.488,19.902,19.744,20,20,20s0.512-0.098,0.707-0.293c1.794-1.794,2.781-4.18,2.779-6.717C23.485,10.457,22.497,8.078,20.706,6.292z"/>\n <path fill="#fff" d="M12.138,5.824c-0.449,0-0.905,0.152-1.356,0.453L8.109,8.059C7.357,8.561,5.904,9,5,9c-1.654,0-3,1.346-3,3v2c0,1.654,1.346,3,3,3c0.904,0,2.357,0.439,3.109,0.941l2.672,1.781c0.451,0.301,0.907,0.453,1.356,0.453C13.035,20.176,14,19.495,14,18V8C14,6.505,13.035,5.824,12.138,5.824z M5,15c-0.552,0-1-0.448-1-1v-2c0-0.552,0.448-1,1-1c1.211,0,2.907-0.495,4-1.146v6.293C7.907,15.495,6.211,15,5,15z M12,18c0,0.046-0.002,0.086-0.006,0.12c-0.03-0.016-0.065-0.036-0.104-0.062L10,16.798V9.202l1.891-1.261c0.038-0.025,0.073-0.046,0.104-0.062C11.998,7.914,12,7.954,12,8V18z"/>\n </g>\n</svg>'}load(t){I(t)||(void 0!==t.enable&&(this.enable=t.enable),this.mute.load(t.mute),this.unmute.load(t.unmute),this.volumeDown.load(t.volumeDown),this.volumeUp.load(t.volumeUp))}}class hg{max;min;step;value;constructor(){this.value=100,this.max=100,this.min=0,this.step=10}load(t){I(t)||(D(t)?(void 0!==t.max&&(this.max=t.max),void 0!==t.min&&(this.min=t.min),void 0!==t.step&&(this.step=t.step),void 0!==t.value&&(this.value=t.value)):this.value=t)}}class dg{autoPlay;enable;events;icons;volume;constructor(){this.autoPlay=!0,this.enable=!1,this.events=[],this.icons=new lg,this.volume=new hg}load(t){I(t)||(void 0!==t.autoPlay&&(this.autoPlay=t.autoPlay),void 0!==t.enable&&(this.enable=t.enable),void 0!==t.events&&(this.events=t.events.map(t=>{const e=new rg;return e.load(t),e})),this.icons.load(t.icons),void 0!==t.volume&&this.volume.load(t.volume))}}const ug=new Map;function pg(t){const e=/(([A-G]b?)(\d))|pause/i.exec(t);if(!e?.length)return;const i=e[2]??e[0],n=ug.get(i);return n?n[parseInt(e[3]??"0")]:void 0}ug.set("C",[16.35,32.7,65.41,130.81,261.63,523.25,1046.5,2093,4186.01]),ug.set("Db",[17.32,34.65,69.3,138.59,277.18,554.37,1108.73,2217.46,4434.92]),ug.set("D",[18.35,36.71,73.42,146.83,293.66,587.33,1174.66,2349.32,4698.63]),ug.set("Eb",[19.45,38.89,77.78,155.56,311.13,622.25,1244.51,2489.02,4978.03]),ug.set("E",[20.6,41.2,82.41,164.81,329.63,659.25,1318.51,2637.02,5274.04]),ug.set("F",[21.83,43.65,87.31,174.61,349.23,698.46,1396.91,2793.83,5587.65]),ug.set("Gb",[23.12,46.25,92.5,185,369.99,739.99,1479.98,2959.96,5919.91]),ug.set("G",[24.5,49,98,196,392,783.99,1567.98,3135.96,6271.93]),ug.set("Ab",[25.96,51.91,103.83,207.65,415.3,830.61,1661.22,3322.44,6644.88]),ug.set("A",[27.5,55,110,220,440,880,1760,3520,7040]),ug.set("Bb",[29.14,58.27,116.54,233.08,466.16,932.33,1864.66,3729.31,7458.62]),ug.set("B",[30.87,61.74,123.47,246.94,493.88,987.77,1975.53,3951.07,7902.13]),ug.set("pause",[0]);let gg=!0;const fg=()=>gg,yg=()=>{gg=!1},_g=()=>{removeEventListener(ig,_g),removeEventListener(ng,_g),yg()};class mg{id="sounds";_engine;constructor(t){this._engine=t;const e={capture:!0,once:!0};addEventListener(ig,_g,e),addEventListener(ng,_g,e)}async getPlugin(t){const{SoundsPluginInstance:e}=await Promise.resolve().then(function(){return ty});return new e(t,this._engine)}loadOptions(t,e,i){if(!this.needsPlugin(e)&&!this.needsPlugin(i))return;let n=e.sounds;void 0===n?.load&&(e.sounds=n=new dg),n.load(i?.sounds)}needsPlugin(t){return t?.sounds?.enable??!1}}async function vg(t){t.checkVersion("4.0.0"),await t.pluginManager.register(t=>{t.pluginManager.addPlugin(new mg(t))})}var wg;!function(t){t[t.positive=1]="positive",t[t.negative=-1]="negative"}(wg||(wg={}));const bg={maxRadius:{min:10,max:50},angularSpeed:{min:.01,max:.04},radialSpeed:{min:.1,max:.3}};class xg{options;_container;_res;constructor(t){this._container=t,this._res=M.origin,this.options=St({},bg)}generate(t,e){const{options:i}=this;t.spiral??={angle:R()*u,radius:0,direction:wg.positive,maxRadius:U(i.maxRadius),angularSpeed:.01*U(i.angularSpeed),radialSpeed:.01*U(i.radialSpeed)};const n=t.spiral;n.angle+=n.angularSpeed*e.factor,n.radius+=n.radialSpeed*n.direction*e.factor,n.radius>n.maxRadius&&n.direction===wg.positive?(n.radius=n.maxRadius,n.direction=wg.negative):n.radius<0&&n.direction===wg.negative&&(n.radius=0,n.direction=wg.positive);const s=Math.cos(n.angle)*n.radius,o=Math.sin(n.angle)*n.radius;return t.position.x+=s,t.position.y+=o,this._res.x=0,this._res.y=0,this._res}init(){const t=this._container.actualOptions.particles.move.path.options;this.options.maxRadius=t.maxRadius??this.options.maxRadius,this.options.angularSpeed=t.angularSpeed??this.options.angularSpeed,this.options.radialSpeed=t.radialSpeed??this.options.radialSpeed}reset(t){delete t.spiral}update(){}}async function Sg(t){t.checkVersion("4.0.0"),await t.pluginManager.register(t=>{Ei(t),t.pluginManager.addPathGenerator?.("spiralPathGenerator",t=>Promise.resolve(new xg(t)))})}class Pg{draw(t){!function(t){const{context:e,particle:i,radius:n}=t;if(void 0===i.spiralInnerRadius||void 0===i.spiralLineSpacing||void 0===i.spiralWidthFactor)return;const s=(n-i.spiralInnerRadius)/i.spiralLineSpacing;for(let t=0;t<10*s;t++){const n=t/10,s=i.spiralInnerRadius+i.spiralLineSpacing*n,o={x:s*Math.cos(n),y:s*Math.sin(n)};e.lineTo(o.x,o.y)}}(t)}particleInit(t,e){const i=t.retina.pixelRatio,n=e.shapeData;e.spiralInnerRadius=U(n?.innerRadius??1)*i,e.spiralLineSpacing=U(n?.lineSpacing??1)*i,e.spiralWidthFactor=U(n?.widthFactor??10)}}async function Mg(t){t.checkVersion("4.0.0"),await t.pluginManager.register(t=>{t.pluginManager.addShape(["spiral"],()=>Promise.resolve(new Pg))})}function Cg(t){return t<0?-1:1}class Og{draw(t){!function(t){const{context:e,particle:i,radius:n}=t;if(void 0===i.squircleExponent||void 0===i.squircleSteps)return;const s=i.squircleSteps,o=u/s,a=2/i.squircleExponent;e.save(),e.scale(n,n),e.beginPath();for(let t=0;t<=s;t++){const i=t*o,n=Math.cos(i),s=Math.sin(i),r=Cg(n)*Math.pow(Math.abs(n),a),c=Cg(s)*Math.pow(Math.abs(s),a);t?e.lineTo(r,c):e.moveTo(r,c)}e.closePath(),e.restore()}(t)}particleInit(t,e){const i=e.shapeData;e.squircleExponent=U(i?.exponent??4),e.squircleSteps=U(i?.steps??64)}}async function kg(t){t.checkVersion("4.0.0"),await t.pluginManager.register(t=>{t.pluginManager.addShape(["squircle"],()=>Promise.resolve(new Og))})}var Tg;!function(t){t.any="any",t.dark="dark",t.light="light"}(Tg||(Tg={}));class Dg{auto;mode;value;constructor(){this.auto=!1,this.mode=Tg.any,this.value=!1}load(t){I(t)||(void 0!==t.auto&&(this.auto=t.auto),void 0!==t.mode&&(this.mode=t.mode),void 0!==t.value&&(this.value=t.value))}}class Vg{default;name;options;constructor(){this.name="",this.default=new Dg}load(t){I(t)||(void 0!==t.name&&(this.name=t.name),this.default.load(t.default),void 0!==t.options&&(this.options=St({},t.options)))}}class Ig{id="theme";async getPlugin(t){const{ThemesPluginInstance:e}=await Promise.resolve().then(function(){return ey});return new e(t)}loadOptions(t,e,i){if(!this.needsPlugin(e)&&!this.needsPlugin(i))return;const n=t=>{if(e.themes)return e.themes.find(e=>e.default.value&&e.default.mode===t)??e.themes.find(t=>t.default.value&&t.default.mode===Tg.any)};if(e.findDefaultTheme=n,e.setTheme=t=>{if(e.themes)if(t){const i=e.themes.find(e=>e.name===t);i&&e.load(i.options)}else{const t=gt("(prefers-color-scheme: dark)"),i=t?.matches,s=n(i?Tg.dark:Tg.light);s&&e.load(s.options)}},e.themes??=[],void 0!==i?.themes)for(const t of i.themes){if(!t)continue;const i=e.themes.find(e=>e.name===t.name);if(i)i.load(t);else{const i=new Vg;i.load(t),e.themes.push(i)}}e.defaultThemes.dark=n(Tg.dark)?.name,e.defaultThemes.light=n(Tg.light)?.name}needsPlugin(t){return!!t?.themes?.length}}async function Ag(t){t.checkVersion("4.0.0"),await t.pluginManager.register(t=>{t.pluginManager.addPlugin(new Ig)})}const Eg={a:1,b:0,c:0,d:1};class zg{_container;constructor(t){this._container=t}drawAfter(t){const{context:e,drawPosition:i,drawRadius:n,drawScale:s,particle:o,transformData:r}=t,l=2*n,h=this._container.retina.pixelRatio,d=o.trail;if(!d||!o.trailLength)return;const u=i,p=o.trailLength*s+n;if(d.push({break:o.justWarped,color:e.fillStyle||e.strokeStyle,position:{x:u.x,y:u.y},transformData:r}),d.length<3)return;const g=Math.floor(p);d.length>g&&d.splice(0,d.length-g);const f=Math.min(d.length,p);e.save(),e.lineCap="butt",e.lineJoin="round";for(let t=f-2;t>0;t--){const i=d[t+1],n=d[t],r=d[t-1];if(!i||!n||!r)continue;const u=i.position,p=n.position,g=r.position,y=o.trailTransform?n.transformData??Eg:Eg;if(n.break||i.break||r.break)continue;e.setTransform(y.a,y.b,y.c,y.d,p.x,p.y);const _=(u.x+p.x)*a-p.x,m=(u.y+p.y)*a-p.y,v=(p.x+g.x)*a-p.x,w=(p.y+g.y)*a-p.y;e.beginPath(),e.moveTo(_,m),e.quadraticCurveTo(c.x,c.y,v,w);const b=Math.max(t/f*l,h,(o.trailMinWidth??-1)*s),x=e.globalAlpha;e.globalAlpha=o.trailFade?t/f:1,e.lineWidth=o.trailMaxWidth?Math.min(b,o.trailMaxWidth*s):b,e.strokeStyle=n.color,e.stroke(),e.globalAlpha=x}e.restore()}particleInit(t,e){e.trail=[];const i=e.effectData;e.trailFade=i?.fade??!0,e.trailLength=U(i?.length??10)*t.retina.pixelRatio,e.trailMaxWidth=i?.maxWidth?U(i.maxWidth)*t.retina.pixelRatio:void 0,e.trailMinWidth=i?.minWidth?U(i.minWidth)*t.retina.pixelRatio:void 0,e.trailTransform=i?.transform??!1}}async function Rg(t){t.checkVersion("4.0.0"),await t.pluginManager.register(t=>{t.pluginManager.addEffect("trail",t=>Promise.resolve(new zg(t)))})}class Gg{color;image;load(t){I(t)||(void 0!==t.color&&(this.color=ce.create(this.color,t.color)),void 0!==t.image&&(this.image=t.image))}}class Lg{enable;fill;length;constructor(){this.enable=!1,this.length=10,this.fill=new Gg}load(t){I(t)||(void 0!==t.enable&&(this.enable=t.enable),void 0!==t.fill&&this.fill.load(t.fill),void 0!==t.length&&(this.length=t.length))}}class Fg{id="trail";_pluginManager;constructor(t){this._pluginManager=t}async getPlugin(t){const{TrailPluginInstance:e}=await Promise.resolve().then(function(){return iy});return new e(this._pluginManager,t)}loadOptions(t,e,i){if(!this.needsPlugin())return;let n=e.trail;n?.load||(e.trail=n=new Lg),n.load(i?.trail)}needsPlugin(){return!0}}async function Hg(t){t.checkVersion("4.0.0"),await t.pluginManager.register(t=>{t.pluginManager.addPlugin(new Fg(t.pluginManager))})}const Bg=Math.PI*a,Ng={waveHeight:{min:0,max:3},waveLength:{min:0,max:5}};class Ug{options;_container;_res;constructor(t){this._container=t,this._res=M.origin,this.options=St({},Ng)}generate(t,e){const{options:i}=this;t.zigzag??={counter:R(),waveHeight:U(i.waveHeight),waveLength:U(i.waveLength)};const n=.5/t.zigzag.waveLength*e.factor;t.zigzag.counter+=n;const s=t.zigzag.waveHeight*Math.sin(t.zigzag.counter);return t.position.x+=s*Math.cos(t.velocity.angle+Bg),t.position.y+=s*Math.sin(t.velocity.angle+Bg),this._res.x=0,this._res.y=0,this._res}init(){const t=this._container.actualOptions.particles.move.path.options;this.options.waveLength=t.waveLength??this.options.waveLength,this.options.waveHeight=t.waveHeight??this.options.waveHeight}reset(){}update(){}}async function $g(t){t.checkVersion("4.0.0"),await t.pluginManager.register(t=>{Ei(t),t.pluginManager.addPathGenerator?.("zigZagPathGenerator",t=>Promise.resolve(new Ug(t)))})}class jg{enable;max;min;constructor(){this.enable=!1,this.min=.1,this.max=5}load(t){I(t)||(void 0!==t.enable&&(this.enable=t.enable),void 0!==t.min&&(this.min=t.min),void 0!==t.max&&(this.max=t.max))}}class qg{id="zoom";async getPlugin(t){const{ZoomPluginInstance:e}=await Promise.resolve().then(function(){return sy});return new e(t)}loadOptions(t,e,i){if(!this.needsPlugin())return;let n=e.zoom;n||(n=new jg,e.zoom=n),n.load(i?.zoom)}needsPlugin(){return!0}}async function Wg(t){t.checkVersion("4.0.0"),await t.pluginManager.register(t=>{t.pluginManager.addPlugin(new qg)})}async function Qg(t){t.checkVersion("4.0.0"),await t.pluginManager.register(async t=>{await Promise.all([(async t=>{await async function(t){t.checkVersion("4.0.0"),await t.pluginManager.register(async t=>{const e=async t=>{await co(t),await Promise.all([Ua(t),Qa(t)])};await Promise.all([(async t=>{await uh(t),await Promise.all([Ka(t),or(t),Ta(t),e(t)])})(t),Ha(t),hr(t),bh(t),Ch(t),Dh(t),yh(t)])})}(t),await Promise.all([Xo(t),ta(t),ia(t),hu(t),fp(t),sd(t),Oo(t),Ao(t),Fo(t),Gi(t),Fi(t),Bn(t),$n(t),va(t),Nh(t),Kd(t),bp(t),Lp(t),Hp(t),Yp(t),Sg(t),$g(t),eg(t)])})(t),Qh(t),Jh(t),kd(t),Xd(t),Nu(t),np(t),Ou(t),qn(t),Zn(t),Yn(t),Jn(t),es(t),ns(t),as(t),cs(t),hs(t),us(t),fs(t),_s(t),ws(t),ki(t),Vi(t),Xi(t),pu(t),Pu(t),Pp(t),zp(t),$p(t),vg(t),Ag(t),Hg(t),Wg(t),Bo(t),Uo(t),jo(t),Lh(t),hp(t),Bi(t),sa(t),up(t),Jp(t),Rg(t),Pi(t),Dn(t),In(t),$h(t),ad(t),wu(t),_p(t),qp(t),Qp(t),Mg(t),kg(t)])})}const Zg=globalThis;Zg.__tsParticlesInternals=Zg.__tsParticlesInternals??{},Zg.loadAll=Qg;function Xg(t,e,i){const n=e[i];void 0!==n&&(t[i]=(t[i]??1)*n)}class Yg{_canvasClearPlugins;_canvasManager;_canvasPaintPlugins;_clearDrawPlugins;_colorPlugins;_container;_context;_contextSettings;_drawParticlePlugins;_drawParticlesCleanupPlugins;_drawParticlesSetupPlugins;_drawPlugins;_drawSettingsCleanupPlugins;_drawSettingsSetupPlugins;_pluginManager;_postDrawUpdaters;_preDrawUpdaters;_reusableColorStyles={};_reusablePluginColors=[void 0,void 0];_reusableTransform={};constructor(t,e,i){this._pluginManager=t,this._container=e,this._canvasManager=i,this._context=null,this._preDrawUpdaters=[],this._postDrawUpdaters=[],this._colorPlugins=[],this._canvasClearPlugins=[],this._canvasPaintPlugins=[],this._clearDrawPlugins=[],this._drawParticlePlugins=[],this._drawParticlesCleanupPlugins=[],this._drawParticlesSetupPlugins=[],this._drawPlugins=[],this._drawSettingsSetupPlugins=[],this._drawSettingsCleanupPlugins=[]}get settings(){return this._contextSettings}canvasClear(){this._container.actualOptions.clear&&this.draw(t=>{$e(t,this._canvasManager.size)})}clear(){let t=!1;for(const e of this._canvasClearPlugins)if(t=e.canvasClear?.()??!1,t)break;t||this.canvasClear()}destroy(){this.stop(),this._preDrawUpdaters=[],this._postDrawUpdaters=[],this._colorPlugins=[],this._canvasClearPlugins=[],this._canvasPaintPlugins=[],this._clearDrawPlugins=[],this._drawParticlePlugins=[],this._drawParticlesCleanupPlugins=[],this._drawParticlesSetupPlugins=[],this._drawPlugins=[],this._drawSettingsSetupPlugins=[],this._drawSettingsCleanupPlugins=[]}draw(t){const e=this._context;if(e)return t(e)}drawParticle(t,e){if(t.spawning||t.destroyed)return;const i=t.getRadius();if(i<=0)return;const n=t.getFillColor(),s=t.getStrokeColor();let[o,a]=this._getPluginParticleColors(t);if(o??=n,a??=s,!o&&!a)return;const r=this._container,c=t.options.zIndex,l=1-t.zIndexFactor,{fillOpacity:h,opacity:d,strokeOpacity:u}=t.getOpacity(),p=this._reusableTransform,g=this._reusableColorStyles,f=o?ui(o,r.hdr,h*d):void 0,y=a?ui(a,r.hdr,u*d):f;p.a=p.b=p.c=p.d=void 0,g.fill=f,g.stroke=y,this.draw(n=>{for(const i of this._drawParticlesSetupPlugins)i.drawParticleSetup?.(n,t,e);this._applyPreDrawUpdaters(n,t,i,d,g,p),je({container:r,context:n,particle:t,delta:e,colorStyles:g,radius:i*l**c.sizeRate,opacity:d,transform:p}),this._applyPostDrawUpdaters(t);for(const i of this._drawParticlesCleanupPlugins)i.drawParticleCleanup?.(n,t,e)})}drawParticlePlugins(t,e){this.draw(i=>{for(const n of this._drawParticlePlugins)Ye(i,n,t,e)})}drawParticles(t){const{particles:e}=this._container;this.clear(),e.update(t),this.draw(i=>{for(const e of this._drawSettingsSetupPlugins)e.drawSettingsSetup?.(i,t);for(const e of this._drawPlugins)e.draw?.(i,t);e.drawParticles(t);for(const e of this._clearDrawPlugins)e.clearDraw?.(i,t);for(const e of this._drawSettingsCleanupPlugins)e.drawSettingsCleanup?.(i,t)})}init(){this.initUpdaters(),this.initPlugins(),this.paint()}initPlugins(){this._colorPlugins=[],this._canvasClearPlugins=[],this._canvasPaintPlugins=[],this._clearDrawPlugins=[],this._drawParticlePlugins=[],this._drawParticlesSetupPlugins=[],this._drawParticlesCleanupPlugins=[],this._drawPlugins=[],this._drawSettingsSetupPlugins=[],this._drawSettingsCleanupPlugins=[];for(const t of this._container.plugins)(t.particleFillColor??t.particleStrokeColor)&&this._colorPlugins.push(t),t.canvasClear&&this._canvasClearPlugins.push(t),t.canvasPaint&&this._canvasPaintPlugins.push(t),t.drawParticle&&this._drawParticlePlugins.push(t),t.drawParticleSetup&&this._drawParticlesSetupPlugins.push(t),t.drawParticleCleanup&&this._drawParticlesCleanupPlugins.push(t),t.draw&&this._drawPlugins.push(t),t.drawSettingsSetup&&this._drawSettingsSetupPlugins.push(t),t.drawSettingsCleanup&&this._drawSettingsCleanupPlugins.push(t),t.clearDraw&&this._clearDrawPlugins.push(t)}initUpdaters(){this._preDrawUpdaters=[],this._postDrawUpdaters=[];for(const t of this._container.particleUpdaters)t.afterDraw&&this._postDrawUpdaters.push(t),(t.getColorStyles??t.getTransformValues??t.beforeDraw)&&this._preDrawUpdaters.push(t)}paint(){let t=!1;for(const e of this._canvasPaintPlugins)if(t=e.canvasPaint?.()??!1,t)break;t||this.paintBase()}paintBase(t){this.draw(e=>{Ne(e,this._canvasManager.size,t)})}paintImage(t,e){this.draw(i=>{Ue(i,this._canvasManager.size,t,e)})}setContext(t){this._context=t,this._context&&(this._context.globalCompositeOperation=i)}setContextSettings(t){this._contextSettings=t}stop(){this.draw(t=>{$e(t,this._canvasManager.size)})}_applyPostDrawUpdaters=t=>{for(const e of this._postDrawUpdaters)e.afterDraw?.(t)};_applyPreDrawUpdaters=(t,e,i,n,s,o)=>{for(const a of this._preDrawUpdaters){if(a.getColorStyles){const{fill:o,stroke:r}=a.getColorStyles(e,t,i,n);o&&(s.fill=o),r&&(s.stroke=r)}if(a.getTransformValues){const t=a.getTransformValues(e);for(const e in t)Xg(o,t,e)}a.beforeDraw?.(e)}};_getPluginParticleColors=t=>{let e,i;for(const n of this._colorPlugins)if(!e&&n.particleFillColor&&(e=ni(this._pluginManager,n.particleFillColor(t))),!i&&n.particleStrokeColor&&(i=ni(this._pluginManager,n.particleStrokeColor(t))),e&&i)break;return this._reusablePluginColors[0]=e,this._reusablePluginColors[1]=i,this._reusablePluginColors}}const Kg=new WeakMap;function Jg(t,e,i=!1){if(!e)return;const n=t.style,s=new Set;for(let t=0;t<n.length;t++){const e=n.item(t);e&&s.add(e)}for(let t=0;t<e.length;t++){const i=e.item(t);i&&s.add(i)}for(const t of s){const s=e.getPropertyValue(t);s?n.setProperty(t,s,i?"important":""):n.removeProperty(t)}}class tf{domElement;render;renderCanvas;size;zoom=1;_container;_generated;_mutationObserver;_originalStyle;_pluginManager;_pointerEvents;_resizePlugins;_standardSize;_zoomCenter;constructor(t,e){this._pluginManager=t,this._container=e,this.render=new Yg(t,e,this),this._standardSize={height:0,width:0};const i=e.retina.pixelRatio,n=this._standardSize;this.size={height:n.height*i,width:n.width*i},this._generated=!1,this._resizePlugins=[],this._pointerEvents="none"}get _fullScreen(){return this._container.actualOptions.fullScreen.enable}destroy(){if(this.stop(),this._generated){const t=this.domElement;t?.remove(),this.domElement=void 0,this.renderCanvas=void 0}else this._resetOriginalStyle();this.render.destroy(),this._resizePlugins=[]}getZoomCenter(){const t=this._container.retina.pixelRatio,{width:e,height:i}=this.size;return this._zoomCenter?this._zoomCenter:{x:e*a/t,y:i*a/t}}init(){this._safeMutationObserver(t=>{t.disconnect()}),this._mutationObserver=yt(t=>{for(const e of t)"attributes"===e.type&&"style"===e.attributeName&&this._repairStyle()}),this.resize(),this._initStyle(),this.initBackground(),this._safeMutationObserver(t=>{const e=this.domElement;e&&e instanceof Node&&t.observe(e,{attributes:!0})}),this.initPlugins(),this.render.init()}initBackground(){const{_container:t}=this,e=t.actualOptions.background,i=this.domElement;if(!i)return;const n=i.style,s=ei(this._pluginManager,e.color);n.backgroundColor=s?hi(s,t.hdr,e.opacity):"",n.backgroundImage=e.image||"",n.backgroundPosition=e.position||"",n.backgroundRepeat=e.repeat||"",n.backgroundSize=e.size||""}initPlugins(){this._resizePlugins=[];for(const t of this._container.plugins)t.resize&&this._resizePlugins.push(t)}loadCanvas(t){this._generated&&this.domElement&&this.domElement.remove();const i=this._container,n=(t=>"undefined"!=typeof HTMLCanvasElement&&t instanceof HTMLCanvasElement)(t)?t:void 0;this.domElement=n,this._generated=!!n&&"true"===n.dataset[e],this.renderCanvas=n?(t=>{const e=Kg.get(t);if(e)return e;if("function"!=typeof t.transferControlToOffscreen)throw new TypeError("OffscreenCanvas is required but not supported by this browser");try{const e=t.transferControlToOffscreen();return Kg.set(t,e),e}catch{throw new TypeError("OffscreenCanvas transfer failed")}})(n):t;const s=this.domElement;s&&(s.ariaHidden="true",this._originalStyle=Et(s.style));const o=this._standardSize,a=this.renderCanvas;s?(o.height=s.offsetHeight,o.width=s.offsetWidth):(o.height=a.height,o.width=a.width);const r=this._container.retina.pixelRatio,c=this.size;a.height=c.height=o.height*r,a.width=c.width=o.width*r;const l=gt("(color-gamut: p3)");this.render.setContextSettings({alpha:!0,colorSpace:l?.matches&&i.hdr?"display-p3":"srgb",desynchronized:!0,willReadFrequently:!1}),this.render.setContext(a.getContext("2d",this.render.settings)),this._safeMutationObserver(t=>{t.disconnect()}),i.retina.init(),this.initBackground(),this._safeMutationObserver(t=>{const e=this.domElement;e&&e instanceof Node&&t.observe(e,{attributes:!0})})}resize(){const t=this.domElement;if(!t)return!1;const e=this._container,i=this.renderCanvas;if(void 0===i)return!1;const n=e.canvas._standardSize,s={width:t.offsetWidth,height:t.offsetHeight},o=e.retina.pixelRatio,a={width:s.width*o,height:s.height*o};if(s.height===n.height&&s.width===n.width&&a.height===i.height&&a.width===i.width)return!1;const r={...n};n.height=s.height,n.width=s.width;const c=this.size;return i.width=c.width=a.width,i.height=c.height=a.height,this._container.started&&e.particles.setResizeFactor({width:n.width/r.width,height:n.height/r.height}),!0}setPointerEvents(t){this.domElement&&(this._pointerEvents=t,this._repairStyle())}setZoom(t,e){this.zoom=t,this._zoomCenter=e}stop(){this._safeMutationObserver(t=>{t.disconnect()}),this._mutationObserver=void 0,this.render.stop()}async windowResize(){if(!this.domElement||!this.resize())return;const t=this._container,e=t.updateActualOptions();t.particles.setDensity(),this._applyResizePlugins(),e&&await t.refresh()}_applyResizePlugins=()=>{for(const t of this._resizePlugins)t.resize?.()};_initStyle=()=>{const t=this.domElement,e=this._container.actualOptions;if(t){this._fullScreen?this._setFullScreenStyle():this._resetOriginalStyle();for(const i in e.style){if(!i||!(i in e.style))continue;const n=e.style[i];n&&t.style.setProperty(i,n,"important")}}};_repairStyle=()=>{const t=this.domElement;if(!t)return;this._safeMutationObserver(t=>{t.disconnect()}),this._initStyle(),this.initBackground();const e=this._pointerEvents;t.style.pointerEvents=e,t.style.setProperty("pointer-events",e),this._safeMutationObserver(e=>{t instanceof Node&&e.observe(t,{attributes:!0})})};_resetOriginalStyle=()=>{const t=this.domElement,e=this._originalStyle;t&&e&&Jg(t,e,!0)};_safeMutationObserver=t=>{this._mutationObserver&&t(this._mutationObserver)};_setFullScreenStyle=()=>{const t=this.domElement;t&&Jg(t,zt(this._container.actualOptions.fullScreen.zIndex),!0)}}class ef{container;_handlers;_resizeObserver;_resizeTimeout;constructor(t){this.container=t,this._handlers={visibilityChange:()=>{this._handleVisibilityChange()},resize:()=>{this._handleWindowResize()}}}addListeners(){this._manageListeners(!0)}removeListeners(){this._manageListeners(!1)}_handleVisibilityChange=()=>{const t=this.container;t.actualOptions.pauseOnBlur&&(pt().hidden?(t.pageHidden=!0,t.pause()):(t.pageHidden=!1,t.animationStatus?t.play(!0):t.draw(!0)))};_handleWindowResize=()=>{this._resizeTimeout&&(clearTimeout(this._resizeTimeout),delete this._resizeTimeout);const t=async()=>{const t=this.container.canvas;await t.windowResize()};this._resizeTimeout=setTimeout(()=>{t()},this.container.actualOptions.resize.delay*r)};_manageListeners=t=>{const e=this._handlers;this._manageResize(t),Rt(document,s,e.visibilityChange,t,!1)};_manageResize=t=>{const e=this._handlers,i=this.container;if(!i.actualOptions.resize.enable)return;if("undefined"==typeof ResizeObserver)return void Rt(globalThis,n,e.resize,t);const s=i.canvas.domElement;this._resizeObserver&&!t?(s&&this._resizeObserver.unobserve(s),this._resizeObserver.disconnect(),delete this._resizeObserver):!this._resizeObserver&&t&&s&&(this._resizeObserver=new ResizeObserver(t=>{t.find(t=>t.target===s)&&this._handleWindowResize()}),this._resizeObserver.observe(s))}}function nf(t){if(!_t(t.outMode,t.checkModes))return;const e=2*t.radius;t.coord>t.maxCoord-e?t.setCb(-t.radius):t.coord<e&&t.setCb(t.radius)}class sf{backColor;bubble;destroyed;direction;effect;effectClose;effectData;fillColor;fillEnabled;fillOpacity;group;id;ignoresResizeRatio;initialPosition;initialVelocity;isRotating;justWarped;lastPathTime;misplaced;moveCenter;offset;opacity;options;outType;pathRotation;position;randomIndexData;retina;roll;rotation;shape;shapeClose;shapeData;sides;size;slow;spawning;strokeColor;strokeOpacity;strokeWidth;unbreakable;velocity;zIndexFactor;_cachedOpacityData={fillOpacity:1,opacity:1,strokeOpacity:1};_cachedPosition=P.origin;_cachedRotateData={sin:0,cos:0};_cachedTransform={a:1,b:0,c:0,d:1};_container;_pluginManager;constructor(t,e){this._pluginManager=t,this._container=e}destroy(e){if(this.unbreakable||this.destroyed)return;this.destroyed=!0,this.bubble.inRange=!1,this.slow.inRange=!1;const i=this._container,n=this.shape?i.shapeDrawers.get(this.shape):void 0;n?.particleDestroy?.(this);for(const t of i.particleDestroyedPlugins)t.particleDestroyed?.(this,e);for(const t of i.particleUpdaters)t.particleDestroyed?.(this,e);this._container.dispatchEvent(t.EventType.particleDestroyed,{particle:this})}draw(t){const e=this._container.canvas.render;e.drawParticlePlugins(this,t),e.drawParticle(this,t)}getAngle(){return this.rotation+(this.pathRotation?this.velocity.angle:0)}getFillColor(){return this._getRollColor(this.bubble.color??yi(this.fillColor))}getMass(){return this.getRadius()**2*Math.PI*a}getOpacity(){const t=this.options.zIndex,e=(1-this.zIndexFactor)**t.opacityRate,i=this.bubble.opacity??U(this.opacity?.value??1),n=this.fillOpacity??1,s=this.strokeOpacity??1;return this._cachedOpacityData.fillOpacity=i*n*e,this._cachedOpacityData.opacity=i*e,this._cachedOpacityData.strokeOpacity=i*s*e,this._cachedOpacityData}getPosition(){return this._cachedPosition.x=this.position.x+this.offset.x,this._cachedPosition.y=this.position.y+this.offset.y,this._cachedPosition.z=this.position.z,this._cachedPosition}getRadius(){return this.bubble.radius??this.size.value}getRotateData(){const t=this.getAngle();return this._cachedRotateData.sin=Math.sin(t),this._cachedRotateData.cos=Math.cos(t),this._cachedRotateData}getStrokeColor(){return this._getRollColor(this.bubble.color??yi(this.strokeColor))}getTransformData(t){const e=this.getRotateData(),i=this.isRotating;return this._cachedTransform.a=e.cos*(t.a??l.a),this._cachedTransform.b=i?e.sin*(t.b??1):t.b??l.b,this._cachedTransform.c=i?-e.sin*(t.c??1):t.c??l.c,this._cachedTransform.d=e.cos*(t.d??l.d),this._cachedTransform}init(e,i,n,s){const o=this._container;this.id=e,this.group=s,this.justWarped=!1,this.effectClose=!0,this.shapeClose=!0,this.pathRotation=!1,this.lastPathTime=0,this.destroyed=!1,this.unbreakable=!1,this.isRotating=!1,this.rotation=0,this.misplaced=!1,this.retina={maxDistance:{},maxSpeed:0,moveDrift:0,moveSpeed:0,sizeAnimationSpeed:0},this.outType=t.ParticleOutType.normal,this.ignoresResizeRatio=!0;const a=o.retina.pixelRatio,r=o.actualOptions,c=He(this._pluginManager,o,r.particles),l=c.reduceDuplicates,d=c.effect.type,u=c.shape.type;this.effect=Ot(d,this.id,l),this.shape=Ot(u,this.id,l);const p=c.effect,g=c.shape;if(n){if(n.effect?.type){const t=Ot(n.effect.type,this.id,l);t&&(this.effect=t,p.load(n.effect))}if(n.shape?.type){const t=Ot(n.shape.type,this.id,l);t&&(this.shape=t,g.load(n.shape))}}if(this.effect===h){const t=[...this._container.effectDrawers.keys()];this.effect=t[Math.floor(R()*t.length)]}if(this.shape===h){const t=[...this._container.shapeDrawers.keys()];this.shape=t[Math.floor(R()*t.length)]}this.effectData=this.effect?function(t,e,i,n){const s=e.options[t];return St({close:e.close},Ot(s,i,n))}(this.effect,p,this.id,l):void 0,this.shapeData=this.shape?function(t,e,i,n){const s=e.options[t];return St({close:e.close},Ot(s,i,n))}(this.shape,g,this.id,l):void 0,c.load(n);const f=this.effectData;f&&c.load(f.particles);const y=this.shapeData;let _,m;y&&c.load(y.particles),this.effectClose=f?.close??c.effect.close,this.shapeClose=y?.close??c.shape.close,this.options=c,o.retina.initParticle(this),this.size=Tt(this.options.size,a),this.bubble={inRange:!1},this.slow={inRange:!1,factor:1},this._initPosition(i),this.initialVelocity=this._calculateVelocity(),this.velocity=this.initialVelocity.copy(),this.zIndexFactor=this.position.z/o.zLayers,this.sides=24,this.effect&&(_=o.effectDrawers.get(this.effect)),_?.loadEffect&&_.loadEffect(this),this.shape&&(m=o.shapeDrawers.get(this.shape)),m?.loadShape&&m.loadShape(this);const v=m?.getSidesCount;v&&(this.sides=v(this)),this.spawning=!1;for(const t of o.particleUpdaters)t.init(this);_?.particleInit?.(o,this),m?.particleInit?.(o,this);for(const t of o.particleCreatedPlugins)t.particleCreated?.(this)}isInsideCanvas(){const t=this.getRadius(),e=this._container.canvas.size,i=this.position;return i.x>=-t&&i.y>=-t&&i.y<=e.height+t&&i.x<=e.width+t}isShowingBack(){if(!this.roll)return!1;const t=this.roll.angle;if(this.roll.horizontal&&this.roll.vertical){const e=t%u,i=e<0?e+u:e;return i>=Math.PI*a&&i<3*Math.PI*a}if(this.roll.horizontal){const e=(t+Math.PI*a)%(2*Math.PI),i=e<0?e+2*Math.PI:e;return i>=Math.PI&&i<2*Math.PI}if(this.roll.vertical){const e=t%(2*Math.PI),i=e<0?e+2*Math.PI:e;return i>=Math.PI&&i<2*Math.PI}return!1}isVisible(){return!this.destroyed&&!this.spawning&&this.isInsideCanvas()}reset(){for(const t of this._container.particleUpdaters)t.reset?.(this)}_calcPosition=(t,e)=>{let i=0,n=t?P.create(t.x,t.y,e):void 0;const s=this._container,o=s.particlePositionPlugins,a=this.options.move.outModes,r=this.getRadius(),c=s.canvas.size,l=new AbortController,{signal:h}=l;for(;!h.aborted;){for(const t of o){const i=t.particlePosition?.(n,this);if(i)return P.create(i.x,i.y,e)}const t=nt({size:c,position:n}),l=P.create(t.x,t.y,e);this._fixHorizontal(l,r,a.left??a.default),this._fixHorizontal(l,r,a.right??a.default),this._fixVertical(l,r,a.top??a.default),this._fixVertical(l,r,a.bottom??a.default);let h=!0;for(const t of s.particles.checkParticlePositionPlugins)if(h=t.checkParticlePosition?.(this,l,i)??!0,!h)break;if(h)return l;i+=1,n=void 0}return n};_calculateVelocity=()=>{const e=J(this.direction).copy(),i=this.options.move;if(i.direction===t.MoveDirection.inside||i.direction===t.MoveDirection.outside)return e;const n=Y(U(i.angle.value)),s=Y(U(i.angle.offset)),o={left:s-n*a,right:s+n*a};return i.straight||(e.angle+=N(q(o.left,o.right))),i.random&&"number"==typeof i.speed&&(e.length*=R()),e};_fixHorizontal=(e,i,n)=>{nf({outMode:n,checkModes:[t.OutMode.bounce],coord:e.x,maxCoord:this._container.canvas.size.width,setCb:t=>e.x+=t,radius:i})};_fixVertical=(e,i,n)=>{nf({outMode:n,checkModes:[t.OutMode.bounce],coord:e.y,maxCoord:this._container.canvas.size.height,setCb:t=>e.y+=t,radius:i})};_getRollColor=t=>t&&this.roll&&(this.backColor||this.roll.alter)&&this.isShowingBack()?this.backColor?this.backColor:this.roll.alter?bi(t,this.roll.alter.type,this.roll.alter.value):t:t;_initPosition=e=>{const i=this._container,n=Math.floor(U(this.options.zIndex.value)),s=this._calcPosition(e,H(n,0,i.zLayers));if(!s)throw new Error("a valid position cannot be found for particle");this.position=s,this.initialPosition=this.position.copy();const o=i.canvas.size;switch(this.moveCenter={...Vt(this.options.move.center,o),radius:this.options.move.center.radius,mode:this.options.move.center.mode},this.direction=K(this.options.move.direction,this.position,this.moveCenter),this.options.move.direction){case t.MoveDirection.inside:this.outType=t.ParticleOutType.inside;break;case t.MoveDirection.outside:this.outType=t.ParticleOutType.outside}this.offset=M.origin}}class of{_cellSize;_cells=new Map;_circlePool=[];_circlePoolIdx;_pendingCellSize;_rectanglePool=[];_rectanglePoolIdx;constructor(t){this._cellSize=t,this._circlePoolIdx=0,this._rectanglePoolIdx=0}clear(){this._cells.clear();const t=this._pendingCellSize;t&&(this._cellSize=t),this._pendingCellSize=void 0}insert(t){const{x:e,y:i}=t.getPosition(),n=this._cellKeyFromCoords(e,i);this._cells.has(n)||this._cells.set(n,[]),this._cells.get(n)?.push(t)}query(t,e,i=[]){const n=this._getRangeBounds(t);if(!n)return i;const s=Math.floor(n.minX/this._cellSize),o=Math.floor(n.maxX/this._cellSize),a=Math.floor(n.minY/this._cellSize),r=Math.floor(n.maxY/this._cellSize);for(let n=s;n<=o;n++)for(let s=a;s<=r;s++){const o=`${n}_${s}`,a=this._cells.get(o);if(a)for(const n of a)e&&!e(n)||t.contains(n.getPosition())&&i.push(n)}return i}queryCircle(t,e,i,n=[]){const s=this._acquireCircle(t.x,t.y,e),o=this.query(s,i,n);return this._releaseShapes(),o}queryRectangle(t,e,i,n=[]){const s=this._acquireRectangle(t.x,t.y,e.width,e.height),o=this.query(s,i,n);return this._releaseShapes(),o}setCellSize(t){this._pendingCellSize=t}_acquireCircle(t,e,i){return(this._circlePool[this._circlePoolIdx++]??=new ie(t,e,i)).reset(t,e,i)}_acquireRectangle(t,e,i,n){return(this._rectanglePool[this._rectanglePoolIdx++]??=new ne(t,e,i,n)).reset(t,e,i,n)}_cellKeyFromCoords(t,e){return`${Math.floor(t/this._cellSize)}_${Math.floor(e/this._cellSize)}`}_getRangeBounds(t){if(t instanceof ie){const e=t.radius,{x:i,y:n}=t.position;return{minX:i-e,maxX:i+e,minY:n-e,maxY:n+e}}if(t instanceof ne){const{x:e,y:i}=t.position,{width:n,height:s}=t.size;return{minX:e,maxX:e+n,minY:i,maxY:i+s}}return null}_releaseShapes(){this._circlePoolIdx=0,this._rectanglePoolIdx=0}}class af{checkParticlePositionPlugins;grid;_array;_container;_groupLimits;_limit;_nextId;_particleBuckets;_particleResetPlugins;_particleUpdatePlugins;_pluginManager;_pool;_postParticleUpdatePlugins;_postUpdatePlugins;_resizeFactor;_updatePlugins;_zBuckets;constructor(t,e){this._pluginManager=t,this._container=e,this._nextId=0,this._array=[],this._pool=[],this._limit=0,this._groupLimits=new Map,this._particleBuckets=new Map,this._zBuckets=this._createBuckets(this._container.zLayers),this.grid=new of(100),this.checkParticlePositionPlugins=[],this._particleResetPlugins=[],this._particleUpdatePlugins=[],this._postUpdatePlugins=[],this._postParticleUpdatePlugins=[],this._updatePlugins=[]}get count(){return this._array.length}addParticle(e,i,n,s){const o=this._container.actualOptions.particles.number.limit.mode,a=void 0===n?this._limit:this._groupLimits.get(n)??this._limit,r=this.count;if(a>0)switch(o){case t.LimitMode.delete:{const t=r+1-a;t>0&&this.removeQuantity(t);break}case t.LimitMode.wait:if(r>=a)return}try{const o=this._pool.pop()??new sf(this._pluginManager,this._container);o.init(this._nextId,e,i,n);let a=!0;return s&&(a=s(o)),a?(this._array.push(o),this._insertParticleIntoBucket(o),this._nextId++,this._container.dispatchEvent(t.EventType.particleAdded,{particle:o}),o):void this._pool.push(o)}catch(t){$t().warning(`error adding particle: ${t}`)}}clear(){this._array=[],this._particleBuckets.clear(),this._resetBuckets(this._container.zLayers)}destroy(){this._array=[],this._pool.length=0,this._particleBuckets.clear(),this._zBuckets=[],this.checkParticlePositionPlugins=[],this._particleResetPlugins=[],this._particleUpdatePlugins=[],this._postUpdatePlugins=[],this._postParticleUpdatePlugins=[],this._updatePlugins=[]}drawParticles(t){for(let e=this._zBuckets.length-1;e>=0;e--){const i=this._zBuckets[e];if(i)for(const e of i)e.draw(t)}}filter(t){return this._array.filter(t)}find(t){return this._array.find(t)}get(t){return this._array[t]}async init(){const t=this._container,e=t.actualOptions;this.checkParticlePositionPlugins=[],this._updatePlugins=[],this._particleUpdatePlugins=[],this._postUpdatePlugins=[],this._particleResetPlugins=[],this._postParticleUpdatePlugins=[],this._particleBuckets.clear(),this._resetBuckets(t.zLayers),this.grid=new of(100*t.retina.pixelRatio);for(const e of t.plugins)e.redrawInit&&await e.redrawInit(),e.checkParticlePosition&&this.checkParticlePositionPlugins.push(e),e.update&&this._updatePlugins.push(e),e.particleUpdate&&this._particleUpdatePlugins.push(e),e.postUpdate&&this._postUpdatePlugins.push(e),e.particleReset&&this._particleResetPlugins.push(e),e.postParticleUpdate&&this._postParticleUpdatePlugins.push(e);await this._container.initDrawersAndUpdaters();for(const e of this._container.effectDrawers.values())await(e.init?.(t));for(const e of this._container.shapeDrawers.values())await(e.init?.(t));let i=!1;for(const e of t.plugins)if(i=e.particlesInitialization?.()??i,i)break;if(!i){const t=e.particles,i=t.groups;for(const e in i){const n=i[e];if(n)for(let i=this.count,s=0;s<n.number.value&&i<t.number.value;i++,s++)this.addParticle(void 0,n,e)}for(let e=this.count;e<t.number.value;e++)this.addParticle()}}push(t,e,i,n){for(let s=0;s<t;s++)this.addParticle(e,i,n)}async redraw(){this.clear(),await this.init(),this._container.canvas.render.drawParticles({value:0,factor:0})}remove(t,e,i){this.removeAt(this._array.indexOf(t),void 0,e,i)}removeAt(t,e=1,i,n){if(t<0||t>this.count)return;let s=0;for(let o=t;s<e&&o<this.count;o++)this._removeParticle(o,i,n)&&(o--,s++)}removeQuantity(t,e){this.removeAt(0,t,e)}setDensity(){const t=this._container.actualOptions,e=t.particles.groups;let i=0;for(const t of this._container.plugins)t.particlesDensityCount&&(i+=t.particlesDensityCount());for(const t in e){const n=e[t];if(!n)continue;const s=He(this._pluginManager,this._container,n);this._applyDensity(s,i,t)}this._applyDensity(t.particles,i)}setResizeFactor(t){this._resizeFactor=t}update(t){this.grid.clear();for(const e of this._updatePlugins)e.update?.(t);const e=this._updateParticlesPhase1(t);for(const e of this._postUpdatePlugins)e.postUpdate?.(t);if(this._updateParticlesPhase2(t,e),e.size)for(const t of e)this.remove(t);delete this._resizeFactor}_addToPool=(...t)=>{this._pool.push(...t)};_applyDensity=(t,e,i,n)=>{const s=t.number;if(!s.density.enable)return void(void 0===i?this._limit=s.limit.value:(n?.number.limit.value??s.limit.value)&&this._groupLimits.set(i,n?.number.limit.value??s.limit.value));const o=this._initDensityFactor(s.density),a=s.value,r=s.limit.value>0?s.limit.value:a,c=Math.min(a,r)*o+e,l=Math.min(this.count,this.filter(t=>t.group===i).length);void 0===i?this._limit=s.limit.value*o:this._groupLimits.set(i,s.limit.value*o),l<c?this.push(Math.abs(c-l),void 0,t,i):l>c&&this.removeQuantity(l-c,i)};_createBuckets=t=>{const e=Math.max(Math.floor(t),1);return Array.from({length:e},()=>[])};_getBucketIndex=t=>{const e=this._zBuckets.length-1;return e<=0?0:Math.min(Math.max(Math.floor(t),0),e)};_getParticleInsertIndex=(t,e)=>{let i=0,n=t.length;for(;i<n;){const s=Math.floor((i+n)/2),o=t[s];o?o.id<e?i=s+1:n=s:n=s}return i};_initDensityFactor=t=>{const e=this._container;if(!t.enable)return 1;const i=e.canvas.size,n=e.retina.pixelRatio;return i.width&&i.height?i.width*i.height/(t.height*t.width*n**2):1};_insertParticleIntoBucket=t=>{const e=this._getBucketIndex(t.position.z),i=this._zBuckets[e];i&&(i.splice(this._getParticleInsertIndex(i,t.id),0,t),this._particleBuckets.set(t.id,e))};_removeParticle=(e,i,n)=>{const s=this._array[e];return!!s&&(s.group===i&&(this._array.splice(e,1),this._removeParticleFromBucket(s),s.destroy(n),this._container.dispatchEvent(t.EventType.particleRemoved,{particle:s}),this._addToPool(s),!0))};_removeParticleFromBucket=t=>{const e=this._particleBuckets.get(t.id)??this._getBucketIndex(t.position.z),i=this._zBuckets[e];if(!i)return void this._particleBuckets.delete(t.id);const n=this._getParticleInsertIndex(i,t.id);i[n]?.id===t.id?(i.splice(n,1),this._particleBuckets.delete(t.id)):this._particleBuckets.delete(t.id)};_resetBuckets=t=>{const e=Math.max(Math.floor(t),1);if(this._zBuckets.length===e)for(const t of this._zBuckets)t.length=0;else this._zBuckets=this._createBuckets(e)};_updateParticleBucket=t=>{const e=this._getBucketIndex(t.position.z),i=this._particleBuckets.get(t.id);if(void 0===i)return void this._insertParticleIntoBucket(t);if(i===e)return;const n=this._zBuckets[i];if(n){const e=this._getParticleInsertIndex(n,t.id);n[e]?.id===t.id&&n.splice(e,1)}const s=this._zBuckets[e];s?(s.splice(this._getParticleInsertIndex(s,t.id),0,t),this._particleBuckets.set(t.id,e)):this._particleBuckets.set(t.id,e)};_updateParticlesPhase1=t=>{const e=new Set,i=this._resizeFactor;for(const n of this._array){i&&!n.ignoresResizeRatio&&(n.position.x*=i.width,n.position.y*=i.height,n.initialPosition.x*=i.width,n.initialPosition.y*=i.height),n.ignoresResizeRatio=!1;for(const t of this._particleResetPlugins)t.particleReset?.(n);for(const e of this._particleUpdatePlugins){if(n.destroyed)break;e.particleUpdate?.(n,t)}n.destroyed?e.add(n):this.grid.insert(n)}return e};_updateParticlesPhase2=(t,e)=>{for(const i of this._array)if(i.destroyed)e.add(i);else{for(const e of this._container.particleUpdaters)e.update(i,t);if(!i.spawning)for(const e of this._postParticleUpdatePlugins)e.postParticleUpdate?.(i,t);this._updateParticleBucket(i)}}}class rf{container;pixelRatio;reduceFactor;constructor(t){this.container=t,this.pixelRatio=1,this.reduceFactor=1}init(){const t=this.container,e=t.actualOptions;this.pixelRatio=e.detectRetina?devicePixelRatio:1,this.reduceFactor=1;const i=this.pixelRatio,n=t.canvas,s=n.domElement;s&&(n.size.width=s.offsetWidth*i,n.size.height=s.offsetHeight*i)}initParticle(t){const e=t.options,i=this.pixelRatio,n=e.move,s=n.distance,o=t.retina;o.maxSpeed=U(n.gravity.maxSpeed)*i,o.moveDrift=U(n.drift)*i,o.moveSpeed=U(n.speed)*i,o.sizeAnimationSpeed=U(e.size.animation.speed)*i;const a=o.maxDistance;a.horizontal=void 0===s.horizontal?void 0:s.horizontal*i,a.vertical=void 0===s.vertical?void 0:s.vertical*i}}function cf(t){return!t.destroyed}function lf(t,e,...i){const n=new Be(t,e);return Fe(n,...i),n}var hf=Object.freeze({__proto__:null,Container:class{actualOptions;canvas;destroyed;effectDrawers;fpsLimit;hdr;id;pageHidden;particleCreatedPlugins;particleDestroyedPlugins;particlePositionPlugins;particleUpdaters;particles;plugins;retina;shapeDrawers;started;zLayers;_delay;_delayTimeout;_delta={value:0,factor:0};_dispatchCallback;_drawAnimationFrame;_duration;_eventListeners;_firstStart;_initialSourceOptions;_lastFrameTime;_lifeTime;_onDestroy;_options;_paused;_pluginManager;_smooth;_sourceOptions;constructor(e){const{dispatchCallback:i,pluginManager:n,id:s,onDestroy:o,sourceOptions:a}=e;this._pluginManager=n,this._dispatchCallback=i,this._onDestroy=o,this.id=Symbol(s),this.fpsLimit=120,this.hdr=!1,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=a,this._initialSourceOptions=a,this.effectDrawers=new Map,this.shapeDrawers=new Map,this.particleUpdaters=[],this.retina=new rf(this),this.canvas=new tf(this._pluginManager,this),this.particles=new af(this._pluginManager,this),this.plugins=[],this.particleDestroyedPlugins=[],this.particleCreatedPlugins=[],this.particlePositionPlugins=[],this._options=lf(this._pluginManager,this),this.actualOptions=lf(this._pluginManager,this),this._eventListeners=new ef(this),this.dispatchEvent(t.EventType.containerBuilt)}get animationStatus(){return!this._paused&&!this.pageHidden&&cf(this)}get options(){return this._options}get sourceOptions(){return this._sourceOptions}addLifeTime(t){this._lifeTime+=t}alive(){return!this._duration||this._lifeTime<=this._duration}destroy(e=!0){if(cf(this)){this.stop(),this.particles.destroy(),this.canvas.destroy();for(const[,t]of this.effectDrawers)t.destroy?.(this);for(const[,t]of this.shapeDrawers)t.destroy?.(this);for(const t of this.plugins)t.destroy?.();this.effectDrawers=new Map,this.shapeDrawers=new Map,this.particleUpdaters=[],this.plugins.length=0,this._pluginManager.clearPlugins(this),this.destroyed=!0,this._onDestroy(e),this.dispatchEvent(t.EventType.containerDestroyed)}}dispatchEvent(t,e){this._dispatchCallback(t,{container:this,data:e})}draw(t){if(!cf(this))return;let e=t;this._drawAnimationFrame=L(t=>{e&&(this._lastFrameTime=void 0,e=!1),this._nextFrame(t)})}async export(t,e={}){for(const i of this.plugins){if(!i.export)continue;const n=await i.export(t,e);if(n.supported)return n.blob}$t().error(`Export plugin with type ${t} not found`)}async init(){if(!cf(this))return;const e=new Map;for(const t of this._pluginManager.plugins){const i=await t.getPlugin(this);i.preInit&&await i.preInit(),e.set(t,i)}await this.initDrawersAndUpdaters(),this._options=lf(this._pluginManager,this,this._initialSourceOptions,this.sourceOptions),this.actualOptions=lf(this._pluginManager,this,this._options),this.plugins.length=0,this.particleDestroyedPlugins.length=0,this.particleCreatedPlugins.length=0,this.particlePositionPlugins.length=0;for(const[t,i]of e)t.needsPlugin(this.actualOptions)&&(this.plugins.push(i),i.particleCreated&&this.particleCreatedPlugins.push(i),i.particleDestroyed&&this.particleDestroyedPlugins.push(i),i.particlePosition&&this.particlePositionPlugins.push(i));this.retina.init(),this.canvas.init(),this.updateActualOptions(),this.canvas.initBackground(),this.canvas.resize();const{delay:i,duration:n,fpsLimit:s,hdr:o,smooth:a,zLayers:c}=this.actualOptions;this.hdr=o,this.zLayers=c,this._duration=U(n)*r,this._delay=U(i)*r,this._lifeTime=0,this.fpsLimit=s>0?s:120,this._smooth=a;for(const t of this.plugins)await(t.init?.());await this.particles.init(),this.dispatchEvent(t.EventType.containerInit),this.particles.setDensity();for(const t of this.plugins)t.particlesSetup?.();this.dispatchEvent(t.EventType.particlesSetup)}async initDrawersAndUpdaters(){const t=this._pluginManager;this.effectDrawers=await t.getEffectDrawers(this,!0),this.shapeDrawers=await t.getShapeDrawers(this,!0),this.particleUpdaters=await t.getUpdaters(this,!0)}pause(){if(cf(this)&&(void 0!==this._drawAnimationFrame&&(F(this._drawAnimationFrame),delete this._drawAnimationFrame),!this._paused)){for(const t of this.plugins)t.pause?.();this.pageHidden||(this._paused=!0),this.dispatchEvent(t.EventType.containerPaused)}}play(e){if(!cf(this))return;const i=this._paused||e;if(!this._firstStart||this.actualOptions.autoPlay){if(this._paused&&(this._paused=!1),i)for(const t of this.plugins)t.play&&t.play();this.dispatchEvent(t.EventType.containerPlay),this.draw(i??!1)}else this._firstStart=!1}async refresh(){if(cf(this))return this.stop(),this.start()}async reset(t){if(cf(this))return this._initialSourceOptions=t,this._sourceOptions=t,this._options=lf(this._pluginManager,this,this._initialSourceOptions,this.sourceOptions),this.actualOptions=lf(this._pluginManager,this,this._options),this.refresh()}async start(){cf(this)&&!this.started&&(await this.init(),this.started=!0,await new Promise(e=>{const i=async()=>{this._eventListeners.addListeners();for(const t of this.plugins)await(t.start?.());this.dispatchEvent(t.EventType.containerStarted),this.play(),e()};this._delayTimeout=setTimeout(()=>{i()},this._delay)}))}stop(){if(cf(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();for(const t of this.plugins)t.stop?.();this.particleCreatedPlugins.length=0,this.particleDestroyedPlugins.length=0,this.particlePositionPlugins.length=0,this._sourceOptions=this._options,this.dispatchEvent(t.EventType.containerStopped)}}updateActualOptions(){let t=!1;for(const e of this.plugins)e.updateActualOptions&&(t=e.updateActualOptions()||t);return t}_nextFrame=t=>{try{if(!this._smooth&&void 0!==this._lastFrameTime&&t<this._lastFrameTime+r/this.fpsLimit)return void this.draw(!1);if(this._lastFrameTime??=t,function(t,e,i=60,n=!1){t.value=e,t.factor=n?60/i:60*e/r}(this._delta,t-this._lastFrameTime,this.fpsLimit,this._smooth),this.addLifeTime(this._delta.value),this._lastFrameTime=t,this._delta.value>r)return void this.draw(!1);if(this.canvas.render.drawParticles(this._delta),!this.alive())return void this.destroy();this.animationStatus&&this.draw(!1)}catch(t){$t().error("error in animation loop",t)}}}});var df=Object.freeze({__proto__:null,BackgroundMaskPluginInstance:class{_container;_coverColorStyle;_coverImage;_defaultCompositeValue;_pluginManager;constructor(t,e){this._pluginManager=t,this._container=e}canvasClear(){const t=this._container.actualOptions.backgroundMask;return!!t?.enable&&this.canvasPaint()}canvasPaint(){if(!this._container.actualOptions.backgroundMask?.enable)return!1;const t=this._container.canvas;return t.render.canvasClear(),this._coverImage?t.render.paintImage(this._coverImage.image,this._coverImage.opacity):t.render.paintBase(this._coverColorStyle),!0}drawSettingsCleanup(t){this._defaultCompositeValue&&(t.globalCompositeOperation=this._defaultCompositeValue)}drawSettingsSetup(t){const e=t.globalCompositeOperation,i=this._container.actualOptions.backgroundMask;this._defaultCompositeValue=e,t.globalCompositeOperation=i?.enable?i.composite:e}async init(){await this._initCover()}_initCover=async()=>{const t=this._container.actualOptions,e=t.backgroundMask?.cover,i=e?.color;if(i){const t=ei(this._pluginManager,i);if(t){const i={...t,a:e.opacity};this._coverColorStyle=hi(i,this._container.hdr,i.a)}}else await new Promise((t,i)=>{if(!e?.image)return;const n=pt().createElement("img");n.addEventListener("load",()=>{this._coverImage={image:n,opacity:e.opacity},t()}),n.addEventListener("error",()=>{i(new Error("Error loading image"))}),n.src=e.image})}}});var uf=Object.freeze({__proto__:null,BlendPluginInstance:class{_container;_defaultCompositeValue;constructor(t){this._container=t}drawParticleCleanup(t,e){e.options.blend?.enable&&(t.globalCompositeOperation=e.originalBlendMode??i,e.originalBlendMode=void 0)}drawParticleSetup(t,e){e.options.blend?.enable&&(e.originalBlendMode=t.globalCompositeOperation,t.globalCompositeOperation=e.options.blend.mode)}drawSettingsCleanup(t){this._defaultCompositeValue&&(t.globalCompositeOperation=this._defaultCompositeValue)}drawSettingsSetup(t){const e=t.globalCompositeOperation,i=this._container.actualOptions.blend;this._defaultCompositeValue=e,t.globalCompositeOperation=i?.enable?i.mode:e}}});function pf(t,e,i,n,s,o,a){!function(t,e){const i=t.options,n=i.move.path;if(!n.enable)return;const s=t.pathDelay??0;if(t.lastPathTime<=s)return void(t.lastPathTime+=e.value);const o=t.pathGenerator?.generate(t,e);o&&t.velocity.addTo(o);n.clamp&&(t.velocity.x=H(t.velocity.x,-1,1),t.velocity.y=H(t.velocity.y,-1,1));t.lastPathTime-=s}(t,a);const r=t.gravity,c=r?.enable&&r.inverse?-1:1;s&&i&&(t.velocity.x+=s*a.factor/(60*i)),r?.enable&&i&&(t.velocity.y+=c*(r.acceleration*a.factor)/(60*i));const l=t.moveDecay;t.velocity.multTo(l??1);const h=t.velocity.mult(i);r?.enable&&n>0&&(!r.inverse&&h.y>=0&&h.y>=n||r.inverse&&h.y<=0&&h.y<=-n)&&(h.y=c*n,i&&(t.velocity.y=h.y/i));const d=t.options.zIndex,u=(1-t.zIndexFactor)**d.velocityRate;h.multTo(u),h.multTo(o);const{position:p}=t;p.addTo(h),e.vibrate&&(p.x+=Math.sin(p.x*Math.cos(p.y))*o,p.y+=Math.cos(p.y*Math.sin(p.x))*o)}var gf=Object.freeze({__proto__:null,MovePluginInstance:class{availablePathGenerators;pathGenerators;_container;_pluginManager;constructor(t,e){this._pluginManager=t,this._container=e,this.availablePathGenerators=new Map,this.pathGenerators=new Map}destroy(){this.availablePathGenerators=new Map,this.pathGenerators=new Map}isEnabled(t){return!t.destroyed&&t.options.move.enable}particleCreated(e){const i=e.options.move,n=i.gravity,s=i.path;if(e.moveDecay=1-U(i.decay),e.pathDelay=U(s.delay.value)*r,s.generator){let t=this.pathGenerators.get(s.generator);t||(t=this.availablePathGenerators.get(s.generator),t&&(this.pathGenerators.set(s.generator,t),t.init())),e.pathGenerator=t}e.gravity={enable:n.enable,acceleration:U(n.acceleration),inverse:n.inverse},function(e,i){const n=i.options.move.spin;if(!n.enable)return;const s=n.position??{x:50,y:50},o={x:.01*s.x*e.canvas.size.width,y:.01*s.y*e.canvas.size.height},a=Z(i.getPosition(),o),r=U(n.acceleration);i.retina.spinAcceleration=r*e.retina.pixelRatio,i.spin={center:o,direction:i.velocity.x>=0?t.RotateDirection.clockwise:t.RotateDirection.counterClockwise,angle:R()*u,radius:a,acceleration:i.retina.spinAcceleration}}(this._container,e)}particleDestroyed(t){const e=t.pathGenerator;e?.reset(t)}particleUpdate(e,i){const n=e.options,s=n.move;if(!s.enable)return;const o=this._container,r=o.retina.pixelRatio,c=function(t){return t.slow.inRange?t.slow.factor:1}(e),l=o.retina.reduceFactor,h=e.retina.moveSpeed,d=e.retina.moveDrift,u=j(n.size.value)*r,p=h*(s.size?e.getRadius()/u:1)*c*(i.factor||1)*a,g=e.retina.maxSpeed;s.spin.enable?function(e,i,n,s){if(!i.spin)return;const o=i.spin.direction===t.RotateDirection.clockwise,r={x:o?Math.cos:Math.sin,y:o?Math.sin:Math.cos};i.position.x=i.spin.center.x+i.spin.radius*r.x(i.spin.angle)*s,i.position.y=i.spin.center.y+i.spin.radius*r.y(i.spin.angle)*s,i.spin.radius+=i.spin.acceleration*s;const c=Math.max(e.canvas.size.width,e.canvas.size.height),l=c*a;i.spin.radius>l?(i.spin.radius=l,i.spin.acceleration*=-1):i.spin.radius<0&&(i.spin.radius=0,i.spin.acceleration*=-1),i.spin.angle+=.01*n*(1-i.spin.radius/c)}(o,e,p,l):pf(e,s,p,g,d,l,i),function(t){const e=t.initialPosition,{dx:i,dy:n}=W(e,t.position),s=Math.abs(i),o=Math.abs(n),{maxDistance:r}=t.retina,c=r.horizontal,l=r.vertical;if(!c&&!l)return;if((c&&s>=c||l&&o>=l)&&!t.misplaced)t.misplaced=!!c&&s>c||!!l&&o>l,c&&(t.velocity.x=t.velocity.y*a-t.velocity.x),l&&(t.velocity.y=t.velocity.x*a-t.velocity.y);else if((!c||s<c)&&(!l||o<l)&&t.misplaced)t.misplaced=!1;else if(t.misplaced){const i=t.position,n=t.velocity;c&&(i.x<e.x&&n.x<0||i.x>e.x&&n.x>0)&&(n.x*=-R()),l&&(i.y<e.y&&n.y<0||i.y>e.y&&n.y>0)&&(n.y*=-R())}}(e)}preInit(){return this._init()}redrawInit(){return this._init()}update(){for(const t of this.pathGenerators.values())t.update()}async _init(){const t=await(this._pluginManager.getPathGenerators?.(this._container,!0));if(t){this.availablePathGenerators=t,this.pathGenerators=new Map;for(const t of this.pathGenerators.values())t.init()}}}});function ff(t,e,i,n,s,r){const{height:c,width:l}=e,h=c*l,d=function(t){const e=1,i=0;for(let n=t.length-e;n>=i;n--){const e=Math.floor(R()*n),i=t[n],s=t[e];s!==i&&(void 0!==s&&void 0!==i&&(t[n]=s,t[e]=i))}return t}(yf(h)),u=Math.min(h,t.actualOptions.particles.number.value),p=t.canvas.size;let g=0;const f=p.width*i.x/o-l*n*a,y=p.height*i.y/o-c*n*a;for(;g<u&&d.length;){const i=0,o=d.pop()??i,a={x:o%l,y:Math.floor(o/l)},c=e.pixels[a.y];if(!c)continue;const h=c[a.x];if(!h)continue;if(!r(h))continue;const u={x:a.x*n+f,y:a.y*n+y},p={};s.color&&(p.paint={fill:{color:{value:h},enable:!0}}),s.opacity&&(p.opacity={value:h.a}),t.particles.addParticle(u,p),g++}}const yf=t=>[...Array(t).keys()];var _f=Object.freeze({__proto__:null,CanvasMaskPluginInstance:class{_container;constructor(t){this._container=t}async init(){const t=this._container,e=t.actualOptions.canvasMask;if(!e?.enable)return;let i={pixels:[],height:0,width:0};const n=e.pixels.offset;if(e.image){const s=e.image.src;if(!s)return;i=await _o(s,n,t.canvas.render.settings)}else if(e.text){const s=e.text,o=mo(s,n,s.fill,t.canvas.render.settings);if(I(o))return;i=o}else if(e.element??e.selector){const s=e.element??(e.selector&&pt().querySelector(e.selector));if(!s)return;const o=s.getContext("2d",t.canvas.render.settings);if(!o)return;i=yo(o,s,n)}ff(t,i,e.position,e.scale,e.override,e.pixels.filter)}}});class mf{_canPush=!0;_clickPositionPlugins;_container;_handlers;_interactionManager;_touches;constructor(t,e){this._container=t,this._clickPositionPlugins=[],this._interactionManager=e,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()}}}addListeners(){this._manageListeners(!0)}init(){this._clickPositionPlugins.length=0;for(const t of this._container.plugins.filter(t=>!!t.clickPositionValid))this._clickPositionPlugins.push(t)}removeListeners(){this._manageListeners(!1)}_doMouseTouchClick=t=>{const e=this._container,i=this._interactionManager,n=e.actualOptions;if(this._canPush){const t=i.interactivityData.mouse,e=t.position;if(!e)return;t.clickPosition={...e},t.clickTime=performance.now();const s=n.interactivity?.events.onClick;if(!s?.mode)return;Ct(s.mode,t=>{i.handleClickMode(t)})}"touchend"===t.type&&setTimeout(()=>{this._mouseTouchFinish()},500)};_handleVisibilityChange=()=>{this._mouseTouchFinish()};_manageInteractivityListeners=t=>{const e=this._handlers,i=this._container,n=this._interactionManager,s=i.actualOptions,o=n.interactivityData.element;if(!o)return;const a=o,r=i.canvas;r.setPointerEvents(a===r.domElement?"initial":"none"),(!t||s.interactivity?.events.onHover.enable||s.interactivity?.events.onClick.enable)&&(Rt(o,Rs,e.mouseMove,t),Rt(o,Gs,e.touchStart,t),Rt(o,Fs,e.touchMove,t),t?s.interactivity?.events.onClick.enable?(Rt(o,Ls,e.touchEndClick,t),Rt(o,Es,e.mouseUp,t),Rt(o,As,e.mouseDown,t)):Rt(o,Ls,e.touchEnd,t):(Rt(o,Ls,e.touchEndClick,t),Rt(o,Es,e.mouseUp,t),Rt(o,As,e.mouseDown,t),Rt(o,Ls,e.touchEnd,t)),Rt(o,zs,e.mouseLeave,t),Rt(o,Hs,e.touchCancel,t))};_manageListeners=t=>{const e=this._handlers,i=this._container,n=this._interactionManager,o=i.actualOptions,a=o.interactivity?.detectsOn,r=i.canvas.domElement;a===Ss.window?n.interactivityData.element=pt():a===Ss.parent&&r?n.interactivityData.element=r.parentElement??r.parentNode:n.interactivityData.element=r,this._manageInteractivityListeners(t),Rt(document,s,e.visibilityChange,t,!1)};_mouseDown=()=>{const{interactivityData:t}=this._interactionManager,{mouse:e}=t;e.clicking=!0,e.downPosition=e.position};_mouseTouchClick=t=>{const e=this._container,i=this._interactionManager,n=e.actualOptions,{mouse:s}=i.interactivityData;s.inside=!0;let o=!1;const a=s.position;if(a&&n.interactivity?.events.onClick.enable){for(const t of this._clickPositionPlugins)if(o=t.clickPositionValid?.(a)??!1,o)break;o||this._doMouseTouchClick(t),s.clicking=!1}};_mouseTouchFinish=()=>{const{interactivityData:t}=this._interactionManager,{mouse:e}=t;delete e.position,delete e.clickPosition,delete e.downPosition,t.status=zs,e.inside=!1,e.clicking=!1};_mouseTouchMove=t=>{const e=this._container,i=this._interactionManager,n=e.actualOptions,s=i.interactivityData,o=e.canvas.domElement;if(!s.element)return;let a;if(s.mouse.inside=!0,t.type.startsWith("pointer")){this._canPush=!0;const e=t;if(s.element===pt()){if(o){const t=o.getBoundingClientRect();a={x:e.clientX-t.left,y:e.clientY-t.top}}}else if(n.interactivity?.detectsOn===Ss.parent){const t=e.target,i=e.currentTarget;if(o){const n=t.getBoundingClientRect(),s=i.getBoundingClientRect(),r=o.getBoundingClientRect();a={x:e.offsetX+2*n.left-(s.left+r.left),y:e.offsetY+2*n.top-(s.top+r.top)}}else a={x:e.offsetX,y:e.offsetY}}else e.target===o&&(a={x:e.offsetX,y:e.offsetY})}else if(this._canPush="touchmove"!==t.type,o){const e=t,i=e.touches[e.touches.length-1],n=o.getBoundingClientRect();if(!i)return;a={x:i.clientX-n.left,y:i.clientY-n.top}}const r=e.retina.pixelRatio;a&&(a.x*=r,a.y*=r),s.mouse.position=a,s.status=Rs};_touchEnd=t=>{const e=t,i=Array.from(e.changedTouches);for(const t of i)this._touches.delete(t.identifier);this._mouseTouchFinish()};_touchEndClick=t=>{const e=t,i=Array.from(e.changedTouches);for(const t of i)this._touches.delete(t.identifier);this._mouseTouchClick(t)};_touchStart=t=>{const e=t,i=Array.from(e.changedTouches);for(const t of i)this._touches.set(t.identifier,performance.now());this._mouseTouchMove(t)}}class vf{container;interactivityData;_clickHandlers;_eventListeners;_externalInteractors;_interactors;_intersectionObserver;_particleInteractors;_pluginManager;constructor(t,e){this.container=e,this._pluginManager=t,this._interactors=[],this._externalInteractors=[],this._particleInteractors=[],this._clickHandlers=new Map,this._eventListeners=new mf(e,this),this.interactivityData={mouse:{clicking:!1,inside:!1}},this._intersectionObserver=ft(t=>{this._intersectionManager(t)})}addClickHandler(t){const{container:e,interactivityData:i}=this;if(e.destroyed)return;const n=i.element;if(!n)return;const s=(i,n,s)=>{if(e.destroyed)return;const o=e.retina.pixelRatio,a={x:n.x*o,y:n.y*o},r=e.particles.grid.queryCircle(a,s*o);t(i,r)};let o=!1,a=!1;this._clickHandlers.set("click",t=>{if(e.destroyed)return;const i=t,n={x:i.offsetX,y:i.offsetY};s(t,n,1)}),this._clickHandlers.set(Gs,()=>{e.destroyed||(o=!0,a=!1)}),this._clickHandlers.set(Fs,()=>{e.destroyed||(a=!0)}),this._clickHandlers.set(Ls,t=>{if(!e.destroyed){if(o&&!a){const i=t,n=i.touches[i.touches.length-1];if(!n)return;const o=e.canvas.domElement,a=o?o.getBoundingClientRect():void 0,r={x:n.clientX-(a?a.left:0),y:n.clientY-(a?a.top:0)};s(t,r,Math.max(n.radiusX,n.radiusY))}o=!1,a=!1}}),this._clickHandlers.set(Hs,()=>{e.destroyed||(o=!1,a=!1)});for(const[t,e]of this._clickHandlers)n.addEventListener(t,e)}addListeners(){this._eventListeners.addListeners()}clearClickHandlers(){const{container:t,interactivityData:e}=this;if(!t.destroyed){for(const[t,i]of this._clickHandlers)e.element?.removeEventListener(t,i);this._clickHandlers.clear()}}externalInteract(t){for(const e of this._externalInteractors){const{interactivityData:i}=this;e.isEnabled(i)&&e.interact(i,t)}}handleClickMode(t){if(this.container.destroyed)return;const{interactivityData:e}=this;for(const i of this._externalInteractors)i.handleClickMode?.(t,e)}init(){this._eventListeners.init();for(const t of this._interactors){switch(t.type){case Ps.external:this._externalInteractors.push(t);break;case Ps.particles:this._particleInteractors.push(t)}t.init()}}async initInteractors(){const t=await(this._pluginManager.getInteractors?.(this.container,!0));t&&(this._interactors=t,this._externalInteractors=[],this._particleInteractors=[])}particlesInteract(t,e){const{interactivityData:i}=this;for(const i of this._externalInteractors)i.clear(t,e);for(const n of this._particleInteractors)n.isEnabled(t,i)&&n.interact(t,i,e)}removeListeners(){this._eventListeners.removeListeners()}reset(t){const{interactivityData:e}=this;for(const i of this._externalInteractors)i.isEnabled(e)&&i.reset(e,t);for(const i of this._particleInteractors)i.isEnabled(t,e)&&i.reset(e,t)}startObserving(){const{interactivityData:t}=this;t.element instanceof HTMLElement&&this._intersectionObserver&&this._intersectionObserver.observe(t.element)}stopObserving(){const{interactivityData:t}=this;t.element instanceof HTMLElement&&this._intersectionObserver&&this._intersectionObserver.unobserve(t.element)}updateMaxDistance(){let t=0;for(const e of this._interactors)e.maxDistance>t&&(t=e.maxDistance);const e=this.container;e.particles.grid.setCellSize(t*e.retina.pixelRatio)}_intersectionManager=t=>{const{container:e}=this;if(!e.destroyed&&e.actualOptions.pauseOnOutsideViewport)for(const i of t)i.target===this.interactivityData.element&&(i.isIntersecting?e.play():e.pause())}}var wf=Object.freeze({__proto__:null,InteractivityPluginInstance:class{interactionManager;_container;_pluginManager;constructor(t,e){this._container=e,this._pluginManager=t,this.interactionManager=new vf(t,e),this._container.addClickHandler=t=>{this.interactionManager.addClickHandler(t)}}addClickHandler(t){this.interactionManager.addClickHandler(t)}clearClickHandlers(){this.interactionManager.clearClickHandlers()}destroy(){this.clearClickHandlers(),this._pluginManager.interactors?.delete(this._container)}particleCreated(t){const e=t,i=new Ts(this._pluginManager,this._container);i.load(this._container.actualOptions.interactivity),i.load(e.options.interactivity),e.interactivity=i}particleReset(t){this.interactionManager.reset(t)}postParticleUpdate(t,e){this.interactionManager.particlesInteract(t,e)}postUpdate(t){this.interactionManager.externalInteract(t),this.interactionManager.updateMaxDistance()}async preInit(){await this.interactionManager.initInteractors(),this.interactionManager.init()}async redrawInit(){await this.interactionManager.initInteractors(),this.interactionManager.init()}start(){return this.interactionManager.addListeners(),this.interactionManager.startObserving(),Promise.resolve()}stop(){this.interactionManager.removeListeners(),this.interactionManager.stopObserving()}}});const bf=new Map;var xf=Object.freeze({__proto__:null,ShapeManager:class{addShapeGenerator(t,e){this.getShapeGenerator(t)||bf.set(t,e)}getShapeGenerator(t){return bf.get(t)}getSupportedShapeGenerators(){return bf.keys()}}});var Sf=Object.freeze({__proto__:null,EmittersInstancesManager:class{_containerArrays;_pluginManager;constructor(t){this._containerArrays=new Map,this._pluginManager=t}async addEmitter(t,e,i){const n=new Ys;n.load(e);const{EmitterInstance:s}=await Promise.resolve().then(function(){return ry}),o=new s(this._pluginManager,t,e=>{this.removeEmitter(t,e)},n,i);return await o.init(),this.getArray(t).push(o),o}clear(t){this.initContainer(t),this._containerArrays.set(t,[])}getArray(t){this.initContainer(t);let e=this._containerArrays.get(t);return e||(e=[],this._containerArrays.set(t,e)),e}initContainer(t){this._containerArrays.has(t)||(this._containerArrays.set(t,[]),t.getEmitter=e=>{const i=this.getArray(t);return void 0===e||k(e)?i[e??0]:i.find(t=>t.name===e)},t.addEmitter=async(e,i)=>this.addEmitter(t,e,i),t.removeEmitter=e=>{const i=t.getEmitter?.(e);i&&this.removeEmitter(t,i)},t.playEmitter=e=>{const i=t.getEmitter?.(e);i&&i.externalPlay()},t.pauseEmitter=e=>{const i=t.getEmitter?.(e);i&&i.externalPause()})}removeEmitter(t,e){const i=this.getArray(t).indexOf(e);i>=0&&this.getArray(t).splice(i,1)}}});var Pf=Object.freeze({__proto__:null,EmittersPluginInstance:class{container;_instancesManager;constructor(t,e){this.container=e,this._instancesManager=t,this._instancesManager.initContainer(e)}async init(){const t=this.container.actualOptions.emitters;if(V(t))for(const e of t)await this._instancesManager.addEmitter(this.container,e);else await this._instancesManager.addEmitter(this.container,t)}pause(){for(const t of this._instancesManager.getArray(this.container))t.pause()}play(){for(const t of this._instancesManager.getArray(this.container))t.play()}resize(){for(const t of this._instancesManager.getArray(this.container))t.resize()}stop(){this._instancesManager.clear(this.container)}update(t){this._instancesManager.getArray(this.container).forEach(e=>{e.update(t)})}}});var Mf=Object.freeze({__proto__:null,ExportImagePluginInstance:class{_container;constructor(t){this._container=t}async export(t,e){const i={supported:!1};if("image"===t)i.supported=!0,i.blob=await this._exportImage(e);return i}_exportImage=async t=>{const e=this._container.canvas.domElement;if(e)return new Promise(i=>{e.toBlob(t=>{i(t||void 0)},t.type??"image/png",t.quality)})}}});var Cf=Object.freeze({__proto__:null,ExportJSONPluginInstance:class{_container;constructor(t){this._container=t}async export(t){const e={supported:!1};if("json"===t)e.supported=!0,e.blob=await this._exportJSON();return e}_exportJSON=async()=>{const t=JSON.stringify(this._container.actualOptions,(t,e)=>{if(!t.startsWith("_"))return e},2);return Promise.resolve(new Blob([t],{type:"application/json"}))}}});const Of=["webm","ogg","mp4","x-matroska"],kf=["vp9","vp9.0","vp8","vp8.0","avc1","av1","h265","h.265","h264","h.264","opus","pcm","aac","mpeg","mp4a"];var Tf=Object.freeze({__proto__:null,ExportVideoPluginInstance:class{_container;_supportedTypes=[];constructor(t){this._container=t,this._supportedTypes=function(){const t=t=>MediaRecorder.isTypeSupported(t),e=[];return Of.forEach(i=>{const n=`video/${i}`;kf.forEach(i=>{[`${n};codecs=${i}`,`${n};codecs=${i.toUpperCase()}`].forEach(i=>{t(i)&&e.push(i)})}),t(n)&&e.push(n)}),e}()}async export(t,e){const i={supported:!1};if("video"===t)i.supported=!0,i.blob=await this._exportVideo(e);return i}_exportVideo=async t=>{const e=this._container.canvas.domElement;if(e)return new Promise(i=>{const n=e.captureStream(t.fps??this._container.actualOptions.fpsLimit),s=t.mimeType??this._supportedTypes[0],o=new MediaRecorder(n,{mimeType:s}),a=[];o.addEventListener("dataavailable",t=>{a.push(t.data)}),o.addEventListener("stop",()=>{i(new Blob(a,{type:s}))}),o.start(),setTimeout(()=>{o.stop()},t.duration??5e3)})}}});var Df=Object.freeze({__proto__:null,AbsorbersInstancesManager:class{_containerArrays;_pluginManager;constructor(t){this._pluginManager=t,this._containerArrays=new Map}async addAbsorber(t,e,i){const{AbsorberInstance:n}=await Promise.resolve().then(function(){return hy}),s=new n(this._pluginManager,t,e,i);return this.getArray(t).push(s),s}clear(t){this.initContainer(t),this._containerArrays.set(t,[])}getArray(t){this.initContainer(t);let e=this._containerArrays.get(t);return e||(e=[],this._containerArrays.set(t,e)),e}initContainer(t){this._containerArrays.has(t)||(this._containerArrays.set(t,[]),t.getAbsorber??=e=>{const i=this.getArray(t);return void 0===e||k(e)?i[e??0]:i.find(t=>t.name===e)},t.addAbsorber??=(e,i)=>this.addAbsorber(t,e,i))}removeAbsorber(t,e){const i=this.getArray(t).indexOf(e);i>=0&&this.getArray(t).splice(i,1)}}});var Vf=Object.freeze({__proto__:null,AbsorbersPluginInstance:class{_container;_instancesManager;constructor(t,e){this._container=t,this._instancesManager=e,this._instancesManager.initContainer(t)}draw(t){for(const e of this._instancesManager.getArray(this._container))e.draw(t)}async init(){const t=Ct(this._container.actualOptions.absorbers,async t=>{await this._instancesManager.addAbsorber(this._container,t)});V(t)?await Promise.all(t):await t}particleUpdate(t,e){for(const i of this._instancesManager.getArray(this._container))if(i.attract(t,e),t.destroyed)break}resize(){for(const t of this._instancesManager.getArray(this._container))t.resize()}stop(){this._instancesManager.clear(this._container)}}});var If=Object.freeze({__proto__:null,ImagePreloaderInstance:class{_container;_engine;constructor(t,e){this._engine=t,this._container=e}destroy(){this._engine.images?.delete(this._container)}}});var Af=Object.freeze({__proto__:null,OverlapPluginInstance:class{_container;constructor(t){this._container=t}checkParticlePosition(t,e,i){return!this._hasOverlaps(t,e,i)}_hasOverlaps=(t,e,i)=>{const n=t.options.collisions;if(!n?.enable)return!1;const s=n.overlap;if(s.enable)return!1;const o=s.retries;if(o>=0&&i>o)throw new Error("Particle is overlapping and can't be placed");return!!this._container.particles.find(i=>Z(e,i.position)<t.getRadius()+i.getRadius())}}});function Ef(t,e){const i=(n=t.map(t=>t.id),[...n].sort((t,e)=>t-e).join("_"));var n;let s=e.get(i);return void 0===s&&(s=R(),e.set(i,s)),s}var zf=Object.freeze({__proto__:null,LinkInstance:class{_colorCache=new Map;_container;_freqs;_pluginManager;constructor(t,e){this._pluginManager=t,this._container=e,this._freqs={links:new Map,triangles:new Map}}drawParticle(t,e){const{links:i,options:n}=e;if(!i?.length||!n.links)return;const s=n.links,o=e.retina.linksWidth??0,r=e.getPosition(),l=e.options.twinkle?.links,h=s.triangles.enable,d=h?new Set(i.map(t=>t.destination.id)):null,u=t.globalAlpha;let p="",g=-1,f=-1,y=!1;const _=()=>{y&&(t.stroke(),y=!1)};for(const u of i){if(s.frequency<1&&this._getLinkFrequency(e,u.destination)>s.frequency)continue;const i=u.destination.getPosition();if(h&&!u.isWarped&&d&&(_(),this._drawTriangles(n,e,u,d,r,i,t)),u.opacity<=0||o<=0)continue;if(!s.enable)continue;let m=u.opacity,v=u.color;const w=l?.enable&&R()<l.frequency?ei(this._pluginManager,l.color):void 0;if(l&&w&&(v=w,m=U(l.opacity)),!v){const t=void 0!==s.id?this._container.particles.linksColors.get(s.id):this._container.particles.linksColor;v=gi(e,u.destination,t)}if(!v)continue;const b=this._getCachedStyle(v);if(b===p&&o===g&&m===f||(_(),t.strokeStyle=b,t.lineWidth=o,t.globalAlpha=m,p=b,g=o,f=m,t.beginPath(),y=!0),u.isWarped){const e=this._container.canvas.size,n=i.x-r.x,s=i.y-r.y;let o=c.x,l=c.y;Math.abs(n)>e.width*a&&(o=n>0?-e.width:e.width),Math.abs(s)>e.height*a&&(l=s>0?-e.height:e.height),t.moveTo(r.x,r.y),t.lineTo(i.x+o,i.y+l),t.moveTo(r.x-o,r.y-l),t.lineTo(i.x,i.y)}else t.moveTo(r.x,r.y),t.lineTo(i.x,i.y)}_(),t.globalAlpha=u}init(){return this._freqs.links.clear(),this._freqs.triangles.clear(),this._colorCache.clear(),Promise.resolve()}particleCreated(t){if(t.links=[],!t.options.links)return;t.linksDistance=t.options.links.distance,t.linksWidth=t.options.links.width;const e=this._container.retina.pixelRatio;t.retina.linksDistance=t.linksDistance*e,t.retina.linksWidth=t.linksWidth*e}particleDestroyed(t){t.links=[]}_drawTriangles(t,e,i,n,s,o,r){const c=i.destination,l=t.links?.triangles;if(!l?.enable||!c.options.links?.triangles.enable)return;const h=c.links;if(h?.length)for(const d of h){if(d.isWarped||this._getLinkFrequency(c,d.destination)>c.options.links.frequency||!n.has(d.destination.id))continue;const h=d.destination;if(this._getTriangleFrequency(e,c,h)>(t.links?.triangles.frequency??0))continue;const u=l.opacity??(i.opacity+d.opacity)*a,p=ei(this._pluginManager,l.color)??i.color;if(!p||u<=0)continue;const g=h.getPosition();r.save(),r.fillStyle=this._getCachedStyle(p),r.globalAlpha=u,r.beginPath(),r.moveTo(s.x,s.y),r.lineTo(o.x,o.y),r.lineTo(g.x,g.y),r.closePath(),r.fill(),r.restore()}}_getCachedStyle(t){const e=`${t.r},${t.g},${t.b}`;let i=this._colorCache.get(e);return i||(i=hi(t,this._container.hdr),this._colorCache.set(e,i)),i}_getLinkFrequency(t,e){return Ef([t,e],this._freqs.links)}_getTriangleFrequency(t,e,i){return Ef([t,e,i],this._freqs.triangles)}}});class Rf{_container;constructor(t){this._container=t}startInfection(t,e){const i=this._container.actualOptions.infection,{infection:n}=t;if(!i||!n)return;e>i.stages.length||e<0||(n.delay=0,n.delayStage=e)}updateInfection(t,e){const i=this._container.actualOptions.infection,{infection:n}=t;if(!i||!n)return;const s=i.stages,o=s.length;if(void 0!==n.delay&&void 0!==n.delayStage){const t=n.delayStage;if(t>o||t<0)return;n.delay>=i.delay*r?(n.stage=t,n.time=0,delete n.delay,delete n.delayStage):n.delay+=e}else delete n.delay,delete n.delayStage;if(void 0!==n.stage&&void 0!==n.time){const i=s[n.stage];void 0!==i?.duration&&i.duration>=0&&n.time>i.duration*r?this._nextInfectionStage(t):n.time+=e}else delete n.stage,delete n.time}updateInfectionStage(t,e){const i=this._container.actualOptions,{infection:n}=t;if(!i.infection||!n)return;e>i.infection.stages.length||e<0||void 0!==n.stage&&n.stage>e||(n.stage=e,n.time=0)}_nextInfectionStage=t=>{const e=this._container.actualOptions.infection,{infection:i}=t;if(!e||!i)return;const n=e.stages.length;n<=0||void 0===i.stage||(i.time=0,n<=++i.stage&&(e.cure?(delete i.stage,delete i.time):(i.stage=0,i.time=0)))}}var Gf=Object.freeze({__proto__:null,InfectionPluginInstance:class{_container;constructor(t){this._container=t,this._container.infecter=new Rf(this._container)}particleFillColor(t){const e=this._container.actualOptions;if(!t.infection||!e.infection)return;const i=t.infection.stage,n=e.infection.stages;return void 0===i?void 0:n[i]?.color}particleStrokeColor(t){return this.particleFillColor(t)}particlesSetup(){const t=this._container.actualOptions;if(t.infection)for(let e=0;e<t.infection.infections;e++){const t=vt(this._container.particles.filter(t=>{const e=t;return e.infection??={},void 0===e.infection.stage}));t&&this._container.infecter?.startInfection(t,0)}}}});var Lf=Object.freeze({__proto__:null,ManualParticlesPluginInstance:class{_container;constructor(t){this._container=t}particlesDensityCount(){return this._container.actualOptions.manualParticles?.length??0}particlesInitialization(){const t=this._container,e=t.actualOptions;return e.manualParticles?.forEach(e=>t.particles.addParticle(e.position?Vt(e.position,t.canvas.size):void 0,e.options)),!1}}});var Ff=Object.freeze({__proto__:null,MotionPluginInstance:class{_container;constructor(t){this._container=t}async init(){const t=this._container,e=t.actualOptions.motion;if(!e||!e.disable&&!e.reduce.value)return void(t.retina.reduceFactor=1);const i=gt("(prefers-reduced-motion: reduce)");if(!i)return void(t.retina.reduceFactor=1);this._handleMotionChange(i);i.addEventListener("change",()=>{(async()=>{this._handleMotionChange(i);try{await t.refresh()}catch{}})()}),await Promise.resolve()}_handleMotionChange=t=>{const e=this._container,i=e.actualOptions.motion;i&&(t.matches?i.disable?e.retina.reduceFactor=0:e.retina.reduceFactor=i.reduce.value?1/i.reduce.factor:1:e.retina.reduceFactor=1)}}});var Hf=Object.freeze({__proto__:null,PoissonDiscPluginInstance:class{poissonDisc;redrawTimeout;_container;_currentIndex;constructor(t){this._container=t,this._currentIndex=0}async init(){await this._initData()}particlePosition(t){const e=this._container.actualOptions.poisson;if(this.poissonDisc&&e?.enable&&!(this._currentIndex>=this.poissonDisc.points.length))return t??this.poissonDisc.points[this._currentIndex++]?.position}resize(){const t=this._container,e=t.actualOptions.poisson;if(!e?.enable)return;this.redrawTimeout&&clearTimeout(this.redrawTimeout);this.redrawTimeout=setTimeout(()=>{(async()=>{this._container.destroyed||(await this._initData(),await t.particles.redraw())})()},250)}stop(){delete this.poissonDisc}async _initData(){const t=this._container,e=t.actualOptions.poisson,i=t.actualOptions.particles,n=t.canvas.size,s=t.retina.pixelRatio;if(!e?.enable)return;this._currentIndex=0;const{PoissonDisc:o}=await Promise.resolve().then(function(){return dy});this.poissonDisc=new o(n,e.radius?e.radius*s:Math.max(j(i.size.value)*s,Math.sqrt(n.width*n.height/i.number.value)),e.retries,e.dimensions);e.steps>0?this.poissonDisc.steps(e.steps):await this.poissonDisc.run()}}});!function(){try{if("undefined"==typeof window)return;"SVGPathSeg"in window||(window.SVGPathSeg=function(t,e,i){this.pathSegType=t,this.pathSegTypeAsLetter=e,this._owningPathSegList=i},window.SVGPathSeg.prototype.classname="SVGPathSeg",window.SVGPathSeg.PATHSEG_UNKNOWN=0,window.SVGPathSeg.PATHSEG_CLOSEPATH=1,window.SVGPathSeg.PATHSEG_MOVETO_ABS=2,window.SVGPathSeg.PATHSEG_MOVETO_REL=3,window.SVGPathSeg.PATHSEG_LINETO_ABS=4,window.SVGPathSeg.PATHSEG_LINETO_REL=5,window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_ABS=6,window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_REL=7,window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_ABS=8,window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_REL=9,window.SVGPathSeg.PATHSEG_ARC_ABS=10,window.SVGPathSeg.PATHSEG_ARC_REL=11,window.SVGPathSeg.PATHSEG_LINETO_HORIZONTAL_ABS=12,window.SVGPathSeg.PATHSEG_LINETO_HORIZONTAL_REL=13,window.SVGPathSeg.PATHSEG_LINETO_VERTICAL_ABS=14,window.SVGPathSeg.PATHSEG_LINETO_VERTICAL_REL=15,window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_SMOOTH_ABS=16,window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_SMOOTH_REL=17,window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_SMOOTH_ABS=18,window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_SMOOTH_REL=19,window.SVGPathSeg.prototype._segmentChanged=function(){this._owningPathSegList&&this._owningPathSegList.segmentChanged(this)},window.SVGPathSegClosePath=function(t){window.SVGPathSeg.call(this,window.SVGPathSeg.PATHSEG_CLOSEPATH,"z",t)},window.SVGPathSegClosePath.prototype=Object.create(window.SVGPathSeg.prototype),window.SVGPathSegClosePath.prototype.toString=function(){return"[object SVGPathSegClosePath]"},window.SVGPathSegClosePath.prototype._asPathString=function(){return this.pathSegTypeAsLetter},window.SVGPathSegClosePath.prototype.clone=function(){return new window.SVGPathSegClosePath(void 0)},window.SVGPathSegMovetoAbs=function(t,e,i){window.SVGPathSeg.call(this,window.SVGPathSeg.PATHSEG_MOVETO_ABS,"M",t),this._x=e,this._y=i},window.SVGPathSegMovetoAbs.prototype=Object.create(window.SVGPathSeg.prototype),window.SVGPathSegMovetoAbs.prototype.toString=function(){return"[object SVGPathSegMovetoAbs]"},window.SVGPathSegMovetoAbs.prototype._asPathString=function(){return`${this.pathSegTypeAsLetter} ${this._x} ${this._y}`},window.SVGPathSegMovetoAbs.prototype.clone=function(){return new window.SVGPathSegMovetoAbs(void 0,this._x,this._y)},Object.defineProperty(window.SVGPathSegMovetoAbs.prototype,"x",{get:function(){return this._x},set:function(t){this._x=t,this._segmentChanged()},enumerable:!0}),Object.defineProperty(window.SVGPathSegMovetoAbs.prototype,"y",{get:function(){return this._y},set:function(t){this._y=t,this._segmentChanged()},enumerable:!0}),window.SVGPathSegMovetoRel=function(t,e,i){window.SVGPathSeg.call(this,window.SVGPathSeg.PATHSEG_MOVETO_REL,"m",t),this._x=e,this._y=i},window.SVGPathSegMovetoRel.prototype=Object.create(window.SVGPathSeg.prototype),window.SVGPathSegMovetoRel.prototype.toString=function(){return"[object SVGPathSegMovetoRel]"},window.SVGPathSegMovetoRel.prototype._asPathString=function(){return`${this.pathSegTypeAsLetter} ${this._x} ${this._y}`},window.SVGPathSegMovetoRel.prototype.clone=function(){return new window.SVGPathSegMovetoRel(void 0,this._x,this._y)},Object.defineProperty(window.SVGPathSegMovetoRel.prototype,"x",{get:function(){return this._x},set:function(t){this._x=t,this._segmentChanged()},enumerable:!0}),Object.defineProperty(window.SVGPathSegMovetoRel.prototype,"y",{get:function(){return this._y},set:function(t){this._y=t,this._segmentChanged()},enumerable:!0}),window.SVGPathSegLinetoAbs=function(t,e,i){window.SVGPathSeg.call(this,window.SVGPathSeg.PATHSEG_LINETO_ABS,"L",t),this._x=e,this._y=i},window.SVGPathSegLinetoAbs.prototype=Object.create(window.SVGPathSeg.prototype),window.SVGPathSegLinetoAbs.prototype.toString=function(){return"[object SVGPathSegLinetoAbs]"},window.SVGPathSegLinetoAbs.prototype._asPathString=function(){return`${this.pathSegTypeAsLetter} ${this._x} ${this._y}`},window.SVGPathSegLinetoAbs.prototype.clone=function(){return new window.SVGPathSegLinetoAbs(void 0,this._x,this._y)},Object.defineProperty(window.SVGPathSegLinetoAbs.prototype,"x",{get:function(){return this._x},set:function(t){this._x=t,this._segmentChanged()},enumerable:!0}),Object.defineProperty(window.SVGPathSegLinetoAbs.prototype,"y",{get:function(){return this._y},set:function(t){this._y=t,this._segmentChanged()},enumerable:!0}),window.SVGPathSegLinetoRel=function(t,e,i){window.SVGPathSeg.call(this,window.SVGPathSeg.PATHSEG_LINETO_REL,"l",t),this._x=e,this._y=i},window.SVGPathSegLinetoRel.prototype=Object.create(window.SVGPathSeg.prototype),window.SVGPathSegLinetoRel.prototype.toString=function(){return"[object SVGPathSegLinetoRel]"},window.SVGPathSegLinetoRel.prototype._asPathString=function(){return`${this.pathSegTypeAsLetter} ${this._x} ${this._y}`},window.SVGPathSegLinetoRel.prototype.clone=function(){return new window.SVGPathSegLinetoRel(void 0,this._x,this._y)},Object.defineProperty(window.SVGPathSegLinetoRel.prototype,"x",{get:function(){return this._x},set:function(t){this._x=t,this._segmentChanged()},enumerable:!0}),Object.defineProperty(window.SVGPathSegLinetoRel.prototype,"y",{get:function(){return this._y},set:function(t){this._y=t,this._segmentChanged()},enumerable:!0}),window.SVGPathSegCurvetoCubicAbs=function(t,e,i,n,s,o,a){window.SVGPathSeg.call(this,window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_ABS,"C",t),this._x=e,this._y=i,this._x1=n,this._y1=s,this._x2=o,this._y2=a},window.SVGPathSegCurvetoCubicAbs.prototype=Object.create(window.SVGPathSeg.prototype),window.SVGPathSegCurvetoCubicAbs.prototype.toString=function(){return"[object SVGPathSegCurvetoCubicAbs]"},window.SVGPathSegCurvetoCubicAbs.prototype._asPathString=function(){return`${this.pathSegTypeAsLetter} ${this._x1} ${this._y1} ${this._x2} ${this._y2} ${this._x} ${this._y}`},window.SVGPathSegCurvetoCubicAbs.prototype.clone=function(){return new window.SVGPathSegCurvetoCubicAbs(void 0,this._x,this._y,this._x1,this._y1,this._x2,this._y2)},Object.defineProperty(window.SVGPathSegCurvetoCubicAbs.prototype,"x",{get:function(){return this._x},set:function(t){this._x=t,this._segmentChanged()},enumerable:!0}),Object.defineProperty(window.SVGPathSegCurvetoCubicAbs.prototype,"y",{get:function(){return this._y},set:function(t){this._y=t,this._segmentChanged()},enumerable:!0}),Object.defineProperty(window.SVGPathSegCurvetoCubicAbs.prototype,"x1",{get:function(){return this._x1},set:function(t){this._x1=t,this._segmentChanged()},enumerable:!0}),Object.defineProperty(window.SVGPathSegCurvetoCubicAbs.prototype,"y1",{get:function(){return this._y1},set:function(t){this._y1=t,this._segmentChanged()},enumerable:!0}),Object.defineProperty(window.SVGPathSegCurvetoCubicAbs.prototype,"x2",{get:function(){return this._x2},set:function(t){this._x2=t,this._segmentChanged()},enumerable:!0}),Object.defineProperty(window.SVGPathSegCurvetoCubicAbs.prototype,"y2",{get:function(){return this._y2},set:function(t){this._y2=t,this._segmentChanged()},enumerable:!0}),window.SVGPathSegCurvetoCubicRel=function(t,e,i,n,s,o,a){window.SVGPathSeg.call(this,window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_REL,"c",t),this._x=e,this._y=i,this._x1=n,this._y1=s,this._x2=o,this._y2=a},window.SVGPathSegCurvetoCubicRel.prototype=Object.create(window.SVGPathSeg.prototype),window.SVGPathSegCurvetoCubicRel.prototype.toString=function(){return"[object SVGPathSegCurvetoCubicRel]"},window.SVGPathSegCurvetoCubicRel.prototype._asPathString=function(){return`${this.pathSegTypeAsLetter} ${this._x1} ${this._y1} ${this._x2} ${this._y2} ${this._x} ${this._y}`},window.SVGPathSegCurvetoCubicRel.prototype.clone=function(){return new window.SVGPathSegCurvetoCubicRel(void 0,this._x,this._y,this._x1,this._y1,this._x2,this._y2)},Object.defineProperty(window.SVGPathSegCurvetoCubicRel.prototype,"x",{get:function(){return this._x},set:function(t){this._x=t,this._segmentChanged()},enumerable:!0}),Object.defineProperty(window.SVGPathSegCurvetoCubicRel.prototype,"y",{get:function(){return this._y},set:function(t){this._y=t,this._segmentChanged()},enumerable:!0}),Object.defineProperty(window.SVGPathSegCurvetoCubicRel.prototype,"x1",{get:function(){return this._x1},set:function(t){this._x1=t,this._segmentChanged()},enumerable:!0}),Object.defineProperty(window.SVGPathSegCurvetoCubicRel.prototype,"y1",{get:function(){return this._y1},set:function(t){this._y1=t,this._segmentChanged()},enumerable:!0}),Object.defineProperty(window.SVGPathSegCurvetoCubicRel.prototype,"x2",{get:function(){return this._x2},set:function(t){this._x2=t,this._segmentChanged()},enumerable:!0}),Object.defineProperty(window.SVGPathSegCurvetoCubicRel.prototype,"y2",{get:function(){return this._y2},set:function(t){this._y2=t,this._segmentChanged()},enumerable:!0}),window.SVGPathSegCurvetoQuadraticAbs=function(t,e,i,n,s){window.SVGPathSeg.call(this,window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_ABS,"Q",t),this._x=e,this._y=i,this._x1=n,this._y1=s},window.SVGPathSegCurvetoQuadraticAbs.prototype=Object.create(window.SVGPathSeg.prototype),window.SVGPathSegCurvetoQuadraticAbs.prototype.toString=function(){return"[object SVGPathSegCurvetoQuadraticAbs]"},window.SVGPathSegCurvetoQuadraticAbs.prototype._asPathString=function(){return`${this.pathSegTypeAsLetter} ${this._x1} ${this._y1} ${this._x} ${this._y}`},window.SVGPathSegCurvetoQuadraticAbs.prototype.clone=function(){return new window.SVGPathSegCurvetoQuadraticAbs(void 0,this._x,this._y,this._x1,this._y1)},Object.defineProperty(window.SVGPathSegCurvetoQuadraticAbs.prototype,"x",{get:function(){return this._x},set:function(t){this._x=t,this._segmentChanged()},enumerable:!0}),Object.defineProperty(window.SVGPathSegCurvetoQuadraticAbs.prototype,"y",{get:function(){return this._y},set:function(t){this._y=t,this._segmentChanged()},enumerable:!0}),Object.defineProperty(window.SVGPathSegCurvetoQuadraticAbs.prototype,"x1",{get:function(){return this._x1},set:function(t){this._x1=t,this._segmentChanged()},enumerable:!0}),Object.defineProperty(window.SVGPathSegCurvetoQuadraticAbs.prototype,"y1",{get:function(){return this._y1},set:function(t){this._y1=t,this._segmentChanged()},enumerable:!0}),window.SVGPathSegCurvetoQuadraticRel=function(t,e,i,n,s){window.SVGPathSeg.call(this,window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_REL,"q",t),this._x=e,this._y=i,this._x1=n,this._y1=s},window.SVGPathSegCurvetoQuadraticRel.prototype=Object.create(window.SVGPathSeg.prototype),window.SVGPathSegCurvetoQuadraticRel.prototype.toString=function(){return"[object SVGPathSegCurvetoQuadraticRel]"},window.SVGPathSegCurvetoQuadraticRel.prototype._asPathString=function(){return`${this.pathSegTypeAsLetter} ${this._x1} ${this._y1} ${this._x} ${this._y}`},window.SVGPathSegCurvetoQuadraticRel.prototype.clone=function(){return new window.SVGPathSegCurvetoQuadraticRel(void 0,this._x,this._y,this._x1,this._y1)},Object.defineProperty(window.SVGPathSegCurvetoQuadraticRel.prototype,"x",{get:function(){return this._x},set:function(t){this._x=t,this._segmentChanged()},enumerable:!0}),Object.defineProperty(window.SVGPathSegCurvetoQuadraticRel.prototype,"y",{get:function(){return this._y},set:function(t){this._y=t,this._segmentChanged()},enumerable:!0}),Object.defineProperty(window.SVGPathSegCurvetoQuadraticRel.prototype,"x1",{get:function(){return this._x1},set:function(t){this._x1=t,this._segmentChanged()},enumerable:!0}),Object.defineProperty(window.SVGPathSegCurvetoQuadraticRel.prototype,"y1",{get:function(){return this._y1},set:function(t){this._y1=t,this._segmentChanged()},enumerable:!0}),window.SVGPathSegArcAbs=function(t,e,i,n,s,o,a,r){window.SVGPathSeg.call(this,window.SVGPathSeg.PATHSEG_ARC_ABS,"A",t),this._x=e,this._y=i,this._r1=n,this._r2=s,this._angle=o,this._largeArcFlag=a,this._sweepFlag=r},window.SVGPathSegArcAbs.prototype=Object.create(window.SVGPathSeg.prototype),window.SVGPathSegArcAbs.prototype.toString=function(){return"[object SVGPathSegArcAbs]"},window.SVGPathSegArcAbs.prototype._asPathString=function(){return`${this.pathSegTypeAsLetter} ${this._r1} ${this._r2} ${this._angle} ${this._largeArcFlag?"1":"0"} ${this._sweepFlag?"1":"0"} ${this._x} ${this._y}`},window.SVGPathSegArcAbs.prototype.clone=function(){return new window.SVGPathSegArcAbs(void 0,this._x,this._y,this._r1,this._r2,this._angle,this._largeArcFlag,this._sweepFlag)},Object.defineProperty(window.SVGPathSegArcAbs.prototype,"x",{get:function(){return this._x},set:function(t){this._x=t,this._segmentChanged()},enumerable:!0}),Object.defineProperty(window.SVGPathSegArcAbs.prototype,"y",{get:function(){return this._y},set:function(t){this._y=t,this._segmentChanged()},enumerable:!0}),Object.defineProperty(window.SVGPathSegArcAbs.prototype,"r1",{get:function(){return this._r1},set:function(t){this._r1=t,this._segmentChanged()},enumerable:!0}),Object.defineProperty(window.SVGPathSegArcAbs.prototype,"r2",{get:function(){return this._r2},set:function(t){this._r2=t,this._segmentChanged()},enumerable:!0}),Object.defineProperty(window.SVGPathSegArcAbs.prototype,"angle",{get:function(){return this._angle},set:function(t){this._angle=t,this._segmentChanged()},enumerable:!0}),Object.defineProperty(window.SVGPathSegArcAbs.prototype,"largeArcFlag",{get:function(){return this._largeArcFlag},set:function(t){this._largeArcFlag=t,this._segmentChanged()},enumerable:!0}),Object.defineProperty(window.SVGPathSegArcAbs.prototype,"sweepFlag",{get:function(){return this._sweepFlag},set:function(t){this._sweepFlag=t,this._segmentChanged()},enumerable:!0}),window.SVGPathSegArcRel=function(t,e,i,n,s,o,a,r){window.SVGPathSeg.call(this,window.SVGPathSeg.PATHSEG_ARC_REL,"a",t),this._x=e,this._y=i,this._r1=n,this._r2=s,this._angle=o,this._largeArcFlag=a,this._sweepFlag=r},window.SVGPathSegArcRel.prototype=Object.create(window.SVGPathSeg.prototype),window.SVGPathSegArcRel.prototype.toString=function(){return"[object SVGPathSegArcRel]"},window.SVGPathSegArcRel.prototype._asPathString=function(){return`${this.pathSegTypeAsLetter} ${this._r1} ${this._r2} ${this._angle} ${this._largeArcFlag?"1":"0"} ${this._sweepFlag?"1":"0"} ${this._x} ${this._y}`},window.SVGPathSegArcRel.prototype.clone=function(){return new window.SVGPathSegArcRel(void 0,this._x,this._y,this._r1,this._r2,this._angle,this._largeArcFlag,this._sweepFlag)},Object.defineProperty(window.SVGPathSegArcRel.prototype,"x",{get:function(){return this._x},set:function(t){this._x=t,this._segmentChanged()},enumerable:!0}),Object.defineProperty(window.SVGPathSegArcRel.prototype,"y",{get:function(){return this._y},set:function(t){this._y=t,this._segmentChanged()},enumerable:!0}),Object.defineProperty(window.SVGPathSegArcRel.prototype,"r1",{get:function(){return this._r1},set:function(t){this._r1=t,this._segmentChanged()},enumerable:!0}),Object.defineProperty(window.SVGPathSegArcRel.prototype,"r2",{get:function(){return this._r2},set:function(t){this._r2=t,this._segmentChanged()},enumerable:!0}),Object.defineProperty(window.SVGPathSegArcRel.prototype,"angle",{get:function(){return this._angle},set:function(t){this._angle=t,this._segmentChanged()},enumerable:!0}),Object.defineProperty(window.SVGPathSegArcRel.prototype,"largeArcFlag",{get:function(){return this._largeArcFlag},set:function(t){this._largeArcFlag=t,this._segmentChanged()},enumerable:!0}),Object.defineProperty(window.SVGPathSegArcRel.prototype,"sweepFlag",{get:function(){return this._sweepFlag},set:function(t){this._sweepFlag=t,this._segmentChanged()},enumerable:!0}),window.SVGPathSegLinetoHorizontalAbs=function(t,e){window.SVGPathSeg.call(this,window.SVGPathSeg.PATHSEG_LINETO_HORIZONTAL_ABS,"H",t),this._x=e},window.SVGPathSegLinetoHorizontalAbs.prototype=Object.create(window.SVGPathSeg.prototype),window.SVGPathSegLinetoHorizontalAbs.prototype.toString=function(){return"[object SVGPathSegLinetoHorizontalAbs]"},window.SVGPathSegLinetoHorizontalAbs.prototype._asPathString=function(){return`${this.pathSegTypeAsLetter} ${this._x}`},window.SVGPathSegLinetoHorizontalAbs.prototype.clone=function(){return new window.SVGPathSegLinetoHorizontalAbs(void 0,this._x)},Object.defineProperty(window.SVGPathSegLinetoHorizontalAbs.prototype,"x",{get:function(){return this._x},set:function(t){this._x=t,this._segmentChanged()},enumerable:!0}),window.SVGPathSegLinetoHorizontalRel=function(t,e){window.SVGPathSeg.call(this,window.SVGPathSeg.PATHSEG_LINETO_HORIZONTAL_REL,"h",t),this._x=e},window.SVGPathSegLinetoHorizontalRel.prototype=Object.create(window.SVGPathSeg.prototype),window.SVGPathSegLinetoHorizontalRel.prototype.toString=function(){return"[object SVGPathSegLinetoHorizontalRel]"},window.SVGPathSegLinetoHorizontalRel.prototype._asPathString=function(){return`${this.pathSegTypeAsLetter} ${this._x}`},window.SVGPathSegLinetoHorizontalRel.prototype.clone=function(){return new window.SVGPathSegLinetoHorizontalRel(void 0,this._x)},Object.defineProperty(window.SVGPathSegLinetoHorizontalRel.prototype,"x",{get:function(){return this._x},set:function(t){this._x=t,this._segmentChanged()},enumerable:!0}),window.SVGPathSegLinetoVerticalAbs=function(t,e){window.SVGPathSeg.call(this,window.SVGPathSeg.PATHSEG_LINETO_VERTICAL_ABS,"V",t),this._y=e},window.SVGPathSegLinetoVerticalAbs.prototype=Object.create(window.SVGPathSeg.prototype),window.SVGPathSegLinetoVerticalAbs.prototype.toString=function(){return"[object SVGPathSegLinetoVerticalAbs]"},window.SVGPathSegLinetoVerticalAbs.prototype._asPathString=function(){return`${this.pathSegTypeAsLetter} ${this._y}`},window.SVGPathSegLinetoVerticalAbs.prototype.clone=function(){return new window.SVGPathSegLinetoVerticalAbs(void 0,this._y)},Object.defineProperty(window.SVGPathSegLinetoVerticalAbs.prototype,"y",{get:function(){return this._y},set:function(t){this._y=t,this._segmentChanged()},enumerable:!0}),window.SVGPathSegLinetoVerticalRel=function(t,e){window.SVGPathSeg.call(this,window.SVGPathSeg.PATHSEG_LINETO_VERTICAL_REL,"v",t),this._y=e},window.SVGPathSegLinetoVerticalRel.prototype=Object.create(window.SVGPathSeg.prototype),window.SVGPathSegLinetoVerticalRel.prototype.toString=function(){return"[object SVGPathSegLinetoVerticalRel]"},window.SVGPathSegLinetoVerticalRel.prototype._asPathString=function(){return`${this.pathSegTypeAsLetter} ${this._y}`},window.SVGPathSegLinetoVerticalRel.prototype.clone=function(){return new window.SVGPathSegLinetoVerticalRel(void 0,this._y)},Object.defineProperty(window.SVGPathSegLinetoVerticalRel.prototype,"y",{get:function(){return this._y},set:function(t){this._y=t,this._segmentChanged()},enumerable:!0}),window.SVGPathSegCurvetoCubicSmoothAbs=function(t,e,i,n,s){window.SVGPathSeg.call(this,window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_SMOOTH_ABS,"S",t),this._x=e,this._y=i,this._x2=n,this._y2=s},window.SVGPathSegCurvetoCubicSmoothAbs.prototype=Object.create(window.SVGPathSeg.prototype),window.SVGPathSegCurvetoCubicSmoothAbs.prototype.toString=function(){return"[object SVGPathSegCurvetoCubicSmoothAbs]"},window.SVGPathSegCurvetoCubicSmoothAbs.prototype._asPathString=function(){return`${this.pathSegTypeAsLetter} ${this._x2} ${this._y2} ${this._x} ${this._y}`},window.SVGPathSegCurvetoCubicSmoothAbs.prototype.clone=function(){return new window.SVGPathSegCurvetoCubicSmoothAbs(void 0,this._x,this._y,this._x2,this._y2)},Object.defineProperty(window.SVGPathSegCurvetoCubicSmoothAbs.prototype,"x",{get:function(){return this._x},set:function(t){this._x=t,this._segmentChanged()},enumerable:!0}),Object.defineProperty(window.SVGPathSegCurvetoCubicSmoothAbs.prototype,"y",{get:function(){return this._y},set:function(t){this._y=t,this._segmentChanged()},enumerable:!0}),Object.defineProperty(window.SVGPathSegCurvetoCubicSmoothAbs.prototype,"x2",{get:function(){return this._x2},set:function(t){this._x2=t,this._segmentChanged()},enumerable:!0}),Object.defineProperty(window.SVGPathSegCurvetoCubicSmoothAbs.prototype,"y2",{get:function(){return this._y2},set:function(t){this._y2=t,this._segmentChanged()},enumerable:!0}),window.SVGPathSegCurvetoCubicSmoothRel=function(t,e,i,n,s){window.SVGPathSeg.call(this,window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_SMOOTH_REL,"s",t),this._x=e,this._y=i,this._x2=n,this._y2=s},window.SVGPathSegCurvetoCubicSmoothRel.prototype=Object.create(window.SVGPathSeg.prototype),window.SVGPathSegCurvetoCubicSmoothRel.prototype.toString=function(){return"[object SVGPathSegCurvetoCubicSmoothRel]"},window.SVGPathSegCurvetoCubicSmoothRel.prototype._asPathString=function(){return`${this.pathSegTypeAsLetter} ${this._x2} ${this._y2} ${this._x} ${this._y}`},window.SVGPathSegCurvetoCubicSmoothRel.prototype.clone=function(){return new window.SVGPathSegCurvetoCubicSmoothRel(void 0,this._x,this._y,this._x2,this._y2)},Object.defineProperty(window.SVGPathSegCurvetoCubicSmoothRel.prototype,"x",{get:function(){return this._x},set:function(t){this._x=t,this._segmentChanged()},enumerable:!0}),Object.defineProperty(window.SVGPathSegCurvetoCubicSmoothRel.prototype,"y",{get:function(){return this._y},set:function(t){this._y=t,this._segmentChanged()},enumerable:!0}),Object.defineProperty(window.SVGPathSegCurvetoCubicSmoothRel.prototype,"x2",{get:function(){return this._x2},set:function(t){this._x2=t,this._segmentChanged()},enumerable:!0}),Object.defineProperty(window.SVGPathSegCurvetoCubicSmoothRel.prototype,"y2",{get:function(){return this._y2},set:function(t){this._y2=t,this._segmentChanged()},enumerable:!0}),window.SVGPathSegCurvetoQuadraticSmoothAbs=function(t,e,i){window.SVGPathSeg.call(this,window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_SMOOTH_ABS,"T",t),this._x=e,this._y=i},window.SVGPathSegCurvetoQuadraticSmoothAbs.prototype=Object.create(window.SVGPathSeg.prototype),window.SVGPathSegCurvetoQuadraticSmoothAbs.prototype.toString=function(){return"[object SVGPathSegCurvetoQuadraticSmoothAbs]"},window.SVGPathSegCurvetoQuadraticSmoothAbs.prototype._asPathString=function(){return`${this.pathSegTypeAsLetter} ${this._x} ${this._y}`},window.SVGPathSegCurvetoQuadraticSmoothAbs.prototype.clone=function(){return new window.SVGPathSegCurvetoQuadraticSmoothAbs(void 0,this._x,this._y)},Object.defineProperty(window.SVGPathSegCurvetoQuadraticSmoothAbs.prototype,"x",{get:function(){return this._x},set:function(t){this._x=t,this._segmentChanged()},enumerable:!0}),Object.defineProperty(window.SVGPathSegCurvetoQuadraticSmoothAbs.prototype,"y",{get:function(){return this._y},set:function(t){this._y=t,this._segmentChanged()},enumerable:!0}),window.SVGPathSegCurvetoQuadraticSmoothRel=function(t,e,i){window.SVGPathSeg.call(this,window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_SMOOTH_REL,"t",t),this._x=e,this._y=i},window.SVGPathSegCurvetoQuadraticSmoothRel.prototype=Object.create(window.SVGPathSeg.prototype),window.SVGPathSegCurvetoQuadraticSmoothRel.prototype.toString=function(){return"[object SVGPathSegCurvetoQuadraticSmoothRel]"},window.SVGPathSegCurvetoQuadraticSmoothRel.prototype._asPathString=function(){return`${this.pathSegTypeAsLetter} ${this._x} ${this._y}`},window.SVGPathSegCurvetoQuadraticSmoothRel.prototype.clone=function(){return new window.SVGPathSegCurvetoQuadraticSmoothRel(void 0,this._x,this._y)},Object.defineProperty(window.SVGPathSegCurvetoQuadraticSmoothRel.prototype,"x",{get:function(){return this._x},set:function(t){this._x=t,this._segmentChanged()},enumerable:!0}),Object.defineProperty(window.SVGPathSegCurvetoQuadraticSmoothRel.prototype,"y",{get:function(){return this._y},set:function(t){this._y=t,this._segmentChanged()},enumerable:!0}),window.SVGPathElement.prototype.createSVGPathSegClosePath=function(){return new window.SVGPathSegClosePath(void 0)},window.SVGPathElement.prototype.createSVGPathSegMovetoAbs=function(t,e){return new window.SVGPathSegMovetoAbs(void 0,t,e)},window.SVGPathElement.prototype.createSVGPathSegMovetoRel=function(t,e){return new window.SVGPathSegMovetoRel(void 0,t,e)},window.SVGPathElement.prototype.createSVGPathSegLinetoAbs=function(t,e){return new window.SVGPathSegLinetoAbs(void 0,t,e)},window.SVGPathElement.prototype.createSVGPathSegLinetoRel=function(t,e){return new window.SVGPathSegLinetoRel(void 0,t,e)},window.SVGPathElement.prototype.createSVGPathSegCurvetoCubicAbs=function(t,e,i,n,s,o){return new window.SVGPathSegCurvetoCubicAbs(void 0,t,e,i,n,s,o)},window.SVGPathElement.prototype.createSVGPathSegCurvetoCubicRel=function(t,e,i,n,s,o){return new window.SVGPathSegCurvetoCubicRel(void 0,t,e,i,n,s,o)},window.SVGPathElement.prototype.createSVGPathSegCurvetoQuadraticAbs=function(t,e,i,n){return new window.SVGPathSegCurvetoQuadraticAbs(void 0,t,e,i,n)},window.SVGPathElement.prototype.createSVGPathSegCurvetoQuadraticRel=function(t,e,i,n){return new window.SVGPathSegCurvetoQuadraticRel(void 0,t,e,i,n)},window.SVGPathElement.prototype.createSVGPathSegArcAbs=function(t,e,i,n,s,o,a){return new window.SVGPathSegArcAbs(void 0,t,e,i,n,s,o,a)},window.SVGPathElement.prototype.createSVGPathSegArcRel=function(t,e,i,n,s,o,a){return new window.SVGPathSegArcRel(void 0,t,e,i,n,s,o,a)},window.SVGPathElement.prototype.createSVGPathSegLinetoHorizontalAbs=function(t){return new window.SVGPathSegLinetoHorizontalAbs(void 0,t)},window.SVGPathElement.prototype.createSVGPathSegLinetoHorizontalRel=function(t){return new window.SVGPathSegLinetoHorizontalRel(void 0,t)},window.SVGPathElement.prototype.createSVGPathSegLinetoVerticalAbs=function(t){return new window.SVGPathSegLinetoVerticalAbs(void 0,t)},window.SVGPathElement.prototype.createSVGPathSegLinetoVerticalRel=function(t){return new window.SVGPathSegLinetoVerticalRel(void 0,t)},window.SVGPathElement.prototype.createSVGPathSegCurvetoCubicSmoothAbs=function(t,e,i,n){return new window.SVGPathSegCurvetoCubicSmoothAbs(void 0,t,e,i,n)},window.SVGPathElement.prototype.createSVGPathSegCurvetoCubicSmoothRel=function(t,e,i,n){return new window.SVGPathSegCurvetoCubicSmoothRel(void 0,t,e,i,n)},window.SVGPathElement.prototype.createSVGPathSegCurvetoQuadraticSmoothAbs=function(t,e){return new window.SVGPathSegCurvetoQuadraticSmoothAbs(void 0,t,e)},window.SVGPathElement.prototype.createSVGPathSegCurvetoQuadraticSmoothRel=function(t,e){return new window.SVGPathSegCurvetoQuadraticSmoothRel(void 0,t,e)},"getPathSegAtLength"in window.SVGPathElement.prototype||(window.SVGPathElement.prototype.getPathSegAtLength=function(t){if(void 0===t||!isFinite(t))throw"Invalid arguments.";const e=document.createElementNS("http://www.w3.org/2000/svg","path");e.setAttribute("d",this.getAttribute("d"));let i=e.pathSegList.numberOfItems-1;if(i<=0)return 0;do{if(e.pathSegList.removeItem(i),t>e.getTotalLength())break;i--}while(i>0);return i})),"SVGPathSegList"in window&&"appendItem"in window.SVGPathSegList.prototype||(window.SVGPathSegList=function(t){this._pathElement=t,this._list=this._parsePath(this._pathElement.getAttribute("d")),this._mutationObserverConfig={attributes:!0,attributeFilter:["d"]},this._pathElementMutationObserver=new MutationObserver(this._updateListFromPathMutations.bind(this)),this._pathElementMutationObserver.observe(this._pathElement,this._mutationObserverConfig)},window.SVGPathSegList.prototype.classname="SVGPathSegList",Object.defineProperty(window.SVGPathSegList.prototype,"numberOfItems",{get:function(){return this._checkPathSynchronizedToList(),this._list.length},enumerable:!0}),Object.defineProperty(window.SVGPathSegList.prototype,"length",{get:function(){return this._checkPathSynchronizedToList(),this._list.length},enumerable:!0}),Object.defineProperty(window.SVGPathElement.prototype,"pathSegList",{get:function(){return this._pathSegList||(this._pathSegList=new window.SVGPathSegList(this)),this._pathSegList},enumerable:!0}),Object.defineProperty(window.SVGPathElement.prototype,"normalizedPathSegList",{get:function(){return this.pathSegList},enumerable:!0}),Object.defineProperty(window.SVGPathElement.prototype,"animatedPathSegList",{get:function(){return this.pathSegList},enumerable:!0}),Object.defineProperty(window.SVGPathElement.prototype,"animatedNormalizedPathSegList",{get:function(){return this.pathSegList},enumerable:!0}),window.SVGPathSegList.prototype._checkPathSynchronizedToList=function(){this._updateListFromPathMutations(this._pathElementMutationObserver.takeRecords())},window.SVGPathSegList.prototype._updateListFromPathMutations=function(t){if(!this._pathElement)return;let e=!1;t.forEach(function(t){"d"==t.attributeName&&(e=!0)}),e&&(this._list=this._parsePath(this._pathElement.getAttribute("d")))},window.SVGPathSegList.prototype._writeListToPath=function(){this._pathElementMutationObserver.disconnect(),this._pathElement.setAttribute("d",window.SVGPathSegList._pathSegArrayAsString(this._list)),this._pathElementMutationObserver.observe(this._pathElement,this._mutationObserverConfig)},window.SVGPathSegList.prototype.segmentChanged=function(){this._writeListToPath()},window.SVGPathSegList.prototype.clear=function(){this._checkPathSynchronizedToList(),this._list.forEach(function(t){t._owningPathSegList=null}),this._list=[],this._writeListToPath()},window.SVGPathSegList.prototype.initialize=function(t){return this._checkPathSynchronizedToList(),this._list=[t],t._owningPathSegList=this,this._writeListToPath(),t},window.SVGPathSegList.prototype._checkValidIndex=function(t){if(isNaN(t)||t<0||t>=this.numberOfItems)throw"INDEX_SIZE_ERR"},window.SVGPathSegList.prototype.getItem=function(t){return this._checkPathSynchronizedToList(),this._checkValidIndex(t),this._list[t]},window.SVGPathSegList.prototype.insertItemBefore=function(t,e){return this._checkPathSynchronizedToList(),e>this.numberOfItems&&(e=this.numberOfItems),t._owningPathSegList&&(t=t.clone()),this._list.splice(e,0,t),t._owningPathSegList=this,this._writeListToPath(),t},window.SVGPathSegList.prototype.replaceItem=function(t,e){return this._checkPathSynchronizedToList(),t._owningPathSegList&&(t=t.clone()),this._checkValidIndex(e),this._list[e]=t,t._owningPathSegList=this,this._writeListToPath(),t},window.SVGPathSegList.prototype.removeItem=function(t){this._checkPathSynchronizedToList(),this._checkValidIndex(t);const e=this._list[t];return this._list.splice(t,1),this._writeListToPath(),e},window.SVGPathSegList.prototype.appendItem=function(t){return this._checkPathSynchronizedToList(),t._owningPathSegList&&(t=t.clone()),this._list.push(t),t._owningPathSegList=this,this._writeListToPath(),t},window.SVGPathSegList._pathSegArrayAsString=function(t){let e="",i=!0;return t.forEach(function(t){i?(i=!1,e+=t._asPathString()):e+=` ${t._asPathString()}`}),e},window.SVGPathSegList.prototype._parsePath=function(t){if(!t?.length)return[];const e=this,i=function(){this.pathSegList=[]};i.prototype.appendSegment=function(t){this.pathSegList.push(t)};const n=function(t){this._string=t,this._currentIndex=0,this._endIndex=this._string.length,this._previousCommand=window.SVGPathSeg.PATHSEG_UNKNOWN,this._skipOptionalSpaces()};n.prototype._isCurrentSpace=function(){const t=this._string[this._currentIndex];return t<=" "&&(" "==t||"\n"==t||"\t"==t||"\r"==t||"\f"==t)},n.prototype._skipOptionalSpaces=function(){for(;this._currentIndex<this._endIndex&&this._isCurrentSpace();)this._currentIndex++;return this._currentIndex<this._endIndex},n.prototype._skipOptionalSpacesOrDelimiter=function(){return!(this._currentIndex<this._endIndex&&!this._isCurrentSpace()&&","!=this._string.charAt(this._currentIndex))&&(this._skipOptionalSpaces()&&this._currentIndex<this._endIndex&&","==this._string.charAt(this._currentIndex)&&(this._currentIndex++,this._skipOptionalSpaces()),this._currentIndex<this._endIndex)},n.prototype.hasMoreData=function(){return this._currentIndex<this._endIndex},n.prototype.peekSegmentType=function(){const t=this._string[this._currentIndex];return this._pathSegTypeFromChar(t)},n.prototype._pathSegTypeFromChar=function(t){switch(t){case"Z":case"z":return window.SVGPathSeg.PATHSEG_CLOSEPATH;case"M":return window.SVGPathSeg.PATHSEG_MOVETO_ABS;case"m":return window.SVGPathSeg.PATHSEG_MOVETO_REL;case"L":return window.SVGPathSeg.PATHSEG_LINETO_ABS;case"l":return window.SVGPathSeg.PATHSEG_LINETO_REL;case"C":return window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_ABS;case"c":return window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_REL;case"Q":return window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_ABS;case"q":return window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_REL;case"A":return window.SVGPathSeg.PATHSEG_ARC_ABS;case"a":return window.SVGPathSeg.PATHSEG_ARC_REL;case"H":return window.SVGPathSeg.PATHSEG_LINETO_HORIZONTAL_ABS;case"h":return window.SVGPathSeg.PATHSEG_LINETO_HORIZONTAL_REL;case"V":return window.SVGPathSeg.PATHSEG_LINETO_VERTICAL_ABS;case"v":return window.SVGPathSeg.PATHSEG_LINETO_VERTICAL_REL;case"S":return window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_SMOOTH_ABS;case"s":return window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_SMOOTH_REL;case"T":return window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_SMOOTH_ABS;case"t":return window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_SMOOTH_REL;default:return window.SVGPathSeg.PATHSEG_UNKNOWN}},n.prototype._nextCommandHelper=function(t,e){return("+"==t||"-"==t||"."==t||t>="0"&&t<="9")&&e!=window.SVGPathSeg.PATHSEG_CLOSEPATH?e==window.SVGPathSeg.PATHSEG_MOVETO_ABS?window.SVGPathSeg.PATHSEG_LINETO_ABS:e==window.SVGPathSeg.PATHSEG_MOVETO_REL?window.SVGPathSeg.PATHSEG_LINETO_REL:e:window.SVGPathSeg.PATHSEG_UNKNOWN},n.prototype.initialCommandIsMoveTo=function(){if(!this.hasMoreData())return!0;const t=this.peekSegmentType();return t==window.SVGPathSeg.PATHSEG_MOVETO_ABS||t==window.SVGPathSeg.PATHSEG_MOVETO_REL},n.prototype._parseNumber=function(){let t=0,e=0,i=1,n=0,s=1,o=1;const a=this._currentIndex;if(this._skipOptionalSpaces(),this._currentIndex<this._endIndex&&"+"==this._string.charAt(this._currentIndex)?this._currentIndex++:this._currentIndex<this._endIndex&&"-"==this._string.charAt(this._currentIndex)&&(this._currentIndex++,s=-1),this._currentIndex==this._endIndex||(this._string.charAt(this._currentIndex)<"0"||this._string.charAt(this._currentIndex)>"9")&&"."!=this._string.charAt(this._currentIndex))return;const r=this._currentIndex;for(;this._currentIndex<this._endIndex&&this._string.charAt(this._currentIndex)>="0"&&this._string.charAt(this._currentIndex)<="9";)this._currentIndex++;if(this._currentIndex!=r){let t=this._currentIndex-1,i=1;for(;t>=r;)e+=i*(this._string.charAt(t--)-"0"),i*=10}if(this._currentIndex<this._endIndex&&"."==this._string.charAt(this._currentIndex)){if(this._currentIndex++,this._currentIndex>=this._endIndex||this._string.charAt(this._currentIndex)<"0"||this._string.charAt(this._currentIndex)>"9")return;for(;this._currentIndex<this._endIndex&&this._string.charAt(this._currentIndex)>="0"&&this._string.charAt(this._currentIndex)<="9";)i*=10,n+=(this._string.charAt(this._currentIndex)-"0")/i,this._currentIndex+=1}if(this._currentIndex!=a&&this._currentIndex+1<this._endIndex&&("e"==this._string.charAt(this._currentIndex)||"E"==this._string.charAt(this._currentIndex))&&"x"!=this._string.charAt(this._currentIndex+1)&&"m"!=this._string.charAt(this._currentIndex+1)){if(this._currentIndex++,"+"==this._string.charAt(this._currentIndex)?this._currentIndex++:"-"==this._string.charAt(this._currentIndex)&&(this._currentIndex++,o=-1),this._currentIndex>=this._endIndex||this._string.charAt(this._currentIndex)<"0"||this._string.charAt(this._currentIndex)>"9")return;for(;this._currentIndex<this._endIndex&&this._string.charAt(this._currentIndex)>="0"&&this._string.charAt(this._currentIndex)<="9";)t*=10,t+=this._string.charAt(this._currentIndex)-"0",this._currentIndex++}let c=e+n;return c*=s,t&&(c*=Math.pow(10,o*t)),a!=this._currentIndex?(this._skipOptionalSpacesOrDelimiter(),c):void 0},n.prototype._parseArcFlag=function(){if(this._currentIndex>=this._endIndex)return;let t=!1;const e=this._string.charAt(this._currentIndex++);if("0"==e)t=!1;else{if("1"!=e)return;t=!0}return this._skipOptionalSpacesOrDelimiter(),t},n.prototype.parseSegment=function(){const t=this._string[this._currentIndex];let i,n=this._pathSegTypeFromChar(t);if(n==window.SVGPathSeg.PATHSEG_UNKNOWN){if(this._previousCommand==window.SVGPathSeg.PATHSEG_UNKNOWN)return null;if(n=this._nextCommandHelper(t,this._previousCommand),n==window.SVGPathSeg.PATHSEG_UNKNOWN)return null}else this._currentIndex++;switch(this._previousCommand=n,n){case window.SVGPathSeg.PATHSEG_MOVETO_REL:return new window.SVGPathSegMovetoRel(e,this._parseNumber(),this._parseNumber());case window.SVGPathSeg.PATHSEG_MOVETO_ABS:return new window.SVGPathSegMovetoAbs(e,this._parseNumber(),this._parseNumber());case window.SVGPathSeg.PATHSEG_LINETO_REL:return new window.SVGPathSegLinetoRel(e,this._parseNumber(),this._parseNumber());case window.SVGPathSeg.PATHSEG_LINETO_ABS:return new window.SVGPathSegLinetoAbs(e,this._parseNumber(),this._parseNumber());case window.SVGPathSeg.PATHSEG_LINETO_HORIZONTAL_REL:return new window.SVGPathSegLinetoHorizontalRel(e,this._parseNumber());case window.SVGPathSeg.PATHSEG_LINETO_HORIZONTAL_ABS:return new window.SVGPathSegLinetoHorizontalAbs(e,this._parseNumber());case window.SVGPathSeg.PATHSEG_LINETO_VERTICAL_REL:return new window.SVGPathSegLinetoVerticalRel(e,this._parseNumber());case window.SVGPathSeg.PATHSEG_LINETO_VERTICAL_ABS:return new window.SVGPathSegLinetoVerticalAbs(e,this._parseNumber());case window.SVGPathSeg.PATHSEG_CLOSEPATH:return this._skipOptionalSpaces(),new window.SVGPathSegClosePath(e);case window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_REL:return i={x1:this._parseNumber(),y1:this._parseNumber(),x2:this._parseNumber(),y2:this._parseNumber(),x:this._parseNumber(),y:this._parseNumber()},new window.SVGPathSegCurvetoCubicRel(e,i.x,i.y,i.x1,i.y1,i.x2,i.y2);case window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_ABS:return i={x1:this._parseNumber(),y1:this._parseNumber(),x2:this._parseNumber(),y2:this._parseNumber(),x:this._parseNumber(),y:this._parseNumber()},new window.SVGPathSegCurvetoCubicAbs(e,i.x,i.y,i.x1,i.y1,i.x2,i.y2);case window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_SMOOTH_REL:return i={x2:this._parseNumber(),y2:this._parseNumber(),x:this._parseNumber(),y:this._parseNumber()},new window.SVGPathSegCurvetoCubicSmoothRel(e,i.x,i.y,i.x2,i.y2);case window.SVGPathSeg.PATHSEG_CURVETO_CUBIC_SMOOTH_ABS:return i={x2:this._parseNumber(),y2:this._parseNumber(),x:this._parseNumber(),y:this._parseNumber()},new window.SVGPathSegCurvetoCubicSmoothAbs(e,i.x,i.y,i.x2,i.y2);case window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_REL:return i={x1:this._parseNumber(),y1:this._parseNumber(),x:this._parseNumber(),y:this._parseNumber()},new window.SVGPathSegCurvetoQuadraticRel(e,i.x,i.y,i.x1,i.y1);case window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_ABS:return i={x1:this._parseNumber(),y1:this._parseNumber(),x:this._parseNumber(),y:this._parseNumber()},new window.SVGPathSegCurvetoQuadraticAbs(e,i.x,i.y,i.x1,i.y1);case window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_SMOOTH_REL:return new window.SVGPathSegCurvetoQuadraticSmoothRel(e,this._parseNumber(),this._parseNumber());case window.SVGPathSeg.PATHSEG_CURVETO_QUADRATIC_SMOOTH_ABS:return new window.SVGPathSegCurvetoQuadraticSmoothAbs(e,this._parseNumber(),this._parseNumber());case window.SVGPathSeg.PATHSEG_ARC_REL:return i={x1:this._parseNumber(),y1:this._parseNumber(),arcAngle:this._parseNumber(),arcLarge:this._parseArcFlag(),arcSweep:this._parseArcFlag(),x:this._parseNumber(),y:this._parseNumber()},new window.SVGPathSegArcRel(e,i.x,i.y,i.x1,i.y1,i.arcAngle,i.arcLarge,i.arcSweep);case window.SVGPathSeg.PATHSEG_ARC_ABS:return i={x1:this._parseNumber(),y1:this._parseNumber(),arcAngle:this._parseNumber(),arcLarge:this._parseArcFlag(),arcSweep:this._parseArcFlag(),x:this._parseNumber(),y:this._parseNumber()},new window.SVGPathSegArcAbs(e,i.x,i.y,i.x1,i.y1,i.arcAngle,i.arcLarge,i.arcSweep);default:throw"Unknown path seg type."}};const s=new i,o=new n(t);if(!o.initialCommandIsMoveTo())return[];for(;o.hasMoreData();){const t=o.parseSegment();if(!t)return[];s.appendSegment(t)}return s.pathSegList})}catch(t){console.warn("An error occurred in tsParticles pathseg polyfill. If the Polygon Mask is not working, please open an issue here: https://github.com/tsparticles/tsparticles",t)}}();const Bf=0,Nf=1;function Uf(t,e,i,n,s=!1){const o=ei(t,n.color);if(!o)return;const a=i[0];if(a){e.beginPath(),e.moveTo(a.x,a.y);for(const t of i)e.lineTo(t.x,t.y);e.closePath(),e.strokeStyle=hi(o,s),e.lineWidth=n.width,e.stroke()}}function $f(t,e,i,n,s,o=!1){const a=1,r=0,c=0,l=1;e.setTransform(a,r,c,l,s.x,s.y);const h=ei(t,n.color);h&&(e.strokeStyle=hi(h,o,n.opacity),e.lineWidth=n.width,e.stroke(i),e.resetTransform())}function jf(t,e,i){const{dx:n,dy:s}=W(i,t),{dx:o,dy:a}=W(e,t),r=(n*o+s*a)/(o**2+a**2),c={x:t.x+o*r,y:t.y+a*r,isOnSegment:r>=Bf&&r<=Nf};return r<Bf?(c.x=t.x,c.y=t.y):r>Nf&&(c.x=e.x,c.y=e.y),c}function qf(t,e,i){const{dx:n,dy:s}=W(t,e),o=Math.atan2(s,n),a=M.create(Math.sin(o),-Math.cos(o)),r=2*(i.x*a.x+i.y*a.y);a.multTo(r),i.subFrom(a)}const Wf="No polygon data loaded.";var Qf=Object.freeze({__proto__:null,PolygonMaskInstance:class{dimension;offset;paths;raw;redrawTimeout;_container;_moveRadius;_pluginManager;_scale;constructor(t,e){this._container=e,this._pluginManager=t,this.dimension={height:0,width:0},this._moveRadius=0,this._scale=1}clickPositionValid(t){const e=this._container.actualOptions.polygon;return!!e?.enable&&e.type!==Tp.none&&e.type!==Tp.inline&&this._checkInsidePolygon(t)}draw(t){if(!this.paths?.length)return;const e=this._container.actualOptions.polygon;if(!e?.enable)return;const i=e.draw;if(!i.enable)return;const n=this.raw;for(const e of this.paths){const s=e.path2d;s&&this.offset?$f(this._pluginManager,t,s,i.stroke,this.offset,this._container.hdr):n&&Uf(this._pluginManager,t,n,i.stroke,this._container.hdr)}}async init(){const t=this._container,e=t.actualOptions.polygon,i=t.retina.pixelRatio;e&&(this._moveRadius=e.move.radius*i,this._scale=e.scale*i,e.enable&&await this._initRawData())}particleBounce(t,e,i){return this._polygonBounce(t,e,i)}particlePosition(t){const e=this._container.actualOptions.polygon;if(e?.enable&&(this.raw?.length??0)>0)return St({},t??this._randomPoint())}particlesInitialization(){const t=this._container.actualOptions.polygon;return!(!t?.enable||t.type!==Tp.inline||t.inline.arrangement!==Op.onePerPoint&&t.inline.arrangement!==Op.perPoint)&&(this._drawPoints(),!0)}resize(){const t=this._container,e=t.actualOptions.polygon;if(!e?.enable||e.type===Tp.none)return;this.redrawTimeout&&clearTimeout(this.redrawTimeout);this.redrawTimeout=setTimeout(()=>{(async()=>{await this._initRawData(!0),await t.particles.redraw()})()},250)}stop(){delete this.raw,delete this.paths}_checkInsidePolygon=t=>{const e=this._container,i=e.actualOptions.polygon;if(!i?.enable||i.type===Tp.none||i.type===Tp.inline)return!0;if(!this.raw)throw new Error("No polygon found, you need to specify SVG url in config.");const n=e.canvas.size,s=t?.x??R()*n.width,o=t?.y??R()*n.height;let a=!1;for(let t=0,e=this.raw.length-1;t<this.raw.length;e=t++){const i=this.raw[t],n=this.raw[e];if(!i||!n)continue;i.y>o!=n.y>o&&s<(n.x-i.x)*(o-i.y)/(n.y-i.y)+i.x&&(a=!a)}return i.type===Tp.inside?a:!a};_createPath2D=()=>{if(this._container.actualOptions.polygon&&this.paths?.length)for(const t of this.paths){const e=t.element.getAttribute("d");if(e){const i=new Path2D(e),n=pt().createElementNS("http://www.w3.org/2000/svg","svg").createSVGMatrix(),s=new Path2D,o=n.scale(this._scale);s.addPath(i,o),t.path2d=s}else delete t.path2d;if(t.path2d??!this.raw)continue;t.path2d=new Path2D;const i=0,n=this.raw[i];n&&(t.path2d.moveTo(n.x,n.y),this.raw.forEach((e,n)=>{n>i&&t.path2d?.lineTo(e.x,e.y)}),t.path2d.closePath())}};_downloadSvgPath=async(t,e)=>{const i=this._container.actualOptions.polygon;if(!i)return;const n=t??i.url,s=e??!1;if(!n||void 0!==this.paths&&!s)return this.raw;const o=await fetch(n);if(!o.ok)throw new Error("Error occurred during polygon mask download");return this._parseSvgPath(await o.text(),e)};_drawPoints=()=>{if(this.raw)for(const t of this.raw)this._container.particles.addParticle({x:t.x,y:t.y})};_getEquidistantPointByIndex=t=>{const e=this._container.actualOptions;if(!e.polygon)return;if(!this.raw?.length||!this.paths?.length)throw new Error(Wf);let i,n=0;const s=this.paths.reduce((t,e)=>t+e.length,0)/e.particles.number.value;for(const e of this.paths){const o=s*t-n;if(o<=e.length){i=e.element.getPointAtLength(o);break}n+=e.length}const o=this._scale;return{x:(i?.x??c.x)*o+(this.offset?.x??c.x),y:(i?.y??c.y)*o+(this.offset?.y??c.y)}};_getPointByIndex=t=>{if(!this.raw?.length)throw new Error(Wf);const e=this.raw[t%this.raw.length];if(e)return{x:e.x,y:e.y}};_getRandomPoint=()=>{if(!this.raw?.length)throw new Error(Wf);const t=vt(this.raw);if(t)return{x:t.x,y:t.y}};_getRandomPointByLength=()=>{if(!this._container.actualOptions.polygon)return;if(!this.raw?.length||!this.paths?.length)throw new Error(Wf);const t=vt(this.paths);if(!t)return;const e=Math.floor(R()*t.length)+1,i=t.element.getPointAtLength(e),n=this._scale;return{x:i.x*n+(this.offset?.x??c.x),y:i.y*n+(this.offset?.y??c.y)}};_initRawData=async t=>{const e=this._container.actualOptions.polygon;if(e){if(e.url)this.raw=await this._downloadSvgPath(e.url,t);else if(e.data){const i=e.data;let n;if(O(i))n=i;else{const t=t=>`<path d="${t}" />`,e=V(i.path)?i.path.map(t).join(""):t(i.path);n=`<svg ${'xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"'} width="${i.size.width.toString()}" height="${i.size.height.toString()}">${e}</svg>`}this.raw=this._parseSvgPath(n,t)}this._createPath2D(),this._container.dispatchEvent("polygonMaskLoaded")}};_parseSvgPath=(t,e)=>{const i=e??!1;if(void 0!==this.paths&&!i)return this.raw;const n=this._container,s=n.actualOptions.polygon;if(!s)return;const r=(new DOMParser).parseFromString(t,"image/svg+xml"),c=r.getElementsByTagName("svg")[0];if(!c)return;let l=c.getElementsByTagName("path");l.length||(l=r.getElementsByTagName("path")),this.paths=[];for(let t=0;t<l.length;t++){const e=l.item(t);e&&this.paths.push({element:e,length:e.getTotalLength()})}const h=this._scale;this.dimension.width=parseFloat(c.getAttribute("width")??"0")*h,this.dimension.height=parseFloat(c.getAttribute("height")??"0")*h;const d=s.position??{x:50,y:50},u=n.canvas.size;return this.offset={x:u.width*d.x/o-this.dimension.width*a,y:u.height*d.y/o-this.dimension.height*a},function(t,e,i){const n=[];for(const s of t){const t=s.element.pathSegList,o=t?.numberOfItems??0,a={x:0,y:0};for(let s=0;s<o;s++){const o=t?.getItem(s),r=globalThis.SVGPathSeg;switch(o?.pathSegType){case r.PATHSEG_MOVETO_ABS:case r.PATHSEG_LINETO_ABS:case r.PATHSEG_CURVETO_CUBIC_ABS:case r.PATHSEG_CURVETO_QUADRATIC_ABS:case r.PATHSEG_ARC_ABS:case r.PATHSEG_CURVETO_CUBIC_SMOOTH_ABS:case r.PATHSEG_CURVETO_QUADRATIC_SMOOTH_ABS:{const t=o;a.x=t.x,a.y=t.y;break}case r.PATHSEG_LINETO_HORIZONTAL_ABS:a.x=o.x;break;case r.PATHSEG_LINETO_VERTICAL_ABS:a.y=o.y;break;case r.PATHSEG_LINETO_REL:case r.PATHSEG_MOVETO_REL:case r.PATHSEG_CURVETO_CUBIC_REL:case r.PATHSEG_CURVETO_QUADRATIC_REL:case r.PATHSEG_ARC_REL:case r.PATHSEG_CURVETO_CUBIC_SMOOTH_REL:case r.PATHSEG_CURVETO_QUADRATIC_SMOOTH_REL:{const t=o;a.x+=t.x,a.y+=t.y;break}case r.PATHSEG_LINETO_HORIZONTAL_REL:a.x+=o.x;break;case r.PATHSEG_LINETO_VERTICAL_REL:a.y+=o.y;break;case r.PATHSEG_UNKNOWN:case r.PATHSEG_CLOSEPATH:default:continue}n.push({x:a.x*e+i.x,y:a.y*e+i.y})}}return n}(this.paths,h,this.offset)};_polygonBounce=(e,i,n)=>{const s=this._container.actualOptions.polygon;if(!this.raw||!s?.enable||n!==t.OutModeDirection.top)return!1;if(s.type===Tp.inside||s.type===Tp.outside){let t,i,n;const s=e.getPosition(),o=e.getRadius(),a=1;for(let r=0,c=this.raw.length-a;r<this.raw.length;c=r++){const a=this.raw[r],l=this.raw[c];if(!a||!l)continue;t=jf(a,l,s);const h=W(s,t);if([i,n]=[h.dx,h.dy],h.distance<o)return qf(a,l,e.velocity),!0}if(t&&void 0!==i&&void 0!==n&&!this._checkInsidePolygon(s)){const i={x:1,y:1},n=2*o,a=-1;return s.x>=t.x&&(i.x=-1),s.y>=t.y&&(i.y=-1),e.position.x=t.x+n*i.x,e.position.y=t.y+n*i.y,e.velocity.mult(a),!0}}else if(s.type===Tp.inline){const t=Z(e.initialPosition,e.getPosition()),{velocity:i}=e;if(t>this._moveRadius)return i.x=i.y*a-i.x,i.y=i.x*a-i.y,!0}return!1};_randomPoint=()=>{const t=this._container,e=t.actualOptions.polygon;if(!e)return;let i;if(e.type===Tp.inline)switch(e.inline.arrangement){case Op.randomPoint:i=this._getRandomPoint();break;case Op.randomLength:i=this._getRandomPointByLength();break;case Op.equidistant:i=this._getEquidistantPointByIndex(t.particles.count);break;case Op.onePerPoint:case Op.perPoint:default:i=this._getPointByIndex(t.particles.count)}else{const e=t.canvas.size;i={x:R()*e.width,y:R()*e.height}}return this._checkInsidePolygon(i)?i:this._randomPoint()}}});var Zf,Xf,Yf=Object.freeze({__proto__:null,ResponsivePluginInstance:class{_container;constructor(t){this._container=t}updateActualOptions(){const t=this._container;t.actualOptions.responsive=[];const e=t.actualOptions.setResponsive?.(t.canvas.size.width,t.retina.pixelRatio,t.options);return t.responsiveMaxWidth!==e&&(t.responsiveMaxWidth=e,!0)}}});!function(t){t.mute="soundsMuted",t.unmute="soundsUnmuted"}(Zf||(Zf={})),function(t){t.Block="block",t.None="none"}(Xf||(Xf={}));function Kf(t){const e=pt().createElement("img"),{clickCb:i,container:n,display:s,iconOptions:o,margin:a,options:r,pos:c,rightOffsets:l}=t,{width:h,path:d,style:u,svg:p}=o;!function(t,e,i,n,s,o,a,r){t.style.userSelect="none",t.style.position="absolute",t.style.top=`${(e+a).toString()}px`,t.style.left=`${(i-a-o).toString()}px`,t.style.display=n,t.style.zIndex=(s+1).toString(),t.style.cssText+=r}(e,c.top+a,c.right-(a*(l.length+1)+h+l.reduce((t,e)=>t+e,0)),s,r.fullScreen.zIndex+1,h,a,u),e.src=d??(p?`data:image/svg+xml;base64,${btoa(p)}`:"");return(n.canvas.domElement?.parentNode??pt().body).append(e),e.addEventListener("click",()=>{i()}),e}function Jf(t){t&&t.remove()}var ty=Object.freeze({__proto__:null,SoundsPluginInstance:class{_audioMap;_audioSources;_container;_engine;_gain;_muteImg;_unmuteImg;_volume;_volumeDownImg;_volumeUpImg;constructor(t,e){this._container=t,this._engine=e,this._volume=0,this._audioSources=[],this._audioMap=new Map}async init(){const t=this._container.actualOptions.sounds;if(!t?.enable)return;if(t.autoPlay&&fg()){const t=()=>{removeEventListener(ig,t),removeEventListener(ng,t),yg(),this.unmute()},e={capture:!0,once:!0};addEventListener(ig,t,e),addEventListener(ng,t,e)}this._volume=t.volume.value;const e=t.events;this._audioMap=new Map;for(const t of e){if(!t.audio)continue;const e=Ct(t.audio,async t=>{const e=await fetch(t.source);if(!e.ok)return;const i=await e.arrayBuffer(),n=this._getAudioContext(),s=await n.decodeAudioData(i);this._audioMap.set(t.source,s)});e instanceof Promise?await e:await Promise.allSettled(e)}}async mute(){this._container.muted||await this.toggleMute()}async start(){const t=this._container,e=t.actualOptions,i=e.sounds;if(!i?.enable||!t.canvas.domElement)return;t.muted=!0;const n=t.canvas.domElement,s={top:n.offsetTop,right:n.offsetLeft+n.offsetWidth},{mute:o,unmute:a,volumeDown:r,volumeUp:c}=i.icons,l=async()=>{await this.toggleMute()},h=i.icons.enable?Xf.Block:Xf.None;this._muteImg=Kf({container:t,options:e,pos:s,display:h,iconOptions:o,margin:10,rightOffsets:[r.width,c.width],clickCb:l}),this._unmuteImg=Kf({container:t,options:e,pos:s,display:Xf.None,iconOptions:a,margin:10,rightOffsets:[r.width,c.width],clickCb:l}),this._volumeDownImg=Kf({container:t,options:e,pos:s,display:h,iconOptions:r,margin:10,rightOffsets:[c.width],clickCb:async()=>{await this.volumeDown()}}),this._volumeUpImg=Kf({container:t,options:e,pos:s,display:h,iconOptions:c,margin:10,rightOffsets:[],clickCb:async()=>{await this.volumeUp()}}),!fg()&&i.autoPlay&&await this.unmute()}stop(){this._container.muted=!0,(async()=>{await this._mute(),Jf(this._muteImg),Jf(this._unmuteImg),Jf(this._volumeDownImg),Jf(this._volumeUpImg)})()}async toggleMute(){const t=this._container;t.muted=!t.muted,this._updateMuteIcons(),await this._updateMuteStatus()}async unmute(){this._container.muted&&await this.toggleMute()}async volumeDown(){const t=this._container,e=t.actualOptions.sounds;e?.enable&&(t.muted&&(this._volume=0),this._volume-=e.volume.step,await this._updateVolume())}async volumeUp(){const t=this._container.actualOptions.sounds;t?.enable&&(this._volume+=t.volume.step,await this._updateVolume())}_addBuffer=t=>{const e=t.createBufferSource();return this._audioSources.push(e),e};_addOscillator=t=>{const e=t.createOscillator();return this._audioSources.push(e),e};_getAudioContext(){const t=this._container;return t.audioContext??=new AudioContext,t.audioContext}_initEvents=()=>{const t=this._container,e=t.actualOptions.sounds;if(e?.enable&&t.canvas.domElement)for(const t of e.events){const e=i=>{i&&(async()=>{const n=t.filter&&!t.filter(i);if(this._container!==i.container)return;if(this._container.muted||this._container.destroyed)return void Ct(t.event,t=>{this._engine.removeEventListener(t,e)});if(n)return;if(t.audio){const e=Ot(t.audio);if(!e)return;this._playBuffer(e)}else if(t.melodies){const e=vt(t.melodies);if(!e)return;e.melodies.length?await Promise.allSettled(e.melodies.map(t=>this._playNote(t.notes,0,e.loop))):await this._playNote(e.notes,0,e.loop)}else if(t.notes){const e=vt(t.notes);if(!e)return;await this._playNote([e],0,!1)}})()};Ct(t.event,t=>{this._engine.addEventListener(t,e)})}};_mute=async()=>{const t=this._container,e=this._getAudioContext();for(const t of this._audioSources)this._removeAudioSource(t);this._gain&&this._gain.disconnect(),await e.close(),t.audioContext=void 0,this._container.dispatchEvent(Zf.mute)};_playBuffer=t=>{const e=this._audioMap.get(t.source);if(!e)return;const i=this._container.audioContext;if(!i)return;const n=this._addBuffer(i);n.loop=t.loop,n.buffer=e,n.connect(this._gain??i.destination),n.start()};_playFrequency=async(t,e)=>{if(!this._gain||this._container.muted)return;const i=this._getAudioContext(),n=this._addOscillator(i);return n.connect(this._gain),n.type="sine",n.frequency.value=t,n.start(),new Promise(t=>{setTimeout(()=>{this._removeAudioSource(n),t()},e)})};_playMuteSound=()=>{if(this._container.muted)return;const t=this._getAudioContext(),e=t.createGain();e.connect(t.destination),e.gain.value=0;const i=t.createOscillator();i.connect(e),i.type="sine",i.frequency.value=1,i.start(),setTimeout(()=>{i.stop(),i.disconnect(),e.disconnect()})};_playNote=async(t,e,i)=>{if(this._container.muted)return;const n=t[e];if(!n)return;const s=Ct(n.value,async(i,n)=>this._playNoteValue(t,e,n));await(V(s)?Promise.allSettled(s):s);let o=e+1;i&&o>=t.length&&(o%=t.length),await this._playNote(t,o,i)};_playNoteValue=async(t,e,i)=>{const n=t[e];if(!n)return;const s=Ot(n.value,i,!0);if(s)try{const t=pg(s);if(!k(t))return;await this._playFrequency(t,n.duration)}catch(t){$t().error(t)}};_removeAudioSource=t=>{t.stop(),t.disconnect();this._audioSources.splice(this._audioSources.indexOf(t),1)};_unmute=()=>{const t=this._container.actualOptions.sounds;if(!t)return;const e=this._getAudioContext(),i=e.createGain();i.connect(e.destination),i.gain.value=t.volume.value/o,this._gain=i,this._initEvents(),this._container.dispatchEvent(Zf.unmute)};_updateMuteIcons=()=>{const t=this._container,e=t.actualOptions.sounds;if(!e?.enable||!e.icons.enable)return;const i=this._muteImg,n=this._unmuteImg;i&&(i.style.display=t.muted?"block":"none"),n&&(n.style.display=t.muted?"none":"block")};_updateMuteStatus=async()=>{const t=this._container,e=this._getAudioContext();t.muted?(await e.suspend(),await this._mute()):(await e.resume(),this._unmute(),this._playMuteSound())};_updateVolume=async()=>{const t=this._container,e=t.actualOptions.sounds;if(!e?.enable)return;H(this._volume,e.volume.min,e.volume.max);let i=!1;this._volume<=0&&!t.muted?(this._volume=0,t.muted=!0,i=!0):this._volume>0&&t.muted&&(t.muted=!1,i=!0),i&&(this._updateMuteIcons(),await this._updateMuteStatus()),this._gain?.gain&&(this._gain.gain.value=this._volume/o)}}});var ey=Object.freeze({__proto__:null,ThemesPluginInstance:class{_container;constructor(t){this._container=t}init(){const t=this._container;t.themeMatchMedia=gt("(prefers-color-scheme: dark)");return t.themeHandlers={themeChange:t=>{this._handleThemeChange(t)},oldThemeChange:t=>{this._handleThemeChange(t)}},t.manageMediaMatch=e=>{const i=t.themeHandlers;i&&t.themeMatchMedia&&Rt(t.themeMatchMedia,"change",i.themeChange,e)},t.loadTheme=async e=>{t.destroyed||(t.currentTheme=e,await t.refresh())},Promise.resolve()}manageListeners(t){const e=this._container;e.manageMediaMatch?.(t)}async start(){return this.manageListeners(!0),Promise.resolve()}stop(){this.manageListeners(!1)}updateActualOptions(){const t=this._container;return t.actualOptions.setTheme?.(t.currentTheme),!1}_handleThemeChange=t=>{const e=t,i=this._container,n=i.options,s=n.defaultThemes,o=e.matches?s.dark:s.light,a=n.themes?.find(t=>t.name===o);a?.default.auto&&i.loadTheme?.(o)}}});var iy=Object.freeze({__proto__:null,TrailPluginInstance:class{_container;_pluginManager;_trailFill;constructor(t,e){this._container=e,this._pluginManager=t}canvasClear(){const t=this._container,e=t.actualOptions.trail,i=this._trailFill;if(!e?.enable||!i||e.length<=0)return!1;let n=!1;const s=t.canvas;return i.color?(s.render.paintBase(hi(i.color,t.hdr,i.opacity)),n=!0):i.image&&(s.render.paintImage(i.image,i.opacity),n=!0),n}async init(){try{await this._initTrail()}catch(t){$t().error(t)}}_initTrail=async()=>{const t=this._container.actualOptions.trail;if(!t?.enable)return;const e=t.fill,i=1/t.length;if(e.color){const t=ei(this._pluginManager,e.color);if(!t)return;this._trailFill={color:{...t},opacity:i}}else await new Promise((t,n)=>{if(!e.image)return;const s=pt().createElement("img");s.addEventListener("load",()=>{this._trailFill={image:s,opacity:i},t()}),s.addEventListener("error",t=>{$t().error(t),n(new Error("Error loading image"))}),s.src=e.image})}}});class ny{container;_gestureScale;_handlers;_touchDistance;constructor(t){this.container=t,this._gestureScale=1,this._touchDistance=0,this._handlers={gestureStart:t=>{this._handleGestureStart(t)},gestureChange:t=>{this._handleGestureChange(t)},gestureEnd:t=>{this._handleGestureEnd(t)},wheel:t=>{this._handleMouseWheel(t)},touchMove:t=>{this._handleTouchZoom(t)},touchEnd:()=>{this._handleTouchEnd()}}}addListeners(){this._manageListeners(!0)}removeListeners(){this._manageListeners(!1)}_handleGestureChange=t=>{const e=this.container,i=e.canvas,n=i.domElement;if(!n)return;const s=e.actualOptions.zoom;if(!s?.enable)return;if(!this._isEventInsideCanvas(t,n))return;t.preventDefault();const o=t,a=o.scale??1;if(a===this._gestureScale)return;const r=1+.25*(a/this._gestureScale-1),c=i.zoom,l=Math.max(s.min,Math.min(c*r,s.max)),h=n.getBoundingClientRect(),d=o.clientX??h.left+h.width/2,u=o.clientY??h.top+h.height/2,p=this.container.retina.pixelRatio,g=(d-h.left)*p,f=(u-h.top)*p;i.setZoom(l,{x:g,y:f}),this._gestureScale=a};_handleGestureEnd=t=>{const e=this.container,i=e.canvas.domElement;if(!i)return;const n=e.actualOptions.zoom;n?.enable&&this._isEventInsideCanvas(t,i)&&(t.preventDefault(),this._gestureScale=1)};_handleGestureStart=t=>{const e=this.container,i=e.canvas.domElement;if(!i)return;const n=e.actualOptions.zoom;n?.enable&&this._isEventInsideCanvas(t,i)&&(t.preventDefault(),this._gestureScale=1)};_handleMouseWheel=t=>{if(!t.ctrlKey&&!t.metaKey)return;const e=this.container,i=e.actualOptions.zoom,n=e.canvas,s=n.domElement;if(!s)return;if(!i?.enable)return;if(!this._isEventInsideCanvas(t,s))return;t.preventDefault();const o=t.deltaY>0?.95:1.05,a=n.zoom,r=Math.max(i.min,Math.min(a*o,i.max)),c=s.getBoundingClientRect(),l=this.container.retina.pixelRatio,h=(t.clientX-c.left)*l,d=(t.clientY-c.top)*l;n.setZoom(r,{x:h,y:d})};_handleTouchEnd=()=>{this._touchDistance=0};_handleTouchZoom=t=>{if(2!==t.touches.length)return;t.preventDefault();const e=t.touches[0],i=t.touches[1];if(!e||!i)return;const n=Math.hypot(e.clientX-i.clientX,e.clientY-i.clientY);if(0===this._touchDistance)return void(this._touchDistance=n);const s=this.container,o=s.actualOptions.zoom,a=s.canvas,r=a.domElement;if(!r)return;if(!o?.enable)return;if(!this._isEventInsideCanvas(t,r))return;const c=1+.25*(n/this._touchDistance-1),l=a.zoom,h=Math.max(o.min,Math.min(l*c,o.max)),d=r.getBoundingClientRect(),u=this.container.retina.pixelRatio,p=((e.clientX+i.clientX)/2-d.left)*u,g=((e.clientY+i.clientY)/2-d.top)*u;a.setZoom(h,{x:p,y:g}),this._touchDistance=n};_isEventInsideCanvas=(t,e)=>{if(t.target===e)return!0;const i=t;if(i.composedPath().includes(e))return!0;const{clientX:n,clientY:s}=i;if("number"==typeof n&&"number"==typeof s){const t=e.getBoundingClientRect();return n>=t.left&&n<=t.right&&s>=t.top&&s<=t.bottom}return!1};_manageListeners=t=>{const e=this._handlers,i=this.container.canvas.domElement,n=this.container.actualOptions,s=pt();if(!i)return;if(t&&!n.zoom?.enable)return;const o={passive:!1},a={capture:!0,passive:!1};Rt(s,"gesturestart",e.gestureStart,t,a),Rt(s,"gesturechange",e.gestureChange,t,a),Rt(s,"gestureend",e.gestureEnd,t,a),Rt(s,"wheel",e.wheel,t,a),Rt(i,"gesturestart",e.gestureStart,t,o),Rt(i,"gesturechange",e.gestureChange,t,o),Rt(i,"gestureend",e.gestureEnd,t,o),Rt(i,"wheel",e.wheel,t,o),Rt(i,"touchmove",e.touchMove,t,o),Rt(i,"touchend",e.touchEnd,t,o),Rt(i,"touchcancel",e.touchEnd,t,o)}}var sy=Object.freeze({__proto__:null,ZoomPluginInstance:class{_container;_listeners;constructor(t){this._container=t,this._listeners=new ny(t)}destroy(){this._listeners.removeListeners()}drawParticleTransform(t){const e=this._container.canvas,i=e.zoom;if(1===i)return;const n=e.getZoomCenter(),{context:s,position:o,transformData:a}=t,r=n.x+(o.x-n.x)*i,c=n.y+(o.y-n.y)*i;t.drawScale=i,t.drawRadius=t.radius*i,t.drawPosition={x:r,y:c},s.setTransform(a.a*i,a.b*i,a.c*i,a.d*i,r,c)}drawSettingsCleanup(t){1!==this._container.canvas.zoom&&t.restore()}drawSettingsSetup(t){const e=this._container.canvas.zoom;if(1===e)return;t.save();const{x:i,y:n}=this._container.canvas.getZoomCenter();t.translate(i,n),t.scale(e,e),t.translate(-i,-n)}start(){return this._listeners.addListeners(),Promise.resolve()}stop(){this._listeners.removeListeners()}}});function oy(t,e,i,n){(t.paint??=new ke).fill={color:le.create(void 0,{value:e}),enable:n,opacity:i}}function ay(t,e,i,n){(t.paint??=new ke).stroke={color:le.create(void 0,{value:e}),opacity:i,width:n}}var ry=Object.freeze({__proto__:null,EmitterInstance:class{fill;name;options;position;size;spawnFillColor;spawnFillEnabled;spawnFillOpacity;spawnStrokeColor;spawnStrokeOpacity;spawnStrokeWidth;_container;_currentDuration;_currentEmitDelay;_currentSpawnDelay;_duration;_emitDelay;_firstSpawn;_immortal;_initialPosition;_lifeCount;_mutationObserver;_particlesOptions;_paused;_pluginManager;_removeCallback;_resizeObserver;_shape;_size;_spawnDelay;_startParticlesAdded;constructor(t,e,i,n,s){this._pluginManager=t,this._container=e,this._removeCallback=i,this._currentDuration=0,this._currentEmitDelay=0,this._currentSpawnDelay=0,this._initialPosition=s,n instanceof Ys?this.options=n:(this.options=new Ys,this.options.load(n)),this._spawnDelay=e.retina.reduceFactor?U(this.options.life.delay??0)*r/e.retina.reduceFactor:1/0,this.position=this._initialPosition??this._calcPosition(),this.name=this.options.name,this.fill=this.options.fill,this._firstSpawn=!this.options.life.wait,this._startParticlesAdded=!1;const o=St({},this.options.particles);if(o.move??={},o.move.direction??=this.options.direction,this.options.spawn.fill?.color&&(this.spawnFillColor=ni(this._pluginManager,this.options.spawn.fill.color)),this.options.spawn.stroke?.color&&(this.spawnStrokeColor=ni(this._pluginManager,this.options.spawn.stroke.color)),this._paused=!this.options.autoPlay,this._particlesOptions=o,this._size=this._calcSize(),this.size=It(this._size,this._container.canvas.size),this._lifeCount=this.options.life.count??-1,this._immortal=this._lifeCount<=0,this.options.domId){const t=pt().getElementById(this.options.domId);t&&(this._mutationObserver=new MutationObserver(()=>{this.resize()}),this._resizeObserver=new ResizeObserver(()=>{this.resize()}),this._mutationObserver.observe(t,{attributes:!0,attributeFilter:["style","width","height"]}),this._resizeObserver.observe(t))}const a=this.options.shape,c=this._pluginManager.emitterShapeManager?.getShapeGenerator(a.type);c&&(this._shape=c.generate(this._container,this.position,this.size,this.fill,a.options)),this._container.dispatchEvent("emitterCreated",{emitter:this}),this.play()}externalPause(){this._paused=!0,this.pause()}externalPlay(){this._paused=!1,this.play()}async init(){await(this._shape?.init())}pause(){this._paused||delete this._emitDelay}play(){if(this._paused)return;if(!(this._lifeCount>0||this._immortal)&&this.options.life.count||!(this._firstSpawn||this._currentSpawnDelay>=(this._spawnDelay??0)))return;const t=this._container;if(void 0===this._emitDelay){const e=U(this.options.rate.delay);this._emitDelay=t.retina.reduceFactor?e*r/t.retina.reduceFactor:1/0}(this._lifeCount>0||this._immortal)&&this._prepareToDie()}resize(){const t=this._initialPosition,e=this._container;this.position=t&&wt(t,e.canvas.size,M.origin)?t:this._calcPosition(),this._size=this._calcSize(),this.size=It(this._size,e.canvas.size),this._shape?.resize(this.position,this.size)}update(t){if(this._paused)return;const e=this._container;this._firstSpawn&&(this._firstSpawn=!1,this._currentSpawnDelay=this._spawnDelay??0,this._currentEmitDelay=this._emitDelay??0),this._startParticlesAdded||(this._startParticlesAdded=!0,this._emitParticles(this.options.startCount)),void 0!==this._duration&&(this._currentDuration+=t.value,this._currentDuration>=this._duration&&(this.pause(),void 0!==this._spawnDelay&&delete this._spawnDelay,this._immortal||this._lifeCount--,this._lifeCount>0||this._immortal?(this.position=this._calcPosition(),this._shape?.resize(this.position,this.size),this._spawnDelay=e.retina.reduceFactor?U(this.options.life.delay??0)*r/e.retina.reduceFactor:1/0):this._destroy(),this._currentDuration-=this._duration,delete this._duration)),void 0!==this._spawnDelay&&(this._currentSpawnDelay+=t.value,this._currentSpawnDelay>=this._spawnDelay&&(this._container.dispatchEvent("emitterPlay"),this.play(),this._currentSpawnDelay-=this._spawnDelay,delete this._spawnDelay)),void 0!==this._emitDelay&&(this._currentEmitDelay+=t.value,this._currentEmitDelay>=this._emitDelay&&(this._emit(),this._currentEmitDelay-=this._emitDelay))}_calcPosition(){const t=this._container;if(this.options.domId){const e=pt().getElementById(this.options.domId);if(e){const i=e.getBoundingClientRect(),n=t.retina.pixelRatio;return{x:(i.x+i.width*a)*n,y:(i.y+i.height*a)*n}}}return it({size:t.canvas.size,position:this.options.position})}_calcSize(){const e=this._container;if(this.options.domId){const i=pt().getElementById(this.options.domId);if(i){const n=i.getBoundingClientRect();return{width:n.width*e.retina.pixelRatio,height:n.height*e.retina.pixelRatio,mode:t.PixelMode.precise}}}return this.options.size??(()=>{const e=new Zs;return e.load({height:0,mode:t.PixelMode.percent,width:0}),e})()}_destroy=()=>{this._mutationObserver?.disconnect(),this._mutationObserver=void 0,this._resizeObserver?.disconnect(),this._resizeObserver=void 0,this._removeCallback(this),this._container.dispatchEvent("emitterDestroyed",{emitter:this})};_emit(){if(this._paused)return;const t=U(this.options.rate.quantity);this._emitParticles(t)}_emitParticles(t){const e=Ot(this._particlesOptions)??{},i=this.options.spawn.fill?.color?.animation,n=this.options.spawn.fill?.enable??!!this.options.spawn.fill?.color,s=void 0===this.options.spawn.fill?.opacity?1:U(this.options.spawn.fill.opacity),o=this.options.spawn.stroke?.color?.animation,a=void 0===this.options.spawn.stroke?.opacity?1:U(this.options.spawn.stroke.opacity),r=void 0===this.options.spawn.stroke?.width?1:U(this.options.spawn.stroke.width),c=this._container.retina.reduceFactor,l=!!i,h=!!o,d=!!this._shape,u=l||h,p=u||d,g=u?{h:_,s:m,l:v}:null,f=this.options.shape;for(let l=0;l<t*c;l++){const t=p?St({},e):e;this.spawnFillOpacity=s,this.spawnFillEnabled=n,this.spawnStrokeOpacity=a,this.spawnStrokeWidth=r,this.spawnFillColor&&(i&&g&&(this.spawnFillColor.h=this._setColorAnimation(i.h,this.spawnFillColor.h,g.h,3.6),this.spawnFillColor.s=this._setColorAnimation(i.s,this.spawnFillColor.s,g.s),this.spawnFillColor.l=this._setColorAnimation(i.l,this.spawnFillColor.l,g.l)),oy(t,this.spawnFillColor,this.spawnFillOpacity,this.spawnFillEnabled)),this.spawnStrokeColor&&(o&&g&&(this.spawnStrokeColor.h=this._setColorAnimation(o.h,this.spawnStrokeColor.h,g.h,3.6),this.spawnStrokeColor.s=this._setColorAnimation(o.s,this.spawnStrokeColor.s,g.s),this.spawnStrokeColor.l=this._setColorAnimation(o.l,this.spawnStrokeColor.l,g.l)),ay(t,this.spawnStrokeColor,this.spawnStrokeOpacity,this.spawnStrokeWidth));let c=this.position;if(this._shape){const e=this._shape.randomPosition();if(e){c=e.position;const i=f.replace;i.color&&e.color&&oy(t,e.color,i.opacity?e.opacity??1:1,!0)}else c=null}c&&this._container.particles.addParticle(c,t)}}_prepareToDie=()=>{if(this._paused)return;const t=void 0!==this.options.life.duration?U(this.options.life.duration):void 0;(this._lifeCount>0||this._immortal)&&void 0!==t&&t>0&&(this._duration=t*r)};_setColorAnimation=(t,e,i,n=1)=>{const s=this._container;if(!t.enable)return e;const o=N(t.offset),a=U(this.options.rate.delay),c=s.retina.reduceFactor?a*r/s.retina.reduceFactor:1/0;return(e+U(t.speed)*s.fpsLimit/c+o*n)%i}}});const cy=u,ly=1/360;var hy=Object.freeze({__proto__:null,AbsorberInstance:class{color;limit;mass;name;opacity;options;position;size;_container;_currentDuration;_currentSpawnDelay;_duration;_firstSpawn;_immortal;_lifeCount;_pluginManager;_spawnDelay;initialPosition;constructor(t,e,i,n){this._container=e,this._pluginManager=t,this._currentDuration=0,this._currentSpawnDelay=0,this.initialPosition=n?M.create(n.x,n.y):void 0,i instanceof Sa?this.options=i:(this.options=new Sa,this.options.load(i)),this.name=this.options.name,this.opacity=this.options.opacity,this.size=U(this.options.size.value)*e.retina.pixelRatio,this.mass=this.size*this.options.size.density*e.retina.reduceFactor;const s=this.options.size.limit;this.limit={radius:s.radius*e.retina.pixelRatio*e.retina.reduceFactor,mass:s.mass},this.color=ei(this._pluginManager,this.options.color)??{b:0,g:0,r:0},this.position=this.initialPosition?.copy()??this._calcPosition(),this._firstSpawn=!this.options.life.wait,this._lifeCount=this.options.life.count??-1,this._immortal=this._lifeCount<=0,this._spawnDelay=e.retina.reduceFactor?U(this.options.life.delay??0)*r/e.retina.reduceFactor:1/0}attract(t,e){const i=this._container,n=this.options,s=t.getPosition(),{dx:o,dy:a,distance:r}=W(this.position,s),c=M.create(o,a);if(c.length=this.mass/Math.pow(r,2)*i.retina.reduceFactor,r<this.size+t.getRadius()){const s=.033*t.getRadius()*i.retina.pixelRatio*e.factor;this.size>t.getRadius()&&r<this.size-t.getRadius()||void 0!==t.absorberOrbit&&t.absorberOrbit.length<0?n.destroy?t.destroy():(t.needsNewPosition=!0,this._updateParticlePosition(t,e,c)):(n.destroy&&(t.size.value-=s),this._updateParticlePosition(t,e,c)),(this.limit.radius<=0||this.size<this.limit.radius)&&(this.size+=s),(this.limit.mass<=0||this.mass<this.limit.mass)&&(this.mass+=s*this.options.size.density*i.retina.reduceFactor)}else this._updateParticlePosition(t,e,c)}draw(t){t.translate(this.position.x,this.position.y),t.beginPath(),t.arc(c.x,c.y,this.size,0,cy,!1),t.closePath(),t.fillStyle=hi(this.color,this._container.hdr,this.opacity),t.fill()}resize(){const t=this.initialPosition;this.position=t&&wt(t,this._container.canvas.size,M.origin)?t:this._calcPosition()}update(t){this._firstSpawn&&(this._firstSpawn=!1,this._currentSpawnDelay=this._spawnDelay??0),void 0!==this._duration&&(this._currentDuration+=t.value,this._currentDuration>=this._duration&&(this._immortal||this._lifeCount--,(this._lifeCount>0||this._immortal)&&(this.position=this._calcPosition(),this._spawnDelay=this._container.retina.reduceFactor?U(this.options.life.delay??0)*r/this._container.retina.reduceFactor:1/0),this._currentDuration-=this._duration,delete this._duration)),void 0!==this._spawnDelay&&(this._currentSpawnDelay+=t.value,this._currentSpawnDelay>=this._spawnDelay&&(this.play(),this._currentSpawnDelay-=this._spawnDelay,delete this._spawnDelay))}_calcPosition=()=>{const t=it({size:this._container.canvas.size,position:this.options.position});return M.create(t.x,t.y)};_prepareToDie=()=>{const t=void 0!==this.options.life.duration?U(this.options.life.duration):void 0;(this._lifeCount>0||this._immortal)&&void 0!==t&&t>0&&(this._duration=t*r)};_updateParticlePosition=(e,i,n)=>{if(e.destroyed)return;const s=this._container,o=s.canvas.size;if(e.needsNewPosition){const t=et({size:o});e.position.setTo(t),e.velocity.setTo(e.initialVelocity),e.absorberOrbit=void 0,e.needsNewPosition=!1}if(this.options.orbits){if(void 0===e.absorberOrbit&&(e.absorberOrbit=M.origin,e.absorberOrbit.length=Z(e.getPosition(),this.position),e.absorberOrbit.angle=R()*cy),e.absorberOrbit.length<=this.size&&!this.options.destroy){const t=Math.min(o.width,o.height),i=1,n=.1,s=.2;e.absorberOrbit.length=t*(i+(R()*s-n))}e.absorberOrbitDirection??=e.velocity.x>=0?t.RotateDirection.clockwise:t.RotateDirection.counterClockwise;const r=e.absorberOrbit.length,c=e.absorberOrbit.angle,l=e.absorberOrbitDirection;e.velocity.setTo(M.origin);const h=j(e.options.size.value)*s.retina.pixelRatio,d=e.options.move.size?e.getRadius()/h:1,u=i.factor||1,p=e.retina.moveSpeed*d*u*a;e.position.x=this.position.x+r*Math.cos(c),e.position.y=this.position.y+r*(l===t.RotateDirection.clockwise?1:-1)*Math.sin(c),e.absorberOrbit.length=Math.max(0,e.absorberOrbit.length-n.length),e.absorberOrbit.angle+=p*ly*s.retina.reduceFactor}else e.velocity.addTo(n)};play=()=>{(this._lifeCount>0||this._immortal||!this.options.life.count)&&(this._firstSpawn||this._currentSpawnDelay>=(this._spawnDelay??0))&&(this._lifeCount>0||this._immortal)&&this._prepareToDie()}}});var dy=Object.freeze({__proto__:null,PoissonDisc:class{active;cellSize;cols;dimensions;firstPoint;grid;points;radius;retries;rows;size;constructor(t,e,i,n,s){this.size={...t},this.radius=e,this.retries=i,this.dimensions=n,this.cellSize=Math.floor(this.radius/Math.sqrt(this.dimensions)),this.cols=Math.floor(this.size.width/this.cellSize),this.rows=Math.floor(this.size.height/this.cellSize),this.points=[],this.active=[],this.grid=[],this.firstPoint=s?{...s}:void 0,this.reset()}addPoint(t){const e={position:{...t},gridPosition:{x:Math.floor(t.x/this.cellSize),y:Math.floor(t.y/this.cellSize)}},i=this.points.length,n=this.grid[e.gridPosition.y];n&&(this.points.push(e),n[e.gridPosition.x]=i,this.active.push(i))}getRandom(t,e){return Math.floor(R()*(e-t))+t}initialiseGrid(){for(let t=0;t<=this.rows;t++){this.grid[t]=[];const e=this.grid[t];if(e)for(let t=0;t<=this.cols;t++)e[t]=-1}}reset(){if(this.points=[],this.active=[],this.grid=[],this.initialiseGrid(),this.firstPoint)this.addPoint(this.firstPoint);else{const t=0;this.addPoint({x:this.getRandom(t,this.size.width),y:this.getRandom(t,this.size.height)})}}async run(){this.reset();let t=0;for(;this.active.length>0;)this.steps(1),++t%100==0&&await new Promise(t=>setTimeout(t))}steps(t){for(let e=0;e<t;e++)this.active.length<=0||this._step()}_getNewPoint(t,e){const i=e*(u/this.retries),n=this.getRandom(this.radius,2*this.radius),s=Math.cos(i)*n,o=Math.sin(i)*n,a={x:Math.floor(t.position.x+s),y:Math.floor(t.position.y+o)},r=Math.floor(a.x/this.cellSize),c=Math.floor(a.y/this.cellSize);if(a.x<=0||a.x>=this.size.width||a.y<=0||a.y>=this.size.height)return;const l=this.grid[c];if(!l)return;const h=l[r];if(void 0!==h&&!(h>=0)){for(let t=-1;t<=1;t++)for(let e=-1;e<=1;e++){if(!t&&!e)continue;const i={x:r+e,y:c+t};if(i.x<0||i.y<0||i.x>=this.cols||i.y>=this.rows)continue;const n=this.grid[i.y]?.[i.x];if(void 0===n||n<0)continue;const s=this.points[n];if(s&&Z(a,s.position)<this.radius)return}return a}}_step(){const t=this.getRandom(0,this.active.length);let e=!1;for(let i=0;i<this.retries;i++){const n=this.active[t];if(void 0===n)continue;const s=this.points[n];if(!s)continue;const o=this._getNewPoint(s,i);if(o){e=!0,this.addPoint(o);break}}if(!e){const e=1;this.active.splice(t,e)}}}});t.AnimatableColor=le,t.AnimationOptions=se,t.AnimationValueWithRandom=ve,t.Background=he,t.BaseRange=ee,t.Circle=ie,t.ColorAnimation=ae,t.Fill=ge,t.FullScreen=de,t.HslAnimation=re,t.Move=Pe,t.MoveAngle=fe,t.MoveCenter=ye,t.MoveGravity=_e,t.MovePath=be,t.Opacity=Ce,t.OpacityAnimation=Me,t.Options=Be,t.OptionsColor=ce,t.OutModes=xe,t.Paint=ke,t.ParticlesBounce=De,t.ParticlesBounceFactor=Te,t.ParticlesDensity=Ve,t.ParticlesNumber=Ae,t.ParticlesNumberLimit=Ie,t.ParticlesOptions=Le,t.RangedAnimationOptions=oe,t.RangedAnimationValueWithRandom=we,t.Rectangle=ne,t.ResizeEvent=ue,t.Shape=Ee,t.Size=Re,t.SizeAnimation=ze,t.Spin=Se,t.Stroke=Oe,t.ValueWithRandom=me,t.Vector=M,t.Vector3d=P,t.ZIndex=Ge,t.alterHsl=bi,t.animate=L,t.areBoundsInside=bt,t.arrayRandomIndex=mt,t.calcExactPositionOrRandomFromSize=nt,t.calcExactPositionOrRandomFromSizeRanged=function(t){const e={x:void 0!==t.position?.x?U(t.position.x):void 0,y:void 0!==t.position?.y?U(t.position.y):void 0};return nt({size:t.size,position:e})},t.calcPositionFromSize=function(t){return void 0!==t.position?.x&&void 0!==t.position.y?{x:t.position.x*t.size.width/o,y:t.position.y*t.size.height/o}:void 0},t.calcPositionOrRandomFromSize=et,t.calcPositionOrRandomFromSizeRanged=it,t.calculateBounds=xt,t.cancelAnimation=F,t.canvasFirstIndex=0,t.canvasTag=f,t.checkDistance=X,t.circleBounce=Mt,t.circleBounceDataFromParticle=Pt,t.clamp=H,t.clear=$e,t.cloneStyle=Et,t.collisionVelocity=tt,t.colorMix=pi,t.colorToHsl=function(t,e,i,n=!0){const s=ii(t,e,i,n);return s?si(s):void 0},t.colorToRgb=ii,t.countOffset=1,t.decayOffset=1,t.deepExtend=St,t.defaultAlpha=1,t.defaultAngle=0,t.defaultCompositeValue=i,t.defaultDensityFactor=1,t.defaultFps=60,t.defaultFpsLimit=120,t.defaultLoops=0,t.defaultOpacity=1,t.defaultRatio=1,t.defaultReduceFactor=1,t.defaultRemoveQuantity=1,t.defaultRetryCount=0,t.defaultRgbMin=0,t.defaultTime=0,t.defaultTransform=l,t.defaultTransformValue=1,t.defaultVelocity=0,t.defaultZoom=1,t.degToRad=Y,t.deleteCount=1,t.double=2,t.doublePI=u,t.drawAfterEffect=qe,t.drawBeforeEffect=We,t.drawParticle=je,t.drawParticlePlugin=Ye,t.drawShape=Qe,t.drawShapeAfterDraw=Ze,t.drawShapeBeforeDraw=Xe,t.empty=0,t.executeOnSingleOrMultiple=Ct,t.findItemFromSingleOrMultiple=kt,t.generatedAttribute=e,t.generatedFalse=g,t.generatedTrue=p,t.getDistance=Z,t.getDistanceSq=Q,t.getDistances=W,t.getFullScreenStyle=zt,t.getHslAnimationFromHsl=_i,t.getHslFromAnimation=yi,t.getItemMapFromInitializer=Lt,t.getItemsFromInitializer=Gt,t.getLinkColor=gi,t.getLinkRandomColor=fi,t.getLogger=$t,t.getParticleBaseVelocity=J,t.getParticleDirectionAngle=K,t.getPosition=Vt,t.getRandom=R,t.getRandomInRange=G,t.getRandomRgbColor=li,t.getRangeMax=j,t.getRangeMin=$,t.getRangeValue=U,t.getSize=It,t.getStyleFromHsl=ui,t.getStyleFromRgb=hi,t.hMax=_,t.hMin=0,t.hPhase=60,t.half=a,t.hasMatchMedia=ut,t.hslToRgb=ri,t.hslaToRgba=ci,t.identity=1,t.initParticleNumericAnimationValue=Tt,t.inverseFactorNumerator=1,t.isArray=V,t.isBoolean=C,t.isFunction=T,t.isInArray=_t,t.isNull=I,t.isNumber=k,t.isObject=D,t.isPointInside=wt,t.isString=O,t.itemFromArray=vt,t.itemFromSingleOrMultiple=Ot,t.lFactor=1,t.lMax=v,t.lMin=0,t.lengthOffset=1,t.loadAll=Qg,t.loadMinIndex=0,t.loadOptions=Fe,t.loadParticlesOptions=He,t.loadRandomFactor=1e4,t.manageListener=Rt,t.memoize=dt,t.midColorValue=d,t.millisecondsToSeconds=r,t.minCount=0,t.minFpsLimit=0,t.minIndex=0,t.minLimit=0,t.minStrokeWidth=0,t.minVelocity=0,t.minZ=0,t.minimumSize=0,t.mix=B,t.none=0,t.one=1,t.originPoint=c,t.paintBase=Ne,t.paintImage=Ue,t.parseAlpha=st,t.percentDenominator=o,t.phaseNumerator=1,t.quarter=w,t.randomColorValue=h,t.randomInRangeValue=N,t.rangeColorToHsl=ni,t.rangeColorToRgb=ei,t.removeDeleteCount=1,t.removeMinIndex=0,t.resizeEvent=n,t.rgbMax=y,t.rgbToHsl=si,t.sMax=m,t.sMin=0,t.sNormalizedOffset=1,t.safeDocument=pt,t.safeIntersectionObserver=ft,t.safeMatchMedia=gt,t.safeMutationObserver=yt,t.setAnimationFunctions=function(t,e){z.nextFrame=t,z.cancel=e},t.setLogger=function(t){t.debug&&(Ut.debug=Nt(t.debug)),t.error&&(Ut.error=Nt(t.error)),t.info&&(Ut.info=Nt(t.info)),t.log&&(Ut.log=Nt(t.log)),t.trace&&(Ut.trace=Nt(t.trace)),t.verbose&&(Ut.verbose=Nt(t.verbose)),t.warning&&(Ut.warning=Nt(t.warning))},t.setRandom=function(t=Math.random){E=t},t.setRangeValue=q,t.sextuple=6,t.spatialHashGridCellSize=100,t.squareExp=2,t.stringToAlpha=oi,t.stringToRgb=ai,t.threeQuarter=b,t.triple=3,t.tryCountIncrement=1,t.tsParticles=xi,t.updateAnimation=At,t.updateColor=wi,t.updateColorValue=vi,t.visibilityChangeEvent=s,t.zIndexFactorOffset=1}),Object.assign(globalThis.window||globalThis,{loadAll:(globalThis.__tsParticlesInternals.bundles.all||{}).loadAll,loadMinIndex:(globalThis.__tsParticlesInternals.bundles.all||{}).loadMinIndex,loadOptions:(globalThis.__tsParticlesInternals.bundles.all||{}).loadOptions,loadParticlesOptions:(globalThis.__tsParticlesInternals.bundles.all||{}).loadParticlesOptions,loadRandomFactor:(globalThis.__tsParticlesInternals.bundles.all||{}).loadRandomFactor,tsParticles:(globalThis.__tsParticlesInternals.bundles.all||{}).tsParticles}),globalThis.__tsParticlesInternals=globalThis.__tsParticlesInternals||{},globalThis.__tsParticlesInternals.engine&&globalThis.__tsParticlesInternals.engine.tsParticles||(globalThis.__tsParticlesInternals.engine=globalThis.__tsParticlesInternals.bundles.all||{}),delete(globalThis.window||globalThis).tsparticlesInternalExports;
|